Use marshmallows dark statusbar icons on light primary colors.

This commit is contained in:
Karim Abou Zeid 2015-12-27 22:28:54 +01:00
commit d7f57bb1f1
8 changed files with 75 additions and 12 deletions

View file

@ -243,7 +243,9 @@ public class AboutActivity extends AbsBaseActivity implements View.OnClickListen
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
ViewUtil.setToolbarContentColorForBackground(this, toolbar, getThemeColorPrimary()); boolean darkContent = ColorUtil.useDarkTextColorOnBackground(getThemeColorPrimary());
ViewUtil.setToolbarContentDark(this, toolbar, darkContent);
setUseDarkStatusBarIcons(darkContent);
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }
} }

View file

@ -71,7 +71,7 @@ import butterknife.Bind;
import butterknife.ButterKnife; import butterknife.ButterKnife;
public class MainActivity extends AbsSlidingMusicPanelActivity public class MainActivity extends AbsSlidingMusicPanelActivity
implements KabViewsDisableAble, CabHolder { implements KabViewsDisableAble, CabHolder, DrawerLayout.DrawerListener {
public static final String TAG = MainActivity.class.getSimpleName(); public static final String TAG = MainActivity.class.getSimpleName();
@ -223,7 +223,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
public void run() { public void run() {
DonationDialog.create().show(getSupportFragmentManager(), "DONATION_DIALOG"); DonationDialog.create().show(getSupportFragmentManager(), "DONATION_DIALOG");
} }
}, 300); }, 200);
break; break;
case R.id.nav_settings: case R.id.nav_settings:
new Handler().postDelayed(new Runnable() { new Handler().postDelayed(new Runnable() {
@ -239,7 +239,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
public void run() { public void run() {
startActivity(new Intent(MainActivity.this, AboutActivity.class)); startActivity(new Intent(MainActivity.this, AboutActivity.class));
} }
}, 300); }, 200);
break; break;
} }
return true; return true;
@ -249,6 +249,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
private void setUpDrawerLayout() { private void setUpDrawerLayout() {
setUpNavigationView(); setUpNavigationView();
drawerLayout.setDrawerListener(this);
} }
private void updateNavigationDrawerHeader() { private void updateNavigationDrawerHeader() {
@ -339,7 +340,9 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
menu.removeItem(R.id.action_grid_size); menu.removeItem(R.id.action_grid_size);
menu.removeItem(R.id.action_colored_footers); menu.removeItem(R.id.action_colored_footers);
} }
ViewUtil.setToolbarContentColorForBackground(this, toolbar, getThemeColorPrimary()); boolean darkContent = ColorUtil.useDarkTextColorOnBackground(getThemeColorPrimary());
ViewUtil.setToolbarContentDark(this, toolbar, darkContent);
setUseDarkStatusBarIcons(darkContent);
return true; return true;
} }
@ -614,4 +617,24 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
e.printStackTrace(); e.printStackTrace();
} }
} }
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
setUseDarkStatusBarIcons(false);
}
@Override
public void onDrawerClosed(View drawerView) {
setUseDarkStatusBarIcons(ColorUtil.useDarkTextColorOnBackground(getThemeColorPrimary()));
}
@Override
public void onDrawerStateChanged(int newState) {
}
} }

View file

@ -159,7 +159,9 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_playlist_detail, menu); getMenuInflater().inflate(R.menu.menu_playlist_detail, menu);
ViewUtil.setToolbarContentColorForBackground(this, toolbar, getThemeColorPrimary()); boolean darkContent = ColorUtil.useDarkTextColorOnBackground(getThemeColorPrimary());
ViewUtil.setToolbarContentDark(this, toolbar, darkContent);
setUseDarkStatusBarIcons(darkContent);
return true; return true;
} }
@ -217,7 +219,9 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
@Override @Override
public void onPause() { public void onPause() {
if (recyclerViewDragDropManager != null) {
recyclerViewDragDropManager.cancelDrag(); recyclerViewDragDropManager.cancelDrag();
}
super.onPause(); super.onPause();
} }

View file

@ -22,6 +22,7 @@ import com.afollestad.materialdialogs.color.ColorChooserDialog;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.prefs.ColorChooserPreference; import com.kabouzeid.gramophone.prefs.ColorChooserPreference;
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity; import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
import com.kabouzeid.gramophone.util.ColorUtil;
import com.kabouzeid.gramophone.util.NavigationUtil; import com.kabouzeid.gramophone.util.NavigationUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.PreferenceUtil;
import com.kabouzeid.gramophone.util.ViewUtil; import com.kabouzeid.gramophone.util.ViewUtil;
@ -80,7 +81,9 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
ViewUtil.setToolbarContentColorForBackground(this, toolbar, getThemeColorPrimary()); boolean darkContent = ColorUtil.useDarkTextColorOnBackground(getThemeColorPrimary());
ViewUtil.setToolbarContentDark(this, toolbar, darkContent);
setUseDarkStatusBarIcons(darkContent);
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }

View file

@ -35,6 +35,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
private int navigationBarColor; private int navigationBarColor;
private int taskColor; private int taskColor;
private boolean useDarkStatusBarIcons;
private AbsPlayerFragment playerFragment; private AbsPlayerFragment playerFragment;
private MiniPlayerFragment miniPlayerFragment; private MiniPlayerFragment miniPlayerFragment;
@ -99,6 +100,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
@Override @Override
public void onPanelCollapsed(View view) { public void onPanelCollapsed(View view) {
super.setUseDarkStatusBarIcons(useDarkStatusBarIcons);
super.notifyTaskColorChange(taskColor); super.notifyTaskColorChange(taskColor);
if (shouldColorNavigationBar()) { if (shouldColorNavigationBar()) {
super.setNavigationBarColor(navigationBarColor); super.setNavigationBarColor(navigationBarColor);
@ -110,6 +112,7 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
@Override @Override
public void onPanelExpanded(View view) { public void onPanelExpanded(View view) {
super.setUseDarkStatusBarIcons(false);
int playerFragmentColor = playerFragment.getPaletteColor(); int playerFragmentColor = playerFragment.getPaletteColor();
super.notifyTaskColorChange(playerFragmentColor); super.notifyTaskColorChange(playerFragmentColor);
if (shouldColorNavigationBar()) { if (shouldColorNavigationBar()) {
@ -179,6 +182,14 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
super.onBackPressed(); super.onBackPressed();
} }
@Override
protected void setUseDarkStatusBarIcons(boolean useDarkIcons) {
useDarkStatusBarIcons = useDarkIcons;
if (getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
super.setUseDarkStatusBarIcons(useDarkIcons);
}
}
@Override @Override
protected void setNavigationBarColor(@ColorInt int color) { protected void setNavigationBarColor(@ColorInt int color) {
this.navigationBarColor = color; this.navigationBarColor = color;

View file

@ -151,6 +151,18 @@ public abstract class AbsThemeActivity extends AppCompatActivity implements KabV
getWindow().setStatusBarColor(ColorUtil.shiftColorDown(color)); getWindow().setStatusBarColor(ColorUtil.shiftColorDown(color));
} }
} }
}
protected void setUseDarkStatusBarIcons(boolean useDarkIcons) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int systemUiVisibility = getWindow().getDecorView().getSystemUiVisibility();
if (useDarkIcons) {
getWindow().getDecorView().setSystemUiVisibility(systemUiVisibility | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
} else {
getWindow().getDecorView().setSystemUiVisibility(systemUiVisibility & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
}
} }
protected final void setNavigationBarThemeColor() { protected final void setNavigationBarThemeColor() {

View file

@ -208,7 +208,9 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
if (shouldColorNavigationBar()) if (shouldColorNavigationBar())
setNavigationBarColor(paletteColorPrimary); setNavigationBarColor(paletteColorPrimary);
header.setBackgroundColor(paletteColorPrimary); header.setBackgroundColor(paletteColorPrimary);
ViewUtil.setToolbarContentColorForBackground(this, toolbar, paletteColorPrimary); boolean darkContent = ColorUtil.useDarkTextColorOnBackground(paletteColorPrimary);
ViewUtil.setToolbarContentDark(this, toolbar, darkContent);
setUseDarkStatusBarIcons(darkContent);
notifyTaskColorChange(paletteColorPrimary); notifyTaskColorChange(paletteColorPrimary);
} }
@ -250,7 +252,9 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
ViewUtil.setToolbarContentColorForBackground(this, toolbar, paletteColorPrimary); boolean darkContent = ColorUtil.useDarkTextColorOnBackground(paletteColorPrimary);
ViewUtil.setToolbarContentDark(this, toolbar, darkContent);
setUseDarkStatusBarIcons(darkContent);
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }
@ -313,7 +317,9 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
setNavigationBarColor(paletteColorPrimary); setNavigationBarColor(paletteColorPrimary);
setStatusBarColor(paletteColorPrimary); setStatusBarColor(paletteColorPrimary);
header.setBackgroundColor(paletteColorPrimary); header.setBackgroundColor(paletteColorPrimary);
ViewUtil.setToolbarContentColorForBackground(AbsTagEditorActivity.this, toolbar, paletteColorPrimary); boolean darkContent = ColorUtil.useDarkTextColorOnBackground(paletteColorPrimary);
ViewUtil.setToolbarContentDark(AbsTagEditorActivity.this, toolbar, darkContent);
setUseDarkStatusBarIcons(darkContent);
notifyTaskColorChange(paletteColorPrimary); notifyTaskColorChange(paletteColorPrimary);
} else { } else {
resetColors(); resetColors();

View file

@ -147,7 +147,9 @@ public class PlayerFragment extends AbsPlayerFragment implements PlayerAlbumCove
@Override @Override
public void onPause() { public void onPause() {
if (recyclerViewDragDropManager != null) {
recyclerViewDragDropManager.cancelDrag(); recyclerViewDragDropManager.cancelDrag();
}
super.onPause(); super.onPause();
} }