refactor: Organize preferences using XML

This commit is contained in:
Isira Seneviratne 2023-09-04 04:19:13 +05:30
parent a7d73dc0d1
commit 4ff74957fc
2 changed files with 10 additions and 59 deletions

View File

@ -2,8 +2,6 @@ package com.github.libretube.ui.preferences
import android.os.Bundle import android.os.Bundle
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.fragment.app.Fragment
import androidx.fragment.app.commitNow
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.preference.Preference import androidx.preference.Preference
import com.github.libretube.BuildConfig import com.github.libretube.BuildConfig
@ -23,56 +21,6 @@ class MainSettings : BasePreferenceFragment() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.settings, rootKey) setPreferencesFromResource(R.xml.settings, rootKey)
val general = findPreference<Preference>("general")
general?.setOnPreferenceClickListener {
navigateToSettingsFragment(GeneralSettings())
}
val instance = findPreference<Preference>("instance")
instance?.setOnPreferenceClickListener {
navigateToSettingsFragment(InstanceSettings())
}
val appearance = findPreference<Preference>("appearance")
appearance?.setOnPreferenceClickListener {
navigateToSettingsFragment(AppearanceSettings())
}
val sponsorBlock = findPreference<Preference>("sponsorblock")
sponsorBlock?.setOnPreferenceClickListener {
navigateToSettingsFragment(SponsorBlockSettings())
}
val player = findPreference<Preference>("player")
player?.setOnPreferenceClickListener {
navigateToSettingsFragment(PlayerSettings())
}
val audioVideo = findPreference<Preference>("audio_video")
audioVideo?.setOnPreferenceClickListener {
navigateToSettingsFragment(AudioVideoSettings())
}
val history = findPreference<Preference>("history")
history?.setOnPreferenceClickListener {
navigateToSettingsFragment(HistorySettings())
}
val notifications = findPreference<Preference>("notifications")
notifications?.setOnPreferenceClickListener {
navigateToSettingsFragment(NotificationSettings())
}
val backupRestore = findPreference<Preference>("backup_restore")
backupRestore?.setOnPreferenceClickListener {
navigateToSettingsFragment(BackupRestoreSettings())
}
val advanced = findPreference<Preference>("advanced")
advanced?.setOnPreferenceClickListener {
navigateToSettingsFragment(AdvancedSettings())
}
val update = findPreference<Preference>("update") val update = findPreference<Preference>("update")
// set the version of the update preference // set the version of the update preference
@ -117,11 +65,4 @@ class MainSettings : BasePreferenceFragment() {
.show() .show()
} }
} }
private fun navigateToSettingsFragment(newFragment: Fragment): Boolean {
parentFragmentManager.commitNow {
replace(R.id.settings, newFragment)
}
return true
}
} }

View File

@ -5,59 +5,69 @@
<Preference <Preference
android:icon="@drawable/ic_settings" android:icon="@drawable/ic_settings"
android:summary="@string/general_summary" android:summary="@string/general_summary"
app:fragment="com.github.libretube.ui.preferences.GeneralSettings"
app:key="general" app:key="general"
app:title="@string/general" /> app:title="@string/general" />
<Preference <Preference
android:icon="@drawable/ic_server" android:icon="@drawable/ic_server"
app:fragment="com.github.libretube.ui.preferences.InstanceSettings"
app:key="instance" app:key="instance"
app:summary="@string/instance_summary" app:summary="@string/instance_summary"
app:title="@string/instance" /> app:title="@string/instance" />
<Preference <Preference
android:icon="@drawable/ic_color" android:icon="@drawable/ic_color"
app:fragment="com.github.libretube.ui.preferences.AppearanceSettings"
app:key="appearance" app:key="appearance"
app:summary="@string/appearance_summary" app:summary="@string/appearance_summary"
app:title="@string/appearance" /> app:title="@string/appearance" />
<Preference <Preference
android:icon="@drawable/ic_block" android:icon="@drawable/ic_block"
app:fragment="com.github.libretube.ui.preferences.SponsorBlockSettings"
app:key="sponsorblock" app:key="sponsorblock"
app:summary="@string/sponsorblock_summary" app:summary="@string/sponsorblock_summary"
app:title="@string/sponsorblock" /> app:title="@string/sponsorblock" />
<Preference <Preference
android:icon="@drawable/ic_play_filled" android:icon="@drawable/ic_play_filled"
app:fragment="com.github.libretube.ui.preferences.PlayerSettings"
app:key="player" app:key="player"
app:summary="@string/player_summary" app:summary="@string/player_summary"
app:title="@string/player" /> app:title="@string/player" />
<Preference <Preference
android:icon="@drawable/ic_movie" android:icon="@drawable/ic_movie"
app:fragment="com.github.libretube.ui.preferences.AudioVideoSettings"
app:key="audio_video" app:key="audio_video"
app:summary="@string/audio_video_summary" app:summary="@string/audio_video_summary"
app:title="@string/audio_video" /> app:title="@string/audio_video" />
<Preference <Preference
android:icon="@drawable/ic_history_filled" android:icon="@drawable/ic_history_filled"
app:fragment="com.github.libretube.ui.preferences.HistorySettings"
android:summary="@string/history_summary" android:summary="@string/history_summary"
app:key="history" app:key="history"
app:title="@string/history" /> app:title="@string/history" />
<Preference <Preference
android:icon="@drawable/ic_notification" android:icon="@drawable/ic_notification"
app:fragment="com.github.libretube.ui.preferences.NotificationSettings"
android:summary="@string/notify_new_streams" android:summary="@string/notify_new_streams"
app:key="notifications" app:key="notifications"
app:title="@string/notifications" /> app:title="@string/notifications" />
<Preference <Preference
android:icon="@drawable/ic_backup" android:icon="@drawable/ic_backup"
app:fragment="com.github.libretube.ui.preferences.BackupRestoreSettings"
app:key="backup_restore" app:key="backup_restore"
app:summary="@string/backup_restore_summary" app:summary="@string/backup_restore_summary"
app:title="@string/backup_restore" /> app:title="@string/backup_restore" />
<Preference <Preference
android:icon="@drawable/ic_list" android:icon="@drawable/ic_list"
app:fragment="com.github.libretube.ui.preferences.AdvancedSettings"
app:key="advanced" app:key="advanced"
app:summary="@string/advanced_summary" app:summary="@string/advanced_summary"
app:title="@string/advanced" /> app:title="@string/advanced" />