replace some infrequently used methods from theme library
This commit is contained in:
parent
70a561e9d1
commit
5ae5d3017a
9 changed files with 76 additions and 53 deletions
|
|
@ -17,9 +17,8 @@ import androidx.drawerlayout.widget.DrawerLayout;
|
||||||
import com.dkanada.gramophone.activities.base.AbsMusicContentActivity;
|
import com.dkanada.gramophone.activities.base.AbsMusicContentActivity;
|
||||||
import com.dkanada.gramophone.util.NavigationUtil;
|
import com.dkanada.gramophone.util.NavigationUtil;
|
||||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||||
|
import com.dkanada.gramophone.util.ThemeUtil;
|
||||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||||
import com.kabouzeid.appthemehelper.util.ATHUtil;
|
|
||||||
import com.kabouzeid.appthemehelper.util.NavigationViewUtil;
|
|
||||||
import com.dkanada.gramophone.databinding.ActivityMainContentBinding;
|
import com.dkanada.gramophone.databinding.ActivityMainContentBinding;
|
||||||
import com.dkanada.gramophone.databinding.ActivityMainDrawerLayoutBinding;
|
import com.dkanada.gramophone.databinding.ActivityMainDrawerLayoutBinding;
|
||||||
import com.dkanada.gramophone.databinding.NavigationDrawerHeaderBinding;
|
import com.dkanada.gramophone.databinding.NavigationDrawerHeaderBinding;
|
||||||
|
|
@ -133,9 +132,11 @@ public class MainActivity extends AbsMusicContentActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setUpNavigationView() {
|
private void setUpNavigationView() {
|
||||||
int accentColor = PreferenceUtil.getInstance(this).getAccentColor();
|
int normalColor = ThemeStore.textColorPrimary(this);
|
||||||
NavigationViewUtil.setItemIconColors(binding.navigationView, ATHUtil.resolveColor(this, R.attr.iconColor, ThemeStore.textColorSecondary(this)), accentColor);
|
int activeColor = PreferenceUtil.getInstance(this).getAccentColor();
|
||||||
NavigationViewUtil.setItemTextColors(binding.navigationView, ThemeStore.textColorPrimary(this), accentColor);
|
|
||||||
|
binding.navigationView.setItemIconTintList(ThemeUtil.getColorStateList(normalColor, activeColor));
|
||||||
|
binding.navigationView.setItemTextColor(ThemeUtil.getColorStateList(normalColor, activeColor));
|
||||||
|
|
||||||
binding.navigationView.setNavigationItemSelectedListener(menuItem -> {
|
binding.navigationView.setNavigationItemSelectedListener(menuItem -> {
|
||||||
binding.drawerLayout.closeDrawers();
|
binding.drawerLayout.closeDrawers();
|
||||||
|
|
@ -157,6 +158,7 @@ public class MainActivity extends AbsMusicContentActivity {
|
||||||
|
|
||||||
// only run the following code when a new library has been selected
|
// only run the following code when a new library has been selected
|
||||||
if (menuItem.getItemId() == QueryUtil.currentLibrary.getId().hashCode()) return true;
|
if (menuItem.getItemId() == QueryUtil.currentLibrary.getId().hashCode()) return true;
|
||||||
|
|
||||||
for (BaseItemDto itemDto : libraries) {
|
for (BaseItemDto itemDto : libraries) {
|
||||||
if (menuItem.getItemId() == itemDto.getId().hashCode()) {
|
if (menuItem.getItemId() == itemDto.getId().hashCode()) {
|
||||||
QueryUtil.currentLibrary = itemDto;
|
QueryUtil.currentLibrary = itemDto;
|
||||||
|
|
@ -168,12 +170,13 @@ public class MainActivity extends AbsMusicContentActivity {
|
||||||
// setCheckable must be applied to the items on creation
|
// setCheckable must be applied to the items on creation
|
||||||
// it also applies a tacky background color for the checked item
|
// it also applies a tacky background color for the checked item
|
||||||
// this is a hack to check the current item without that
|
// this is a hack to check the current item without that
|
||||||
if (menuItem.getItemId() == R.id.nav_settings
|
if (menuItem.getGroupId() != R.id.navigation_drawer_menu_category_sections) return true;
|
||||||
|| menuItem.getItemId() == R.id.nav_about
|
|
||||||
|| menuItem.getItemId() == R.id.nav_logout) return true;
|
|
||||||
|
|
||||||
for (int i = 0; i < binding.navigationView.getMenu().size(); i++) {
|
for (int i = 0; i < binding.navigationView.getMenu().size(); i++) {
|
||||||
binding.navigationView.getMenu().getItem(i).setChecked(binding.navigationView.getMenu().getItem(i) == menuItem);
|
MenuItem item = binding.navigationView.getMenu().getItem(i);
|
||||||
|
|
||||||
|
// ignore items that open new activities since the navigation view is hidden
|
||||||
|
item.setChecked(item == menuItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ import android.view.ViewGroup;
|
||||||
import android.view.ViewTreeObserver;
|
import android.view.ViewTreeObserver;
|
||||||
import android.view.animation.PathInterpolator;
|
import android.view.animation.PathInterpolator;
|
||||||
|
|
||||||
import androidx.annotation.ColorInt;
|
|
||||||
import androidx.annotation.FloatRange;
|
import androidx.annotation.FloatRange;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
import androidx.core.graphics.ColorUtils;
|
import androidx.core.graphics.ColorUtils;
|
||||||
|
|
@ -29,9 +28,9 @@ import com.sothree.slidinguppanel.SlidingUpPanelLayout;
|
||||||
public abstract class AbsMusicPanelActivity extends AbsMusicServiceActivity implements SlidingUpPanelLayout.PanelSlideListener, CardPlayerFragment.Callbacks {
|
public abstract class AbsMusicPanelActivity extends AbsMusicServiceActivity implements SlidingUpPanelLayout.PanelSlideListener, CardPlayerFragment.Callbacks {
|
||||||
private SlidingMusicPanelLayoutBinding binding;
|
private SlidingMusicPanelLayoutBinding binding;
|
||||||
|
|
||||||
private int navigationbarColor;
|
private int navigationBarColor;
|
||||||
private int taskColor;
|
private int taskDescriptionColor;
|
||||||
private boolean lightStatusbar;
|
private boolean lightStatusBar;
|
||||||
|
|
||||||
private NowPlayingScreen currentNowPlayingScreen;
|
private NowPlayingScreen currentNowPlayingScreen;
|
||||||
private AbsPlayerFragment playerFragment;
|
private AbsPlayerFragment playerFragment;
|
||||||
|
|
@ -87,6 +86,11 @@ public abstract class AbsMusicPanelActivity extends AbsMusicServiceActivity impl
|
||||||
});
|
});
|
||||||
|
|
||||||
binding.slidingLayout.addPanelSlideListener(this);
|
binding.slidingLayout.addPanelSlideListener(this);
|
||||||
|
|
||||||
|
// TODO remove this once createContentView works with inheritance
|
||||||
|
// any AbsMusicPanelActivity child without setColor has status bar issues
|
||||||
|
// setDrawUnderStatusBar only works after content view has been set
|
||||||
|
setColor(PreferenceUtil.getInstance(this).getPrimaryColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -130,7 +134,7 @@ public abstract class AbsMusicPanelActivity extends AbsMusicServiceActivity impl
|
||||||
public void onPanelSlide(View panel, @FloatRange(from = 0, to = 1) float slideOffset) {
|
public void onPanelSlide(View panel, @FloatRange(from = 0, to = 1) float slideOffset) {
|
||||||
setMiniPlayerAlphaProgress(slideOffset);
|
setMiniPlayerAlphaProgress(slideOffset);
|
||||||
if (navigationBarColorAnimator != null) navigationBarColorAnimator.cancel();
|
if (navigationBarColorAnimator != null) navigationBarColorAnimator.cancel();
|
||||||
super.setNavigationBarColor(ColorUtils.blendARGB(navigationbarColor, playerFragment.getPaletteColor(), slideOffset));
|
super.setNavigationBarColor(ColorUtils.blendARGB(navigationBarColor, playerFragment.getPaletteColor(), slideOffset));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -150,9 +154,9 @@ public abstract class AbsMusicPanelActivity extends AbsMusicServiceActivity impl
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onPanelCollapsed(View panel) {
|
public void onPanelCollapsed(View panel) {
|
||||||
super.setLightStatusBar(lightStatusbar);
|
super.setLightStatusBar(lightStatusBar);
|
||||||
super.setTaskDescriptionColor(taskColor);
|
super.setTaskDescriptionColor(taskDescriptionColor);
|
||||||
super.setNavigationBarColor(navigationbarColor);
|
super.setNavigationBarColor(navigationBarColor);
|
||||||
|
|
||||||
playerFragment.setMenuVisibility(false);
|
playerFragment.setMenuVisibility(false);
|
||||||
playerFragment.setUserVisibleHint(false);
|
playerFragment.setUserVisibleHint(false);
|
||||||
|
|
@ -240,7 +244,7 @@ public abstract class AbsMusicPanelActivity extends AbsMusicServiceActivity impl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setLightStatusBar(boolean enabled) {
|
public void setLightStatusBar(boolean enabled) {
|
||||||
lightStatusbar = enabled;
|
lightStatusBar = enabled;
|
||||||
|
|
||||||
if (getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
if (getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
||||||
super.setLightStatusBar(enabled);
|
super.setLightStatusBar(enabled);
|
||||||
|
|
@ -249,7 +253,7 @@ public abstract class AbsMusicPanelActivity extends AbsMusicServiceActivity impl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setNavigationBarColor(int color) {
|
public void setNavigationBarColor(int color) {
|
||||||
navigationbarColor = color;
|
navigationBarColor = color;
|
||||||
|
|
||||||
if (navigationBarColorAnimator != null) {
|
if (navigationBarColorAnimator != null) {
|
||||||
navigationBarColorAnimator.cancel();
|
navigationBarColorAnimator.cancel();
|
||||||
|
|
@ -285,8 +289,8 @@ public abstract class AbsMusicPanelActivity extends AbsMusicServiceActivity impl
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setTaskDescriptionColor(@ColorInt int color) {
|
public void setTaskDescriptionColor(int color) {
|
||||||
taskColor = color;
|
taskDescriptionColor = color;
|
||||||
|
|
||||||
if (getPanelState() == null || getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
if (getPanelState() == null || getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
|
||||||
super.setTaskDescriptionColor(color);
|
super.setTaskDescriptionColor(color);
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package com.dkanada.gramophone.activities.base;
|
package com.dkanada.gramophone.activities.base;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.app.ActivityManager;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import com.kabouzeid.appthemehelper.ATH;
|
|
||||||
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
||||||
import com.kabouzeid.appthemehelper.util.MaterialDialogsUtil;
|
|
||||||
import com.dkanada.gramophone.R;
|
import com.dkanada.gramophone.R;
|
||||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||||
import com.dkanada.gramophone.util.Util;
|
import com.dkanada.gramophone.util.Util;
|
||||||
|
|
@ -22,7 +22,6 @@ public abstract class AbsThemeActivity extends AppCompatActivity {
|
||||||
|
|
||||||
setTheme(PreferenceUtil.getInstance(this).getTheme().style);
|
setTheme(PreferenceUtil.getInstance(this).getTheme().style);
|
||||||
setColor(PreferenceUtil.getInstance(this).getPrimaryColor());
|
setColor(PreferenceUtil.getInstance(this).getPrimaryColor());
|
||||||
MaterialDialogsUtil.updateMaterialDialogsThemeSingleton(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -53,7 +52,7 @@ public abstract class AbsThemeActivity extends AppCompatActivity {
|
||||||
setNavigationBarColor(color);
|
setNavigationBarColor(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setDrawUnderStatusBar() {
|
private void setDrawUnderStatusBar() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
Util.setAllowDrawUnderStatusBar(getWindow());
|
Util.setAllowDrawUnderStatusBar(getWindow());
|
||||||
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||||
|
|
@ -77,18 +76,38 @@ public abstract class AbsThemeActivity extends AppCompatActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTaskDescriptionColor(int color) {
|
public void setTaskDescriptionColor(int color) {
|
||||||
ATH.setTaskDescriptionColor(this, color);
|
int solid = ColorUtil.stripAlpha(color);
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
setTaskDescription(new ActivityManager.TaskDescription(getTitle().toString(), null, solid));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNavigationBarColor(int color) {
|
public void setNavigationBarColor(int color) {
|
||||||
ATH.setNavigationbarColor(this, color);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
getWindow().setNavigationBarColor(color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("InlinedApi")
|
||||||
public void setLightStatusBar(boolean enabled) {
|
public void setLightStatusBar(boolean enabled) {
|
||||||
ATH.setLightStatusbar(this, enabled);
|
View view = getWindow().getDecorView();
|
||||||
|
|
||||||
|
int flags = enabled
|
||||||
|
? view.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
|
||||||
|
: view.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
|
||||||
|
|
||||||
|
view.setSystemUiVisibility(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("InlinedApi")
|
||||||
public void setLightNavigationBar(boolean enabled) {
|
public void setLightNavigationBar(boolean enabled) {
|
||||||
ATH.setLightNavigationbar(this, enabled);
|
View view = getWindow().getDecorView();
|
||||||
|
|
||||||
|
int flags = enabled
|
||||||
|
? view.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
|
||||||
|
: view.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
|
||||||
|
|
||||||
|
view.setSystemUiVisibility(flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package com.dkanada.gramophone.fragments.main;
|
package com.dkanada.gramophone.fragments.main;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
@ -22,11 +21,8 @@ import com.dkanada.gramophone.helper.MusicPlayerRemote;
|
||||||
import com.dkanada.gramophone.util.ShortcutUtil;
|
import com.dkanada.gramophone.util.ShortcutUtil;
|
||||||
import com.google.android.material.appbar.AppBarLayout;
|
import com.google.android.material.appbar.AppBarLayout;
|
||||||
import com.afollestad.materialcab.MaterialCab;
|
import com.afollestad.materialcab.MaterialCab;
|
||||||
import com.kabouzeid.appthemehelper.common.ATHToolbarActivity;
|
|
||||||
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
||||||
import com.kabouzeid.appthemehelper.util.MaterialValueHelper;
|
import com.kabouzeid.appthemehelper.util.MaterialValueHelper;
|
||||||
import com.kabouzeid.appthemehelper.util.TabLayoutUtil;
|
|
||||||
import com.kabouzeid.appthemehelper.util.ToolbarContentTintHelper;
|
|
||||||
import com.dkanada.gramophone.R;
|
import com.dkanada.gramophone.R;
|
||||||
import com.dkanada.gramophone.adapter.MusicLibraryPagerAdapter;
|
import com.dkanada.gramophone.adapter.MusicLibraryPagerAdapter;
|
||||||
import com.dkanada.gramophone.dialogs.CreatePlaylistDialog;
|
import com.dkanada.gramophone.dialogs.CreatePlaylistDialog;
|
||||||
|
|
@ -110,7 +106,6 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
||||||
int primaryColor = PreferenceUtil.getInstance(requireActivity()).getPrimaryColor();
|
int primaryColor = PreferenceUtil.getInstance(requireActivity()).getPrimaryColor();
|
||||||
int normalColor = MaterialValueHelper.getSecondaryTextColor(requireActivity(), ColorUtil.isColorLight(primaryColor));
|
int normalColor = MaterialValueHelper.getSecondaryTextColor(requireActivity(), ColorUtil.isColorLight(primaryColor));
|
||||||
int selectedColor = MaterialValueHelper.getPrimaryTextColor(requireActivity(), ColorUtil.isColorLight(primaryColor));
|
int selectedColor = MaterialValueHelper.getPrimaryTextColor(requireActivity(), ColorUtil.isColorLight(primaryColor));
|
||||||
TabLayoutUtil.setTabIconColors(binding.tabs, normalColor, selectedColor);
|
|
||||||
binding.tabs.setTabTextColors(normalColor, selectedColor);
|
binding.tabs.setTabTextColors(normalColor, selectedColor);
|
||||||
binding.tabs.setSelectedTabIndicatorColor(PreferenceUtil.getInstance(requireActivity()).getAccentColor());
|
binding.tabs.setSelectedTabIndicatorColor(PreferenceUtil.getInstance(requireActivity()).getAccentColor());
|
||||||
|
|
||||||
|
|
@ -187,18 +182,6 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
|
||||||
menu.removeItem(R.id.action_sort_method);
|
menu.removeItem(R.id.action_sort_method);
|
||||||
menu.removeItem(R.id.action_sort_order);
|
menu.removeItem(R.id.action_sort_order);
|
||||||
}
|
}
|
||||||
|
|
||||||
Activity activity = getActivity();
|
|
||||||
if (activity == null) return;
|
|
||||||
ToolbarContentTintHelper.handleOnCreateOptionsMenu(getActivity(), binding.toolbar, menu, ATHToolbarActivity.getToolbarBackgroundColor(binding.toolbar));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPrepareOptionsMenu(@NonNull Menu menu) {
|
|
||||||
super.onPrepareOptionsMenu(menu);
|
|
||||||
Activity activity = getActivity();
|
|
||||||
if (activity == null) return;
|
|
||||||
ToolbarContentTintHelper.handleOnPrepareOptionsMenu(activity, binding.toolbar);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package com.dkanada.gramophone.fragments.player.card;
|
||||||
|
|
||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
import android.animation.AnimatorSet;
|
import android.animation.AnimatorSet;
|
||||||
import android.graphics.Color;
|
|
||||||
import android.graphics.PorterDuff;
|
import android.graphics.PorterDuff;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
|
@ -18,6 +17,7 @@ import android.widget.ImageView;
|
||||||
import androidx.annotation.ColorInt;
|
import androidx.annotation.ColorInt;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
|
@ -29,7 +29,6 @@ import com.h6ah4i.android.widget.advrecyclerview.utils.WrapperAdapterUtils;
|
||||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||||
import com.kabouzeid.appthemehelper.util.ATHUtil;
|
import com.kabouzeid.appthemehelper.util.ATHUtil;
|
||||||
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
||||||
import com.kabouzeid.appthemehelper.util.ToolbarContentTintHelper;
|
|
||||||
import com.dkanada.gramophone.R;
|
import com.dkanada.gramophone.R;
|
||||||
import com.dkanada.gramophone.adapter.base.MediaEntryViewHolder;
|
import com.dkanada.gramophone.adapter.base.MediaEntryViewHolder;
|
||||||
import com.dkanada.gramophone.adapter.song.PlayingQueueAdapter;
|
import com.dkanada.gramophone.adapter.song.PlayingQueueAdapter;
|
||||||
|
|
@ -225,7 +224,7 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
||||||
private void updateIsFavorite() {
|
private void updateIsFavorite() {
|
||||||
boolean favorite = MusicPlayerRemote.getCurrentSong().favorite;
|
boolean favorite = MusicPlayerRemote.getCurrentSong().favorite;
|
||||||
int res = favorite ? R.drawable.ic_favorite_white_24dp : R.drawable.ic_favorite_border_white_24dp;
|
int res = favorite ? R.drawable.ic_favorite_white_24dp : R.drawable.ic_favorite_border_white_24dp;
|
||||||
int color = ToolbarContentTintHelper.toolbarContentColor(getActivity(), Color.TRANSPARENT);
|
int color = ContextCompat.getColor(requireContext(), android.R.color.white);
|
||||||
Drawable drawable = ImageUtil.getTintedVectorDrawable(getActivity(), res, color);
|
Drawable drawable = ImageUtil.getTintedVectorDrawable(getActivity(), res, color);
|
||||||
|
|
||||||
binding.playerToolbar.getMenu().findItem(R.id.action_toggle_favorite)
|
binding.playerToolbar.getMenu().findItem(R.id.action_toggle_favorite)
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package com.dkanada.gramophone.fragments.player.flat;
|
||||||
|
|
||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
import android.animation.AnimatorSet;
|
import android.animation.AnimatorSet;
|
||||||
import android.graphics.Color;
|
|
||||||
import android.graphics.PorterDuff;
|
import android.graphics.PorterDuff;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
@ -16,6 +15,7 @@ import android.widget.ImageView;
|
||||||
import androidx.annotation.ColorInt;
|
import androidx.annotation.ColorInt;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
|
@ -27,7 +27,6 @@ import com.h6ah4i.android.widget.advrecyclerview.utils.WrapperAdapterUtils;
|
||||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||||
import com.kabouzeid.appthemehelper.util.ATHUtil;
|
import com.kabouzeid.appthemehelper.util.ATHUtil;
|
||||||
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
||||||
import com.kabouzeid.appthemehelper.util.ToolbarContentTintHelper;
|
|
||||||
import com.dkanada.gramophone.R;
|
import com.dkanada.gramophone.R;
|
||||||
import com.dkanada.gramophone.adapter.base.MediaEntryViewHolder;
|
import com.dkanada.gramophone.adapter.base.MediaEntryViewHolder;
|
||||||
import com.dkanada.gramophone.adapter.song.PlayingQueueAdapter;
|
import com.dkanada.gramophone.adapter.song.PlayingQueueAdapter;
|
||||||
|
|
@ -225,7 +224,7 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
||||||
private void updateIsFavorite() {
|
private void updateIsFavorite() {
|
||||||
boolean favorite = MusicPlayerRemote.getCurrentSong().favorite;
|
boolean favorite = MusicPlayerRemote.getCurrentSong().favorite;
|
||||||
int res = favorite ? R.drawable.ic_favorite_white_24dp : R.drawable.ic_favorite_border_white_24dp;
|
int res = favorite ? R.drawable.ic_favorite_white_24dp : R.drawable.ic_favorite_border_white_24dp;
|
||||||
int color = ToolbarContentTintHelper.toolbarContentColor(requireActivity(), Color.TRANSPARENT);
|
int color = ContextCompat.getColor(requireContext(), android.R.color.white);
|
||||||
Drawable drawable = ImageUtil.getTintedVectorDrawable(requireActivity(), res, color);
|
Drawable drawable = ImageUtil.getTintedVectorDrawable(requireActivity(), res, color);
|
||||||
|
|
||||||
binding.playerToolbar.getMenu().findItem(R.id.action_toggle_favorite)
|
binding.playerToolbar.getMenu().findItem(R.id.action_toggle_favorite)
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,7 @@ public class ImageUtil {
|
||||||
|
|
||||||
public static Bitmap resize(InputStream stream, int scaledWidth, int scaledHeight) {
|
public static Bitmap resize(InputStream stream, int scaledWidth, int scaledHeight) {
|
||||||
final Bitmap bitmap = BitmapFactory.decodeStream(stream);
|
final Bitmap bitmap = BitmapFactory.decodeStream(stream);
|
||||||
|
|
||||||
return Bitmap.createScaledBitmap(bitmap, scaledWidth, scaledHeight, true);
|
return Bitmap.createScaledBitmap(bitmap, scaledWidth, scaledHeight, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.dkanada.gramophone.util;
|
package com.dkanada.gramophone.util;
|
||||||
|
|
||||||
|
import android.content.res.ColorStateList;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
|
||||||
import androidx.annotation.ColorInt;
|
import androidx.annotation.ColorInt;
|
||||||
|
|
@ -19,6 +20,20 @@ public class ThemeUtil {
|
||||||
return Palette.from(bitmap).generate();
|
return Palette.from(bitmap).generate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ColorStateList getColorStateList(int normal, int active) {
|
||||||
|
int[][] states = new int[][]{
|
||||||
|
new int[]{-android.R.attr.state_checked},
|
||||||
|
new int[]{android.R.attr.state_checked}
|
||||||
|
};
|
||||||
|
|
||||||
|
int[] colors = new int[]{
|
||||||
|
normal,
|
||||||
|
active
|
||||||
|
};
|
||||||
|
|
||||||
|
return new ColorStateList(states, colors);
|
||||||
|
}
|
||||||
|
|
||||||
@ColorInt
|
@ColorInt
|
||||||
public static int getColor(@Nullable Palette palette, int fallback) {
|
public static int getColor(@Nullable Palette palette, int fallback) {
|
||||||
if (palette != null) {
|
if (palette != null) {
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ public abstract class BaseAppWidget extends AppWidgetProvider {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, final int[] appWidgetIds) {
|
public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, final int[] appWidgetIds) {
|
||||||
Log.d(NAME, String.format("onUpdate: %s", Arrays.toString(appWidgetIds)));
|
Log.i(NAME, String.format("onUpdate: %s", Arrays.toString(appWidgetIds)));
|
||||||
reset(context, appWidgetIds);
|
reset(context, appWidgetIds);
|
||||||
|
|
||||||
final Intent updateIntent = new Intent(MusicService.INTENT_EXTRA_WIDGET_UPDATE);
|
final Intent updateIntent = new Intent(MusicService.INTENT_EXTRA_WIDGET_UPDATE);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue