From 8fe66d058e58b76846e16f82a9b565b04e35fae4 Mon Sep 17 00:00:00 2001 From: antonio Date: Sun, 10 Dec 2023 17:32:03 +0100 Subject: [PATCH 01/80] gradle: build:gradle update --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 962a578c..e29a683a 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.1.2' + classpath 'com.android.tools.build:gradle:8.1.4' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0' } } From 5bbab1048572eafb1febe96542e31024c54a3f32 Mon Sep 17 00:00:00 2001 From: antonio Date: Tue, 12 Dec 2023 21:24:52 +0100 Subject: [PATCH 02/80] fix: null checking --- .../tempo/ui/fragment/PlayerCoverFragment.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 d29b0f53..f44ed41e 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 @@ -80,7 +80,10 @@ public class PlayerCoverFragment extends Fragment { handler.removeCallbacksAndMessages(null); - final Runnable runnable = () -> bind.nowPlayingTapButton.setVisibility(View.GONE); + final Runnable runnable = () -> { + if (bind != null) bind.nowPlayingTapButton.setVisibility(View.GONE); + }; + handler.postDelayed(runnable, 10000); } From 06f4898892c008ff2991fb59f7f7887e9ff73094 Mon Sep 17 00:00:00 2001 From: antonio Date: Tue, 12 Dec 2023 21:28:02 +0100 Subject: [PATCH 03/80] refactor/fix: renamed method name to be more descriptive and manually collapse bottomSheet on device state change --- .../tempo/ui/activity/MainActivity.java | 12 +++++++++--- .../tempo/ui/fragment/PlayerControllerFragment.java | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java b/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java index e40873e6..25913a55 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java @@ -94,7 +94,7 @@ public class MainActivity extends BaseActivity { @Override public void onBackPressed() { if (bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED) - collapseBottomSheet(); + collapseBottomSheetDelayed(); else super.onBackPressed(); } @@ -118,7 +118,7 @@ public class MainActivity extends BaseActivity { bottomSheetBehavior.addBottomSheetCallback(bottomSheetCallback); fragmentManager.beginTransaction().replace(R.id.player_bottom_sheet, new PlayerBottomSheetFragment(), "PlayerBottomSheet").commit(); - setBottomSheetInPeek(mainViewModel.isQueueLoaded()); + checkBottomSheetAfterStateChanged(); } public void setBottomSheetInPeek(Boolean isVisible) { @@ -137,7 +137,13 @@ public class MainActivity extends BaseActivity { } } - public void collapseBottomSheet() { + private void checkBottomSheetAfterStateChanged() { + final Handler handler = new Handler(); + final Runnable runnable = () -> setBottomSheetInPeek(mainViewModel.isQueueLoaded()); + handler.postDelayed(runnable, 100); + } + + public void collapseBottomSheetDelayed() { final Handler handler = new Handler(); final Runnable runnable = () -> bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); handler.postDelayed(runnable, 100); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerControllerFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerControllerFragment.java index 08e36a4a..306c8b50 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerControllerFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlayerControllerFragment.java @@ -296,7 +296,7 @@ public class PlayerControllerFragment extends Fragment { Bundle bundle = new Bundle(); bundle.putParcelable(Constants.ARTIST_OBJECT, artist); NavHostFragment.findNavController(this).navigate(R.id.artistPageFragment, bundle); - activity.collapseBottomSheet(); + activity.collapseBottomSheetDelayed(); }); } }); From 4523bb8e492de87ab2cb2c9d40ff6fc4d8c2ced9 Mon Sep 17 00:00:00 2001 From: antonio Date: Tue, 12 Dec 2023 21:28:49 +0100 Subject: [PATCH 04/80] feat: implemented horizontal layout for music player --- ...nner_fragment_player_controller_layout.xml | 359 ++++++++++++++++++ 1 file changed, 359 insertions(+) create mode 100644 app/src/main/res/layout-land/inner_fragment_player_controller_layout.xml diff --git a/app/src/main/res/layout-land/inner_fragment_player_controller_layout.xml b/app/src/main/res/layout-land/inner_fragment_player_controller_layout.xml new file mode 100644 index 00000000..61112689 --- /dev/null +++ b/app/src/main/res/layout-land/inner_fragment_player_controller_layout.xml @@ -0,0 +1,359 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +