diff --git a/app/src/main/java/com/dkanada/gramophone/activities/AboutActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/AboutActivity.java index 29c44a31..65cc46fe 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/AboutActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/AboutActivity.java @@ -58,12 +58,6 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen supportBinding = CardSupportDevelopmentBinding.bind(findViewById(R.id.support_layout)); thanksBinding = CardSpecialThanksBinding.bind(findViewById(R.id.thanks_layout)); - setDrawUnderStatusBar(); - setStatusBarColorAuto(); - - setNavigationBarColorAuto(); - setTaskDescriptionColorAuto(); - setUpViews(); } diff --git a/app/src/main/java/com/dkanada/gramophone/activities/LoginActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/LoginActivity.java index c7487a26..692d0b9d 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/LoginActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/LoginActivity.java @@ -29,12 +29,6 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen binding = ActivityLoginBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - setDrawUnderStatusBar(); - setStatusBarColorAuto(); - - setNavigationBarColorAuto(); - setTaskDescriptionColorAuto(); - setUpViews(); } diff --git a/app/src/main/java/com/dkanada/gramophone/activities/MainActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/MainActivity.java index 61504725..14c282bc 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/MainActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/MainActivity.java @@ -55,9 +55,10 @@ public class MainActivity extends AbsMusicContentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setDrawUnderStatusBar(); state = savedInstanceState; + + setColor(PreferenceUtil.getInstance(this).getPrimaryColor()); if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) { binding.navigationView.setFitsSystemWindows(false); } diff --git a/app/src/main/java/com/dkanada/gramophone/activities/SearchActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/SearchActivity.java index 730e7cfb..190ec062 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/SearchActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/SearchActivity.java @@ -47,11 +47,6 @@ public class SearchActivity extends AbsMusicContentActivity implements SearchVie protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setDrawUnderStatusBar(); - setStatusBarColorAuto(); - - setNavigationBarColorAuto(); - setTaskDescriptionColorAuto(); setUpToolBar(); handler = new Handler(); diff --git a/app/src/main/java/com/dkanada/gramophone/activities/SelectActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/SelectActivity.java index 38f4dca8..57081940 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/SelectActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/SelectActivity.java @@ -35,12 +35,6 @@ public class SelectActivity extends AbsBaseActivity { startActivity(new Intent(context, LoginActivity.class)); }); - setDrawUnderStatusBar(); - setStatusBarColorAuto(); - - setNavigationBarColorAuto(); - setTaskDescriptionColorAuto(); - int primaryColor = PreferenceUtil.getInstance(this).getPrimaryColor(); binding.add.setBackgroundColor(primaryColor); diff --git a/app/src/main/java/com/dkanada/gramophone/activities/SettingsActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/SettingsActivity.java index 5b79cae4..08b4f665 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/SettingsActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/SettingsActivity.java @@ -30,12 +30,6 @@ public class SettingsActivity extends AbsBaseActivity { binding = ActivitySettingsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - setDrawUnderStatusBar(); - setStatusBarColorAuto(); - - setNavigationBarColorAuto(); - setTaskDescriptionColorAuto(); - binding.toolbar.setBackgroundColor(PreferenceUtil.getInstance(this).getPrimaryColor()); setSupportActionBar(binding.toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); diff --git a/app/src/main/java/com/dkanada/gramophone/activities/SplashActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/SplashActivity.java index 05b9132e..0eafd044 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/SplashActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/SplashActivity.java @@ -20,11 +20,6 @@ public class SplashActivity extends AbsBaseActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); - setDrawUnderStatusBar(); - - setStatusBarColorAuto(); - setNavigationBarColorAuto(); - setTaskDescriptionColorAuto(); } @Override diff --git a/app/src/main/java/com/dkanada/gramophone/activities/base/AbsMusicPanelActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/base/AbsMusicPanelActivity.java index 848041d7..96ebafc8 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/base/AbsMusicPanelActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/base/AbsMusicPanelActivity.java @@ -181,7 +181,7 @@ public abstract class AbsMusicPanelActivity extends AbsMusicServiceActivity impl public SlidingUpPanelLayout.PanelState getPanelState() { - return binding.slidingLayout.getPanelState(); + return binding == null ? null : binding.slidingLayout.getPanelState(); } public void collapsePanel() { diff --git a/app/src/main/java/com/dkanada/gramophone/activities/base/AbsThemeActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/base/AbsThemeActivity.java index 8fb9ad0a..e954150a 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/base/AbsThemeActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/base/AbsThemeActivity.java @@ -6,9 +6,7 @@ import android.view.View; import androidx.appcompat.app.AppCompatActivity; -import com.dkanada.gramophone.util.NavigationUtil; import com.kabouzeid.appthemehelper.ATH; -import com.kabouzeid.appthemehelper.ThemeStore; import com.kabouzeid.appthemehelper.util.ColorUtil; import com.kabouzeid.appthemehelper.util.MaterialDialogsUtil; import com.dkanada.gramophone.R; @@ -23,6 +21,7 @@ public abstract class AbsThemeActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setTheme(PreferenceUtil.getInstance(this).getTheme().style); + setColor(PreferenceUtil.getInstance(this).getPrimaryColor()); MaterialDialogsUtil.updateMaterialDialogsThemeSingleton(this); } @@ -30,11 +29,8 @@ public abstract class AbsThemeActivity extends AppCompatActivity { protected void onResume() { super.onResume(); - // for some reason the recreate method has issues here if (PreferenceUtil.getInstance(this).getTheme().style != currentTheme) { - NavigationUtil.startMain(this); - overridePendingTransition(0, android.R.anim.fade_out); - finish(); + recreate(); } } @@ -45,6 +41,18 @@ public abstract class AbsThemeActivity extends AppCompatActivity { currentTheme = resId; } + public void setColor(int color) { + boolean light = ColorUtil.isColorLight(color); + + setLightStatusBar(light); + setLightNavigationBar(light); + setDrawUnderStatusBar(); + + setStatusBarColor(color); + setTaskDescriptionColor(color); + setNavigationBarColor(color); + } + protected void setDrawUnderStatusBar() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Util.setAllowDrawUnderStatusBar(getWindow()); @@ -68,32 +76,19 @@ public abstract class AbsThemeActivity extends AppCompatActivity { } } - public void setStatusBarColorAuto() { - // ignore status bar color because we are darkening the color on our own to support KitKat - setStatusBarColor(ThemeStore.primaryColor(this)); - } - public void setTaskDescriptionColor(int color) { ATH.setTaskDescriptionColor(this, color); } - public void setTaskDescriptionColorAuto() { - setTaskDescriptionColor(ThemeStore.primaryColor(this)); - } - public void setNavigationBarColor(int color) { ATH.setNavigationbarColor(this, color); } - public void setNavigationBarColorAuto() { - setNavigationBarColor(ThemeStore.navigationBarColor(this)); - } - public void setLightStatusBar(boolean enabled) { ATH.setLightStatusbar(this, enabled); } - public void setLightStatusBarAuto(int bgColor) { - setLightStatusBar(ColorUtil.isColorLight(bgColor)); + public void setLightNavigationBar(boolean enabled) { + ATH.setLightNavigationbar(this, enabled); } } diff --git a/app/src/main/java/com/dkanada/gramophone/activities/details/AlbumDetailActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/details/AlbumDetailActivity.java index 25c62b00..6eff0df3 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/details/AlbumDetailActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/details/AlbumDetailActivity.java @@ -55,7 +55,6 @@ public class AlbumDetailActivity extends AbsMusicContentActivity implements Pale super.onCreate(savedInstanceState); - setDrawUnderStatusBar(); setUpObservableListViewParams(); setUpToolbar(); setUpViews(); @@ -119,13 +118,11 @@ public class AlbumDetailActivity extends AbsMusicContentActivity implements Pale toolbarColor = color; binding.appBarLayout.setBackgroundColor(color); - setNavigationBarColor(color); - setTaskDescriptionColor(color); + setColor(color); binding.toolbar.setBackgroundColor(color); // needed to auto readjust the toolbar content color setSupportActionBar(binding.toolbar); - setStatusBarColor(color); int secondaryTextColor = MaterialValueHelper.getSecondaryTextColor(this, ColorUtil.isColorLight(color)); binding.artistIcon.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); @@ -226,6 +223,8 @@ public class AlbumDetailActivity extends AbsMusicContentActivity implements Pale @Override public void setStatusBarColor(int color) { super.setStatusBarColor(color); + + // the toolbar is always light at the moment setLightStatusBar(false); } diff --git a/app/src/main/java/com/dkanada/gramophone/activities/details/ArtistDetailActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/details/ArtistDetailActivity.java index 29b3f149..8046343d 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/details/ArtistDetailActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/details/ArtistDetailActivity.java @@ -61,7 +61,6 @@ public class ArtistDetailActivity extends AbsMusicContentActivity implements Pal // must be loaded before album adapter usePalette = PreferenceUtil.getInstance(this).getAlbumArtistColoredFooters(); - setDrawUnderStatusBar(); setUpObservableListViewParams(); setUpToolbar(); setUpViews(); @@ -169,13 +168,11 @@ public class ArtistDetailActivity extends AbsMusicContentActivity implements Pal toolbarColor = color; binding.appBarLayout.setBackgroundColor(color); - setNavigationBarColor(color); - setTaskDescriptionColor(color); + setColor(color); binding.toolbar.setBackgroundColor(color); // needed to auto readjust the toolbar content color setSupportActionBar(binding.toolbar); - setStatusBarColor(color); int secondaryTextColor = MaterialValueHelper.getSecondaryTextColor(this, ColorUtil.isColorLight(color)); binding.durationIcon.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN); @@ -254,6 +251,8 @@ public class ArtistDetailActivity extends AbsMusicContentActivity implements Pal @Override public void setStatusBarColor(int color) { super.setStatusBarColor(color); + + // the toolbar is always light at the moment setLightStatusBar(false); } diff --git a/app/src/main/java/com/dkanada/gramophone/activities/details/GenreDetailActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/details/GenreDetailActivity.java index ba322a4a..f59af41f 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/details/GenreDetailActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/details/GenreDetailActivity.java @@ -43,12 +43,6 @@ public class GenreDetailActivity extends AbsMusicContentActivity implements CabH super.onCreate(savedInstanceState); - setDrawUnderStatusBar(); - setStatusBarColorAuto(); - - setNavigationBarColorAuto(); - setTaskDescriptionColorAuto(); - setUpRecyclerView(); setUpToolBar(); } diff --git a/app/src/main/java/com/dkanada/gramophone/activities/details/PlaylistDetailActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/details/PlaylistDetailActivity.java index 74f2f7b4..f1f1bb96 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/details/PlaylistDetailActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/details/PlaylistDetailActivity.java @@ -55,12 +55,6 @@ public class PlaylistDetailActivity extends AbsMusicContentActivity implements C super.onCreate(savedInstanceState); - setDrawUnderStatusBar(); - setStatusBarColorAuto(); - - setNavigationBarColorAuto(); - setTaskDescriptionColorAuto(); - setUpRecyclerView(); setUpToolbar(); } diff --git a/app/src/main/java/com/dkanada/gramophone/adapter/song/ShuffleButtonSongAdapter.java b/app/src/main/java/com/dkanada/gramophone/adapter/song/ShuffleButtonSongAdapter.java index 2b210b7d..c61e2eb5 100644 --- a/app/src/main/java/com/dkanada/gramophone/adapter/song/ShuffleButtonSongAdapter.java +++ b/app/src/main/java/com/dkanada/gramophone/adapter/song/ShuffleButtonSongAdapter.java @@ -31,6 +31,7 @@ public class ShuffleButtonSongAdapter extends AbsOffsetSongAdapter { public void onBindViewHolder(@NonNull final SongAdapter.ViewHolder holder, int position) { if (holder.getItemViewType() == OFFSET_ITEM) { int accentColor = PreferenceUtil.getInstance(activity).getAccentColor(); + if (holder.title != null) { holder.title.setText(activity.getResources().getString(R.string.action_shuffle_all).toUpperCase()); holder.title.setTextColor(accentColor); diff --git a/app/src/main/java/com/dkanada/gramophone/fragments/main/LibraryFragment.java b/app/src/main/java/com/dkanada/gramophone/fragments/main/LibraryFragment.java index f309bbfe..a937124d 100644 --- a/app/src/main/java/com/dkanada/gramophone/fragments/main/LibraryFragment.java +++ b/app/src/main/java/com/dkanada/gramophone/fragments/main/LibraryFragment.java @@ -71,9 +71,6 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { PreferenceUtil.getInstance(getActivity()).registerOnSharedPreferenceChangedListener(this); - getMainActivity().setStatusBarColorAuto(); - getMainActivity().setNavigationBarColorAuto(); - getMainActivity().setTaskDescriptionColorAuto(); setUpToolbar(); setUpViewPager(); diff --git a/app/src/main/java/com/dkanada/gramophone/util/ThemeUtil.java b/app/src/main/java/com/dkanada/gramophone/util/ThemeUtil.java index 69cf1631..20f83763 100644 --- a/app/src/main/java/com/dkanada/gramophone/util/ThemeUtil.java +++ b/app/src/main/java/com/dkanada/gramophone/util/ThemeUtil.java @@ -15,6 +15,7 @@ public class ThemeUtil { @Nullable public static Palette generatePalette(Bitmap bitmap) { if (bitmap == null) return null; + return Palette.from(bitmap).generate(); }