From 13d8bbf877fc220bda654abda13130d0ac981770 Mon Sep 17 00:00:00 2001 From: antonio Date: Tue, 5 Sep 2023 21:33:31 +0200 Subject: [PATCH 1/7] feat: made tap on the track cover more prominent to discover quick action commands --- .../tempo/ui/fragment/PlayerCoverFragment.java | 15 +++++++++++++++ app/src/main/res/drawable/ic_tap.xml | 9 +++++++++ .../res/layout/inner_fragment_player_cover.xml | 16 ++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 app/src/main/res/drawable/ic_tap.xml diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerCoverFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerCoverFragment.java index 568d0672..561449d4 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerCoverFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerCoverFragment.java @@ -2,6 +2,7 @@ package com.cappielloantonio.tempo.ui.fragment; import android.content.ComponentName; import android.os.Bundle; +import android.os.Handler; import android.transition.Fade; import android.transition.Transition; import android.transition.TransitionManager; @@ -39,6 +40,8 @@ public class PlayerCoverFragment extends Fragment { private InnerFragmentPlayerCoverBinding bind; private ListenableFuture mediaBrowserListenableFuture; + private final Handler handler = new Handler(); + @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { bind = InnerFragmentPlayerCoverBinding.inflate(inflater, container, false); @@ -72,9 +75,19 @@ public class PlayerCoverFragment extends Fragment { bind = null; } + private void initTapButtonHideTransition() { + bind.nowPlayingTapButton.setVisibility(View.VISIBLE); + + handler.removeCallbacksAndMessages(null); + + final Runnable runnable = () -> bind.nowPlayingTapButton.setVisibility(View.GONE); + handler.postDelayed(runnable, 10000); + } + private void initOverlay() { bind.nowPlayingSongCoverImageView.setOnClickListener(view -> toggleOverlayVisibility(true)); bind.nowPlayingSongCoverButtonGroup.setOnClickListener(view -> toggleOverlayVisibility(false)); + bind.nowPlayingTapButton.setOnClickListener(view -> toggleOverlayVisibility(true)); } private void toggleOverlayVisibility(boolean isVisible) { @@ -87,6 +100,8 @@ public class PlayerCoverFragment extends Fragment { bind.innerButtonBottomRight.setVisibility(Preferences.isSyncronizationEnabled() ? View.VISIBLE : View.GONE); bind.innerButtonBottomRightAlternative.setVisibility(Preferences.isSyncronizationEnabled() ? View.GONE : View.VISIBLE); + + if (!isVisible) initTapButtonHideTransition(); } private void initInnerButton() { diff --git a/app/src/main/res/drawable/ic_tap.xml b/app/src/main/res/drawable/ic_tap.xml new file mode 100644 index 00000000..7d295106 --- /dev/null +++ b/app/src/main/res/drawable/ic_tap.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/inner_fragment_player_cover.xml b/app/src/main/res/layout/inner_fragment_player_cover.xml index dabe7675..8eae8bd1 100644 --- a/app/src/main/res/layout/inner_fragment_player_cover.xml +++ b/app/src/main/res/layout/inner_fragment_player_cover.xml @@ -15,6 +15,22 @@ app:layout_constraintDimensionRatio="1:1" app:layout_constraintTop_toTopOf="parent" /> +