diff --git a/CHANGELOG.md b/CHANGELOG.md
index 838426608..e44e9015b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@
- Don't allow choosing expiry before 1970 (they never worked anyway)
- Add support for archiving cards
- Move delete from edit to view
+- Remove rotation lock icon in favour of a new rotation lock setting
## v2.16.3 - 107 (2022-04-15)
diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
index 84a8507b5..ddac48c6e 100644
--- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
+++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
@@ -252,13 +252,25 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ settings = new Settings(this);
+
+ String cardOrientation = settings.getCardViewOrientation();
+ if (cardOrientation.equals(getString(R.string.settings_key_lock_on_opening_orientation))) {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
+ } else if (cardOrientation.equals(getString(R.string.settings_key_portrait_orientation))) {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ } else if (cardOrientation.equals(getString(R.string.settings_key_landscape_orientation))) {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ } else {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
+ }
+
if (savedInstanceState != null) {
mainImageIndex = savedInstanceState.getInt(STATE_IMAGEINDEX);
isFullscreen = savedInstanceState.getBoolean(STATE_FULLSCREEN);
bottomSheetState = savedInstanceState.getInt(STATE_BOTTOMSHEET);
}
- settings = new Settings(this);
extractIntentFields(getIntent());
@@ -687,15 +699,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.card_view_menu, menu);
-
- // Always calculate lockscreen icon, it may need a black color
- boolean lockBarcodeScreenOrientation = settings.getLockBarcodeScreenOrientation();
- MenuItem item = menu.findItem(R.id.action_lock_unlock);
- setOrientatonLock(item, lockBarcodeScreenOrientation);
- if (lockBarcodeScreenOrientation) {
- item.setVisible(false);
- }
-
loyaltyCard = DBHelper.getLoyaltyCard(database, loyaltyCardId);
starred = loyaltyCard.starStatus != 0;
@@ -756,15 +759,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
startActivity(intent);
return true;
- case R.id.action_lock_unlock:
- if (rotationEnabled) {
- setOrientatonLock(item, true);
- } else {
- setOrientatonLock(item, false);
- }
- rotationEnabled = !rotationEnabled;
- return true;
-
case R.id.action_star_unstar:
starred = !starred;
DBHelper.updateLoyaltyCardStarStatus(database, loyaltyCardId, starred ? 1 : 0);
@@ -838,19 +832,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
}
}
- private void setOrientatonLock(MenuItem item, boolean lock) {
- if (lock) {
-
- item.setIcon(getIcon(R.drawable.ic_lock_outline_white_24dp, backgroundNeedsDarkIcons));
- item.setTitle(R.string.unlockScreen);
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
- } else {
- item.setIcon(getIcon(R.drawable.ic_lock_open_white_24dp, backgroundNeedsDarkIcons));
- item.setTitle(R.string.lockScreen);
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
- }
- }
-
private void makeBottomSheetVisibleIfUseful() {
if (noteView.getVisibility() == View.VISIBLE || groupsView.getVisibility() == View.VISIBLE || balanceView.getVisibility() == View.VISIBLE || expiryView.getVisibility() == View.VISIBLE) {
bottomSheet.setVisibility(View.VISIBLE);
diff --git a/app/src/main/java/protect/card_locker/preferences/Settings.java b/app/src/main/java/protect/card_locker/preferences/Settings.java
index 345107429..05c083062 100644
--- a/app/src/main/java/protect/card_locker/preferences/Settings.java
+++ b/app/src/main/java/protect/card_locker/preferences/Settings.java
@@ -92,8 +92,8 @@ public class Settings {
return getBoolean(R.string.settings_key_display_barcode_max_brightness, true);
}
- public boolean getLockBarcodeScreenOrientation() {
- return getBoolean(R.string.settings_key_lock_barcode_orientation, false);
+ public String getCardViewOrientation() {
+ return getString(R.string.settings_key_card_orientation, getResString(R.string.settings_key_follow_system_orientation));
}
public boolean getKeepScreenOn() {
diff --git a/app/src/main/res/menu/card_view_menu.xml b/app/src/main/res/menu/card_view_menu.xml
index d1c420337..6eb745d8c 100644
--- a/app/src/main/res/menu/card_view_menu.xml
+++ b/app/src/main/res/menu/card_view_menu.xml
@@ -2,11 +2,6 @@