diff --git a/app/build.gradle b/app/build.gradle index e184499d..197aa1b7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,8 +23,8 @@ android { applicationId "com.kabouzeid.gramophone" minSdkVersion 16 targetSdkVersion 22 - versionCode 16 - versionName "0.9.8b" + versionCode 17 + versionName "0.9.7.1b" } compileOptions { @@ -60,7 +60,7 @@ dependencies { compile 'com.melnykov:floatingactionbutton:1.3.0' compile 'com.github.ksoichiro:android-observablescrollview:1.5.0' compile 'com.mcxiaoke.volley:library:1.0.15' - compile 'com.squareup.picasso:picasso:2.5.0' + compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.squareup:otto:1.3.6' compile 'com.squareup.okhttp:okhttp:2.2.0' compile 'asia.ivity.android:drag-sort-listview:1.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 638672a2..a2858ff7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,7 +5,6 @@ - { popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { + if(item.getItemId() == R.id.action_remove_from_playing_queue) { + MusicPlayerRemote.removeFromQueue(position); + notifyDataSetChanged(); + return true; + } return MenuItemClickHelper.handleSongMenuClick(activity, song, item); } }); diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/songadapter/PlaylistSongAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/songadapter/PlaylistSongAdapter.java index 7d0a4dc5..c1cadf60 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/songadapter/PlaylistSongAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/songadapter/PlaylistSongAdapter.java @@ -19,6 +19,7 @@ import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; +import com.kabouzeid.gramophone.util.PlaylistsUtil; import com.squareup.picasso.Picasso; import java.util.List; @@ -89,6 +90,11 @@ public class PlaylistSongAdapter extends RecyclerView.Adapter 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; + } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AbsMainActivityRecyclerViewFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AbsMainActivityRecyclerViewFragment.java index 84d9c4de..dd130829 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AbsMainActivityRecyclerViewFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AbsMainActivityRecyclerViewFragment.java @@ -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; diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AlbumViewFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AlbumViewFragment.java index 30cf4c52..0c033fea 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AlbumViewFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivityfragments/AlbumViewFragment.java @@ -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(); + } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtils.java b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtils.java index ab9963e5..dde89f0d 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtils.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtils.java @@ -8,58 +8,26 @@ import com.kabouzeid.gramophone.R; public final class PreferenceUtils { - /* Default start page (Album page) */ public static final int DEFAULT_PAGE = 1; - public static final String GENERAL_THEME = "general_theme"; - - /* Saves the last page the pager was on in {@link MainActivity} */ public static final String DEFAULT_START_PAGE = "default_start_page"; - - /* Saves the last page the pager was on in {@link MainActivity} */ public static final String LAST_START_PAGE = "last_start_page"; - - // Sort order for the artist list public static final String ARTIST_SORT_ORDER = "artist_sort_order"; - - // Sort order for the artist song list public static final String ARTIST_SONG_SORT_ORDER = "artist_song_sort_order"; - - // Sort order for the artist album list public static final String ARTIST_ALBUM_SORT_ORDER = "artist_album_sort_order"; - - // Sort order for the album list public static final String ALBUM_SORT_ORDER = "album_sort_order"; - - // Sort order for the album song list public static final String ALBUM_SONG_SORT_ORDER = "album_song_sort_order"; - - // Sort order for the song list public static final String SONG_SORT_ORDER = "song_sort_order"; - - // Key used to download images only on Wi-Fi public static final String ONLY_ON_WIFI = "auto_download_artist_images"; - - // Key that gives permissions to download missing artist images public static final String DOWNLOAD_MISSING_ARTIST_IMAGES = "auto_download_artist_images"; - - // Key used to en or disable palette public static final String COLORED_ALBUM_FOOTERS = "colored_album_footers"; - - // Key used to en or disable the colored navigation bar public static final String COLORED_NAVIGATION_BAR_ALBUM = "colored_navigation_bar_album"; - - // Key used to en or disable the colored navigation bar public static final String COLORED_NAVIGATION_BAR_ARTIST = "colored_navigation_bar_artist"; - - // Key used to en or disable the colored navigation bar public static final String COLORED_NAVIGATION_BAR_CURRENT_PLAYING = "colored_navigation_bar_current_playing_enabled"; - - // Key used to en or disable the colored navigation bar public static final String PLAYBACK_CONTROLLER_BOX = "playback_controller_card"; - - /* Saves the last page the pager was on in {@link MainActivity} */ public static final String TRANSPARENT_TOOLBAR = "transparent_toolbar"; + public static final String ALBUM_GRID_COLUMNS = "album_grid_columns"; + public static final String ALBUM_GRID_COLUMNS_LAND = "album_grid_columns_land"; private static PreferenceUtils sInstance; @@ -77,8 +45,8 @@ public final class PreferenceUtils { } public int getGeneralTheme() { - int value = Integer.parseInt(mPreferences.getString(GENERAL_THEME, "1")); - switch (value){ + int value = Integer.parseInt(mPreferences.getString(GENERAL_THEME, "1")); + switch (value) { case 0: return R.style.Theme_MaterialMusic_Light; case 1: @@ -261,4 +229,24 @@ public final class PreferenceUtils { public final String getSongSortOrder() { return mPreferences.getString(SONG_SORT_ORDER, SortOrder.SongSortOrder.SONG_A_Z); } + + public void setAlbumGridColumns(final int value) { + final SharedPreferences.Editor editor = mPreferences.edit(); + editor.putInt(ALBUM_GRID_COLUMNS, value); + editor.apply(); + } + + public final int getAlbumGridColumns() { + return mPreferences.getInt(ALBUM_GRID_COLUMNS, 2); + } + + public void setAlbumGridColumnsLand(final int value) { + final SharedPreferences.Editor editor = mPreferences.edit(); + editor.putInt(ALBUM_GRID_COLUMNS_LAND, value); + editor.apply(); + } + + public final int getAlbumGridColumnsLand() { + return mPreferences.getInt(ALBUM_GRID_COLUMNS_LAND, 3); + } } diff --git a/app/src/main/res/layout/fragment_songview.xml b/app/src/main/res/layout/fragment_songview.xml index e4a51263..e0de623a 100644 --- a/app/src/main/res/layout/fragment_songview.xml +++ b/app/src/main/res/layout/fragment_songview.xml @@ -13,6 +13,5 @@ android:clipToPadding="false" android:dividerHeight="0px" android:divider="@null" - android:numColumns="@integer/grid_columns" android:scrollbars="vertical"/> diff --git a/app/src/main/res/menu/menu_albums.xml b/app/src/main/res/menu/menu_albums.xml new file mode 100644 index 00000000..3791c90a --- /dev/null +++ b/app/src/main/res/menu/menu_albums.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-land/integers.xml b/app/src/main/res/values-land/integers.xml deleted file mode 100644 index 6f0860c5..00000000 --- a/app/src/main/res/values-land/integers.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 3 - \ No newline at end of file diff --git a/app/src/main/res/values-sw600dp-land/integers.xml b/app/src/main/res/values-sw600dp-land/integers.xml deleted file mode 100644 index 8928c17d..00000000 --- a/app/src/main/res/values-sw600dp-land/integers.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 6 - \ No newline at end of file diff --git a/app/src/main/res/values-sw600dp/integers.xml b/app/src/main/res/values-sw600dp/integers.xml deleted file mode 100644 index 57abde48..00000000 --- a/app/src/main/res/values-sw600dp/integers.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 4 - \ No newline at end of file diff --git a/app/src/main/res/values/integers.xml b/app/src/main/res/values/integers.xml deleted file mode 100644 index ef15fe51..00000000 --- a/app/src/main/res/values/integers.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 2 - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5526cbe4..efa1f30f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -79,6 +79,8 @@ Inserted\u0020 \u0020titles to playlist\u0020 New playlist + Grid columns + Grid columns (Land) Cancel Created playlist\u0020 Deleted playlist\u0020