RecyclerView
This commit is contained in:
parent
af21f191dd
commit
02e15fa739
25 changed files with 305 additions and 430 deletions
|
|
@ -45,14 +45,6 @@ public class App extends Application {
|
|||
PreferenceManager.getDefaultSharedPreferences(this).edit().putInt(AppKeys.SP_THEME, appTheme).apply();
|
||||
}
|
||||
|
||||
public boolean isTablet() {
|
||||
return getResources().getConfiguration().smallestScreenWidthDp >= 600;
|
||||
}
|
||||
|
||||
public boolean isInPortraitMode() {
|
||||
return getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
|
||||
}
|
||||
|
||||
public void addToVolleyRequestQueue(Request request) {
|
||||
request.setTag(TAG);
|
||||
getVolleyRequestQueue().add(request);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.kabouzeid.gramophone.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.view.LayoutInflater;
|
||||
|
|
@ -13,13 +14,13 @@ import android.widget.TextView;
|
|||
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.SongAdapter;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
||||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
|
@ -28,22 +29,18 @@ import java.util.List;
|
|||
* Created by karim on 24.01.15.
|
||||
*/
|
||||
public class PlayingQueueAdapter extends ArrayAdapter<Song> {
|
||||
private Context context;
|
||||
private App app;
|
||||
private SongAdapter.GoToAble goToAble;
|
||||
private Activity activity;
|
||||
|
||||
public PlayingQueueAdapter(Context context, SongAdapter.GoToAble goToAble, List<Song> playList) {
|
||||
super(context, R.layout.item_playlist, playList);
|
||||
this.context = context;
|
||||
app = (App) context.getApplicationContext();
|
||||
this.goToAble = goToAble;
|
||||
public PlayingQueueAdapter(Activity activity, List<Song> playList) {
|
||||
super(activity, R.layout.item_playlist, playList);
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
final Song song = getItem(position);
|
||||
if (convertView == null) {
|
||||
convertView = LayoutInflater.from(context).inflate(R.layout.item_playlist, parent, false);
|
||||
convertView = LayoutInflater.from(activity).inflate(R.layout.item_playlist, parent, false);
|
||||
}
|
||||
final TextView title = (TextView) convertView.findViewById(R.id.song_title);
|
||||
final ImageView playingIndicator = (ImageView) convertView.findViewById(R.id.playing_indicator);
|
||||
|
|
@ -61,31 +58,27 @@ public class PlayingQueueAdapter extends ArrayAdapter<Song> {
|
|||
overflowButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(final View v) {
|
||||
PopupMenu popupMenu = new PopupMenu(context, v);
|
||||
PopupMenu popupMenu = new PopupMenu(activity, v);
|
||||
popupMenu.inflate(R.menu.menu_song);
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_tag_editor:
|
||||
Intent intent = new Intent(context, SongTagEditorActivity.class);
|
||||
Intent intent = new Intent(activity, SongTagEditorActivity.class);
|
||||
intent.putExtra(AppKeys.E_ID, song.id);
|
||||
context.startActivity(intent);
|
||||
activity.startActivity(intent);
|
||||
return true;
|
||||
case R.id.action_details:
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(context, song.id);
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(activity, song.id);
|
||||
File songFile = new File(songFilePath);
|
||||
SongDetailDialogHelper.getDialog(context, songFile).show();
|
||||
SongDetailDialogHelper.getDialog(activity, songFile).show();
|
||||
return true;
|
||||
case R.id.action_go_to_album:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToAlbum(song.albumId);
|
||||
}
|
||||
NavigationUtil.goToAlbum(activity, song.albumId, null);
|
||||
return true;
|
||||
case R.id.action_go_to_artist:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToArtist(song.artistId);
|
||||
}
|
||||
NavigationUtil.goToAlbum(activity, song.artistId, null);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
package com.kabouzeid.gramophone.adapter.songadapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
|
@ -16,8 +17,10 @@ import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
|||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
|
@ -27,13 +30,11 @@ import java.util.List;
|
|||
*/
|
||||
public class SongAdapter extends ArrayAdapter<Song> {
|
||||
public static final String TAG = SongAdapter.class.getSimpleName();
|
||||
protected Context context;
|
||||
protected GoToAble goToAble;
|
||||
protected Activity activity;
|
||||
|
||||
public SongAdapter(Context context, GoToAble goToAble, List<Song> objects) {
|
||||
super(context, R.layout.item_song, objects);
|
||||
this.context = context;
|
||||
this.goToAble = goToAble;
|
||||
public SongAdapter(Activity activity, List<Song> objects) {
|
||||
super(activity, R.layout.item_song, objects);
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -50,31 +51,33 @@ public class SongAdapter extends ArrayAdapter<Song> {
|
|||
overflowButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(final View v) {
|
||||
PopupMenu popupMenu = new PopupMenu(context, v);
|
||||
PopupMenu popupMenu = new PopupMenu(activity, v);
|
||||
popupMenu.inflate(R.menu.menu_song);
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_tag_editor:
|
||||
Intent intent = new Intent(context, SongTagEditorActivity.class);
|
||||
Intent intent = new Intent(activity, SongTagEditorActivity.class);
|
||||
intent.putExtra(AppKeys.E_ID, song.id);
|
||||
context.startActivity(intent);
|
||||
activity.startActivity(intent);
|
||||
return true;
|
||||
case R.id.action_details:
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(context, song.id);
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(activity, song.id);
|
||||
File songFile = new File(songFilePath);
|
||||
SongDetailDialogHelper.getDialog(context, songFile).show();
|
||||
SongDetailDialogHelper.getDialog(activity, songFile).show();
|
||||
return true;
|
||||
case R.id.action_go_to_album:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToAlbum(song.albumId);
|
||||
}
|
||||
Pair[] albumPairs = null;
|
||||
if (activity instanceof AbsFabActivity)
|
||||
albumPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(albumPairs);
|
||||
NavigationUtil.goToAlbum(activity, song.albumId, albumPairs);
|
||||
return true;
|
||||
case R.id.action_go_to_artist:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToArtist(song.artistId);
|
||||
}
|
||||
Pair[] artistPairs = null;
|
||||
if (activity instanceof AbsFabActivity)
|
||||
artistPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(artistPairs);
|
||||
NavigationUtil.goToArtist(activity, song.artistId, artistPairs);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
@ -90,11 +93,4 @@ public class SongAdapter extends ArrayAdapter<Song> {
|
|||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
public static interface GoToAble {
|
||||
public void goToAlbum(int albumId);
|
||||
|
||||
public void goToArtist(int artistId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
package com.kabouzeid.gramophone.adapter.songadapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
|
@ -15,8 +16,10 @@ import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
|||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.io.File;
|
||||
|
|
@ -28,8 +31,8 @@ import java.util.List;
|
|||
public class SongViewListAdapter extends SongAdapter {
|
||||
public static final String TAG = SongViewListAdapter.class.getSimpleName();
|
||||
|
||||
public SongViewListAdapter(Context context, SongAdapter.GoToAble goToAble, List<Song> objects) {
|
||||
super(context, goToAble, objects);
|
||||
public SongViewListAdapter(Activity activity, List<Song> objects) {
|
||||
super(activity, objects);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -46,31 +49,33 @@ public class SongViewListAdapter extends SongAdapter {
|
|||
overflowButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(final View v) {
|
||||
PopupMenu popupMenu = new PopupMenu(context, v);
|
||||
PopupMenu popupMenu = new PopupMenu(activity, v);
|
||||
popupMenu.inflate(R.menu.menu_song);
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_tag_editor:
|
||||
Intent intent = new Intent(context, SongTagEditorActivity.class);
|
||||
Intent intent = new Intent(activity, SongTagEditorActivity.class);
|
||||
intent.putExtra(AppKeys.E_ID, song.id);
|
||||
context.startActivity(intent);
|
||||
activity.startActivity(intent);
|
||||
return true;
|
||||
case R.id.action_details:
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(context, song.id);
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(activity, song.id);
|
||||
File songFile = new File(songFilePath);
|
||||
SongDetailDialogHelper.getDialog(context, songFile).show();
|
||||
SongDetailDialogHelper.getDialog(activity, songFile).show();
|
||||
return true;
|
||||
case R.id.action_go_to_album:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToAlbum(song.albumId);
|
||||
}
|
||||
Pair[] albumPairs = new Pair[]{Pair.create(albumArt, getContext().getResources().getString(R.string.transition_album_cover))};
|
||||
if (activity instanceof AbsFabActivity)
|
||||
albumPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(albumPairs);
|
||||
NavigationUtil.goToAlbum(activity, song.albumId, albumPairs);
|
||||
return true;
|
||||
case R.id.action_go_to_artist:
|
||||
if (goToAble != null) {
|
||||
goToAble.goToArtist(song.artistId);
|
||||
}
|
||||
Pair[] artistPairs = null;
|
||||
if (activity instanceof AbsFabActivity)
|
||||
artistPairs = ((AbsFabActivity) activity).getSharedViewsWithFab(artistPairs);
|
||||
NavigationUtil.goToArtist(activity, song.artistId, artistPairs);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.kabouzeid.gramophone.helper;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
|
|
@ -18,18 +19,17 @@ import java.util.List;
|
|||
* Created by karim on 24.01.15.
|
||||
*/
|
||||
public class PlayingQueueDialogHelper {
|
||||
public static MaterialDialog getDialog(Context context, SongAdapter.GoToAble goToAble) {
|
||||
final App app = (App) context.getApplicationContext();
|
||||
public static MaterialDialog getDialog(Activity activity) {
|
||||
List<Song> playingQueue = MusicPlayerRemote.getPlayingQueue();
|
||||
if (playingQueue.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
MaterialDialog dialog = new MaterialDialog.Builder(context)
|
||||
.title(context.getResources().getString(R.string.label_current_playing_queue))
|
||||
MaterialDialog dialog = new MaterialDialog.Builder(activity)
|
||||
.title(activity.getResources().getString(R.string.label_current_playing_queue))
|
||||
.customView(R.layout.dialog_playlist, false)
|
||||
.positiveText(context.getResources().getString(R.string.close))
|
||||
.negativeText(context.getResources().getString(R.string.save_as_playlist))
|
||||
.positiveText(activity.getResources().getString(R.string.close))
|
||||
.negativeText(activity.getResources().getString(R.string.save_as_playlist))
|
||||
.callback(new MaterialDialog.ButtonCallback() {
|
||||
@Override
|
||||
public void onPositive(MaterialDialog dialog) {
|
||||
|
|
@ -44,7 +44,7 @@ public class PlayingQueueDialogHelper {
|
|||
})
|
||||
.build();
|
||||
final DragSortListView dragSortListView = (DragSortListView) dialog.getCustomView().findViewById(R.id.dragSortListView);
|
||||
final PlayingQueueAdapter playingQueueAdapter = new PlayingQueueAdapter(context, goToAble, playingQueue);
|
||||
final PlayingQueueAdapter playingQueueAdapter = new PlayingQueueAdapter(activity, playingQueue);
|
||||
dragSortListView.setAdapter(playingQueueAdapter);
|
||||
dragSortListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
package com.kabouzeid.gramophone.interfaces;
|
||||
|
||||
/**
|
||||
* Created by karim on 29.12.14.
|
||||
*/
|
||||
public interface KabSearchAbleFragment {
|
||||
public void search(String query);
|
||||
|
||||
public void returnToNonSearch();
|
||||
}
|
||||
|
|
@ -33,6 +33,7 @@ import com.kabouzeid.gramophone.model.Song;
|
|||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.AlbumTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
import com.kabouzeid.gramophone.util.ViewUtil;
|
||||
import com.nineoldandroids.view.ViewHelper;
|
||||
|
|
@ -154,13 +155,6 @@ public class AlbumDetailActivity extends AbsFabActivity implements KabViewsDisab
|
|||
return TAG;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToAlbum(int albumId) {
|
||||
if (album.id != albumId) {
|
||||
goToAlbum(albumId);
|
||||
}
|
||||
}
|
||||
|
||||
private void initViews() {
|
||||
albumArtImageView = (ImageView) findViewById(R.id.album_art);
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
|
|
@ -232,7 +226,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements KabViewsDisab
|
|||
|
||||
private void setListViewPadding() {
|
||||
setListViewPaddingTop();
|
||||
if (app.isInPortraitMode() || app.isTablet()) {
|
||||
if (Util.isInPortraitMode(this) || Util.isTablet(this)) {
|
||||
setListViewPaddingBottom();
|
||||
}
|
||||
}
|
||||
|
|
@ -267,7 +261,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements KabViewsDisab
|
|||
private void setUpTranslucence() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
Util.setStatusBarTranslucent(getWindow(), true);
|
||||
if (app.isInPortraitMode() || app.isTablet()) {
|
||||
if (Util.isInPortraitMode(this) || Util.isTablet(this)) {
|
||||
Util.setNavBarTranslucent(getWindow(), true);
|
||||
}
|
||||
}
|
||||
|
|
@ -275,7 +269,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements KabViewsDisab
|
|||
|
||||
private void setUpSongsAdapter() {
|
||||
final List<Song> songs = AlbumSongLoader.getAlbumSongList(this, album.id, new SongTrackNumberComparator());
|
||||
final SongAdapter songAdapter = new SongAdapter(this, this, songs);
|
||||
final SongAdapter songAdapter = new SongAdapter(this, songs);
|
||||
|
||||
absSongListView.setAdapter(songAdapter);
|
||||
absSongListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
|
|
@ -318,14 +312,14 @@ public class AlbumDetailActivity extends AbsFabActivity implements KabViewsDisab
|
|||
case R.id.action_settings:
|
||||
return true;
|
||||
case R.id.action_current_playing:
|
||||
return openCurrentPlayingIfPossible(null);
|
||||
return NavigationUtil.openCurrentPlayingIfPossible(this, null);
|
||||
case R.id.action_tag_editor:
|
||||
Intent intent = new Intent(this, AlbumTagEditorActivity.class);
|
||||
intent.putExtra(AppKeys.E_ID, album.id);
|
||||
startActivity(intent);
|
||||
return true;
|
||||
case R.id.action_go_to_artist:
|
||||
goToArtist(album.artistId, null);
|
||||
NavigationUtil.goToArtist(this, album.artistId, null);
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import com.kabouzeid.gramophone.ui.fragments.artistviewpager.AbsViewPagerTabArti
|
|||
import com.kabouzeid.gramophone.ui.fragments.artistviewpager.ViewPagerTabArtistAlbumFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.artistviewpager.ViewPagerTabArtistBioFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.artistviewpager.ViewPagerTabArtistSongListFragment;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
import com.kabouzeid.gramophone.util.ViewUtil;
|
||||
import com.nineoldandroids.animation.Animator;
|
||||
|
|
@ -106,13 +107,6 @@ public class ArtistDetailActivity extends AbsFabActivity implements KabViewsDisa
|
|||
return TAG;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToArtist(int artistId) {
|
||||
if (artist.id != artistId) {
|
||||
super.goToArtist(artistId);
|
||||
}
|
||||
}
|
||||
|
||||
private void initViews() {
|
||||
artistImageView = (ImageView) findViewById(R.id.artist_image);
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
|
|
@ -387,7 +381,7 @@ public class ArtistDetailActivity extends AbsFabActivity implements KabViewsDisa
|
|||
case R.id.action_settings:
|
||||
return true;
|
||||
case R.id.action_current_playing:
|
||||
openCurrentPlayingIfPossible(null);
|
||||
NavigationUtil.openCurrentPlayingIfPossible(this, null);
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
|
@ -462,7 +456,7 @@ public class ArtistDetailActivity extends AbsFabActivity implements KabViewsDisa
|
|||
case 2:
|
||||
return pages.get(position, new ViewPagerTabArtistBioFragment());
|
||||
default:
|
||||
return pages.get(position, new MainActivity.PlaceholderFragment());
|
||||
return pages.get(position, new MainActivity.PlaceholderFragmentAbs());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.v13.app.FragmentPagerAdapter;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
|
|
@ -29,16 +28,16 @@ import com.kabouzeid.gramophone.helper.AboutDeveloperDialogHelper;
|
|||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.PlayingQueueDialogHelper;
|
||||
import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.MusicRemoteEvent;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.fragments.NavigationDrawerFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.AlbumViewFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.ArtistViewFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.MainActivityFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.AbsMainActivityFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.SongViewFragment;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtils;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
import com.kabouzeid.gramophone.util.ViewUtil;
|
||||
|
|
@ -168,7 +167,7 @@ public class MainActivity extends AbsFabActivity
|
|||
try {
|
||||
super.enableViews();
|
||||
toolbar.setEnabled(true);
|
||||
((MainActivityFragment) viewPagerAdapter.getItem(viewPager.getCurrentItem())).enableViews();
|
||||
((AbsMainActivityFragment) viewPagerAdapter.getItem(viewPager.getCurrentItem())).enableViews();
|
||||
} catch (NullPointerException e) {
|
||||
//Log.e(TAG, "wasn't able to enable the views", e);
|
||||
}
|
||||
|
|
@ -178,7 +177,7 @@ public class MainActivity extends AbsFabActivity
|
|||
public void disableViews() {
|
||||
try {
|
||||
super.disableViews();
|
||||
((MainActivityFragment) viewPagerAdapter.getItem(viewPager.getCurrentItem())).disableViews();
|
||||
((AbsMainActivityFragment) viewPagerAdapter.getItem(viewPager.getCurrentItem())).disableViews();
|
||||
} catch (NullPointerException e) {
|
||||
//Log.e(TAG, "wasn't able to disable the views", e);
|
||||
}
|
||||
|
|
@ -195,7 +194,7 @@ public class MainActivity extends AbsFabActivity
|
|||
@Override
|
||||
public void onNavigationDrawerItemSelected(int position) {
|
||||
if (position == NavigationDrawerFragment.NAVIGATION_DRAWER_HEADER) {
|
||||
openCurrentPlayingIfPossible(null);
|
||||
NavigationUtil.openCurrentPlayingIfPossible(this, null);
|
||||
} else {
|
||||
if (viewPager != null) {
|
||||
viewPager.setCurrentItem(position, true);
|
||||
|
|
@ -233,10 +232,10 @@ public class MainActivity extends AbsFabActivity
|
|||
AboutDeveloperDialogHelper.getDialog(this).show();
|
||||
return true;
|
||||
case R.id.action_current_playing:
|
||||
openCurrentPlayingIfPossible(null);
|
||||
NavigationUtil.openCurrentPlayingIfPossible(this, null);
|
||||
return true;
|
||||
case R.id.action_playing_queue:
|
||||
final MaterialDialog materialDialog = PlayingQueueDialogHelper.getDialog(this, this);
|
||||
final MaterialDialog materialDialog = PlayingQueueDialogHelper.getDialog(this);
|
||||
if (materialDialog != null) {
|
||||
materialDialog.show();
|
||||
} else {
|
||||
|
|
@ -262,9 +261,9 @@ public class MainActivity extends AbsFabActivity
|
|||
super.onBackPressed();
|
||||
}
|
||||
|
||||
public static class PlaceholderFragment extends MainActivityFragment {
|
||||
public static class PlaceholderFragmentAbs extends AbsMainActivityFragment {
|
||||
|
||||
public PlaceholderFragment() {
|
||||
public PlaceholderFragmentAbs() {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -276,16 +275,6 @@ public class MainActivity extends AbsFabActivity
|
|||
return rootView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void search(String query) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void returnToNonSearch() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enableViews() {
|
||||
|
||||
|
|
@ -306,7 +295,7 @@ public class MainActivity extends AbsFabActivity
|
|||
|
||||
private String[] titles;
|
||||
|
||||
private SparseArray<MainActivityFragment> pages; //TODO check if this must be static
|
||||
private SparseArray<AbsMainActivityFragment> pages; //TODO check if this must be static
|
||||
private Context context;
|
||||
|
||||
public MainActivityViewPagerAdapter(Activity activity) {
|
||||
|
|
@ -336,7 +325,7 @@ public class MainActivity extends AbsFabActivity
|
|||
case 4:
|
||||
//TODO playlists
|
||||
}
|
||||
return pages.get(position, new PlaceholderFragment());
|
||||
return pages.get(position, new PlaceholderFragmentAbs());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ import com.kabouzeid.gramophone.service.MusicService;
|
|||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
import com.kabouzeid.gramophone.util.ViewUtil;
|
||||
import com.nineoldandroids.view.ViewPropertyAnimator;
|
||||
|
|
@ -337,12 +338,6 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
}).start();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean openCurrentPlayingIfPossible(Pair[] sharedViews) {
|
||||
onBackPressed();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateControllerState() {
|
||||
super.updateControllerState();
|
||||
|
|
@ -394,7 +389,7 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
super.onBackPressed();
|
||||
return true;
|
||||
case R.id.action_playing_queue:
|
||||
final MaterialDialog materialDialog = PlayingQueueDialogHelper.getDialog(this, this);
|
||||
final MaterialDialog materialDialog = PlayingQueueDialogHelper.getDialog(this);
|
||||
if (materialDialog != null) {
|
||||
materialDialog.show();
|
||||
} else {
|
||||
|
|
@ -412,10 +407,10 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
SongDetailDialogHelper.getDialog(this, songFile).show();
|
||||
return true;
|
||||
case R.id.action_go_to_album:
|
||||
goToAlbum(song.albumId, null);
|
||||
NavigationUtil.goToAlbum(this, song.albumId, null);
|
||||
return true;
|
||||
case R.id.action_go_to_artist:
|
||||
goToArtist(song.artistId, null);
|
||||
NavigationUtil.goToAlbum(this, song.artistId, null);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ import com.kabouzeid.gramophone.model.Artist;
|
|||
import com.kabouzeid.gramophone.model.SearchEntry;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -63,9 +64,21 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
playList.add((Song) item);
|
||||
MusicPlayerRemote.openQueue(playList, 0, true);
|
||||
} else if (item instanceof Album) {
|
||||
goToAlbum(((Album) item).id, new Pair[]{Pair.create(view.findViewById(R.id.image), getResources().getString(R.string.transition_album_cover))});
|
||||
NavigationUtil.goToAlbum(SearchActivity.this,
|
||||
((Album) item).id,
|
||||
new Pair[]{
|
||||
Pair.create(view.findViewById(R.id.image),
|
||||
getResources().getString(R.string.transition_album_cover)
|
||||
)
|
||||
});
|
||||
} else if (item instanceof Artist) {
|
||||
goToArtist(((Artist) item).id, new Pair[]{Pair.create(view.findViewById(R.id.image), getResources().getString(R.string.transition_artist_image))});
|
||||
NavigationUtil.goToArtist(SearchActivity.this,
|
||||
((Artist) item).id,
|
||||
new Pair[]{
|
||||
Pair.create(view.findViewById(R.id.image),
|
||||
getResources().getString(R.string.transition_artist_image)
|
||||
)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -75,7 +88,7 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
@Override
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
Util.hideSoftKeyboard(SearchActivity.this);
|
||||
if(searchView != null){
|
||||
if (searchView != null) {
|
||||
searchView.clearFocus();
|
||||
}
|
||||
return false;
|
||||
|
|
@ -178,7 +191,7 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
results.addAll(albums);
|
||||
albumLabel.setNumber(albums.size());
|
||||
}
|
||||
if(results.size() <= 3){
|
||||
if (results.size() <= 3) {
|
||||
results.clear();
|
||||
results.add(new LabelEntry(getResources().getString(R.string.no_results).toUpperCase()));
|
||||
}
|
||||
|
|
@ -187,7 +200,6 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
}
|
||||
|
||||
|
||||
|
||||
public static class LabelEntry implements SearchEntry {
|
||||
String title;
|
||||
String label;
|
||||
|
|
@ -197,8 +209,8 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
this.title = label;
|
||||
}
|
||||
|
||||
public void setNumber(int number){
|
||||
if(number != -1) {
|
||||
public void setNumber(int number) {
|
||||
if (number != -1) {
|
||||
label = title + " (" + number + ")";
|
||||
} else {
|
||||
label = title;
|
||||
|
|
|
|||
|
|
@ -1,30 +1,19 @@
|
|||
package com.kabouzeid.gramophone.ui.activities.base;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.ActivityOptionsCompat;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.crashlytics.android.Crashlytics;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.SongAdapter;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.ui.activities.AlbumDetailActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.ArtistDetailActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.MusicControllerActivity;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
|
||||
/**
|
||||
* Created by karim on 20.01.15.
|
||||
*/
|
||||
public abstract class AbsBaseActivity extends ActionBarActivity implements KabViewsDisableAble, SongAdapter.GoToAble {
|
||||
public abstract class AbsBaseActivity extends ActionBarActivity implements KabViewsDisableAble {
|
||||
private App app;
|
||||
private boolean areViewsEnabled;
|
||||
|
||||
|
|
@ -68,72 +57,9 @@ public abstract class AbsBaseActivity extends ActionBarActivity implements KabVi
|
|||
protected void setUpTranslucence(boolean statusBarTranslucent, boolean navigationBarTranslucent) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
Util.setStatusBarTranslucent(getWindow(), statusBarTranslucent);
|
||||
if (getApp().isInPortraitMode() || getApp().isTablet()) {
|
||||
if (Util.isInPortraitMode(this) || Util.isTablet(this)) {
|
||||
Util.setNavBarTranslucent(getWindow(), navigationBarTranslucent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean openCurrentPlayingIfPossible(Pair[] sharedViews) {
|
||||
if (MusicPlayerRemote.getPosition() != -1) {
|
||||
if (areViewsEnabled()) {
|
||||
disableViews();
|
||||
Intent intent = new Intent(this, MusicControllerActivity.class);
|
||||
if (sharedViews != null) {
|
||||
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this,
|
||||
sharedViews
|
||||
);
|
||||
ActivityCompat.startActivity(this, intent, optionsCompat.toBundle());
|
||||
} else {
|
||||
startActivity(intent);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(this, getResources().getString(R.string.nothing_playing), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToAlbum(int albumId) {
|
||||
goToAlbum(albumId, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToArtist(int artistId) {
|
||||
goToArtist(artistId, null);
|
||||
}
|
||||
|
||||
public void goToArtist(int artistId, Pair[] sharedViews) {
|
||||
if(areViewsEnabled()) {
|
||||
disableViews();
|
||||
final Intent intent = new Intent(this, ArtistDetailActivity.class);
|
||||
intent.putExtra(AppKeys.E_ARTIST, artistId);
|
||||
if (sharedViews != null) {
|
||||
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this,
|
||||
sharedViews
|
||||
);
|
||||
ActivityCompat.startActivity(this, intent, optionsCompat.toBundle());
|
||||
} else {
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void goToAlbum(int albumId, Pair[] sharedViews) {
|
||||
if(areViewsEnabled()) {
|
||||
disableViews();
|
||||
final Intent intent = new Intent(this, AlbumDetailActivity.class);
|
||||
intent.putExtra(AppKeys.E_ALBUM, albumId);
|
||||
if (sharedViews != null) {
|
||||
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(this,
|
||||
sharedViews
|
||||
);
|
||||
ActivityCompat.startActivity(this, intent, optionsCompat.toBundle());
|
||||
} else {
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.kabouzeid.gramophone.R;
|
|||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.misc.SmallOnGestureListener;
|
||||
import com.kabouzeid.gramophone.model.MusicRemoteEvent;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.melnykov.fab.FloatingActionButton;
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
||||
|
|
@ -41,7 +42,7 @@ public abstract class AbsFabActivity extends AbsBaseActivity {
|
|||
final GestureDetector gestureDetector = new GestureDetector(this, new SmallOnGestureListener() {
|
||||
@Override
|
||||
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
|
||||
openCurrentPlayingIfPossible(null);
|
||||
NavigationUtil.openCurrentPlayingIfPossible(AbsFabActivity.this, getSharedViewsWithFab(null));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
|
@ -115,22 +116,7 @@ public abstract class AbsFabActivity extends AbsBaseActivity {
|
|||
getFab().setEnabled(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean openCurrentPlayingIfPossible(Pair[] sharedViews) {
|
||||
return super.openCurrentPlayingIfPossible(getSharedViewsWithFab(sharedViews));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToArtist(int artistId, Pair[] sharedViews) {
|
||||
super.goToArtist(artistId, getSharedViewsWithFab(sharedViews));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToAlbum(int albumId, Pair[] sharedViews) {
|
||||
super.goToAlbum(albumId, getSharedViewsWithFab(sharedViews));
|
||||
}
|
||||
|
||||
private Pair[] getSharedViewsWithFab(Pair[] sharedViews) {
|
||||
public Pair[] getSharedViewsWithFab(Pair[] sharedViews) {
|
||||
Pair[] sharedViewsWithFab;
|
||||
if (sharedViews != null) {
|
||||
sharedViewsWithFab = new Pair[sharedViews.length + 1];
|
||||
|
|
@ -150,8 +136,8 @@ public abstract class AbsFabActivity extends AbsBaseActivity {
|
|||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
App.bus.unregister(busEventListener);
|
||||
super.onDestroy();
|
||||
App.bus.unregister(busEventListener);
|
||||
}
|
||||
|
||||
public void onMusicRemoteEvent(MusicRemoteEvent event) {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ public abstract class AbsViewPagerTabArtistListFragment extends Fragment impleme
|
|||
public static final String TAG = AbsViewPagerTabArtistListFragment.class.getSimpleName();
|
||||
protected App app;
|
||||
private ObservableGridView observableGridView;
|
||||
private Activity parentActivity;
|
||||
private int artistId = -1;
|
||||
private String artistName = "";
|
||||
private int paddingViewHeight;
|
||||
|
|
@ -31,7 +30,6 @@ public abstract class AbsViewPagerTabArtistListFragment extends Fragment impleme
|
|||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
app = (App) getActivity().getApplicationContext();
|
||||
parentActivity = getActivity();
|
||||
getArgs();
|
||||
|
||||
View view = inflater.inflate(R.layout.fragment_gridview, container, false);
|
||||
|
|
@ -53,7 +51,7 @@ public abstract class AbsViewPagerTabArtistListFragment extends Fragment impleme
|
|||
|
||||
paddingViewHeight = artistImageViewHeight + titleViewHeight + tabHeight;
|
||||
|
||||
if (app.isInPortraitMode() || app.isTablet()) {
|
||||
if (Util.isInPortraitMode(getActivity()) || Util.isTablet(getActivity())) {
|
||||
observableGridView.setPadding(0, paddingViewHeight, 0, Util.getNavigationBarHeight(getActivity()));
|
||||
} else {
|
||||
observableGridView.setPadding(0, paddingViewHeight, 0, 0);
|
||||
|
|
@ -118,10 +116,6 @@ public abstract class AbsViewPagerTabArtistListFragment extends Fragment impleme
|
|||
return artistName;
|
||||
}
|
||||
|
||||
public Activity getParentActivity() {
|
||||
return parentActivity;
|
||||
}
|
||||
|
||||
protected void setOnItemClickListener(AdapterView.OnItemClickListener onItemClickListener) {
|
||||
observableGridView.setOnItemClickListener(onItemClickListener);
|
||||
}
|
||||
|
|
@ -132,9 +126,9 @@ public abstract class AbsViewPagerTabArtistListFragment extends Fragment impleme
|
|||
|
||||
@Override
|
||||
public void onScrollChanged(int scrollY, boolean b, boolean b2) {
|
||||
if (parentActivity instanceof ObservableScrollViewCallbacks) {
|
||||
if (getActivity() instanceof ObservableScrollViewCallbacks) {
|
||||
if (getUserVisibleHint()) {
|
||||
((ObservableScrollViewCallbacks) parentActivity).onScrollChanged(scrollY + paddingViewHeight, b, b2);
|
||||
((ObservableScrollViewCallbacks) getActivity()).onScrollChanged(scrollY + paddingViewHeight, b, b2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import android.widget.AdapterView;
|
|||
import android.widget.ListAdapter;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.AlbumViewGridAdapter;
|
||||
import com.kabouzeid.gramophone.adapter.AlbumAdapter;
|
||||
import com.kabouzeid.gramophone.comparator.AlbumAlphabeticComparator;
|
||||
import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble;
|
||||
import com.kabouzeid.gramophone.loader.ArtistAlbumLoader;
|
||||
|
|
@ -30,9 +30,9 @@ public class ViewPagerTabArtistAlbumFragment extends AbsViewPagerTabArtistListFr
|
|||
|
||||
@Override
|
||||
protected ListAdapter getAdapter() {
|
||||
List<Album> albums = ArtistAlbumLoader.getArtistAlbumList(getParentActivity(), getArtistId());
|
||||
List<Album> albums = ArtistAlbumLoader.getArtistAlbumList(getActivity(), getArtistId());
|
||||
Collections.sort(albums, new AlbumAlphabeticComparator());
|
||||
ListAdapter adapter = new AlbumViewGridAdapter(getParentActivity(), albums);
|
||||
//ListAdapter adapter = new AlbumAdapter(getActivity(), albums);
|
||||
setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
|
|
@ -43,7 +43,8 @@ public class ViewPagerTabArtistAlbumFragment extends AbsViewPagerTabArtistListFr
|
|||
}
|
||||
});
|
||||
setColumns(getResources().getInteger(R.integer.grid_columns));
|
||||
return adapter;
|
||||
//return adapter;
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
|
@ -69,18 +70,18 @@ public class ViewPagerTabArtistAlbumFragment extends AbsViewPagerTabArtistListFr
|
|||
}
|
||||
|
||||
private void disableParentActivitiesViews() {
|
||||
if (getParentActivity() instanceof KabViewsDisableAble) {
|
||||
((KabViewsDisableAble) getParentActivity()).disableViews();
|
||||
if (getActivity() instanceof KabViewsDisableAble) {
|
||||
((KabViewsDisableAble) getActivity()).disableViews();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean areParentActivitiesViewsEnabled() {
|
||||
return !(getParentActivity() instanceof KabViewsDisableAble) || ((KabViewsDisableAble) getParentActivity()).areViewsEnabled();
|
||||
return !(getActivity() instanceof KabViewsDisableAble) || ((KabViewsDisableAble) getActivity()).areViewsEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
fab = (FloatingActionButton) getParentActivity().findViewById(R.id.fab);
|
||||
fab = (FloatingActionButton) getActivity().findViewById(R.id.fab);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,10 +25,10 @@ public class ViewPagerTabArtistBioFragment extends AbsViewPagerTabArtistListFrag
|
|||
protected ListAdapter getAdapter() {
|
||||
final List<String> strings = new ArrayList<>();
|
||||
strings.add("loading");
|
||||
ListAdapter adapter = new SimpleTextAdapter(getParentActivity(), strings);
|
||||
ListAdapter adapter = new SimpleTextAdapter(getActivity(), strings);
|
||||
setAdapter(adapter);
|
||||
|
||||
LastFMArtistBiographyLoader.loadArtistBio(getParentActivity(), getArtistName(), new LastFMArtistBiographyLoader.ArtistBioLoaderCallback() {
|
||||
LastFMArtistBiographyLoader.loadArtistBio(getActivity(), getArtistName(), new LastFMArtistBiographyLoader.ArtistBioLoaderCallback() {
|
||||
@Override
|
||||
public void onArtistBioLoaded(String biography) {
|
||||
if (biography == null || biography.trim().equals("")) {
|
||||
|
|
@ -41,7 +41,7 @@ public class ViewPagerTabArtistBioFragment extends AbsViewPagerTabArtistListFrag
|
|||
}
|
||||
strings.clear();
|
||||
strings.add(biography);
|
||||
ListAdapter adapter = new SimpleTextAdapter(getParentActivity(), strings);
|
||||
ListAdapter adapter = new SimpleTextAdapter(getActivity(), strings);
|
||||
setAdapter(adapter);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -20,13 +20,9 @@ import java.util.List;
|
|||
public class ViewPagerTabArtistSongListFragment extends AbsViewPagerTabArtistListFragment {
|
||||
@Override
|
||||
protected ListAdapter getAdapter() {
|
||||
final List<Song> songs = ArtistSongLoader.getArtistSongList(getParentActivity(), getArtistId());
|
||||
Collections.sort(songs, new SongAlphabeticComparator());
|
||||
AbsBaseActivity absBaseActivity = null;
|
||||
if (getParentActivity() instanceof AbsBaseActivity) {
|
||||
absBaseActivity = (AbsBaseActivity) getParentActivity();
|
||||
}
|
||||
ListAdapter adapter = new SongAdapter(getParentActivity(), absBaseActivity, songs);
|
||||
final List<Song> songs = ArtistSongLoader.getArtistSongList(getActivity(), getArtistId());
|
||||
|
||||
ListAdapter adapter = new SongAdapter(getActivity(), songs);
|
||||
setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
|
|
|
|||
|
|
@ -1,31 +1,28 @@
|
|||
package com.kabouzeid.gramophone.ui.fragments.mainactivityfragments;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.support.v7.widget.GridLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AbsListView;
|
||||
import android.widget.AdapterView;
|
||||
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.AlbumViewGridAdapter;
|
||||
import com.kabouzeid.gramophone.comparator.AlbumAlphabeticComparator;
|
||||
import com.kabouzeid.gramophone.adapter.AlbumAdapter;
|
||||
import com.kabouzeid.gramophone.loader.AlbumLoader;
|
||||
import com.kabouzeid.gramophone.model.Album;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by karim on 22.11.14.
|
||||
*/
|
||||
public class AlbumViewFragment extends MainActivityFragment {
|
||||
public class AlbumViewFragment extends AbsMainActivityFragment {
|
||||
public static final String TAG = AlbumViewFragment.class.getSimpleName();
|
||||
|
||||
private App app;
|
||||
private AbsListView absListView;
|
||||
private RecyclerView recyclerView;
|
||||
private View fragmentRootView;
|
||||
|
||||
@Override
|
||||
|
|
@ -52,17 +49,17 @@ public class AlbumViewFragment extends MainActivityFragment {
|
|||
@Override
|
||||
public void enableViews() {
|
||||
super.enableViews();
|
||||
absListView.setEnabled(true);
|
||||
recyclerView.setEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disableViews() {
|
||||
super.disableViews();
|
||||
absListView.setEnabled(false);
|
||||
recyclerView.setEnabled(false);
|
||||
}
|
||||
|
||||
private void initViews() {
|
||||
absListView = (AbsListView) fragmentRootView.findViewById(R.id.absList);
|
||||
recyclerView = (RecyclerView) fragmentRootView.findViewById(R.id.absList);
|
||||
}
|
||||
|
||||
private void setUpViews() {
|
||||
|
|
@ -75,40 +72,9 @@ public class AlbumViewFragment extends MainActivityFragment {
|
|||
}
|
||||
|
||||
private void fillAbsListView(List<Album> albums) {
|
||||
//Collections.sort(albums, new AlbumAlphabeticComparator());
|
||||
AlbumViewGridAdapter albumViewGridAdapter = new AlbumViewGridAdapter(getActivity(), albums);
|
||||
absListView.setAdapter(albumViewGridAdapter);
|
||||
absListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
Album album = (Album) parent.getItemAtPosition(position);
|
||||
View albumArtView = view.findViewById(R.id.album_art);
|
||||
|
||||
openAlbumDetailsActivity(album, albumArtView);
|
||||
}
|
||||
});
|
||||
|
||||
absListView.setPadding(0, getTopPadding(app), 0, getBottomPadding(app));
|
||||
}
|
||||
|
||||
private void openAlbumDetailsActivity(Album album, View albumArtForTransition) {
|
||||
getMainActivity().goToAlbum(album.id, new Pair[]{
|
||||
Pair.create(albumArtForTransition, getString(R.string.transition_album_cover))
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void search(String query) {
|
||||
setUpAbsListView(query);
|
||||
}
|
||||
|
||||
private void setUpAbsListView(String query) {
|
||||
List<Album> albums = AlbumLoader.getAlbums(getActivity(), query);
|
||||
fillAbsListView(albums);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void returnToNonSearch() {
|
||||
setUpAbsListView();
|
||||
AlbumAdapter albumAdapter = new AlbumAdapter(getActivity(), albums);
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
|
||||
recyclerView.setAdapter(albumAdapter);
|
||||
recyclerView.setPadding(0, getTopPadding(), 0, getBottomPadding());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.kabouzeid.gramophone.ui.fragments.mainactivityfragments;
|
|||
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.view.LayoutInflater;
|
||||
|
|
@ -14,32 +13,20 @@ import android.widget.AdapterView;
|
|||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.ArtistViewListAdapter;
|
||||
import com.kabouzeid.gramophone.comparator.ArtistAlphabeticComparator;
|
||||
import com.kabouzeid.gramophone.loader.ArtistLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Artist;
|
||||
import com.kabouzeid.gramophone.ui.activities.ArtistDetailActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
*/
|
||||
public class ArtistViewFragment extends MainActivityFragment {
|
||||
public class ArtistViewFragment extends AbsMainActivityFragment {
|
||||
public static final String TAG = ArtistViewFragment.class.getSimpleName();
|
||||
|
||||
private App app;
|
||||
private AbsListView absListView;
|
||||
private View fragmentRootView;
|
||||
private boolean areViewsEnabled;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
app = (App) getActivity().getApplicationContext();
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
|
|
@ -82,7 +69,6 @@ public class ArtistViewFragment extends MainActivityFragment {
|
|||
}
|
||||
|
||||
private void fillAbsListView(List<Artist> artists) {
|
||||
//Collections.sort(artists, new ArtistAlphabeticComparator());
|
||||
ArtistViewListAdapter artistAdapter = new ArtistViewListAdapter(getActivity(), artists);
|
||||
absListView.setAdapter(artistAdapter);
|
||||
absListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
|
|
@ -91,34 +77,10 @@ public class ArtistViewFragment extends MainActivityFragment {
|
|||
final Artist artist = (Artist) parent.getItemAtPosition(position);
|
||||
final View artistImageView = view.findViewById(R.id.artist_image);
|
||||
|
||||
if (getActivity() instanceof AbsFabActivity) {
|
||||
AbsFabActivity absFabActivity = (AbsFabActivity) getActivity();
|
||||
Pair[] sharedElements = {Pair.create(artistImageView, getString(R.string.transition_artist_image))};
|
||||
absFabActivity.goToArtist(artist.id, sharedElements);
|
||||
} else {
|
||||
Intent intent = new Intent(getActivity(), ArtistDetailActivity.class);
|
||||
intent.putExtra(AppKeys.E_ARTIST, artist.id);
|
||||
startActivity(intent);
|
||||
}
|
||||
Pair[] sharedElements = {Pair.create(artistImageView, getString(R.string.transition_artist_image))};
|
||||
NavigationUtil.goToArtist(getActivity(), artist.id, sharedElements);
|
||||
}
|
||||
});
|
||||
|
||||
absListView.setPadding(0, getTopPadding(app), 0, getBottomPadding(app));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void search(String query) {
|
||||
setUpAbsListView(query);
|
||||
}
|
||||
|
||||
private void setUpAbsListView(String query) {
|
||||
List<Artist> artists = ArtistLoader.getArtists(getActivity(), query);
|
||||
fillAbsListView(artists);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void returnToNonSearch() {
|
||||
setUpAbsListView();
|
||||
absListView.setPadding(0, getTopPadding(), 0, getBottomPadding());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,31 +11,22 @@ import android.widget.AdapterView;
|
|||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.SongViewListAdapter;
|
||||
import com.kabouzeid.gramophone.comparator.SongAlphabeticComparator;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.loader.SongLoader;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by karim on 29.12.14.
|
||||
*/
|
||||
public class SongViewFragment extends MainActivityFragment {
|
||||
public class SongViewFragment extends AbsMainActivityFragment {
|
||||
public static final String TAG = SongViewFragment.class.getSimpleName();
|
||||
|
||||
private App app;
|
||||
private AbsListView absListView;
|
||||
private View fragmentRootView;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
app = (App) getActivity().getApplicationContext();
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
|
@ -64,12 +55,7 @@ public class SongViewFragment extends MainActivityFragment {
|
|||
}
|
||||
|
||||
private void fillAbsListView(final List<Song> songs) {
|
||||
//Collections.sort(songs, new SongAlphabeticComparator());
|
||||
AbsBaseActivity absBaseActivity = null;
|
||||
if (getActivity() instanceof AbsBaseActivity) {
|
||||
absBaseActivity = (AbsBaseActivity) getActivity();
|
||||
}
|
||||
SongViewListAdapter songAdapter = new SongViewListAdapter(getActivity(), absBaseActivity, songs);
|
||||
SongViewListAdapter songAdapter = new SongViewListAdapter(getActivity(), songs);
|
||||
absListView.setAdapter(songAdapter);
|
||||
absListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
|
|
@ -78,22 +64,7 @@ public class SongViewFragment extends MainActivityFragment {
|
|||
}
|
||||
});
|
||||
|
||||
absListView.setPadding(0, getTopPadding(app), 0, getBottomPadding(app));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void search(String query) {
|
||||
setUpAbsListView(query);
|
||||
}
|
||||
|
||||
private void setUpAbsListView(String query) {
|
||||
List<Song> songs = SongLoader.getSongs(getActivity(), query);
|
||||
fillAbsListView(songs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void returnToNonSearch() {
|
||||
setUpAbsListView();
|
||||
absListView.setPadding(0, getTopPadding(), 0, getBottomPadding());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
package com.kabouzeid.gramophone.util;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.ActivityOptionsCompat;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.ui.activities.AlbumDetailActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.ArtistDetailActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.MusicControllerActivity;
|
||||
|
||||
/**
|
||||
* Created by karim on 12.03.15.
|
||||
*/
|
||||
public class NavigationUtil {
|
||||
public static void goToArtist(final Activity activity, final int artistId, final Pair[] sharedViews) {
|
||||
if(activity instanceof ArtistDetailActivity){
|
||||
return;
|
||||
}
|
||||
if ((activity instanceof KabViewsDisableAble && ((KabViewsDisableAble) activity).areViewsEnabled()) || !(activity instanceof KabViewsDisableAble)) {
|
||||
if (activity instanceof KabViewsDisableAble)
|
||||
((KabViewsDisableAble) activity).disableViews();
|
||||
final Intent intent = new Intent(activity, ArtistDetailActivity.class);
|
||||
intent.putExtra(AppKeys.E_ARTIST, artistId);
|
||||
if (sharedViews != null) {
|
||||
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(activity,
|
||||
sharedViews
|
||||
);
|
||||
ActivityCompat.startActivity(activity, intent, optionsCompat.toBundle());
|
||||
} else {
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void goToAlbum(final Activity activity, final int albumId, final Pair[] sharedViews) {
|
||||
if(activity instanceof AlbumDetailActivity){
|
||||
return;
|
||||
}
|
||||
if ((activity instanceof KabViewsDisableAble && ((KabViewsDisableAble) activity).areViewsEnabled()) || !(activity instanceof KabViewsDisableAble)) {
|
||||
if (activity instanceof KabViewsDisableAble)
|
||||
((KabViewsDisableAble) activity).disableViews();
|
||||
final Intent intent = new Intent(activity, AlbumDetailActivity.class);
|
||||
intent.putExtra(AppKeys.E_ALBUM, albumId);
|
||||
if (sharedViews != null) {
|
||||
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(activity,
|
||||
sharedViews
|
||||
);
|
||||
ActivityCompat.startActivity(activity, intent, optionsCompat.toBundle());
|
||||
} else {
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean openCurrentPlayingIfPossible(final Activity activity, final Pair[] sharedViews) {
|
||||
if (activity instanceof MusicControllerActivity){
|
||||
return true;
|
||||
}
|
||||
if (MusicPlayerRemote.getPosition() != -1) {
|
||||
if ((activity instanceof KabViewsDisableAble && ((KabViewsDisableAble) activity).areViewsEnabled()) || !(activity instanceof KabViewsDisableAble)) {
|
||||
if (activity instanceof KabViewsDisableAble)
|
||||
((KabViewsDisableAble) activity).disableViews();
|
||||
Intent intent = new Intent(activity, MusicControllerActivity.class);
|
||||
if (sharedViews != null) {
|
||||
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(activity,
|
||||
sharedViews
|
||||
);
|
||||
ActivityCompat.startActivity(activity, intent, optionsCompat.toBundle());
|
||||
} else {
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(activity, activity.getResources().getString(R.string.nothing_playing), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,8 @@ package com.kabouzeid.gramophone.util;
|
|||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.TypedArray;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
|
|
@ -11,13 +13,22 @@ import android.net.NetworkInfo;
|
|||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.ActivityOptionsCompat;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.ui.activities.AlbumDetailActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.ArtistDetailActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.MusicControllerActivity;
|
||||
|
||||
/**
|
||||
* Created by karim on 12.12.14.
|
||||
|
|
@ -187,4 +198,12 @@ public class Util {
|
|||
public static boolean hasKitKatSDK() {
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
|
||||
}
|
||||
|
||||
public static boolean isTablet(final Context context) {
|
||||
return context.getResources().getConfiguration().smallestScreenWidthDp >= 600;
|
||||
}
|
||||
|
||||
public static boolean isInPortraitMode(final Context context) {
|
||||
return context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,51 +1,62 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
<FrameLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:padding="4dp">
|
||||
|
||||
<com.kabouzeid.gramophone.view.SquareImageView
|
||||
android:id="@+id/album_art"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:transitionName="@string/transition_album_cover"/>
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/footer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/materialmusic_default_bar_color"
|
||||
android:layout_height="match_parent"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp"
|
||||
android:transitionName="@string/transition_album_text">
|
||||
android:padding="4dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/album_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Title"
|
||||
android:textColor="?attr/title_text_color"
|
||||
android:textSize="16sp"
|
||||
tools:text="Album Title"/>
|
||||
<com.kabouzeid.gramophone.view.SquareImageView
|
||||
android:id="@+id/album_art"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:transitionName="@string/transition_album_cover"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/album_interpret"
|
||||
android:layout_width="wrap_content"
|
||||
<LinearLayout
|
||||
android:id="@+id/footer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
|
||||
android:textColor="?attr/caption_text_color"
|
||||
android:textSize="12sp"
|
||||
tools:text="Interpret"/>
|
||||
android:background="@color/materialmusic_default_bar_color"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp"
|
||||
android:transitionName="@string/transition_album_text">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/album_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif-medium"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Title"
|
||||
android:textColor="?attr/title_text_color"
|
||||
android:textSize="16sp"
|
||||
tools:text="Album Title"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/album_interpret"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
|
||||
android:textColor="?attr/caption_text_color"
|
||||
android:textSize="12sp"
|
||||
tools:text="Interpret"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
<View
|
||||
android:layout_margin="4dp"
|
||||
android:background="?rect_selector"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
</FrameLayout>
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@
|
|||
android:layout_height="match_parent"
|
||||
android:padding="2dp">
|
||||
|
||||
<GridView
|
||||
android:listSelector="?rect_selector"
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/absList"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:numColumns="@integer/grid_columns"
|
||||
android:padding="2dp"
|
||||
android:scrollbars="vertical"/>
|
||||
</LinearLayout>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,5 @@
|
|||
android:dividerHeight="0px"
|
||||
android:divider="@null"
|
||||
android:listSelector="?rect_selector"
|
||||
android:numColumns="@integer/grid_columns"
|
||||
android:scrollbars="vertical"/>
|
||||
</LinearLayout>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue