Updated fragment system, again
This commit is contained in:
parent
9b7f704863
commit
246af47421
|
@ -3,7 +3,7 @@
|
|||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.vanced.manager">
|
||||
|
||||
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
|
|
|
@ -5,7 +5,6 @@ import android.os.Bundle
|
|||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
|
@ -19,17 +18,10 @@ class MainActivity : ThemeActivity() {
|
|||
private val homeFragment: HomeFragment = HomeFragment()
|
||||
private val settingsFragment: SettingsFragment = SettingsFragment()
|
||||
|
||||
private var currentFragment: Fragment? = null
|
||||
private var activeFragment: Int = R.id.navigation_home
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
|
||||
savedInstanceState?.let {
|
||||
activeFragment = it.getInt(CURRENT_FRAGMENT, R.id.navigation_home)
|
||||
}
|
||||
|
||||
val toolbar: MaterialToolbar = findViewById(R.id.home_toolbar)
|
||||
setSupportActionBar(toolbar)
|
||||
|
||||
|
@ -39,24 +31,45 @@ class MainActivity : ThemeActivity() {
|
|||
showSecurityDialog()
|
||||
}
|
||||
|
||||
when (activeFragment) {
|
||||
R.id.navigation_home -> currentFragment = homeFragment
|
||||
R.id.navigation_settings -> currentFragment = settingsFragment
|
||||
}
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
.add(R.id.frame_layout, settingsFragment).hide(settingsFragment)
|
||||
.add(R.id.frame_layout, homeFragment).hide(homeFragment)
|
||||
.show(currentFragment!!)
|
||||
.commit()
|
||||
}
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
.add(R.id.frame_layout, settingsFragment).hide(settingsFragment)
|
||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
||||
.add(R.id.frame_layout, homeFragment)
|
||||
.commit()
|
||||
supportActionBar?.title = getString(R.string.title_home)
|
||||
|
||||
val navView: BottomNavigationView = findViewById(R.id.bottom_nav)
|
||||
|
||||
navView.setOnNavigationItemSelectedListener{
|
||||
setFragments(it.itemId)
|
||||
navView.setOnNavigationItemSelectedListener{ item ->
|
||||
when (item.itemId) {
|
||||
R.id.navigation_home -> {
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
.hide(settingsFragment)
|
||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
||||
.add(homeFragment)
|
||||
.commit()
|
||||
supportActionBar?.title = getString(R.string.title_home)
|
||||
|
||||
return@setOnNavigationItemSelectedListener true
|
||||
}
|
||||
R.id.navigation_settings -> {
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
.hide(homeFragment)
|
||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
||||
.add(settingsFragment)
|
||||
.commit()
|
||||
supportActionBar?.title = getString(R.string.title_settings)
|
||||
|
||||
return@setOnNavigationItemSelectedListener true
|
||||
}
|
||||
}
|
||||
false
|
||||
}
|
||||
|
||||
navView.setOnNavigationItemReselectedListener {
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -90,41 +103,4 @@ class MainActivity : ThemeActivity() {
|
|||
editor.apply()
|
||||
}
|
||||
|
||||
private fun setFragments(itemId: Int): Boolean {
|
||||
activeFragment = itemId
|
||||
when (itemId) {
|
||||
R.id.navigation_home -> {
|
||||
if (currentFragment is HomeFragment) {
|
||||
return false
|
||||
}
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
.hide(currentFragment!!)
|
||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
||||
.show(homeFragment)
|
||||
.commit()
|
||||
|
||||
currentFragment = homeFragment
|
||||
}
|
||||
R.id.navigation_settings -> {
|
||||
if (currentFragment is SettingsFragment) {
|
||||
return false
|
||||
}
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
.hide(currentFragment!!)
|
||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
||||
.show(settingsFragment)
|
||||
.commit()
|
||||
|
||||
currentFragment = settingsFragment
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
companion object{
|
||||
const val CURRENT_FRAGMENT = "current_fragment"
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -24,9 +24,8 @@ open class ThemeActivity : AppCompatActivity() {
|
|||
setFinalTheme(currentTheme)
|
||||
if (android.os.Build.VERSION.SDK_INT < 28) {
|
||||
setTaskBG()
|
||||
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
|
|
@ -42,7 +42,6 @@ class HomeFragment : Fragment() {
|
|||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
(activity as MainActivity).supportActionBar?.title = getString(R.string.title_home)
|
||||
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.vanced.manager.ui.fragments
|
|||
|
||||
import android.content.res.Configuration
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
|
@ -13,8 +14,6 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.preferences, rootKey)
|
||||
|
||||
(activity as MainActivity).supportActionBar?.title = getString(R.string.title_settings)
|
||||
|
||||
val updateCheck: Preference? = findPreference("update_check")
|
||||
|
||||
val themeSwitch: ListPreference? = findPreference("theme_mode")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:width="34dp"
|
||||
android:height="34dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:width="34dp"
|
||||
android:height="34dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<layer-list
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:drawable="?colorSurface" />
|
||||
|
||||
|
|
|
@ -7,21 +7,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<!--
|
||||
If my own implementation of bottom navigation viewer
|
||||
will suck a HUGE dick, I'll use navigation component
|
||||
<fragment
|
||||
android:id="@+id/nav_host_fragment"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:name="androidx.navigation.fragment.NavHostFragment"
|
||||
app:defaultNavHost="true"
|
||||
app:navGraph="@navigation/mobile_navigation"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentEnd="true"/> -->
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/home_appbar"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -48,6 +33,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:background="?colorSurface"
|
||||
android:layout_alignParentBottom="true"
|
||||
app:labelVisibilityMode="unlabeled"
|
||||
app:menu="@menu/bottom_nav_menu" />
|
||||
|
||||
<FrameLayout
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<resources>
|
||||
|
||||
<style name="SplashTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
|
||||
<style name="SplashTheme" parent="Theme.MaterialComponents.NoActionBar">
|
||||
<item name="android:windowBackground">@drawable/splash_logo</item>
|
||||
<item name="android:windowTranslucentStatus">true</item>
|
||||
<item name="android:windowTranslucentNavigation">true</item>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<Preference
|
||||
|
@ -24,6 +25,7 @@
|
|||
android:icon="@drawable/ic_palette_black_24dp"
|
||||
android:key="accent_color"
|
||||
android:title="Accent Color"
|
||||
app:isPreferenceVisible="false"
|
||||
android:entries="@array/accent_color"
|
||||
android:entryValues="@array/accent_color"/>
|
||||
|
||||
|
|
Loading…
Reference in New Issue