From 9a20e51bccdaad8944e3a587f097c0300af88efa Mon Sep 17 00:00:00 2001 From: dkanada Date: Mon, 4 May 2020 00:30:16 +0900 Subject: [PATCH] add logout button and use default album art in more locations --- .../adapter/AlbumCoverPagerAdapter.java | 1 + .../ui/activities/MainActivity.java | 22 ++++++++++++++++++- .../base/AbsSlidingMusicPanelActivity.java | 4 +++- ...gerRecyclerViewCustomGridSizeFragment.java | 1 + .../main/res/layout/fragment_album_cover.xml | 9 ++------ app/src/main/res/layout/item_grid.xml | 2 ++ app/src/main/res/layout/item_list.xml | 1 + app/src/main/res/menu/menu_drawer.xml | 7 +++++- app/src/main/res/values/strings.xml | 1 + 9 files changed, 38 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumCoverPagerAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumCoverPagerAdapter.java index 275976d3..83446301 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumCoverPagerAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumCoverPagerAdapter.java @@ -51,6 +51,7 @@ public class AlbumCoverPagerAdapter extends CustomFragmentStatePagerAdapter { if (currentColorReceiver != null && currentColorReceiverPosition == position) { receiveColor(currentColorReceiver, currentColorReceiverPosition); } + return o; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java index 76f5e979..8be9d529 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java @@ -23,6 +23,7 @@ import com.bumptech.glide.Glide; import com.kabouzeid.appthemehelper.ThemeStore; import com.kabouzeid.appthemehelper.util.ATHUtil; import com.kabouzeid.appthemehelper.util.NavigationViewUtil; +import com.kabouzeid.gramophone.App; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.glide.CustomGlideRequest; import com.kabouzeid.gramophone.helper.MusicPlayerRemote; @@ -35,7 +36,14 @@ import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.QueryUtil; import com.sothree.slidinguppanel.SlidingUpPanelLayout; +import org.jellyfin.apiclient.interaction.EmptyResponse; +import org.jellyfin.apiclient.interaction.VolleyHttpClient; +import org.jellyfin.apiclient.interaction.http.IAsyncHttpClient; +import org.jellyfin.apiclient.logging.AndroidLogger; import org.jellyfin.apiclient.model.dto.BaseItemDto; +import org.jellyfin.apiclient.model.logging.ILogger; +import org.jellyfin.apiclient.model.serialization.GsonJsonSerializer; +import org.jellyfin.apiclient.model.serialization.IJsonSerializer; import java.util.List; @@ -89,7 +97,9 @@ public class MainActivity extends AbsSlidingMusicPanelActivity { menu.add(R.id.navigation_drawer_menu_category_other, R.id.nav_settings, menu.size(), R.string.action_settings); menu.getItem(menu.size() - 1).setIcon(R.drawable.ic_settings_white_24dp); menu.add(R.id.navigation_drawer_menu_category_other, R.id.nav_about, menu.size(), R.string.action_about); - menu.getItem(menu.size() - 1).setIcon(R.drawable.ic_help_white_24dp); + menu.getItem(menu.size() - 1).setIcon(R.drawable.ic_info_outline_white_24dp); + menu.add(R.id.navigation_drawer_menu_category_other, R.id.nav_logout, menu.size(), R.string.logout); + menu.getItem(menu.size() - 1).setIcon(R.drawable.ic_exit_to_app_white_48dp); setUpDrawerLayout(); @@ -135,6 +145,15 @@ public class MainActivity extends AbsSlidingMusicPanelActivity { case R.id.nav_about: new Handler().postDelayed(() -> startActivity(new Intent(MainActivity.this, AboutActivity.class)), 200); break; + case R.id.nav_logout: + IJsonSerializer jsonSerializer = new GsonJsonSerializer(); + ILogger logger = new AndroidLogger(TAG); + IAsyncHttpClient httpClient = new VolleyHttpClient(logger, this); + + App.getConnectionManager(this, jsonSerializer, logger, httpClient).Logout(new EmptyResponse()); + Intent intent = new Intent(this, LoginActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + this.startActivity(intent); } // only run the following code when a new library has been selected @@ -182,6 +201,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity { ((TextView) navigationDrawerHeader.findViewById(R.id.title)).setText(song.title); ((TextView) navigationDrawerHeader.findViewById(R.id.text)).setText(MusicUtil.getSongInfoString(song)); + CustomGlideRequest.Builder.from(Glide.with(this), song.albumId) .build() .into(((ImageView) navigationDrawerHeader.findViewById(R.id.image))); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java index 730204e8..39262eda 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsSlidingMusicPanelActivity.java @@ -73,7 +73,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi playerFragment = (AbsPlayerFragment) getSupportFragmentManager().findFragmentById(R.id.player_fragment_container); miniPlayerFragment = (MiniPlayerFragment) getSupportFragmentManager().findFragmentById(R.id.mini_player_fragment); - //noinspection ConstantConditions + // noinspection ConstantConditions miniPlayerFragment.getView().setOnClickListener(v -> expandPanel()); slidingUpPanelLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @@ -95,6 +95,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi } } }); + slidingUpPanelLayout.addPanelSlideListener(this); } @@ -228,6 +229,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi collapsePanel(); return true; } + return false; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/pager/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/pager/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.java index 59713e32..506e1639 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/pager/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/pager/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.java @@ -93,6 +93,7 @@ public abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment getMaxGridSizeForList()) { return R.layout.item_grid; } + return R.layout.item_list; } diff --git a/app/src/main/res/layout/fragment_album_cover.xml b/app/src/main/res/layout/fragment_album_cover.xml index cb45bf5f..b05a0b73 100644 --- a/app/src/main/res/layout/fragment_album_cover.xml +++ b/app/src/main/res/layout/fragment_album_cover.xml @@ -1,6 +1,7 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_grid.xml b/app/src/main/res/layout/item_grid.xml index bbdceb2f..8c5c6242 100644 --- a/app/src/main/res/layout/item_grid.xml +++ b/app/src/main/res/layout/item_grid.xml @@ -3,6 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_margin="2dp" android:foreground="?rectSelectorStrong"> @@ -23,6 +24,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" + app:srcCompat="@drawable/default_album_art" tools:ignore="ContentDescription" /> diff --git a/app/src/main/res/layout/item_list.xml b/app/src/main/res/layout/item_list.xml index 281761f1..a63afe75 100644 --- a/app/src/main/res/layout/item_list.xml +++ b/app/src/main/res/layout/item_list.xml @@ -41,6 +41,7 @@ android:layout_height="40dp" android:layout_gravity="center" android:scaleType="centerCrop" + app:srcCompat="@drawable/default_album_art" tools:ignore="ContentDescription" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 14fa308a..8f894d99 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -195,6 +195,7 @@ Phonograph - Small Phonograph - Card Login + Logout Username Password Server