Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

11 new themes based on material color #16

Closed
wants to merge 11 commits into from
  •  
  •  
  •  

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
import android.content.IntentFilter;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.graphics.Color;
import android.inputmethodservice.InputMethodService;
import android.media.AudioManager;
Expand Down Expand Up @@ -2018,7 +2020,7 @@ public boolean shouldShowLanguageSwitchKey() {
}

// slightly modified from Simple Keyboard: https://github.com/rkkr/simple-keyboard/blob/master/app/src/main/java/rkr/simplekeyboard/inputmethod/latin/LatinIME.java
private void setNavigationBarColor() {
/* private void setNavigationBarColor() {
final SettingsValues settingsValues = mSettings.getCurrent();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP || !settingsValues.mNavBarColor)
return;
Expand All @@ -2044,6 +2046,50 @@ private void setNavigationBarColor() {
} else {
view.setSystemUiVisibility(mOriginalNavBarFlags & ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}
}*/

private void setNavigationBarColor() {
final SettingsValues settingsValues = mSettings.getCurrent();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP && !settingsValues.mNavBarColor)
return;

final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
final int keyboardColor = Settings.readKeyboardColor(prefs, this);
final int color;

if (settingsValues.mUserTheme) {
final int c = settingsValues.mBackgroundColor;
// slightly adjust so color is same as keyboard background
color = Color.rgb((int) (Color.red(c) * 0.925), (int) (Color.green(c) * 0.9379), (int) (Color.blue(c) * 0.945));
} else {
color = keyboardColor;
}

final Window window = getWindow().getWindow();
if (window == null) {
return;
}
if (settingsValues.mUserTheme) {
mOriginalNavBarColor = window.getNavigationBarColor();
window.setNavigationBarColor(color);
} else {
mOriginalNavBarColor = window.getNavigationBarColor();
window.setNavigationBarColor(keyboardColor);
}

final View view = window.getDecorView();
mOriginalNavBarFlags = view.getSystemUiVisibility();

if (isBrightColor(color) || isBrightColor(keyboardColor)) {
view.setSystemUiVisibility(mOriginalNavBarFlags | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
} else {
view.setSystemUiVisibility(mOriginalNavBarFlags & ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}
/* if (isBrightColor(keyboardColor)) {
view.setSystemUiVisibility(mOriginalNavBarFlags | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
} else {
view.setSystemUiVisibility(mOriginalNavBarFlags & ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}*/
}

private void clearNavigationBarColor() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,12 @@ class AppearanceSettingsFragment : SubScreenFragment(), Preference.OnPreferenceC
}
amoledModePref.apply {
isEnabled = !isLegacyFamily && variant != KeyboardTheme.THEME_VARIANT_LIGHT
&& variant != KeyboardTheme.THEME_VARIANT_BLUE && variant != KeyboardTheme.THEME_VARIANT_BLUE_GREY
&& variant != KeyboardTheme.THEME_VARIANT_BROWN && variant != KeyboardTheme.THEME_VARIANT_GREEN
&& variant != KeyboardTheme.THEME_VARIANT_GREY && variant != KeyboardTheme.THEME_VARIANT_INDIGO
&& variant != KeyboardTheme.THEME_VARIANT_ORANGE && variant != KeyboardTheme.THEME_VARIANT_RED
&& variant != KeyboardTheme.THEME_VARIANT_PINK && variant != KeyboardTheme.THEME_VARIANT_PURPLE
&& variant != KeyboardTheme.THEME_VARIANT_YELLOW
&& !KeyboardTheme.getHasKeyBorders(selectedThemeId)
&& !KeyboardTheme.getIsUser(selectedThemeId)
isChecked = !isLegacyFamily && KeyboardTheme.getIsAmoledMode(selectedThemeId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,12 @@
import android.content.pm.ApplicationInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Build;
import android.util.Log;

import android.view.Gravity;
import org.dslul.openboard.inputmethod.keyboard.KeyboardTheme;
import org.dslul.openboard.inputmethod.latin.AudioAndHapticFeedbackManager;
import org.dslul.openboard.inputmethod.latin.InputAttributes;
import org.dslul.openboard.inputmethod.latin.R;
Expand All @@ -36,7 +38,6 @@
import org.dslul.openboard.inputmethod.latin.utils.JniUtils;
import org.dslul.openboard.inputmethod.latin.utils.ResourceUtils;
import org.dslul.openboard.inputmethod.latin.utils.RunInLocale;
import org.dslul.openboard.inputmethod.latin.utils.ScriptUtils;
import org.dslul.openboard.inputmethod.latin.utils.StatsUtils;

import java.util.Collections;
Expand Down Expand Up @@ -138,7 +139,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
public static final String PREF_SECONDARY_LOCALES = "pref_secondary_locales";
public static final String PREF_ADD_TO_PERSONAL_DICTIONARY = "add_to_personal_dictionary";
public static final String PREF_NAVBAR_COLOR = "navbar_color";

public static final String PREF_KEYBOARD_COLOR = "pref_keyboard_color";
// This preference key is deprecated. Use {@link #PREF_SHOW_LANGUAGE_SWITCH_KEY} instead.
// This is being used only for the backward compatibility.
private static final String PREF_SUPPRESS_LANGUAGE_SWITCH_KEY =
Expand Down Expand Up @@ -541,4 +542,19 @@ public static Locale getSecondaryLocale(final SharedPreferences prefs, final Str
return null;
}

public static int readKeyboardColor(final SharedPreferences prefs, final Context context) {
return prefs.getInt(PREF_KEYBOARD_COLOR, readKeyboardDefaultColor(context));
}

public static int readKeyboardDefaultColor(final Context context) {
final int[] keyboardThemeColors = context.getResources().getIntArray(R.array.keyboard_theme_colors);
final int[] keyboardThemeIds = context.getResources().getIntArray(R.array.keyboard_theme_ids);
final int themeId = KeyboardTheme.getKeyboardTheme(context).mThemeId;
for (int index = 0; index < keyboardThemeIds.length; index++) {
if (themeId == keyboardThemeIds[index]) {
return keyboardThemeColors[index];
}
}
return Color.LTGRAY;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<solid
android:color="@color/action_key_background_lxx_light_border_blue"/>

<size
android:width="40dp"
android:height="40dp"/>
</shape>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<solid
android:color="@color/action_key_background_lxx_light_border_blue_grey"/>

<size
android:width="40dp"
android:height="40dp"/>
</shape>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_blue" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_blue_grey" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_brown" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_green" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_grey" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_indigo" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_orange" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_pink" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_purple" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_red" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@color/key_bottom_bevel_lxx_light" />
<corners android:radius="150dp"/>
</shape>
</item>
<item android:bottom="1dp">
<shape android:shape="rectangle">
<solid android:color="@color/action_key_background_lxx_light_border_yellow" />
<corners android:radius="150dp" />
</shape>
</item>
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<solid
android:color="@color/action_key_background_lxx_light_border_brown"/>

<size
android:width="40dp"
android:height="40dp"/>
</shape>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<solid
android:color="@color/action_key_background_lxx_light_border_green"/>

<size
android:width="40dp"
android:height="40dp"/>
</shape>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<solid
android:color="@color/action_key_background_lxx_light_border_grey"/>

<size
android:width="40dp"
android:height="40dp"/>
</shape>
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<solid
android:color="@color/action_key_background_lxx_light_border_indigo"/>

<size
android:width="40dp"
android:height="40dp"/>
</shape>
Loading