From fbb9536d7ee28ce52902d590256f4129e6108cc6 Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Fri, 27 Aug 2021 16:09:56 +0200 Subject: [PATCH] TEST - New toolbar in HomeFragment and LibraryFragment --- .idea/misc.xml | 10 +- .../play/ui/fragment/HomeFragment.java | 44 +- .../play/ui/fragment/LibraryFragment.java | 39 + app/src/main/res/drawable/ic_search.xml | 2 +- app/src/main/res/drawable/ic_settings.xml | 2 +- app/src/main/res/layout/fragment_home.xml | 961 +++++++++--------- app/src/main/res/layout/fragment_library.xml | 420 ++++---- app/src/main/res/menu/main_page_menu.xml | 15 + app/src/main/res/navigation/nav_graph.xml | 9 + 9 files changed, 837 insertions(+), 665 deletions(-) create mode 100644 app/src/main/res/menu/main_page_menu.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index dc6cacb8..b80af249 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,6 +7,7 @@ + @@ -16,10 +17,16 @@ + + + + + + @@ -31,7 +38,7 @@ - + @@ -61,6 +68,7 @@ + diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java index 21d304ba..769e1f61 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java @@ -1,7 +1,11 @@ package com.cappielloantonio.play.ui.fragment; +import android.graphics.Color; import android.os.Bundle; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -31,10 +35,14 @@ import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.util.DownloadUtil; import com.cappielloantonio.play.util.MappingUtil; +import com.cappielloantonio.play.util.MusicUtil; import com.cappielloantonio.play.util.UIUtil; import com.cappielloantonio.play.viewmodel.HomeViewModel; +import java.util.Objects; + public class HomeFragment extends Fragment { private static final String TAG = "CategoriesFragment"; @@ -53,6 +61,18 @@ public class HomeFragment extends Fragment { private TrackAdapter dowanloadedMusicAdapter; private SimilarTrackAdapter similarMusicAdapter; + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setHasOptionsMenu(true); + } + + @Override + public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); + inflater.inflate(R.menu.main_page_menu, menu); + } + @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -71,6 +91,7 @@ public class HomeFragment extends Fragment { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); + initAppBar(); initDiscoverSongSlideView(); initSimilarSongView(); initMostPlayedAlbumView(); @@ -96,6 +117,22 @@ public class HomeFragment extends Fragment { bind = null; } + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case R.id.action_search: + activity.navController.navigate(R.id.action_homeFragment_to_searchFragment); + return true; + case R.id.action_settings: + activity.navController.navigate(R.id.action_homeFragment_to_settingsFragment); + return true; + default: + break; + } + + return false; + } + private void init() { bind.recentlyAddedAlbumsTextViewClickable.setOnClickListener(v -> { Bundle bundle = new Bundle(); @@ -139,8 +176,6 @@ public class HomeFragment extends Fragment { activity.navController.navigate(R.id.action_homeFragment_to_songListPageFragment, bundle); }); - bind.homeSettingsImageView.setOnClickListener(v -> activity.navController.navigate(R.id.action_homeFragment_to_settingsFragment)); - bind.musicDiscoveryTextViewRefreshable.setOnLongClickListener(v -> { homeViewModel.refreshDiscoverySongSample(requireActivity()); return true; @@ -182,6 +217,11 @@ public class HomeFragment extends Fragment { }); } + private void initAppBar() { + activity.setSupportActionBar(bind.toolbar); + Objects.requireNonNull(bind.toolbar.getOverflowIcon()).setTint(requireContext().getResources().getColor(R.color.titleTextColor, null)); + } + private void initDiscoverSongSlideView() { bind.discoverSongViewPager.setOrientation(ViewPager2.ORIENTATION_HORIZONTAL); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/LibraryFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/LibraryFragment.java index 84a7ebf0..8f99299a 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/LibraryFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/LibraryFragment.java @@ -2,6 +2,9 @@ package com.cappielloantonio.play.ui.fragment; import android.os.Bundle; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -25,6 +28,8 @@ import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.viewmodel.LibraryViewModel; +import java.util.Objects; + public class LibraryFragment extends Fragment { private static final String TAG = "LibraryFragment"; @@ -37,6 +42,18 @@ public class LibraryFragment extends Fragment { private GenreAdapter genreAdapter; private PlaylistAdapter playlistAdapter; + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setHasOptionsMenu(true); + } + + @Override + public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); + inflater.inflate(R.menu.main_page_menu, menu); + } + @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -55,6 +72,7 @@ public class LibraryFragment extends Fragment { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); + initAppBar(); initAlbumView(); initArtistView(); initGenreView(); @@ -73,6 +91,22 @@ public class LibraryFragment extends Fragment { bind = null; } + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case R.id.action_search: + activity.navController.navigate(R.id.action_libraryFragment_to_searchFragment); + return true; + case R.id.action_settings: + activity.navController.navigate(R.id.action_libraryFragment_to_settingsFragment); + return true; + default: + break; + } + + return false; + } + private void init() { bind.albumCatalogueTextViewClickable.setOnClickListener(v -> activity.navController.navigate(R.id.action_libraryFragment_to_albumCatalogueFragment)); bind.artistCatalogueTextViewClickable.setOnClickListener(v -> activity.navController.navigate(R.id.action_libraryFragment_to_artistCatalogueFragment)); @@ -97,6 +131,11 @@ public class LibraryFragment extends Fragment { }); } + private void initAppBar() { + activity.setSupportActionBar(bind.toolbar); + Objects.requireNonNull(bind.toolbar.getOverflowIcon()).setTint(requireContext().getResources().getColor(R.color.titleTextColor, null)); + } + private void initAlbumView() { bind.albumRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)); bind.albumRecyclerView.setHasFixedSize(true); diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml index a46bda2f..8ee9978a 100644 --- a/app/src/main/res/drawable/ic_search.xml +++ b/app/src/main/res/drawable/ic_search.xml @@ -4,6 +4,6 @@ android:viewportWidth="24" android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml index e50f6fe3..24d32614 100644 --- a/app/src/main/res/drawable/ic_settings.xml +++ b/app/src/main/res/drawable/ic_settings.xml @@ -4,6 +4,6 @@ android:viewportWidth="24" android:viewportHeight="24"> diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index fbc2bee9..a429a281 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -1,553 +1,570 @@ - + android:layout_height="match_parent"> - + android:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" + app:elevation="0dp"> - - + android:background="@color/colorPrimary" + app:layout_scrollFlags="scroll|enterAlways|snap" + app:popupTheme="@style/ThemeOverlay.MaterialComponents.Light"> - + android:orientation="horizontal"> + + + + + + + + + + + + + + + + + - + + + + + + + + + - + android:clipToPadding="false" + android:paddingStart="16dp" + android:paddingTop="8dp" + android:paddingEnd="8dp" + android:paddingBottom="8dp" /> - - - + - - - - - - - - - - - - - - - - - - + + android:orientation="vertical" + android:visibility="gone"> - + + android:paddingTop="8dp" + android:paddingEnd="8dp"> + + - + + + + - + android:paddingBottom="8dp" /> - - + - - - - - - + + android:orientation="vertical"> - + + android:paddingTop="8dp" + android:paddingEnd="8dp"> + + - + + + + - + android:paddingBottom="8dp" /> - - + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:orientation="vertical"> + + android:paddingStart="16dp" + android:paddingTop="20dp" + android:paddingEnd="16dp" + android:text="Flashback" /> - - + android:paddingBottom="8dp" /> - - + - - - - - - + + android:orientation="vertical"> - + + android:paddingTop="8dp" + android:paddingEnd="8dp"> + + - + + + + - + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:clipToPadding="false" + android:paddingTop="8dp" + android:paddingBottom="8dp" /> - + + + android:orientation="vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + diff --git a/app/src/main/res/layout/fragment_library.xml b/app/src/main/res/layout/fragment_library.xml index 4a49edc1..27736394 100644 --- a/app/src/main/res/layout/fragment_library.xml +++ b/app/src/main/res/layout/fragment_library.xml @@ -1,246 +1,290 @@ - + android:layout_height="match_parent"> - + android:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" + app:elevation="0dp"> - + android:background="@color/colorPrimary" + app:layout_scrollFlags="scroll|enterAlways|snap" + app:popupTheme="@style/ThemeOverlay.MaterialComponents.Light"> - - + android:orientation="horizontal"> + + - - - - + android:paddingStart="16dp" + android:paddingEnd="16dp" + android:text="Play" /> + + - - - - + + android:paddingBottom="@dimen/global_padding_bottom"> - - + android:orientation="vertical" + android:paddingBottom="8dp"> - + + + + + + + + + + + - - - - + android:paddingBottom="8dp" /> - - + - - - - - - + android:orientation="vertical" + android:paddingBottom="8dp"> - + + + android:paddingTop="8dp" + android:paddingEnd="8dp"> + + - + + + + + android:paddingBottom="8dp" /> - - + - - - - - - + android:orientation="vertical" + android:paddingBottom="8dp"> - + + + android:paddingTop="8dp" + android:paddingEnd="8dp"> + + - + + + - - - + - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/main_page_menu.xml b/app/src/main/res/menu/main_page_menu.xml new file mode 100644 index 00000000..63726b18 --- /dev/null +++ b/app/src/main/res/menu/main_page_menu.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 56f8d59d..8aca78fe 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -57,6 +57,9 @@ + + +