Add dark toolbar theme

pull/413/head
Alex Baker 10 years ago
parent 5d8c6211cc
commit 0d2b20c032

@ -2,13 +2,11 @@ package org.tasks.locale.ui.activity;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.graphics.drawable.DrawableCompat; import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
@ -32,7 +30,7 @@ import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompatActivity implements PurchaseHelperCallback { public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompatActivity implements PurchaseHelperCallback, Toolbar.OnMenuItemClickListener {
private static final int REQUEST_SELECT_FILTER = 10124; private static final int REQUEST_SELECT_FILTER = 10124;
private static final int REQUEST_PURCHASE = 10125; private static final int REQUEST_PURCHASE = 10125;
@ -66,15 +64,33 @@ public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompa
} }
updateView(); updateView();
setSupportActionBar(toolbar); toolbar.setNavigationIcon(DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_close_24dp)));
ActionBar supportActionBar = getSupportActionBar(); toolbar.setOnMenuItemClickListener(this);
if (supportActionBar != null) { toolbar.setNavigationOnClickListener(new View.OnClickListener() {
supportActionBar.setDisplayHomeAsUpEnabled(true); @Override
Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_close_24dp)); public void onClick(View view) {
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white)); if (equalBundles(getResultBundle(), previousBundle)) {
supportActionBar.setHomeAsUpIndicator(drawable); cancel();
supportActionBar.setDisplayShowTitleEnabled(false); } else {
dialogBuilder.newMessageDialog(R.string.discard_changes)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
cancel();
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
} }
})
.show();
}
}
});
toolbar.inflateMenu(R.menu.tasker_menu);
MenuColorizer.colorToolbar(this, toolbar);
if (!preferences.hasPurchase(R.string.p_purchased_tasker) && !purchaseInitiated) { if (!preferences.hasPurchase(R.string.p_purchased_tasker) && !purchaseInitiated) {
purchaseInitiated = purchaseHelper.purchase(dialogBuilder, this, getString(R.string.sku_tasker), getString(R.string.p_purchased_tasker), REQUEST_PURCHASE, this); purchaseInitiated = purchaseHelper.purchase(dialogBuilder, this, getString(R.string.sku_tasker), getString(R.string.p_purchased_tasker), REQUEST_PURCHASE, this);
@ -110,45 +126,6 @@ public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompa
return filter.listingTitle; return filter.listingTitle;
} }
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.tasker_menu, menu);
MenuColorizer.colorMenu(this, menu, getResources().getColor(android.R.color.white));
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_save:
finish();
break;
case android.R.id.home:
if (equalBundles(getResultBundle(), previousBundle)) {
cancel();
} else {
dialogBuilder.newMessageDialog(R.string.discard_changes)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
cancel();
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
}
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
private void cancel() { private void cancel() {
mIsCancelled = true; mIsCancelled = true;
finish(); finish();
@ -233,4 +210,14 @@ public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompa
cancel(); cancel();
} }
} }
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_save:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
} }

@ -8,12 +8,9 @@ package com.todoroo.astrid.actfm;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.graphics.drawable.DrawableCompat; import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
@ -38,7 +35,7 @@ import butterknife.ButterKnife;
import static android.text.TextUtils.isEmpty; import static android.text.TextUtils.isEmpty;
public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity { public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity implements Toolbar.OnMenuItemClickListener {
public static final String TOKEN_FILTER = "token_filter"; public static final String TOKEN_FILTER = "token_filter";
@ -60,16 +57,10 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity {
filter = getIntent().getParcelableExtra(TOKEN_FILTER); filter = getIntent().getParcelableExtra(TOKEN_FILTER);
setSupportActionBar(toolbar);
ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true);
final boolean backButtonSavesTask = preferences.backButtonSavesTask(); final boolean backButtonSavesTask = preferences.backButtonSavesTask();
Drawable drawable = DrawableCompat.wrap(getResources().getDrawable( toolbar.setNavigationIcon(DrawableCompat.wrap(getResources().getDrawable(
backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp)); backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp)));
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white)); toolbar.setTitle(filter.listingTitle);
supportActionBar.setHomeAsUpIndicator(drawable);
supportActionBar.setTitle(filter.listingTitle);
toolbar.setNavigationOnClickListener(new View.OnClickListener() { toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -80,7 +71,9 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity {
} }
} }
}); });
} toolbar.inflateMenu(R.menu.tag_settings_activity);
toolbar.setOnMenuItemClickListener(this);
MenuColorizer.colorToolbar(this, toolbar);
filterName.setText(filter.listingTitle); filterName.setText(filter.listingTitle);
} }
@ -116,13 +109,6 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity {
super.finish(); super.finish();
} }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.tag_settings_activity, menu);
MenuColorizer.colorMenu(this, menu, getResources().getColor(android.R.color.white));
return super.onCreateOptionsMenu(menu);
}
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (preferences.backButtonSavesTask()) { if (preferences.backButtonSavesTask()) {
@ -132,16 +118,6 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity {
} }
} }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
deleteTag();
break;
}
return super.onOptionsItemSelected(item);
}
private void deleteTag() { private void deleteTag() {
dialogBuilder.newMessageDialog(R.string.delete_tag_confirmation, filter.listingTitle) dialogBuilder.newMessageDialog(R.string.delete_tag_confirmation, filter.listingTitle)
.setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() { .setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
@ -172,4 +148,14 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity {
.show(); .show();
} }
} }
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
deleteTag();
break;
}
return super.onOptionsItemSelected(item);
}
} }

@ -9,12 +9,8 @@ import android.app.FragmentManager;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
@ -43,7 +39,6 @@ import org.tasks.injection.ThemedInjectingAppCompatActivity;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.themes.ThemeCache; import org.tasks.themes.ThemeCache;
import org.tasks.themes.ThemeColor; import org.tasks.themes.ThemeColor;
import org.tasks.ui.MenuColorizer;
import javax.inject.Inject; import javax.inject.Inject;
@ -55,7 +50,7 @@ import timber.log.Timber;
import static android.text.TextUtils.isEmpty; import static android.text.TextUtils.isEmpty;
import static org.tasks.dialogs.ThemePickerDialog.newThemePickerDialog; import static org.tasks.dialogs.ThemePickerDialog.newThemePickerDialog;
public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implements ThemePickerDialog.ThemePickerCallback, PurchaseHelperCallback { public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implements ThemePickerDialog.ThemePickerCallback, PurchaseHelperCallback, Toolbar.OnMenuItemClickListener {
private static final String FRAG_TAG_COLOR_PICKER = "frag_tag_color_picker"; private static final String FRAG_TAG_COLOR_PICKER = "frag_tag_color_picker";
@ -98,16 +93,10 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
tagData.setUUID(UUIDHelper.newUUID()); tagData.setUUID(UUIDHelper.newUUID());
} }
setSupportActionBar(toolbar);
ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true);
final boolean backButtonSavesTask = preferences.backButtonSavesTask(); final boolean backButtonSavesTask = preferences.backButtonSavesTask();
Drawable drawable = DrawableCompat.wrap(getResources().getDrawable( toolbar.setTitle(isNewTag ? getString(R.string.new_tag) : tagData.getName());
toolbar.setNavigationIcon(getResources().getDrawable(
backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp)); backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp));
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white));
supportActionBar.setHomeAsUpIndicator(drawable);
supportActionBar.setTitle(isNewTag ? getString(R.string.new_tag) : tagData.getName());
toolbar.setNavigationOnClickListener(new View.OnClickListener() { toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -118,7 +107,9 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
} }
} }
}); });
} toolbar.inflateMenu(R.menu.tag_settings_activity);
toolbar.setOnMenuItemClickListener(this);
toolbar.showOverflowMenu();
tagName.setText(tagData.getName()); tagName.setText(tagData.getName());
@ -127,6 +118,7 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
tagName.setText(autopopulateName); tagName.setText(autopopulateName);
getIntent().removeExtra(TOKEN_AUTOPOPULATE_NAME); getIntent().removeExtra(TOKEN_AUTOPOPULATE_NAME);
} else if (isNewTag) { } else if (isNewTag) {
toolbar.getMenu().findItem(R.id.delete).setVisible(false);
tagName.requestFocus(); tagName.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(tagName, InputMethodManager.SHOW_IMPLICIT); imm.showSoftInput(tagName, InputMethodManager.SHOW_IMPLICIT);
@ -213,16 +205,6 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
super.finish(); super.finish();
} }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.tag_settings_activity, menu);
MenuColorizer.colorMenu(this, menu, getResources().getColor(android.R.color.white));
if (isNewTag) {
menu.findItem(R.id.delete).setVisible(false);
}
return super.onCreateOptionsMenu(menu);
}
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (preferences.backButtonSavesTask()) { if (preferences.backButtonSavesTask()) {
@ -232,16 +214,6 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
} }
} }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
deleteTag();
break;
}
return super.onOptionsItemSelected(item);
}
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_PURCHASE) { if (requestCode == REQUEST_PURCHASE) {
@ -292,19 +264,19 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
} }
private void updateTheme() { private void updateTheme() {
ThemeColor color;
if (selectedTheme < 0) { if (selectedTheme < 0) {
color = themeColor;
themeName.setText(R.string.none); themeName.setText(R.string.none);
toolbar.setBackgroundColor(themeColor.getPrimaryColor());
themeColor.applyStatusBarColor(this);
clear.setVisibility(View.GONE); clear.setVisibility(View.GONE);
} else { } else {
ThemeColor themeColor = themeCache.getThemeColor(selectedTheme); color = themeCache.getThemeColor(selectedTheme);
toolbar.setBackgroundColor(themeColor.getPrimaryColor()); themeName.setText(color.getName());
themeColor.applyStatusBarColor(this);
themeName.setText(themeColor.getName());
clear.setVisibility(View.VISIBLE); clear.setVisibility(View.VISIBLE);
} }
color.apply(toolbar);
color.applyStatusBarColor(this);
} }
@Override @Override
@ -325,4 +297,14 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
} }
}); });
} }
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
deleteTag();
break;
}
return super.onOptionsItemSelected(item);
}
} }

@ -29,6 +29,7 @@ import org.tasks.R;
import org.tasks.injection.ActivityComponent; import org.tasks.injection.ActivityComponent;
import org.tasks.injection.ThemedInjectingAppCompatActivity; import org.tasks.injection.ThemedInjectingAppCompatActivity;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.ui.MenuColorizer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -39,7 +40,7 @@ import javax.inject.Inject;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
public class BeastModePreferences extends ThemedInjectingAppCompatActivity { public class BeastModePreferences extends ThemedInjectingAppCompatActivity implements Toolbar.OnMenuItemClickListener {
@BindView(R.id.toolbar) Toolbar toolbar; @BindView(R.id.toolbar) Toolbar toolbar;
@BindView(android.R.id.list) TouchListView touchList; @BindView(android.R.id.list) TouchListView touchList;
@ -63,21 +64,16 @@ public class BeastModePreferences extends ThemedInjectingAppCompatActivity {
setContentView(R.layout.beast_mode_pref_activity); setContentView(R.layout.beast_mode_pref_activity);
ButterKnife.bind(this); ButterKnife.bind(this);
setSupportActionBar(toolbar); toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_arrow_back_24dp));
ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true);
supportActionBar.setDisplayShowTitleEnabled(false);
Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_arrow_back_24dp));
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white));
supportActionBar.setHomeAsUpIndicator(drawable);
}
toolbar.setNavigationOnClickListener(new View.OnClickListener() { toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
finish(); finish();
} }
}); });
toolbar.inflateMenu(R.menu.beast_mode);
toolbar.setOnMenuItemClickListener(this);
MenuColorizer.colorToolbar(this, toolbar);
prefsToDescriptions = new HashMap<>(); prefsToDescriptions = new HashMap<>();
buildDescriptionMap(getResources()); buildDescriptionMap(getResources());
@ -116,13 +112,7 @@ public class BeastModePreferences extends ThemedInjectingAppCompatActivity {
} }
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onMenuItemClick(MenuItem item) {
getMenuInflater().inflate(R.menu.beast_mode, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) { switch(item.getItemId()) {
case R.id.menu_reset_to_defaults: case R.id.menu_reset_to_defaults:
resetToDefault(); resetToDefault();

@ -131,10 +131,8 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
} }
final boolean backButtonSavesTask = preferences.backButtonSavesTask(); final boolean backButtonSavesTask = preferences.backButtonSavesTask();
Drawable drawable = DrawableCompat.wrap(getResources().getDrawable( toolbar.setNavigationIcon(DrawableCompat.wrap(getResources().getDrawable(
backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp)); backButtonSavesTask ? R.drawable.ic_close_24dp : R.drawable.ic_save_24dp)));
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white));
toolbar.setNavigationIcon(drawable);
toolbar.setNavigationOnClickListener(new View.OnClickListener() { toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -146,11 +144,8 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
} }
}); });
toolbar.inflateMenu(R.menu.task_edit_fragment); toolbar.inflateMenu(R.menu.task_edit_fragment);
Menu menu = toolbar.getMenu();
for (int i = 0 ; i < menu.size() ; i++) {
MenuColorizer.colorMenuItem(menu.getItem(i), getResources().getColor(android.R.color.white));
}
toolbar.setOnMenuItemClickListener(this); toolbar.setOnMenuItemClickListener(this);
MenuColorizer.colorToolbar(context, toolbar);
notificationManager.cancel(model.getId()); notificationManager.cancel(model.getId());

@ -13,9 +13,7 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteException;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v4.view.MenuItemCompat; import android.support.v4.view.MenuItemCompat;
import android.support.v4.widget.SwipeRefreshLayout; import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.SearchView; import android.support.v7.widget.SearchView;
@ -254,9 +252,7 @@ public class TaskListFragment extends InjectingListFragment implements
listView.setEmptyView(emptyView); listView.setEmptyView(emptyView);
toolbar.setTitle(filter.listingTitle); toolbar.setTitle(filter.listingTitle);
Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_menu_24dp)); toolbar.setNavigationIcon(R.drawable.ic_menu_24dp);
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white));
toolbar.setNavigationIcon(drawable);
toolbar.setNavigationOnClickListener(new View.OnClickListener() { toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -264,12 +260,9 @@ public class TaskListFragment extends InjectingListFragment implements
} }
}); });
inflateMenu(toolbar); inflateMenu(toolbar);
Menu menu = toolbar.getMenu(); setupMenu(toolbar.getMenu());
for (int i = 0 ; i < menu.size() ; i++) {
MenuColorizer.colorMenuItem(menu.getItem(i), getResources().getColor(android.R.color.white));
}
toolbar.setOnMenuItemClickListener(this); toolbar.setOnMenuItemClickListener(this);
setupMenu(menu); MenuColorizer.colorToolbar(context, toolbar);
return parent; return parent;
} }

@ -10,12 +10,14 @@ import android.app.PendingIntent.CanceledException;
import android.content.Context; import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.Color;
import android.graphics.Paint; import android.graphics.Paint;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.SpannableStringBuilder; import android.text.SpannableStringBuilder;
import android.text.Spanned; import android.text.Spanned;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.style.BackgroundColorSpan; import android.text.style.BackgroundColorSpan;
import android.text.style.ForegroundColorSpan;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -546,7 +548,9 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
SpannableString string = new SpannableString(SPACE + tagName + SPACE); SpannableString string = new SpannableString(SPACE + tagName + SPACE);
int themeIndex = tagData.getColor() >= 0 ? tagData.getColor() : 19; int themeIndex = tagData.getColor() >= 0 ? tagData.getColor() : 19;
int backgroundColor = themeCache.getThemeColor(themeIndex).getPrimaryColor(); int backgroundColor = themeCache.getThemeColor(themeIndex).getPrimaryColor();
int foregroundColor = themeCache.getThemeColor(themeIndex).getActionBarTint();
string.setSpan(new BackgroundColorSpan(backgroundColor), 0, string.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); string.setSpan(new BackgroundColorSpan(backgroundColor), 0, string.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
string.setSpan(new ForegroundColorSpan(foregroundColor), 0, string.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
return string; return string;
} }
}; };

@ -10,14 +10,10 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo; import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.View.OnCreateContextMenuListener; import android.view.View.OnCreateContextMenuListener;
@ -45,7 +41,6 @@ import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.filters.FilterCriteriaProvider; import org.tasks.filters.FilterCriteriaProvider;
import org.tasks.injection.ActivityComponent; import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.injection.ThemedInjectingAppCompatActivity; import org.tasks.injection.ThemedInjectingAppCompatActivity;
import org.tasks.ui.MenuColorizer; import org.tasks.ui.MenuColorizer;
@ -66,7 +61,7 @@ import static android.text.TextUtils.isEmpty;
* @author Tim Su <tim@todoroo.com> * @author Tim Su <tim@todoroo.com>
* *
*/ */
public class CustomFilterActivity extends ThemedInjectingAppCompatActivity { public class CustomFilterActivity extends ThemedInjectingAppCompatActivity implements Toolbar.OnMenuItemClickListener {
private static final String IDENTIFIER_UNIVERSE = "active"; //$NON-NLS-1$ private static final String IDENTIFIER_UNIVERSE = "active"; //$NON-NLS-1$
@ -152,16 +147,17 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity {
setContentView(R.layout.custom_filter_activity); setContentView(R.layout.custom_filter_activity);
ButterKnife.bind(this); ButterKnife.bind(this);
setSupportActionBar(toolbar); toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_close_24dp));
ActionBar supportActionBar = getSupportActionBar(); toolbar.setTitle(R.string.FLA_new_filter);
if (supportActionBar != null) { toolbar.inflateMenu(R.menu.menu_custom_filter_activity);
supportActionBar.setDisplayHomeAsUpEnabled(true); toolbar.setOnMenuItemClickListener(this);
Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_close_24dp)); toolbar.setNavigationOnClickListener(new View.OnClickListener() {
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white)); @Override
supportActionBar.setHomeAsUpIndicator(drawable); public void onClick(View view) {
supportActionBar.setTitle(R.string.FLA_new_filter); discard();
} }
});
MenuColorizer.colorToolbar(this, toolbar);
listView = (ListView) findViewById(android.R.id.list); listView = (ListView) findViewById(android.R.id.list);
database.openForReading(); database.openForReading();
@ -352,22 +348,11 @@ public class CustomFilterActivity extends ThemedInjectingAppCompatActivity {
} }
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onMenuItemClick(MenuItem item) {
getMenuInflater().inflate(R.menu.menu_custom_filter_activity, menu);
MenuColorizer.colorMenu(this, menu, getResources().getColor(android.R.color.white));
menu.findItem(R.id.delete).setVisible(false);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {
case android.R.id.home:
discard();
break;
case R.id.menu_save: case R.id.menu_save:
saveAndView(); saveAndView();
break; return true;
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }

@ -4,10 +4,13 @@ import android.app.Activity;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.TypedValue;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -64,8 +67,6 @@ public class CommentBarFragment extends TaskEditControlFragment {
private static final String EXTRA_TEXT = "extra_text"; private static final String EXTRA_TEXT = "extra_text";
private static final String EXTRA_PICTURE = "extra_picture"; private static final String EXTRA_PICTURE = "extra_picture";
private final int cameraButton = R.drawable.ic_camera_alt_white_24dp;
@Inject Activity activity; @Inject Activity activity;
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
@Inject Device device; @Inject Device device;
@ -113,6 +114,7 @@ public class CommentBarFragment extends TaskEditControlFragment {
commentBar.setVisibility(View.GONE); commentBar.setVisibility(View.GONE);
} }
resetPictureButton();
return view; return view;
} }
@ -184,7 +186,7 @@ public class CommentBarFragment extends TaskEditControlFragment {
@Override @Override
public void clearImage() { public void clearImage() {
pendingCommentPicture = null; pendingCommentPicture = null;
pictureButton.setImageResource(cameraButton); resetPictureButton();
} }
}); });
} }
@ -233,10 +235,18 @@ public class CommentBarFragment extends TaskEditControlFragment {
} }
pendingCommentPicture = null; pendingCommentPicture = null;
pictureButton.setImageResource(cameraButton); resetPictureButton();
callback.addComment(message, actionCode, picture); callback.addComment(message, actionCode, picture);
} }
private void resetPictureButton() {
TypedValue typedValue = new TypedValue();
getContext().getTheme().resolveAttribute(R.attr.actionBarPrimaryText, typedValue, true);
Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_camera_alt_black_24dp));
drawable.setTint(typedValue.data);
pictureButton.setImageDrawable(drawable);
}
private void showPictureLauncher(final ClearImageCallback clearImageOption) { private void showPictureLauncher(final ClearImageCallback clearImageOption) {
final List<Runnable> runnables = new ArrayList<>(); final List<Runnable> runnables = new ArrayList<>();
List<String> options = new ArrayList<>(); List<String> options = new ArrayList<>();

@ -1,11 +1,9 @@
package org.tasks.injection; package org.tasks.injection;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.preference.Preference; import android.preference.Preference;
import android.preference.PreferenceCategory; import android.preference.PreferenceCategory;
import android.preference.PreferenceGroup; import android.preference.PreferenceGroup;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -15,6 +13,7 @@ import org.tasks.R;
import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracker;
import org.tasks.preferences.AppCompatPreferenceActivity; import org.tasks.preferences.AppCompatPreferenceActivity;
import org.tasks.themes.Theme; import org.tasks.themes.Theme;
import org.tasks.ui.MenuColorizer;
import javax.inject.Inject; import javax.inject.Inject;
@ -48,15 +47,14 @@ public abstract class InjectingPreferenceActivity extends AppCompatPreferenceAct
toolbar = (Toolbar) toolbarContainer.findViewById(R.id.toolbar); toolbar = (Toolbar) toolbarContainer.findViewById(R.id.toolbar);
toolbar.setTitle(getTitle()); toolbar.setTitle(getTitle());
Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_arrow_back_24dp)); toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_arrow_back_24dp));
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white));
toolbar.setNavigationIcon(drawable);
toolbar.setNavigationOnClickListener(new View.OnClickListener() { toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
finish(); finish();
} }
}); });
MenuColorizer.colorToolbar(this, toolbar);
} }
@Override @Override

@ -35,7 +35,9 @@ public class ThemeCache {
colorNames[i], colorNames[i],
i, i,
resolveAttribute(theme, R.attr.colorPrimary), resolveAttribute(theme, R.attr.colorPrimary),
resolveAttribute(theme, R.attr.colorPrimaryDark))); resolveAttribute(theme, R.attr.colorPrimaryDark),
resolveAttribute(theme, R.attr.actionBarPrimaryText),
resolveBoolean(theme, R.attr.dark_status_bar)));
} }
String[] accentNames = resources.getStringArray(R.array.accents); String[] accentNames = resources.getStringArray(R.array.accents);
for (int i = 0 ; i < ThemeAccent.ACCENTS.length ; i++) { for (int i = 0 ; i < ThemeAccent.ACCENTS.length ; i++) {
@ -64,4 +66,10 @@ public class ThemeCache {
theme.resolveAttribute(attribute, typedValue, true); theme.resolveAttribute(attribute, typedValue, true);
return typedValue.data; return typedValue.data;
} }
private boolean resolveBoolean(Resources.Theme theme, int attribute) {
TypedValue typedValue = new TypedValue();
theme.resolveAttribute(attribute, typedValue, false);
return typedValue.data != 0;
}
} }

@ -5,8 +5,12 @@ import android.app.ActivityManager;
import android.content.Context; import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.support.v4.widget.DrawerLayout; import android.support.v4.widget.DrawerLayout;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Window;
import org.tasks.R; import org.tasks.R;
import org.tasks.ui.MenuColorizer;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
@ -37,30 +41,46 @@ public class ThemeColor {
private final String name; private final String name;
private final int index; private final int index;
private final int actionBarTint;
private final int style; private final int style;
private final int colorPrimary; private final int colorPrimary;
private final int colorPrimaryDark; private final int colorPrimaryDark;
private final boolean isDark;
public ThemeColor(String name, int index, int colorPrimary, int colorPrimaryDark) { public ThemeColor(String name, int index, int colorPrimary, int colorPrimaryDark, int actionBarTint, boolean isDark) {
this.name = name; this.name = name;
this.index = index; this.index = index;
this.actionBarTint = actionBarTint;
this.style = COLORS[index]; this.style = COLORS[index];
this.colorPrimary = colorPrimary; this.colorPrimary = colorPrimary;
this.colorPrimaryDark = colorPrimaryDark; this.colorPrimaryDark = colorPrimaryDark;
this.isDark = isDark;
} }
public void applyStatusBarColor(Activity activity) { public void applyStatusBarColor(Activity activity) {
if (atLeastLollipop()) { if (atLeastLollipop()) {
activity.getWindow().setStatusBarColor(getColorPrimaryDark()); Window window = activity.getWindow();
window.setStatusBarColor(getColorPrimaryDark());
View decorView = window.getDecorView();
int systemUiVisibility = applyLightStatusBarFlag(decorView.getSystemUiVisibility());
decorView.setSystemUiVisibility(systemUiVisibility);
} }
} }
public void applyStatusBarColor(DrawerLayout drawerLayout) { public void applyStatusBarColor(DrawerLayout drawerLayout) {
if (atLeastLollipop()) { if (atLeastLollipop()) {
drawerLayout.setStatusBarBackgroundColor(getColorPrimaryDark()); drawerLayout.setStatusBarBackgroundColor(getColorPrimaryDark());
int systemUiVisibility = applyLightStatusBarFlag(drawerLayout.getSystemUiVisibility());
drawerLayout.setSystemUiVisibility(systemUiVisibility);
} }
} }
private int applyLightStatusBarFlag(int flag) {
return isDark
? flag | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
: flag & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
}
public void applyStyle(Context context) { public void applyStyle(Context context) {
applyStyle(context.getTheme()); applyStyle(context.getTheme());
} }
@ -87,7 +107,16 @@ public class ThemeColor {
return colorPrimary; return colorPrimary;
} }
public int getActionBarTint() {
return actionBarTint;
}
public int getColorPrimaryDark() { public int getColorPrimaryDark() {
return colorPrimaryDark; return colorPrimaryDark;
} }
public void apply(Toolbar toolbar) {
toolbar.setBackgroundColor(getPrimaryColor());
MenuColorizer.colorToolbar(toolbar, actionBarTint);
}
} }

@ -15,17 +15,17 @@
*/ */
package org.tasks.ui; package org.tasks.ui;
import android.annotation.SuppressLint; import android.content.Context;
import android.app.Activity;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build; import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.widget.Toolbar;
import android.util.TypedValue;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.SubMenu; import android.view.SubMenu;
import android.view.View;
import android.view.ViewGroup; import org.tasks.R;
import android.widget.ImageButton;
/** /**
* Helper class to set the color and transparency for menu icons in an ActionBar/Toolbar.</p> * Helper class to set the color and transparency for menu icons in an ActionBar/Toolbar.</p>
@ -52,105 +52,42 @@ public class MenuColorizer {
private MenuColorizer() { private MenuColorizer() {
} }
/** Sets a color filter on all menu icons, including the overflow button (if it exists) */ public static void colorToolbar(Context context, Toolbar toolbar) {
public static void colorMenu(final Activity activity, final Menu menu, final int color) { TypedValue typedValue = new TypedValue();
colorMenu(activity, menu, color, 0); context.getTheme().resolveAttribute(R.attr.actionBarPrimaryText, typedValue, true);
colorToolbar(toolbar, typedValue.data);
}
public static void colorToolbar(Toolbar toolbar, int color) {
Drawable wrapped = DrawableCompat.wrap(toolbar.getNavigationIcon());
wrapped.setTint(color);
toolbar.setNavigationIcon(wrapped);
toolbar.setTitleTextColor(color);
colorMenu(toolbar.getMenu(), color);
} }
/** Sets a color filter on all menu icons, including the overflow button (if it exists) */ /** Sets a color filter on all menu icons, including the overflow button (if it exists) */
public static void colorMenu(final Activity activity, final Menu menu, final int color, private static void colorMenu(final Menu menu, final int color) {
final int alpha) {
for (int i = 0, size = menu.size(); i < size; i++) { for (int i = 0, size = menu.size(); i < size; i++) {
final MenuItem menuItem = menu.getItem(i); final MenuItem menuItem = menu.getItem(i);
colorMenuItem(menuItem, color, alpha); colorMenuItem(menuItem, color);
if (menuItem.hasSubMenu()) { if (menuItem.hasSubMenu()) {
final SubMenu subMenu = menuItem.getSubMenu(); final SubMenu subMenu = menuItem.getSubMenu();
for (int j = 0; j < subMenu.size(); j++) { for (int j = 0; j < subMenu.size(); j++) {
colorMenuItem(subMenu.getItem(j), color, alpha); colorMenuItem(subMenu.getItem(j), color);
} }
} }
} }
final View home = activity.findViewById(android.R.id.home);
if (home != null) {
home.post(new Runnable() {
@Override
public void run() {
colorOverflow(activity, color, alpha);
}
});
}
} }
/** Sets a color filter on a {@link MenuItem} */ /** Sets a color filter on a {@link MenuItem} */
public static void colorMenuItem(final MenuItem menuItem, final int color) { private static void colorMenuItem(final MenuItem menuItem, final int color) {
colorMenuItem(menuItem, color, 0);
}
/** Sets a color filter on a {@link MenuItem} */
public static void colorMenuItem(final MenuItem menuItem, final int color, final int alpha) {
final Drawable drawable = menuItem.getIcon(); final Drawable drawable = menuItem.getIcon();
if (drawable != null) { if (drawable != null) {
// If we don't mutate the drawable, then all drawable's with this id will have a color // If we don't mutate the drawable, then all drawable's with this id will have a color
// filter applied to it. // filter applied to it.
drawable.mutate(); drawable.mutate();
drawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP); drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
if (alpha > 0) {
drawable.setAlpha(alpha);
}
}
}
/** Sets a color filter on the OverflowMenuButton in an ActionBar or Toolbar */
public static void colorOverflow(final Activity activity, final int color) {
colorOverflow(activity, color, 0);
}
/** Sets a color filter on the OverflowMenuButton in an ActionBar or Toolbar */
@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
public static void colorOverflow(final Activity activity, final int color, final int alpha) {
final ImageButton overflow = getOverflowMenu(activity);
if (overflow != null) {
overflow.setColorFilter(color);
if (alpha > 0) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
overflow.setImageAlpha(alpha);
} else {
overflow.setAlpha(alpha);
}
} }
} }
}
/* Find that OverflowMenuButton */
private static ImageButton getOverflowMenu(final Activity activity,
final ViewGroup... viewGroup) {
final ViewGroup group;
if (viewGroup == null || viewGroup.length == 0) {
final int resId = activity.getResources().getIdentifier("action_bar", "id", "android");
if (resId != 0) {
group = (ViewGroup) activity.findViewById(resId);
} else {
group = (ViewGroup) activity.findViewById(android.R.id.content).getRootView();
}
} else {
group = viewGroup[0];
}
ImageButton overflow = null;
for (int i = 0, l = group.getChildCount(); i < l; i++) {
final View v = group.getChildAt(i);
if (v instanceof ImageButton
&& v.getClass().getSimpleName().equals("OverflowMenuButton")) {
overflow = (ImageButton) v;
} else if (v instanceof ViewGroup) {
overflow = getOverflowMenu(activity, (ViewGroup) v);
}
if (overflow != null) {
break;
}
}
return overflow;
}
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 666 B

@ -0,0 +1,6 @@
<vector android:autoMirrored="true" android:height="24dp"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/>
<path android:fillColor="#FF000000" android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/>
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 B

@ -19,7 +19,6 @@
android:layout_height="24dp" android:layout_height="24dp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="1" android:layout_weight="1"
android:src="@drawable/ic_camera_alt_white_24dp"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<EditText <EditText
@ -35,8 +34,8 @@
android:inputType="textCapSentences" android:inputType="textCapSentences"
android:paddingLeft="@dimen/keyline_second" android:paddingLeft="@dimen/keyline_second"
android:paddingStart="@dimen/keyline_second" android:paddingStart="@dimen/keyline_second"
android:textColor="@color/white_text" android:textColor="?attr/actionBarPrimaryText"
android:textColorHint="@color/white_text_hint" android:textColorHint="?attr/actionBarSecondaryText"
android:textCursorDrawable="@null" android:textCursorDrawable="@null"
android:textSize="16sp" /> android:textSize="16sp" />
@ -48,7 +47,7 @@
android:layout_weight="1" android:layout_weight="1"
android:scaleType="center" android:scaleType="center"
android:src="@drawable/ic_add_24dp" android:src="@drawable/ic_add_24dp"
android:tint="@android:color/white" android:tint="?attr/actionBarPrimaryText"
android:visibility="gone" /> android:visibility="gone" />
</LinearLayout> </LinearLayout>

@ -5,7 +5,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/colorPrimary" android:background="?attr/colorPrimary"
android:elevation="@dimen/elevation_toolbar" android:elevation="@dimen/elevation_toolbar"
app:toolbarStyle="@style/Toolbar" app:toolbarStyle="@style/Widget.AppCompat.Toolbar"
app:popupTheme="?attr/popup_theme" app:popupTheme="?attr/popup_theme"
app:theme="@style/ActionBarThemeOverlay" app:theme="?attr/overlay_theme" />
app:titleTextAppearance="@style/ActionBar.TitleText" />

@ -8,10 +8,4 @@
android:icon="@drawable/ic_save_24dp" android:icon="@drawable/ic_save_24dp"
app:showAsAction="always"/> app:showAsAction="always"/>
<item
android:id="@+id/delete"
android:title="@string/delete"
android:icon="@drawable/ic_delete_24dp"
app:showAsAction="ifRoom" />
</menu> </menu>

@ -13,6 +13,10 @@
<attr name="asTextColorHint" format="color" /> <attr name="asTextColorHint" format="color" />
<attr name="icon_tint" format="color"/> <attr name="icon_tint" format="color"/>
<attr name="popup_theme" format="reference" /> <attr name="popup_theme" format="reference" />
<attr name="overlay_theme" format="reference" />
<attr name="actionBarPrimaryText" format="color" />
<attr name="actionBarSecondaryText" format="color" />
<attr name="dark_status_bar" format="boolean" />
<attr name="alpha_primary" format="dimension" /> <attr name="alpha_primary" format="dimension" />
<attr name="alpha_secondary" format="dimension" /> <attr name="alpha_secondary" format="dimension" />

@ -102,9 +102,16 @@
<color name="white_text">#fff</color> <color name="white_text">#fff</color>
<color name="white_text_hint">#eee</color> <color name="white_text_hint">#eee</color>
<color name="black_text">#000</color>
<color name="black_text_hint">#535353</color> <color name="black_text_hint">#535353</color>
<color name="black_87">#df000000</color>
<color name="black_54">#8c000000</color>
<color name="black_38">#60000000</color>
<color name="black_12">#1e000000</color>
<color name="white_100">#ffffff</color>
<color name="white_70">#b2ffffff</color>
<color name="importance_1">@color/red_500</color> <color name="importance_1">@color/red_500</color>
<color name="importance_2">@color/amber_500</color> <color name="importance_2">@color/amber_500</color>
<color name="importance_3">@color/blue_500</color> <color name="importance_3">@color/blue_500</color>
@ -114,7 +121,6 @@
<color name="snackbar_background">@color/grey_800</color> <color name="snackbar_background">@color/grey_800</color>
<!-- deprecated --> <!-- deprecated -->
<color name="dark_blue_theme_color">#1f78b4</color>
<color name="reminder_background">#262626</color> <color name="reminder_background">#262626</color>
</resources> </resources>

@ -1,5 +1,4 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android" <resources xmlns:android="http://schemas.android.com/apk/res/android">
xmlns:app="http://schemas.android.com/apk/res-auto">
<!-- ========================================================== General --> <!-- ========================================================== General -->
@ -25,10 +24,28 @@
<item name="android:textColor">?attr/asTextColor</item> <item name="android:textColor">?attr/asTextColor</item>
</style> </style>
<style name="ActionBarThemeOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> <style name="WhiteToolbarTheme">
<item name="android:textColorPrimary">#fff</item> <item name="dark_status_bar">false</item>
<item name="colorControlNormal">#fff</item> <item name="overlay_theme">@style/WhiteToolbarOverlay</item>
<item name="colorControlHighlight">#3fff</item> <item name="actionBarPrimaryText">@color/white_100</item>
<item name="actionBarSecondaryText">@color/white_70</item>
</style>
<style name="BlackToolbarTheme">
<item name="dark_status_bar">true</item>
<item name="overlay_theme">@style/BlackToolbarOverlay</item>
<item name="actionBarPrimaryText">@color/black_87</item>
<item name="actionBarSecondaryText">@color/black_54</item>
</style>
<style name="WhiteToolbarOverlay" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<!--<item name="android:textColorPrimary">@color/white_100</item>-->
<item name="colorControlNormal">@color/white_100</item>
</style>
<style name="BlackToolbarOverlay" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<!--<item name="android:textColorPrimary">@color/black_87</item>-->
<item name="colorControlNormal">@color/black_87</item>
</style> </style>
<style name="TagSettingsRow"> <style name="TagSettingsRow">
@ -115,7 +132,7 @@
</style> </style>
<style name="FilePickerTheme" parent="NNF_BaseTheme.Light"> <style name="FilePickerTheme" parent="NNF_BaseTheme.Light">
<item name="nnf_toolbarTheme">@style/ActionBarThemeOverlay</item> <item name="nnf_toolbarTheme">?attr/overlay_theme</item>
</style> </style>
<!-- ========================================================= Premium == --> <!-- ========================================================= Premium == -->

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Amber"> <style name="Amber" parent="BlackToolbarTheme">
<item name="colorPrimary">@color/amber_500</item> <item name="colorPrimary">@color/amber_500</item>
<item name="colorPrimaryDark">@color/amber_700</item> <item name="colorPrimaryDark">@color/amber_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Blue"> <style name="Blue" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/blue_500</item> <item name="colorPrimary">@color/blue_500</item>
<item name="colorPrimaryDark">@color/blue_700</item> <item name="colorPrimaryDark">@color/blue_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="BlueGrey"> <style name="BlueGrey" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/blue_grey_500</item> <item name="colorPrimary">@color/blue_grey_500</item>
<item name="colorPrimaryDark">@color/blue_grey_700</item> <item name="colorPrimaryDark">@color/blue_grey_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Brown"> <style name="Brown" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/brown_500</item> <item name="colorPrimary">@color/brown_500</item>
<item name="colorPrimaryDark">@color/brown_700</item> <item name="colorPrimaryDark">@color/brown_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Cyan"> <style name="Cyan" parent="BlackToolbarTheme">
<item name="colorPrimary">@color/cyan_500</item> <item name="colorPrimary">@color/cyan_500</item>
<item name="colorPrimaryDark">@color/cyan_700</item> <item name="colorPrimaryDark">@color/cyan_700</item>
</style> </style>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="DarkGrey"> <style name="DarkGrey" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/grey_900</item> <item name="colorPrimary">@color/grey_900</item>
<item name="colorPrimaryDark">@android:color/black</item> <item name="colorPrimaryDark">@android:color/black</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="DeepOrange"> <style name="DeepOrange" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/deep_orange_500</item> <item name="colorPrimary">@color/deep_orange_500</item>
<item name="colorPrimaryDark">@color/deep_orange_700</item> <item name="colorPrimaryDark">@color/deep_orange_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="DeepPurple"> <style name="DeepPurple" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/deep_purple_500</item> <item name="colorPrimary">@color/deep_purple_500</item>
<item name="colorPrimaryDark">@color/deep_purple_700</item> <item name="colorPrimaryDark">@color/deep_purple_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Green"> <style name="Green" parent="BlackToolbarTheme">
<item name="colorPrimary">@color/green_500</item> <item name="colorPrimary">@color/green_500</item>
<item name="colorPrimaryDark">@color/green_700</item> <item name="colorPrimaryDark">@color/green_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Grey"> <style name="Grey" parent="BlackToolbarTheme">
<item name="colorPrimary">@color/grey_500</item> <item name="colorPrimary">@color/grey_500</item>
<item name="colorPrimaryDark">@color/grey_700</item> <item name="colorPrimaryDark">@color/grey_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Indigo"> <style name="Indigo" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/indigo_500</item> <item name="colorPrimary">@color/indigo_500</item>
<item name="colorPrimaryDark">@color/indigo_700</item> <item name="colorPrimaryDark">@color/indigo_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="LightBlue"> <style name="LightBlue" parent="BlackToolbarTheme">
<item name="colorPrimary">@color/light_blue_500</item> <item name="colorPrimary">@color/light_blue_500</item>
<item name="colorPrimaryDark">@color/light_blue_700</item> <item name="colorPrimaryDark">@color/light_blue_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="LightGreen"> <style name="LightGreen" parent="BlackToolbarTheme">
<item name="colorPrimary">@color/light_green_500</item> <item name="colorPrimary">@color/light_green_500</item>
<item name="colorPrimaryDark">@color/light_green_700</item> <item name="colorPrimaryDark">@color/light_green_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Lime"> <style name="Lime" parent="BlackToolbarTheme">
<item name="colorPrimary">@color/lime_500</item> <item name="colorPrimary">@color/lime_500</item>
<item name="colorPrimaryDark">@color/lime_700</item> <item name="colorPrimaryDark">@color/lime_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Orange"> <style name="Orange" parent="BlackToolbarTheme">
<item name="colorPrimary">@color/orange_500</item> <item name="colorPrimary">@color/orange_500</item>
<item name="colorPrimaryDark">@color/orange_700</item> <item name="colorPrimaryDark">@color/orange_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Pink"> <style name="Pink" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/pink_500</item> <item name="colorPrimary">@color/pink_500</item>
<item name="colorPrimaryDark">@color/pink_700</item> <item name="colorPrimaryDark">@color/pink_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Purple"> <style name="Purple" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/purple_500</item> <item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryDark">@color/purple_700</item> <item name="colorPrimaryDark">@color/purple_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Red"> <style name="Red" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/red_500</item> <item name="colorPrimary">@color/red_500</item>
<item name="colorPrimaryDark">@color/red_700</item> <item name="colorPrimaryDark">@color/red_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Teal"> <style name="Teal" parent="WhiteToolbarTheme">
<item name="colorPrimary">@color/teal_500</item> <item name="colorPrimary">@color/teal_500</item>
<item name="colorPrimaryDark">@color/teal_700</item> <item name="colorPrimaryDark">@color/teal_700</item>
</style> </style>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Yellow"> <style name="Yellow" parent="BlackToolbarTheme">
<item name="colorPrimary">@color/yellow_500</item> <item name="colorPrimary">@color/yellow_500</item>
<item name="colorPrimaryDark">@color/yellow_700</item> <item name="colorPrimaryDark">@color/yellow_700</item>
</style> </style>

Loading…
Cancel
Save