diff --git a/src/keepass2android/CreateDatabaseActivity.cs b/src/keepass2android/CreateDatabaseActivity.cs
index f24f3f32..983d6f4c 100644
--- a/src/keepass2android/CreateDatabaseActivity.cs
+++ b/src/keepass2android/CreateDatabaseActivity.cs
@@ -55,8 +55,9 @@ namespace keepass2android
protected override void OnCreate(Bundle bundle)
{
+ _design.ApplyTheme();
base.OnCreate(bundle);
- _design.ApplyTheme();
+
SupportActionBar.SetDisplayHomeAsUpEnabled(true);
SupportActionBar.SetHomeButtonEnabled(true);
diff --git a/src/keepass2android/EntryActivity.cs b/src/keepass2android/EntryActivity.cs
index 5a39c32a..a1a1f23f 100644
--- a/src/keepass2android/EntryActivity.cs
+++ b/src/keepass2android/EntryActivity.cs
@@ -78,7 +78,7 @@ namespace keepass2android
public EntryActivity()
{
-
+ _activityDesign = new ActivityDesign(this);
}
protected PwEntry Entry;
@@ -102,6 +102,7 @@ namespace keepass2android
private Timer _timer;
private PluginActionReceiver _pluginActionReceiver;
private PluginFieldReceiver _pluginFieldReceiver;
+ private ActivityDesign _activityDesign;
protected void SetEntryView()
@@ -309,10 +310,12 @@ namespace keepass2android
!prefs.GetBoolean(GetString(Resource.String.maskpass_key), Resources.GetBoolean(Resource.Boolean.maskpass_default));
RequestWindowFeature(WindowFeatures.IndeterminateProgress);
+
+ _activityDesign.ApplyTheme();
base.OnCreate(savedInstanceState);
- new ActivityDesign(this).ApplyTheme();
+
SetEntryView();
@@ -934,6 +937,7 @@ namespace keepass2android
{
ClearCache();
base.OnResume();
+ _activityDesign.ReapplyTheme();
}
public void ClearCache()
diff --git a/src/keepass2android/FileStorageSelectionActivity.cs b/src/keepass2android/FileStorageSelectionActivity.cs
index c7dfdbd9..c9023df5 100644
--- a/src/keepass2android/FileStorageSelectionActivity.cs
+++ b/src/keepass2android/FileStorageSelectionActivity.cs
@@ -200,8 +200,9 @@ namespace keepass2android
protected override void OnCreate(Bundle bundle)
{
+ _design.ApplyTheme();
base.OnCreate(bundle);
- _design.ApplyTheme();
+
SetContentView(Resource.Layout.filestorage_selection);
diff --git a/src/keepass2android/GeneratePasswordActivity.cs b/src/keepass2android/GeneratePasswordActivity.cs
index 52cac8e0..ac6df565 100644
--- a/src/keepass2android/GeneratePasswordActivity.cs
+++ b/src/keepass2android/GeneratePasswordActivity.cs
@@ -53,8 +53,9 @@ namespace keepass2android
protected override void OnCreate(Bundle savedInstanceState) {
+ _design.ApplyTheme();
base.OnCreate(savedInstanceState);
- _design.ApplyTheme();
+
SetContentView(Resource.Layout.generate_password);
SetResult(KeePass.ExitNormal);
diff --git a/src/keepass2android/GroupBaseActivity.cs b/src/keepass2android/GroupBaseActivity.cs
index a74a94c1..60bc6aa6 100644
--- a/src/keepass2android/GroupBaseActivity.cs
+++ b/src/keepass2android/GroupBaseActivity.cs
@@ -218,8 +218,9 @@ namespace keepass2android
}
protected override void OnCreate(Bundle savedInstanceState) {
+ _design.ApplyTheme();
base.OnCreate(savedInstanceState);
- _design.ApplyTheme();
+
Android.Util.Log.Debug("KP2A", "Creating GBA");
AppTask = AppTask.GetTaskInOnCreate(savedInstanceState, Intent);
diff --git a/src/keepass2android/KeePass.cs b/src/keepass2android/KeePass.cs
index fde3bdfe..d5037450 100644
--- a/src/keepass2android/KeePass.cs
+++ b/src/keepass2android/KeePass.cs
@@ -91,8 +91,9 @@ namespace keepass2android
protected override void OnCreate(Bundle savedInstanceState)
{
- base.OnCreate(savedInstanceState);
_design.ApplyTheme();
+ base.OnCreate(savedInstanceState);
+
//see comment to this in PasswordActivity.
//Note that this activity is affected even though it's finished when the app is closed because it
//seems that the "app launch intent" is re-delivered, so this might end up here.
diff --git a/src/keepass2android/LockCloseActivity.cs b/src/keepass2android/LockCloseActivity.cs
index 245502be..83b773be 100644
--- a/src/keepass2android/LockCloseActivity.cs
+++ b/src/keepass2android/LockCloseActivity.cs
@@ -52,8 +52,9 @@ namespace keepass2android
protected override void OnCreate(Bundle savedInstanceState)
{
- base.OnCreate(savedInstanceState);
_design.ApplyTheme();
+ base.OnCreate(savedInstanceState);
+
if (PreferenceManager.GetDefaultSharedPreferences(this).GetBoolean(
GetString(Resource.String.ViewDatabaseSecure_key), true))
diff --git a/src/keepass2android/LockCloseListActivity.cs b/src/keepass2android/LockCloseListActivity.cs
index 8390e5e8..8aafde53 100644
--- a/src/keepass2android/LockCloseListActivity.cs
+++ b/src/keepass2android/LockCloseListActivity.cs
@@ -41,8 +41,9 @@ namespace keepass2android
protected override void OnCreate(Bundle savedInstanceState)
{
- base.OnCreate(savedInstanceState);
_design.ApplyTheme();
+ base.OnCreate(savedInstanceState);
+
if (PreferenceManager.GetDefaultSharedPreferences(this).GetBoolean(
GetString(Resource.String.ViewDatabaseSecure_key), true))
diff --git a/src/keepass2android/NfcOtpActivity.cs b/src/keepass2android/NfcOtpActivity.cs
index cefefc78..976bd3ef 100644
--- a/src/keepass2android/NfcOtpActivity.cs
+++ b/src/keepass2android/NfcOtpActivity.cs
@@ -62,8 +62,9 @@ namespace keepass2android
protected override void OnCreate(Bundle bundle)
{
- base.OnCreate(bundle);
_design.ApplyTheme();
+ base.OnCreate(bundle);
+
Intent i = new Intent(this, typeof (PasswordActivity));
i.SetAction(Intents.StartWithOtp);
diff --git a/src/keepass2android/PasswordActivity.cs b/src/keepass2android/PasswordActivity.cs
index cbd6efbc..c3d7d7c8 100644
--- a/src/keepass2android/PasswordActivity.cs
+++ b/src/keepass2android/PasswordActivity.cs
@@ -740,8 +740,9 @@ namespace keepass2android
protected override void OnCreate(Bundle savedInstanceState)
{
- base.OnCreate(savedInstanceState);
_activityDesign.ApplyTheme();
+ base.OnCreate(savedInstanceState);
+
//use FlagSecure to make sure the last (revealed) character of the master password is not visible in recent apps
if (PreferenceManager.GetDefaultSharedPreferences(this).GetBoolean(
diff --git a/src/keepass2android/QuickUnlock.cs b/src/keepass2android/QuickUnlock.cs
index 45ee5448..09b356ce 100644
--- a/src/keepass2android/QuickUnlock.cs
+++ b/src/keepass2android/QuickUnlock.cs
@@ -40,13 +40,16 @@ namespace keepass2android
{
private IOConnectionInfo _ioc;
private QuickUnlockBroadcastReceiver _intentReceiver;
+ private ActivityDesign _design;
public QuickUnlock()
{
+ _design = new ActivityDesign(this);
}
protected override void OnCreate(Bundle bundle)
{
+ _design.ApplyTheme();
base.OnCreate(bundle);
//use FlagSecure to make sure the last (revealed) character of the password is not visible in recent apps
@@ -160,6 +163,7 @@ namespace keepass2android
protected override void OnResume()
{
base.OnResume();
+ _design.ReapplyTheme();
CheckIfUnloaded();
diff --git a/src/keepass2android/Resources/drawable-hdpi-v4/ic_launcher.png b/src/keepass2android/Resources/drawable-hdpi-v4/ic_launcher.png
new file mode 100644
index 00000000..0b310c63
Binary files /dev/null and b/src/keepass2android/Resources/drawable-hdpi-v4/ic_launcher.png differ
diff --git a/src/keepass2android/Resources/drawable-hdpi-v4/ic_launcher_offline.png b/src/keepass2android/Resources/drawable-hdpi-v4/ic_launcher_offline.png
new file mode 100644
index 00000000..9a62b449
Binary files /dev/null and b/src/keepass2android/Resources/drawable-hdpi-v4/ic_launcher_offline.png differ
diff --git a/src/keepass2android/Resources/drawable-hdpi-v4/ic_launcher_online.png b/src/keepass2android/Resources/drawable-hdpi-v4/ic_launcher_online.png
new file mode 100644
index 00000000..83b00633
Binary files /dev/null and b/src/keepass2android/Resources/drawable-hdpi-v4/ic_launcher_online.png differ
diff --git a/src/keepass2android/Resources/drawable-mdpi-v4/ic_launcher.png b/src/keepass2android/Resources/drawable-mdpi-v4/ic_launcher.png
new file mode 100644
index 00000000..0b310c63
Binary files /dev/null and b/src/keepass2android/Resources/drawable-mdpi-v4/ic_launcher.png differ
diff --git a/src/keepass2android/Resources/drawable-mdpi-v4/ic_launcher_offline.png b/src/keepass2android/Resources/drawable-mdpi-v4/ic_launcher_offline.png
new file mode 100644
index 00000000..aa121437
Binary files /dev/null and b/src/keepass2android/Resources/drawable-mdpi-v4/ic_launcher_offline.png differ
diff --git a/src/keepass2android/Resources/drawable-mdpi-v4/ic_launcher_online.png b/src/keepass2android/Resources/drawable-mdpi-v4/ic_launcher_online.png
new file mode 100644
index 00000000..0b310c63
Binary files /dev/null and b/src/keepass2android/Resources/drawable-mdpi-v4/ic_launcher_online.png differ
diff --git a/src/keepass2android/Resources/drawable-xhdpi-v4/ic_launcher.png b/src/keepass2android/Resources/drawable-xhdpi-v4/ic_launcher.png
new file mode 100644
index 00000000..825a1e4e
Binary files /dev/null and b/src/keepass2android/Resources/drawable-xhdpi-v4/ic_launcher.png differ
diff --git a/src/keepass2android/Resources/drawable-xhdpi-v4/ic_launcher_online.png b/src/keepass2android/Resources/drawable-xhdpi-v4/ic_launcher_online.png
new file mode 100644
index 00000000..825a1e4e
Binary files /dev/null and b/src/keepass2android/Resources/drawable-xhdpi-v4/ic_launcher_online.png differ
diff --git a/src/keepass2android/Resources/drawable-xhdpi/ic_launcher_online.png b/src/keepass2android/Resources/drawable-xhdpi/ic_launcher_online.png
new file mode 100644
index 00000000..825a1e4e
Binary files /dev/null and b/src/keepass2android/Resources/drawable-xhdpi/ic_launcher_online.png differ
diff --git a/src/keepass2android/Resources/drawable-xxxhdpi/ic_launcher_online.png b/src/keepass2android/Resources/drawable-xxxhdpi/ic_launcher_online.png
new file mode 100644
index 00000000..44af377b
Binary files /dev/null and b/src/keepass2android/Resources/drawable-xxxhdpi/ic_launcher_online.png differ
diff --git a/src/keepass2android/Resources/drawable/ic_launcher.png b/src/keepass2android/Resources/drawable/ic_launcher.png
new file mode 100644
index 00000000..0b310c63
Binary files /dev/null and b/src/keepass2android/Resources/drawable/ic_launcher.png differ
diff --git a/src/keepass2android/Resources/drawable/ic_launcher_offline.png b/src/keepass2android/Resources/drawable/ic_launcher_offline.png
new file mode 100644
index 00000000..aa121437
Binary files /dev/null and b/src/keepass2android/Resources/drawable/ic_launcher_offline.png differ
diff --git a/src/keepass2android/Resources/drawable/ic_launcher_online.png b/src/keepass2android/Resources/drawable/ic_launcher_online.png
new file mode 100644
index 00000000..0b310c63
Binary files /dev/null and b/src/keepass2android/Resources/drawable/ic_launcher_online.png differ
diff --git a/src/keepass2android/Resources/drawable/splash_button_bg.xml b/src/keepass2android/Resources/drawable/splash_button_bg.xml
index 83857ced..e97dc9ca 100644
--- a/src/keepass2android/Resources/drawable/splash_button_bg.xml
+++ b/src/keepass2android/Resources/drawable/splash_button_bg.xml
@@ -9,13 +9,13 @@
-
-
+
-
-
+
\ No newline at end of file
diff --git a/src/keepass2android/Resources/layout/image_list_preference_row.xml b/src/keepass2android/Resources/layout/image_list_preference_row.xml
new file mode 100644
index 00000000..29125e26
--- /dev/null
+++ b/src/keepass2android/Resources/layout/image_list_preference_row.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/keepass2android/Resources/values/colors.xml b/src/keepass2android/Resources/values/colors.xml
index 558528af..6eb70dc7 100644
--- a/src/keepass2android/Resources/values/colors.xml
+++ b/src/keepass2android/Resources/values/colors.xml
@@ -20,8 +20,7 @@
#fff
- #000
- #000
+ #0000
#8bc34a
#548a2e
diff --git a/src/keepass2android/SelectStorageLocationActivity.cs b/src/keepass2android/SelectStorageLocationActivity.cs
index 38ed009b..30d23c23 100644
--- a/src/keepass2android/SelectStorageLocationActivity.cs
+++ b/src/keepass2android/SelectStorageLocationActivity.cs
@@ -27,9 +27,10 @@ namespace keepass2android
protected override void OnCreate(Bundle bundle)
{
+ _design.ApplyTheme();
base.OnCreate(bundle);
- _design.ApplyTheme();
+
Kp2aLog.Log("SelectStorageLocationActivity.OnCreate");
diff --git a/src/keepass2android/Utils/ActivityDesign.cs b/src/keepass2android/Utils/ActivityDesign.cs
index ad892af9..2da11687 100644
--- a/src/keepass2android/Utils/ActivityDesign.cs
+++ b/src/keepass2android/Utils/ActivityDesign.cs
@@ -15,6 +15,8 @@ namespace keepass2android
private readonly string _attributeTheme;
+ private bool _secureWindow;
+
public ActivityDesign(Activity activity)
{
_activity = activity;
@@ -24,6 +26,7 @@ namespace keepass2android
x => x is Android.App.ActivityAttribute
).Cast().First();
_attributeTheme = activityAttr.Theme;
+
}
catch (Exception e)
{
@@ -32,6 +35,12 @@ namespace keepass2android
}
+ private bool SecureWindowPref()
+ {
+ return (PreferenceManager.GetDefaultSharedPreferences(_activity).GetBoolean(
+ _activity.GetString(Resource.String.ViewDatabaseSecure_key), true));
+ }
+
public void ApplyTheme()
{
if (HasThemes())
@@ -40,6 +49,7 @@ namespace keepass2android
int newTheme = dark ? DarkTheme : LightTheme;
_activity.SetTheme(newTheme);
_currentThemeId = newTheme;
+ _secureWindow = SecureWindowPref();
}
_currentIconSet = PreferenceManager.GetDefaultSharedPreferences(_activity)
.GetString("IconSetKey", _activity.PackageName);
@@ -93,7 +103,15 @@ namespace keepass2android
{
Kp2aLog.Log("recreating due to icon set change.");
_activity.Recreate();
-
+ return;
+
+ }
+
+ if (SecureWindowPref() != _secureWindow)
+ {
+ Kp2aLog.Log("recreating due to secure window change.");
+ _activity.Recreate();
+ return;
}
}
diff --git a/src/keepass2android/fileselect/FileSelectActivity.cs b/src/keepass2android/fileselect/FileSelectActivity.cs
index d80060bb..9cbda966 100644
--- a/src/keepass2android/fileselect/FileSelectActivity.cs
+++ b/src/keepass2android/fileselect/FileSelectActivity.cs
@@ -77,8 +77,9 @@ namespace keepass2android
protected override void OnCreate(Bundle savedInstanceState)
{
+ _design.ApplyTheme();
base.OnCreate(savedInstanceState);
- _design.ApplyTheme();
+
Kp2aLog.Log("FileSelect.OnCreate");
Kp2aLog.Log("FileSelect:apptask="+Intent.GetStringExtra("KP2A_APPTASK"));
diff --git a/src/keepass2android/fileselect/FileStorageSetupActivity.cs b/src/keepass2android/fileselect/FileStorageSetupActivity.cs
index a47cf322..ce686e87 100644
--- a/src/keepass2android/fileselect/FileStorageSetupActivity.cs
+++ b/src/keepass2android/fileselect/FileStorageSetupActivity.cs
@@ -35,8 +35,9 @@ namespace keepass2android.fileselect
protected override void OnCreate(Bundle bundle)
{
- base.OnCreate(bundle);
_design.ApplyTheme();
+ base.OnCreate(bundle);
+
SetContentView(Resource.Layout.file_storage_setup);
diff --git a/src/keepass2android/keepass2android.csproj b/src/keepass2android/keepass2android.csproj
index abc57440..a0796270 100644
--- a/src/keepass2android/keepass2android.csproj
+++ b/src/keepass2android/keepass2android.csproj
@@ -545,9 +545,17 @@
+
+
+
+
+
+
+
+
Designer
@@ -708,6 +716,9 @@
+
+
+
diff --git a/src/keepass2android/pluginhost/PluginDetailsActivity.cs b/src/keepass2android/pluginhost/PluginDetailsActivity.cs
index c9c52772..f8983c25 100644
--- a/src/keepass2android/pluginhost/PluginDetailsActivity.cs
+++ b/src/keepass2android/pluginhost/PluginDetailsActivity.cs
@@ -30,8 +30,9 @@ namespace keepass2android
protected override void OnCreate(Bundle bundle)
{
- base.OnCreate(bundle);
new ActivityDesign(this).ApplyTheme();
+ base.OnCreate(bundle);
+
_pluginPackageName = Intent.GetStringExtra(Strings.ExtraPluginPackage);
diff --git a/src/keepass2android/pluginhost/PluginListActivity.cs b/src/keepass2android/pluginhost/PluginListActivity.cs
index 1e9dcd73..82acbad8 100644
--- a/src/keepass2android/pluginhost/PluginListActivity.cs
+++ b/src/keepass2android/pluginhost/PluginListActivity.cs
@@ -18,9 +18,10 @@ namespace keepass2android
protected override void OnCreate(Bundle bundle)
{
+ new ActivityDesign(this).ApplyTheme();
base.OnCreate(bundle);
- new ActivityDesign(this).ApplyTheme();
+
SetContentView(Resource.Layout.plugin_list);