aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java3
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java3
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java9
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java7
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/BaseActivity.java14
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/util/ThemeChanger.java18
-rw-r--r--OpenKeychain/src/main/res/values/themes.xml7
7 files changed, 47 insertions, 14 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java
index acbb695df..7a1e167bb 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpAboutFragment.java
@@ -56,9 +56,6 @@ public class HelpAboutFragment extends Fragment {
Log.e(Constants.TAG, "IOException", e);
}
- // no flickering when clicking textview for Android < 4
- aboutTextView.setTextColor(getResources().getColor(android.R.color.black));
-
return view;
}
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 73ce7e03e..15098b8d6 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/HelpMarkdownFragment.java
@@ -73,9 +73,6 @@ public class HelpMarkdownFragment extends Fragment {
Log.e(Constants.TAG, "IOException", e);
}
- // no flickering when clicking textview for Android < 4
- text.setTextColor(getResources().getColor(android.R.color.black));
-
return scroller;
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java
index 1584b87ae..d2efbb9a9 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java
@@ -26,6 +26,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.base.BaseNfcActivity;
+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;
@@ -65,6 +66,14 @@ public class NfcOperationActivity extends BaseNfcActivity {
private CryptoInputParcel mInputParcel;
@Override
+ protected void initTheme() {
+ mThemeChanger = new ThemeChanger(this);
+ mThemeChanger.setThemes(R.style.Theme_Keychain_Light_Dialog_SecurityToken,
+ R.style.Theme_Keychain_Dark_Dialog_SecurityToken);
+ mThemeChanger.changeTheme();
+ }
+
+ @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(Constants.TAG, "NfcOperationActivity.onCreate");
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 2fe868b8b..c18156428 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java
@@ -65,8 +65,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
sPreferences = Preferences.getPreferences(this);
-
mThemeChanger = new ThemeChanger(this);
+ mThemeChanger.setThemes(R.style.Theme_Keychain_Light, R.style.Theme_Keychain_Dark);
mThemeChanger.changeTheme();
super.onCreate(savedInstanceState);
@@ -126,7 +126,9 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
if (mThemeChanger.changeTheme()) {
Intent intent = getIntent();
finish();
+ overridePendingTransition(0, 0);
startActivity(intent);
+ overridePendingTransition(0, 0);
}
}
@@ -506,6 +508,9 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
mTheme.setValue((String) newValue);
mTheme.setSummary(mTheme.getEntry());
sPreferences.setTheme((String) newValue);
+
+ ((SettingsActivity) mTheme.getContext()).recreate();
+
return false;
}
});
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 66b784f9b..fcf5dc11e 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
@@ -42,8 +42,7 @@ public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- mThemeChanger = new ThemeChanger(this);
- mThemeChanger.changeTheme();
+ initTheme();
super.onCreate(savedInstanceState);
initLayout();
initToolbar();
@@ -56,7 +55,9 @@ public abstract class BaseActivity extends AppCompatActivity {
if (mThemeChanger.changeTheme()) {
Intent intent = getIntent();
finish();
+ overridePendingTransition(0, 0);
startActivity(intent);
+ overridePendingTransition(0, 0);
}
}
@@ -73,6 +74,15 @@ public abstract class BaseActivity extends AppCompatActivity {
mStatusBar = findViewById(R.id.status_bar);
}
+ /**
+ * Override if you want a different theme!
+ */
+ protected void initTheme() {
+ mThemeChanger = new ThemeChanger(this);
+ mThemeChanger.setThemes(R.style.Theme_Keychain_Light, R.style.Theme_Keychain_Dark);
+ mThemeChanger.changeTheme();
+ }
+
protected void setActionBarIcon(int iconRes) {
mToolbar.setNavigationIcon(iconRes);
}
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 963f57e6b..75a0d1ea5 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
@@ -17,6 +17,7 @@
package org.sufficientlysecure.keychain.ui.util;
+import android.app.Activity;
import android.content.Context;
import android.view.ContextThemeWrapper;
@@ -25,10 +26,13 @@ import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.util.Preferences;
public class ThemeChanger {
- private Context mContext;
+ private Activity mContext;
private Preferences mPreferences;
private String mCurrentTheme = null;
+ private int mLightResId;
+ private int mDarkResId;
+
static public ContextThemeWrapper getDialogThemeWrapper(Context context) {
Preferences preferences = Preferences.getPreferences(context);
@@ -42,7 +46,12 @@ public class ThemeChanger {
}
}
- public ThemeChanger(Context context) {
+ public void setThemes(int lightResId, int darkResId) {
+ mLightResId = lightResId;
+ mDarkResId = darkResId;
+ }
+
+ public ThemeChanger(Activity context) {
mContext = context;
mPreferences = Preferences.getPreferences(mContext);
}
@@ -59,9 +68,9 @@ public class ThemeChanger {
return false;
}
- int themeId = R.style.Theme_Keychain_Light;
+ int themeId = mLightResId;
if (Constants.Pref.Theme.DARK.equals(newTheme)) {
- themeId = R.style.Theme_Keychain_Dark;
+ themeId = mDarkResId;
}
ContextThemeWrapper w = new ContextThemeWrapper(mContext, themeId);
@@ -70,4 +79,5 @@ public class ThemeChanger {
return true;
}
+
}
diff --git a/OpenKeychain/src/main/res/values/themes.xml b/OpenKeychain/src/main/res/values/themes.xml
index 08f9dd9ca..2b1c00ba9 100644
--- a/OpenKeychain/src/main/res/values/themes.xml
+++ b/OpenKeychain/src/main/res/values/themes.xml
@@ -115,7 +115,7 @@
<item name="colorAccent">#7bad45</item>
</style>
- <style name="Theme.Keychain.Dark.Dialog" parent="Base.Theme.AppCompat.Light.Dialog.Alert">
+ <style name="Theme.Keychain.Dark.Dialog" parent="Base.Theme.AppCompat.Dialog.Alert">
<item name="colorAccent">#268bd2</item>
</style>
@@ -123,4 +123,9 @@
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
+
+ <style name="Theme.Keychain.Dark.Dialog.SecurityToken" parent="Theme.AppCompat.Dialog.MinWidth">
+ <item name="windowActionBar">false</item>
+ <item name="windowNoTitle">true</item>
+ </style>
</resources>