From 6c5df6189ed6679f3b23c0f4ceabf04b20cbc397 Mon Sep 17 00:00:00 2001 From: Finn M Glas Date: Sun, 24 May 2020 19:24:38 +0200 Subject: [PATCH] Make chosen background images persistent - by saving the image Uri in SharedPreferences --- .../main/java/com/finnmglas/launcher/MainActivity.kt | 12 ++++++++++-- .../launcher/settings/SettingsFragmentTheme.kt | 9 +++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt index 75cd445..b7ad586 100644 --- a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt +++ b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt @@ -2,8 +2,10 @@ package com.finnmglas.launcher import android.content.Context import android.content.Intent +import android.net.Uri import android.os.AsyncTask import android.os.Bundle +import android.provider.MediaStore import android.util.DisplayMetrics import android.view.* import androidx.appcompat.app.AppCompatActivity @@ -51,8 +53,14 @@ class MainActivity : AppCompatActivity(), currentTheme = getSavedTheme(this) - if (currentTheme == "custom" && background == null) - currentTheme = saveTheme(this, "finn") + if (currentTheme == "custom") { + try { + background = MediaStore.Images.Media.getBitmap(this.contentResolver, Uri.parse(sharedPref.getString("background_uri", ""))) + } catch (e: Exception) { } + + if (background == null) + currentTheme = saveTheme(this, "finn") + } setTheme( when (currentTheme) { diff --git a/app/src/main/java/com/finnmglas/launcher/settings/SettingsFragmentTheme.kt b/app/src/main/java/com/finnmglas/launcher/settings/SettingsFragmentTheme.kt index 0609fd9..7d479ed 100644 --- a/app/src/main/java/com/finnmglas/launcher/settings/SettingsFragmentTheme.kt +++ b/app/src/main/java/com/finnmglas/launcher/settings/SettingsFragmentTheme.kt @@ -1,7 +1,9 @@ package com.finnmglas.launcher.settings import android.Manifest +import android.content.Context import android.content.Intent +import android.content.SharedPreferences import android.content.pm.PackageManager import android.os.Build import android.os.Bundle @@ -92,6 +94,13 @@ class SettingsFragmentTheme : Fragment() { if (data == null) return val imageUri = data.data + + /* Save image Uri as string */ + val editor: SharedPreferences.Editor = context!!.getSharedPreferences( + context!!.getString(R.string.preference_file_key), Context.MODE_PRIVATE).edit() + editor.putString("background_uri", imageUri.toString()) + editor.apply() + background = MediaStore.Images.Media.getBitmap(this.context!!.contentResolver, imageUri) saveTheme(this.context!!, "custom")