From e51eff40503a9715a98f7d1fb41c3a607b8f67d0 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Thu, 25 Jun 2015 15:17:32 +0200 Subject: Add theme setting This prepares that different themes can be added. Currently light and dark will just use the default OK theme. --- OpenKeychain/src/main/AndroidManifest.xml | 8 ++--- .../org/sufficientlysecure/keychain/Constants.java | 1 + .../keychain/ui/SettingsActivity.java | 36 +++++++++++++++++++++- .../keychain/ui/base/BaseActivity.java | 12 ++++++++ .../keychain/util/Preferences.java | 9 ++++++ OpenKeychain/src/main/res/values-v21/themes.xml | 17 ++++++++-- OpenKeychain/src/main/res/values/arrays.xml | 8 +++++ OpenKeychain/src/main/res/values/strings.xml | 4 +++ OpenKeychain/src/main/res/values/themes.xml | 23 ++++++++++++-- OpenKeychain/src/main/res/xml/gui_preferences.xml | 10 ++++++ .../src/main/res/xml/preference_headers.xml | 3 ++ 11 files changed, 121 insertions(+), 10 deletions(-) create mode 100644 OpenKeychain/src/main/res/xml/gui_preferences.xml (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml index 83d8bce91..35048b936 100644 --- a/OpenKeychain/src/main/AndroidManifest.xml +++ b/OpenKeychain/src/main/AndroidManifest.xml @@ -9,15 +9,15 @@ =============== - Last APG 1 version was 10900 (1.0.9 beta 00) - Keychain starting with versionCode 20000! - + Association of file types to Keychain ===================================== General remarks about file ending conventions: - *.gpg,*.pgp for binary files - *.asc for ascii armored files The actual content can be anything. - + The file ending only shows if it is binary or ascii encoded. - + Remarks about the ugly android:pathPattern: - We are matching all files with a specific file ending. This is done in an ugly way because of Android limitations. @@ -73,7 +73,7 @@ android:hardwareAccelerated="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" - android:theme="@style/KeychainTheme"> + android:theme="@style/LightTheme"> - - \ No newline at end of file + + + + diff --git a/OpenKeychain/src/main/res/values/arrays.xml b/OpenKeychain/src/main/res/values/arrays.xml index a9f521b17..ef3970672 100644 --- a/OpenKeychain/src/main/res/values/arrays.xml +++ b/OpenKeychain/src/main/res/values/arrays.xml @@ -61,4 +61,12 @@ @string/key_size_custom + + @string/theme_dark + @string/theme_light + + + "dark" + "ligh" + diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index db81963c1..faa9aa39c 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -50,6 +50,7 @@ "Cloud search" "Password/PIN Handling" "Proxy Settings" + "Interface" "Confirm" "Actions" "Key" @@ -167,6 +168,7 @@ "Verify keyserver" "Enter keyserver URL" "Delete keyserver" + "Theme" "OpenPGP keyservers" "Search keys on selected OpenPGP keyservers (HKP protocol)" @@ -245,6 +247,8 @@ "Open…" "Error" "Error: %s" + "Dark" + "Light" "Certify" diff --git a/OpenKeychain/src/main/res/values/themes.xml b/OpenKeychain/src/main/res/values/themes.xml index 8e0ea6ac0..d15106966 100644 --- a/OpenKeychain/src/main/res/values/themes.xml +++ b/OpenKeychain/src/main/res/values/themes.xml @@ -1,9 +1,20 @@ - + + + + + + - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/xml/gui_preferences.xml b/OpenKeychain/src/main/res/xml/gui_preferences.xml new file mode 100644 index 000000000..cda7beeef --- /dev/null +++ b/OpenKeychain/src/main/res/xml/gui_preferences.xml @@ -0,0 +1,10 @@ + + + + diff --git a/OpenKeychain/src/main/res/xml/preference_headers.xml b/OpenKeychain/src/main/res/xml/preference_headers.xml index 70e400567..7a0ea18bb 100644 --- a/OpenKeychain/src/main/res/xml/preference_headers.xml +++ b/OpenKeychain/src/main/res/xml/preference_headers.xml @@ -1,4 +1,7 @@ +
-- cgit v1.2.3 From 4d412d53dc85d2f1d50f43b92a03c3e374872445 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Thu, 25 Jun 2015 19:22:13 +0200 Subject: Automatically recreate activities on theme change --- .../keychain/ui/SettingsActivity.java | 33 ++++++++++++++++++++++ .../keychain/ui/base/BaseActivity.java | 33 +++++++++++++++++++--- 2 files changed, 62 insertions(+), 4 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java index 27ce3ac56..e7c5f51ab 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java @@ -33,6 +33,7 @@ import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.support.v7.widget.Toolbar; import android.text.TextUtils; +import android.view.ContextThemeWrapper; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; @@ -59,10 +60,13 @@ public class SettingsActivity extends AppCompatPreferenceActivity { private PreferenceScreen mKeyServerPreference = null; private static Preferences sPreferences; + private String mCurrentTheme = null; @Override protected void onCreate(Bundle savedInstanceState) { sPreferences = Preferences.getPreferences(this); + + changeTheme(); super.onCreate(savedInstanceState); setupToolbar(); @@ -114,6 +118,35 @@ public class SettingsActivity extends AppCompatPreferenceActivity { } } + @Override + protected void onResume() { + super.onResume(); + + if (changeTheme()) { + Intent intent = getIntent(); + finish(); + startActivity(intent); + } + } + + protected boolean changeTheme() { + String newTheme = sPreferences.getTheme(); + if (mCurrentTheme != null && mCurrentTheme.equals(newTheme)) { + return false; + } + + int themeId = R.style.LightTheme; + if ("dark".equals(newTheme)) { + themeId = R.style.DarkTheme; + } + + ContextThemeWrapper w = new ContextThemeWrapper(this, themeId); + getTheme().setTo(w.getTheme()); + mCurrentTheme = newTheme; + + return true; + } + /** * Hack to get Toolbar in PreferenceActivity. See http://stackoverflow.com/a/26614696 */ diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java index 82f62f933..6ba4b9e22 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java @@ -18,6 +18,7 @@ package org.sufficientlysecure.keychain.ui.base; import android.app.Activity; +import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; @@ -39,21 +40,45 @@ public abstract class BaseActivity extends AppCompatActivity { protected Toolbar mToolbar; protected View mStatusBar; private static Preferences sPreferences; + private String mCurrentTheme = null; @Override protected void onCreate(Bundle savedInstanceState) { sPreferences = Preferences.getPreferences(this); + + changeTheme(); + super.onCreate(savedInstanceState); + initLayout(); + initToolbar(); + } + + @Override + protected void onResume() { + super.onResume(); + + if (changeTheme()) { + Intent intent = getIntent(); + finish(); + startActivity(intent); + } + } + + protected boolean changeTheme() { + String newTheme = sPreferences.getTheme(); + if (mCurrentTheme != null && mCurrentTheme.equals(newTheme)) { + return false; + } + int themeId = R.style.LightTheme; - if ("dark".equals(sPreferences.getTheme())) { + if ("dark".equals(newTheme)) { themeId = R.style.DarkTheme; } ContextThemeWrapper w = new ContextThemeWrapper(this, themeId); getTheme().setTo(w.getTheme()); + mCurrentTheme = newTheme; - super.onCreate(savedInstanceState); - initLayout(); - initToolbar(); + return true; } protected void initLayout() { -- cgit v1.2.3 From 58cb6bb4b70795213f9609682c68d0025e0bab56 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Thu, 25 Jun 2015 19:24:02 +0200 Subject: Start moving colors into themes Using attrs instead of fixed colors it will be possible to style everything and also dynamically grab the color where needed in code. This is done with colorEmphasis as an initial test. Also remove several unused colors. --- .../keychain/ui/KeyListFragment.java | 12 ++++++++- .../keychain/ui/util/Highlighter.java | 10 ++++++- .../main/res/layout/api_app_settings_activity.xml | 6 ++--- .../src/main/res/layout/drawer_custom_header.xml | 4 +-- .../src/main/res/layout/key_list_fragment.xml | 18 ++++++------- .../src/main/res/layout/view_key_activity.xml | 6 ++--- OpenKeychain/src/main/res/values/attrs.xml | 8 ++++++ OpenKeychain/src/main/res/values/colors.xml | 31 +++------------------- OpenKeychain/src/main/res/values/themes.xml | 24 ++++++++++++----- 9 files changed, 65 insertions(+), 54 deletions(-) create mode 100644 OpenKeychain/src/main/res/values/attrs.xml (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index 95e047b0f..21af2c83b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -28,6 +28,7 @@ import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.res.Resources.Theme; import android.database.Cursor; import android.graphics.Color; import android.net.Uri; @@ -46,6 +47,7 @@ import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.util.TypedValue; import android.widget.AbsListView.MultiChoiceModeListener; import android.widget.AdapterView; import android.widget.ListView; @@ -675,8 +677,11 @@ public class KeyListFragment extends LoaderFragment private HashMap mSelection = new HashMap<>(); + private Context mContext; + public KeyListAdapter(Context context, Cursor c, int flags) { super(context, c, flags); + mContext = context; } @Override @@ -705,9 +710,14 @@ public class KeyListFragment extends LoaderFragment // let the adapter handle setting up the row views View v = super.getView(position, convertView, parent); + TypedValue typedValue = new TypedValue(); + Theme theme = mContext.getTheme(); + theme.resolveAttribute(R.attr.colorEmphasis, typedValue, true); + int colorEmphasis = typedValue.data; + if (mSelection.get(position) != null) { // selected position color - v.setBackgroundColor(parent.getResources().getColor(R.color.emphasis)); + v.setBackgroundColor(colorEmphasis); } else { // default color v.setBackgroundColor(Color.TRANSPARENT); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/Highlighter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/Highlighter.java index 69338aa3e..22c5315a9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/Highlighter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/Highlighter.java @@ -18,8 +18,10 @@ package org.sufficientlysecure.keychain.ui.util; import android.content.Context; +import android.content.res.Resources.Theme; import android.text.Spannable; import android.text.style.ForegroundColorSpan; +import android.util.TypedValue; import org.sufficientlysecure.keychain.R; @@ -44,9 +46,15 @@ public class Highlighter { Pattern pattern = Pattern.compile("(?i)(" + mQuery.trim().replaceAll("\\s+", "|") + ")"); Matcher matcher = pattern.matcher(text); + + TypedValue typedValue = new TypedValue(); + Theme theme = mContext.getTheme(); + theme.resolveAttribute(R.attr.colorEmphasis, typedValue, true); + int colorEmphasis = typedValue.data; + while (matcher.find()) { highlight.setSpan( - new ForegroundColorSpan(mContext.getResources().getColor(R.color.emphasis)), + new ForegroundColorSpan(colorEmphasis), matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); diff --git a/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml b/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml index c3f6e33cb..ea20b77b3 100644 --- a/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml +++ b/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml @@ -117,7 +117,7 @@ android:layout_height="wrap_content" android:elevation="4dp" fab:fab_icon="@drawable/ic_play_arrow_white_24dp" - fab:fab_colorNormal="@color/fab" - fab:fab_colorPressed="@color/fab_pressed" /> + fab:fab_colorNormal="?attr/colorFab" + fab:fab_colorPressed="?attr/colorFabPressed" /> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/drawer_custom_header.xml b/OpenKeychain/src/main/res/layout/drawer_custom_header.xml index 86465db98..716ec2cd2 100644 --- a/OpenKeychain/src/main/res/layout/drawer_custom_header.xml +++ b/OpenKeychain/src/main/res/layout/drawer_custom_header.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" - android:background="@color/primary"> + android:background="?attr/colorPrimary"> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/key_list_fragment.xml b/OpenKeychain/src/main/res/layout/key_list_fragment.xml index ea3426f90..9c41590db 100644 --- a/OpenKeychain/src/main/res/layout/key_list_fragment.xml +++ b/OpenKeychain/src/main/res/layout/key_list_fragment.xml @@ -45,8 +45,8 @@ android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" - fab:fab_addButtonColorNormal="@color/primary" - fab:fab_addButtonColorPressed="@color/primary_dark" + fab:fab_addButtonColorNormal="?attr/colorPrimary" + fab:fab_addButtonColorPressed="?attr/colorPrimaryDark" fab:fab_addButtonSize="normal" fab:fab_addButtonPlusIconColor="@color/icons" fab:fab_expandDirection="up" @@ -61,8 +61,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_icon="@drawable/ic_qrcode_white_24dp" - fab:fab_colorNormal="@color/primary" - fab:fab_colorPressed="@color/primary_dark" + fab:fab_colorNormal="?attr/colorPrimary" + fab:fab_colorPressed="?attr/colorPrimaryDark" fab:fab_title="Scan QR Code" fab:fab_size="mini" /> @@ -71,8 +71,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_icon="@drawable/ic_cloud_search_24dp" - fab:fab_colorNormal="@color/primary" - fab:fab_colorPressed="@color/primary_dark" + fab:fab_colorNormal="?attr/colorPrimary" + fab:fab_colorPressed="?attr/colorPrimaryDark" fab:fab_title="Search Cloud" fab:fab_size="mini" /> @@ -81,10 +81,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_icon="@drawable/ic_folder_white_24dp" - fab:fab_colorNormal="@color/primary" - fab:fab_colorPressed="@color/primary_dark" + fab:fab_colorNormal="?attr/colorPrimary" + fab:fab_colorPressed="?attr/colorPrimaryDark" fab:fab_title="Import from File" fab:fab_size="mini" /> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/view_key_activity.xml b/OpenKeychain/src/main/res/layout/view_key_activity.xml index b3f4e721d..648e072ac 100644 --- a/OpenKeychain/src/main/res/layout/view_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/view_key_activity.xml @@ -200,7 +200,7 @@ tools:visibility="visible" android:elevation="4dp" fab:fab_icon="@drawable/ic_qrcode_white_24dp" - fab:fab_colorNormal="@color/fab" - fab:fab_colorPressed="@color/fab_pressed" /> + fab:fab_colorNormal="?attr/colorFab" + fab:fab_colorPressed="?attr/colorFabPressed" /> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/values/attrs.xml b/OpenKeychain/src/main/res/values/attrs.xml new file mode 100644 index 000000000..ce110418e --- /dev/null +++ b/OpenKeychain/src/main/res/values/attrs.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/OpenKeychain/src/main/res/values/colors.xml b/OpenKeychain/src/main/res/values/colors.xml index ead006a63..b6b46ec8c 100644 --- a/OpenKeychain/src/main/res/values/colors.xml +++ b/OpenKeychain/src/main/res/values/colors.xml @@ -1,38 +1,15 @@ - - - - - #7bad45 - - #6c983d - - #2196F3 - - - - #000000 - - #C8E6C9 - @color/accent - #1976D2 - #212121 - #727272 #FFFFFF - #B6B6B6 #00FFFFFF #212121 - - @color/accent #cecbce #808080 #ffdd3333 - #33999999 #33CCCCCC @@ -43,10 +20,8 @@ #B2000000 - #e5e5e5 - #808080 + #000000 #fafafa - #f1f1f1 true @@ -14,10 +19,15 @@ @style/MySearchViewStyle - @@ -17,7 +17,7 @@ 8dp 8dp bold - @color/header_text + ?attr/colorHeaderText 14sp @@ -34,4 +34,4 @@ ?android:attr/listDivider - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/values/themes.xml b/OpenKeychain/src/main/res/values/themes.xml index 823622269..a9a12966a 100644 --- a/OpenKeychain/src/main/res/values/themes.xml +++ b/OpenKeychain/src/main/res/values/themes.xml @@ -10,6 +10,9 @@ #1976d2 #2196f3 + #212121 + #808080 + true @@ -28,6 +31,8 @@ #1976d2 #2196f3 + #a0a0a0 + #808080 true -- cgit v1.2.3 From fe9c802bbb318aef9cd2fbcaa85fc761b1797086 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Fri, 26 Jun 2015 11:11:06 +0200 Subject: Make button row background themeable --- OpenKeychain/src/main/res/layout/create_key_email_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/create_key_final_fragment.xml | 2 +- OpenKeychain/src/main/res/layout/create_key_name_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/create_key_passphrase_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/create_key_start_fragment.xml | 2 +- OpenKeychain/src/main/res/layout/create_yubi_key_blank_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/create_yubi_key_import_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/create_yubi_key_pin_fragment.xml | 4 ++-- .../src/main/res/layout/create_yubi_key_pin_repeat_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/create_yubi_key_wait_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/key_list_content.xml | 2 +- OpenKeychain/src/main/res/layout/view_key_adv_certs_fragment.xml | 4 ++-- OpenKeychain/src/main/res/layout/view_key_adv_keybase_fragment.xml | 4 ++-- OpenKeychain/src/main/res/values/attrs.xml | 1 + OpenKeychain/src/main/res/values/colors.xml | 2 -- OpenKeychain/src/main/res/values/themes.xml | 3 ++- 16 files changed, 26 insertions(+), 26 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/res/layout/create_key_email_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_email_fragment.xml index 17cfe54ac..d4ece38ac 100644 --- a/OpenKeychain/src/main/res/layout/create_key_email_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_key_email_fragment.xml @@ -51,7 +51,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:background="@color/holo_gray_bright" + android:background="?attr/colorButtonRow" android:id="@+id/create_key_buttons"> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml index 51b3c087c..77b96cc35 100644 --- a/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml @@ -144,7 +144,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:background="@color/holo_gray_bright" + android:background="?attr/colorButtonRow" android:id="@+id/create_key_buttons"> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/create_key_passphrase_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_passphrase_fragment.xml index abfb2861b..9d10bbe70 100644 --- a/OpenKeychain/src/main/res/layout/create_key_passphrase_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_key_passphrase_fragment.xml @@ -64,7 +64,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:background="@color/holo_gray_bright" + android:background="?attr/colorButtonRow" android:id="@+id/create_key_buttons"> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/create_key_start_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_start_fragment.xml index 2db147475..20c434c02 100644 --- a/OpenKeychain/src/main/res/layout/create_key_start_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_key_start_fragment.xml @@ -30,7 +30,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:background="@color/holo_gray_bright" + android:background="?attr/colorButtonRow" android:id="@+id/create_key_buttons"> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/create_yubi_key_import_fragment.xml b/OpenKeychain/src/main/res/layout/create_yubi_key_import_fragment.xml index e70188e49..838ee37b4 100644 --- a/OpenKeychain/src/main/res/layout/create_yubi_key_import_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_yubi_key_import_fragment.xml @@ -84,7 +84,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:background="@color/holo_gray_bright" + android:background="?attr/colorButtonRow" android:id="@+id/create_key_buttons"> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/create_yubi_key_pin_fragment.xml b/OpenKeychain/src/main/res/layout/create_yubi_key_pin_fragment.xml index b139a1d61..393ec76d4 100644 --- a/OpenKeychain/src/main/res/layout/create_yubi_key_pin_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_yubi_key_pin_fragment.xml @@ -69,7 +69,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:background="@color/holo_gray_bright" + android:background="?attr/colorButtonRow" android:id="@+id/create_key_buttons"> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/create_yubi_key_pin_repeat_fragment.xml b/OpenKeychain/src/main/res/layout/create_yubi_key_pin_repeat_fragment.xml index bd32130ad..d233398ca 100644 --- a/OpenKeychain/src/main/res/layout/create_yubi_key_pin_repeat_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_yubi_key_pin_repeat_fragment.xml @@ -70,7 +70,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:background="@color/holo_gray_bright" + android:background="?attr/colorButtonRow" android:orientation="horizontal"> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/create_yubi_key_wait_fragment.xml b/OpenKeychain/src/main/res/layout/create_yubi_key_wait_fragment.xml index 4e4b53118..a000dc82e 100644 --- a/OpenKeychain/src/main/res/layout/create_yubi_key_wait_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_yubi_key_wait_fragment.xml @@ -40,7 +40,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:background="@color/holo_gray_bright" + android:background="?attr/colorButtonRow" android:id="@+id/create_key_buttons"> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/key_list_content.xml b/OpenKeychain/src/main/res/layout/key_list_content.xml index bd0239da7..146367082 100644 --- a/OpenKeychain/src/main/res/layout/key_list_content.xml +++ b/OpenKeychain/src/main/res/layout/key_list_content.xml @@ -23,7 +23,7 @@ #70FFFFFF #FFFFFF diff --git a/OpenKeychain/src/main/res/values/themes.xml b/OpenKeychain/src/main/res/values/themes.xml index a9a12966a..df5d63a3e 100644 --- a/OpenKeychain/src/main/res/values/themes.xml +++ b/OpenKeychain/src/main/res/values/themes.xml @@ -12,7 +12,7 @@ #2196f3 #212121 #808080 - + #33cccccc true @@ -33,6 +33,7 @@ #2196f3 #a0a0a0 #808080 + #33cccccc true -- cgit v1.2.3 From 0f6acbd03022b5f74a37c56e08bee11032428f70 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Fri, 26 Jun 2015 11:33:53 +0200 Subject: Make FAB colors themeable --- OpenKeychain/src/main/res/drawable/fab_label_background.xml | 4 ++-- OpenKeychain/src/main/res/layout/key_list_fragment.xml | 12 ++++++------ OpenKeychain/src/main/res/values/attrs.xml | 2 ++ OpenKeychain/src/main/res/values/colors.xml | 1 - OpenKeychain/src/main/res/values/styles.xml | 2 +- OpenKeychain/src/main/res/values/themes.xml | 4 ++++ 6 files changed, 15 insertions(+), 10 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/res/drawable/fab_label_background.xml b/OpenKeychain/src/main/res/drawable/fab_label_background.xml index 0d8c05b11..aa5e0a88e 100644 --- a/OpenKeychain/src/main/res/drawable/fab_label_background.xml +++ b/OpenKeychain/src/main/res/drawable/fab_label_background.xml @@ -1,6 +1,6 @@ - + - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/layout/key_list_fragment.xml b/OpenKeychain/src/main/res/layout/key_list_fragment.xml index 9c41590db..83cf2d260 100644 --- a/OpenKeychain/src/main/res/layout/key_list_fragment.xml +++ b/OpenKeychain/src/main/res/layout/key_list_fragment.xml @@ -61,8 +61,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_icon="@drawable/ic_qrcode_white_24dp" - fab:fab_colorNormal="?attr/colorPrimary" - fab:fab_colorPressed="?attr/colorPrimaryDark" + fab:fab_colorNormal="?attr/colorFab" + fab:fab_colorPressed="?attr/colorFabPressed" fab:fab_title="Scan QR Code" fab:fab_size="mini" /> @@ -71,8 +71,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_icon="@drawable/ic_cloud_search_24dp" - fab:fab_colorNormal="?attr/colorPrimary" - fab:fab_colorPressed="?attr/colorPrimaryDark" + fab:fab_colorNormal="?attr/colorFab" + fab:fab_colorPressed="?attr/colorFabPressed" fab:fab_title="Search Cloud" fab:fab_size="mini" /> @@ -81,8 +81,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_icon="@drawable/ic_folder_white_24dp" - fab:fab_colorNormal="?attr/colorPrimary" - fab:fab_colorPressed="?attr/colorPrimaryDark" + fab:fab_colorNormal="?attr/colorFab" + fab:fab_colorPressed="?attr/colorFabPressed" fab:fab_title="Import from File" fab:fab_size="mini" /> diff --git a/OpenKeychain/src/main/res/values/attrs.xml b/OpenKeychain/src/main/res/values/attrs.xml index 27fba221a..7357221a2 100644 --- a/OpenKeychain/src/main/res/values/attrs.xml +++ b/OpenKeychain/src/main/res/values/attrs.xml @@ -3,6 +3,8 @@ + + diff --git a/OpenKeychain/src/main/res/values/colors.xml b/OpenKeychain/src/main/res/values/colors.xml index 38ac21e21..f943e0325 100644 --- a/OpenKeychain/src/main/res/values/colors.xml +++ b/OpenKeychain/src/main/res/values/colors.xml @@ -13,7 +13,6 @@ - #B2000000 #000000 #fafafa diff --git a/OpenKeychain/src/main/res/values/styles.xml b/OpenKeychain/src/main/res/values/styles.xml index e21e3749c..73a594ac4 100644 --- a/OpenKeychain/src/main/res/values/styles.xml +++ b/OpenKeychain/src/main/res/values/styles.xml @@ -23,7 +23,7 @@ #70FFFFFF diff --git a/OpenKeychain/src/main/res/values/themes.xml b/OpenKeychain/src/main/res/values/themes.xml index 83143cbbf..68ce63eb4 100644 --- a/OpenKeychain/src/main/res/values/themes.xml +++ b/OpenKeychain/src/main/res/values/themes.xml @@ -15,6 +15,7 @@ #212121 #808080 #33cccccc + #cecbce true @@ -38,6 +39,7 @@ #a0a0a0 #808080 #33cccccc + #303030 true -- cgit v1.2.3 From 6b8127ca94541c48b7f098188708c3c7d65adc90 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Fri, 26 Jun 2015 11:46:44 +0200 Subject: Make cardview header divider themeable --- OpenKeychain/src/main/res/drawable/cardview_header.xml | 4 ++-- OpenKeychain/src/main/res/values/attrs.xml | 1 + OpenKeychain/src/main/res/values/themes.xml | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/res/drawable/cardview_header.xml b/OpenKeychain/src/main/res/drawable/cardview_header.xml index 9bab96ea9..ff08f9fe3 100644 --- a/OpenKeychain/src/main/res/drawable/cardview_header.xml +++ b/OpenKeychain/src/main/res/drawable/cardview_header.xml @@ -6,6 +6,6 @@ android:height="1dp" android:width="1000dp" /> - + - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/values/attrs.xml b/OpenKeychain/src/main/res/values/attrs.xml index 215b1b2fe..7865bae2e 100644 --- a/OpenKeychain/src/main/res/values/attrs.xml +++ b/OpenKeychain/src/main/res/values/attrs.xml @@ -10,5 +10,6 @@ + diff --git a/OpenKeychain/src/main/res/values/themes.xml b/OpenKeychain/src/main/res/values/themes.xml index 68ce63eb4..5a9721fac 100644 --- a/OpenKeychain/src/main/res/values/themes.xml +++ b/OpenKeychain/src/main/res/values/themes.xml @@ -16,6 +16,7 @@ #808080 #33cccccc #cecbce + #808080 true @@ -40,6 +41,7 @@ #808080 #33cccccc #303030 + #808080 true -- cgit v1.2.3 From dfe5a64fb036381f286d090f4d84ec22494a1fdc Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Fri, 26 Jun 2015 12:05:15 +0200 Subject: Give key flag colors their own color names This removes "bg_gray" and selector_transparent_button.xml, which is unused and the last file to reference "bg_gray". --- .../keychain/ui/ViewKeyActivity.java | 8 ++++---- .../keychain/ui/ViewKeyAdvActivity.java | 4 ++-- .../keychain/ui/adapter/ImportKeysAdapter.java | 14 +++++++------- .../keychain/ui/adapter/KeyAdapter.java | 14 +++++++------- .../keychain/ui/adapter/SelectKeyCursorAdapter.java | 4 ++-- .../keychain/ui/adapter/SubkeysAdapter.java | 12 ++++++------ .../keychain/ui/adapter/UserIdsAdapter.java | 2 +- .../keychain/ui/util/KeyFormattingUtils.java | 20 ++++++++++---------- .../res/drawable/selector_transparent_button.xml | 7 ------- .../main/res/layout/create_key_final_fragment.xml | 4 ++-- OpenKeychain/src/main/res/values/colors.xml | 9 ++++++--- 11 files changed, 47 insertions(+), 51 deletions(-) delete mode 100644 OpenKeychain/src/main/res/drawable/selector_transparent_button.xml (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 938dbc9f2..69c253432 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -760,7 +760,7 @@ public class ViewKeyActivity extends BaseNfcActivity implements mStatusImage.setVisibility(View.VISIBLE); KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.REVOKED, R.color.icons, true); - color = getResources().getColor(R.color.android_red_light); + color = getResources().getColor(R.color.key_flag_red); mActionEncryptFile.setVisibility(View.GONE); mActionEncryptText.setVisibility(View.GONE); @@ -776,7 +776,7 @@ public class ViewKeyActivity extends BaseNfcActivity implements mStatusImage.setVisibility(View.VISIBLE); KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.EXPIRED, R.color.icons, true); - color = getResources().getColor(R.color.android_red_light); + color = getResources().getColor(R.color.key_flag_red); mActionEncryptFile.setVisibility(View.GONE); mActionEncryptText.setVisibility(View.GONE); @@ -846,7 +846,7 @@ public class ViewKeyActivity extends BaseNfcActivity implements mStatusImage.setVisibility(View.VISIBLE); KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.UNVERIFIED, R.color.icons, true); - color = getResources().getColor(R.color.android_orange_light); + color = getResources().getColor(R.color.key_flag_orange); mFab.setVisibility(View.VISIBLE); } @@ -943,4 +943,4 @@ public class ViewKeyActivity extends BaseNfcActivity implements public boolean onCryptoSetProgress(String msg, int progress, int max) { return true; } -} \ No newline at end of file +} diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java index 6669f2654..4ba4bc13e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java @@ -211,14 +211,14 @@ public class ViewKeyAdvActivity extends BaseActivity implements // Note: order is important int color; if (isRevoked || isExpired) { - color = getResources().getColor(R.color.android_red_light); + color = getResources().getColor(R.color.key_flag_red); } else if (isSecret) { color = getResources().getColor(R.color.primary); } else { if (isVerified) { color = getResources().getColor(R.color.primary); } else { - color = getResources().getColor(R.color.android_orange_light); + color = getResources().getColor(R.color.key_flag_orange); } } mToolbar.setBackgroundColor(color); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java index 93c6593ab..85986a10a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java @@ -177,9 +177,9 @@ public class ImportKeysAdapter extends ArrayAdapter { } if (entry.isRevoked()) { - KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, State.REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, State.REVOKED, R.color.key_flag_gray); } else if (entry.isExpired()) { - KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, State.EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(getContext(), holder.status, null, State.EXPIRED, R.color.key_flag_gray); } if (entry.isRevoked() || entry.isExpired()) { @@ -188,9 +188,9 @@ public class ImportKeysAdapter extends ArrayAdapter { // no more space for algorithm display holder.algorithm.setVisibility(View.GONE); - holder.mainUserId.setTextColor(getContext().getResources().getColor(R.color.bg_gray)); - holder.mainUserIdRest.setTextColor(getContext().getResources().getColor(R.color.bg_gray)); - holder.keyId.setTextColor(getContext().getResources().getColor(R.color.bg_gray)); + holder.mainUserId.setTextColor(getContext().getResources().getColor(R.color.key_flag_gray)); + holder.mainUserIdRest.setTextColor(getContext().getResources().getColor(R.color.key_flag_gray)); + holder.keyId.setTextColor(getContext().getResources().getColor(R.color.key_flag_gray)); } else { holder.status.setVisibility(View.GONE); holder.algorithm.setVisibility(View.VISIBLE); @@ -242,7 +242,7 @@ public class ImportKeysAdapter extends ArrayAdapter { uidView.setPadding(0, 0, FormattingUtils.dpToPx(getContext(), 8), 0); if (entry.isRevoked() || entry.isExpired()) { - uidView.setTextColor(getContext().getResources().getColor(R.color.bg_gray)); + uidView.setTextColor(getContext().getResources().getColor(R.color.key_flag_gray)); } else { uidView.setTextColor(getContext().getResources().getColor(R.color.black)); } @@ -258,7 +258,7 @@ public class ImportKeysAdapter extends ArrayAdapter { emailView.setText(highlighter.highlight(email)); if (entry.isRevoked() || entry.isExpired()) { - emailView.setTextColor(getContext().getResources().getColor(R.color.bg_gray)); + emailView.setTextColor(getContext().getResources().getColor(R.color.key_flag_gray)); } else { emailView.setTextColor(getContext().getResources().getColor(R.color.black)); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java index 0507923f7..ff3171ea1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java @@ -141,15 +141,15 @@ public class KeyAdapter extends CursorAdapter { // Note: order is important! if (item.mIsRevoked) { KeyFormattingUtils - .setStatusImage(context, mStatus, null, State.REVOKED, R.color.bg_gray); + .setStatusImage(context, mStatus, null, State.REVOKED, R.color.key_flag_gray); mStatus.setVisibility(View.VISIBLE); mSlinger.setVisibility(View.GONE); - textColor = R.color.bg_gray; + textColor = context.getResources().getColor(R.color.key_flag_gray); } else if (item.mIsExpired) { - KeyFormattingUtils.setStatusImage(context, mStatus, null, State.EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(context, mStatus, null, State.EXPIRED, R.color.key_flag_gray); mStatus.setVisibility(View.VISIBLE); mSlinger.setVisibility(View.GONE); - textColor = R.color.bg_gray; + textColor = context.getResources().getColor(R.color.key_flag_gray); } else if (item.mIsSecret) { mStatus.setVisibility(View.GONE); if (mSlingerButton.hasOnClickListeners()) { @@ -175,11 +175,11 @@ public class KeyAdapter extends CursorAdapter { } if (!enabled) { - textColor = R.color.bg_gray; + textColor = context.getResources().getColor(R.color.key_flag_gray); } - mMainUserId.setTextColor(context.getResources().getColor(textColor)); - mMainUserIdRest.setTextColor(context.getResources().getColor(textColor)); + mMainUserId.setTextColor(textColor); + mMainUserIdRest.setTextColor(textColor); if (item.mHasDuplicate) { String dateTime = DateUtils.formatDateTime(context, diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java index a6cb52977..4ea651bb5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java @@ -149,11 +149,11 @@ abstract public class SelectKeyCursorAdapter extends CursorAdapter { boolean enabled; if (cursor.getInt(mIndexIsRevoked) != 0) { h.statusIcon.setVisibility(View.VISIBLE); - KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, State.REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, State.REVOKED, R.color.key_flag_gray); enabled = false; } else if (cursor.getInt(mIndexIsExpiry) != 0) { h.statusIcon.setVisibility(View.VISIBLE); - KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, State.EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, State.EXPIRED, R.color.key_flag_gray); enabled = false; } else { h.statusIcon.setVisibility(View.GONE); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java index 87539ea05..24f5f04a1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java @@ -284,27 +284,27 @@ public class SubkeysAdapter extends CursorAdapter { vStatus.setVisibility(View.VISIBLE); vCertifyIcon.setColorFilter( - mContext.getResources().getColor(R.color.bg_gray), + mContext.getResources().getColor(R.color.key_flag_gray), PorterDuff.Mode.SRC_IN); vSignIcon.setColorFilter( - mContext.getResources().getColor(R.color.bg_gray), + mContext.getResources().getColor(R.color.key_flag_gray), PorterDuff.Mode.SRC_IN); vEncryptIcon.setColorFilter( - mContext.getResources().getColor(R.color.bg_gray), + mContext.getResources().getColor(R.color.key_flag_gray), PorterDuff.Mode.SRC_IN); vAuthenticateIcon.setColorFilter( - mContext.getResources().getColor(R.color.bg_gray), + mContext.getResources().getColor(R.color.key_flag_gray), PorterDuff.Mode.SRC_IN); if (isRevoked) { vStatus.setImageResource(R.drawable.status_signature_revoked_cutout_24dp); vStatus.setColorFilter( - mContext.getResources().getColor(R.color.bg_gray), + mContext.getResources().getColor(R.color.key_flag_gray), PorterDuff.Mode.SRC_IN); } else if (isExpired) { vStatus.setImageResource(R.drawable.status_signature_expired_cutout_24dp); vStatus.setColorFilter( - mContext.getResources().getColor(R.color.bg_gray), + mContext.getResources().getColor(R.color.key_flag_gray), PorterDuff.Mode.SRC_IN); } } else { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java index d1103ac1f..e2c6b0928 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/UserIdsAdapter.java @@ -128,7 +128,7 @@ public class UserIdsAdapter extends UserAttributesAdapter { if (isRevoked) { // set revocation icon (can this even be primary?) - KeyFormattingUtils.setStatusImage(mContext, vVerified, null, State.REVOKED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(mContext, vVerified, null, State.REVOKED, R.color.key_flag_gray); // disable revoked user ids vName.setEnabled(false); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java index a3cd63d13..3115f4c5c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java @@ -595,7 +595,7 @@ public class KeyFormattingUtils { context.getResources().getDrawable(R.drawable.status_signature_verified_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { - color = R.color.android_green_light; + color = R.color.key_flag_green; } statusIcon.setColorFilter(context.getResources().getColor(color), PorterDuff.Mode.SRC_IN); @@ -608,7 +608,7 @@ public class KeyFormattingUtils { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_lock_closed_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { - color = R.color.android_green_light; + color = R.color.key_flag_green; } statusIcon.setColorFilter(context.getResources().getColor(color), PorterDuff.Mode.SRC_IN); @@ -627,7 +627,7 @@ public class KeyFormattingUtils { context.getResources().getDrawable(R.drawable.status_signature_unverified_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { - color = R.color.android_orange_light; + color = R.color.key_flag_orange; } statusIcon.setColorFilter(context.getResources().getColor(color), PorterDuff.Mode.SRC_IN); @@ -640,7 +640,7 @@ public class KeyFormattingUtils { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { - color = R.color.android_red_light; + color = R.color.key_flag_red; } statusIcon.setColorFilter(context.getResources().getColor(color), PorterDuff.Mode.SRC_IN); @@ -659,7 +659,7 @@ public class KeyFormattingUtils { context.getResources().getDrawable(R.drawable.status_signature_revoked_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { - color = R.color.android_red_light; + color = R.color.key_flag_red; } statusIcon.setColorFilter(context.getResources().getColor(color), PorterDuff.Mode.SRC_IN); @@ -677,7 +677,7 @@ public class KeyFormattingUtils { context.getResources().getDrawable(R.drawable.status_signature_expired_cutout_24dp)); } if (color == KeyFormattingUtils.DEFAULT_COLOR) { - color = R.color.android_red_light; + color = R.color.key_flag_red; } statusIcon.setColorFilter(context.getResources().getColor(color), PorterDuff.Mode.SRC_IN); @@ -690,7 +690,7 @@ public class KeyFormattingUtils { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_lock_open_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { - color = R.color.android_red_light; + color = R.color.key_flag_red; } statusIcon.setColorFilter(context.getResources().getColor(color), PorterDuff.Mode.SRC_IN); @@ -703,7 +703,7 @@ public class KeyFormattingUtils { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_unknown_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { - color = R.color.android_red_light; + color = R.color.key_flag_red; } statusIcon.setColorFilter(context.getResources().getColor(color), PorterDuff.Mode.SRC_IN); @@ -716,7 +716,7 @@ public class KeyFormattingUtils { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { - color = R.color.android_red_light; + color = R.color.key_flag_red; } statusIcon.setColorFilter(context.getResources().getColor(color), PorterDuff.Mode.SRC_IN); @@ -730,7 +730,7 @@ public class KeyFormattingUtils { statusIcon.setImageDrawable( context.getResources().getDrawable(R.drawable.status_signature_invalid_cutout_24dp)); if (color == KeyFormattingUtils.DEFAULT_COLOR) { - color = R.color.bg_gray; + color = R.color.key_flag_gray; } statusIcon.setColorFilter(context.getResources().getColor(color), PorterDuff.Mode.SRC_IN); diff --git a/OpenKeychain/src/main/res/drawable/selector_transparent_button.xml b/OpenKeychain/src/main/res/drawable/selector_transparent_button.xml deleted file mode 100644 index ed856f281..000000000 --- a/OpenKeychain/src/main/res/drawable/selector_transparent_button.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml b/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml index 77b96cc35..9a6c33f82 100644 --- a/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml +++ b/OpenKeychain/src/main/res/layout/create_key_final_fragment.xml @@ -87,7 +87,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/create_key_rsa" - android:textColor="@color/android_green_light" + android:textColor="?attr/colorPrimary" android:textAppearance="?android:attr/textAppearanceMedium" android:minHeight="?android:attr/listPreferredItemHeight" android:clickable="true" @@ -129,7 +129,7 @@ android:layout_marginTop="16dp" android:layout_marginBottom="8dp" android:text="@string/create_key_final_robot_text" - android:textColor="@color/android_green_light" + android:textColor="?attr/colorPrimary" android:textAppearance="?android:attr/textAppearanceMedium" android:drawableLeft="@drawable/create_key_robot" android:drawablePadding="8dp" /> diff --git a/OpenKeychain/src/main/res/values/colors.xml b/OpenKeychain/src/main/res/values/colors.xml index 1c1e7bfe7..c42fb48b9 100644 --- a/OpenKeychain/src/main/res/values/colors.xml +++ b/OpenKeychain/src/main/res/values/colors.xml @@ -4,7 +4,10 @@ #FFFFFF #00FFFFFF - #00ff00 + #808080 + #f44336 + #ff9800 + #7bad45 #70FFFFFF @@ -27,8 +30,8 @@ #b71c1c #ff9800 #e65100 - #00ff00 - #008000 + #7bad45 + #6c983d #673ab7 #311b92 -- cgit v1.2.3 From 0af7d3c50baec701e4577b48465671638f86a30e Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Fri, 26 Jun 2015 12:12:19 +0200 Subject: Give password strength indicator colors their own name Also prune the android color definitions, most of which aren't used. --- .../keychain/ui/widget/PasswordStrengthView.java | 6 +++--- OpenKeychain/src/main/res/layout/passphrase_repeat_dialog.xml | 8 ++++---- OpenKeychain/src/main/res/values/colors.xml | 7 ++++--- 3 files changed, 11 insertions(+), 10 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/PasswordStrengthView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/PasswordStrengthView.java index 30bdfb92a..a7ead8039 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/PasswordStrengthView.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/PasswordStrengthView.java @@ -99,9 +99,9 @@ public class PasswordStrengthView extends View { public PasswordStrengthView(Context context, AttributeSet attrs) { super(context, attrs); - int COLOR_FAIL = getResources().getColor(R.color.android_red_light); - int COLOR_WEAK = getResources().getColor(R.color.android_orange_light); - int COLOR_STRONG = getResources().getColor(R.color.android_green_light); + int COLOR_FAIL = getResources().getColor(R.color.password_strength_low); + int COLOR_WEAK = getResources().getColor(R.color.password_strength_medium); + int COLOR_STRONG = getResources().getColor(R.color.password_strength_high); TypedArray style = context.getTheme().obtainStyledAttributes( attrs, diff --git a/OpenKeychain/src/main/res/layout/passphrase_repeat_dialog.xml b/OpenKeychain/src/main/res/layout/passphrase_repeat_dialog.xml index ffc5266b5..9ce8f01fa 100644 --- a/OpenKeychain/src/main/res/layout/passphrase_repeat_dialog.xml +++ b/OpenKeychain/src/main/res/layout/passphrase_repeat_dialog.xml @@ -40,9 +40,9 @@ android:layout_gravity="end|center_vertical" custom:strength="medium" custom:showGuides="false" - custom:color_fail="@color/android_red_light" - custom:color_weak="@color/android_orange_light" - custom:color_strong="@color/android_green_light" /> + custom:color_fail="@color/password_strength_low" + custom:color_weak="@color/password_strength_medium" + custom:color_strong="@color/password_strength_high" /> @@ -57,4 +57,4 @@ android:ems="10" android:layout_gravity="center_horizontal" /> - \ No newline at end of file + diff --git a/OpenKeychain/src/main/res/values/colors.xml b/OpenKeychain/src/main/res/values/colors.xml index c42fb48b9..f66a065e0 100644 --- a/OpenKeychain/src/main/res/values/colors.xml +++ b/OpenKeychain/src/main/res/values/colors.xml @@ -14,12 +14,16 @@ #FFFFFF #FFFFFF + #f44336 + #ff9800 + #7bad45 #000000 #fafafa true false @@ -37,12 +39,14 @@ #fafafa #2196f3 - #a0a0a0 - #808080 #33cccccc #303030 #808080 + #ffffff + #d0d0d0 + #808080 + true false -- cgit v1.2.3 From d8d0030c0b30807378325bde21d00c24a111fedb Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Fri, 26 Jun 2015 13:25:30 +0200 Subject: Make help pages work in dark theme This maintains the black-on-white theme of the HTML views even for the dark theme. --- .../keychain/ui/HelpMarkdownFragment.java | 1 + OpenKeychain/src/main/res/layout/help_about_fragment.xml | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java index 97d39feb1..24da13983 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java @@ -78,6 +78,7 @@ public class HelpMarkdownFragment extends Fragment { Log.e(Constants.TAG, "IOException", e); } + text.setBackgroundColor(getResources().getColor(android.R.color.white)); // no flickering when clicking textview for Android < 4 text.setTextColor(getResources().getColor(android.R.color.black)); diff --git a/OpenKeychain/src/main/res/layout/help_about_fragment.xml b/OpenKeychain/src/main/res/layout/help_about_fragment.xml index 6afab2e12..f654af181 100644 --- a/OpenKeychain/src/main/res/layout/help_about_fragment.xml +++ b/OpenKeychain/src/main/res/layout/help_about_fragment.xml @@ -1,7 +1,11 @@ + android:layout_height="match_parent" + android:paddingLeft="0dp" + android:paddingRight="0dp" + android:paddingTop="0dp" + android:paddingBottom="0dp"> - \ No newline at end of file + -- cgit v1.2.3 From 7fab9511753f2e9f330448ade4e27e1653215a39 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Fri, 26 Jun 2015 13:45:45 +0200 Subject: Remove color black, as it isn't needed anymore --- OpenKeychain/src/main/res/values/colors.xml | 2 -- 1 file changed, 2 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/res/values/colors.xml b/OpenKeychain/src/main/res/values/colors.xml index f66a065e0..3345ca80b 100644 --- a/OpenKeychain/src/main/res/values/colors.xml +++ b/OpenKeychain/src/main/res/values/colors.xml @@ -18,8 +18,6 @@ #ff9800 #7bad45 - - #000000 #fafafa - #70FFFFFF - #FFFFFF - #FFFFFF - #f44336 #ff9800 #7bad45 diff --git a/OpenKeychain/src/main/res/values/themes.xml b/OpenKeychain/src/main/res/values/themes.xml index 649b4b7aa..b6e6f7ec1 100644 --- a/OpenKeychain/src/main/res/values/themes.xml +++ b/OpenKeychain/src/main/res/values/themes.xml @@ -12,6 +12,10 @@ #b2000000 #fafafa + #70ffffff + #ffffff + #ffffff + #2196f3 #33cccccc #cecbce @@ -41,6 +45,10 @@ #b2000000 #fafafa + #70ffffff + #ffffff + #ffffff + #2196f3 #33cccccc #303030 -- cgit v1.2.3 From e281fef1f16532cbd0ab98a067be03e61d9d93c8 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Fri, 26 Jun 2015 15:18:58 +0200 Subject: Lowercase colors for consistency --- OpenKeychain/src/main/res/values/colors.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/res/values/colors.xml b/OpenKeychain/src/main/res/values/colors.xml index 6fd355a4c..f8d71d0d7 100644 --- a/OpenKeychain/src/main/res/values/colors.xml +++ b/OpenKeychain/src/main/res/values/colors.xml @@ -1,8 +1,8 @@ - #FFFFFF - #00FFFFFF + #ffffff + #00ffffff #808080 #f44336 -- cgit v1.2.3 From 17e8b663a86c9ef005e9577afbf9096329d13725 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Fri, 26 Jun 2015 15:59:11 +0200 Subject: Add forgotten docu to a new method --- .../java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java index 6ba4b9e22..00aa4802c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java @@ -63,6 +63,12 @@ public abstract class BaseActivity extends AppCompatActivity { } } + /** + * Apply the theme set in preferences if it isn't equal to mCurrentTheme + * anymore or mCurrentTheme hasn't been set yet. + * If a new theme is applied in this method, then return true, so + * the caller can re-create the activity, if need be. + */ protected boolean changeTheme() { String newTheme = sPreferences.getTheme(); if (mCurrentTheme != null && mCurrentTheme.equals(newTheme)) { -- cgit v1.2.3 From 31eece0e277d4ede24d7ab419f7279e8952aedf7 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Fri, 26 Jun 2015 17:13:19 +0200 Subject: Update recent decrypt changes to use new theme attributes --- .../keychain/ui/util/KeyFormattingUtils.java | 19 ++++++++++--------- .../src/main/res/layout/decrypt_list_entry.xml | 4 ++-- 2 files changed, 12 insertions(+), 11 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java index 3115f4c5c..224e0085b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/KeyFormattingUtils.java @@ -40,6 +40,7 @@ import org.sufficientlysecure.keychain.operations.results.DecryptVerifyResult; import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.service.SaveKeyringParcel.Algorithm; import org.sufficientlysecure.keychain.service.SaveKeyringParcel.Curve; +import org.sufficientlysecure.keychain.ui.util.FormattingUtils; import org.sufficientlysecure.keychain.util.Log; import java.nio.ByteBuffer; @@ -449,11 +450,11 @@ public class KeyFormattingUtils { if (signatureResult != null && signatureResult.isSignatureOnly()) { encIcon = R.drawable.status_lock_open_24dp; encText = R.string.decrypt_result_not_encrypted; - encColor = R.color.android_red_light; + encColor = R.color.key_flag_red; } else { encIcon = R.drawable.status_lock_closed_24dp; encText = R.string.decrypt_result_encrypted; - encColor = R.color.android_green_light; + encColor = R.color.key_flag_green; } int encColorRes = context.getResources().getColor(encColor); @@ -470,7 +471,7 @@ public class KeyFormattingUtils { sigText = R.string.decrypt_result_no_signature; sigIcon = R.drawable.status_signature_invalid_cutout_24dp; - sigColor = R.color.bg_gray; + sigColor = R.color.key_flag_gray; // won't be used, but makes compiler happy sigActionText = 0; @@ -481,7 +482,7 @@ public class KeyFormattingUtils { case OpenPgpSignatureResult.SIGNATURE_SUCCESS_CERTIFIED: { sigText = R.string.decrypt_result_signature_certified; sigIcon = R.drawable.status_signature_verified_cutout_24dp; - sigColor = R.color.android_green_light; + sigColor = R.color.key_flag_green; sigActionText = R.string.decrypt_result_action_show; sigActionIcon = R.drawable.ic_vpn_key_grey_24dp; @@ -491,7 +492,7 @@ public class KeyFormattingUtils { case OpenPgpSignatureResult.SIGNATURE_SUCCESS_UNCERTIFIED: { sigText = R.string.decrypt_result_signature_uncertified; sigIcon = R.drawable.status_signature_unverified_cutout_24dp; - sigColor = R.color.android_orange_light; + sigColor = R.color.key_flag_orange; sigActionText = R.string.decrypt_result_action_show; sigActionIcon = R.drawable.ic_vpn_key_grey_24dp; @@ -501,7 +502,7 @@ public class KeyFormattingUtils { case OpenPgpSignatureResult.SIGNATURE_KEY_REVOKED: { sigText = R.string.decrypt_result_signature_revoked_key; sigIcon = R.drawable.status_signature_revoked_cutout_24dp; - sigColor = R.color.android_red_light; + sigColor = R.color.key_flag_red; sigActionText = R.string.decrypt_result_action_show; sigActionIcon = R.drawable.ic_vpn_key_grey_24dp; @@ -511,7 +512,7 @@ public class KeyFormattingUtils { case OpenPgpSignatureResult.SIGNATURE_KEY_EXPIRED: { sigText = R.string.decrypt_result_signature_expired_key; sigIcon = R.drawable.status_signature_expired_cutout_24dp; - sigColor = R.color.android_red_light; + sigColor = R.color.key_flag_red; sigActionText = R.string.decrypt_result_action_show; sigActionIcon = R.drawable.ic_vpn_key_grey_24dp; @@ -521,7 +522,7 @@ public class KeyFormattingUtils { case OpenPgpSignatureResult.SIGNATURE_KEY_MISSING: { sigText = R.string.decrypt_result_signature_missing_key; sigIcon = R.drawable.status_signature_unknown_cutout_24dp; - sigColor = R.color.android_red_light; + sigColor = R.color.key_flag_red; sigActionText = R.string.decrypt_result_action_Lookup; sigActionIcon = R.drawable.ic_file_download_grey_24dp; @@ -532,7 +533,7 @@ public class KeyFormattingUtils { case OpenPgpSignatureResult.SIGNATURE_ERROR: { sigText = R.string.decrypt_result_invalid_signature; sigIcon = R.drawable.status_signature_invalid_cutout_24dp; - sigColor = R.color.android_red_light; + sigColor = R.color.key_flag_red; sigActionText = R.string.decrypt_result_action_show; sigActionIcon = R.drawable.ic_vpn_key_grey_24dp; diff --git a/OpenKeychain/src/main/res/layout/decrypt_list_entry.xml b/OpenKeychain/src/main/res/layout/decrypt_list_entry.xml index 92f366eda..048595dd8 100644 --- a/OpenKeychain/src/main/res/layout/decrypt_list_entry.xml +++ b/OpenKeychain/src/main/res/layout/decrypt_list_entry.xml @@ -7,7 +7,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="4dp" - custom:cardBackgroundColor="@android:color/white" + custom:cardBackgroundColor="?attr/colorCardViewBackground" custom:cardElevation="2dp" custom:cardUseCompatPadding="true" custom:cardCornerRadius="4dp" @@ -320,4 +320,4 @@ - \ No newline at end of file + -- cgit v1.2.3 From 680799caa7bbe57e45300102b93b11850beff893 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Sat, 4 Jul 2015 18:27:13 +0200 Subject: Fix drawer background color for ViewKeyActivity --- .../java/org/sufficientlysecure/keychain/KeychainApplication.java | 3 ++- .../main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java | 4 ++-- .../java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java index 627623f47..d17a07d4b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java @@ -37,6 +37,7 @@ import org.sufficientlysecure.keychain.provider.KeychainDatabase; import org.sufficientlysecure.keychain.provider.TemporaryStorageProvider; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.ui.ConsolidateDialogActivity; +import org.sufficientlysecure.keychain.ui.util.FormattingUtils; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.PRNGFixes; import org.sufficientlysecure.keychain.util.Preferences; @@ -91,7 +92,7 @@ public class KeychainApplication extends Application { } brandGlowEffect(getApplicationContext(), - getApplicationContext().getResources().getColor(R.color.primary)); + FormattingUtils.getColorFromAttr(getApplicationContext(), R.attr.colorPrimary)); setupAccountAsNeeded(this); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 69c253432..76aab0511 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -786,7 +786,7 @@ public class ViewKeyActivity extends BaseNfcActivity implements } else if (mIsSecret) { mStatusText.setText(R.string.view_key_my_key); mStatusImage.setVisibility(View.GONE); - color = getResources().getColor(R.color.primary); + color = FormattingUtils.getColorFromAttr(this, R.attr.colorPrimary); // reload qr code only if the fingerprint changed if (!mFingerprint.equals(mQrCodeLoaded)) { loadQrCode(mFingerprint); @@ -837,7 +837,7 @@ public class ViewKeyActivity extends BaseNfcActivity implements mStatusImage.setVisibility(View.VISIBLE); KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.VERIFIED, R.color.icons, true); - color = getResources().getColor(R.color.primary); + color = FormattingUtils.getColorFromAttr(this, R.attr.colorPrimary); photoTask.execute(mMasterKeyId); mFab.setVisibility(View.GONE); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java index 4ba4bc13e..2ed5a6e97 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java @@ -213,10 +213,10 @@ public class ViewKeyAdvActivity extends BaseActivity implements if (isRevoked || isExpired) { color = getResources().getColor(R.color.key_flag_red); } else if (isSecret) { - color = getResources().getColor(R.color.primary); + color = getResources().getColor(R.color.android_green_light); } else { if (isVerified) { - color = getResources().getColor(R.color.primary); + color = getResources().getColor(R.color.android_green_light); } else { color = getResources().getColor(R.color.key_flag_orange); } -- cgit v1.2.3 From d359431662c600b25317f54126ba836dd478bdef Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Sat, 4 Jul 2015 18:48:18 +0200 Subject: Fix color of selected text in drawer menu for light theme The MaterialDrawerTheme.Light.ActionBar makes the drawer icon in the top left black for some reason. A work-around is to set the primary colour back to green, so it will be used for Theme.AppCompat.Light and override the selected text colour for the dark theme. --- OpenKeychain/src/main/res/values/colors.xml | 2 ++ OpenKeychain/src/main/res/values/themes.xml | 2 ++ 2 files changed, 4 insertions(+) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/res/values/colors.xml b/OpenKeychain/src/main/res/values/colors.xml index f8d71d0d7..5db66b945 100644 --- a/OpenKeychain/src/main/res/values/colors.xml +++ b/OpenKeychain/src/main/res/values/colors.xml @@ -1,6 +1,8 @@ + #7bad45 + #ffffff #00ffffff diff --git a/OpenKeychain/src/main/res/values/themes.xml b/OpenKeychain/src/main/res/values/themes.xml index b6e6f7ec1..3bdbf811d 100644 --- a/OpenKeychain/src/main/res/values/themes.xml +++ b/OpenKeychain/src/main/res/values/themes.xml @@ -59,6 +59,8 @@ #d0d0d0 #808080 + #268bd2 + true false -- cgit v1.2.3 From 8d2cd333397d3a4bfd5bb3b42eed4bfedad0e17d Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Thu, 11 Jun 2015 20:03:59 +0200 Subject: Upgrade MaterialDrawer to 3.0.9 --- .../keychain/ui/MainActivity.java | 31 ++++++++++++---------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java index d00c8f367..6f5d98afd 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java @@ -33,6 +33,7 @@ import com.mikepenz.community_material_typeface_library.CommunityMaterial; import com.mikepenz.google_material_typeface_library.GoogleMaterial; import com.mikepenz.iconics.typeface.FontAwesome; import com.mikepenz.materialdrawer.Drawer; +import com.mikepenz.materialdrawer.DrawerBuilder; import com.mikepenz.materialdrawer.model.PrimaryDrawerItem; import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; @@ -56,7 +57,7 @@ public class MainActivity extends BaseNfcActivity implements FabContainer, OnBac public static final String EXTRA_SKIP_FIRST_TIME = "skip_first_time"; public static final String EXTRA_INIT_FRAG = "init_frag"; - public Drawer.Result mDrawerResult; + public Drawer mDrawer; private Toolbar mToolbar; @Override @@ -68,7 +69,7 @@ public class MainActivity extends BaseNfcActivity implements FabContainer, OnBac mToolbar.setTitle(R.string.app_name); setSupportActionBar(mToolbar); - mDrawerResult = new Drawer() + mDrawer = new DrawerBuilder() .withActivity(this) .withHeader(R.layout.main_drawer_header) .withToolbar(mToolbar) @@ -89,7 +90,7 @@ public class MainActivity extends BaseNfcActivity implements FabContainer, OnBac ) .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() { @Override - public void onItemClick(AdapterView parent, View view, int position, long id, IDrawerItem drawerItem) { + public boolean onItemClick(AdapterView parent, View view, int position, long id, IDrawerItem drawerItem) { if (drawerItem != null) { Intent intent = null; switch(drawerItem.getIdentifier()) { @@ -116,6 +117,8 @@ public class MainActivity extends BaseNfcActivity implements FabContainer, OnBac MainActivity.this.startActivity(intent); } } + + return false; } }) .withSelectedItem(-1) @@ -179,28 +182,28 @@ public class MainActivity extends BaseNfcActivity implements FabContainer, OnBac private void onKeysSelected() { mToolbar.setTitle(R.string.app_name); - mDrawerResult.setSelectionByIdentifier(ID_KEYS, false); + mDrawer.setSelectionByIdentifier(ID_KEYS, false); Fragment frag = new KeyListFragment(); setFragment(frag, false); } private void onEnDecryptSelected() { mToolbar.setTitle(R.string.nav_encrypt_decrypt); - mDrawerResult.setSelectionByIdentifier(ID_ENCRYPT_DECRYPT, false); + mDrawer.setSelectionByIdentifier(ID_ENCRYPT_DECRYPT, false); Fragment frag = new EncryptDecryptOverviewFragment(); setFragment(frag, true); } private void onAppsSelected() { mToolbar.setTitle(R.string.nav_apps); - mDrawerResult.setSelectionByIdentifier(ID_APPS, false); + mDrawer.setSelectionByIdentifier(ID_APPS, false); Fragment frag = new AppsListFragment(); setFragment(frag, true); } private void onBackupSelected() { mToolbar.setTitle(R.string.nav_backup); - mDrawerResult.setSelectionByIdentifier(ID_APPS, false); + mDrawer.setSelectionByIdentifier(ID_APPS, false); Fragment frag = new BackupFragment(); setFragment(frag, true); } @@ -208,15 +211,15 @@ public class MainActivity extends BaseNfcActivity implements FabContainer, OnBac @Override protected void onSaveInstanceState(Bundle outState) { // add the values which need to be saved from the drawer to the bundle - outState = mDrawerResult.saveInstanceState(outState); + outState = mDrawer.saveInstanceState(outState); super.onSaveInstanceState(outState); } @Override public void onBackPressed() { // close the drawer first and if the drawer is closed do regular backstack handling - if (mDrawerResult != null && mDrawerResult.isDrawerOpen()) { - mDrawerResult.closeDrawer(); + if (mDrawer != null && mDrawer.isDrawerOpen()) { + mDrawer.closeDrawer(); } else { super.onBackPressed(); } @@ -255,16 +258,16 @@ public class MainActivity extends BaseNfcActivity implements FabContainer, OnBac // make sure the selected icon is the one shown at this point if (frag instanceof KeyListFragment) { mToolbar.setTitle(R.string.app_name); - mDrawerResult.setSelection(mDrawerResult.getPositionFromIdentifier(ID_KEYS), false); + mDrawer.setSelection(mDrawer.getPositionFromIdentifier(ID_KEYS), false); } else if (frag instanceof EncryptDecryptOverviewFragment) { mToolbar.setTitle(R.string.nav_encrypt_decrypt); - mDrawerResult.setSelection(mDrawerResult.getPositionFromIdentifier(ID_ENCRYPT_DECRYPT), false); + mDrawer.setSelection(mDrawer.getPositionFromIdentifier(ID_ENCRYPT_DECRYPT), false); } else if (frag instanceof AppsListFragment) { mToolbar.setTitle(R.string.nav_apps); - mDrawerResult.setSelection(mDrawerResult.getPositionFromIdentifier(ID_APPS), false); + mDrawer.setSelection(mDrawer.getPositionFromIdentifier(ID_APPS), false); } else if (frag instanceof BackupFragment) { mToolbar.setTitle(R.string.nav_backup); - mDrawerResult.setSelection(mDrawerResult.getPositionFromIdentifier(ID_BACKUP), false); + mDrawer.setSelection(mDrawer.getPositionFromIdentifier(ID_BACKUP), false); } } -- cgit v1.2.3 From 86d95e4d400ecc870bb69630d59a271a710a3918 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Sat, 4 Jul 2015 19:30:25 +0200 Subject: Refactor theme preference values into constants Also explicitly set a theme via preference updating to the default. --- .../src/main/java/org/sufficientlysecure/keychain/Constants.java | 7 ++++++- .../java/org/sufficientlysecure/keychain/ui/SettingsActivity.java | 2 +- .../java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java | 3 ++- .../java/org/sufficientlysecure/keychain/util/Preferences.java | 6 +++++- 4 files changed, 14 insertions(+), 4 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java index a45cac832..6051c4d4e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java @@ -104,6 +104,11 @@ public final class Constants { public static final String PROXY_PORT = "proxyPort"; public static final String PROXY_TYPE = "proxyType"; public static final String THEME = "theme"; + + public static final class Theme { + public static final String LIGHT = "light"; + public static final String DARK = "dark"; + } } /** @@ -117,7 +122,7 @@ public final class Constants { public static final class Defaults { public static final String KEY_SERVERS = "hkps://hkps.pool.sks-keyservers.net, hkps://pgp.mit.edu"; - public static final int PREF_VERSION = 4; + public static final int PREF_VERSION = 5; } public static final class key { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java index e7c5f51ab..b88ed97bc 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java @@ -136,7 +136,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity { } int themeId = R.style.LightTheme; - if ("dark".equals(newTheme)) { + if (Constants.Pref.Theme.DARK.equals(newTheme)) { themeId = R.style.DarkTheme; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java index 00aa4802c..676fb2b3e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java @@ -30,6 +30,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.util.Preferences; @@ -76,7 +77,7 @@ public abstract class BaseActivity extends AppCompatActivity { } int themeId = R.style.LightTheme; - if ("dark".equals(newTheme)) { + if (Constants.Pref.Theme.DARK.equals(newTheme)) { themeId = R.style.DarkTheme; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java index c7b02f696..0b5189a63 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -221,7 +221,7 @@ public class Preferences { } public String getTheme() { - return mSharedPreferences.getString(Pref.THEME, "light"); + return mSharedPreferences.getString(Pref.THEME, Pref.Theme.LIGHT); } public void setTheme(String value) { @@ -390,6 +390,10 @@ public class Preferences { } // fall through case 4: { + // fall through + } + case 5: { + setTheme(Constants.Pref.Theme.LIGHT); } } -- cgit v1.2.3 From 3b67c9d8942447432c1c5702d3f184b33902075c Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Sat, 4 Jul 2015 19:32:39 +0200 Subject: Rename updatePreferences() to upgradePreferences() This is really an upgrade of the preference store and not an update of values, it also is consistent with SQLiteOpenHelper.onUpgrade(). --- .../main/java/org/sufficientlysecure/keychain/KeychainApplication.java | 2 +- .../src/main/java/org/sufficientlysecure/keychain/util/Preferences.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java index d17a07d4b..cd24394d7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java @@ -97,7 +97,7 @@ public class KeychainApplication extends Application { setupAccountAsNeeded(this); // Update keyserver list as needed - Preferences.getPreferences(this).updatePreferences(); + Preferences.getPreferences(this).upgradePreferences(); TlsHelper.addStaticCA("pool.sks-keyservers.net", getAssets(), "sks-keyservers.netCA.cer"); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java index 0b5189a63..9a52e3db1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -356,7 +356,7 @@ public class Preferences { } } - public void updatePreferences() { + public void upgradePreferences() { if (mSharedPreferences.getInt(Constants.Pref.PREF_DEFAULT_VERSION, 0) != Constants.Defaults.PREF_VERSION) { switch (mSharedPreferences.getInt(Constants.Pref.PREF_DEFAULT_VERSION, 0)) { -- cgit v1.2.3 From 306d20f977604172e756aae207016e8a8343b74b Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Sat, 4 Jul 2015 20:19:15 +0200 Subject: Refactor theme changing to avoid code repetition --- .../keychain/ui/SettingsActivity.java | 27 ++-------- .../keychain/ui/base/BaseActivity.java | 38 ++------------ .../keychain/ui/util/ThemeChanger.java | 60 ++++++++++++++++++++++ 3 files changed, 70 insertions(+), 55 deletions(-) create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/ThemeChanger.java (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java index b88ed97bc..2fe868b8b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java @@ -33,7 +33,6 @@ import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.support.v7.widget.Toolbar; import android.text.TextUtils; -import android.view.ContextThemeWrapper; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; @@ -42,6 +41,7 @@ import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.compatibility.AppCompatPreferenceActivity; import org.sufficientlysecure.keychain.ui.util.Notify; +import org.sufficientlysecure.keychain.ui.util.ThemeChanger; import org.sufficientlysecure.keychain.ui.widget.IntegerListPreference; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Preferences; @@ -60,13 +60,14 @@ public class SettingsActivity extends AppCompatPreferenceActivity { private PreferenceScreen mKeyServerPreference = null; private static Preferences sPreferences; - private String mCurrentTheme = null; + private ThemeChanger mThemeChanger; @Override protected void onCreate(Bundle savedInstanceState) { sPreferences = Preferences.getPreferences(this); - changeTheme(); + mThemeChanger = new ThemeChanger(this); + mThemeChanger.changeTheme(); super.onCreate(savedInstanceState); setupToolbar(); @@ -122,31 +123,13 @@ public class SettingsActivity extends AppCompatPreferenceActivity { protected void onResume() { super.onResume(); - if (changeTheme()) { + if (mThemeChanger.changeTheme()) { Intent intent = getIntent(); finish(); startActivity(intent); } } - protected boolean changeTheme() { - String newTheme = sPreferences.getTheme(); - if (mCurrentTheme != null && mCurrentTheme.equals(newTheme)) { - return false; - } - - int themeId = R.style.LightTheme; - if (Constants.Pref.Theme.DARK.equals(newTheme)) { - themeId = R.style.DarkTheme; - } - - ContextThemeWrapper w = new ContextThemeWrapper(this, themeId); - getTheme().setTo(w.getTheme()); - mCurrentTheme = newTheme; - - return true; - } - /** * Hack to get Toolbar in PreferenceActivity. See http://stackoverflow.com/a/26614696 */ diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java index 676fb2b3e..66b784f9b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java @@ -23,16 +23,14 @@ import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; -import android.view.ContextThemeWrapper; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; -import org.sufficientlysecure.keychain.util.Preferences; +import org.sufficientlysecure.keychain.ui.util.ThemeChanger; /** * Setups Toolbar @@ -40,14 +38,12 @@ import org.sufficientlysecure.keychain.util.Preferences; public abstract class BaseActivity extends AppCompatActivity { protected Toolbar mToolbar; protected View mStatusBar; - private static Preferences sPreferences; - private String mCurrentTheme = null; + protected ThemeChanger mThemeChanger; @Override protected void onCreate(Bundle savedInstanceState) { - sPreferences = Preferences.getPreferences(this); - - changeTheme(); + mThemeChanger = new ThemeChanger(this); + mThemeChanger.changeTheme(); super.onCreate(savedInstanceState); initLayout(); initToolbar(); @@ -57,37 +53,13 @@ public abstract class BaseActivity extends AppCompatActivity { protected void onResume() { super.onResume(); - if (changeTheme()) { + if (mThemeChanger.changeTheme()) { Intent intent = getIntent(); finish(); startActivity(intent); } } - /** - * Apply the theme set in preferences if it isn't equal to mCurrentTheme - * anymore or mCurrentTheme hasn't been set yet. - * If a new theme is applied in this method, then return true, so - * the caller can re-create the activity, if need be. - */ - protected boolean changeTheme() { - String newTheme = sPreferences.getTheme(); - if (mCurrentTheme != null && mCurrentTheme.equals(newTheme)) { - return false; - } - - int themeId = R.style.LightTheme; - if (Constants.Pref.Theme.DARK.equals(newTheme)) { - themeId = R.style.DarkTheme; - } - - ContextThemeWrapper w = new ContextThemeWrapper(this, themeId); - getTheme().setTo(w.getTheme()); - mCurrentTheme = newTheme; - - return true; - } - protected void initLayout() { } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/ThemeChanger.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/ThemeChanger.java new file mode 100644 index 000000000..4878271a2 --- /dev/null +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/ThemeChanger.java @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2015 Thialfihar + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package org.sufficientlysecure.keychain.ui.util; + +import android.content.Context; +import android.view.ContextThemeWrapper; + +import org.sufficientlysecure.keychain.Constants; +import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.util.Preferences; + +public class ThemeChanger { + private Context mContext; + private Preferences mPreferences; + private String mCurrentTheme = null; + + public ThemeChanger(Context context) { + mContext = context; + mPreferences = Preferences.getPreferences(mContext); + } + + /** + * Apply the theme set in preferences if it isn't equal to mCurrentTheme + * anymore or mCurrentTheme hasn't been set yet. + * If a new theme is applied in this method, then return true, so + * the caller can re-create the activity, if need be. + */ + public boolean changeTheme() { + String newTheme = mPreferences.getTheme(); + if (mCurrentTheme != null && mCurrentTheme.equals(newTheme)) { + return false; + } + + int themeId = R.style.LightTheme; + if (Constants.Pref.Theme.DARK.equals(newTheme)) { + themeId = R.style.DarkTheme; + } + + ContextThemeWrapper w = new ContextThemeWrapper(mContext, themeId); + mContext.getTheme().setTo(w.getTheme()); + mCurrentTheme = newTheme; + + return true; + } +} -- cgit v1.2.3 From 1183d6f30cdb5d696d20c2bb771f9b5f463361ea Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Sat, 4 Jul 2015 20:24:07 +0200 Subject: Use a constant for the default value of the theme --- .../src/main/java/org/sufficientlysecure/keychain/Constants.java | 1 + .../src/main/java/org/sufficientlysecure/keychain/util/Preferences.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java index 6051c4d4e..3d58602ab 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java @@ -108,6 +108,7 @@ public final class Constants { public static final class Theme { public static final String LIGHT = "light"; public static final String DARK = "dark"; + public static final String DEFAULT = Constants.Pref.Theme.LIGHT; } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java index 9a52e3db1..dc258f610 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -393,7 +393,7 @@ public class Preferences { // fall through } case 5: { - setTheme(Constants.Pref.Theme.LIGHT); + setTheme(Constants.Pref.Theme.DEFAULT); } } -- cgit v1.2.3 From 3a810676fcae892849ffcafdfe6e20aa72414080 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Sat, 4 Jul 2015 20:38:16 +0200 Subject: Fix preference version handling Move preference upgrade of theme to version 4 of the preferences. The upgrade is meant FROM that version to the next. --- .../main/java/org/sufficientlysecure/keychain/util/Preferences.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java index dc258f610..0596b0079 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/Preferences.java @@ -390,10 +390,10 @@ public class Preferences { } // fall through case 4: { - // fall through + setTheme(Constants.Pref.Theme.DEFAULT); } + // fall through case 5: { - setTheme(Constants.Pref.Theme.DEFAULT); } } -- cgit v1.2.3 From 313188c69529bb426c6b09ce631812717d8be2d3 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Tue, 21 Jul 2015 22:05:55 +0200 Subject: Fix key view toolbar and status colour The status bar wrongly used the same colour as the toolbar, making it indistinguishable from it. This calculates the status bar colour based on the toolbar colour. --- .../keychain/ui/ViewKeyActivity.java | 28 ++++++++++++++++++---- .../keychain/ui/ViewKeyAdvActivity.java | 2 +- 2 files changed, 25 insertions(+), 5 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 76aab0511..1d0e085da 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -691,6 +691,25 @@ public class ViewKeyActivity extends BaseNfcActivity implements int mPreviousColor = 0; + /** + * Calculate a reasonable color for the status bar based on the given toolbar color. + * Style guides want the toolbar color to be a "700" on the Android scale and the status + * bar should be the same color at "500", this is roughly 17 / 20th of the value in each + * channel. + * http://www.google.com/design/spec/style/color.html#color-color-palette + */ + static public int getStatusBarBackgroundColor(int color) { + int r = (color >> 16) & 0xff; + int g = (color >> 8) & 0xff; + int b = color & 0xff; + + r = r * 17 / 20; + g = g * 17 / 20; + b = b * 17 / 20; + + return (0xff << 24) | (r << 16) | (g << 8) | b; + } + @Override public void onLoadFinished(Loader loader, Cursor data) { /* TODO better error handling? May cause problems when a key is deleted, @@ -786,7 +805,7 @@ public class ViewKeyActivity extends BaseNfcActivity implements } else if (mIsSecret) { mStatusText.setText(R.string.view_key_my_key); mStatusImage.setVisibility(View.GONE); - color = FormattingUtils.getColorFromAttr(this, R.attr.colorPrimary); + color = getResources().getColor(R.color.key_flag_green); // reload qr code only if the fingerprint changed if (!mFingerprint.equals(mQrCodeLoaded)) { loadQrCode(mFingerprint); @@ -837,7 +856,7 @@ public class ViewKeyActivity extends BaseNfcActivity implements mStatusImage.setVisibility(View.VISIBLE); KeyFormattingUtils.setStatusImage(this, mStatusImage, mStatusText, State.VERIFIED, R.color.icons, true); - color = FormattingUtils.getColorFromAttr(this, R.attr.colorPrimary); + color = getResources().getColor(R.color.key_flag_green); photoTask.execute(mMasterKeyId); mFab.setVisibility(View.GONE); @@ -853,13 +872,14 @@ public class ViewKeyActivity extends BaseNfcActivity implements } if (mPreviousColor == 0 || mPreviousColor == color) { - mStatusBar.setBackgroundColor(color); + mStatusBar.setBackgroundColor(getStatusBarBackgroundColor(color)); mBigToolbar.setBackgroundColor(color); mPreviousColor = color; } else { ObjectAnimator colorFade1 = ObjectAnimator.ofObject(mStatusBar, "backgroundColor", - new ArgbEvaluator(), mPreviousColor, color); + new ArgbEvaluator(), mPreviousColor, + getStatusBarBackgroundColor(color)); ObjectAnimator colorFade2 = ObjectAnimator.ofObject(mBigToolbar, "backgroundColor", new ArgbEvaluator(), mPreviousColor, color); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java index 2ed5a6e97..673092e61 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java @@ -222,7 +222,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements } } mToolbar.setBackgroundColor(color); - mStatusBar.setBackgroundColor(color); + mStatusBar.setBackgroundColor(ViewKeyActivity.getStatusBarBackgroundColor(color)); mSlidingTabLayout.setBackgroundColor(color); break; -- cgit v1.2.3 From a4470abc10452cd7a2867bc2379e94a3558baa47 Mon Sep 17 00:00:00 2001 From: Thialfihar Date: Tue, 21 Jul 2015 22:37:52 +0200 Subject: Refactor theme selection of dialogs This makes sure the dark theme also uses dark dialogs. --- .../keychain/ui/DeleteKeyDialogActivity.java | 9 +++------ .../keychain/ui/PassphraseDialogActivity.java | 6 ++---- .../keychain/ui/RetryUploadDialogActivity.java | 4 ++-- .../keychain/ui/dialog/OrbotStartDialogFragment.java | 9 +++------ .../keychain/ui/dialog/ProgressDialogFragment.java | 6 ++---- .../keychain/ui/util/InstallDialogFragmentHelper.java | 7 ++----- .../sufficientlysecure/keychain/ui/util/ThemeChanger.java | 13 +++++++++++++ 7 files changed, 27 insertions(+), 27 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DeleteKeyDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DeleteKeyDialogActivity.java index 4c1dbd1ee..b22053df1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DeleteKeyDialogActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DeleteKeyDialogActivity.java @@ -49,6 +49,7 @@ import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper; import org.sufficientlysecure.keychain.ui.dialog.CustomAlertDialogBuilder; import org.sufficientlysecure.keychain.ui.util.Notify; +import org.sufficientlysecure.keychain.ui.util.ThemeChanger; import org.sufficientlysecure.keychain.util.Log; import java.util.Date; @@ -254,8 +255,7 @@ public class DeleteKeyDialogActivity extends FragmentActivity { final long[] masterKeyIds = getArguments().getLongArray(ARG_DELETE_MASTER_KEY_IDS); final boolean hasSecret = getArguments().getBoolean(ARG_HAS_SECRET); - ContextThemeWrapper theme = new ContextThemeWrapper(activity, - R.style.Theme_AppCompat_Light_Dialog); + ContextThemeWrapper theme = ThemeChanger.getDialogThemeWrapper(activity); CustomAlertDialogBuilder builder = new CustomAlertDialogBuilder(theme); @@ -351,10 +351,7 @@ public class DeleteKeyDialogActivity extends FragmentActivity { final String CHOICE_REVOKE = getString(R.string.del_rev_dialog_choice_rev_upload); final String CHOICE_DELETE = getString(R.string.del_rev_dialog_choice_delete); - // if the dialog is displayed from the application class, design is missing - // hack to get holo design (which is not automatically applied due to activity's Theme.NoDisplay - ContextThemeWrapper theme = new ContextThemeWrapper(activity, - R.style.Theme_AppCompat_Light_Dialog); + ContextThemeWrapper theme = ThemeChanger.getDialogThemeWrapper(activity); CustomAlertDialogBuilder builder = new CustomAlertDialogBuilder(theme); builder.setTitle(getString(R.string.del_rev_dialog_title, diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java index 8b482584d..d7224bd04 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java @@ -59,6 +59,7 @@ import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.service.input.RequiredInputParcel; import org.sufficientlysecure.keychain.ui.dialog.CustomAlertDialogBuilder; +import org.sufficientlysecure.keychain.ui.util.ThemeChanger; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Passphrase; import org.sufficientlysecure.keychain.util.Preferences; @@ -196,10 +197,7 @@ public class PassphraseDialogActivity extends FragmentActivity { public Dialog onCreateDialog(Bundle savedInstanceState) { final Activity activity = getActivity(); - // if the dialog is displayed from the application class, design is missing - // hack to get holo design (which is not automatically applied due to activity's Theme.NoDisplay - ContextThemeWrapper theme = new ContextThemeWrapper(activity, - R.style.Theme_AppCompat_Light_Dialog); + ContextThemeWrapper theme = ThemeChanger.getDialogThemeWrapper(activity); mSubKeyId = getArguments().getLong(EXTRA_SUBKEY_ID); mServiceIntent = getArguments().getParcelable(EXTRA_SERVICE_INTENT); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/RetryUploadDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/RetryUploadDialogActivity.java index 85f2096db..2a00e8b70 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/RetryUploadDialogActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/RetryUploadDialogActivity.java @@ -29,6 +29,7 @@ import android.support.v4.app.FragmentActivity; import android.view.ContextThemeWrapper; import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.ui.util.ThemeChanger; import org.sufficientlysecure.keychain.ui.dialog.CustomAlertDialogBuilder; public class RetryUploadDialogActivity extends FragmentActivity { @@ -54,8 +55,7 @@ public class RetryUploadDialogActivity extends FragmentActivity { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - ContextThemeWrapper theme = new ContextThemeWrapper(getActivity(), - R.style.Theme_AppCompat_Light_Dialog); + ContextThemeWrapper theme = ThemeChanger.getDialogThemeWrapper(getActivity()); CustomAlertDialogBuilder dialogBuilder = new CustomAlertDialogBuilder(theme); dialogBuilder.setTitle(R.string.retry_up_dialog_title); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/OrbotStartDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/OrbotStartDialogFragment.java index f88cf603a..d1d22b6d7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/OrbotStartDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/OrbotStartDialogFragment.java @@ -30,6 +30,7 @@ import android.view.ContextThemeWrapper; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.ui.util.ThemeChanger; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.orbot.OrbotHelper; @@ -67,11 +68,7 @@ public class OrbotStartDialogFragment extends DialogFragment { int middleButton = getArguments().getInt(ARG_MIDDLE_BUTTON); final Activity activity = getActivity(); - // if the dialog is displayed from the application class, design is missing. - // hack to get holo design (which is not automatically applied due to activity's - // Theme.NoDisplay) - ContextThemeWrapper theme = new ContextThemeWrapper(activity, - R.style.Theme_AppCompat_Light_Dialog); + ContextThemeWrapper theme = ThemeChanger.getDialogThemeWrapper(activity); CustomAlertDialogBuilder builder = new CustomAlertDialogBuilder(theme); builder.setTitle(title).setMessage(message); @@ -126,4 +123,4 @@ public class OrbotStartDialogFragment extends DialogFragment { return builder.show(); } -} \ No newline at end of file +} diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java index 52a90b323..764291dd0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java @@ -35,6 +35,7 @@ import android.widget.Button; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.service.KeychainService; +import org.sufficientlysecure.keychain.ui.util.ThemeChanger; /** * meant to be used @@ -98,10 +99,7 @@ public class ProgressDialogFragment extends DialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { final Activity activity = getActivity(); - // if the progress dialog is displayed from the application class, design is missing - // hack to get holo design (which is not automatically applied due to activity's Theme.NoDisplay - ContextThemeWrapper context = new ContextThemeWrapper(activity, - R.style.Theme_AppCompat_Light); + ContextThemeWrapper context = ThemeChanger.getDialogThemeWrapper(activity); ProgressDialog dialog = new ProgressDialog(context); dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/InstallDialogFragmentHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/InstallDialogFragmentHelper.java index 5ddb013db..b2213ed10 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/InstallDialogFragmentHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/InstallDialogFragmentHelper.java @@ -31,6 +31,7 @@ import android.view.ContextThemeWrapper; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.ui.dialog.CustomAlertDialogBuilder; +import org.sufficientlysecure.keychain.ui.util.ThemeChanger; import org.sufficientlysecure.keychain.util.Log; public class InstallDialogFragmentHelper { @@ -65,11 +66,7 @@ public class InstallDialogFragmentHelper { final String installPath = args.getString(ARG_INSTALL_PATH); final boolean useMiddleButton = args.getBoolean(ARG_USE_MIDDLE_BUTTON); - // if the dialog is displayed from the application class, design is missing. - // hack to get holo design (which is not automatically applied due to activity's - // Theme.NoDisplay) - ContextThemeWrapper theme = new ContextThemeWrapper(activity, - R.style.Theme_AppCompat_Light_Dialog); + ContextThemeWrapper theme = ThemeChanger.getDialogThemeWrapper(activity); CustomAlertDialogBuilder builder = new CustomAlertDialogBuilder(theme); builder.setTitle(title).setMessage(message); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/ThemeChanger.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/ThemeChanger.java index 4878271a2..f53e43528 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/ThemeChanger.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/ThemeChanger.java @@ -29,6 +29,19 @@ public class ThemeChanger { private Preferences mPreferences; private String mCurrentTheme = null; + static public ContextThemeWrapper getDialogThemeWrapper(Context context) { + Preferences preferences = Preferences.getPreferences(context); + + // if the dialog is displayed from the application class, design is missing. + // hack to get holo design (which is not automatically applied due to activity's + // Theme.NoDisplay) + if (Constants.Pref.Theme.DARK.equals(preferences.getTheme())) { + return new ContextThemeWrapper(context, R.style.Theme_AppCompat_Dialog); + } else { + return new ContextThemeWrapper(context, R.style.Theme_AppCompat_Light_Dialog); + } + } + public ThemeChanger(Context context) { mContext = context; mPreferences = Preferences.getPreferences(mContext); -- cgit v1.2.3 From 04f771a4f7181a8fa6f9ec14532777ad19a34a4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Sat, 25 Jul 2015 15:46:36 +0200 Subject: Fix crash with new theme --- .../java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java index 8f5b97148..aba1eb0d8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java @@ -190,7 +190,7 @@ public class KeyAdapter extends CursorAdapter { mCreationDate.setText(context.getString(R.string.label_key_created, dateTime)); - mCreationDate.setTextColor(context.getResources().getColor(textColor)); + mCreationDate.setTextColor(textColor); mCreationDate.setVisibility(View.VISIBLE); } else { mCreationDate.setVisibility(View.GONE); -- cgit v1.2.3 From e0a381a00dc98f333b7cdb252d63ccc702953df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Sat, 25 Jul 2015 15:47:49 +0200 Subject: Restore fab colors in key list --- OpenKeychain/src/main/res/layout/key_list_fragment.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/res/layout/key_list_fragment.xml b/OpenKeychain/src/main/res/layout/key_list_fragment.xml index 83cf2d260..9c41590db 100644 --- a/OpenKeychain/src/main/res/layout/key_list_fragment.xml +++ b/OpenKeychain/src/main/res/layout/key_list_fragment.xml @@ -61,8 +61,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_icon="@drawable/ic_qrcode_white_24dp" - fab:fab_colorNormal="?attr/colorFab" - fab:fab_colorPressed="?attr/colorFabPressed" + fab:fab_colorNormal="?attr/colorPrimary" + fab:fab_colorPressed="?attr/colorPrimaryDark" fab:fab_title="Scan QR Code" fab:fab_size="mini" /> @@ -71,8 +71,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_icon="@drawable/ic_cloud_search_24dp" - fab:fab_colorNormal="?attr/colorFab" - fab:fab_colorPressed="?attr/colorFabPressed" + fab:fab_colorNormal="?attr/colorPrimary" + fab:fab_colorPressed="?attr/colorPrimaryDark" fab:fab_title="Search Cloud" fab:fab_size="mini" /> @@ -81,8 +81,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" fab:fab_icon="@drawable/ic_folder_white_24dp" - fab:fab_colorNormal="?attr/colorFab" - fab:fab_colorPressed="?attr/colorFabPressed" + fab:fab_colorNormal="?attr/colorPrimary" + fab:fab_colorPressed="?attr/colorPrimaryDark" fab:fab_title="Import from File" fab:fab_size="mini" /> -- cgit v1.2.3 From a8b80b3ff43f9df9583e3e8bb514f84443bab60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Sat, 25 Jul 2015 15:55:21 +0200 Subject: Hide theme setting for now --- OpenKeychain/src/main/res/xml/preference_headers.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenKeychain/src') diff --git a/OpenKeychain/src/main/res/xml/preference_headers.xml b/OpenKeychain/src/main/res/xml/preference_headers.xml index 7a0ea18bb..b7512b062 100644 --- a/OpenKeychain/src/main/res/xml/preference_headers.xml +++ b/OpenKeychain/src/main/res/xml/preference_headers.xml @@ -1,7 +1,7 @@ -
+ + +
-- cgit v1.2.3