Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Created a setting to switch the sides of volume and brightness #9708

Merged
merged 14 commits into from
Apr 4, 2023
Original file line number Diff line number Diff line change
Expand Up @@ -2013,7 +2013,10 @@ private void setupBrightness() {
restoreDefaultBrightness();
} else {
// Do not restore if user has disabled brightness gesture
if (!PlayerHelper.isBrightnessGestureEnabled(activity)) {
if (!PlayerHelper.getActionForRightGestureSide(activity)
.equals(getString(R.string.brightness_control_key))
&& !PlayerHelper.getActionForLeftGestureSide(activity)
.equals(getString(R.string.brightness_control_key))) {
return;
}
// Restore already saved brightness level
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,18 +193,20 @@ class MainPlayerGestureListener(
isMoving = true

// -- Brightness and Volume control --
val isBrightnessGestureEnabled = PlayerHelper.isBrightnessGestureEnabled(player.context)
val isVolumeGestureEnabled = PlayerHelper.isVolumeGestureEnabled(player.context)
if (isBrightnessGestureEnabled && isVolumeGestureEnabled) {
if (getDisplayHalfPortion(initialEvent) === DisplayPortion.LEFT_HALF) {
onScrollBrightness(distanceY)
} else /* DisplayPortion.RIGHT_HALF */ {
onScrollVolume(distanceY)
if (getDisplayHalfPortion(initialEvent) == DisplayPortion.RIGHT_HALF) {
when (PlayerHelper.getActionForRightGestureSide(player.context)) {
player.context.getString(R.string.volume_control_key) ->
onScrollVolume(distanceY)
player.context.getString(R.string.brightness_control_key) ->
onScrollBrightness(distanceY)
}
} else {
when (PlayerHelper.getActionForLeftGestureSide(player.context)) {
player.context.getString(R.string.volume_control_key) ->
onScrollVolume(distanceY)
player.context.getString(R.string.brightness_control_key) ->
onScrollBrightness(distanceY)
}
} else if (isBrightnessGestureEnabled) {
onScrollBrightness(distanceY)
} else if (isVolumeGestureEnabled) {
onScrollVolume(distanceY)
}

return true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -228,14 +228,16 @@ public static boolean isResumeAfterAudioFocusGain(@NonNull final Context context
.getBoolean(context.getString(R.string.resume_on_audio_focus_gain_key), false);
}

public static boolean isVolumeGestureEnabled(@NonNull final Context context) {
public static String getActionForRightGestureSide(@NonNull final Context context) {
return getPreferences(context)
.getBoolean(context.getString(R.string.volume_gesture_control_key), true);
.getString(context.getString(R.string.right_gesture_control_key),
context.getString(R.string.default_right_gesture_control_value));
}

public static boolean isBrightnessGestureEnabled(@NonNull final Context context) {
public static String getActionForLeftGestureSide(@NonNull final Context context) {
return getPreferences(context)
.getBoolean(context.getString(R.string.brightness_gesture_control_key), true);
.getString(context.getString(R.string.left_gesture_control_key),
context.getString(R.string.default_left_gesture_control_value));
}

public static boolean isStartMainPlayerFullscreenEnabled(@NonNull final Context context) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,25 @@ protected void migrate(final Context context) {
}
};

public static final Migration MIGRATION_4_5 = new Migration(4, 5) {
@Override
protected void migrate(final Context context) {
final boolean brightness = sp.getBoolean("brightness_gesture_control", true);
final boolean volume = sp.getBoolean("volume_gesture_control", true);

final SharedPreferences.Editor editor = sp.edit();

editor.putString(context.getString(R.string.right_gesture_control_key),
context.getString(volume
? R.string.volume_control_key : R.string.none_control_key));
editor.putString(context.getString(R.string.left_gesture_control_key),
context.getString(brightness
? R.string.brightness_control_key : R.string.none_control_key));

editor.apply();
}
};

/**
* List of all implemented migrations.
* <p>
Expand All @@ -119,12 +138,13 @@ protected void migrate(final Context context) {
MIGRATION_1_2,
MIGRATION_2_3,
MIGRATION_3_4,
MIGRATION_4_5,
};

/**
* Version number for preferences. Must be incremented every time a migration is necessary.
*/
public static final int VERSION = 4;
public static final int VERSION = 5;


public static void initMigrations(final Context context, final boolean isFirstRun) {
Expand Down
31 changes: 29 additions & 2 deletions app/src/main/res/values/settings_keys.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
<string name="use_external_video_player_key">use_external_video_player</string>
<string name="use_external_audio_player_key">use_external_audio_player</string>

<string name="volume_gesture_control_key">volume_gesture_control</string>
<string name="brightness_gesture_control_key">brightness_gesture_control</string>
Stypox marked this conversation as resolved.
Show resolved Hide resolved
<string name="resume_on_audio_focus_gain_key">resume_on_audio_focus_gain</string>
<string name="popup_remember_size_pos_key">popup_remember_size_pos_key</string>
<string name="use_inexact_seek_key">use_inexact_seek_key</string>
Expand Down Expand Up @@ -192,6 +190,35 @@
<item>@string/audio_webm_key</item>
</string-array>

<string name="left_gesture_control_key">left_gesture_control</string>
<string name="default_left_gesture_control_value">@string/brightness_control_key</string>
<string name="brightness_control_key">brightness_control</string>
<string name="volume_control_key">volume_control</string>
<string name="none_control_key">none_control</string>
<string-array name="left_gesture_control_description">
<item>@string/brightness</item>
<item>@string/volume</item>
<item>@string/none</item>
</string-array>
<string-array name="left_gesture_control_values">
<item>@string/brightness_control_key</item>
<item>@string/volume_control_key</item>
<item>@string/none_control_key</item>
</string-array>

<string name="right_gesture_control_key">right_gesture_control</string>
<string name="default_right_gesture_control_value">@string/volume_control_key</string>
<string-array name="right_gesture_control_description">
<item>@string/volume</item>
<item>@string/brightness</item>
<item>@string/none</item>
</string-array>
<string-array name="right_gesture_control_values">
<item>@string/volume_control_key</item>
<item>@string/brightness_control_key</item>
<item>@string/none_control_key</item>
</string-array>

<string name="last_resize_mode">last_resize_mode</string>

<!-- DEBUG ONLY -->
Expand Down
11 changes: 7 additions & 4 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,13 @@
<string name="auto_queue_title">Auto-enqueue next stream</string>
<string name="auto_queue_summary">Continue ending (non-repeating) playback queue by appending a related stream</string>
<string name="auto_queue_toggle">Auto-enqueuing</string>
<string name="volume_gesture_control_title">Volume gesture control</string>
<string name="volume_gesture_control_summary">Use gestures to control player volume</string>
<string name="brightness_gesture_control_title">Brightness gesture control</string>
<string name="brightness_gesture_control_summary">Use gestures to control player brightness</string>
<string name="left_gesture_control_summary">Choose gesture for left half of player screen</string>
<string name="left_gesture_control_title">Left gesture action</string>
<string name="right_gesture_control_summary">Choose gesture for right half of player screen</string>
<string name="right_gesture_control_title">Right gesture action</string>
<string name="brightness">Brightness</string>
<string name="volume">Volume</string>
<string name="none">None</string>
<string name="show_search_suggestions_title">Search suggestions</string>
<string name="show_search_suggestions_summary">Choose the suggestions to show when searching</string>
<string name="local_search_suggestions">Local search suggestions</string>
Expand Down
24 changes: 14 additions & 10 deletions app/src/main/res/xml/video_audio_settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -174,19 +174,23 @@
app:singleLineTitle="false"
app:iconSpaceReserved="false" />

<SwitchPreferenceCompat
android:defaultValue="true"
android:key="@string/volume_gesture_control_key"
android:summary="@string/volume_gesture_control_summary"
android:title="@string/volume_gesture_control_title"
<ListPreference
android:defaultValue="@string/default_left_gesture_control_value"
android:entries="@array/left_gesture_control_description"
android:entryValues="@array/left_gesture_control_values"
android:key="@string/left_gesture_control_key"
android:summary="@string/left_gesture_control_summary"
android:title="@string/left_gesture_control_title"
app:singleLineTitle="false"
app:iconSpaceReserved="false" />

<SwitchPreferenceCompat
android:defaultValue="true"
android:key="@string/brightness_gesture_control_key"
android:summary="@string/brightness_gesture_control_summary"
android:title="@string/brightness_gesture_control_title"
<ListPreference
android:defaultValue="@string/default_right_gesture_control_value"
android:entries="@array/right_gesture_control_description"
android:entryValues="@array/right_gesture_control_values"
android:key="@string/right_gesture_control_key"
android:summary="@string/right_gesture_control_summary"
android:title="@string/right_gesture_control_title"
app:singleLineTitle="false"
app:iconSpaceReserved="false" />

Expand Down