diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9d116d33..26cf9e0a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,7 +15,7 @@ android:label="@string/app_name" android:supportsRtl="true" tools:replace="android:theme" - android:theme="@style/AppTheme.Default.NoActionBar"> + android:theme="@style/AppTheme.NoActionBar"> + android:theme="@style/AppTheme.TransparentActionBar"> + android:label="Manage key slots" + android:theme="@style/AppTheme.TransparentActionBar"> diff --git a/app/src/main/java/me/impy/aegis/ui/AegisActivity.java b/app/src/main/java/me/impy/aegis/ui/AegisActivity.java index 55c1ca77..d98e869e 100644 --- a/app/src/main/java/me/impy/aegis/ui/AegisActivity.java +++ b/app/src/main/java/me/impy/aegis/ui/AegisActivity.java @@ -8,6 +8,7 @@ import me.impy.aegis.AegisApplication; public abstract class AegisActivity extends AppCompatActivity { private AegisApplication _app; + private boolean _darkMode; @Override protected void onCreate(Bundle savedInstanceState) { @@ -18,13 +19,17 @@ public abstract class AegisActivity extends AppCompatActivity { getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE); // set the theme - boolean darkMode = _app.getPreferences().getBoolean("pref_dark_mode", false); - setPreferredTheme(darkMode); + _darkMode = _app.getPreferences().getBoolean("pref_dark_mode", false); + setPreferredTheme(_darkMode); } protected AegisApplication getApp() { return _app; } + protected boolean isDark() { + return _darkMode; + } + protected abstract void setPreferredTheme(boolean darkMode); } diff --git a/app/src/main/java/me/impy/aegis/ui/AuthActivity.java b/app/src/main/java/me/impy/aegis/ui/AuthActivity.java index 7f5246c3..acf06567 100644 --- a/app/src/main/java/me/impy/aegis/ui/AuthActivity.java +++ b/app/src/main/java/me/impy/aegis/ui/AuthActivity.java @@ -107,7 +107,7 @@ public class AuthActivity extends AegisActivity implements FingerprintUiHelper.C if (darkMode) { setTheme(R.style.AppTheme_Dark); } else { - setTheme(R.style.AppTheme_Default); + setTheme(R.style.AppTheme); } } diff --git a/app/src/main/java/me/impy/aegis/ui/EditProfileActivity.java b/app/src/main/java/me/impy/aegis/ui/EditProfileActivity.java index e148a9c6..d99ffd82 100644 --- a/app/src/main/java/me/impy/aegis/ui/EditProfileActivity.java +++ b/app/src/main/java/me/impy/aegis/ui/EditProfileActivity.java @@ -16,7 +16,6 @@ import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.widget.AdapterView; import android.widget.EditText; -import android.widget.ExpandableListAdapter; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.Spinner; @@ -54,8 +53,6 @@ public class EditProfileActivity extends AegisActivity { private RelativeLayout _advancedSettingsHeader; private RelativeLayout _advancedSettings; - int _dialogStyle = android.R.style.Theme_Material_Light_Dialog_NoActionBar; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -122,12 +119,12 @@ public class EditProfileActivity extends AegisActivity { }); _advancedSettingsHeader.setOnClickListener(v -> { - OpenAdvancedSettings(); + openAdvancedSettings(); }); // Automatically open advanced settings since 'Secret' is required. if(_isNew){ - OpenAdvancedSettings(); + openAdvancedSettings(); } } @@ -158,15 +155,13 @@ public class EditProfileActivity extends AegisActivity { @Override protected void setPreferredTheme(boolean darkMode) { if (darkMode) { - _dialogStyle = android.R.style.Theme_Material_Dialog_NoActionBar; setTheme(R.style.AppTheme_Dark_TransparentActionBar); } else { - _dialogStyle = android.R.style.Theme_Material_Light_Dialog_NoActionBar; - setTheme(R.style.AppTheme_Default_TransparentActionBar); + setTheme(R.style.AppTheme_TransparentActionBar); } } - private void OpenAdvancedSettings() { + private void openAdvancedSettings() { Animation fadeOut = new AlphaAnimation(1, 0); // the 1, 0 here notifies that we want the opacity to go from opaque (1) to transparent (0) fadeOut.setInterpolator(new AccelerateInterpolator()); fadeOut.setDuration(220); // Fadeout duration should be 1000 milli seconds @@ -219,7 +214,7 @@ public class EditProfileActivity extends AegisActivity { return; } - new AlertDialog.Builder(this, _dialogStyle) + new AlertDialog.Builder(this) .setTitle("Discard changes?") .setMessage("Your changes have not been saved") .setPositiveButton(R.string.save, (dialog, which) -> onSave()) diff --git a/app/src/main/java/me/impy/aegis/ui/MainActivity.java b/app/src/main/java/me/impy/aegis/ui/MainActivity.java index 02a1e1b4..cf04ceea 100644 --- a/app/src/main/java/me/impy/aegis/ui/MainActivity.java +++ b/app/src/main/java/me/impy/aegis/ui/MainActivity.java @@ -12,6 +12,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; +import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.Toast; @@ -47,7 +48,6 @@ public class MainActivity extends AegisActivity implements KeyProfileView.Listen private DatabaseManager _db; private KeyProfileView _keyProfileView; - private boolean _darkMode = false; private Menu _menu; private FloatingActionsMenu _fabMenu; @@ -59,7 +59,6 @@ public class MainActivity extends AegisActivity implements KeyProfileView.Listen // set up the main view setContentView(R.layout.activity_main); - setSupportActionBar(findViewById(R.id.toolbar)); // set up the key profile view _keyProfileView = (KeyProfileView) getSupportFragmentManager().findFragmentById(R.id.key_profiles); @@ -140,11 +139,10 @@ public class MainActivity extends AegisActivity implements KeyProfileView.Listen @Override protected void setPreferredTheme(boolean darkMode) { if (darkMode) { - setTheme(R.style.AppTheme_Dark_NoActionBar); - } else if (_darkMode) { - setTheme(R.style.AppTheme_Default_NoActionBar); + setTheme(R.style.AppTheme_Dark); + } else { + setTheme(R.style.AppTheme); } - _darkMode = darkMode; } @Override @@ -346,7 +344,7 @@ public class MainActivity extends AegisActivity implements KeyProfileView.Listen super.onResume(); boolean darkMode = _app.getPreferences().getBoolean("pref_dark_mode", false); - if (darkMode != _darkMode) { + if (darkMode != isDark()) { setPreferredTheme(darkMode); recreate(); } @@ -356,39 +354,34 @@ public class MainActivity extends AegisActivity implements KeyProfileView.Listen } private BottomSheetDialog createBottomSheet(final KeyProfile profile) { - View bottomSheetView = getLayoutInflater().inflate(R.layout.bottom_sheet_edit_profile, null); - LinearLayout copyLayout = bottomSheetView.findViewById(R.id.copy_button); - LinearLayout deleteLayout = bottomSheetView.findViewById(R.id.delete_button); - LinearLayout editLayout = bottomSheetView.findViewById(R.id.edit_button); - bottomSheetView.findViewById(R.id.edit_button); - BottomSheetDialog bottomDialog = new BottomSheetDialog(this); - bottomDialog.setContentView(bottomSheetView); - bottomDialog.setCancelable(true); - bottomDialog.getWindow().setLayout(LinearLayout.LayoutParams.MATCH_PARENT, + BottomSheetDialog dialog = new BottomSheetDialog(this); + dialog.setContentView(R.layout.bottom_sheet_edit_profile); + dialog.setCancelable(true); + dialog.getWindow().setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); - bottomDialog.show(); + dialog.show(); - copyLayout.setOnClickListener(view -> { - bottomDialog.dismiss(); + dialog.findViewById(R.id.copy_button).setOnClickListener(view -> { + dialog.dismiss(); ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText("text/plain", profile.getCode()); clipboard.setPrimaryClip(clip); - Toast.makeText(this.getApplicationContext(), "Code copied to the clipboard", Toast.LENGTH_SHORT).show(); + Toast.makeText(this, "Code copied to the clipboard", Toast.LENGTH_SHORT).show(); }); - deleteLayout.setOnClickListener(view -> { - bottomDialog.dismiss(); - Dialogs.showDeleteEntryDialog(this, (dialog, which) -> { + dialog.findViewById(R.id.delete_button).setOnClickListener(view -> { + dialog.dismiss(); + Dialogs.showDeleteEntryDialog(this, (d, which) -> { deleteProfile(profile); }); }); - editLayout.setOnClickListener(view -> { - bottomDialog.dismiss(); + dialog.findViewById(R.id.edit_button).setOnClickListener(view -> { + dialog.dismiss(); startEditProfileActivity(CODE_EDIT_KEYINFO, profile, false); }); - return bottomDialog; + return dialog; } private void deleteProfile(KeyProfile profile) { diff --git a/app/src/main/java/me/impy/aegis/ui/PreferencesActivity.java b/app/src/main/java/me/impy/aegis/ui/PreferencesActivity.java index e4e0fadc..04d51d9a 100644 --- a/app/src/main/java/me/impy/aegis/ui/PreferencesActivity.java +++ b/app/src/main/java/me/impy/aegis/ui/PreferencesActivity.java @@ -21,7 +21,7 @@ public class PreferencesActivity extends AegisActivity { if (darkMode) { setTheme(R.style.AppTheme_Dark); } else { - setTheme(R.style.AppTheme_Default); + setTheme(R.style.AppTheme); } } diff --git a/app/src/main/java/me/impy/aegis/ui/SlotManagerActivity.java b/app/src/main/java/me/impy/aegis/ui/SlotManagerActivity.java index fa4109ad..cdbed184 100644 --- a/app/src/main/java/me/impy/aegis/ui/SlotManagerActivity.java +++ b/app/src/main/java/me/impy/aegis/ui/SlotManagerActivity.java @@ -36,10 +36,8 @@ public class SlotManagerActivity extends AegisActivity implements SlotAdapter.Li @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - // set up the view setContentView(R.layout.activity_slots); - setSupportActionBar(findViewById(R.id.toolbar)); + ActionBar bar = getSupportActionBar(); bar.setHomeAsUpIndicator(R.drawable.ic_close); bar.setDisplayHomeAsUpEnabled(true); @@ -105,9 +103,9 @@ public class SlotManagerActivity extends AegisActivity implements SlotAdapter.Li @Override protected void setPreferredTheme(boolean darkMode) { if (darkMode) { - setTheme(R.style.AppTheme_Dark_NoActionBar); + setTheme(R.style.AppTheme_Dark); } else { - setTheme(R.style.AppTheme_Default_NoActionBar); + setTheme(R.style.AppTheme); } } diff --git a/app/src/main/java/me/impy/aegis/ui/dialogs/Dialogs.java b/app/src/main/java/me/impy/aegis/ui/dialogs/Dialogs.java index f1c2d75d..81912428 100644 --- a/app/src/main/java/me/impy/aegis/ui/dialogs/Dialogs.java +++ b/app/src/main/java/me/impy/aegis/ui/dialogs/Dialogs.java @@ -1,6 +1,6 @@ package me.impy.aegis.ui.dialogs; -import android.content.Context; +import android.app.Activity; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; @@ -9,8 +9,8 @@ public class Dialogs { } - public static AlertDialog showDeleteEntryDialog(Context context, DialogInterface.OnClickListener onDelete) { - return new AlertDialog.Builder(context) + public static AlertDialog showDeleteEntryDialog(Activity activity, DialogInterface.OnClickListener onDelete) { + return new AlertDialog.Builder(activity) .setTitle("Delete entry") .setMessage("Are you sure you want to delete this entry?") .setPositiveButton(android.R.string.yes, onDelete) diff --git a/app/src/main/res/layout/activity_edit_profile.xml b/app/src/main/res/layout/activity_edit_profile.xml index 0be3dda8..d3bd9805 100644 --- a/app/src/main/res/layout/activity_edit_profile.xml +++ b/app/src/main/res/layout/activity_edit_profile.xml @@ -88,7 +88,8 @@ android:layout_alignParentStart="true" android:layout_centerVertical="true" android:layout_marginStart="14dp" - android:src="@drawable/ic_keyboard_arrow_down_black_24dp" /> + android:src="@drawable/ic_keyboard_arrow_down_black_24dp" + android:tint="#7f7f7f"/> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4d8f0bb3..3be9deed 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,5 +1,6 @@ - - - - - - - - - - - - - - \ No newline at end of file + diff --git a/app/src/main/res/layout/card_slot.xml b/app/src/main/res/layout/card_slot.xml index 86435f8f..47d73e24 100644 --- a/app/src/main/res/layout/card_slot.xml +++ b/app/src/main/res/layout/card_slot.xml @@ -35,7 +35,7 @@ android:textAppearance="?android:attr/textAppearanceMedium" android:text="Slot name" android:id="@+id/text_slot_name" - android:textColor="@color/primary_text"/> + android:textColor="?android:attr/textColorPrimary"/> #434343 #FF5252 + #FFFFFF + #FF5252 #0d47a1 #ffffff diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 3f353896..2bf07a99 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,29 +1,5 @@ - - - - - - - - - - - - - + - - - -