First snapshot (beta 0.9)
- playlists working (not all features added yet) - minor fixes and improvements
This commit is contained in:
parent
de15a34365
commit
11ee05ce64
30 changed files with 1055 additions and 126 deletions
|
|
@ -15,6 +15,7 @@ import android.view.MenuItem;
|
|||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.github.ksoichiro.android.observablescrollview.ObservableRecyclerView;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
|
|
@ -264,6 +265,7 @@ public class AlbumDetailActivity extends AbsFabActivity {
|
|||
NavigationUtil.openPlayingQueueDialog(this);
|
||||
return true;
|
||||
case R.id.action_settings:
|
||||
Toast.makeText(this, "This feature is not available yet", Toast.LENGTH_SHORT).show();
|
||||
return true;
|
||||
case R.id.action_current_playing:
|
||||
NavigationUtil.openCurrentPlayingIfPossible(this, getSharedViewsWithFab(null));
|
||||
|
|
|
|||
|
|
@ -326,6 +326,7 @@ public class ArtistDetailActivity extends AbsFabActivity {
|
|||
Toast.makeText(ArtistDetailActivity.this, getResources().getString(R.string.updating), Toast.LENGTH_SHORT).show();
|
||||
setUpArtistImageAndApplyPalette(true);
|
||||
case R.id.action_settings:
|
||||
Toast.makeText(this, "This feature is not available yet", Toast.LENGTH_SHORT).show();
|
||||
return true;
|
||||
case R.id.action_current_playing:
|
||||
NavigationUtil.openCurrentPlayingIfPossible(this, getSharedViewsWithFab(null));
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import com.afollestad.materialdialogs.MaterialDialog;
|
|||
import com.google.samples.apps.iosched.ui.widget.SlidingTabLayout;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.AboutDeveloperDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.CreatePlaylistDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.PlayingQueueDialogHelper;
|
||||
import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble;
|
||||
|
|
@ -58,6 +59,7 @@ public class MainActivity extends AbsFabActivity
|
|||
private MainActivityViewPagerAdapter viewPagerAdapter;
|
||||
private ViewPager viewPager;
|
||||
private SlidingTabLayout slidingTabLayout;
|
||||
private int currentPage = -1;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
|
@ -78,6 +80,7 @@ public class MainActivity extends AbsFabActivity
|
|||
viewPagerAdapter = new MainActivityViewPagerAdapter(this);
|
||||
viewPager.setAdapter(viewPagerAdapter);
|
||||
int startPosition = PreferenceUtils.getInstace(this).getStartPage();
|
||||
currentPage = startPosition;
|
||||
viewPager.setCurrentItem(startPosition);
|
||||
navigationDrawerFragment.setItemChecked(startPosition);
|
||||
|
||||
|
|
@ -93,6 +96,8 @@ public class MainActivity extends AbsFabActivity
|
|||
public void onPageSelected(final int position) {
|
||||
PreferenceUtils.getInstace(MainActivity.this).setStartPage(position);
|
||||
navigationDrawerFragment.setItemChecked(position);
|
||||
currentPage = position;
|
||||
invalidateOptionsMenu();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -210,7 +215,14 @@ public class MainActivity extends AbsFabActivity
|
|||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.drawer, menu);
|
||||
switch (currentPage){
|
||||
case 3:
|
||||
getMenuInflater().inflate(R.menu.menu_playlists, menu);
|
||||
break;
|
||||
default:
|
||||
getMenuInflater().inflate(R.menu.drawer, menu);
|
||||
break;
|
||||
}
|
||||
restoreActionBar();
|
||||
return true;
|
||||
}
|
||||
|
|
@ -229,10 +241,17 @@ public class MainActivity extends AbsFabActivity
|
|||
}
|
||||
int id = item.getItemId();
|
||||
switch (id) {
|
||||
case R.id.action_licenses:
|
||||
Toast.makeText(this, "This feature is not available yet", Toast.LENGTH_SHORT).show();
|
||||
return true;
|
||||
case R.id.action_new_playlist:
|
||||
CreatePlaylistDialogHelper.getDialog(this).show();
|
||||
return true;
|
||||
case R.id.action_search:
|
||||
startActivity(new Intent(MainActivity.this, SearchActivity.class));
|
||||
return true;
|
||||
case R.id.action_settings:
|
||||
Toast.makeText(this, "This feature is not available yet", Toast.LENGTH_SHORT).show();
|
||||
return true;
|
||||
case R.id.action_about:
|
||||
AboutDeveloperDialogHelper.getDialog(this).show();
|
||||
|
|
@ -277,7 +296,7 @@ public class MainActivity extends AbsFabActivity
|
|||
context.getResources().getString(R.string.songs),
|
||||
context.getResources().getString(R.string.albums),
|
||||
context.getResources().getString(R.string.artists),
|
||||
context.getResources().getString(R.string.playlists)
|
||||
context.getResources().getString(R.string.playlists) + " BETA"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,10 +18,9 @@ import android.widget.SeekBar;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.AddToPlaylistDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.PlayingQueueDialogHelper;
|
||||
import com.kabouzeid.gramophone.helper.SongDetailDialogHelper;
|
||||
import com.kabouzeid.gramophone.lastfm.artist.LastFMArtistImageUrlLoader;
|
||||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
|
|
@ -388,6 +387,12 @@ public class MusicControllerActivity extends AbsFabActivity {
|
|||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
switch (id) {
|
||||
case R.id.action_settings:
|
||||
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();
|
||||
return true;
|
||||
case android.R.id.home:
|
||||
super.onBackPressed();
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -12,10 +12,12 @@ import com.kabouzeid.gramophone.adapter.songadapter.PlaylistSongAdapter;
|
|||
import com.kabouzeid.gramophone.loader.PlaylistLoader;
|
||||
import com.kabouzeid.gramophone.loader.PlaylistSongLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.misc.DragSortRecycler;
|
||||
import com.kabouzeid.gramophone.model.Playlist;
|
||||
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 java.util.List;
|
||||
|
||||
|
|
@ -34,10 +36,27 @@ public class PlaylistDetailActivity extends AbsFabActivity {
|
|||
setUpToolBar();
|
||||
|
||||
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
|
||||
List<PlaylistSong> songs = PlaylistSongLoader.getPlaylistSongList(this, playlist.id);
|
||||
PlaylistSongAdapter adapter = new PlaylistSongAdapter(this, songs);
|
||||
final List<PlaylistSong> songs = PlaylistSongLoader.getPlaylistSongList(this, playlist.id);
|
||||
final PlaylistSongAdapter adapter = new PlaylistSongAdapter(this, songs);
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(this, 1));
|
||||
recyclerView.setAdapter(adapter);
|
||||
|
||||
DragSortRecycler dragSortRecycler = new DragSortRecycler();
|
||||
dragSortRecycler.setViewHandleId(R.id.album_art);
|
||||
|
||||
dragSortRecycler.setOnItemMovedListener(new DragSortRecycler.OnItemMovedListener() {
|
||||
@Override
|
||||
public void onItemMoved(int from, int to) {
|
||||
PlaylistSong song = songs.remove(from);
|
||||
songs.add(to, song);
|
||||
adapter.notifyDataSetChanged();
|
||||
PlaylistsUtil.moveItem(PlaylistDetailActivity.this, playlist.id, from, to);
|
||||
}
|
||||
});
|
||||
|
||||
recyclerView.addItemDecoration(dragSortRecycler);
|
||||
recyclerView.addOnItemTouchListener(dragSortRecycler);
|
||||
recyclerView.setOnScrollListener(dragSortRecycler.getScrollListener());
|
||||
}
|
||||
|
||||
private void getIntentExtras() {
|
||||
|
|
@ -51,7 +70,7 @@ public class PlaylistDetailActivity extends AbsFabActivity {
|
|||
|
||||
private void setUpToolBar() {
|
||||
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
|
||||
getSupportActionBar().setTitle(playlist.playlistName);
|
||||
getSupportActionBar().setTitle(playlist.name);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,20 +2,19 @@ package com.kabouzeid.gramophone.ui.fragments.mainactivityfragments;
|
|||
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.app.Fragment;
|
||||
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 com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.PlaylistAdapter;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.SongAdapter;
|
||||
import com.kabouzeid.gramophone.loader.PlaylistLoader;
|
||||
import com.kabouzeid.gramophone.loader.SongLoader;
|
||||
import com.kabouzeid.gramophone.model.DataBaseChangedEvent;
|
||||
import com.kabouzeid.gramophone.model.Playlist;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -37,12 +36,27 @@ public class PlaylistViewFragment extends AbsMainActivityFragment {
|
|||
}
|
||||
|
||||
private void setUpRecyclerView() {
|
||||
List<Playlist> playlists = PlaylistLoader.getAllPlaylists(getActivity());
|
||||
PlaylistAdapter adapter = new PlaylistAdapter(getActivity(), playlists);
|
||||
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 1));
|
||||
recyclerView.setAdapter(adapter);
|
||||
recyclerView.setPadding(0, getTopPadding(), 0, getBottomPadding());
|
||||
setUpAdapter();
|
||||
}
|
||||
|
||||
private void setUpAdapter(){
|
||||
if(recyclerView != null) {
|
||||
List<Playlist> playlists = PlaylistLoader.getAllPlaylists(getActivity());
|
||||
PlaylistAdapter adapter = new PlaylistAdapter(getActivity(), playlists);
|
||||
recyclerView.setAdapter(adapter);
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onDataBaseEvent(DataBaseChangedEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case DataBaseChangedEvent.PLAYLISTS_CHANGED:
|
||||
case DataBaseChangedEvent.DATABASE_CHANGED:
|
||||
setUpAdapter();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -56,4 +70,16 @@ public class PlaylistViewFragment extends AbsMainActivityFragment {
|
|||
super.disableViews();
|
||||
recyclerView.setEnabled(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
App.bus.register(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
App.bus.unregister(this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue