merged everything together correctly
This commit is contained in:
commit
70f33b4829
263 changed files with 2932 additions and 2411 deletions
|
|
@ -16,6 +16,7 @@ import android.view.View;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.github.ksoichiro.android.observablescrollview.ObservableRecyclerView;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
|
|
@ -28,7 +29,7 @@ import com.kabouzeid.gramophone.misc.AppKeys;
|
|||
import com.kabouzeid.gramophone.misc.SmallObservableScrollViewCallbacks;
|
||||
import com.kabouzeid.gramophone.model.Album;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.model.UiPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.AlbumTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
|
|
@ -41,7 +42,7 @@ import com.koushikdutta.ion.Ion;
|
|||
import com.nineoldandroids.view.ViewHelper;
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/*
|
||||
*
|
||||
|
|
@ -52,10 +53,8 @@ import java.util.List;
|
|||
* */
|
||||
|
||||
public class AlbumDetailActivity extends AbsFabActivity {
|
||||
|
||||
public static final String TAG = AlbumDetailActivity.class.getSimpleName();
|
||||
|
||||
private App app;
|
||||
|
||||
private Album album;
|
||||
|
||||
private ObservableRecyclerView recyclerView;
|
||||
|
|
@ -64,12 +63,11 @@ public class AlbumDetailActivity extends AbsFabActivity {
|
|||
private View songsBackgroundView;
|
||||
private TextView albumTitleView;
|
||||
private Toolbar toolbar;
|
||||
private int toolbarHeight;
|
||||
private int headerOffset;
|
||||
private int titleViewHeight;
|
||||
private int albumArtViewHeight;
|
||||
private int toolbarColor;
|
||||
private SmallObservableScrollViewCallbacks observableScrollViewCallbacks = new SmallObservableScrollViewCallbacks() {
|
||||
private final SmallObservableScrollViewCallbacks observableScrollViewCallbacks = new SmallObservableScrollViewCallbacks() {
|
||||
@Override
|
||||
public void onScrollChanged(int scrollY, boolean b, boolean b2) {
|
||||
scrollY += albumArtViewHeight + titleViewHeight;
|
||||
|
|
@ -111,7 +109,7 @@ public class AlbumDetailActivity extends AbsFabActivity {
|
|||
|
||||
if (Util.hasLollipopSDK()) postponeEnterTransition();
|
||||
if (Util.hasLollipopSDK() && PreferenceUtils.getInstance(this).coloredNavigationBarAlbumEnabled())
|
||||
getWindow().setNavigationBarColor(Util.resolveColor(this, R.attr.default_bar_color));
|
||||
getWindow().setNavigationBarColor(DialogUtils.resolveColor(this, R.attr.default_bar_color));
|
||||
|
||||
Bundle intentExtras = getIntent().getExtras();
|
||||
int albumId = -1;
|
||||
|
|
@ -145,8 +143,8 @@ public class AlbumDetailActivity extends AbsFabActivity {
|
|||
|
||||
private void setUpObservableListViewParams() {
|
||||
albumArtViewHeight = getResources().getDimensionPixelSize(R.dimen.header_image_height);
|
||||
toolbarColor = Util.resolveColor(this, R.attr.default_bar_color);
|
||||
toolbarHeight = Util.getActionBarSize(this);
|
||||
toolbarColor = DialogUtils.resolveColor(this, R.attr.default_bar_color);
|
||||
int toolbarHeight = Util.getActionBarSize(this);
|
||||
titleViewHeight = getResources().getDimensionPixelSize(R.dimen.title_view_height);
|
||||
headerOffset = toolbarHeight;
|
||||
headerOffset += getResources().getDimensionPixelSize(R.dimen.statusMargin);
|
||||
|
|
@ -235,7 +233,7 @@ public class AlbumDetailActivity extends AbsFabActivity {
|
|||
}
|
||||
|
||||
private void setUpSongsAdapter() {
|
||||
final List<Song> songs = AlbumSongLoader.getAlbumSongList(this, album.id, new SongTrackNumberComparator());
|
||||
final ArrayList<Song> songs = AlbumSongLoader.getAlbumSongList(this, album.id, new SongTrackNumberComparator());
|
||||
final AlbumSongAdapter albumSongAdapter = new AlbumSongAdapter(this, songs);
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(this, 1));
|
||||
recyclerView.setAdapter(albumSongAdapter);
|
||||
|
|
@ -289,8 +287,7 @@ public class AlbumDetailActivity extends AbsFabActivity {
|
|||
startActivity(intent);
|
||||
return true;
|
||||
case R.id.action_go_to_artist:
|
||||
Pair[] artistPairs = null;
|
||||
artistPairs = getSharedViewsWithFab(artistPairs);
|
||||
Pair[] artistPairs = getSharedViewsWithFab(null);
|
||||
NavigationUtil.goToArtist(this, album.artistId, artistPairs);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -298,9 +295,9 @@ public class AlbumDetailActivity extends AbsFabActivity {
|
|||
}
|
||||
|
||||
@Subscribe
|
||||
public void onUIPreferenceChanged(UiPreferenceChangedEvent event) {
|
||||
public void onUIPreferenceChanged(UIPreferenceChangedEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case UiPreferenceChangedEvent.COLORED_NAVIGATION_BAR_ALBUM_CHANGED:
|
||||
case UIPreferenceChangedEvent.COLORED_NAVIGATION_BAR_ALBUM_CHANGED:
|
||||
setNavigationBarColored((boolean) event.getValue());
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import android.widget.TextView;
|
|||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.github.ksoichiro.android.observablescrollview.ObservableListView;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
|
|
@ -38,7 +39,7 @@ import com.kabouzeid.gramophone.misc.SmallObservableScrollViewCallbacks;
|
|||
import com.kabouzeid.gramophone.model.Album;
|
||||
import com.kabouzeid.gramophone.model.Artist;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.model.UiPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtils;
|
||||
|
|
@ -49,6 +50,7 @@ import com.koushikdutta.ion.Ion;
|
|||
import com.nineoldandroids.view.ViewHelper;
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/*
|
||||
|
|
@ -73,7 +75,6 @@ public class ArtistDetailActivity extends AbsFabActivity {
|
|||
private View songsBackgroundView;
|
||||
private TextView artistNameTv;
|
||||
private Toolbar toolbar;
|
||||
private int toolbarHeight;
|
||||
private int headerOffset;
|
||||
private int titleViewHeight;
|
||||
private int artistImageViewHeight;
|
||||
|
|
@ -84,7 +85,7 @@ public class ArtistDetailActivity extends AbsFabActivity {
|
|||
|
||||
private Spanned biography;
|
||||
|
||||
private SmallObservableScrollViewCallbacks observableScrollViewCallbacks = new SmallObservableScrollViewCallbacks() {
|
||||
private final SmallObservableScrollViewCallbacks observableScrollViewCallbacks = new SmallObservableScrollViewCallbacks() {
|
||||
@Override
|
||||
public void onScrollChanged(int scrollY, boolean b, boolean b2) {
|
||||
scrollY += artistImageViewHeight + titleViewHeight;
|
||||
|
|
@ -127,7 +128,7 @@ public class ArtistDetailActivity extends AbsFabActivity {
|
|||
|
||||
if (Util.hasLollipopSDK()) postponeEnterTransition();
|
||||
if (Util.hasLollipopSDK() && PreferenceUtils.getInstance(this).coloredNavigationBarArtistEnabled())
|
||||
getWindow().setNavigationBarColor(Util.resolveColor(this, R.attr.default_bar_color));
|
||||
getWindow().setNavigationBarColor(DialogUtils.resolveColor(this, R.attr.default_bar_color));
|
||||
|
||||
getIntentExtras();
|
||||
initViews();
|
||||
|
|
@ -153,8 +154,8 @@ public class ArtistDetailActivity extends AbsFabActivity {
|
|||
|
||||
private void setUpObservableListViewParams() {
|
||||
artistImageViewHeight = getResources().getDimensionPixelSize(R.dimen.header_image_height);
|
||||
toolbarColor = Util.resolveColor(this, R.attr.default_bar_color);
|
||||
toolbarHeight = Util.getActionBarSize(this);
|
||||
toolbarColor = DialogUtils.resolveColor(this, R.attr.default_bar_color);
|
||||
int toolbarHeight = Util.getActionBarSize(this);
|
||||
titleViewHeight = getResources().getDimensionPixelSize(R.dimen.title_view_height);
|
||||
headerOffset = toolbarHeight;
|
||||
headerOffset += getResources().getDimensionPixelSize(R.dimen.statusMargin);
|
||||
|
|
@ -193,7 +194,7 @@ public class ArtistDetailActivity extends AbsFabActivity {
|
|||
songListView.setPadding(0, artistImageViewHeight + titleViewHeight, 0, 0);
|
||||
songListView.addHeaderView(songListHeader);
|
||||
|
||||
final List<Song> songs = ArtistSongLoader.getArtistSongList(this, artist.id);
|
||||
final ArrayList<Song> songs = ArtistSongLoader.getArtistSongList(this, artist.id);
|
||||
ArtistSongAdapter songAdapter = new ArtistSongAdapter(this, songs);
|
||||
songListView.setAdapter(songAdapter);
|
||||
|
||||
|
|
@ -242,6 +243,7 @@ public class ArtistDetailActivity extends AbsFabActivity {
|
|||
return new MaterialDialog.Builder(ArtistDetailActivity.this)
|
||||
.title(artist.name)
|
||||
.content(biography)
|
||||
.positiveText(android.R.string.ok)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
|
@ -297,15 +299,15 @@ public class ArtistDetailActivity extends AbsFabActivity {
|
|||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
private void resetColors() {
|
||||
int titleTextColor = Util.resolveColor(this, R.attr.title_text_color);
|
||||
int defaultBarColor = Util.resolveColor(this, R.attr.default_bar_color);
|
||||
int titleTextColor = DialogUtils.resolveColor(this, R.attr.title_text_color);
|
||||
int defaultBarColor = DialogUtils.resolveColor(this, R.attr.default_bar_color);
|
||||
|
||||
toolbarColor = defaultBarColor;
|
||||
artistNameTv.setBackgroundColor(defaultBarColor);
|
||||
artistNameTv.setTextColor(titleTextColor);
|
||||
|
||||
if (Util.hasLollipopSDK() && PreferenceUtils.getInstance(this).coloredNavigationBarArtistEnabled())
|
||||
getWindow().setNavigationBarColor(Util.resolveColor(this, R.attr.default_bar_color));
|
||||
getWindow().setNavigationBarColor(DialogUtils.resolveColor(this, R.attr.default_bar_color));
|
||||
}
|
||||
|
||||
private void setUpToolBar() {
|
||||
|
|
@ -411,9 +413,9 @@ public class ArtistDetailActivity extends AbsFabActivity {
|
|||
}
|
||||
|
||||
@Subscribe
|
||||
public void onUIPreferenceChanged(UiPreferenceChangedEvent event) {
|
||||
public void onUIPreferenceChanged(UIPreferenceChangedEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case UiPreferenceChangedEvent.COLORED_NAVIGATION_BAR_ARTIST_CHANGED:
|
||||
case UIPreferenceChangedEvent.COLORED_NAVIGATION_BAR_ARTIST_CHANGED:
|
||||
setNavigationBarColored((boolean) event.getValue());
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import android.content.Intent;
|
|||
import android.content.res.Configuration;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.support.v4.view.ViewPager;
|
||||
|
|
@ -17,11 +18,12 @@ import android.view.MenuItem;
|
|||
import android.view.SubMenu;
|
||||
import android.view.View;
|
||||
|
||||
import com.afollestad.materialdialogs.ThemeSingleton;
|
||||
import com.astuetz.PagerSlidingTabStrip;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.PagerAdapter;
|
||||
import com.kabouzeid.gramophone.helper.AboutDeveloperDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.CreatePlaylistDialogHelper;
|
||||
import com.kabouzeid.gramophone.dialogs.AboutDialog;
|
||||
import com.kabouzeid.gramophone.dialogs.CreatePlaylistDialog;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble;
|
||||
import com.kabouzeid.gramophone.loader.AlbumSongLoader;
|
||||
|
|
@ -29,7 +31,7 @@ import com.kabouzeid.gramophone.loader.ArtistSongLoader;
|
|||
import com.kabouzeid.gramophone.loader.PlaylistSongLoader;
|
||||
import com.kabouzeid.gramophone.model.MusicRemoteEvent;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.model.UiPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.fragments.NavigationDrawerFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.AbsMainActivityFragment;
|
||||
|
|
@ -44,6 +46,7 @@ import com.kabouzeid.gramophone.util.Util;
|
|||
import com.kabouzeid.gramophone.util.ViewUtil;
|
||||
import com.koushikdutta.ion.Ion;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
|
|
@ -95,8 +98,7 @@ public class MainActivity extends AbsFabActivity
|
|||
|
||||
navigationDrawerFragment.setItemChecked(startPosition);
|
||||
|
||||
final int accentColor = Util.resolveColor(MainActivity.this, R.attr.colorAccent);
|
||||
slidingTabLayout.setIndicatorColor(accentColor);
|
||||
slidingTabLayout.setIndicatorColor(ThemeSingleton.get().positiveColor);
|
||||
slidingTabLayout.setViewPager(viewPager);
|
||||
|
||||
slidingTabLayout.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
|
|
@ -137,7 +139,7 @@ public class MainActivity extends AbsFabActivity
|
|||
|
||||
private void setToolBarTransparent(boolean transparent) {
|
||||
float alpha = transparent ? 0.97f : 1f;
|
||||
final int colorPrimary = Util.resolveColor(this, R.attr.colorPrimary);
|
||||
final int colorPrimary = PreferenceUtils.getInstance(this).getThemeColorPrimary();
|
||||
ViewUtil.setBackgroundAlpha(toolbar, alpha, colorPrimary);
|
||||
ViewUtil.setBackgroundAlpha(statusBar, alpha, colorPrimary);
|
||||
ViewUtil.setBackgroundAlpha(slidingTabLayout, alpha, colorPrimary);
|
||||
|
|
@ -223,6 +225,22 @@ public class MainActivity extends AbsFabActivity
|
|||
getResources().getString(R.string.transition_album_cover)
|
||||
)
|
||||
}));
|
||||
} else if (position == NavigationDrawerFragment.ABOUT_INDEX) {
|
||||
drawerLayout.closeDrawers();
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
new AboutDialog().show(getSupportFragmentManager(), "ABOUT_DIALOG");
|
||||
}
|
||||
}, 200);
|
||||
} else if (position == NavigationDrawerFragment.SETTINGS_INDEX) {
|
||||
drawerLayout.closeDrawers();
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
startActivity(new Intent(MainActivity.this, SettingsActivity.class));
|
||||
}
|
||||
}, 200);
|
||||
} else {
|
||||
if (viewPager != null) {
|
||||
viewPager.setCurrentItem(position, true);
|
||||
|
|
@ -268,17 +286,11 @@ public class MainActivity extends AbsFabActivity
|
|||
MusicPlayerRemote.shuffleAllSongs(this);
|
||||
return true;
|
||||
case R.id.action_new_playlist:
|
||||
CreatePlaylistDialogHelper.getDialog(this).show();
|
||||
CreatePlaylistDialog.create().show(getSupportFragmentManager(), "CREATE_PLAYLIST");
|
||||
return true;
|
||||
case R.id.action_search:
|
||||
startActivity(new Intent(MainActivity.this, SearchActivity.class));
|
||||
return true;
|
||||
case R.id.action_settings:
|
||||
startActivity(new Intent(MainActivity.this, SettingsActivity.class));
|
||||
return true;
|
||||
case R.id.action_about:
|
||||
AboutDeveloperDialogHelper.getDialog(this).show();
|
||||
return true;
|
||||
case R.id.action_current_playing:
|
||||
NavigationUtil.openCurrentPlayingIfPossible(this, getSharedViewsWithFab(null));
|
||||
return true;
|
||||
|
|
@ -296,10 +308,10 @@ public class MainActivity extends AbsFabActivity
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onUIPreferenceChangedEvent(UiPreferenceChangedEvent event) {
|
||||
public void onUIPreferenceChangedEvent(UIPreferenceChangedEvent event) {
|
||||
super.onUIPreferenceChangedEvent(event);
|
||||
switch (event.getAction()) {
|
||||
case UiPreferenceChangedEvent.TOOLBAR_TRANSPARENT_CHANGED:
|
||||
case UIPreferenceChangedEvent.TOOLBAR_TRANSPARENT_CHANGED:
|
||||
setToolBarTransparent((boolean) event.getValue());
|
||||
break;
|
||||
}
|
||||
|
|
@ -320,9 +332,9 @@ public class MainActivity extends AbsFabActivity
|
|||
PreferenceUtils.getInstance(MainActivity.this).setLastStartPage(currentPage);
|
||||
}
|
||||
|
||||
private boolean handlePlaybackIntent(Intent intent) {
|
||||
private void handlePlaybackIntent(Intent intent) {
|
||||
if (intent == null) {
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
|
||||
Uri uri = intent.getData();
|
||||
|
|
@ -336,7 +348,8 @@ public class MainActivity extends AbsFabActivity
|
|||
final int id = (int) parseIdFromIntent(intent, "playlistId", "playlist");
|
||||
if (id >= 0) {
|
||||
int position = intent.getIntExtra("position", 0);
|
||||
MusicPlayerRemote.openQueue((List<Song>) (List<? extends Song>) PlaylistSongLoader.getPlaylistSongList(this, id), position, true);
|
||||
//noinspection unchecked
|
||||
MusicPlayerRemote.openQueue((ArrayList<Song>) (List<? extends Song>) PlaylistSongLoader.getPlaylistSongList(this, id), position, true);
|
||||
handled = true;
|
||||
}
|
||||
} else if (MediaStore.Audio.Albums.CONTENT_TYPE.equals(mimeType)) {
|
||||
|
|
@ -357,7 +370,6 @@ public class MainActivity extends AbsFabActivity
|
|||
if (handled) {
|
||||
setIntent(new Intent());
|
||||
}
|
||||
return handled;
|
||||
}
|
||||
|
||||
private long parseIdFromIntent(Intent intent, String longKey,
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import android.os.Build;
|
|||
import android.os.Bundle;
|
||||
import android.support.v7.graphics.Palette;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
|
@ -19,17 +18,20 @@ import android.widget.SeekBar;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.ThemeSingleton;
|
||||
import com.afollestad.materialdialogs.internal.MDTintHelper;
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.AddToPlaylistDialogHelper;
|
||||
import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
|
||||
import com.kabouzeid.gramophone.dialogs.SongDetailDialog;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
||||
import com.kabouzeid.gramophone.lastfm.artist.LastFMArtistImageUrlLoader;
|
||||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.MusicRemoteEvent;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.model.UiPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.service.MusicService;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
|
|
@ -65,9 +67,7 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
private ImageButton repeatButton;
|
||||
private ImageButton shuffleButton;
|
||||
private View mediaControllerContainer;
|
||||
|
||||
private int lastFooterColor = -1;
|
||||
|
||||
private boolean killThreads = false;
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
|
|
@ -128,11 +128,13 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
if (Util.hasLollipopSDK()) {
|
||||
mediaControllerContainer.setElevation(getResources().getDimensionPixelSize(R.dimen.cardview_default_elevation));
|
||||
}
|
||||
mediaControllerContainer.setBackgroundColor(Util.resolveColor(this, R.attr.music_controller_container_color));
|
||||
mediaControllerContainer.setBackgroundColor(
|
||||
DialogUtils.resolveColor(this, R.attr.music_controller_container_color));
|
||||
} else {
|
||||
if (Util.hasLollipopSDK() && !Util.isInPortraitMode(this)) {
|
||||
mediaControllerContainer.setElevation(getResources().getDimensionPixelSize(R.dimen.cardview_default_elevation));
|
||||
mediaControllerContainer.setBackgroundColor(Util.resolveColor(this, R.attr.music_controller_container_color));
|
||||
mediaControllerContainer.setBackgroundColor(
|
||||
DialogUtils.resolveColor(this, R.attr.music_controller_container_color));
|
||||
} else {
|
||||
mediaControllerContainer.setBackground(null);
|
||||
}
|
||||
|
|
@ -140,6 +142,7 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
}
|
||||
|
||||
private void setUpProgressSlider() {
|
||||
MDTintHelper.setTint(progressSlider, ThemeSingleton.get().positiveColor);
|
||||
progressSlider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
||||
@Override
|
||||
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||
|
|
@ -159,8 +162,10 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
}
|
||||
|
||||
private void setUpPrevNext() {
|
||||
nextButton.setImageDrawable(Util.getTintedDrawable(getResources(), R.drawable.ic_skip_next_white_48dp, Util.resolveColor(this, R.attr.themed_drawable_color)));
|
||||
prevButton.setImageDrawable(Util.getTintedDrawable(getResources(), R.drawable.ic_skip_previous_white_48dp, Util.resolveColor(this, R.attr.themed_drawable_color)));
|
||||
nextButton.setImageDrawable(Util.getTintedDrawable(this,
|
||||
R.drawable.ic_skip_next_white_48dp, DialogUtils.resolveColor(this, R.attr.themed_drawable_color)));
|
||||
prevButton.setImageDrawable(Util.getTintedDrawable(this,
|
||||
R.drawable.ic_skip_previous_white_48dp, DialogUtils.resolveColor(this, R.attr.themed_drawable_color)));
|
||||
nextButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
|
@ -188,10 +193,12 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
private void updateShuffleState() {
|
||||
switch (MusicPlayerRemote.getShuffleMode()) {
|
||||
case MusicService.SHUFFLE_MODE_SHUFFLE:
|
||||
shuffleButton.setImageDrawable(Util.getTintedDrawable(getResources(), R.drawable.ic_shuffle_white_48dp, Util.resolveColor(this, R.attr.themed_drawable_activated_color)));
|
||||
shuffleButton.setImageDrawable(Util.getTintedDrawable(this, R.drawable.ic_shuffle_white_48dp,
|
||||
ThemeSingleton.get().positiveColor));
|
||||
break;
|
||||
default:
|
||||
shuffleButton.setImageDrawable(Util.getTintedDrawable(getResources(), R.drawable.ic_shuffle_white_48dp, Util.resolveColor(this, R.attr.themed_drawable_color)));
|
||||
shuffleButton.setImageDrawable(Util.getTintedDrawable(this, R.drawable.ic_shuffle_white_48dp,
|
||||
DialogUtils.resolveColor(this, R.attr.themed_drawable_color)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -209,13 +216,16 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
private void updateRepeatState() {
|
||||
switch (MusicPlayerRemote.getRepeatMode()) {
|
||||
case MusicService.REPEAT_MODE_NONE:
|
||||
repeatButton.setImageDrawable(Util.getTintedDrawable(getResources(), R.drawable.ic_repeat_white_48dp, Util.resolveColor(this, R.attr.themed_drawable_color)));
|
||||
repeatButton.setImageDrawable(Util.getTintedDrawable(this, R.drawable.ic_repeat_white_48dp,
|
||||
DialogUtils.resolveColor(this, R.attr.themed_drawable_color)));
|
||||
break;
|
||||
case MusicService.REPEAT_MODE_ALL:
|
||||
repeatButton.setImageDrawable(Util.getTintedDrawable(getResources(), R.drawable.ic_repeat_white_48dp, Util.resolveColor(this, R.attr.themed_drawable_activated_color)));
|
||||
repeatButton.setImageDrawable(Util.getTintedDrawable(this, R.drawable.ic_repeat_white_48dp,
|
||||
ThemeSingleton.get().positiveColor));
|
||||
break;
|
||||
default:
|
||||
repeatButton.setImageDrawable(Util.getTintedDrawable(getResources(), R.drawable.ic_repeat_one_white_48dp, Util.resolveColor(this, R.attr.themed_drawable_activated_color)));
|
||||
repeatButton.setImageDrawable(Util.getTintedDrawable(this, R.drawable.ic_repeat_one_white_48dp,
|
||||
ThemeSingleton.get().positiveColor));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -301,9 +311,9 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
}
|
||||
|
||||
private void resetColors() {
|
||||
int songTitleTextColor = Util.resolveColor(this, R.attr.title_text_color);
|
||||
int artistNameTextColor = Util.resolveColor(this, R.attr.caption_text_color);
|
||||
int defaultBarColor = Util.resolveColor(this, R.attr.default_bar_color);
|
||||
int songTitleTextColor = DialogUtils.resolveColor(this, R.attr.title_text_color);
|
||||
int artistNameTextColor = DialogUtils.resolveColor(this, R.attr.caption_text_color);
|
||||
int defaultBarColor = DialogUtils.resolveColor(this, R.attr.default_bar_color);
|
||||
|
||||
animateColorChange(defaultBarColor);
|
||||
|
||||
|
|
@ -358,7 +368,8 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
Thread.sleep(1);
|
||||
} catch (InterruptedException e) {
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
} catch (Exception e2) {
|
||||
e2.printStackTrace();
|
||||
}
|
||||
final int finalTotal = total;
|
||||
final int finalCurrentPosition = currentPosition;
|
||||
|
|
@ -432,7 +443,7 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
Toast.makeText(this, "This feature is not available yet", Toast.LENGTH_SHORT).show();
|
||||
return true;
|
||||
case R.id.action_add_to_playlist:
|
||||
AddToPlaylistDialogHelper.getDialog(this, song).show();
|
||||
AddToPlaylistDialog.create(song).show(getSupportFragmentManager(), "ADD_PLAYLIST");
|
||||
return true;
|
||||
case android.R.id.home:
|
||||
super.onBackPressed();
|
||||
|
|
@ -448,7 +459,7 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
case R.id.action_details:
|
||||
String songFilePath = SongFilePathLoader.getSongFilePath(this, song.id);
|
||||
File songFile = new File(songFilePath);
|
||||
SongDetailDialogHelper.getDialog(this, songFile).show();
|
||||
SongDetailDialog.create(songFile).show(getSupportFragmentManager(), "SONG_DETAIL");
|
||||
return true;
|
||||
case R.id.action_go_to_album:
|
||||
NavigationUtil.goToAlbum(this, song.albumId, getSharedViewsWithFab(null));
|
||||
|
|
@ -472,9 +483,9 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
}
|
||||
|
||||
@Subscribe
|
||||
public void onUIPrefsChanged(UiPreferenceChangedEvent event) {
|
||||
public void onUIPrefsChanged(UIPreferenceChangedEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case UiPreferenceChangedEvent.PLAYBACK_CONTROLLER_CARD_CHANGED:
|
||||
case UIPreferenceChangedEvent.PLAYBACK_CONTROLLER_CARD_CHANGED:
|
||||
setUpBox((boolean) event.getValue());
|
||||
break;
|
||||
}
|
||||
|
|
@ -485,4 +496,4 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
super.onDestroy();
|
||||
App.bus.unregister(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
package com.kabouzeid.gramophone.ui.activities;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.GridLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
|
|
@ -18,25 +20,34 @@ import com.kabouzeid.gramophone.model.PlaylistSong;
|
|||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.PlaylistsUtil;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtils;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class PlaylistDetailActivity extends AbsFabActivity {
|
||||
|
||||
public static final String TAG = PlaylistDetailActivity.class.getSimpleName();
|
||||
private RecyclerView recyclerView;
|
||||
private Playlist playlist;
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
setUpTranslucence(false, false);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_playlist_detail);
|
||||
|
||||
getIntentExtras();
|
||||
setUpToolBar();
|
||||
final int primary = PreferenceUtils.getInstance(this).getThemeColorPrimary();
|
||||
final int primaryDark = PreferenceUtils.getInstance(this).getThemeColorPrimaryDarker();
|
||||
if (Util.hasLollipopSDK()) {
|
||||
getWindow().setStatusBarColor(primaryDark);
|
||||
getWindow().setNavigationBarColor(primaryDark);
|
||||
}
|
||||
|
||||
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
|
||||
final List<PlaylistSong> songs = PlaylistSongLoader.getPlaylistSongList(this, playlist.id);
|
||||
getIntentExtras();
|
||||
|
||||
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
|
||||
final ArrayList<PlaylistSong> songs = PlaylistSongLoader.getPlaylistSongList(this, playlist.id);
|
||||
final PlaylistSongAdapter adapter = new PlaylistSongAdapter(this, songs);
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(this, 1));
|
||||
recyclerView.setAdapter(adapter);
|
||||
|
|
@ -57,6 +68,12 @@ public class PlaylistDetailActivity extends AbsFabActivity {
|
|||
recyclerView.addItemDecoration(dragSortRecycler);
|
||||
recyclerView.addOnItemTouchListener(dragSortRecycler);
|
||||
recyclerView.setOnScrollListener(dragSortRecycler.getScrollListener());
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setBackgroundColor(primary);
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setTitle(playlist.name);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
private void getIntentExtras() {
|
||||
|
|
@ -68,12 +85,6 @@ public class PlaylistDetailActivity extends AbsFabActivity {
|
|||
}
|
||||
}
|
||||
|
||||
private void setUpToolBar() {
|
||||
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
|
||||
getSupportActionBar().setTitle(playlist.name);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTag() {
|
||||
return TAG;
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ 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.PreferenceUtils;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -48,9 +49,11 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_search);
|
||||
|
||||
final int primary = PreferenceUtils.getInstance(this).getThemeColorPrimary();
|
||||
final int primaryDark = PreferenceUtils.getInstance(this).getThemeColorPrimaryDarker();
|
||||
if (Util.hasLollipopSDK()) {
|
||||
getWindow().setStatusBarColor(Util.resolveColor(this, R.attr.colorPrimaryDark));
|
||||
getWindow().setNavigationBarColor(Util.resolveColor(this, R.attr.colorPrimaryDark));
|
||||
getWindow().setStatusBarColor(primaryDark);
|
||||
getWindow().setNavigationBarColor(primaryDark);
|
||||
}
|
||||
|
||||
listView = (ListView) findViewById(R.id.list);
|
||||
|
|
@ -60,7 +63,7 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
Object item = parent.getItemAtPosition(position);
|
||||
if (item instanceof SearchEntry) {
|
||||
if (item instanceof Song) {
|
||||
List<Song> playList = new ArrayList<>();
|
||||
ArrayList<Song> playList = new ArrayList<>();
|
||||
playList.add((Song) item);
|
||||
MusicPlayerRemote.openQueue(playList, 0, true);
|
||||
} else if (item instanceof Album) {
|
||||
|
|
@ -95,7 +98,9 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
}
|
||||
});
|
||||
|
||||
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setBackgroundColor(primary);
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
|
|
@ -164,10 +169,7 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
if (id == R.id.action_settings) {
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
return id == R.id.action_settings || super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void search(String query) {
|
||||
|
|
@ -201,7 +203,7 @@ public class SearchActivity extends AbsBaseActivity {
|
|||
|
||||
|
||||
public static class LabelEntry implements SearchEntry {
|
||||
String title;
|
||||
final String title;
|
||||
String label;
|
||||
|
||||
public LabelEntry(String label) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import android.content.Intent;
|
|||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.media.audiofx.AudioEffect;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
|
|
@ -12,23 +13,46 @@ import android.preference.PreferenceManager;
|
|||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.model.UiPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.dialogs.ColorChooserDialog;
|
||||
import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.prefs.ColorChooserPreference;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtils;
|
||||
|
||||
public class SettingsActivity extends AbsBaseActivity {
|
||||
public class SettingsActivity extends AbsBaseActivity implements ColorChooserDialog.ColorCallback {
|
||||
public static final String TAG = SettingsActivity.class.getSimpleName();
|
||||
|
||||
private Toolbar mToolbar;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_preferences);
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
mToolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
mToolbar.setBackgroundColor(PreferenceUtils.getInstance(this).getThemeColorPrimary());
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
|
||||
getWindow().setStatusBarColor(PreferenceUtils.getInstance(this).getThemeColorPrimaryDarker());
|
||||
setSupportActionBar(mToolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
getFragmentManager().beginTransaction().replace(R.id.content_frame, new SettingsFragment()).commit();
|
||||
|
||||
if (savedInstanceState == null)
|
||||
getFragmentManager().beginTransaction().replace(R.id.content_frame, new SettingsFragment()).commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onColorSelection(int title, int color) {
|
||||
if (title == R.string.primary_color) {
|
||||
PreferenceUtils.getInstance(this).setThemeColorPrimary(color);
|
||||
App.bus.post(new UIPreferenceChangedEvent(UIPreferenceChangedEvent.THEME_CHANGED, color));
|
||||
} else if (title == R.string.accent_color) {
|
||||
PreferenceUtils.getInstance(this).setThemeColorAccent(color);
|
||||
App.bus.post(new UIPreferenceChangedEvent(UIPreferenceChangedEvent.THEME_CHANGED, color));
|
||||
}
|
||||
recreate();
|
||||
}
|
||||
|
||||
public static class SettingsFragment extends PreferenceFragment {
|
||||
|
|
@ -57,7 +81,31 @@ public class SettingsActivity extends AbsBaseActivity {
|
|||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object o) {
|
||||
setSummary(generalTheme, o);
|
||||
App.bus.post(new UiPreferenceChangedEvent(UiPreferenceChangedEvent.THEME_CHANGED, o));
|
||||
App.bus.post(new UIPreferenceChangedEvent(UIPreferenceChangedEvent.THEME_CHANGED, o));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
ColorChooserPreference primaryColor = (ColorChooserPreference) findPreference("primary_color");
|
||||
primaryColor.setColor(PreferenceUtils.getInstance(getActivity()).getThemeColorPrimary(),
|
||||
DialogUtils.resolveColor(getActivity(), android.R.attr.textColorPrimary));
|
||||
primaryColor.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
new ColorChooserDialog().show(getActivity(), preference.getTitleRes(),
|
||||
PreferenceUtils.getInstance(getActivity()).getThemeColorPrimary());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
ColorChooserPreference accentColor = (ColorChooserPreference) findPreference("accent_color");
|
||||
accentColor.setColor(PreferenceUtils.getInstance(getActivity()).getThemeColorAccent(),
|
||||
DialogUtils.resolveColor(getActivity(), android.R.attr.textColorPrimary));
|
||||
accentColor.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
new ColorChooserDialog().show(getActivity(), preference.getTitleRes(),
|
||||
PreferenceUtils.getInstance(getActivity()).getThemeColorAccent());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
|
@ -65,7 +113,7 @@ public class SettingsActivity extends AbsBaseActivity {
|
|||
findPreference("transparent_toolbar").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object o) {
|
||||
App.bus.post(new UiPreferenceChangedEvent(UiPreferenceChangedEvent.TOOLBAR_TRANSPARENT_CHANGED, o));
|
||||
App.bus.post(new UIPreferenceChangedEvent(UIPreferenceChangedEvent.TOOLBAR_TRANSPARENT_CHANGED, o));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
|
@ -73,7 +121,7 @@ public class SettingsActivity extends AbsBaseActivity {
|
|||
findPreference("colored_album_footers").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object o) {
|
||||
App.bus.post(new UiPreferenceChangedEvent(UiPreferenceChangedEvent.ALBUM_OVERVIEW_PALETTE_CHANGED, o));
|
||||
App.bus.post(new UIPreferenceChangedEvent(UIPreferenceChangedEvent.ALBUM_OVERVIEW_PALETTE_CHANGED, o));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
|
@ -81,7 +129,7 @@ public class SettingsActivity extends AbsBaseActivity {
|
|||
findPreference("colored_navigation_bar_artist").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object o) {
|
||||
App.bus.post(new UiPreferenceChangedEvent(UiPreferenceChangedEvent.COLORED_NAVIGATION_BAR_ARTIST_CHANGED, o));
|
||||
App.bus.post(new UIPreferenceChangedEvent(UIPreferenceChangedEvent.COLORED_NAVIGATION_BAR_ARTIST_CHANGED, o));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
|
@ -89,7 +137,7 @@ public class SettingsActivity extends AbsBaseActivity {
|
|||
findPreference("colored_navigation_bar_album").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object o) {
|
||||
App.bus.post(new UiPreferenceChangedEvent(UiPreferenceChangedEvent.COLORED_NAVIGATION_BAR_ALBUM_CHANGED, o));
|
||||
App.bus.post(new UIPreferenceChangedEvent(UIPreferenceChangedEvent.COLORED_NAVIGATION_BAR_ALBUM_CHANGED, o));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
|
@ -97,7 +145,7 @@ public class SettingsActivity extends AbsBaseActivity {
|
|||
findPreference("playback_controller_card").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object o) {
|
||||
App.bus.post(new UiPreferenceChangedEvent(UiPreferenceChangedEvent.PLAYBACK_CONTROLLER_CARD_CHANGED, o));
|
||||
App.bus.post(new UIPreferenceChangedEvent(UIPreferenceChangedEvent.PLAYBACK_CONTROLLER_CARD_CHANGED, o));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -3,26 +3,24 @@ package com.kabouzeid.gramophone.ui.activities.base;
|
|||
import android.annotation.TargetApi;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
|
||||
import com.crashlytics.android.Crashlytics;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.UiPreferenceChangedEvent;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtils;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
import com.kabouzeid.gramophone.model.UIPreferenceChangedEvent;
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
||||
/**
|
||||
* Created by karim on 20.01.15.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public abstract class AbsBaseActivity extends ActionBarActivity implements KabViewsDisableAble {
|
||||
public abstract class AbsBaseActivity extends ThemeBaseActivity implements KabViewsDisableAble {
|
||||
|
||||
private App app;
|
||||
private boolean areViewsEnabled;
|
||||
private Object uiPreferenceChangeListener = new Object() {
|
||||
private final Object uiPreferenceChangeListener = new Object() {
|
||||
@Subscribe
|
||||
public void onUIPreferenceChangedEvent(UiPreferenceChangedEvent event) {
|
||||
public void onUIPreferenceChangedEvent(UIPreferenceChangedEvent event) {
|
||||
AbsBaseActivity.this.onUIPreferenceChangedEvent(event);
|
||||
}
|
||||
};
|
||||
|
|
@ -30,7 +28,6 @@ public abstract class AbsBaseActivity extends ActionBarActivity implements KabVi
|
|||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
Crashlytics.setString(AppKeys.CL_CURRENT_ACTIVITY, getTag());
|
||||
setTheme(PreferenceUtils.getInstance(this).getGeneralTheme());
|
||||
super.onCreate(savedInstanceState);
|
||||
try {
|
||||
App.bus.register(uiPreferenceChangeListener);
|
||||
|
|
@ -45,7 +42,7 @@ public abstract class AbsBaseActivity extends ActionBarActivity implements KabVi
|
|||
return app;
|
||||
}
|
||||
|
||||
public abstract String getTag();
|
||||
protected abstract String getTag();
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
|
|
@ -53,15 +50,6 @@ public abstract class AbsBaseActivity extends ActionBarActivity implements KabVi
|
|||
enableViews();
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
public void onUIPreferenceChangedEvent(UiPreferenceChangedEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case UiPreferenceChangedEvent.THEME_CHANGED:
|
||||
recreate();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enableViews() {
|
||||
areViewsEnabled = true;
|
||||
|
|
@ -77,14 +65,12 @@ public abstract class AbsBaseActivity extends ActionBarActivity implements KabVi
|
|||
return areViewsEnabled;
|
||||
}
|
||||
|
||||
protected void setUpTranslucence(boolean statusBarTranslucent, boolean navigationBarTranslucent) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
Util.setStatusBarTranslucent(getWindow(), statusBarTranslucent);
|
||||
if (Util.isInPortraitMode(this) || Util.isTablet(this)) {
|
||||
Util.setNavBarTranslucent(getWindow(), navigationBarTranslucent);
|
||||
} else {
|
||||
Util.setNavBarTranslucent(getWindow(), false);
|
||||
}
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
protected void onUIPreferenceChangedEvent(UIPreferenceChangedEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case UIPreferenceChangedEvent.THEME_CHANGED:
|
||||
recreate();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package com.kabouzeid.gramophone.ui.activities.base;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.util.Log;
|
||||
|
|
@ -8,8 +10,10 @@ import android.view.MotionEvent;
|
|||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.ThemeSingleton;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.dialogs.ColorChooserDialog;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.misc.SmallOnGestureListener;
|
||||
import com.kabouzeid.gramophone.model.MusicRemoteEvent;
|
||||
|
|
@ -19,14 +23,14 @@ import com.melnykov.fab.FloatingActionButton;
|
|||
import com.squareup.otto.Subscribe;
|
||||
|
||||
/**
|
||||
* Created by karim on 22.01.15.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public abstract class AbsFabActivity extends AbsBaseActivity {
|
||||
public static final String TAG = AbsFabActivity.class.getSimpleName();
|
||||
|
||||
private FloatingActionButton fab;
|
||||
private PlayPauseDrawable playPauseDrawable;
|
||||
private Object busEventListener = new Object() {
|
||||
private final Object busEventListener = new Object() {
|
||||
@Subscribe
|
||||
public void onBusEvent(MusicRemoteEvent event) {
|
||||
onMusicRemoteEvent(event);
|
||||
|
|
@ -49,6 +53,17 @@ public abstract class AbsFabActivity extends AbsBaseActivity {
|
|||
}
|
||||
|
||||
getFab().setImageDrawable(playPauseDrawable);
|
||||
final int accentColor = ThemeSingleton.get().positiveColor;
|
||||
if (accentColor == Color.WHITE) {
|
||||
getFab().setColorNormal(accentColor);
|
||||
getFab().setColorPressed(ColorChooserDialog.shiftColorDown(accentColor));
|
||||
getFab().getDrawable().setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_IN);
|
||||
} else {
|
||||
getFab().setColorNormal(accentColor);
|
||||
getFab().setColorPressed(ColorChooserDialog.shiftColorUp(accentColor));
|
||||
getFab().getDrawable().clearColorFilter();
|
||||
}
|
||||
|
||||
updateFabState();
|
||||
final GestureDetector gestureDetector = new GestureDetector(this, new SmallOnGestureListener() {
|
||||
@Override
|
||||
|
|
@ -111,9 +126,7 @@ public abstract class AbsFabActivity extends AbsBaseActivity {
|
|||
Pair[] sharedViewsWithFab;
|
||||
if (sharedViews != null) {
|
||||
sharedViewsWithFab = new Pair[sharedViews.length + 1];
|
||||
for (int i = 0; i < sharedViews.length; i++) {
|
||||
sharedViewsWithFab[i] = sharedViews[i];
|
||||
}
|
||||
System.arraycopy(sharedViews, 0, sharedViewsWithFab, 0, sharedViews.length);
|
||||
} else {
|
||||
sharedViewsWithFab = new Pair[1];
|
||||
}
|
||||
|
|
@ -134,7 +147,7 @@ public abstract class AbsFabActivity extends AbsBaseActivity {
|
|||
}
|
||||
}
|
||||
|
||||
public void onMusicRemoteEvent(MusicRemoteEvent event) {
|
||||
protected void onMusicRemoteEvent(MusicRemoteEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case MusicRemoteEvent.PLAY:
|
||||
setFabPause();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,76 @@
|
|||
package com.kabouzeid.gramophone.ui.activities.base;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
|
||||
import com.afollestad.materialdialogs.ThemeSingleton;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtils;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
|
||||
/**
|
||||
* @author Aidan Follestad (afollestad)
|
||||
*/
|
||||
public abstract class ThemeBaseActivity extends ActionBarActivity implements KabViewsDisableAble {
|
||||
|
||||
private boolean mLastDarkTheme;
|
||||
private int mLastPrimary;
|
||||
private int mLastAccent;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
setTheme(PreferenceUtils.getInstance(this).getGeneralTheme());
|
||||
super.onCreate(savedInstanceState);
|
||||
setupTheme();
|
||||
}
|
||||
|
||||
private void setupTheme() {
|
||||
// Persist current values so the Activity knows if they change
|
||||
mLastDarkTheme = PreferenceUtils.getInstance(this).getGeneralTheme() == 1;
|
||||
mLastPrimary = PreferenceUtils.getInstance(this).getThemeColorPrimary();
|
||||
mLastAccent = PreferenceUtils.getInstance(this).getThemeColorAccent();
|
||||
|
||||
// Accent colors in dialogs, and any dynamic views that pull from this singleton
|
||||
ThemeSingleton.get().positiveColor = mLastAccent;
|
||||
ThemeSingleton.get().negativeColor = ThemeSingleton.get().positiveColor;
|
||||
ThemeSingleton.get().neutralColor = ThemeSingleton.get().positiveColor;
|
||||
ThemeSingleton.get().widgetColor = ThemeSingleton.get().positiveColor;
|
||||
// Dark theme
|
||||
ThemeSingleton.get().darkTheme = mLastDarkTheme;
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
// Sets color of entry in the system recents page
|
||||
ActivityManager.TaskDescription td = new ActivityManager.TaskDescription(
|
||||
getString(R.string.app_name),
|
||||
BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher),
|
||||
mLastPrimary);
|
||||
setTaskDescription(td);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (mLastDarkTheme != (PreferenceUtils.getInstance(this).getGeneralTheme() == 1) ||
|
||||
mLastPrimary != PreferenceUtils.getInstance(this).getThemeColorPrimary() ||
|
||||
mLastAccent != PreferenceUtils.getInstance(this).getThemeColorAccent()) {
|
||||
// Theme colors changed, recreate the Activity
|
||||
recreate();
|
||||
}
|
||||
}
|
||||
|
||||
protected void setUpTranslucence(boolean statusBarTranslucent, boolean navigationBarTranslucent) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
Util.setStatusBarTranslucent(getWindow(), statusBarTranslucent);
|
||||
if (Util.isInPortraitMode(this) || Util.isTablet(this)) {
|
||||
Util.setNavBarTranslucent(getWindow(), navigationBarTranslucent);
|
||||
} else {
|
||||
Util.setNavBarTranslucent(getWindow(), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -17,6 +17,7 @@ import android.view.animation.OvershootInterpolator;
|
|||
import android.widget.ImageView;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.afollestad.materialdialogs.util.DialogUtils;
|
||||
import com.github.ksoichiro.android.observablescrollview.ObservableScrollView;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
|
|
@ -49,10 +50,11 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Created by karim on 18.01.15.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public abstract class AbsTagEditorActivity extends AbsBaseActivity {
|
||||
public static final String TAG = AbsTagEditorActivity.class.getSimpleName();
|
||||
|
||||
private static final String TAG = AbsTagEditorActivity.class.getSimpleName();
|
||||
private static final int REQUEST_CODE_SELECT_IMAGE = 1337;
|
||||
|
||||
private int id;
|
||||
|
|
@ -65,7 +67,7 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
|
|||
private Toolbar toolBar;
|
||||
private ImageView image;
|
||||
private View header;
|
||||
private SmallObservableScrollViewCallbacks observableScrollViewCallbacks = new SmallObservableScrollViewCallbacks() {
|
||||
private final SmallObservableScrollViewCallbacks observableScrollViewCallbacks = new SmallObservableScrollViewCallbacks() {
|
||||
@Override
|
||||
public void onScrollChanged(int scrollY, boolean b, boolean b2) {
|
||||
float alpha;
|
||||
|
|
@ -169,7 +171,7 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
|
|||
|
||||
protected abstract void deleteImage();
|
||||
|
||||
protected void setUpFab() {
|
||||
private void setUpFab() {
|
||||
ViewHelper.setScaleX(fab, 0);
|
||||
ViewHelper.setScaleY(fab, 0);
|
||||
fab.setEnabled(false);
|
||||
|
|
@ -184,7 +186,7 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
|
|||
protected abstract void save();
|
||||
|
||||
private void restoreStandardColors() {
|
||||
final int vibrantColor = Util.resolveColor(this, R.attr.colorPrimary);
|
||||
final int vibrantColor = DialogUtils.resolveColor(this, R.attr.colorPrimary);
|
||||
paletteColorPrimary = vibrantColor;
|
||||
observableScrollViewCallbacks.onScrollChanged(scrollView.getCurrentScrollY(), false, false);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
|
|
@ -200,7 +202,7 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
|
|||
}
|
||||
}
|
||||
|
||||
protected void setUpToolBar() {
|
||||
private void setUpToolBar() {
|
||||
setSupportActionBar(toolBar);
|
||||
getSupportActionBar().setTitle(getResources().getString(R.string.tag_editor));
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
|
@ -271,7 +273,7 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
|
|||
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
|
||||
@Override
|
||||
public void onGenerated(Palette palette) {
|
||||
final int vibrantColor = palette.getVibrantColor(Util.resolveColor(AbsTagEditorActivity.this, R.attr.default_bar_color));
|
||||
final int vibrantColor = palette.getVibrantColor(DialogUtils.resolveColor(AbsTagEditorActivity.this, R.attr.default_bar_color));
|
||||
paletteColorPrimary = vibrantColor;
|
||||
observableScrollViewCallbacks.onScrollChanged(scrollView.getCurrentScrollY(), false, false);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ import java.util.Map;
|
|||
public class AlbumTagEditorActivity extends AbsTagEditorActivity implements TextWatcher {
|
||||
public static final String TAG = AlbumTagEditorActivity.class.getSimpleName();
|
||||
|
||||
private File albumArtFile;
|
||||
private Bitmap albumArtBitmap;
|
||||
private boolean deleteAlbumArt;
|
||||
|
||||
|
|
@ -150,13 +149,9 @@ public class AlbumTagEditorActivity extends AbsTagEditorActivity implements Text
|
|||
fieldKeyValueMap.put(FieldKey.GENRE, genreName.getText().toString());
|
||||
fieldKeyValueMap.put(FieldKey.YEAR, year.getText().toString());
|
||||
|
||||
try {
|
||||
albumArtFile = MusicUtil.getAlbumArtFile(this, String.valueOf(getId()));
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "error while creating albumArtFile", e);
|
||||
}
|
||||
File albumArtFile = MusicUtil.getAlbumArtFile(String.valueOf(getId()));
|
||||
|
||||
if (albumArtBitmap != null && albumArtFile != null) {
|
||||
if (albumArtBitmap != null) {
|
||||
try {
|
||||
albumArtBitmap.compress(Bitmap.CompressFormat.PNG, 0, new FileOutputStream(albumArtFile));
|
||||
artwork = ArtworkFactory.createArtworkFromFile(albumArtFile);
|
||||
|
|
|
|||
|
|
@ -7,34 +7,34 @@ import android.os.Handler;
|
|||
import android.preference.PreferenceManager;
|
||||
import android.support.v4.view.GravityCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.NavigationDrawerItemAdapter;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.NavigationDrawerItem;
|
||||
import com.nhaarman.listviewanimations.appearance.simple.AlphaInAnimationAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class NavigationDrawerFragment extends Fragment {
|
||||
|
||||
public static final int NAVIGATION_DRAWER_HEADER = -1;
|
||||
private static final String TAG = NavigationDrawerFragment.class.getSimpleName();
|
||||
public static final int ABOUT_INDEX = 4;
|
||||
public static final int SETTINGS_INDEX = 5;
|
||||
private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position";
|
||||
|
||||
public View fragmentRootView;
|
||||
private App app;
|
||||
private NavigationDrawerCallbacks callbacks;
|
||||
private NavigationDrawerItemAdapter drawerAdapter;
|
||||
private DrawerLayout drawerLayout;
|
||||
private ListView drawerListView;
|
||||
private RecyclerView drawerRecyclerView;
|
||||
private View fragmentContainerView;
|
||||
|
||||
private Button headerButton;
|
||||
|
|
@ -91,7 +91,6 @@ public class NavigationDrawerFragment extends Fragment {
|
|||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
app = (App) getActivity().getApplicationContext();
|
||||
userLearnedDrawer = PreferenceManager.getDefaultSharedPreferences(getActivity()).getBoolean(AppKeys.SP_USER_LEARNED_DRAWER, false);
|
||||
if (savedInstanceState != null) {
|
||||
setItemChecked(savedInstanceState.getInt(STATE_SELECTED_POSITION));
|
||||
|
|
@ -101,8 +100,7 @@ public class NavigationDrawerFragment extends Fragment {
|
|||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
return inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
|
||||
}
|
||||
|
||||
|
|
@ -115,7 +113,7 @@ public class NavigationDrawerFragment extends Fragment {
|
|||
}
|
||||
|
||||
private void initViews() {
|
||||
drawerListView = (ListView) fragmentRootView.findViewById(R.id.navigation_drawer_list);
|
||||
drawerRecyclerView = (RecyclerView) fragmentRootView.findViewById(R.id.navigation_drawer_list);
|
||||
final View drawerHeader = fragmentRootView.findViewById(R.id.header);
|
||||
headerButton = (Button) drawerHeader.findViewById(R.id.header_clickable);
|
||||
albumArt = (ImageView) drawerHeader.findViewById(R.id.album_art);
|
||||
|
|
@ -139,23 +137,22 @@ public class NavigationDrawerFragment extends Fragment {
|
|||
navigationDrawerItems.add(new NavigationDrawerItem(getString(R.string.albums), R.drawable.ic_album_white_24dp));
|
||||
navigationDrawerItems.add(new NavigationDrawerItem(getString(R.string.artists), R.drawable.ic_person_white_24dp));
|
||||
navigationDrawerItems.add(new NavigationDrawerItem(getString(R.string.playlists), R.drawable.ic_queue_music_white_24dp));
|
||||
navigationDrawerItems.add(new NavigationDrawerItem(getString(R.string.action_about), R.drawable.ic_drawer_about));
|
||||
navigationDrawerItems.add(new NavigationDrawerItem(getString(R.string.action_settings), R.drawable.ic_drawer_settings));
|
||||
|
||||
drawerAdapter = new NavigationDrawerItemAdapter(getActivity(), R.id.navigation_drawer, navigationDrawerItems);
|
||||
|
||||
final AlphaInAnimationAdapter animationAdapter = new AlphaInAnimationAdapter(drawerAdapter);
|
||||
animationAdapter.setAbsListView(drawerListView);
|
||||
|
||||
drawerListView.setAdapter(animationAdapter);
|
||||
drawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
drawerAdapter = new NavigationDrawerItemAdapter(getActivity(), navigationDrawerItems, new NavigationDrawerItemAdapter.Callback() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
selectItem(position);
|
||||
public void onItemSelected(int index) {
|
||||
selectItem(index);
|
||||
}
|
||||
});
|
||||
drawerRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
drawerRecyclerView.setAdapter(drawerAdapter);
|
||||
}
|
||||
|
||||
private void selectItem(final int position) {
|
||||
if (position != NAVIGATION_DRAWER_HEADER) {
|
||||
if (position != NAVIGATION_DRAWER_HEADER &&
|
||||
position != ABOUT_INDEX && position != SETTINGS_INDEX) {
|
||||
setItemChecked(position);
|
||||
if (drawerLayout != null) {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
|
|
@ -165,11 +162,9 @@ public class NavigationDrawerFragment extends Fragment {
|
|||
}
|
||||
}, 400);
|
||||
}
|
||||
|
||||
}
|
||||
if (callbacks != null) {
|
||||
if (callbacks != null)
|
||||
callbacks.onNavigationDrawerItemSelected(position);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -191,7 +186,7 @@ public class NavigationDrawerFragment extends Fragment {
|
|||
}
|
||||
}
|
||||
|
||||
public static interface NavigationDrawerCallbacks {
|
||||
public interface NavigationDrawerCallbacks {
|
||||
void onNavigationDrawerItemSelected(int position);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import com.kabouzeid.gramophone.ui.activities.MainActivity;
|
|||
import com.kabouzeid.gramophone.util.Util;
|
||||
|
||||
/**
|
||||
* Created by karim on 27.02.15.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public abstract class AbsMainActivityFragment extends Fragment implements KabViewsDisableAble {
|
||||
private boolean areViewsEnabled;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import android.view.ViewGroup;
|
|||
import com.kabouzeid.gramophone.R;
|
||||
|
||||
/**
|
||||
* Created by karim on 30.03.15.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public abstract class AbsMainActivityRecyclerViewFragment extends AbsMainActivityFragment {
|
||||
public static final String TAG = AbsMainActivityRecyclerViewFragment.class.getSimpleName();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.kabouzeid.gramophone.ui.fragments.mainactivityfragments;
|
|||
|
||||
import android.support.v7.widget.GridLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.AlbumAdapter;
|
||||
|
|
@ -10,7 +9,7 @@ import com.kabouzeid.gramophone.util.PreferenceUtils;
|
|||
import com.kabouzeid.gramophone.util.Util;
|
||||
|
||||
/**
|
||||
* Created by karim on 22.11.14.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class AlbumViewFragment extends AbsMainActivityRecyclerViewFragment {
|
||||
public static final String TAG = AlbumViewFragment.class.getSimpleName();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.kabouzeid.gramophone.ui.fragments.mainactivityfragments;
|
||||
|
||||
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.widget.GridLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
|
||||
|
|
@ -8,6 +9,7 @@ import com.kabouzeid.gramophone.R;
|
|||
import com.kabouzeid.gramophone.adapter.PlaylistAdapter;
|
||||
|
||||
public class PlaylistViewFragment extends AbsMainActivityRecyclerViewFragment {
|
||||
|
||||
public static final String TAG = PlaylistViewFragment.class.getSimpleName();
|
||||
|
||||
@Override
|
||||
|
|
@ -22,6 +24,6 @@ public class PlaylistViewFragment extends AbsMainActivityRecyclerViewFragment {
|
|||
|
||||
@Override
|
||||
protected RecyclerView.Adapter createAdapter() {
|
||||
return new PlaylistAdapter(getActivity());
|
||||
return new PlaylistAdapter((ActionBarActivity) getActivity());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.kabouzeid.gramophone.ui.fragments.mainactivityfragments;
|
||||
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.widget.GridLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
|
||||
|
|
@ -7,9 +8,10 @@ import com.kabouzeid.gramophone.R;
|
|||
import com.kabouzeid.gramophone.adapter.songadapter.SongAdapter;
|
||||
|
||||
/**
|
||||
* Created by karim on 29.12.14.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class SongViewFragment extends AbsMainActivityRecyclerViewFragment {
|
||||
|
||||
public static final String TAG = SongViewFragment.class.getSimpleName();
|
||||
|
||||
@Override
|
||||
|
|
@ -24,6 +26,6 @@ public class SongViewFragment extends AbsMainActivityRecyclerViewFragment {
|
|||
|
||||
@Override
|
||||
protected RecyclerView.Adapter createAdapter() {
|
||||
return new SongAdapter(getActivity());
|
||||
return new SongAdapter((ActionBarActivity) getActivity());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import android.graphics.Paint;
|
|||
import android.graphics.Path;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.util.Property;
|
||||
import android.view.animation.DecelerateInterpolator;
|
||||
|
|
@ -45,8 +44,8 @@ public class PlayPauseDrawable extends Drawable {
|
|||
|
||||
private float width;
|
||||
private float height;
|
||||
private float fallBackWidth;
|
||||
private float fallBackHeight;
|
||||
private final float fallBackWidth;
|
||||
private final float fallBackHeight;
|
||||
|
||||
private float progress;
|
||||
private boolean isPlay;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import android.util.AttributeSet;
|
|||
import android.widget.ImageView;
|
||||
|
||||
/**
|
||||
* Created by karim on 22.11.14.
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class SquareImageView extends ImageView {
|
||||
|
||||
|
|
@ -23,6 +23,7 @@ public class SquareImageView extends ImageView {
|
|||
|
||||
@Override
|
||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
//noinspection SuspiciousNameCombination
|
||||
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue