refactor arguments for shared element transitions
This commit is contained in:
parent
7d43f7e9ae
commit
589f966655
11 changed files with 28 additions and 37 deletions
|
|
@ -99,7 +99,7 @@ public class AlbumDetailActivity extends AbsMusicContentActivity implements Pale
|
||||||
setUpRecyclerView();
|
setUpRecyclerView();
|
||||||
setUpSongsAdapter();
|
setUpSongsAdapter();
|
||||||
binding.artistText.setOnClickListener(v -> {
|
binding.artistText.setOnClickListener(v -> {
|
||||||
NavigationUtil.startArtist(AlbumDetailActivity.this, new Artist(album));
|
NavigationUtil.startArtist(AlbumDetailActivity.this, new Artist(album), null);
|
||||||
});
|
});
|
||||||
|
|
||||||
setColors(DialogUtils.resolveColor(this, R.attr.defaultFooterColor));
|
setColors(DialogUtils.resolveColor(this, R.attr.defaultFooterColor));
|
||||||
|
|
@ -199,7 +199,7 @@ public class AlbumDetailActivity extends AbsMusicContentActivity implements Pale
|
||||||
super.onBackPressed();
|
super.onBackPressed();
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_go_to_artist:
|
case R.id.action_go_to_artist:
|
||||||
NavigationUtil.startArtist(this, new Artist(album));
|
NavigationUtil.startArtist(this, new Artist(album), null);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ public class GenreAdapter extends RecyclerView.Adapter<GenreAdapter.ViewHolder>
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
Genre genre = dataSet.get(getBindingAdapterPosition());
|
Genre genre = dataSet.get(getBindingAdapterPosition());
|
||||||
NavigationUtil.startGenre(activity, genre);
|
NavigationUtil.startGenre(activity, genre, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
|
||||||
toggleChecked(getBindingAdapterPosition());
|
toggleChecked(getBindingAdapterPosition());
|
||||||
} else {
|
} else {
|
||||||
Playlist playlist = dataSet.get(getBindingAdapterPosition());
|
Playlist playlist = dataSet.get(getBindingAdapterPosition());
|
||||||
NavigationUtil.startPlaylist(activity, playlist);
|
NavigationUtil.startPlaylist(activity, playlist, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -219,8 +219,8 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
|
||||||
if (isInQuickSelectMode()) {
|
if (isInQuickSelectMode()) {
|
||||||
toggleChecked(getBindingAdapterPosition());
|
toggleChecked(getBindingAdapterPosition());
|
||||||
} else {
|
} else {
|
||||||
Pair[] albumPairs = new Pair[]{Pair.create(image, activity.getResources().getString(R.string.transition_album_image))};
|
Pair transition = Pair.create(image, activity.getResources().getString(R.string.transition_album_image));
|
||||||
NavigationUtil.startAlbum(activity, dataSet.get(getBindingAdapterPosition()), albumPairs);
|
NavigationUtil.startAlbum(activity, dataSet.get(getBindingAdapterPosition()), transition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -195,8 +195,8 @@ public class ArtistAdapter extends AbsMultiSelectAdapter<ArtistAdapter.ViewHolde
|
||||||
if (isInQuickSelectMode()) {
|
if (isInQuickSelectMode()) {
|
||||||
toggleChecked(getBindingAdapterPosition());
|
toggleChecked(getBindingAdapterPosition());
|
||||||
} else {
|
} else {
|
||||||
Pair[] artistPairs = new Pair[]{Pair.create(image, activity.getResources().getString(R.string.transition_artist_image))};
|
Pair transition = Pair.create(image, activity.getResources().getString(R.string.transition_artist_image));
|
||||||
NavigationUtil.startArtist(activity, dataSet.get(getBindingAdapterPosition()), artistPairs);
|
NavigationUtil.startArtist(activity, dataSet.get(getBindingAdapterPosition()), transition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -102,8 +102,8 @@ public class ArtistSongAdapter extends ArrayAdapter<Song> implements MaterialCab
|
||||||
@Override
|
@Override
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
public boolean onMenuItemClick(MenuItem item) {
|
||||||
if (item.getItemId() == R.id.action_go_to_album) {
|
if (item.getItemId() == R.id.action_go_to_album) {
|
||||||
Pair[] albumPairs = new Pair[]{Pair.create(albumArt, activity.getResources().getString(R.string.transition_album_image))};
|
Pair transition = Pair.create(albumArt, activity.getResources().getString(R.string.transition_album_image));
|
||||||
NavigationUtil.startAlbum(activity, new Album(song), albumPairs);
|
NavigationUtil.startAlbum(activity, new Album(song), transition);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -253,8 +253,8 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
||||||
if (image != null && image.getVisibility() == View.VISIBLE) {
|
if (image != null && image.getVisibility() == View.VISIBLE) {
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.action_go_to_album:
|
case R.id.action_go_to_album:
|
||||||
Pair[] albumPairs = new Pair[]{Pair.create(image, activity.getResources().getString(R.string.transition_album_image))};
|
Pair transition = Pair.create(image, activity.getResources().getString(R.string.transition_album_image));
|
||||||
NavigationUtil.startAlbum(activity, new Album(getSong()), albumPairs);
|
NavigationUtil.startAlbum(activity, new Album(getSong()), transition);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,10 +70,10 @@ public abstract class AbsPlayerFragment extends AbsMusicServiceFragment implemen
|
||||||
SongDetailDialog.create(song).show(getParentFragmentManager(), SongDetailDialog.TAG);
|
SongDetailDialog.create(song).show(getParentFragmentManager(), SongDetailDialog.TAG);
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_go_to_album:
|
case R.id.action_go_to_album:
|
||||||
NavigationUtil.startAlbum(requireActivity(), new Album(song));
|
NavigationUtil.startAlbum(requireActivity(), new Album(song), null);
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_go_to_artist:
|
case R.id.action_go_to_artist:
|
||||||
NavigationUtil.startArtist(requireActivity(), new Artist(song));
|
NavigationUtil.startArtist(requireActivity(), new Artist(song), null);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -44,10 +44,10 @@ public class SongMenuHelper {
|
||||||
NavigationUtil.startDownload(activity, song);
|
NavigationUtil.startDownload(activity, song);
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_go_to_album:
|
case R.id.action_go_to_album:
|
||||||
NavigationUtil.startAlbum(activity, new Album(song));
|
NavigationUtil.startAlbum(activity, new Album(song), null);
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_go_to_artist:
|
case R.id.action_go_to_artist:
|
||||||
NavigationUtil.startArtist(activity, new Artist(song));
|
NavigationUtil.startArtist(activity, new Artist(song), null);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -30,20 +30,13 @@ public class DownloadService extends Service {
|
||||||
public static final String EXTRA_SONG = PACKAGE_NAME + ".extra.song";
|
public static final String EXTRA_SONG = PACKAGE_NAME + ".extra.song";
|
||||||
|
|
||||||
private Executor executor;
|
private Executor executor;
|
||||||
private Handler handler;
|
|
||||||
private DownloadNotification notification;
|
private DownloadNotification notification;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
|
|
||||||
Looper looper = Looper.myLooper();
|
|
||||||
if (looper == null) {
|
|
||||||
looper = Looper.getMainLooper();
|
|
||||||
}
|
|
||||||
|
|
||||||
executor = Executors.newFixedThreadPool(4);
|
executor = Executors.newFixedThreadPool(4);
|
||||||
handler = new Handler(looper);
|
|
||||||
notification = new DownloadNotification(this);
|
notification = new DownloadNotification(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,6 @@ import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.core.app.ActivityOptionsCompat;
|
import androidx.core.app.ActivityOptionsCompat;
|
||||||
import androidx.core.util.Pair;
|
import androidx.core.util.Pair;
|
||||||
|
|
||||||
|
|
@ -26,7 +24,7 @@ import com.dkanada.gramophone.model.Song;
|
||||||
import com.dkanada.gramophone.service.DownloadService;
|
import com.dkanada.gramophone.service.DownloadService;
|
||||||
|
|
||||||
public class NavigationUtil {
|
public class NavigationUtil {
|
||||||
public static void openUrl(@NonNull final Context context, String url) {
|
public static void openUrl(Context context, String url) {
|
||||||
final Intent intent = new Intent(Intent.ACTION_VIEW);
|
final Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||||
|
|
||||||
intent.setData(Uri.parse(url));
|
intent.setData(Uri.parse(url));
|
||||||
|
|
@ -35,7 +33,7 @@ public class NavigationUtil {
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void openSettings(@NonNull final Context context) {
|
public static void openSettings(Context context) {
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
|
|
||||||
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
||||||
|
|
@ -44,57 +42,57 @@ public class NavigationUtil {
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startLogin(@NonNull final Context context) {
|
public static void startLogin(Context context) {
|
||||||
final Intent intent = new Intent(context, LoginActivity.class);
|
final Intent intent = new Intent(context, LoginActivity.class);
|
||||||
|
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startSelect(@NonNull final Context context) {
|
public static void startSelect(Context context) {
|
||||||
final Intent intent = new Intent(context, SelectActivity.class);
|
final Intent intent = new Intent(context, SelectActivity.class);
|
||||||
|
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startMain(@NonNull final Context context) {
|
public static void startMain(Context context) {
|
||||||
final Intent intent = new Intent(context, MainActivity.class);
|
final Intent intent = new Intent(context, MainActivity.class);
|
||||||
|
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startArtist(@NonNull final Activity activity, final Artist artist, @Nullable Pair... sharedElements) {
|
public static void startArtist(Activity activity, Artist artist, Pair sharedElements) {
|
||||||
final Intent intent = new Intent(activity, ArtistDetailActivity.class);
|
final Intent intent = new Intent(activity, ArtistDetailActivity.class);
|
||||||
|
|
||||||
intent.putExtra(ArtistDetailActivity.EXTRA_ARTIST, artist);
|
intent.putExtra(ArtistDetailActivity.EXTRA_ARTIST, artist);
|
||||||
startActivitySharedElements(activity, intent, sharedElements);
|
startActivitySharedElements(activity, intent, sharedElements);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startAlbum(@NonNull final Activity activity, final Album album, @Nullable Pair... sharedElements) {
|
public static void startAlbum(Activity activity, Album album, Pair sharedElements) {
|
||||||
final Intent intent = new Intent(activity, AlbumDetailActivity.class);
|
final Intent intent = new Intent(activity, AlbumDetailActivity.class);
|
||||||
|
|
||||||
intent.putExtra(AlbumDetailActivity.EXTRA_ALBUM, album);
|
intent.putExtra(AlbumDetailActivity.EXTRA_ALBUM, album);
|
||||||
startActivitySharedElements(activity, intent, sharedElements);
|
startActivitySharedElements(activity, intent, sharedElements);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startGenre(@NonNull final Activity activity, final Genre genre, @Nullable Pair... sharedElements) {
|
public static void startGenre(Activity activity, Genre genre, Pair sharedElements) {
|
||||||
final Intent intent = new Intent(activity, GenreDetailActivity.class);
|
final Intent intent = new Intent(activity, GenreDetailActivity.class);
|
||||||
|
|
||||||
intent.putExtra(GenreDetailActivity.EXTRA_GENRE, genre);
|
intent.putExtra(GenreDetailActivity.EXTRA_GENRE, genre);
|
||||||
startActivitySharedElements(activity, intent, sharedElements);
|
startActivitySharedElements(activity, intent, sharedElements);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startPlaylist(@NonNull final Activity activity, final Playlist playlist, @Nullable Pair... sharedElements) {
|
public static void startPlaylist(Activity activity, Playlist playlist, Pair sharedElements) {
|
||||||
final Intent intent = new Intent(activity, PlaylistDetailActivity.class);
|
final Intent intent = new Intent(activity, PlaylistDetailActivity.class);
|
||||||
|
|
||||||
intent.putExtra(PlaylistDetailActivity.EXTRA_PLAYLIST, playlist);
|
intent.putExtra(PlaylistDetailActivity.EXTRA_PLAYLIST, playlist);
|
||||||
startActivitySharedElements(activity, intent, sharedElements);
|
startActivitySharedElements(activity, intent, sharedElements);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startActivitySharedElements(@NonNull final Activity activity, Intent intent, @Nullable Pair... sharedElements) {
|
public static void startActivitySharedElements(Activity activity, Intent intent, Pair sharedElements) {
|
||||||
if (sharedElements != null && sharedElements.length > 0) {
|
if (sharedElements != null) {
|
||||||
// noinspection unchecked
|
// noinspection unchecked
|
||||||
activity.startActivity(intent, ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements).toBundle());
|
activity.startActivity(intent, ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements).toBundle());
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -102,7 +100,7 @@ public class NavigationUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startDownload(@NonNull Activity activity, Song song) {
|
public static void startDownload(Activity activity, Song song) {
|
||||||
Intent intent = new Intent(activity, DownloadService.class);
|
Intent intent = new Intent(activity, DownloadService.class);
|
||||||
|
|
||||||
intent.putExtra(DownloadService.EXTRA_SONG, song);
|
intent.putExtra(DownloadService.EXTRA_SONG, song);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue