abouttreesummaryrefslogcommitdiff
diff options
context:
space:
mode:
authorJules Aguillon2022-11-05 10:13:35 +0100
committerJules Aguillon2022-11-05 10:13:35 +0100
commitd2328d4b9a33469f9adc3fcbe9fab9a28a7e1da8 (patch)
tree4e62fe31cf373f50889191d58812b04bbb1c4e98
parent7edfd81db1465923cd2c245dace40bd1d3280528 (diff)
downloadunexpected-keyboard-d2328d4b9a33469f9adc3fcbe9fab9a28a7e1da8.tar.gz
unexpected-keyboard-d2328d4b9a33469f9adc3fcbe9fab9a28a7e1da8.zip
Automatic day night theme in settings activity
There seems to be no "DayNight" theme compatible with older version of android outside of the androidx library. Using 'Theme.DeviceDefault' which is a dark theme, even if it doesn't sounds like. Detect if a light theme should be used at activity creation.
-rw-r--r--AndroidManifest.xml2
-rw-r--r--srcs/juloo.keyboard2/SettingsActivity.java15
2 files changed, 16 insertions, 1 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4e29f0c..2489589 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -8,7 +8,7 @@
</intent-filter>
<meta-data android:name="android.view.im" android:resource="@xml/method"/>
</service>
- <activity android:name="juloo.keyboard2.SettingsActivity" android:icon="@drawable/ic_launcher" android:label="@string/settings_activity_label" android:theme="@style/android:Theme.Material">
+ <activity android:name="juloo.keyboard2.SettingsActivity" android:icon="@drawable/ic_launcher" android:label="@string/settings_activity_label" android:theme="@style/android:Theme.DeviceDefault">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
diff --git a/srcs/juloo.keyboard2/SettingsActivity.java b/srcs/juloo.keyboard2/SettingsActivity.java
index 9ec82c5..98cd590 100644
--- a/srcs/juloo.keyboard2/SettingsActivity.java
+++ b/srcs/juloo.keyboard2/SettingsActivity.java
@@ -1,5 +1,7 @@
package juloo.keyboard2;
+import android.content.res.Configuration;
+import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceActivity;
@@ -8,7 +10,20 @@ public class SettingsActivity extends PreferenceActivity
@Override
public void onCreate(Bundle savedInstanceState)
{
+ detectSystemTheme();
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
+
+ /** The default theme is [Theme.DeviceDefault], which is dark. Detect if the
+ system is using light theme. */
+ void detectSystemTheme()
+ {
+ if (Build.VERSION.SDK_INT >= 14)
+ {
+ int ui_mode = getResources().getConfiguration().uiMode;
+ if ((ui_mode & Configuration.UI_MODE_NIGHT_NO) != 0)
+ setTheme(android.R.style.Theme_DeviceDefault_Light);
+ }
+ }
}