From 4c18a6563cfb213df70ff1113879991a2beb66fb Mon Sep 17 00:00:00 2001 From: Synced Synapse Date: Sun, 15 Feb 2015 19:34:56 +0000 Subject: [PATCH] Added new setting to control the use of hardware volume keys --- .../com/syncedsynapse/kore2/Settings.java | 55 ++++++++++++------- .../kore2/ui/RemoteActivity.java | 37 ++++++++----- app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/preferences.xml | 5 ++ 4 files changed, 62 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/com/syncedsynapse/kore2/Settings.java b/app/src/main/java/com/syncedsynapse/kore2/Settings.java index 45ee3c7..5220264 100644 --- a/app/src/main/java/com/syncedsynapse/kore2/Settings.java +++ b/app/src/main/java/com/syncedsynapse/kore2/Settings.java @@ -50,51 +50,64 @@ public class Settings { // Maximum pictures to show on cast list (-1 to show all) public static final int DEFAULT_MAX_CAST_PICTURES = 12; + // Sort orders + public static final int SORT_BY_NAME = 0, + SORT_BY_DATE_ADDED = 1; + /** - * Default Shared Preferences keys. + * Preferences keys. * These settings are automatically managed by the Preferences mechanism. * Make sure these are the same as in preferences.xml */ + + // Theme public static final String KEY_PREF_THEME = "pref_theme"; - public static final String KEY_PREF_SWITCH_TO_REMOTE_AFTER_MEDIA_START = - "pref_switch_to_remote_after_media_start"; - public static final String KEY_PREF_SHOW_NOTIFICATION = - "pref_show_notification"; + public static final String DEFAULT_PREF_THEME = "0"; + + // Switch to remote + public static final String KEY_PREF_SWITCH_TO_REMOTE_AFTER_MEDIA_START = "pref_switch_to_remote_after_media_start"; + public static final boolean DEFAULT_PREF_SWITCH_TO_REMOTE_AFTER_MEDIA_START = true; + + // Show notifications + public static final String KEY_PREF_SHOW_NOTIFICATION = "pref_show_notification"; + public static final boolean DEFAULT_PREF_SHOW_NOTIFICATION = false; + + // Other keys used in preferences.xml public static final String KEY_PREF_ABOUT = "pref_about"; public static final String KEY_PREF_COFFEE = "pref_coffee"; // Filter watched movies on movie list public static final String KEY_PREF_MOVIES_FILTER_HIDE_WATCHED = "movies_filter_hide_watched"; + public static final boolean DEFAULT_PREF_MOVIES_FILTER_HIDE_WATCHED = false; + // Sort order on movies public static final String KEY_PREF_MOVIES_SORT_ORDER = "movies_sort_order"; + public static final int DEFAULT_PREF_MOVIES_SORT_ORDER = SORT_BY_NAME; + // Ignore articles on movie sorting public static final String KEY_PREF_MOVIES_IGNORE_PREFIXES = "movies_ignore_prefixes"; + public static final boolean DEFAULT_PREF_MOVIES_IGNORE_PREFIXES = false; // Filter watched tv shows on tvshow list public static final String KEY_PREF_TVSHOWS_FILTER_HIDE_WATCHED = "tvshows_filter_hide_watched"; - public static final String KEY_PREF_TVSHOW_EPISODES_FILTER_HIDE_WATCHED = "tvshow_episodes_filter_hide_watched"; - // Sort order on tv shows - public static final String KEY_PREF_TVSHOWS_SORT_ORDER = "tvshows_sort_order"; - // Ignore articles on tv show sorting - public static final String KEY_PREF_TVSHOWS_IGNORE_PREFIXES = "tvshows_ignore_prefixes"; - - // Defaults for the preferences - public static final String DEFAULT_PREF_THEME = "0"; - public static final boolean DEFAULT_PREF_SWITCH_TO_REMOTE_AFTER_MEDIA_START = true; - public static final boolean DEFAULT_PREF_SHOW_NOTIFICATION = false; - public static final boolean DEFAULT_PREF_MOVIES_FILTER_HIDE_WATCHED = false; public static final boolean DEFAULT_PREF_TVSHOWS_FILTER_HIDE_WATCHED = false; + + // Filter watched episodes on episodes list + public static final String KEY_PREF_TVSHOW_EPISODES_FILTER_HIDE_WATCHED = "tvshow_episodes_filter_hide_watched"; public static final boolean DEFAULT_PREF_TVSHOW_EPISODES_FILTER_HIDE_WATCHED = false; - // Sort orders - public static final int SORT_BY_NAME = 0, - SORT_BY_DATE_ADDED = 1; - public static final int DEFAULT_PREF_MOVIES_SORT_ORDER = SORT_BY_NAME; + // Sort order on tv shows + public static final String KEY_PREF_TVSHOWS_SORT_ORDER = "tvshows_sort_order"; public static final int DEFAULT_PREF_TVSHOWS_SORT_ORDER = SORT_BY_NAME; - public static final boolean DEFAULT_PREF_MOVIES_IGNORE_PREFIXES = false; + // Ignore articles on tv show sorting + public static final String KEY_PREF_TVSHOWS_IGNORE_PREFIXES = "tvshows_ignore_prefixes"; public static final boolean DEFAULT_PREF_TVSHOWS_IGNORE_PREFIXES = false; + // Use hardware volume keys to control volume + public static final String KEY_PREF_USE_HARDWARE_VOLUME_KEYS = "pref_use_hardware_volume_keys"; + public static final boolean DEFAULT_PREF_USE_HARDWARE_VOLUME_KEYS = true; + // Singleton instance private static Settings instance = null; diff --git a/app/src/main/java/com/syncedsynapse/kore2/ui/RemoteActivity.java b/app/src/main/java/com/syncedsynapse/kore2/ui/RemoteActivity.java index 5fcde49..4b1f05e 100644 --- a/app/src/main/java/com/syncedsynapse/kore2/ui/RemoteActivity.java +++ b/app/src/main/java/com/syncedsynapse/kore2/ui/RemoteActivity.java @@ -148,22 +148,29 @@ public class RemoteActivity extends BaseActivity */ @Override public boolean dispatchKeyEvent(KeyEvent event) { - int action = event.getAction(); - int keyCode = event.getKeyCode(); - switch (keyCode) { - case KeyEvent.KEYCODE_VOLUME_UP: - if (action == KeyEvent.ACTION_DOWN) { - new Application.SetVolume(GlobalType.IncrementDecrement.INCREMENT).execute(hostManager.getConnection(), null, null); - } - return true; - case KeyEvent.KEYCODE_VOLUME_DOWN: - if (action == KeyEvent.ACTION_DOWN) { - new Application.SetVolume(GlobalType.IncrementDecrement.DECREMENT).execute(hostManager.getConnection(), null, null); - } - return true; - default: - return super.dispatchKeyEvent(event); + // Check whether we should intercept this + boolean useVolumeKeys = PreferenceManager + .getDefaultSharedPreferences(this) + .getBoolean(Settings.KEY_PREF_USE_HARDWARE_VOLUME_KEYS, + Settings.DEFAULT_PREF_USE_HARDWARE_VOLUME_KEYS); + if (useVolumeKeys) { + int action = event.getAction(); + int keyCode = event.getKeyCode(); + switch (keyCode) { + case KeyEvent.KEYCODE_VOLUME_UP: + if (action == KeyEvent.ACTION_DOWN) { + new Application.SetVolume(GlobalType.IncrementDecrement.INCREMENT).execute(hostManager.getConnection(), null, null); + } + return true; + case KeyEvent.KEYCODE_VOLUME_DOWN: + if (action == KeyEvent.ACTION_DOWN) { + new Application.SetVolume(GlobalType.IncrementDecrement.DECREMENT).execute(hostManager.getConnection(), null, null); + } + return true; + } } + + return super.dispatchKeyEvent(event); } @Override diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6311754..9219469 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -271,6 +271,7 @@ Switch to remote after media start Show notification while playing + Use volume keys to control volume About + +