From d560af675efe68a166f911e734c84b95cec99823 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 6 Mar 2019 14:02:22 +0100 Subject: [PATCH] Added back dark mode setting + improvements --- .../linphone/fragments/StatusFragment.java | 2 +- .../settings/LinphonePreferences.java | 17 ++++---- .../linphone/settings/SettingsFragment.java | 41 ++++++++++--------- .../org/linphone/views/ContactAvatar.java | 1 + app/src/main/res/layout/call_inactive_row.xml | 2 +- app/src/main/res/layout/contact_avatar.xml | 3 +- .../main/res/layout/contact_avatar_100.xml | 3 +- .../main/res/layout/contact_avatar_200.xml | 3 +- .../res/layout/contact_avatar_call_paused.xml | 2 +- app/src/main/res/values/attrs.xml | 2 +- app/src/main/res/values/color.xml | 4 +- app/src/main/res/values/styles.xml | 8 ++-- app/src/main/res/xml/preferences.xml | 11 +++-- 13 files changed, 53 insertions(+), 46 deletions(-) diff --git a/app/src/main/java/org/linphone/fragments/StatusFragment.java b/app/src/main/java/org/linphone/fragments/StatusFragment.java index 14b203e85..bed87640e 100644 --- a/app/src/main/java/org/linphone/fragments/StatusFragment.java +++ b/app/src/main/java/org/linphone/fragments/StatusFragment.java @@ -175,7 +175,7 @@ public class StatusFragment extends Fragment { Window window = activity.getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); - window.setStatusBarColor(ContextCompat.getColor(activity, R.color.colorADark)); + window.setStatusBarColor(ContextCompat.getColor(activity, R.color.colorADark10)); } return view; diff --git a/app/src/main/java/org/linphone/settings/LinphonePreferences.java b/app/src/main/java/org/linphone/settings/LinphonePreferences.java index 8007033a5..e5a006fb0 100644 --- a/app/src/main/java/org/linphone/settings/LinphonePreferences.java +++ b/app/src/main/java/org/linphone/settings/LinphonePreferences.java @@ -22,6 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; +import androidx.appcompat.app.AppCompatDelegate; import java.io.BufferedReader; import java.io.File; import java.io.IOException; @@ -1432,17 +1433,17 @@ public class LinphonePreferences { } public boolean isDarkModeEnabled() { - return false; /*getConfig() - .getBool( - "app", - "dark_mode", - AppCompatDelegate.getDefaultNightMode() - == AppCompatDelegate.MODE_NIGHT_YES);*/ + return getConfig() + .getBool( + "app", + "dark_mode", + AppCompatDelegate.getDefaultNightMode() + == AppCompatDelegate.MODE_NIGHT_YES); } - /*public void enableDarkMode(boolean enable) { + public void enableDarkMode(boolean enable) { getConfig().setBool("app", "dark_mode", enable); - }*/ + } public static class AccountBuilder { private final Core lc; diff --git a/app/src/main/java/org/linphone/settings/SettingsFragment.java b/app/src/main/java/org/linphone/settings/SettingsFragment.java index 237d089de..e9f89474d 100644 --- a/app/src/main/java/org/linphone/settings/SettingsFragment.java +++ b/app/src/main/java/org/linphone/settings/SettingsFragment.java @@ -1689,8 +1689,8 @@ public class SettingsFragment extends PreferencesListFragment { } private void initAdvancedSettings() { - /*((CheckBoxPreference) findPreference(getString(R.string.pref_dark_mode_key))) - .setChecked(mPrefs.isDarkModeEnabled());*/ + ((CheckBoxPreference) findPreference(getString(R.string.pref_dark_mode_key))) + .setChecked(mPrefs.isDarkModeEnabled()); ((CheckBoxPreference) findPreference(getString(R.string.pref_friendlist_subscribe_key))) .setChecked(mPrefs.isFriendlistsubscriptionEnabled()); ((CheckBoxPreference) findPreference(getString(R.string.pref_debug_key))) @@ -1712,23 +1712,26 @@ public class SettingsFragment extends PreferencesListFragment { } private void setAdvancedPreferencesListener() { - /*findPreference(getString(R.string.pref_dark_mode_key)) - .setOnPreferenceChangeListener( - new OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange( - Preference preference, Object newValue) { - boolean value = (Boolean) newValue; - mPrefs.enableDarkMode(value); - if (value) { - LinphoneActivity.instance().setTheme(R.style.LinphoneStyleDark); - } else { - LinphoneActivity.instance() - .setTheme(R.style.LinphoneStyleLight); - } - return true; - } - });*/ + findPreference(getString(R.string.pref_dark_mode_key)) + .setOnPreferenceChangeListener( + new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange( + Preference preference, Object newValue) { + boolean value = (Boolean) newValue; + mPrefs.enableDarkMode(value); + if (value) { + LinphoneActivity.instance().setTheme(R.style.LinphoneStyleDark); + LinphoneActivity.instance() + .getTheme() + .applyStyle(R.style.LinphoneStyleDark, true); + } else { + LinphoneActivity.instance() + .setTheme(R.style.LinphoneStyleLight); + } + return true; + } + }); findPreference(getString(R.string.pref_friendlist_subscribe_key)) .setOnPreferenceChangeListener( diff --git a/app/src/main/java/org/linphone/views/ContactAvatar.java b/app/src/main/java/org/linphone/views/ContactAvatar.java index d0c593d91..e3e5638ca 100644 --- a/app/src/main/java/org/linphone/views/ContactAvatar.java +++ b/app/src/main/java/org/linphone/views/ContactAvatar.java @@ -220,6 +220,7 @@ public class ContactAvatar { holder.contactPicture.setImageResource(R.drawable.chat_group_avatar); holder.generatedAvatar.setVisibility(View.GONE); holder.securityLevel.setVisibility(View.GONE); + holder.avatarBorder.setVisibility(View.GONE); } public static void displayGroupChatAvatar(ChatRoomSecurityLevel level, View v) { diff --git a/app/src/main/res/layout/call_inactive_row.xml b/app/src/main/res/layout/call_inactive_row.xml index df973dece..15194030c 100644 --- a/app/src/main/res/layout/call_inactive_row.xml +++ b/app/src/main/res/layout/call_inactive_row.xml @@ -2,7 +2,7 @@ diff --git a/app/src/main/res/layout/contact_avatar.xml b/app/src/main/res/layout/contact_avatar.xml index dd9015cd0..3800162f0 100644 --- a/app/src/main/res/layout/contact_avatar.xml +++ b/app/src/main/res/layout/contact_avatar.xml @@ -28,7 +28,8 @@ android:layout_height="35dp" android:layout_alignParentLeft="true" android:adjustViewBounds="true" - android:src="@drawable/avatar_mask" /> + android:src="@drawable/avatar_mask" + android:tint="?attr/backgroundColor" /> + android:src="@drawable/avatar_mask" + android:tint="?attr/backgroundColor" /> + android:src="@drawable/avatar_mask" + android:tint="?attr/backgroundColor" /> + android:tint="?attr/accentColorLight30"/> - + diff --git a/app/src/main/res/values/color.xml b/app/src/main/res/values/color.xml index d626c4179..a492c32cc 100644 --- a/app/src/main/res/values/color.xml +++ b/app/src/main/res/values/color.xml @@ -2,8 +2,8 @@ #ff5e00 - #e65000 - #80ff5e00 + #e65000 + #ffab4d #000000 #444444 #808080 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 2cc36fa55..a6efffed5 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -11,7 +11,7 @@ @color/colorH @color/colorA - @color/colorA50 + @color/colorALight30 @color/colorH @color/colorC @color/colorH @@ -45,7 +45,7 @@ @color/colorC @color/colorA - @color/colorA50 + @color/colorALight30 @color/colorH @color/colorH @color/colorC @@ -322,7 +322,7 @@