Adapter clean ups

This commit is contained in:
Karim Abou Zeid 2015-07-12 03:22:24 +02:00
commit 98dcdf2d47
55 changed files with 811 additions and 1147 deletions

View file

@ -27,7 +27,7 @@ import com.afollestad.materialdialogs.util.DialogUtils;
import com.github.ksoichiro.android.observablescrollview.ObservableRecyclerView;
import com.kabouzeid.gramophone.App;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.songadapter.AlbumSongAdapter;
import com.kabouzeid.gramophone.adapter.song.AlbumSongAdapter;
import com.kabouzeid.gramophone.dialogs.SleepTimerDialog;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.imageloader.BlurProcessor;
@ -77,13 +77,13 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
@InjectView(R.id.list)
ObservableRecyclerView recyclerView;
@InjectView(R.id.album_art)
@InjectView(R.id.image)
ImageView albumArtImageView;
@InjectView(R.id.album_art_background)
ImageView albumArtBackground;
@InjectView(R.id.toolbar)
Toolbar toolbar;
@InjectView(R.id.album_title)
@InjectView(R.id.title)
TextView albumTitleView;
@InjectView(R.id.list_background)
View songsBackgroundView;
@ -156,6 +156,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
// Translate album cover
albumArtImageView.setTranslationY(Math.max(-albumArtViewHeight, -scrollY / 2));
albumArtBackground.setTranslationY(Math.max(-albumArtViewHeight, -scrollY / 2));
// Translate list background
songsBackgroundView.setTranslationY(Math.max(0, -scrollY + albumArtViewHeight));
@ -254,43 +255,31 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
}
private void applyPalette(@Nullable Bitmap bitmap) {
final int defaultBarColor = ColorUtil.resolveColor(this, R.attr.default_bar_color);
if (bitmap != null) {
Palette.from(bitmap)
.resizeBitmapSize(100)
.generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(@NonNull Palette palette) {
final Palette.Swatch vibrantSwatch = palette.getVibrantSwatch();
if (vibrantSwatch != null) {
toolbarColor = vibrantSwatch.getRgb();
albumTitleView.setBackgroundColor(toolbarColor);
albumTitleView.setTextColor(ColorUtil.getOpaqueColor(vibrantSwatch.getTitleTextColor()));
if (PreferenceUtil.getInstance(AlbumDetailActivity.this).coloredNavigationBarAlbum())
setNavigationBarColor(toolbarColor);
notifyTaskColorChange(toolbarColor);
} else {
resetColors();
}
setColors(palette.getVibrantColor(defaultBarColor));
}
});
} else {
resetColors();
setColors(defaultBarColor);
}
}
private void resetColors() {
int titleTextColor = DialogUtils.resolveColor(this, R.attr.title_text_color);
int defaultBarColor = DialogUtils.resolveColor(this, R.attr.default_bar_color);
toolbarColor = defaultBarColor;
albumTitleView.setBackgroundColor(defaultBarColor);
albumTitleView.setTextColor(titleTextColor);
private void setColors(int vibrantColor) {
toolbarColor = vibrantColor;
albumTitleView.setBackgroundColor(vibrantColor);
albumTitleView.setTextColor(ColorUtil.getTextColorForBackground(vibrantColor));
if (PreferenceUtil.getInstance(this).coloredNavigationBarArtist())
setNavigationBarColor(DialogUtils.resolveColor(this, R.attr.default_bar_color));
setNavigationBarColor(vibrantColor);
notifyTaskColorChange(toolbarColor);
notifyTaskColorChange(vibrantColor);
}
@Override

View file

@ -34,7 +34,7 @@ import com.github.ksoichiro.android.observablescrollview.ObservableListView;
import com.kabouzeid.gramophone.App;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.ArtistAlbumAdapter;
import com.kabouzeid.gramophone.adapter.songadapter.ArtistSongAdapter;
import com.kabouzeid.gramophone.adapter.song.ArtistSongAdapter;
import com.kabouzeid.gramophone.dialogs.SleepTimerDialog;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.helper.bitmapblur.StackBlurManager;
@ -91,13 +91,13 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor
@InjectView(R.id.artist_image_background)
ImageView artistImageBackground;
@InjectView(R.id.artist_image)
@InjectView(R.id.image)
SquareIfPlaceImageView artistImage;
@InjectView(R.id.list_background)
View songListBackground;
@InjectView(R.id.list)
ObservableListView songListView;
@InjectView(R.id.artist_name)
@InjectView(R.id.title)
TextView artistName;
@InjectView(R.id.toolbar)
Toolbar toolbar;
@ -191,6 +191,7 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor
// Translate album cover
artistImage.setTranslationY(Math.max(-artistImageViewHeight, -scrollY / 2));
artistImageBackground.setTranslationY(Math.max(-artistImageViewHeight, -scrollY / 2));
// Translate list background
songListBackground.setTranslationY(Math.max(0, -scrollY + artistImageViewHeight));
@ -305,7 +306,7 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor
private MaterialDialog getBiographyDialog() {
return new MaterialDialog.Builder(ArtistDetailActivity.this)
.title(artist.name)
.content(biography)
.content(biography != null ? biography : "")
.positiveText(android.R.string.ok)
.build();
}

View file

@ -281,18 +281,18 @@ public class MainActivity extends AbsFabActivity
public void onClick(View v) {
//noinspection ConstantConditions
NavigationUtil.openCurrentPlayingIfPossible(MainActivity.this, getSharedViewsWithFab(new Pair[]{
Pair.create(navigationDrawerHeader.findViewById(R.id.album_art),
getResources().getString(R.string.transition_album_cover)
Pair.create(navigationDrawerHeader.findViewById(R.id.image),
getResources().getString(R.string.transition_album_art)
)
}));
}
});
}
((TextView) navigationDrawerHeader.findViewById(R.id.song_title)).setText(song.title);
((TextView) navigationDrawerHeader.findViewById(R.id.song_artist)).setText(song.artistName);
((TextView) navigationDrawerHeader.findViewById(R.id.title)).setText(song.title);
((TextView) navigationDrawerHeader.findViewById(R.id.text)).setText(song.artistName);
ImageLoader.getInstance().displayImage(
MusicUtil.getSongImageLoaderString(song),
((ImageView) navigationDrawerHeader.findViewById(R.id.album_art)),
((ImageView) navigationDrawerHeader.findViewById(R.id.image)),
new DisplayImageOptions.Builder()
.cacheInMemory(true)
.showImageOnFail(R.drawable.default_album_art)

View file

@ -42,7 +42,6 @@ import com.kabouzeid.gramophone.dialogs.SleepTimerDialog;
import com.kabouzeid.gramophone.dialogs.SongDetailDialog;
import com.kabouzeid.gramophone.dialogs.SongShareDialog;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.helper.bitmapblur.StackBlurManager;
import com.kabouzeid.gramophone.imageloader.BlurProcessor;
import com.kabouzeid.gramophone.misc.SmallTransitionListener;
import com.kabouzeid.gramophone.model.Song;
@ -77,9 +76,9 @@ public class MusicControllerActivity extends AbsFabActivity {
private static final int CMD_UPDATE_PROGRESS_VIEWS = 1;
@InjectView(R.id.song_title)
@InjectView(R.id.title)
TextView songTitle;
@InjectView(R.id.song_artist)
@InjectView(R.id.text)
TextView songArtist;
@InjectView(R.id.footer)
LinearLayout footer;
@ -97,7 +96,7 @@ public class MusicControllerActivity extends AbsFabActivity {
RelativeLayout mediaControllerContainer;
@InjectView(R.id.album_art_background)
ImageView albumArtBackground;
@InjectView(R.id.album_art)
@InjectView(R.id.image)
SquareIfPlaceImageView albumArt;
@InjectView(R.id.toolbar)
Toolbar toolbar;
@ -121,8 +120,6 @@ public class MusicControllerActivity extends AbsFabActivity {
private boolean alternativeProgressSlider;
private boolean showPlaybackControllerCard;
private StackBlurManager defaultAlbumArtStackBlurManager;
private Song song;
@Override
@ -439,6 +436,7 @@ public class MusicControllerActivity extends AbsFabActivity {
@Override
public void onLoadingFailed(String imageUri, View view, @Nullable FailReason failReason) {
applyPalette(null);
ImageLoader.getInstance().displayImage(
"drawable://" + R.drawable.default_album_art,
albumArtBackground,
@ -453,7 +451,9 @@ public class MusicControllerActivity extends AbsFabActivity {
onLoadingFailed(imageUri, view, null);
return;
}
applyPalette(loadedImage);
ImageLoader.getInstance().displayImage(
imageUri,
albumArtBackground,
@ -465,36 +465,25 @@ public class MusicControllerActivity extends AbsFabActivity {
}
private void applyPalette(@Nullable Bitmap bitmap) {
final int defaultBarColor = ColorUtil.resolveColor(this, R.attr.default_bar_color);
if (bitmap != null) {
Palette.from(bitmap)
.resizeBitmapSize(100)
.generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(@NonNull Palette palette) {
final Palette.Swatch vibrantSwatch = palette.getVibrantSwatch();
if (vibrantSwatch != null) {
final int swatchRgb = vibrantSwatch.getRgb();
animateColorChange(swatchRgb);
animateTextColorChange(ColorUtil.getOpaqueColor(vibrantSwatch.getTitleTextColor()));
notifyTaskColorChange(swatchRgb);
} else {
resetColors();
}
setColors(palette.getVibrantColor(defaultBarColor));
}
});
} else {
resetColors();
setColors(defaultBarColor);
}
}
private void resetColors() {
final int textColor = ColorUtil.getOpaqueColor(DialogUtils.resolveColor(this, R.attr.title_text_color));
final int defaultBarColor = DialogUtils.resolveColor(this, R.attr.default_bar_color);
animateColorChange(defaultBarColor);
animateTextColorChange(textColor);
notifyTaskColorChange(defaultBarColor);
private void setColors(int vibrantColor) {
animateColorChange(vibrantColor);
animateTextColorChange(ColorUtil.getTextColorForBackground(vibrantColor));
notifyTaskColorChange(vibrantColor);
}

View file

@ -13,8 +13,8 @@ import android.widget.TextView;
import com.afollestad.materialcab.MaterialCab;
import com.kabouzeid.gramophone.App;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.songadapter.AbsPlaylistSongAdapter;
import com.kabouzeid.gramophone.adapter.songadapter.PlaylistSongAdapter;
import com.kabouzeid.gramophone.adapter.song.AbsPlaylistSongAdapter;
import com.kabouzeid.gramophone.adapter.song.PlaylistSongAdapter;
import com.kabouzeid.gramophone.dialogs.SleepTimerDialog;
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
import com.kabouzeid.gramophone.interfaces.CabHolder;
@ -77,7 +77,7 @@ public class PlaylistDetailActivity extends AbsFabActivity implements CabHolder
adapter = new PlaylistSongAdapter(this, playlist, this);
DragSortRecycler dragSortRecycler = new DragSortRecycler();
dragSortRecycler.setViewHandleId(R.id.album_art);
dragSortRecycler.setViewHandleId(R.id.image);
dragSortRecycler.setOnItemMovedListener(new DragSortRecycler.OnItemMovedListener() {
@Override
public void onItemMoved(int from, int to) {

View file

@ -122,7 +122,7 @@ public abstract class AbsFabActivity extends AbsPlaybackControlActivity {
}
}
@Nullable
@NonNull
protected FloatingActionButton getFab() {
if (fab == null) {
fab = (FloatingActionButton) findViewById(R.id.fab);

View file

@ -45,7 +45,7 @@ public class AlbumTagEditorActivity extends AbsTagEditorActivity implements Text
public static final String TAG = AlbumTagEditorActivity.class.getSimpleName();
@InjectView(R.id.album_title)
@InjectView(R.id.title)
EditText albumTitle;
@InjectView(R.id.album_artist)
EditText albumArtist;

View file

@ -34,7 +34,7 @@ public class SongTagEditorActivity extends AbsTagEditorActivity implements TextW
EditText genre;
@InjectView(R.id.year)
EditText year;
@InjectView(R.id.track_number)
@InjectView(R.id.image_text)
EditText trackNumber;
@Override

View file

@ -5,7 +5,7 @@ import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.ArtistAdapter;
import com.kabouzeid.gramophone.adapter.artist.ArtistListAdapter;
/**
* @author Karim Abou Zeid (kabouzeid)
@ -23,7 +23,7 @@ public class ArtistViewFragment extends AbsMainActivityRecyclerViewFragment {
@NonNull
@Override
protected RecyclerView.Adapter createAdapter() {
return new ArtistAdapter(getMainActivity(), getMainActivity());
return new ArtistListAdapter(getMainActivity(), getMainActivity());
}
@Override

View file

@ -5,7 +5,7 @@ import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.songadapter.SongAdapter;
import com.kabouzeid.gramophone.adapter.song.SongAdapter;
/**
* @author Karim Abou Zeid (kabouzeid)