From ef16d7057609b72b6ac44290a23fd0dfb2b9dea0 Mon Sep 17 00:00:00 2001 From: Josia Pietsch Date: Wed, 28 Aug 2024 10:14:21 +0200 Subject: [PATCH] feature: home button always starts HomeActivity Removed intendedSettingsPause and intendedChoosePause. Using android:clearTaskOnLaunch together with android:launchMode="singleTask" instead. This makes the home button work properly. --- app/src/main/AndroidManifest.xml | 3 +++ .../java/de/jrpie/android/launcher/Functions.kt | 5 ----- .../de/jrpie/android/launcher/list/ListActivity.kt | 2 -- .../launcher/list/apps/AppsRecyclerAdapter.kt | 3 --- .../android/launcher/settings/SettingsActivity.kt | 14 -------------- .../settings/actions/SettingsFragmentActions.kt | 3 --- .../actions/SettingsFragmentActionsRecycler.kt | 2 -- .../settings/launcher/SettingsFragmentLauncher.kt | 1 - .../launcher/settings/meta/SettingsFragmentMeta.kt | 7 ------- 9 files changed, 3 insertions(+), 37 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 54b8f6d..ee17c5b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,6 +19,9 @@ diff --git a/app/src/main/java/de/jrpie/android/launcher/Functions.kt b/app/src/main/java/de/jrpie/android/launcher/Functions.kt index 254b826..686b0b4 100644 --- a/app/src/main/java/de/jrpie/android/launcher/Functions.kt +++ b/app/src/main/java/de/jrpie/android/launcher/Functions.kt @@ -45,10 +45,8 @@ import android.widget.Toast import de.jrpie.android.launcher.list.ListActivity import de.jrpie.android.launcher.list.apps.AppInfo import de.jrpie.android.launcher.list.apps.AppsRecyclerAdapter -import de.jrpie.android.launcher.list.intendedChoosePause import de.jrpie.android.launcher.list.other.LauncherAction import de.jrpie.android.launcher.settings.SettingsActivity -import de.jrpie.android.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.tutorial.TutorialActivity import kotlin.contracts.contract @@ -331,7 +329,6 @@ fun resetToDefaultTheme(activity: Activity) { saveTheme(activity,"finn") loadSettings(activity) - intendedSettingsPause = true activity.recreate() } @@ -346,7 +343,6 @@ fun resetToDarkTheme(activity: Activity) { saveTheme(activity,"dark") - intendedSettingsPause = true activity.recreate() } @@ -369,7 +365,6 @@ fun openTutorial(activity: Activity){ fun openAppsList(activity: Activity){ val intent = Intent(activity, ListActivity::class.java) intent.putExtra("intention", ListActivity.ListActivityIntention.VIEW.toString()) - intendedSettingsPause = true activity.startActivity(intent) } diff --git a/app/src/main/java/de/jrpie/android/launcher/list/ListActivity.kt b/app/src/main/java/de/jrpie/android/launcher/list/ListActivity.kt index 0aef9c1..e7916a7 100644 --- a/app/src/main/java/de/jrpie/android/launcher/list/ListActivity.kt +++ b/app/src/main/java/de/jrpie/android/launcher/list/ListActivity.kt @@ -26,8 +26,6 @@ import de.jrpie.android.launcher.list.other.ListFragmentOther import de.jrpie.android.launcher.vibrantColor -var intendedChoosePause = false // know when to close - // TODO: Better solution for this intercommunication functionality (used in list-fragments) var intention = ListActivity.ListActivityIntention.VIEW var forGesture: String? = null diff --git a/app/src/main/java/de/jrpie/android/launcher/list/apps/AppsRecyclerAdapter.kt b/app/src/main/java/de/jrpie/android/launcher/list/apps/AppsRecyclerAdapter.kt index e2f110b..9331e11 100644 --- a/app/src/main/java/de/jrpie/android/launcher/list/apps/AppsRecyclerAdapter.kt +++ b/app/src/main/java/de/jrpie/android/launcher/list/apps/AppsRecyclerAdapter.kt @@ -24,7 +24,6 @@ import de.jrpie.android.launcher.getSavedTheme import de.jrpie.android.launcher.launch import de.jrpie.android.launcher.launchApp import de.jrpie.android.launcher.list.ListActivity -import de.jrpie.android.launcher.list.intendedChoosePause import de.jrpie.android.launcher.loadApps import de.jrpie.android.launcher.openAppSettings import de.jrpie.android.launcher.transformGrayscale @@ -99,12 +98,10 @@ class AppsRecyclerAdapter(val activity: Activity, popup.setOnMenuItemClickListener { when (it.itemId) { R.id.app_menu_delete -> { - intendedChoosePause = true uninstallApp(appPackageName, user, activity) true } R.id.app_menu_info -> { - intendedChoosePause = true openAppSettings(appPackageName, user, activity) true } diff --git a/app/src/main/java/de/jrpie/android/launcher/settings/SettingsActivity.kt b/app/src/main/java/de/jrpie/android/launcher/settings/SettingsActivity.kt index d433dae..18b1bd5 100644 --- a/app/src/main/java/de/jrpie/android/launcher/settings/SettingsActivity.kt +++ b/app/src/main/java/de/jrpie/android/launcher/settings/SettingsActivity.kt @@ -16,9 +16,6 @@ import de.jrpie.android.launcher.settings.actions.SettingsFragmentActions import de.jrpie.android.launcher.settings.launcher.SettingsFragmentLauncher import de.jrpie.android.launcher.settings.meta.SettingsFragmentMeta - -var intendedSettingsPause = false // know when to close - /** * The [SettingsActivity] is a tabbed activity: * @@ -51,16 +48,6 @@ class SettingsActivity: AppCompatActivity(), UIObject { super.onStart() } - override fun onResume() { - super.onResume() - intendedSettingsPause = false - } - - override fun onPause() { - super.onPause() - if (!intendedSettingsPause) finish() - } - override fun applyTheme() { //settings_system.setTextColor(vibrantColor) //settings_close.setTextColor(vibrantColor) @@ -72,7 +59,6 @@ class SettingsActivity: AppCompatActivity(), UIObject { binding.settingsClose.setOnClickListener { finish() } // open device settings (see https://stackoverflow.com/a/62092663/12787264) binding.settingsSystem.setOnClickListener { - intendedSettingsPause = true startActivity(Intent(Settings.ACTION_SETTINGS)) } } diff --git a/app/src/main/java/de/jrpie/android/launcher/settings/actions/SettingsFragmentActions.kt b/app/src/main/java/de/jrpie/android/launcher/settings/actions/SettingsFragmentActions.kt index fdf4bb1..21bb948 100644 --- a/app/src/main/java/de/jrpie/android/launcher/settings/actions/SettingsFragmentActions.kt +++ b/app/src/main/java/de/jrpie/android/launcher/settings/actions/SettingsFragmentActions.kt @@ -16,7 +16,6 @@ import de.jrpie.android.launcher.databinding.SettingsActionsBinding import de.jrpie.android.launcher.getPreferences import de.jrpie.android.launcher.list.ListActivity import de.jrpie.android.launcher.setButtonColor -import de.jrpie.android.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.vibrantColor @@ -63,14 +62,12 @@ SettingsFragmentActions : Fragment(), UIObject { binding!!.settingsActionsButtonViewApps.setOnClickListener{ val intent = Intent(this.context, ListActivity::class.java) intent.putExtra("intention", ListActivity.ListActivityIntention.VIEW.toString()) - intendedSettingsPause = true startActivity(intent) } binding!!.settingsActionsButtonInstallApps.setOnClickListener{ try { val intent = Intent(Intent.ACTION_MAIN) intent.addCategory(Intent.CATEGORY_APP_MARKET) - intendedSettingsPause = true startActivity(intent) } catch (e: ActivityNotFoundException) { Toast.makeText(context, getString(R.string.settings_apps_toast_store_not_found), Toast.LENGTH_SHORT).show() diff --git a/app/src/main/java/de/jrpie/android/launcher/settings/actions/SettingsFragmentActionsRecycler.kt b/app/src/main/java/de/jrpie/android/launcher/settings/actions/SettingsFragmentActionsRecycler.kt index b53f63c..d8e3026 100644 --- a/app/src/main/java/de/jrpie/android/launcher/settings/actions/SettingsFragmentActionsRecycler.kt +++ b/app/src/main/java/de/jrpie/android/launcher/settings/actions/SettingsFragmentActionsRecycler.kt @@ -15,7 +15,6 @@ import android.widget.ImageView import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import de.jrpie.android.launcher.list.other.LauncherAction -import de.jrpie.android.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.databinding.SettingsActionsRecyclerBinding import java.lang.Exception @@ -144,7 +143,6 @@ class ActionsRecyclerAdapter(val activity: Activity): val intent = Intent(activity, ListActivity::class.java) intent.putExtra("intention", ListActivity.ListActivityIntention.PICK.toString()) intent.putExtra("forGesture", gesture.id) // for which action we choose the app - intendedSettingsPause = true activity.startActivityForResult(intent, REQUEST_CHOOSE_APP ) diff --git a/app/src/main/java/de/jrpie/android/launcher/settings/launcher/SettingsFragmentLauncher.kt b/app/src/main/java/de/jrpie/android/launcher/settings/launcher/SettingsFragmentLauncher.kt index 1be4e99..7c3f1ff 100644 --- a/app/src/main/java/de/jrpie/android/launcher/settings/launcher/SettingsFragmentLauncher.kt +++ b/app/src/main/java/de/jrpie/android/launcher/settings/launcher/SettingsFragmentLauncher.kt @@ -28,7 +28,6 @@ import de.jrpie.android.launcher.resetToDefaultTheme import de.jrpie.android.launcher.setButtonColor import de.jrpie.android.launcher.setSwitchColor import de.jrpie.android.launcher.setWindowFlags -import de.jrpie.android.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.vibrantColor import de.jrpie.android.launcher.databinding.SettingsLauncherBinding import de.jrpie.android.launcher.setDefaultHomeScreen diff --git a/app/src/main/java/de/jrpie/android/launcher/settings/meta/SettingsFragmentMeta.kt b/app/src/main/java/de/jrpie/android/launcher/settings/meta/SettingsFragmentMeta.kt index aee0095..28f321f 100644 --- a/app/src/main/java/de/jrpie/android/launcher/settings/meta/SettingsFragmentMeta.kt +++ b/app/src/main/java/de/jrpie/android/launcher/settings/meta/SettingsFragmentMeta.kt @@ -4,7 +4,6 @@ import android.app.AlertDialog import android.content.Intent import android.net.Uri import android.os.Bundle -import android.provider.Settings import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -14,7 +13,6 @@ import de.jrpie.android.launcher.UIObject import de.jrpie.android.launcher.openNewTabWindow import de.jrpie.android.launcher.resetSettings import de.jrpie.android.launcher.setButtonColor -import de.jrpie.android.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.tutorial.TutorialActivity import de.jrpie.android.launcher.vibrantColor import de.jrpie.android.launcher.databinding.SettingsMetaBinding @@ -70,7 +68,6 @@ class SettingsFragmentMeta : Fragment(), UIObject { override fun setOnClicks() { binding.settingsMetaButtonViewTutorial.setOnClickListener { - intendedSettingsPause = true startActivity(Intent(this.context, TutorialActivity::class.java)) } @@ -92,7 +89,6 @@ class SettingsFragmentMeta : Fragment(), UIObject { // report a bug binding.settingsMetaButtonReportBug.setOnClickListener { - intendedSettingsPause = true openNewTabWindow( getString(R.string.settings_meta_report_bug_link), requireContext() @@ -103,7 +99,6 @@ class SettingsFragmentMeta : Fragment(), UIObject { // contact developer binding.settingsMetaButtonContact.setOnClickListener { - intendedSettingsPause = true openNewTabWindow( getString(R.string.settings_meta_contact_url), requireContext() @@ -112,7 +107,6 @@ class SettingsFragmentMeta : Fragment(), UIObject { // contact fork developer binding.settingsMetaButtonForkContact.setOnClickListener { - intendedSettingsPause = true openNewTabWindow( getString(R.string.settings_meta_fork_contact_url), requireContext() @@ -121,7 +115,6 @@ class SettingsFragmentMeta : Fragment(), UIObject { // privacy policy binding.settingsMetaButtonPrivacy.setOnClickListener { - intendedSettingsPause = true openNewTabWindow( getString(R.string.settings_meta_privacy_url), requireContext()