diff options
author | Arnaud Berry <arnaudberry@google.com> | 2019-06-18 18:33:41 -0700 |
---|---|---|
committer | Arnaud Berry <arnaudberry@google.com> | 2019-06-19 11:39:24 -0700 |
commit | 1ef19ed05455b1b5c32ebd29c63228c1f4ca97b5 (patch) | |
tree | 4925485f018018477a8a55b293ee7734539b36ae | |
parent | abe382c59477c0fcb0b647122fc10fca66af2ca3 (diff) | |
download | Media-1ef19ed05455b1b5c32ebd29c63228c1f4ca97b5.tar.gz |
Hide progress bar when opening the custom actions
Add a playback_views_to_hide_when_showing_custom_actions array so OEMs
can customize which views get hidden when opening the custom actions.
By default include the progress bar in the array to verify this behavior
more easily.
Bug: 135526983
Test: manual
Change-Id: I30c3072fa320000e2f6654f1c9a18455eb7f200e
-rw-r--r-- | res/values/integers.xml | 6 | ||||
-rw-r--r-- | src/com/android/car/media/PlaybackFragment.java | 52 |
2 files changed, 47 insertions, 11 deletions
diff --git a/res/values/integers.xml b/res/values/integers.xml index 0c822fa..1ceb462 100644 --- a/res/values/integers.xml +++ b/res/values/integers.xml @@ -41,4 +41,10 @@ <!-- Number of rows in the app bar view --> <integer name="num_app_bar_view_rows">1</integer> + + <!-- Views to hide when opening the custom actions when the queue isn't visible. --> + <integer-array name="playback_views_to_hide_when_showing_custom_actions"> + <item>@id/seek_bar</item> + </integer-array> + </resources> diff --git a/src/com/android/car/media/PlaybackFragment.java b/src/com/android/car/media/PlaybackFragment.java index 9878806..d4cd173 100644 --- a/src/com/android/car/media/PlaybackFragment.java +++ b/src/com/android/car/media/PlaybackFragment.java @@ -20,6 +20,8 @@ import android.annotation.Nullable; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Rect; +import android.content.res.Resources; +import android.content.res.TypedArray; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; @@ -65,6 +67,7 @@ public class PlaybackFragment extends Fragment { private SeekBar mSeekBar; private View mQueueButton; private ViewGroup mNavIconContainer; + private List<View> mViewsToHideForCustomActions; private DefaultItemAnimator mItemAnimator; @@ -271,18 +274,17 @@ public class PlaybackFragment extends Fragment { mControlBarScrim.setOnClickListener(scrim -> mPlaybackControls.close()); mControlBarScrim.setClickable(false); - mShowTimeForActiveQueueItem = getContext().getResources().getBoolean( + Resources res = getResources(); + mShowTimeForActiveQueueItem = res.getBoolean( R.bool.show_time_for_now_playing_queue_list_item); - mShowIconForActiveQueueItem = getContext().getResources().getBoolean( + mShowIconForActiveQueueItem = res.getBoolean( R.bool.show_icon_for_now_playing_queue_list_item); mShowThumbnailForQueueItem = getContext().getResources().getBoolean( R.bool.show_thumbnail_for_queue_list_item); - boolean useMediaSourceColor = - getContext().getResources().getBoolean( - R.bool.use_media_source_color_for_progress_bar); - int defaultColor = getContext().getResources().getColor( - R.color.progress_bar_highlight, null); + boolean useMediaSourceColor = res.getBoolean( + R.bool.use_media_source_color_for_progress_bar); + int defaultColor = res.getColor(R.color.progress_bar_highlight, null); if (useMediaSourceColor) { getPlaybackViewModel().getMediaSourceColors().observe(getViewLifecycleOwner(), sourceColors -> { @@ -304,6 +306,21 @@ public class PlaybackFragment extends Fragment { initPlaybackControls(view.findViewById(R.id.playback_controls)); initMetadataController(view); initQueue(); + + TypedArray hideViewIds = + res.obtainTypedArray(R.array.playback_views_to_hide_when_showing_custom_actions); + mViewsToHideForCustomActions = new ArrayList<>(hideViewIds.length()); + for (int i = 0; i < hideViewIds.length(); i++) { + int viewId = hideViewIds.getResourceId(i, 0); + if (viewId != 0) { + View viewToHide = view.findViewById(viewId); + if (viewToHide != null) { + mViewsToHideForCustomActions.add(viewToHide); + } + } + } + hideViewIds.recycle(); + return view; } @@ -322,12 +339,25 @@ public class PlaybackFragment extends Fragment { mPlaybackControls.setModel(getPlaybackViewModel(), getViewLifecycleOwner()); mPlaybackControls.registerExpandCollapseCallback((expanding) -> { mControlBarScrim.setClickable(expanding); + + Resources res = getContext().getResources(); + int millis = expanding ? res.getInteger(R.integer.control_bar_expand_anim_duration) : + res.getInteger(R.integer.control_bar_collapse_anim_duration); + if (expanding) { - ViewUtils.showViewAnimated(mControlBarScrim, getContext().getResources().getInteger( - R.integer.control_bar_expand_anim_duration)); + ViewUtils.showViewAnimated(mControlBarScrim, millis); } else { - ViewUtils.hideViewAnimated(mControlBarScrim, getContext().getResources().getInteger( - R.integer.control_bar_collapse_anim_duration)); + ViewUtils.hideViewAnimated(mControlBarScrim, millis); + } + + if (!mQueueIsVisible) { + for (View view : mViewsToHideForCustomActions) { + if (expanding) { + ViewUtils.hideViewAnimated(view, millis); + } else { + ViewUtils.showViewAnimated(view, millis); + } + } } }); } |