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);