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