From 55b33df842530d38fd5d6984d37475a414d56cd2 Mon Sep 17 00:00:00 2001 From: ostajic Date: Fri, 18 Sep 2020 18:55:05 +0200 Subject: [PATCH 1/2] Unmount older mounts --- .../vanced/manager/core/installer/RootSplitInstallerService.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/vanced/manager/core/installer/RootSplitInstallerService.kt b/app/src/main/java/com/vanced/manager/core/installer/RootSplitInstallerService.kt index 9887833a..829492b3 100644 --- a/app/src/main/java/com/vanced/manager/core/installer/RootSplitInstallerService.kt +++ b/app/src/main/java/com/vanced/manager/core/installer/RootSplitInstallerService.kt @@ -218,6 +218,7 @@ class RootSplitInstallerService: Service() { private fun linkVanced(apkFPath: String, path: String): Boolean { Shell.su("am force-stop $yPkg").exec() + val umountv = Shell.su("""for i in ${'$'}(ls /data/app/ | grep com.google.android.youtube | tr " "); do umount -l "/data/app/${"$"}i/base.apk"; done """) val response = Shell.su("""su -mm -c "mount -o bind $apkFPath $path"""").exec() Thread.sleep(500) From 215f4801dfaa84337f0bfc45c017b7c441699304 Mon Sep 17 00:00:00 2001 From: ostajic Date: Sat, 19 Sep 2020 09:07:32 +0200 Subject: [PATCH 2/2] Back Button Fix --- .../java/com/vanced/manager/ui/MainActivity.kt | 12 ++++++------ .../vanced/manager/ui/fragments/AboutFragment.kt | 11 +++++++++++ .../fragments/ChosenPreferenceDialogFragment.kt | 10 ++++++++++ .../manager/ui/fragments/DevSettingsFragment.kt | 9 +++++++++ .../vanced/manager/ui/fragments/HomeFragment.kt | 11 ++++++++++- .../vanced/manager/ui/fragments/MainFragment.kt | 15 +++++++++++++-- .../ui/fragments/ManagerChangelogFragment.kt | 12 ++++++++++++ .../ui/fragments/MicrogChangelogFragment.kt | 12 ++++++++++++ .../ui/fragments/MusicChangelogFragment.kt | 8 ++++++++ .../manager/ui/fragments/SettingsFragment.kt | 11 +++++++++++ .../manager/ui/fragments/URLChangeFragment.kt | 10 ++++++++++ .../manager/ui/fragments/UpdateCheckFragment.kt | 9 +++++++++ .../ui/fragments/VancedChangelogFragment.kt | 13 ++++++++++++- .../fragments/VancedLanguageSelectionFragment.kt | 8 ++++++++ .../ui/fragments/VancedThemeSelectionFragment.kt | 9 ++++++++- 15 files changed, 149 insertions(+), 11 deletions(-) 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 b190c3f9..d7c8276c 100644 --- a/app/src/main/java/com/vanced/manager/ui/MainActivity.kt +++ b/app/src/main/java/com/vanced/manager/ui/MainActivity.kt @@ -7,7 +7,11 @@ import android.view.MenuItem import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.databinding.DataBindingUtil +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import androidx.navigation.findNavController import androidx.navigation.fragment.NavHostFragment +import androidx.navigation.fragment.findNavController import androidx.preference.PreferenceManager.getDefaultSharedPreferences import com.crowdin.platform.Crowdin import com.crowdin.platform.LoadingStateListener @@ -19,11 +23,13 @@ import com.vanced.manager.R import com.vanced.manager.adapter.SectionVariantAdapter import com.vanced.manager.databinding.ActivityMainBinding import com.vanced.manager.ui.dialogs.DialogContainer +import com.vanced.manager.ui.fragments.MainFragment import com.vanced.manager.ui.fragments.UpdateCheckFragment import com.vanced.manager.utils.AppUtils.installing import com.vanced.manager.utils.InternetTools import com.vanced.manager.utils.PackageHelper import com.vanced.manager.utils.ThemeHelper.setFinalTheme +import kotlinx.android.synthetic.main.fragment_main.* import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -112,12 +118,6 @@ class MainActivity : AppCompatActivity() { binding.mainTablayout.addOnTabSelectedListener(tabListener) } - override fun onBackPressed() { - super.onBackPressed() - val navHost = supportFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment - navHost.navController.popBackStack() - } - override fun onOptionsItemSelected(item: MenuItem): Boolean { if (installing) { return false diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/AboutFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/AboutFragment.kt index 9d1ea5dd..266713a6 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/AboutFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/AboutFragment.kt @@ -7,13 +7,17 @@ import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels +import androidx.navigation.findNavController +import androidx.navigation.fragment.findNavController import androidx.preference.PreferenceManager import com.vanced.manager.R import com.vanced.manager.databinding.FragmentAboutBinding import com.vanced.manager.ui.viewmodels.AboutViewModel +import kotlinx.android.synthetic.main.fragment_main.* class AboutFragment : Fragment() { @@ -38,6 +42,13 @@ class AboutFragment : Fragment() { val viewModel: AboutViewModel by viewModels() binding.viewModel = viewModel + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + findNavController().popBackStack() + } + } + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback) + view.setOnTouchListener { _, event: MotionEvent -> val eventAction = event.action 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 84a29ea2..925b05fe 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 @@ -7,9 +7,11 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.activity.OnBackPressedCallback import androidx.core.content.edit import androidx.databinding.DataBindingUtil import androidx.fragment.app.DialogFragment +import androidx.navigation.fragment.findNavController import com.vanced.manager.R import com.vanced.manager.databinding.FragmentChosenPreferencesBinding import java.util.* @@ -40,6 +42,14 @@ class ChosenPreferenceDialogFragment : DialogFragment() { newPrefs.add(loc.getDisplayLanguage(loc).capitalize(Locale.ROOT)) } } + + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + findNavController().popBackStack() + } + } + requireActivity().onBackPressedDispatcher.addCallback(this, callback) + binding.chosenTheme.text = requireActivity().getString(R.string.chosen_theme, prefs.getString("theme", "dark")?.capitalize(Locale.ROOT)) binding.chosenLang.text = requireActivity().getString(R.string.chosen_lang, newPrefs.joinToString()) diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/DevSettingsFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/DevSettingsFragment.kt index 8b1b1352..3e90b726 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/DevSettingsFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/DevSettingsFragment.kt @@ -6,8 +6,10 @@ import android.os.Build import android.os.Bundle import android.util.Log import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AlertDialog import androidx.core.content.FileProvider +import androidx.navigation.fragment.findNavController import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceManager @@ -24,6 +26,13 @@ class DevSettingsFragment: PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.dev_settings, rootKey) + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + findNavController().popBackStack() + } + } + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback) + val ftSwitch: Preference? = findPreference("firststart_switch") val prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()) diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/HomeFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/HomeFragment.kt index 48c917b3..6272346d 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/HomeFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/HomeFragment.kt @@ -5,12 +5,14 @@ import android.os.Bundle import android.view.* import android.view.animation.AccelerateDecelerateInterpolator import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.lifecycle.Observer import androidx.localbroadcastmanager.content.LocalBroadcastManager import androidx.navigation.findNavController +import androidx.navigation.fragment.findNavController import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator import com.vanced.manager.R @@ -52,7 +54,14 @@ open class HomeFragment : Fragment(), View.OnClickListener { view.findNavController().navigate(content) } }) - + + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + requireActivity().finish() + } + } + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback) + with(binding) { includeChangelogsLayout.changelogButton.setOnClickListener(this@HomeFragment) 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 dca5f541..f0dcc06c 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 @@ -6,18 +6,22 @@ import android.view.MenuItem import android.view.View import android.view.ViewGroup import android.view.animation.AnimationUtils +import androidx.activity.OnBackPressedCallback +import androidx.activity.addCallback import androidx.core.content.ContextCompat import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.navigation.NavController import androidx.navigation.NavDestination import androidx.navigation.fragment.NavHostFragment +import androidx.navigation.fragment.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.setupWithNavController import com.google.android.material.appbar.MaterialToolbar import com.google.android.material.tabs.TabLayout import com.vanced.manager.R import com.vanced.manager.databinding.FragmentMainBinding +import com.vanced.manager.ui.MainActivity class MainFragment : Fragment() { @@ -32,12 +36,19 @@ class MainFragment : Fragment() { 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 navHostFragment = childFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment navHost = navHostFragment.navController - + + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + requireActivity().finish() + } + } + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback) + val appBarConfiguration = AppBarConfiguration(navHost.graph) requireActivity().findViewById(R.id.home_toolbar).setupWithNavController(navHost, appBarConfiguration) val tabLayout = requireActivity().findViewById(R.id.main_tablayout) diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/ManagerChangelogFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/ManagerChangelogFragment.kt index 61124a9c..1559f34c 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/ManagerChangelogFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/ManagerChangelogFragment.kt @@ -4,9 +4,11 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.activity.OnBackPressedCallback import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels +import androidx.navigation.fragment.findNavController import com.vanced.manager.R import com.vanced.manager.databinding.FragmentManagerChangelogBinding import com.vanced.manager.ui.viewmodels.HomeViewModel @@ -25,4 +27,14 @@ class ManagerChangelogFragment : Fragment() { return binding.root } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + findNavController().popBackStack() + } + } + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback) + } + } diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/MicrogChangelogFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/MicrogChangelogFragment.kt index 9391a37a..9acae270 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/MicrogChangelogFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/MicrogChangelogFragment.kt @@ -4,9 +4,11 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.activity.OnBackPressedCallback import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels +import androidx.navigation.fragment.findNavController import com.vanced.manager.R import com.vanced.manager.databinding.FragmentMicrogChangelogBinding import com.vanced.manager.ui.viewmodels.HomeViewModel @@ -25,4 +27,14 @@ class MicrogChangelogFragment : Fragment() { return binding.root } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + findNavController().popBackStack() + } + } + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback) + } + } diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/MusicChangelogFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/MusicChangelogFragment.kt index ee8f88bd..be790d88 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/MusicChangelogFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/MusicChangelogFragment.kt @@ -4,9 +4,11 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.activity.OnBackPressedCallback import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels +import androidx.navigation.fragment.findNavController import com.vanced.manager.R import com.vanced.manager.databinding.FragmentMusicChangelogBinding import com.vanced.manager.ui.viewmodels.HomeViewModel @@ -27,6 +29,12 @@ class MusicChangelogFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) binding.viewModel = viewModel + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + findNavController().popBackStack() + } + } + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback) } } diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/SettingsFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/SettingsFragment.kt index 514acbe8..cb8251f2 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/SettingsFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/SettingsFragment.kt @@ -4,9 +4,13 @@ import android.os.Bundle import android.view.Menu import android.view.MenuInflater import android.widget.Toast +import androidx.activity.OnBackPressedCallback +import androidx.navigation.findNavController +import androidx.navigation.fragment.findNavController import androidx.preference.* import com.google.firebase.messaging.FirebaseMessaging import com.vanced.manager.R +import kotlinx.android.synthetic.main.fragment_main.* import java.io.File class SettingsFragment : PreferenceFragmentCompat() { @@ -17,6 +21,13 @@ class SettingsFragment : PreferenceFragmentCompat() { activity?.title = getString(R.string.title_settings) setHasOptionsMenu(true) + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + findNavController().popBackStack() + } + } + requireActivity().onBackPressedDispatcher.addCallback(this, callback) + findPreference("update_check")?.setOnPreferenceClickListener { UpdateCheckFragment().show(childFragmentManager.beginTransaction(), "Update Center") true diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/URLChangeFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/URLChangeFragment.kt index cf5d4f5d..a62bdc56 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/URLChangeFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/URLChangeFragment.kt @@ -8,7 +8,9 @@ import android.view.View import android.view.ViewGroup import android.widget.EditText import android.widget.TextView +import androidx.activity.OnBackPressedCallback import androidx.fragment.app.DialogFragment +import androidx.navigation.fragment.findNavController import androidx.preference.PreferenceManager import com.google.android.material.button.MaterialButton import com.vanced.manager.R @@ -42,6 +44,14 @@ class URLChangeFragment : DialogFragment() { prefs.edit().putString("install_url", finalUrl).apply() dismiss() } + + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + findNavController().popBackStack() + } + } + requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback) + view.findViewById(R.id.url_reset).setOnClickListener { prefs.edit().putString("install_url", baseUrl).apply() dismiss() diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/UpdateCheckFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/UpdateCheckFragment.kt index e899004d..4fdf5e98 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/UpdateCheckFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/UpdateCheckFragment.kt @@ -14,8 +14,10 @@ import android.widget.Button import android.widget.ProgressBar import android.widget.TextView import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.core.content.FileProvider import androidx.fragment.app.DialogFragment +import androidx.navigation.fragment.findNavController import com.downloader.OnDownloadListener import com.downloader.PRDownloader import com.google.android.material.button.MaterialButton @@ -46,6 +48,13 @@ class UpdateCheckFragment : DialogFragment() { view.findViewById