From 622fdcff0fff269130e000a6c2e8519fc4e1609f Mon Sep 17 00:00:00 2001 From: LagradOst <11805592+LagradOst@users.noreply.github.com> Date: Sat, 4 Jun 2022 02:11:32 +0200 Subject: [PATCH] added backbutton for settings --- .../ui/settings/SettingsAccount.kt | 6 +++ .../ui/settings/SettingsFragment.kt | 15 ++++++++ .../cloudstream3/ui/settings/SettingsLang.kt | 7 ++++ .../cloudstream3/ui/settings/SettingsNginx.kt | 11 +++--- .../ui/settings/SettingsPlayer.kt | 6 +++ .../cloudstream3/ui/settings/SettingsUI.kt | 6 +++ .../ui/settings/SettingsUpdates.kt | 10 +++-- .../main/res/layout/settings_title_top.xml | 37 +++++++++++++++++++ .../main/res/navigation/mobile_navigation.xml | 13 +++++++ app/src/main/res/values/styles.xml | 6 +++ .../main/res/xml/settings_credits_account.xml | 1 - app/src/main/res/xml/settings_media_lang.xml | 2 - app/src/main/res/xml/settings_nginx.xml | 2 - app/src/main/res/xml/settings_player.xml | 2 - app/src/main/res/xml/settings_updates.xml | 2 - app/src/main/res/xml/settins_ui.xml | 2 - 16 files changed, 109 insertions(+), 19 deletions(-) create mode 100644 app/src/main/res/layout/settings_title_top.xml diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsAccount.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsAccount.kt index f3ea8478..167bdfcb 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsAccount.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsAccount.kt @@ -2,6 +2,7 @@ package com.lagradost.cloudstream3.ui.settings import android.content.Context import android.os.Bundle +import android.view.View import android.widget.ImageView import android.widget.TextView import androidx.appcompat.app.AlertDialog @@ -14,11 +15,16 @@ import com.lagradost.cloudstream3.syncproviders.AccountManager import com.lagradost.cloudstream3.syncproviders.OAuth2API import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.beneneCount import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref +import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar import com.lagradost.cloudstream3.utils.UIHelper.dismissSafe import com.lagradost.cloudstream3.utils.UIHelper.hideKeyboard import com.lagradost.cloudstream3.utils.UIHelper.setImage class SettingsAccount : PreferenceFragmentCompat() { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setUpToolbar(R.string.category_credits) + } private fun showLoginInfo(api: AccountManager, info: OAuth2API.LoginInfo) { val builder = AlertDialog.Builder(context ?: return, R.style.AlertDialogCustom) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 5e25644b..74e8213d 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -8,6 +8,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.annotation.StringRes import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.preference.Preference @@ -17,9 +18,11 @@ import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.syncproviders.OAuth2API import com.lagradost.cloudstream3.ui.home.HomeFragment +import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbar import com.lagradost.cloudstream3.utils.UIHelper.navigate import com.lagradost.cloudstream3.utils.UIHelper.setImage import kotlinx.android.synthetic.main.main_settings.* +import kotlinx.android.synthetic.main.settings_title_top.* import java.io.File class SettingsFragment : Fragment() { @@ -37,6 +40,18 @@ class SettingsFragment : Fragment() { } } + fun PreferenceFragmentCompat?.setUpToolbar(@StringRes title : Int) { + if (this == null) return + settings_toolbar?.apply { + setTitle(title) + setNavigationIcon(R.drawable.ic_baseline_arrow_back_24) + setNavigationOnClickListener { + activity?.onBackPressed() + } + } + context.fixPaddingStatusbar(settings_toolbar) + } + fun getFolderSize(dir: File): Long { var size: Long = 0 dir.listFiles()?.let { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsLang.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsLang.kt index 9f584450..6da97df8 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsLang.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsLang.kt @@ -1,6 +1,7 @@ package com.lagradost.cloudstream3.ui.settings import android.os.Bundle +import android.view.View import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceManager import com.lagradost.cloudstream3.* @@ -10,6 +11,7 @@ import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.network.initClient import com.lagradost.cloudstream3.ui.APIRepository import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref +import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar import com.lagradost.cloudstream3.utils.HOMEPAGE_API import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialog import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showDialog @@ -54,6 +56,11 @@ class SettingsLang : PreferenceFragmentCompat() { return conf?.locale?.language ?: "en" } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setUpToolbar(R.string.category_preferred_media_and_lang) + } + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { hideKeyboard() setPreferencesFromResource(R.xml.settings_media_lang, rootKey) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsNginx.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsNginx.kt index 1ab95735..cb6d28c7 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsNginx.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsNginx.kt @@ -1,19 +1,20 @@ package com.lagradost.cloudstream3.ui.settings import android.os.Bundle +import android.view.View import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceManager -import com.lagradost.cloudstream3.AcraApplication import com.lagradost.cloudstream3.R -import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.network.initClient import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref -import com.lagradost.cloudstream3.utils.HOMEPAGE_API -import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialog +import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showNginxTextInputDialog import com.lagradost.cloudstream3.utils.UIHelper.hideKeyboard class SettingsNginx : PreferenceFragmentCompat() { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setUpToolbar(R.string.category_nginx) + } override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { hideKeyboard() setPreferencesFromResource(R.xml.settings_nginx, rootKey) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsPlayer.kt index 0baba5ed..3911eae9 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsPlayer.kt @@ -5,6 +5,7 @@ import android.net.Uri import android.os.Build import android.os.Bundle import android.os.Environment +import android.view.View import androidx.activity.result.contract.ActivityResultContracts import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceManager @@ -17,6 +18,7 @@ import com.lagradost.cloudstream3.mvvm.normalSafeApiCall import com.lagradost.cloudstream3.network.initClient import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getFolderSize import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref +import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar import com.lagradost.cloudstream3.ui.subtitles.ChromecastSubtitlesFragment import com.lagradost.cloudstream3.ui.subtitles.SubtitlesFragment import com.lagradost.cloudstream3.utils.Qualities @@ -28,6 +30,10 @@ import com.lagradost.cloudstream3.utils.VideoDownloadManager.getBasePath import java.io.File class SettingsPlayer : PreferenceFragmentCompat() { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setUpToolbar(R.string.category_player) + } // Open file picker private val pathPicker = registerForActivityResult(ActivityResultContracts.OpenDocumentTree()) { uri -> diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUI.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUI.kt index d688ab21..64ae2f8e 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUI.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUI.kt @@ -1,18 +1,24 @@ package com.lagradost.cloudstream3.ui.settings import android.os.Bundle +import android.view.View import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceManager import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.ui.search.SearchResultBuilder import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref +import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialog import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showDialog import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showMultiDialog import com.lagradost.cloudstream3.utils.UIHelper.hideKeyboard class SettingsUI : PreferenceFragmentCompat() { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setUpToolbar(R.string.category_ui) + } override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { hideKeyboard() setPreferencesFromResource(R.xml.settins_ui, rootKey) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUpdates.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUpdates.kt index d3d3182e..04c7af92 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUpdates.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUpdates.kt @@ -4,14 +4,15 @@ import android.content.ClipData import android.content.ClipboardManager import android.content.Context import android.os.Bundle +import android.view.View import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.preference.PreferenceFragmentCompat -import androidx.preference.PreferenceManager import com.lagradost.cloudstream3.CommonActivity import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref +import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar import com.lagradost.cloudstream3.utils.BackupUtils.backup import com.lagradost.cloudstream3.utils.BackupUtils.restorePrompt import com.lagradost.cloudstream3.utils.InAppUpdater.Companion.runAutoUpdate @@ -26,11 +27,14 @@ import java.io.OutputStream import kotlin.concurrent.thread class SettingsUpdates : PreferenceFragmentCompat() { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setUpToolbar(R.string.category_updates) + } override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { hideKeyboard() setPreferencesFromResource(R.xml.settings_updates, rootKey) - val settingsManager = PreferenceManager.getDefaultSharedPreferences(requireContext()) - + //val settingsManager = PreferenceManager.getDefaultSharedPreferences(requireContext()) getPref(R.string.backup_key)?.setOnPreferenceClickListener { activity?.backup() diff --git a/app/src/main/res/layout/settings_title_top.xml b/app/src/main/res/layout/settings_title_top.xml new file mode 100644 index 00000000..f0dd44dc --- /dev/null +++ b/app/src/main/res/layout/settings_title_top.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index d6505f5f..f33482ad 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -88,6 +88,7 @@ @color/boxItemBackground @color/iconColor #FFF + + @style/CustomPreferenceThemeOverlay + +