From cafa09a86a70ce1f0eefbc1f87f9db8c0897ff24 Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Sun, 17 Jun 2018 15:00:57 -0400 Subject: [PATCH 1/4] Remove unneeded code The IntentIntegrator parses out the result, so this code is not necessary. --- .../java/protect/card_locker/LoyaltyCardEditActivity.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index da8a3760d..d0e154705 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -449,14 +449,6 @@ public class LoyaltyCardEditActivity extends AppCompatActivity format = result.getFormatName(); } - if(requestCode == SELECT_BARCODE_REQUEST && resultCode == Activity.RESULT_OK) - { - Log.i(TAG, "Received barcode information from capture"); - - contents = intent.getStringExtra(BarcodeSelectorActivity.BARCODE_CONTENTS); - format = intent.getStringExtra(BarcodeSelectorActivity.BARCODE_FORMAT); - } - if(contents != null && contents.isEmpty() == false && format != null && format.isEmpty() == false) { From c5de27abe33dcb3424bb695dc9a6dd8f8bd69f13 Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Sat, 6 Oct 2018 14:24:05 -0700 Subject: [PATCH 2/4] Move orientation locking code to separate method --- .../card_locker/LoyaltyCardViewActivity.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index 49166d7b9..677abd902 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -227,15 +227,11 @@ public class LoyaltyCardViewActivity extends AppCompatActivity case R.id.action_lock_unlock: if(rotationEnabled) { - item.setIcon(R.drawable.ic_lock_outline_white_24dp); - item.setTitle(R.string.unlockScreen); - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); + setOrientatonLock(item, true); } else { - item.setIcon(R.drawable.ic_lock_open_white_24dp); - item.setTitle(R.string.lockScreen); - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); + setOrientatonLock(item, false); } rotationEnabled = !rotationEnabled; return true; @@ -243,4 +239,20 @@ public class LoyaltyCardViewActivity extends AppCompatActivity return super.onOptionsItemSelected(item); } + + private void setOrientatonLock(MenuItem item, boolean lock) + { + if(lock) + { + item.setIcon(R.drawable.ic_lock_outline_white_24dp); + item.setTitle(R.string.unlockScreen); + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); + } + else + { + item.setIcon(R.drawable.ic_lock_open_white_24dp); + item.setTitle(R.string.lockScreen); + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); + } + } } \ No newline at end of file From 4de952ba2d7b81613c8423f471634fe2054cac86 Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Sat, 6 Oct 2018 14:24:50 -0700 Subject: [PATCH 3/4] Set rotation state in onCreate() The menu creation need not change this state --- .../main/java/protect/card_locker/LoyaltyCardViewActivity.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index 677abd902..e7847a78c 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -76,6 +76,8 @@ public class LoyaltyCardViewActivity extends AppCompatActivity storeName = findViewById(R.id.storeName); barcodeImage = findViewById(R.id.barcode); collapsingToolbarLayout = findViewById(R.id.collapsingToolbarLayout); + + rotationEnabled = true; } @Override @@ -198,7 +200,6 @@ public class LoyaltyCardViewActivity extends AppCompatActivity { getMenuInflater().inflate(R.menu.card_view_menu, menu); - rotationEnabled = true; return super.onCreateOptionsMenu(menu); } From 10e720de9136b735070531a132736c097d5e9b1f Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Sat, 6 Oct 2018 14:27:35 -0700 Subject: [PATCH 4/4] Add option to lock orientation state This new option will control if the screen orientation lock option is displayed or not. If set, the orientation lock is forced and the unlock option is hidden. --- .../card_locker/LoyaltyCardViewActivity.java | 6 +++ .../card_locker/preferences/Settings.java | 5 +++ app/src/main/res/values/strings.xml | 2 + app/src/main/res/xml/preferences.xml | 5 +++ .../LoyaltyCardViewActivityTest.java | 38 +++++++++++++++++++ 5 files changed, 56 insertions(+) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index e7847a78c..0da76874d 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -200,6 +200,12 @@ public class LoyaltyCardViewActivity extends AppCompatActivity { getMenuInflater().inflate(R.menu.card_view_menu, menu); + if(settings.getLockBarcodeScreenOrientation()) + { + MenuItem item = menu.findItem(R.id.action_lock_unlock); + setOrientatonLock(item, true); + item.setVisible(false); + } return super.onCreateOptionsMenu(menu); } 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 e6fdbf33b..4fe3c9074 100644 --- a/app/src/main/java/protect/card_locker/preferences/Settings.java +++ b/app/src/main/java/protect/card_locker/preferences/Settings.java @@ -68,4 +68,9 @@ 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); + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 134270400..831b3274d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -121,4 +121,6 @@ pref_card_note_font_size_sp Brighten barcode view pref_display_card_max_brightness + Lock barcode orientation + pref_lock_barcode_orientation diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index af054e18b..20dad4d4d 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -40,11 +40,16 @@ android:defaultValue="@integer/settings_card_note_font_size_sp" app:vnt_maxValue="@integer/settings_card_note_max_font_size_sp" app:vnt_minValue="@integer/settings_card_note_min_font_size_sp" /> + + \ No newline at end of file diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java index f129ff955..6f9218146 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java @@ -11,6 +11,7 @@ import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.widget.TextViewCompat; import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -566,4 +567,41 @@ public class LoyaltyCardViewActivityTest shadowOf(activity).clickMenuItem(android.R.id.home); assertEquals(true, activity.isFinishing()); } + + @Test + public void checkScreenOrientationLockSetting() + { + for(boolean locked : new boolean[] {false, true}) + { + ActivityController activityController = createActivityWithLoyaltyCard(false); + + Activity activity = (Activity)activityController.get(); + DBHelper db = new DBHelper(activity); + db.insertLoyaltyCard("store", "note", BARCODE_DATA, BARCODE_TYPE, Color.BLACK, Color.WHITE); + + SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(activity); + settings.edit() + .putBoolean(activity.getResources().getString(R.string.settings_key_lock_barcode_orientation), locked) + .apply(); + + activityController.start(); + activityController.resume(); + activityController.visible(); + + assertEquals(false, activity.isFinishing()); + + MenuItem item = shadowOf(activity).getOptionsMenu().findItem(R.id.action_lock_unlock); + + if(locked) + { + assertEquals(item.isVisible(), false); + } + else + { + assertEquals(item.isVisible(), true); + String title = item.getTitle().toString(); + assertEquals(title, activity.getString(R.string.lockScreen)); + } + } + } }