diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
index caa0f2e2d..66bf9f563 100644
--- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
+++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
@@ -19,6 +19,7 @@ import android.text.method.DigitsKeyListener;
import android.text.style.ForegroundColorSpan;
import android.text.util.Linkify;
import android.util.Log;
+import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@@ -104,6 +105,22 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
final private TaskHandler mTasks = new TaskHandler();
Runnable barcodeImageGenerationFinishedCallback;
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (settings.useVolumeKeysForNavigation()) {
+ if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
+ // Navigate to the previous card
+ prevNextCard(false);
+ return true;
+ } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
+ // Navigate to the next card
+ prevNextCard(true);
+ return true;
+ }
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+
public void onMainImageTap() {
// If we're in fullscreen, leave fullscreen
if (isFullscreen) {
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 48d30cdcd..52309886e 100644
--- a/app/src/main/java/protect/card_locker/preferences/Settings.java
+++ b/app/src/main/java/protect/card_locker/preferences/Settings.java
@@ -91,4 +91,8 @@ public class Settings {
public String getColor() {
return getString(R.string.setting_key_theme_color, mContext.getResources().getString(R.string.settings_key_system_theme));
}
+
+ public boolean useVolumeKeysForNavigation() {
+ return getBoolean(R.string.settings_key_use_volume_keys_navigation, false);
+ }
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6d6be18a5..783c02770 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -95,7 +95,7 @@
light
Dark
dark
- Barcode orientation
+ Screen orientation
pref_card_orientation
Follow system
follow_system
@@ -108,7 +108,7 @@
Lock to orientation used when opening the card
lock_on_opening
pref_max_font_size_scale
- Brighten barcode view
+ Brighten screen
Necessary for some scanners to work
pref_display_card_max_brightness
Keep screen on
@@ -121,6 +121,9 @@
pref_disable_lockscreen_while_viewing_card
pref_allow_content_provider_read
pref_oled_dark
+ Switch cards using volume buttons
+ Use the volume buttons to change which card is displayed
+ pref_use_volume_keys_navigation
sharedpreference_active_tab
sharedpreference_sort
sharedpreference_sort_order
@@ -314,7 +317,7 @@
sharedpreference_card_details_show_balance
sharedpreference_card_details_show_validity
sharedpreference_card_details_show_archived_cards
- Cards
+ Card view
General
Privacy
Display options
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 4c2ff0840..554592d55 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -50,6 +50,15 @@
android:title="@string/settings_category_title_cards"
app:iconSpaceReserved="false">
+
+
-
+
\ No newline at end of file