diff --git a/app/src/main/java/com/vanced/manager/ui/MainActivity.kt b/app/src/main/java/com/vanced/manager/ui/MainActivity.kt index ab097669..c2505f7f 100644 --- a/app/src/main/java/com/vanced/manager/ui/MainActivity.kt +++ b/app/src/main/java/com/vanced/manager/ui/MainActivity.kt @@ -5,13 +5,8 @@ import android.os.Bundle import android.util.Log import android.view.MenuItem import android.view.View -import android.view.animation.AnimationUtils import androidx.appcompat.app.AppCompatActivity import androidx.databinding.DataBindingUtil -import androidx.navigation.NavDestination -import androidx.navigation.findNavController -import androidx.navigation.ui.AppBarConfiguration -import androidx.navigation.ui.setupWithNavController import androidx.preference.PreferenceManager.getDefaultSharedPreferences import com.crowdin.platform.Crowdin import com.crowdin.platform.LoadingStateListener @@ -34,8 +29,7 @@ import kotlinx.coroutines.launch class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding - private val navHost by lazy { findNavController(R.id.bottom_nav_host) } - + private val loadingObserver = object : LoadingStateListener { val tag = "VMLocalisation" override fun onDataChanged() { @@ -85,8 +79,6 @@ class MainActivity : AppCompatActivity() { with(binding) { lifecycleOwner = this@MainActivity setSupportActionBar(homeToolbar) - val appBarConfiguration = AppBarConfiguration(navHost.graph) - homeToolbar.setupWithNavController(navHost, appBarConfiguration) mainViewpager.adapter = SectionVariantAdapter(this@MainActivity) TabLayoutMediator(mainTablayout, mainViewpager) { tab, position -> when (position) { @@ -106,19 +98,6 @@ class MainActivity : AppCompatActivity() { } - navHost.addOnDestinationChangedListener { _, currFrag: NavDestination, _ -> - setDisplayHomeAsUpEnabled(currFrag.id != R.id.home_fragment) - val tabHide = AnimationUtils.loadAnimation(this, R.anim.tablayout_exit) - val tabShow = AnimationUtils.loadAnimation(this, R.anim.tablayout_enter) - if (currFrag.id != R.id.home_fragment) { - binding.variantTabContainer.startAnimation(tabHide) - binding.variantTabContainer.visibility = View.GONE - } else { - binding.variantTabContainer.visibility = View.VISIBLE - binding.variantTabContainer.startAnimation(tabShow) - } - } - initDialogs() } @@ -145,16 +124,13 @@ class MainActivity : AppCompatActivity() { return true } R.id.toolbar_about -> { - navHost.navigate(R.id.toAboutFragment) - return true + return false } R.id.toolbar_settings -> { - navHost.navigate(R.id.action_settingsFragment) - return true + return false } R.id.dev_settings -> { - navHost.navigate(R.id.toDevSettingsFragment) - return true + return false } else -> super.onOptionsItemSelected(item) } @@ -162,10 +138,6 @@ class MainActivity : AppCompatActivity() { return false } - private fun setDisplayHomeAsUpEnabled(isNeeded: Boolean) { - binding.homeToolbar.navigationIcon = if (isNeeded) getDrawable(R.drawable.ic_keyboard_backspace_black_24dp) else null - } - override fun attachBaseContext(newBase: Context) { super.attachBaseContext(Crowdin.wrapContext(newBase)) } diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/ChosenPreferenceDialogFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/ChosenPreferenceDialogFragment.kt index fa73d270..84a29ea2 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/ChosenPreferenceDialogFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/ChosenPreferenceDialogFragment.kt @@ -19,8 +19,8 @@ class ChosenPreferenceDialogFragment : DialogFragment() { private lateinit var binding: FragmentChosenPreferencesBinding override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? ): View? { dialog?.window?.apply { setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) } binding = DataBindingUtil.inflate(inflater, R.layout.fragment_chosen_preferences, container, false) diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/MainFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/MainFragment.kt index 9549a156..b4f91f2e 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/MainFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/MainFragment.kt @@ -2,20 +2,79 @@ package com.vanced.manager.ui.fragments import android.os.Bundle import android.view.LayoutInflater +import android.view.MenuItem import android.view.View import android.view.ViewGroup +import android.view.animation.AnimationUtils +import android.widget.LinearLayout +import androidx.databinding.DataBindingUtil +import androidx.navigation.findNavController +import androidx.navigation.NavDestination +import androidx.navigation.ui.AppBarConfiguration +import androidx.navigation.ui.setupWithNavController import androidx.fragment.app.Fragment +import com.google.android.material.appbar.MaterialToolbar +import com.vanced.manager.databinding.FragmentMainBinding import com.vanced.manager.R class MainFragment : Fragment() { + private lateinit var binding: FragmentMainBinding + private val navHost by lazy { activity?.findNavController(R.id.nav_host) } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - requireActivity().title = getString(R.string.title_home) setHasOptionsMenu(true) - return inflater.inflate(R.layout.fragment_main, container, false) + binding = DataBindingUtil.inflate(inflater, R.layout.fragment_main, container, false) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val appBarConfiguration = AppBarConfiguration(navHost?.graph!!) + activity?.findViewById(R.id.home_toolbar)?.setupWithNavController(navHost!!, appBarConfiguration) + + navHost?.addOnDestinationChangedListener { _, currFrag: NavDestination, _ -> + setDisplayHomeAsUpEnabled(currFrag.id != R.id.home_fragment) + with (activity) { + val tabHide = this.let { AnimationUtils.loadAnimation(it, R.anim.tablayout_exit) } + val tabShow = this.let { AnimationUtils.loadAnimation(it, R.anim.tablayout_enter) } + if (currFrag.id != R.id.home_fragment) { + this?.findViewById(R.id.variant_tab_container)?.startAnimation(tabHide) + this?.findViewById(R.id.variant_tab_container)?.visibility = View.GONE + } else { + this?.findViewById(R.id.variant_tab_container)?.visibility = View.VISIBLE + this?.findViewById(R.id.variant_tab_container)?.startAnimation(tabShow) + } + } + } + } + + private fun setDisplayHomeAsUpEnabled(isNeeded: Boolean) { + activity?.findViewById(R.id.home_toolbar)?.navigationIcon = if (isNeeded) activity?.getDrawable(R.drawable.ic_keyboard_backspace_black_24dp) else null + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + when (item.itemId) { + R.id.toolbar_about -> { + navHost?.navigate(R.id.toAboutFragment) + return true + } + R.id.toolbar_settings -> { + navHost?.navigate(R.id.action_settingsFragment) + return true + } + R.id.dev_settings -> { + navHost?.navigate(R.id.toDevSettingsFragment) + return true + } + else -> super.onOptionsItemSelected(item) + } + + return false } } diff --git a/app/src/main/res/layout/fragment_chosen_preferences.xml b/app/src/main/res/layout/fragment_chosen_preferences.xml index 330e86cf..5b7c2ad2 100644 --- a/app/src/main/res/layout/fragment_chosen_preferences.xml +++ b/app/src/main/res/layout/fragment_chosen_preferences.xml @@ -1,7 +1,8 @@ - - diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 41812422..9d10772e 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -1,10 +1,23 @@ - + xmlns:tools="http://schemas.android.com/tools"> + + + + + + + + diff --git a/build.gradle b/build.gradle index 6fb684ea..ee938d6e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.4.0' + ext.kotlin_version = '1.3.72' repositories { google() jcenter()