[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