mirror of
https://github.com/jrpie/Launcher.git
synced 2025-02-23 06:21:31 +01:00
Let the user change theme, Add animation, preference
This commit is contained in:
parent
a56cec7f9e
commit
8a6dd32360
6 changed files with 65 additions and 3 deletions
|
@ -25,6 +25,13 @@ class ChooseActivity : AppCompatActivity() {
|
||||||
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
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)
|
setContentView(R.layout.activity_choose)
|
||||||
|
|
||||||
// As older APIs somehow do not recognize the xml defined onClick
|
// As older APIs somehow do not recognize the xml defined onClick
|
||||||
|
|
|
@ -31,6 +31,13 @@ class FirstStartupActivity : AppCompatActivity(){
|
||||||
)
|
)
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
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)
|
setContentView(R.layout.activity_firststartup)
|
||||||
|
|
||||||
hintText.blink() // animate
|
hintText.blink() // animate
|
||||||
|
|
|
@ -124,6 +124,22 @@ fun openNewTabWindow(urls: String, context : Context) {
|
||||||
|
|
||||||
/** Settings related functions */
|
/** 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){
|
fun openAppSettings(pkg :String, context:Context){
|
||||||
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
|
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
|
||||||
intent.data = Uri.parse("package:$pkg")
|
intent.data = Uri.parse("package:$pkg")
|
||||||
|
|
|
@ -17,6 +17,8 @@ import kotlin.math.abs
|
||||||
class MainActivity : AppCompatActivity(),
|
class MainActivity : AppCompatActivity(),
|
||||||
GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener {
|
GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener {
|
||||||
|
|
||||||
|
private var currentTheme = "" // keep track of theme changes
|
||||||
|
|
||||||
/** Variables for this activity */
|
/** Variables for this activity */
|
||||||
private lateinit var mDetector: GestureDetectorCompat
|
private lateinit var mDetector: GestureDetectorCompat
|
||||||
|
|
||||||
|
@ -45,6 +47,14 @@ class MainActivity : AppCompatActivity(),
|
||||||
)
|
)
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
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)
|
setContentView(R.layout.activity_main)
|
||||||
|
|
||||||
// Start by showing the settings icon
|
// Start by showing the settings icon
|
||||||
|
@ -78,6 +88,8 @@ class MainActivity : AppCompatActivity(),
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
|
|
||||||
|
if (currentTheme != getSavedTheme(this)) recreate()
|
||||||
|
|
||||||
val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
|
val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
|
||||||
val timeFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault())
|
val timeFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault())
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,15 @@ class SettingsActivity : AppCompatActivity() {
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
setTheme(
|
||||||
|
when (getSavedTheme(this)) {
|
||||||
|
"dark" -> R.style.darkTheme
|
||||||
|
"finn" -> R.style.finnmglasTheme
|
||||||
|
else -> R.style.finnmglasTheme
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
setContentView(R.layout.activity_settings)
|
setContentView(R.layout.activity_settings)
|
||||||
|
|
||||||
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
||||||
|
@ -178,14 +187,18 @@ class SettingsActivity : AppCompatActivity() {
|
||||||
/** Theme - related */
|
/** Theme - related */
|
||||||
|
|
||||||
fun chooseDarkTheme(view: View) {
|
fun chooseDarkTheme(view: View) {
|
||||||
|
saveTheme(this, "dark")
|
||||||
|
recreate()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun chooseFinnTheme(view: View) {
|
fun chooseFinnTheme(view: View) {
|
||||||
|
saveTheme(this, "finn")
|
||||||
|
recreate()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun chooseCustomTheme(view: View) {
|
fun chooseCustomTheme(view: View) {
|
||||||
|
Toast.makeText(this, "[not implemented yet]", Toast.LENGTH_SHORT)
|
||||||
|
.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
<item name="colorButtonNormal">@color/finnmglasTheme_accent_color</item>
|
<item name="colorButtonNormal">@color/finnmglasTheme_accent_color</item>
|
||||||
|
|
||||||
<item name="android:windowDisablePreview">true</item>
|
<item name="android:windowDisablePreview">true</item>
|
||||||
|
<item name="android:windowAnimationStyle">@style/WindowFadeTransition</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- A dark efficiency theme -->
|
<!-- A dark efficiency theme -->
|
||||||
|
@ -27,10 +28,16 @@
|
||||||
<item name="colorButtonNormal">@color/darkTheme_accent_color</item>
|
<item name="colorButtonNormal">@color/darkTheme_accent_color</item>
|
||||||
|
|
||||||
<item name="android:windowDisablePreview">true</item>
|
<item name="android:windowDisablePreview">true</item>
|
||||||
|
<item name="android:windowAnimationStyle">@style/WindowFadeTransition</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AlertDialogCustom" parent="Theme.AppCompat.Light.Dialog.Alert">
|
<style name="AlertDialogCustom" parent="Theme.AppCompat.Light.Dialog.Alert">
|
||||||
<item name="android:textColor">#000000</item>
|
<item name="android:textColor">#000000</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!-- Set the fade in animation on all activities by default -->
|
||||||
|
<style name="WindowFadeTransition">
|
||||||
|
<item name="android:windowEnterAnimation">@android:anim/fade_in</item>
|
||||||
|
<item name="android:windowExitAnimation">@android:anim/fade_out</item>
|
||||||
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Add table
Reference in a new issue