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.
This commit is contained in:
Josia Pietsch 2024-08-28 10:14:21 +02:00
parent 2e82fec002
commit ef16d70576
Signed by: jrpie
GPG key ID: E70B571D66986A2D
9 changed files with 3 additions and 37 deletions

View file

@ -19,6 +19,9 @@
<activity android:name=".HomeActivity"
android:exported="true"
android:excludeFromRecents="true"
android:clearTaskOnLaunch="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>

View file

@ -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)
}

View file

@ -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

View file

@ -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
}

View file

@ -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<UIObject>.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))
}
}

View file

@ -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()

View file

@ -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
)

View file

@ -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

View file

@ -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()