diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 28fd8af03..cf36bc70a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -155,7 +155,6 @@
-
diff --git a/app/src/main/java/com/aurora/store/MainActivity.kt b/app/src/main/java/com/aurora/store/MainActivity.kt
index 3072045d0..403f8eba6 100644
--- a/app/src/main/java/com/aurora/store/MainActivity.kt
+++ b/app/src/main/java/com/aurora/store/MainActivity.kt
@@ -53,10 +53,8 @@ import com.aurora.store.databinding.ActivityMainBinding
import com.aurora.store.util.CertUtil.isFDroidApp
import com.aurora.store.util.Log
import com.aurora.store.util.Preferences
-import com.aurora.store.view.ui.account.AccountFragment
import com.aurora.store.view.ui.commons.BaseActivity
import com.aurora.store.view.ui.downloads.DownloadActivity
-import com.aurora.store.view.ui.preferences.SettingsActivity
import com.aurora.store.view.ui.search.SearchSuggestionActivity
import com.aurora.store.view.ui.sheets.SelfUpdateSheet
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@@ -263,7 +261,8 @@ class MainActivity : BaseActivity() {
B.drawerLayout.close()
}
R.id.menu_settings -> {
- open(SettingsActivity::class.java)
+ navController.navigate(R.id.settingsFragment)
+ B.drawerLayout.close()
}
R.id.menu_about -> {
navController.navigate(R.id.aboutFragment)
diff --git a/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsActivity.kt b/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt
similarity index 54%
rename from app/src/main/java/com/aurora/store/view/ui/preferences/SettingsActivity.kt
rename to app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt
index 343eb864a..ae85167bc 100644
--- a/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsActivity.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt
@@ -19,103 +19,81 @@
package com.aurora.store.view.ui.preferences
+import android.graphics.drawable.ColorDrawable
import android.os.Bundle
-import android.view.MenuItem
+import android.view.View
+import androidx.core.content.ContextCompat
+import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
+import com.aurora.extensions.getStyledAttributeColor
import com.aurora.extensions.restartApp
import com.aurora.store.R
-import com.aurora.store.databinding.ActivitySettingBinding
-import com.aurora.store.view.ui.commons.BaseActivity
+import com.aurora.store.databinding.FragmentSettingBinding
import com.google.android.material.dialog.MaterialAlertDialogBuilder
-class SettingsActivity : BaseActivity(),
+class SettingsFragment : Fragment(R.layout.fragment_setting),
PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
- private lateinit var B: ActivitySettingBinding
+ private var _binding: FragmentSettingBinding? = null
+ private val binding: FragmentSettingBinding
+ get() = _binding!!
companion object {
var shouldRestart = false
const val titleTag = "titleTag"
}
- override fun onConnected() {
- }
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
- override fun onDisconnected() {
- }
-
- override fun onReconnected() {
- }
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- B = ActivitySettingBinding.inflate(layoutInflater)
- setContentView(B.root)
+ _binding = FragmentSettingBinding.bind(view)
if (savedInstanceState == null) {
- supportFragmentManager
+ childFragmentManager
.beginTransaction()
.replace(R.id.settings, MainPreference())
.commit()
} else {
- title = savedInstanceState.getCharSequence(titleTag)
+ binding.layoutToolbarAction.toolbar.title = savedInstanceState.getCharSequence(titleTag)
}
- supportFragmentManager.addOnBackStackChangedListener {
- if (supportFragmentManager.backStackEntryCount == 0) {
- B.layoutToolbarAction.toolbar.setTitle(R.string.title_settings)
- if (shouldRestart)
- askRestart()
+ childFragmentManager.addOnBackStackChangedListener {
+ if (childFragmentManager.backStackEntryCount == 0) {
+ binding.layoutToolbarAction.toolbar.title = getString(R.string.title_settings)
+ if (shouldRestart) askRestart()
}
}
- attachToolbar()
+ // Toolbar
+ binding.layoutToolbarAction.toolbar.apply {
+ elevation = 0f
+ title = getString(R.string.title_settings)
+ navigationIcon = ContextCompat.getDrawable(view.context, R.drawable.ic_arrow_back)
+ setNavigationOnClickListener { findNavController().navigateUp() }
+ }
}
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- when (item.itemId) {
- android.R.id.home -> {
- onBackPressedDispatcher.onBackPressed()
- return true
- }
- }
- return super.onOptionsItemSelected(item)
- }
-
- private fun attachToolbar() {
- setSupportActionBar(B.layoutToolbarAction.toolbar)
- val actionBar = supportActionBar
- if (actionBar != null) {
- actionBar.setDisplayShowCustomEnabled(true)
- actionBar.setDisplayHomeAsUpEnabled(true)
- actionBar.elevation = 0f
- actionBar.setTitle(R.string.title_settings)
- }
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
- outState.putCharSequence(titleTag, title)
- }
-
- override fun onSupportNavigateUp(): Boolean {
- if (supportFragmentManager.popBackStackImmediate()) {
- return true
- }
- return super.onSupportNavigateUp()
+ outState.putCharSequence(titleTag, binding.layoutToolbarAction.toolbar.title)
}
override fun onPreferenceStartFragment(
caller: PreferenceFragmentCompat,
preference: Preference
): Boolean {
- with(supportFragmentManager) {
+ with(childFragmentManager) {
val args = preference.extras
val fragment = fragmentFactory.instantiate(
- classLoader,
+ this@SettingsFragment.javaClass.classLoader!!,
preference.fragment.toString()
).apply {
arguments = args
@@ -124,24 +102,27 @@ class SettingsActivity : BaseActivity(),
beginTransaction()
.replace(R.id.settings, fragment)
- .addToBackStack(null)
+ .addToBackStack(preference.key)
.commit()
- B.layoutToolbarAction.toolbar.title = preference.title
+ binding.layoutToolbarAction.toolbar.title = preference.title
}
return true
}
private fun askRestart() {
- val builder = MaterialAlertDialogBuilder(this)
+ val builder = MaterialAlertDialogBuilder(requireContext())
.setTitle(getString(R.string.action_restart))
.setMessage(getString(R.string.pref_dialog_to_apply_restart))
.setPositiveButton(getString(R.string.action_restart)) { _, _ ->
shouldRestart = false
- restartApp()
+ requireContext().restartApp()
}
.setNegativeButton(getString(R.string.action_later)) { dialog, _ -> dialog.dismiss() }
+ val backGroundColor =
+ requireContext().getStyledAttributeColor(android.R.attr.colorBackground)
+ builder.background = ColorDrawable(backGroundColor)
builder.create()
builder.show()
}
diff --git a/app/src/main/java/com/aurora/store/view/ui/preferences/UIPreference.kt b/app/src/main/java/com/aurora/store/view/ui/preferences/UIPreference.kt
index 7eff05b4b..6c3030049 100644
--- a/app/src/main/java/com/aurora/store/view/ui/preferences/UIPreference.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/preferences/UIPreference.kt
@@ -50,7 +50,7 @@ class UIPreference : PreferenceFragmentCompat() {
applyTheme(themeId, shouldApplyTransition = false)
- SettingsActivity.shouldRestart = true
+ SettingsFragment.shouldRestart = true
true
}
}
@@ -68,7 +68,7 @@ class UIPreference : PreferenceFragmentCompat() {
applyTheme(themeId, shouldApplyTransition = false)
- SettingsActivity.shouldRestart = true
+ SettingsFragment.shouldRestart = true
true
}
}
diff --git a/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionActivity.kt b/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionFragment.kt
similarity index 100%
rename from app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionActivity.kt
rename to app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionFragment.kt
diff --git a/app/src/main/res/layout/activity_search_suggestion.xml b/app/src/main/res/layout/fragment_search_suggestion.xml
similarity index 100%
rename from app/src/main/res/layout/activity_search_suggestion.xml
rename to app/src/main/res/layout/fragment_search_suggestion.xml
diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/fragment_setting.xml
similarity index 88%
rename from app/src/main/res/layout/activity_setting.xml
rename to app/src/main/res/layout/fragment_setting.xml
index 4e8e84859..92f1719a5 100644
--- a/app/src/main/res/layout/activity_setting.xml
+++ b/app/src/main/res/layout/fragment_setting.xml
@@ -20,9 +20,11 @@
-->
+ android:orientation="vertical"
+ tools:context=".view.ui.preferences.SettingsFragment">
+
\ No newline at end of file