diff --git a/app/src/main/java/com/cappielloantonio/play/ui/activity/base/BaseActivity.java b/app/src/main/java/com/cappielloantonio/play/ui/activity/base/BaseActivity.java index b84bf265..70ce0f2f 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/activity/base/BaseActivity.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/activity/base/BaseActivity.java @@ -250,7 +250,6 @@ public class BaseActivity extends AppCompatActivity implements EasyPermissions.P public void onDownloadsChanged() { // TODO Notificare all'item scaricato che lo stato di download รจ cambiato // sampleAdapter.notifyDataSetChanged(); - Toast.makeText(this, "Download changed", Toast.LENGTH_SHORT).show(); } private static final class MusicStateReceiver extends BroadcastReceiver { diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java index 8b040c31..9a054428 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java @@ -1,10 +1,15 @@ package com.cappielloantonio.play.ui.fragment; +import android.os.Build; 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; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.view.ViewCompat; import androidx.fragment.app.Fragment; @@ -12,6 +17,7 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.App; +import com.cappielloantonio.play.R; import com.cappielloantonio.play.adapter.SongResultSearchAdapter; import com.cappielloantonio.play.databinding.FragmentAlbumPageBinding; import com.cappielloantonio.play.glide.CustomGlideRequest; @@ -32,6 +38,18 @@ public class AlbumPageFragment extends Fragment { private SongResultSearchAdapter songResultSearchAdapter; + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setHasOptionsMenu(true); + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); + inflater.inflate(R.menu.album_page_menu, menu); + } + @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); @@ -48,7 +66,6 @@ public class AlbumPageFragment extends Fragment { albumPageViewModel = new ViewModelProvider(requireActivity()).get(AlbumPageViewModel.class); init(); - initDownloadButton(); initBackCover(); initSongsView(); @@ -67,12 +84,21 @@ public class AlbumPageFragment extends Fragment { bind = null; } - private void init() { - albumPageViewModel.setAlbum(getArguments().getParcelable("album_object")); + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case R.id.action_download_album: + DownloadUtil.getDownloadTracker(requireContext()).toggleDownload(albumPageViewModel.getAlbumSongList()); + return true; + default: + break; + } + + return false; } - private void initDownloadButton() { - bind.downloadIconButton.setOnClickListener(v -> DownloadUtil.getDownloadTracker(requireContext()).toggleDownload(albumPageViewModel.getAlbumSongList())); + private void init() { + albumPageViewModel.setAlbum(getArguments().getParcelable("album_object")); } private void initAppBar() { diff --git a/app/src/main/res/drawable/ic_file_download.xml b/app/src/main/res/drawable/ic_file_download.xml new file mode 100644 index 00000000..3f16729b --- /dev/null +++ b/app/src/main/res/drawable/ic_file_download.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/fragment_album_page.xml b/app/src/main/res/layout/fragment_album_page.xml index c8c29b7b..7626e0b6 100644 --- a/app/src/main/res/layout/fragment_album_page.xml +++ b/app/src/main/res/layout/fragment_album_page.xml @@ -50,6 +50,7 @@ android:ellipsize="end" android:maxLines="2" android:singleLine="false" + android:text="American Idiot" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/album_cover_image_view" app:layout_constraintTop_toTopOf="@+id/album_cover_image_view" /> @@ -63,6 +64,7 @@ android:layout_marginEnd="16dp" android:ellipsize="end" android:maxLines="1" + android:text="Green Day" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/album_cover_image_view" app:layout_constraintTop_toBottomOf="@+id/album_name_label" /> @@ -74,26 +76,11 @@ android:layout_height="wrap_content" android:layout_marginStart="12dp" android:layout_marginEnd="16dp" + android:text="2004" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/album_cover_image_view" app:layout_constraintTop_toBottomOf="@+id/album_artist_label" /> - - + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 70c60bf2..53761777 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -97,7 +97,7 @@