diff --git a/application/vlc-android/res/layout/onboarding_scanning.xml b/application/vlc-android/res/layout/onboarding_scanning.xml
index da1a3f910..58e6a409c 100644
--- a/application/vlc-android/res/layout/onboarding_scanning.xml
+++ b/application/vlc-android/res/layout/onboarding_scanning.xml
@@ -56,21 +56,33 @@
android:checked="true"
android:text="@string/onboarding_scanning_enable"
android:textSize="18sp"
- app:layout_constraintBottom_toTopOf="@+id/scanningFolderCheckbox"
+ app:layout_constraintBottom_toTopOf="@+id/autoScanningCheckbox"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView4"
app:layout_constraintVertical_chainStyle="packed" />
+
+
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingFragmentPagerAdapter.kt b/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingFragmentPagerAdapter.kt
index e1dcb8b83..0c0c077f3 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingFragmentPagerAdapter.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingFragmentPagerAdapter.kt
@@ -7,46 +7,29 @@ import androidx.viewpager.widget.PagerAdapter
class OnboardingFragmentPagerAdapter(private val fragmentManager: FragmentManager, private var count: Int) : FragmentStatePagerAdapter(fragmentManager) {
-
private var fragments = ArrayList()
private var folderFragment: OnboardingFoldersFragment = OnboardingFoldersFragment.newInstance()
init {
fragments.add(OnboardingWelcomeFragment.newInstance())
- val onboardingScanningFragment = OnboardingScanningFragment.newInstance()
- fragments.add(onboardingScanningFragment)
+ fragments.add(OnboardingScanningFragment.newInstance())
fragments.add(OnboardingThemeFragment.newInstance())
-
-
}
fun onCustomizedChanged(customizeEnabled: Boolean) {
- if (customizeEnabled) {
+ count = if (customizeEnabled) {
fragments.add(2, folderFragment)
- count = 4
+ 4
} else {
fragments.remove(folderFragment)
- count = 3
+ 3
}
-
notifyDataSetChanged()
-
-
}
+ override fun getItemPosition(obj: Any)= PagerAdapter.POSITION_NONE
- override fun getItemPosition(obj: Any): Int {
- return PagerAdapter.POSITION_NONE
- }
-
-
- override fun getItem(position: Int): Fragment {
- return fragments[position]
- }
-
- override fun getCount(): Int {
- return count
- }
-
+ override fun getItem(position: Int) = fragments[position]
-}
\ No newline at end of file
+ override fun getCount() = count
+}
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingScanningFragment.kt b/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingScanningFragment.kt
index c776343f1..a92452c56 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingScanningFragment.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingScanningFragment.kt
@@ -4,50 +4,39 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.CheckBox
-import android.widget.Switch
import androidx.fragment.app.Fragment
-import org.videolan.vlc.R
+import androidx.fragment.app.activityViewModels
+import kotlinx.android.synthetic.main.onboarding_scanning.*
import org.videolan.tools.KEY_MEDIALIBRARY_SCAN
import org.videolan.tools.ML_SCAN_OFF
import org.videolan.tools.ML_SCAN_ON
import org.videolan.tools.Settings
+import org.videolan.vlc.R
class OnboardingScanningFragment : Fragment() {
- private lateinit var scanningFolderCheckbox: CheckBox
- private lateinit var scanningEnableSwitch: Switch
lateinit var onScanningCustomizeChangedListener: IOnScanningCustomizeChangedListener
- private lateinit var viewModel: OnboardingViewModel
+ private val viewModel: OnboardingViewModel by activityViewModels()
+ private val preferences by lazy { Settings.getInstance(requireActivity()) }
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- viewModel = getOnboardingModel()
- }
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.onboarding_scanning, container, false)
}
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- scanningFolderCheckbox = view.findViewById(R.id.scanningFolderCheckbox)
- scanningEnableSwitch = view.findViewById(R.id.scanningEnableSwitch)
- super.onViewCreated(view, savedInstanceState)
-
- }
-
-
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
-
scanningEnableSwitch.setOnCheckedChangeListener { _, isChecked ->
scanningFolderCheckbox.visibility = if (isChecked) View.VISIBLE else View.GONE
- val prefs = Settings.getInstance(requireActivity())
- prefs.edit().putInt(KEY_MEDIALIBRARY_SCAN, if (isChecked) ML_SCAN_ON else ML_SCAN_OFF).apply()
+ autoScanningCheckbox.isChecked = isChecked
+ preferences.edit().putInt(KEY_MEDIALIBRARY_SCAN, if (isChecked) ML_SCAN_ON else ML_SCAN_OFF).apply()
viewModel.scanStorages = isChecked
scanningFolderCheckbox.isChecked = false
}
+ autoScanningCheckbox.setOnCheckedChangeListener { _, isChecked ->
+ preferences.edit().putBoolean("auto_rescan", isChecked).apply()
+ }
+
onScanningCustomizeChangedListener = requireActivity() as IOnScanningCustomizeChangedListener
scanningFolderCheckbox.isChecked = viewModel.customizeMediaFolders
@@ -59,12 +48,9 @@ class OnboardingScanningFragment : Fragment() {
if (::onScanningCustomizeChangedListener.isInitialized) {
onScanningCustomizeChangedListener.onCustomizedChanged(isChecked)
}
-
-
}
}
-
companion object {
fun newInstance(): OnboardingScanningFragment {
return OnboardingScanningFragment()
@@ -74,4 +60,4 @@ class OnboardingScanningFragment : Fragment() {
interface IOnScanningCustomizeChangedListener {
fun onCustomizedChanged(customizeEnabled: Boolean)
-}
\ No newline at end of file
+}
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingThemeFragment.kt b/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingThemeFragment.kt
index d4d4dc9b0..17c03598c 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingThemeFragment.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/onboarding/OnboardingThemeFragment.kt
@@ -1,26 +1,20 @@
package org.videolan.vlc.gui.onboarding
-import android.os.Build
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.CompoundButton
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
+import androidx.fragment.app.activityViewModels
import kotlinx.android.synthetic.main.onboarding_theme.*
-import org.videolan.vlc.R
import org.videolan.resources.AndroidDevices
+import org.videolan.vlc.R
class OnboardingThemeFragment : Fragment(), View.OnClickListener {
- private lateinit var viewModel: OnboardingViewModel
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- viewModel = getOnboardingModel()
- }
+ private val viewModel: OnboardingViewModel by activityViewModels()
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.onboarding_theme, container, false)
@@ -62,4 +56,4 @@ class OnboardingThemeFragment : Fragment(), View.OnClickListener {
companion object {
fun newInstance() = OnboardingThemeFragment()
}
-}
\ No newline at end of file
+}