diff --git a/app/src/main/java/com/finnmglas/launcher/settings/launcher/SettingsFragmentLauncher.kt b/app/src/main/java/com/finnmglas/launcher/settings/launcher/SettingsFragmentLauncher.kt
index a8a22dc..a0a66e7 100644
--- a/app/src/main/java/com/finnmglas/launcher/settings/launcher/SettingsFragmentLauncher.kt
+++ b/app/src/main/java/com/finnmglas/launcher/settings/launcher/SettingsFragmentLauncher.kt
@@ -1,6 +1,7 @@
package com.finnmglas.launcher.settings.launcher
import android.Manifest
+import android.app.Activity
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Build
@@ -100,7 +101,6 @@ class SettingsFragmentLauncher : Fragment(), UIObject {
.putInt(PREF_VIBRANT, vibrantColor)
.apply()
- saveTheme("custom")
intendedSettingsPause = true
activity!!.recreate()
}
@@ -109,47 +109,17 @@ class SettingsFragmentLauncher : Fragment(), UIObject {
}
override fun applyTheme() {
- // Hide 'select' button for the selected theme or allow customisation
- when (getSavedTheme(context!!)) {
- "dark" -> settings_theme_dark_button_select.visibility = View.INVISIBLE
- "finn" -> settings_theme_finn_button_select.visibility = View.INVISIBLE
- "custom" ->
- settings_theme_custom_button_select.text = getString(R.string.settings_select_image)
- }
setSwitchColor(settings_launcher_switch_screen_timeout, vibrantColor)
settings_launcher_container.setBackgroundColor(dominantColor)
- setButtonColor(settings_theme_finn_button_select, vibrantColor)
- setButtonColor(settings_theme_dark_button_select, vibrantColor)
setButtonColor(settings_theme_custom_button_select, vibrantColor)
}
override fun setOnClicks() {
- // Theme changing buttons
- settings_theme_dark_button_select.setOnClickListener {
- resetToDarkTheme(activity!!)
- }
- settings_theme_finn_button_select.setOnClickListener {
- resetToDefaultTheme(activity!!)
- }
+
settings_theme_custom_button_select.setOnClickListener {
- intendedSettingsPause = true
- // Request permission (on newer APIs)
- if (Build.VERSION.SDK_INT >= 23) {
- when {
- ContextCompat.checkSelfPermission(context!!,
- Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
- -> letUserPickImage(true)
- shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)
- -> {}
- else
- -> requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
- REQUEST_PERMISSION_STORAGE
- )
- }
- }
- else letUserPickImage()
+ resetToCustomTheme(activity!!)
}
settings_launcher_switch_screen_timeout.setOnClickListener { // Toggle screen timeout
launcherPreferences.edit()
@@ -161,6 +131,27 @@ class SettingsFragmentLauncher : Fragment(), UIObject {
}
}
+ fun resetToCustomTheme(context: Activity) {
+ intendedSettingsPause = true
+ saveTheme("custom") // TODO: Fix the bug this creates (displays custom theme without chosen img)
+
+ // Request permission (on newer APIs)
+ if (Build.VERSION.SDK_INT >= 23) {
+ when {
+ ContextCompat.checkSelfPermission(context,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
+ -> letUserPickImage(true)
+ shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)
+ -> {}
+ else
+ -> requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
+ REQUEST_PERMISSION_STORAGE
+ )
+ }
+ }
+ else letUserPickImage()
+ }
+
override fun adjustLayout() {
// visually load settings
settings_launcher_switch_screen_timeout.isChecked =
@@ -187,5 +178,36 @@ class SettingsFragmentLauncher : Fragment(), UIObject {
}
}
+
+ // Load values into the theme spinner
+ val staticThemeAdapter = ArrayAdapter.createFromResource(
+ activity!!, R.array.settings_themes,
+ android.R.layout.simple_spinner_item )
+
+ staticThemeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+ settings_launcher_theme_spinner.adapter = staticThemeAdapter
+
+ var themeInt = when (getSavedTheme(activity!!)) {
+ "finn" -> 0
+ "dark" -> 1
+ "custom" -> 2
+ else -> 0
+ };
+
+ settings_launcher_theme_spinner.setSelection(themeInt)
+
+ settings_launcher_theme_spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+ override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
+ when (position) {
+ 0 -> if (getSavedTheme(activity!!) != "finn") resetToDefaultTheme(activity!!)
+ 1 -> if (getSavedTheme(activity!!) != "dark") resetToDarkTheme(activity!!)
+ 2 -> if (getSavedTheme(activity!!) != "custom") resetToCustomTheme(activity!!)
+ }
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {
+
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/settings_launcher.xml b/app/src/main/res/layout/settings_launcher.xml
index 4d105a7..5daaea3 100644
--- a/app/src/main/res/layout/settings_launcher.xml
+++ b/app/src/main/res/layout/settings_launcher.xml
@@ -85,10 +85,24 @@
android:id="@+id/settings_launcher_theme_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:entries="@array/settings_launcher_time_formats"
+ android:entries="@array/settings_themes"
android:spinnerMode="dropdown" />
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 3f27820..a259b12 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -48,6 +48,13 @@
Select
Change Image
Examples
+
+
+ - Default
+ - Dark
+ - Custom
+
+
Keep screen on
Date format