diff --git a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt
index 56a9e97..d59dd5c 100644
--- a/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt
+++ b/app/src/main/java/com/finnmglas/launcher/ChooseActivity.kt
@@ -25,6 +25,13 @@ class ChooseActivity : AppCompatActivity() {
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+ setTheme(
+ when (getSavedTheme(this)) {
+ "dark" -> R.style.darkTheme
+ "finn" -> R.style.finnmglasTheme
+ else -> R.style.finnmglasTheme
+ }
+ )
setContentView(R.layout.activity_choose)
// As older APIs somehow do not recognize the xml defined onClick
diff --git a/app/src/main/java/com/finnmglas/launcher/FirstStartupActivity.kt b/app/src/main/java/com/finnmglas/launcher/FirstStartupActivity.kt
index e849653..58e9399 100644
--- a/app/src/main/java/com/finnmglas/launcher/FirstStartupActivity.kt
+++ b/app/src/main/java/com/finnmglas/launcher/FirstStartupActivity.kt
@@ -31,6 +31,13 @@ class FirstStartupActivity : AppCompatActivity(){
)
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+ setTheme(
+ when (getSavedTheme(this)) {
+ "dark" -> R.style.darkTheme
+ "finn" -> R.style.finnmglasTheme
+ else -> R.style.finnmglasTheme
+ }
+ )
setContentView(R.layout.activity_firststartup)
hintText.blink() // animate
diff --git a/app/src/main/java/com/finnmglas/launcher/Functions.kt b/app/src/main/java/com/finnmglas/launcher/Functions.kt
index cf92058..5818569 100644
--- a/app/src/main/java/com/finnmglas/launcher/Functions.kt
+++ b/app/src/main/java/com/finnmglas/launcher/Functions.kt
@@ -124,6 +124,22 @@ fun openNewTabWindow(urls: String, context : Context) {
/** Settings related functions */
+fun getSavedTheme(context : Context) : String {
+ val sharedPref = context.getSharedPreferences(
+ context.getString(R.string.preference_file_key), Context.MODE_PRIVATE)
+
+ return sharedPref.getString("theme", "finnmglas").toString()
+}
+
+fun saveTheme(context : Context, themeName : String) {
+ val sharedPref = context.getSharedPreferences(
+ context.getString(R.string.preference_file_key), Context.MODE_PRIVATE)
+
+ val editor: SharedPreferences.Editor = sharedPref.edit()
+ editor.putString("theme", themeName)
+ editor.apply()
+}
+
fun openAppSettings(pkg :String, context:Context){
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
intent.data = Uri.parse("package:$pkg")
diff --git a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt
index 2a48e33..66fb2eb 100644
--- a/app/src/main/java/com/finnmglas/launcher/MainActivity.kt
+++ b/app/src/main/java/com/finnmglas/launcher/MainActivity.kt
@@ -17,6 +17,8 @@ import kotlin.math.abs
class MainActivity : AppCompatActivity(),
GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener {
+ private var currentTheme = "" // keep track of theme changes
+
/** Variables for this activity */
private lateinit var mDetector: GestureDetectorCompat
@@ -45,6 +47,14 @@ class MainActivity : AppCompatActivity(),
)
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+ currentTheme = getSavedTheme(this)
+ setTheme(
+ when (currentTheme) {
+ "dark" -> R.style.darkTheme
+ "finn" -> R.style.finnmglasTheme
+ else -> R.style.finnmglasTheme
+ }
+ )
setContentView(R.layout.activity_main)
// Start by showing the settings icon
@@ -78,6 +88,8 @@ class MainActivity : AppCompatActivity(),
override fun onResume() {
super.onResume()
+ if (currentTheme != getSavedTheme(this)) recreate()
+
val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
val timeFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault())
diff --git a/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt b/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt
index f068b94..35e4e5e 100644
--- a/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt
+++ b/app/src/main/java/com/finnmglas/launcher/SettingsActivity.kt
@@ -22,6 +22,15 @@ class SettingsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+
+ setTheme(
+ when (getSavedTheme(this)) {
+ "dark" -> R.style.darkTheme
+ "finn" -> R.style.finnmglasTheme
+ else -> R.style.finnmglasTheme
+ }
+ )
+
setContentView(R.layout.activity_settings)
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
@@ -178,14 +187,18 @@ class SettingsActivity : AppCompatActivity() {
/** Theme - related */
fun chooseDarkTheme(view: View) {
-
+ saveTheme(this, "dark")
+ recreate()
}
fun chooseFinnTheme(view: View) {
-
+ saveTheme(this, "finn")
+ recreate()
}
fun chooseCustomTheme(view: View) {
-
+ Toast.makeText(this, "[not implemented yet]", Toast.LENGTH_SHORT)
+ .show()
}
+
}
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 7010e55..0d1f376 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -13,6 +13,7 @@
- @color/finnmglasTheme_accent_color
- true
+ - @style/WindowFadeTransition
@@ -27,10 +28,16 @@
- @color/darkTheme_accent_color
- true
+ - @style/WindowFadeTransition
+
+