Some bug fixes and grid size adjustable
This commit is contained in:
parent
bce9de2782
commit
c1a4185549
19 changed files with 236 additions and 88 deletions
|
|
@ -14,6 +14,7 @@ import android.support.v7.widget.Toolbar;
|
|||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.SubMenu;
|
||||
import android.view.View;
|
||||
|
||||
import com.astuetz.PagerSlidingTabStrip;
|
||||
|
|
@ -32,6 +33,10 @@ 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;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.AlbumViewFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.ArtistViewFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.mainactivityfragments.PlaylistViewFragment;
|
||||
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;
|
||||
|
|
@ -226,13 +231,13 @@ public class MainActivity extends AbsFabActivity
|
|||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
switch (currentPage) {
|
||||
case 3:
|
||||
getMenuInflater().inflate(R.menu.menu_playlists, menu);
|
||||
break;
|
||||
default:
|
||||
getMenuInflater().inflate(R.menu.menu_main, menu);
|
||||
break;
|
||||
if (isAlbumPage()) {
|
||||
getMenuInflater().inflate(R.menu.menu_albums, menu);
|
||||
setUpGridMenu(menu);
|
||||
} else if (isPlaylistPage()) {
|
||||
getMenuInflater().inflate(R.menu.menu_playlists, menu);
|
||||
} else {
|
||||
getMenuInflater().inflate(R.menu.menu_main, menu);
|
||||
}
|
||||
restoreActionBar();
|
||||
return true;
|
||||
|
|
@ -250,6 +255,9 @@ public class MainActivity extends AbsFabActivity
|
|||
if (drawerToggle.onOptionsItemSelected(item)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (handleGridSize(item)) return true;
|
||||
|
||||
int id = item.getItemId();
|
||||
switch (id) {
|
||||
case R.id.action_shuffle_all:
|
||||
|
|
@ -363,4 +371,87 @@ public class MainActivity extends AbsFabActivity
|
|||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
private boolean isArtistPage() {
|
||||
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.ARTIST.ordinal();
|
||||
}
|
||||
|
||||
public ArtistViewFragment getArtistFragment() {
|
||||
return (ArtistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ARTIST.ordinal());
|
||||
}
|
||||
|
||||
private boolean isAlbumPage() {
|
||||
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.ALBUM.ordinal();
|
||||
}
|
||||
|
||||
public AlbumViewFragment getAlbumFragment() {
|
||||
return (AlbumViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.ALBUM.ordinal());
|
||||
}
|
||||
|
||||
private boolean isSongPage() {
|
||||
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.SONG.ordinal();
|
||||
}
|
||||
|
||||
public SongViewFragment getSongFragment() {
|
||||
return (SongViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.SONG.ordinal());
|
||||
}
|
||||
|
||||
private boolean isPlaylistPage() {
|
||||
return viewPager.getCurrentItem() == PagerAdapter.MusicFragments.PLAYLIST.ordinal();
|
||||
}
|
||||
|
||||
public PlaylistViewFragment getPlaylistFragment() {
|
||||
return (PlaylistViewFragment) pagerAdapter.getFragment(PagerAdapter.MusicFragments.PLAYLIST.ordinal());
|
||||
}
|
||||
|
||||
private void setUpGridMenu(Menu menu) {
|
||||
boolean isPortrait = Util.isInPortraitMode(this);
|
||||
int columns = isPortrait ? PreferenceUtils.getInstance(this).getAlbumGridColumns() : PreferenceUtils.getInstance(this).getAlbumGridColumnsLand();
|
||||
String title = isPortrait ? getResources().getString(R.string.action_grid_columns) : getResources().getString(R.string.action_grid_columns_land);
|
||||
|
||||
MenuItem gridSizeItem = menu.findItem(R.id.action_grid_columns);
|
||||
gridSizeItem.setTitle(title);
|
||||
|
||||
SubMenu gridSizeMenu = gridSizeItem.getSubMenu();
|
||||
gridSizeMenu.getItem(columns - 1).setChecked(true);
|
||||
}
|
||||
|
||||
private boolean handleGridSize(MenuItem item) {
|
||||
int size = -1;
|
||||
|
||||
switch (item.getItemId()) {
|
||||
case R.id.gridSizeOne:
|
||||
size = 1;
|
||||
break;
|
||||
case R.id.gridSizeTwo:
|
||||
size = 2;
|
||||
break;
|
||||
case R.id.gridSizeThree:
|
||||
size = 3;
|
||||
break;
|
||||
case R.id.gridSizeFour:
|
||||
size = 4;
|
||||
break;
|
||||
case R.id.gridSizeFive:
|
||||
size = 5;
|
||||
break;
|
||||
case R.id.gridSizeSix:
|
||||
size = 6;
|
||||
break;
|
||||
}
|
||||
|
||||
if (size > 0) {
|
||||
item.setChecked(true);
|
||||
if (isAlbumPage()) {
|
||||
getAlbumFragment().setColumns(size);
|
||||
if (Util.isInPortraitMode(this)) {
|
||||
PreferenceUtils.getInstance(this).setAlbumGridColumns(size);
|
||||
} else {
|
||||
PreferenceUtils.getInstance(this).setAlbumGridColumnsLand(size);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,7 @@ package com.kabouzeid.gramophone.ui.fragments.mainactivityfragments;
|
|||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.util.Log;
|
||||
import android.view.GestureDetector;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,9 +2,12 @@ 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;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtils;
|
||||
import com.kabouzeid.gramophone.util.Util;
|
||||
|
||||
/**
|
||||
* Created by karim on 22.11.14.
|
||||
|
|
@ -12,6 +15,8 @@ import com.kabouzeid.gramophone.adapter.AlbumAdapter;
|
|||
public class AlbumViewFragment extends AbsMainActivityRecyclerViewFragment {
|
||||
public static final String TAG = AlbumViewFragment.class.getSimpleName();
|
||||
|
||||
private GridLayoutManager layoutManager;
|
||||
|
||||
@Override
|
||||
protected int getLayoutResId() {
|
||||
return R.layout.fragment_album_view;
|
||||
|
|
@ -19,11 +24,18 @@ public class AlbumViewFragment extends AbsMainActivityRecyclerViewFragment {
|
|||
|
||||
@Override
|
||||
protected RecyclerView.LayoutManager createLayoutManager() {
|
||||
return new GridLayoutManager(getActivity(), getResources().getInteger(R.integer.grid_columns));
|
||||
int columns = Util.isInPortraitMode(getActivity()) ? PreferenceUtils.getInstance(getActivity()).getAlbumGridColumns() : PreferenceUtils.getInstance(getActivity()).getAlbumGridColumnsLand();
|
||||
layoutManager = new GridLayoutManager(getActivity(), columns);
|
||||
return layoutManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RecyclerView.Adapter createAdapter() {
|
||||
return new AlbumAdapter(getActivity());
|
||||
}
|
||||
|
||||
public void setColumns(int columns) {
|
||||
layoutManager.setSpanCount(columns);
|
||||
layoutManager.requestLayout();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue