[Android] [PATCH] Vertical volume/brightness bar
Geoffrey Métais
geoffrey.metais at gmail.com
Tue Apr 7 16:09:46 CEST 2015
Good for me, and nice to have it :)
It's commited, but beware of indentation please.
Thanks for your contribution anymay !
On Mon, Apr 6, 2015 at 10:13 PM, Vladimír Pokorný <vlada.pokorny at seznam.cz>
wrote:
> ---
> vlc-android/res/drawable/verticalbar_border.xml | 6 ++++
> vlc-android/res/layout/player.xml | 27 ++++++++++++++++++
> .../vlc/gui/video/VideoPlayerActivity.java | 32
> ++++++++++++++++++++--
> 3 files changed, 63 insertions(+), 2 deletions(-)
> create mode 100644 vlc-android/res/drawable/verticalbar_border.xml
>
> diff --git a/vlc-android/res/drawable/verticalbar_border.xml
> b/vlc-android/res/drawable/verticalbar_border.xml
> new file mode 100644
> index 0000000..276679e
> --- /dev/null
> +++ b/vlc-android/res/drawable/verticalbar_border.xml
> @@ -0,0 +1,6 @@
> +<?xml version="1.0" encoding="utf-8"?>
> +<shape xmlns:android="http://schemas.android.com/apk/res/android"
> android:shape="rectangle">
> + <solid android:color="#00000000" />
> + <stroke android:width="1dp"
> + android:color="#77ffffff" />
> +</shape>
> \ No newline at end of file
> diff --git a/vlc-android/res/layout/player.xml
> b/vlc-android/res/layout/player.xml
> index a4906a6..6dfdc15 100644
> --- a/vlc-android/res/layout/player.xml
> +++ b/vlc-android/res/layout/player.xml
> @@ -77,6 +77,33 @@
> android:textColor="#ffffff"
> android:textSize="36sp"
> android:visibility="invisible" />
> +
> + <FrameLayout android:id="@+id/verticalbar"
> + android:layout_width="28dp"
> + android:layout_height="100dp"
> + android:layout_above="@+id/progress_overlay"
> + android:layout_toLeftOf="@+id/player_overlay_info"
> + android:layout_marginRight="8dp"
> + android:layout_marginBottom="-16dp"
> + android:background="@drawable/video_list_length_bg"
> + android:visibility="invisible">
> +
> + <LinearLayout android:layout_width="match_parent"
> + android:layout_height="match_parent"
> + android:layout_margin="7dp"
> +
> android:background="@drawable/verticalbar_border"
> + android:orientation="vertical"
> + android:weightSum="15"
> + android:gravity="bottom">
> +
> + <View android:id="@+id/verticalbar_progress"
> + android:layout_width="match_parent"
> + android:layout_height="0dp"
> + android:layout_margin="2dp"
> + android:background="@color/orange500transparent" />
> + </LinearLayout>
> + </FrameLayout>
> +
> <ImageView
> android:id="@+id/player_delay_minus"
> android:layout_width="wrap_content"
> diff --git
> a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> index a0ddf2c..06b43aa 100644
> --- a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> +++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> @@ -86,6 +86,7 @@ import android.view.animation.DecelerateInterpolator;
> import android.view.animation.RotateAnimation;
> import android.widget.FrameLayout;
> import android.widget.ImageView;
> +import android.widget.LinearLayout;
> import android.widget.RelativeLayout;
> import android.widget.SeekBar;
> import android.widget.SeekBar.OnSeekBarChangeListener;
> @@ -196,6 +197,8 @@ public class VideoPlayerActivity extends
> ActionBarActivity implements IVideoPlay
> private TextView mTime;
> private TextView mLength;
> private TextView mInfo;
> + private View mVerticalBar;
> + private View mVerticalBarProgress;
> private ImageView mLoading;
> private TextView mLoadingText;
> private ImageView mTipsBackground;
> @@ -397,6 +400,8 @@ public class VideoPlayerActivity extends
> ActionBarActivity implements IVideoPlay
>
> // the info textView is not on the overlay
> mInfo = (TextView) findViewById(R.id.player_overlay_info);
> + mVerticalBar = findViewById(R.id.verticalbar);
> + mVerticalBarProgress = findViewById(R.id.verticalbar_progress);
>
> mEnableBrightnessGesture =
> mSettings.getBoolean("enable_brightness_gesture", true);
> mScreenOrientation = Integer.valueOf(
> @@ -1194,11 +1199,26 @@ public class VideoPlayerActivity extends
> ActionBarActivity implements IVideoPlay
> }
>
> /**
> + * Show text in the info view and vertical progress bar for
> "duration" milliseconds
> + * @param text
> + * @param duration
> + * @param barNewValue new volume/brightness value (range: 0 - 15)
> + */
> + private void showInfoWithVerticalBar(String text, int duration, int
> barNewValue) {
> + showInfo(text, duration);
> + LinearLayout.LayoutParams layoutParams =
> (LinearLayout.LayoutParams) mVerticalBarProgress.getLayoutParams();
> + layoutParams.weight = barNewValue;
> + mVerticalBarProgress.setLayoutParams(layoutParams);
> + mVerticalBar.setVisibility(View.VISIBLE);
> + }
> +
> + /**
> * Show text in the info view for "duration" milliseconds
> * @param text
> * @param duration
> */
> private void showInfo(String text, int duration) {
> + mVerticalBar.setVisibility(View.INVISIBLE);
> mInfo.setVisibility(View.VISIBLE);
> mInfo.setText(text);
> mHandler.removeMessages(FADE_OUT_INFO);
> @@ -1206,6 +1226,7 @@ public class VideoPlayerActivity extends
> ActionBarActivity implements IVideoPlay
> }
>
> private void showInfo(int textid, int duration) {
> + mVerticalBar.setVisibility(View.INVISIBLE);
> mInfo.setVisibility(View.VISIBLE);
> mInfo.setText(textid);
> mHandler.removeMessages(FADE_OUT_INFO);
> @@ -1217,6 +1238,7 @@ public class VideoPlayerActivity extends
> ActionBarActivity implements IVideoPlay
> * @param text
> */
> private void showInfo(String text) {
> + mVerticalBar.setVisibility(View.INVISIBLE);
> mHandler.removeMessages(FADE_OUT_INFO);
> mInfo.setVisibility(View.VISIBLE);
> mInfo.setText(text);
> @@ -1243,6 +1265,11 @@ public class VideoPlayerActivity extends
> ActionBarActivity implements IVideoPlay
> mInfo.startAnimation(AnimationUtils.loadAnimation(
> VideoPlayerActivity.this, android.R.anim.fade_out));
> mInfo.setVisibility(View.INVISIBLE);
> +
> + if (mVerticalBar.getVisibility() == View.VISIBLE)
> + mVerticalBar.startAnimation(AnimationUtils.loadAnimation(
> + VideoPlayerActivity.this, android.R.anim.fade_out));
> + mVerticalBar.setVisibility(View.INVISIBLE);
> }
>
> private OnAudioFocusChangeListener mAudioFocusListener =
> !LibVlcUtil.isFroyoOrLater() ? null :
> @@ -1835,7 +1862,7 @@ public class VideoPlayerActivity extends
> ActionBarActivity implements IVideoPlay
> mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, vol,
> AudioManager.FLAG_SHOW_UI);
>
> mTouchAction = TOUCH_VOLUME;
> - showInfo(getString(R.string.volume) + '\u00A0' +
> Integer.toString(vol),1000);
> + showInfoWithVerticalBar(getString(R.string.volume) + '\u00A0' +
> Integer.toString(vol), 1000, vol);
> }
>
> private void mute(boolean mute) {
> @@ -1893,7 +1920,8 @@ public class VideoPlayerActivity extends
> ActionBarActivity implements IVideoPlay
> lp.screenBrightness = Math.min(Math.max(lp.screenBrightness +
> delta, 0.01f), 1);
> // Set Brightness
> getWindow().setAttributes(lp);
> - showInfo(getString(R.string.brightness) + '\u00A0' +
> Math.round(lp.screenBrightness * 15),1000);
> + int brightness = Math.round(lp.screenBrightness * 15);
> + showInfoWithVerticalBar(getString(R.string.brightness) + '\u00A0'
> + brightness, 1000, brightness);
> }
>
> /**
> --
> 1.9.1
>
> _______________________________________________
> Android mailing list
> Android at videolan.org
> https://mailman.videolan.org/listinfo/android
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/android/attachments/20150407/4ffc9bdd/attachment-0001.html>
More information about the Android
mailing list