From 5a2ff95c154d8882ce8ffd386b4a0501be064e9d Mon Sep 17 00:00:00 2001 From: Finn M Glas Date: Fri, 15 May 2020 14:41:31 +0200 Subject: [PATCH] Make preferences persistent --- .../com/finnmglas/launcher/MainActivity.kt | 46 +++++++++++++++---- .../finnmglas/launcher/SettingsActivity.kt | 12 +++++ app/src/main/res/values/strings.xml | 1 + 3 files changed, 51 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt index e87c065..4c5f929 100644 --- a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt @@ -16,13 +16,13 @@ import java.util.* import kotlin.concurrent.fixedRateTimer import kotlin.math.abs - -var upApp = "org.mozilla.firefox" -var downApp = "com.samsung.android.app.galaxyfinder" -var rightApp = "com.samsung.android.email.provider" -var leftApp = "com.google.android.calendar" -var volumeUpApp = "com.whatsapp" -var volumeDownApp = "com.sec.android.app.popupcalculator" +// App Launch Actions +var upApp = "" +var downApp = "" +var rightApp = "" +var leftApp = "" +var volumeUpApp = "" +var volumeDownApp = "" class MainActivity : AppCompatActivity(), GestureDetector.OnGestureListener, @@ -38,7 +38,7 @@ GestureDetector.OnDoubleTapListener { val pm = applicationContext.packageManager val intent: Intent? = pm.getLaunchIntentForPackage(packageName) intent?.addCategory(Intent.CATEGORY_LAUNCHER) - return intent; + return intent } private fun launchApp(packageName: String, fallback: String = "") { @@ -108,6 +108,36 @@ GestureDetector.OnDoubleTapListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + // Preferences + val sharedPref = this.getSharedPreferences( + getString(R.string.preference_file_key), Context.MODE_PRIVATE) + + // First Startup + if (!sharedPref.getBoolean("startedBefore", false)){ + val editor: Editor = sharedPref.edit() + + // Set Defaults + editor.putString("action_upApp", "org.mozilla.firefox") + editor.putString("action_downApp", "com.samsung.android.app.galaxyfinder") + editor.putString("action_rightApp", "com.samsung.android.email.provider") + editor.putString("action_leftApp", "com.google.android.calendar") + editor.putString("action_volumeUpApp", "com.whatsapp") + editor.putString("action_volumeDownApp", "com.sec.android.app.popupcalculator") + + editor.putBoolean("startedBefore", true) // never run this again + editor.apply() + } + + // Load settings + upApp = sharedPref.getString("action_upApp", "").toString() + downApp = sharedPref.getString("action_downApp", "").toString() + rightApp = sharedPref.getString("action_rightApp", "").toString() + leftApp = sharedPref.getString("action_leftApp", "").toString() + volumeUpApp = sharedPref.getString("action_volumeUpApp", "").toString() + volumeDownApp = sharedPref.getString("action_volumeDownApp", "").toString() + + // Flags + window.setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN diff --git a/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt b/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt index 33adfe2..092934b 100644 --- a/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt @@ -1,7 +1,9 @@ package com.finnmglas.launcher import android.annotation.SuppressLint +import android.content.Context import android.content.Intent +import android.content.SharedPreferences import android.content.pm.PackageManager import android.content.pm.ResolveInfo import android.os.Bundle @@ -28,12 +30,22 @@ class SettingsActivity : AppCompatActivity() { val value = data?.getStringExtra("value") val forApp = data?.getStringExtra("forApp") ?: return + // Save the new App to Preferences + val sharedPref = this.getSharedPreferences( + getString(R.string.preference_file_key), Context.MODE_PRIVATE) + + val editor :SharedPreferences.Editor = sharedPref.edit() + editor.putString("action_$forApp", value.toString()) + editor.apply() + + // Update running App if (forApp == "downApp") downApp = value.toString() else if (forApp == "upApp") upApp = value.toString() else if (forApp == "leftApp") leftApp = value.toString() else if (forApp == "rightApp") rightApp = value.toString() else if (forApp == "volumeDownApp") volumeDownApp = value.toString() else if (forApp == "volumeUpApp") volumeUpApp = value.toString() + } else { super.onActivityResult(requestCode, resultCode, data) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3687611..91a5eb6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,4 @@ Launcher + V3RYR4ND0MK3YCR4P