diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 30baf2c..ec99e9b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,6 +8,11 @@ tools:ignore="QueryAllPackagesPermission" /> + + + + + + \ No newline at end of file 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 72f2075..c40ab9b 100644 --- a/app/src/main/java/de/jrpie/android/launcher/Functions.kt +++ b/app/src/main/java/de/jrpie/android/launcher/Functions.kt @@ -2,10 +2,12 @@ package de.jrpie.android.launcher import android.app.Activity import android.app.AlertDialog +import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.SharedPreferences import android.content.pm.PackageManager +import android.content.pm.ResolveInfo import android.graphics.BlendMode import android.graphics.BlendModeColorFilter import android.graphics.ColorMatrix @@ -19,6 +21,7 @@ import android.os.Bundle import android.os.SystemClock import android.provider.Settings import android.util.DisplayMetrics +import android.util.Log import android.view.KeyEvent import android.view.View import android.view.Window @@ -101,6 +104,20 @@ fun getPreferences(context: Context): SharedPreferences{ ) } +fun setDefaultHomeScreen(context: Context, checkDefault: Boolean = false) { + if(checkDefault) { + val testIntent = Intent(Intent.ACTION_MAIN) + testIntent.addCategory(Intent.CATEGORY_HOME) + val defaultHome = testIntent.resolveActivity(context.packageManager)?.packageName + if(defaultHome == context.packageName){ + // Launcher is already the default home app + return + } + } + val intent = Intent(Settings.ACTION_HOME_SETTINGS) + context.startActivity(intent) +} + /* Activity related */ fun isInstalled(uri: String, context: Context): Boolean { diff --git a/app/src/main/java/de/jrpie/android/launcher/list/apps/ListFragmentApps.kt b/app/src/main/java/de/jrpie/android/launcher/list/apps/ListFragmentApps.kt index af39045..183dc00 100644 --- a/app/src/main/java/de/jrpie/android/launcher/list/apps/ListFragmentApps.kt +++ b/app/src/main/java/de/jrpie/android/launcher/list/apps/ListFragmentApps.kt @@ -7,9 +7,8 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager import de.jrpie.android.launcher.PREF_SEARCH_AUTO_KEYBOARD -import de.jrpie.android.launcher.R -import de.jrpie.android.launcher.databinding.ListAppsBinding import de.jrpie.android.launcher.UIObject +import de.jrpie.android.launcher.databinding.ListAppsBinding import de.jrpie.android.launcher.getPreferences import de.jrpie.android.launcher.list.ListActivity import de.jrpie.android.launcher.list.forGesture 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 7382ae9..9ca2fe3 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 @@ -31,6 +31,7 @@ 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 /** @@ -57,6 +58,7 @@ class SettingsFragmentLauncher : Fragment(), UIObject { override fun applyTheme() { + setButtonColor(binding.settingsLauncherButtonChooseHomescreen, vibrantColor) setSwitchColor(binding.settingsLauncherSwitchScreenTimeout, vibrantColor) setSwitchColor(binding.settingsLauncherSwitchScreenFull, vibrantColor) setSwitchColor(binding.settingsLauncherSwitchAutoLaunch, vibrantColor) @@ -83,6 +85,10 @@ class SettingsFragmentLauncher : Fragment(), UIObject { } } + binding.settingsLauncherButtonChooseHomescreen.setOnClickListener { + setDefaultHomeScreen(requireContext(), checkDefault = false) + } + binding.settingsLauncherButtonChooseWallpaper.setOnClickListener { // https://github.com/LineageOS/android_packages_apps_Trebuchet/blob/6caab89b21b2b91f0a439e1fd8c4510dcb255819/src/com/android/launcher3/views/OptionsPopupView.java#L271 val intent = Intent(Intent.ACTION_SET_WALLPAPER) diff --git a/app/src/main/java/de/jrpie/android/launcher/tutorial/tabs/TutorialFragmentFinish.kt b/app/src/main/java/de/jrpie/android/launcher/tutorial/tabs/TutorialFragmentFinish.kt index ae3e723..36f4be3 100644 --- a/app/src/main/java/de/jrpie/android/launcher/tutorial/tabs/TutorialFragmentFinish.kt +++ b/app/src/main/java/de/jrpie/android/launcher/tutorial/tabs/TutorialFragmentFinish.kt @@ -54,6 +54,8 @@ class TutorialFragmentFinish : Fragment(), UIObject { .apply() } } + context?.let { setDefaultHomeScreen(it, checkDefault = true) } + activity?.finish() } } diff --git a/app/src/main/res/layout/settings_launcher.xml b/app/src/main/res/layout/settings_launcher.xml index 9c582bc..2a63467 100644 --- a/app/src/main/res/layout/settings_launcher.xml +++ b/app/src/main/res/layout/settings_launcher.xml @@ -16,6 +16,21 @@ android:paddingRight="32sp" tools:context=".settings.meta.SettingsFragmentMeta"> + + +