Use vector images

pull/322/head
Alex Baker 9 years ago
parent b96a506cb9
commit d918cc73d4

@ -3,10 +3,10 @@ sudo: false
jdk: oraclejdk7 jdk: oraclejdk7
env: env:
matrix: matrix:
- ANDROID_SDKS=android-23,sysimg-19 ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a - ANDROID_SDKS=android-22,sysimg-19 ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a
android: android:
components: components:
- android-23 - android-22
- platform-tools-23.0.1 - platform-tools-23.0.1
- build-tools-23.0.1 - build-tools-23.0.1
- extra-android-m2repository - extra-android-m2repository

@ -7,10 +7,11 @@ task wrapper(type: Wrapper) {
buildscript { buildscript {
repositories { repositories {
mavenCentral() mavenCentral()
jcenter()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:1.3.0' classpath 'com.android.tools.build:gradle:1.4.0-beta5'
} }
} }
@ -23,7 +24,7 @@ android {
lintConfig file("lint.xml") lintConfig file("lint.xml")
} }
compileSdkVersion 23 compileSdkVersion 22
buildToolsVersion "23.0.1" buildToolsVersion "23.0.1"
defaultConfig { defaultConfig {

@ -8,7 +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.v7.app.ActionBar; 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.Menu;
@ -25,6 +27,7 @@ import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingAppCompatActivity; import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
import org.tasks.ui.MenuColorizer;
import javax.inject.Inject; import javax.inject.Inject;
@ -59,7 +62,9 @@ public class FilterSettingsActivity extends InjectingAppCompatActivity {
ActionBar supportActionBar = getSupportActionBar(); ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) { if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true); supportActionBar.setDisplayHomeAsUpEnabled(true);
supportActionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_close_24dp));
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white));
supportActionBar.setHomeAsUpIndicator(drawable);
supportActionBar.setTitle(filter.listingTitle); supportActionBar.setTitle(filter.listingTitle);
} }
@ -95,6 +100,7 @@ public class FilterSettingsActivity extends InjectingAppCompatActivity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.tag_settings_activity, menu); getMenuInflater().inflate(R.menu.tag_settings_activity, menu);
MenuColorizer.colorMenu(this, menu, getResources().getColor(android.R.color.white));
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }

@ -8,7 +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.v7.app.ActionBar; 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.Menu;
@ -31,6 +33,7 @@ import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingAppCompatActivity; import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
import org.tasks.ui.MenuColorizer;
import javax.inject.Inject; import javax.inject.Inject;
@ -74,7 +77,9 @@ public class TagSettingsActivity extends InjectingAppCompatActivity {
ActionBar supportActionBar = getSupportActionBar(); ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) { if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true); supportActionBar.setDisplayHomeAsUpEnabled(true);
supportActionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_close_24dp));
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white));
supportActionBar.setHomeAsUpIndicator(drawable);
supportActionBar.setTitle(isNewTag ? getString(R.string.new_tag) : tagData.getName()); supportActionBar.setTitle(isNewTag ? getString(R.string.new_tag) : tagData.getName());
} }
@ -133,6 +138,7 @@ public class TagSettingsActivity extends InjectingAppCompatActivity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.tag_settings_activity, menu); getMenuInflater().inflate(R.menu.tag_settings_activity, menu);
MenuColorizer.colorMenu(this, menu, getResources().getColor(android.R.color.white));
if (isNewTag) { if (isNewTag) {
menu.findItem(R.id.delete).setVisible(false); menu.findItem(R.id.delete).setVisible(false);
} }

@ -47,7 +47,7 @@ public class FilterShortcutActivity extends InjectingListActivity {
setContentView(R.layout.filter_shortcut_activity); setContentView(R.layout.filter_shortcut_activity);
// set up ui // set up ui
adapter = new FilterAdapter(filterProvider, filterCounter, this, getListView(), false, preferences); adapter = new FilterAdapter(filterProvider, filterCounter, this, getListView(), false);
setListAdapter(adapter); setListAdapter(adapter);
Button button = (Button)findViewById(R.id.ok); Button button = (Button)findViewById(R.id.ok);

@ -5,8 +5,10 @@
*/ */
package com.todoroo.astrid.activity; package com.todoroo.astrid.activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.KeyEvent; import android.view.KeyEvent;
@ -18,10 +20,15 @@ import org.tasks.preferences.ActivityPreferences;
import javax.inject.Inject; import javax.inject.Inject;
import butterknife.ButterKnife;
import butterknife.InjectView;
public class TaskEditActivity extends AstridActivity { public class TaskEditActivity extends AstridActivity {
@Inject ActivityPreferences preferences; @Inject ActivityPreferences preferences;
@InjectView(R.id.toolbar) Toolbar toolbar;
/** /**
* @see android.app.Activity#onCreate(Bundle) * @see android.app.Activity#onCreate(Bundle)
*/ */
@ -31,15 +38,16 @@ public class TaskEditActivity extends AstridActivity {
preferences.applyThemeAndStatusBarColor(); preferences.applyThemeAndStatusBarColor();
setContentView(R.layout.task_edit_wrapper_activity); setContentView(R.layout.task_edit_wrapper_activity);
ButterKnife.inject(this);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar);
if (toolbar != null) { ActionBar supportActionBar = getSupportActionBar();
setSupportActionBar(toolbar); if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true);
ActionBar actionBar = getSupportActionBar(); supportActionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true); Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_arrow_back_24dp));
actionBar.setDisplayShowTitleEnabled(false); DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white));
toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp); supportActionBar.setHomeAsUpIndicator(drawable);
} }
} }

@ -10,11 +10,9 @@ import android.app.Dialog;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.KeyEvent; import android.view.KeyEvent;
@ -87,6 +85,7 @@ import org.tasks.notifications.NotificationManager;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
import org.tasks.preferences.DeviceInfo; import org.tasks.preferences.DeviceInfo;
import org.tasks.ui.DeadlineControlSet; import org.tasks.ui.DeadlineControlSet;
import org.tasks.ui.MenuColorizer;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
@ -446,11 +445,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
if (controlSet != null) { if (controlSet != null) {
ImageView icon = (ImageView) controlSet.findViewById(R.id.icon); ImageView icon = (ImageView) controlSet.findViewById(R.id.icon);
if (icon != null) { if (icon != null) {
Drawable drawable = getResources().getDrawable(curr.getIcon()); icon.setImageResource(curr.getIcon());
if (preferences.isDarkTheme()) {
drawable = whiteTint(drawable);
}
icon.setImageDrawable(drawable);
} }
basicControls.addView(controlSet); basicControls.addView(controlSet);
} }
@ -464,12 +459,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
getActivity().getIntent().removeExtra(TOKEN_OPEN_CONTROL); getActivity().getIntent().removeExtra(TOKEN_OPEN_CONTROL);
} }
private Drawable whiteTint(Drawable drawable) {
Drawable wrapDrawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(wrapDrawable, getResources().getColor(android.R.color.white));
return wrapDrawable;
}
/** /**
* Initialize task edit page in the background * Initialize task edit page in the background
* *
@ -877,6 +866,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear(); menu.clear();
inflater.inflate(R.menu.task_edit_fragment, menu); inflater.inflate(R.menu.task_edit_fragment, menu);
MenuColorizer.colorMenu(getActivity(), menu, getResources().getColor(android.R.color.white));
if (preGingerbreadMR1()) { if (preGingerbreadMR1()) {
// media recorder aac support requires api level 10 // media recorder aac support requires api level 10
// approximately 1% of current installs are using api level 7-9 // approximately 1% of current installs are using api level 7-9

@ -8,9 +8,11 @@ package com.todoroo.astrid.activity;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction; import android.support.v4.app.FragmentTransaction;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v4.view.MenuItemCompat; import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.ViewPager.OnPageChangeListener; import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.support.v4.widget.DrawerLayout; import android.support.v4.widget.DrawerLayout;
@ -53,6 +55,7 @@ import org.tasks.R;
import org.tasks.activities.SortActivity; import org.tasks.activities.SortActivity;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
import org.tasks.receivers.RepeatConfirmationReceiver; import org.tasks.receivers.RepeatConfirmationReceiver;
import org.tasks.ui.MenuColorizer;
import org.tasks.ui.NavigationDrawerFragment; import org.tasks.ui.NavigationDrawerFragment;
import javax.inject.Inject; import javax.inject.Inject;
@ -99,7 +102,9 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
ActionBar supportActionBar = getSupportActionBar(); ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) { if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true); supportActionBar.setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationIcon(R.drawable.ic_menu_white_24dp); Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(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
@ -182,6 +187,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.task_list_activity, menu); getMenuInflater().inflate(R.menu.task_list_activity, menu);
MenuColorizer.colorMenu(this, menu, getResources().getColor(android.R.color.white));
TaskListFragment tlf = getTaskListFragment(); TaskListFragment tlf = getTaskListFragment();
MenuItem hidden = menu.findItem(R.id.menu_show_hidden); MenuItem hidden = menu.findItem(R.id.menu_show_hidden);
if (preferences.getBoolean(R.string.p_show_hidden_tasks, false)) { if (preferences.getBoolean(R.string.p_show_hidden_tasks, false)) {

@ -10,8 +10,6 @@ import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.graphics.drawable.Drawable;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -35,7 +33,6 @@ import org.tasks.filters.FilterProvider;
import org.tasks.filters.NavigationDrawerAction; import org.tasks.filters.NavigationDrawerAction;
import org.tasks.filters.NavigationDrawerSeparator; import org.tasks.filters.NavigationDrawerSeparator;
import org.tasks.filters.NavigationDrawerSubheader; import org.tasks.filters.NavigationDrawerSubheader;
import org.tasks.preferences.ActivityPreferences;
import org.tasks.preferences.BasicPreferences; import org.tasks.preferences.BasicPreferences;
import org.tasks.preferences.HelpAndFeedbackActivity; import org.tasks.preferences.HelpAndFeedbackActivity;
import org.tasks.ui.NavigationDrawerFragment; import org.tasks.ui.NavigationDrawerFragment;
@ -57,21 +54,19 @@ public class FilterAdapter extends ArrayAdapter<FilterListItem> {
private final Activity activity; private final Activity activity;
private final ListView listView; private final ListView listView;
private boolean navigationDrawer; private boolean navigationDrawer;
private ActivityPreferences activityPreferences;
private final FilterListUpdateReceiver filterListUpdateReceiver = new FilterListUpdateReceiver(); private final FilterListUpdateReceiver filterListUpdateReceiver = new FilterListUpdateReceiver();
/** layout inflater */ /** layout inflater */
private final LayoutInflater inflater; private final LayoutInflater inflater;
public FilterAdapter(FilterProvider filterProvider, FilterCounter filterCounter, Activity activity, public FilterAdapter(FilterProvider filterProvider, FilterCounter filterCounter, Activity activity,
ListView listView, boolean navigationDrawer, ActivityPreferences activityPreferences) { ListView listView, boolean navigationDrawer) {
super(activity, 0); super(activity, 0);
this.filterProvider = filterProvider; this.filterProvider = filterProvider;
this.filterCounter = filterCounter; this.filterCounter = filterCounter;
this.activity = activity; this.activity = activity;
this.listView = listView; this.listView = listView;
this.navigationDrawer = navigationDrawer; this.navigationDrawer = navigationDrawer;
this.activityPreferences = activityPreferences;
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
} }
@ -261,13 +256,13 @@ public class FilterAdapter extends ArrayAdapter<FilterListItem> {
add(new NavigationDrawerAction( add(new NavigationDrawerAction(
activity.getResources().getString(R.string.new_tag), activity.getResources().getString(R.string.new_tag),
R.drawable.ic_add_black_24dp, R.drawable.ic_add_24dp,
new Intent(activity, TagSettingsActivity.class), new Intent(activity, TagSettingsActivity.class),
NavigationDrawerFragment.REQUEST_NEW_LIST)); NavigationDrawerFragment.REQUEST_NEW_LIST));
add(new NavigationDrawerAction( add(new NavigationDrawerAction(
activity.getResources().getString(R.string.FLA_new_filter), activity.getResources().getString(R.string.FLA_new_filter),
R.drawable.ic_add_black_24dp, R.drawable.ic_add_24dp,
new Intent(activity, CustomFilterActivity.class), new Intent(activity, CustomFilterActivity.class),
TaskListFragment.ACTIVITY_REQUEST_NEW_FILTER)); TaskListFragment.ACTIVITY_REQUEST_NEW_FILTER));
@ -275,17 +270,17 @@ public class FilterAdapter extends ArrayAdapter<FilterListItem> {
add(new NavigationDrawerAction( add(new NavigationDrawerAction(
activity.getResources().getString(R.string.TLA_menu_settings), activity.getResources().getString(R.string.TLA_menu_settings),
R.drawable.ic_settings_black_24dp, R.drawable.ic_settings_24dp,
new Intent(activity, BasicPreferences.class), new Intent(activity, BasicPreferences.class),
REQUEST_SETTINGS)); REQUEST_SETTINGS));
add(new NavigationDrawerAction( add(new NavigationDrawerAction(
activity.getResources().getString(R.string.help_and_feedback), activity.getResources().getString(R.string.help_and_feedback),
R.drawable.ic_help_black_24dp, R.drawable.ic_help_24dp,
new Intent(activity, HelpAndFeedbackActivity.class), new Intent(activity, HelpAndFeedbackActivity.class),
0)); 0));
add(new NavigationDrawerAction( add(new NavigationDrawerAction(
activity.getResources().getString(R.string.TLA_menu_donate), activity.getResources().getString(R.string.TLA_menu_donate),
R.drawable.ic_attach_money_black_24dp, R.drawable.ic_attach_money_24dp,
new Intent(activity, DonationActivity.class), new Intent(activity, DonationActivity.class),
0)); 0));
} }
@ -330,18 +325,8 @@ public class FilterAdapter extends ArrayAdapter<FilterListItem> {
viewHolder.view.setBackgroundResource(0); viewHolder.view.setBackgroundResource(0);
int icon = filter.icon; int icon = filter.icon;
if (icon == 0) { viewHolder.icon.setImageResource(icon);
viewHolder.icon.setVisibility(View.INVISIBLE); viewHolder.icon.setVisibility(icon == 0 ? View.INVISIBLE : View.VISIBLE);
} else {
Drawable drawable = activity.getResources().getDrawable(icon, activity.getTheme());
if (activityPreferences.isDarkTheme()) {
Drawable wrapDrawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(wrapDrawable, activity.getResources().getColor(android.R.color.white));
drawable = wrapDrawable;
}
viewHolder.icon.setImageDrawable(drawable);
viewHolder.icon.setVisibility(View.VISIBLE);
}
String title = filter.listingTitle; String title = filter.listingTitle;
if(!title.equals(viewHolder.name.getText())) { if(!title.equals(viewHolder.name.getText())) {

@ -51,7 +51,7 @@ public final class BuiltInFilterExposer {
public Filter getMyTasksFilter() { public Filter getMyTasksFilter() {
Filter myTasksFilter = getMyTasksFilter(context.getResources()); Filter myTasksFilter = getMyTasksFilter(context.getResources());
myTasksFilter.icon = R.drawable.ic_inbox_black_24dp; myTasksFilter.icon = R.drawable.ic_inbox_24dp;
return myTasksFilter; return myTasksFilter;
} }
@ -62,17 +62,17 @@ public final class BuiltInFilterExposer {
if (preferences.getBoolean(R.string.p_show_today_filter, true)) { if (preferences.getBoolean(R.string.p_show_today_filter, true)) {
Filter todayFilter = getTodayFilter(r); Filter todayFilter = getTodayFilter(r);
todayFilter.icon = R.drawable.ic_today_black_24dp; todayFilter.icon = R.drawable.ic_today_24dp;
filters.add(todayFilter); filters.add(todayFilter);
} }
if (preferences.getBoolean(R.string.p_show_recently_modified_filter, true)) { if (preferences.getBoolean(R.string.p_show_recently_modified_filter, true)) {
Filter recentlyModifiedFilter = getRecentlyModifiedFilter(r); Filter recentlyModifiedFilter = getRecentlyModifiedFilter(r);
recentlyModifiedFilter.icon = R.drawable.ic_history_black_24dp; recentlyModifiedFilter.icon = R.drawable.ic_history_24dp;
filters.add(recentlyModifiedFilter); filters.add(recentlyModifiedFilter);
} }
if (preferences.getBoolean(R.string.p_show_not_in_list_filter, true)) { if (preferences.getBoolean(R.string.p_show_not_in_list_filter, true)) {
Filter uncategorizedFilter = getUncategorizedFilter(r); Filter uncategorizedFilter = getUncategorizedFilter(r);
uncategorizedFilter.icon = R.drawable.ic_label_outline_black_24dp; uncategorizedFilter.icon = R.drawable.ic_label_outline_24dp;
filters.add(uncategorizedFilter); filters.add(uncategorizedFilter);
} }
// transmit filter list // transmit filter list

@ -10,7 +10,9 @@ 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.app.ActionBar;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.ContextMenu; import android.view.ContextMenu;
@ -45,6 +47,7 @@ import org.tasks.dialogs.DialogBuilder;
import org.tasks.filters.FilterCriteriaProvider; import org.tasks.filters.FilterCriteriaProvider;
import org.tasks.injection.InjectingAppCompatActivity; import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
import org.tasks.ui.MenuColorizer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -156,7 +159,9 @@ public class CustomFilterActivity extends InjectingAppCompatActivity {
ActionBar supportActionBar = getSupportActionBar(); ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) { if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true); supportActionBar.setDisplayHomeAsUpEnabled(true);
supportActionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp); Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_close_24dp));
DrawableCompat.setTint(drawable, getResources().getColor(android.R.color.white));
supportActionBar.setHomeAsUpIndicator(drawable);
supportActionBar.setTitle(R.string.FLA_new_filter); supportActionBar.setTitle(R.string.FLA_new_filter);
} }
@ -348,6 +353,7 @@ public class CustomFilterActivity extends InjectingAppCompatActivity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.tag_settings_activity, menu); getMenuInflater().inflate(R.menu.tag_settings_activity, menu);
MenuColorizer.colorMenu(this, menu, getResources().getColor(android.R.color.white));
menu.findItem(R.id.delete).setVisible(false); menu.findItem(R.id.delete).setVisible(false);
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }

@ -30,7 +30,7 @@ public final class CustomFilterExposer {
public List<Filter> getFilters() { public List<Filter> getFilters() {
final List<Filter> list = new ArrayList<>(); final List<Filter> list = new ArrayList<>();
final int filter = R.drawable.ic_filter_list_black_24dp; final int filter = R.drawable.ic_filter_list_24dp;
storeObjectDao.getSavedFilters(new Callback<StoreObject>() { storeObjectDao.getSavedFilters(new Callback<StoreObject>() {
@Override @Override

@ -107,21 +107,21 @@ public class FileExplore extends InjectingAppCompatActivity {
String[] fList = path.list(filter); String[] fList = path.list(filter);
fileList = new Item[fList.length]; fileList = new Item[fList.length];
for (int i = 0; i < fList.length; i++) { for (int i = 0; i < fList.length; i++) {
fileList[i] = new Item(fList[i], R.drawable.ic_insert_drive_file_black_24dp); fileList[i] = new Item(fList[i], R.drawable.ic_insert_drive_file_24dp);
// Convert into file path // Convert into file path
File sel = new File(path, fList[i]); File sel = new File(path, fList[i]);
// Set drawables // Set drawables
if (sel.isDirectory()) { if (sel.isDirectory()) {
fileList[i].icon = R.drawable.ic_folder_black_24dp; fileList[i].icon = R.drawable.ic_folder_24dp;
} }
} }
if (!firstLvl) { if (!firstLvl) {
Item temp[] = new Item[fileList.length + 1]; Item temp[] = new Item[fileList.length + 1];
System.arraycopy(fileList, 0, temp, 1, fileList.length); System.arraycopy(fileList, 0, temp, 1, fileList.length);
temp[0] = new Item(upString, R.drawable.ic_arrow_back_black_24dp); temp[0] = new Item(upString, R.drawable.ic_arrow_back_24dp);
fileList = temp; fileList = temp;
} }
} else { } else {
@ -140,7 +140,7 @@ public class FileExplore extends InjectingAppCompatActivity {
// put the image on the text view // put the image on the text view
int icon = fileList[position].icon; int icon = fileList[position].icon;
Drawable drawable = getResources().getDrawable(icon, getTheme()); Drawable drawable = getResources().getDrawable(icon);
if (activityPreferences.isDarkTheme()) { if (activityPreferences.isDarkTheme()) {
Drawable wrapDrawable = DrawableCompat.wrap(drawable); Drawable wrapDrawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(wrapDrawable, getResources().getColor(android.R.color.white)); DrawableCompat.setTint(wrapDrawable, getResources().getColor(android.R.color.white));

@ -80,7 +80,7 @@ public class FilesControlSet extends PopupControlSet {
@Override @Override
public int getIcon() { public int getIcon() {
return R.drawable.ic_attachment_black_24dp; return R.drawable.ic_attachment_24dp;
} }
public void refreshMetadata() { public void refreshMetadata() {

@ -247,6 +247,6 @@ public class GCalControlSet extends TaskEditControlSetBase {
@Override @Override
public int getIcon() { public int getIcon() {
return R.drawable.ic_event_black_24dp; return R.drawable.ic_event_24dp;
} }
} }

@ -62,7 +62,7 @@ public class GtasksFilterExposer {
return emptyList(); return emptyList();
} }
int cloud = R.drawable.ic_cloud_queue_black_24dp; int cloud = R.drawable.ic_cloud_queue_24dp;
List<Filter> listFilters = newArrayList(); List<Filter> listFilters = newArrayList();
for (GtasksList list : gtasksListService.getLists()) { for (GtasksList list : gtasksListService.getLists()) {

@ -201,7 +201,7 @@ public class RepeatControlSet extends PopupControlSet {
@Override @Override
public int getIcon() { public int getIcon() {
return R.drawable.ic_repeat_black_24dp; return R.drawable.ic_repeat_24dp;
} }
@Override @Override

@ -89,7 +89,7 @@ public class TagFilterExposer {
List<Filter> filters = new ArrayList<>(); List<Filter> filters = new ArrayList<>();
int label = R.drawable.ic_label_black_24dp; int label = R.drawable.ic_label_24dp;
for (TagData tag : tags) { for (TagData tag : tags) {
Filter f = constructFilter(context, tag); Filter f = constructFilter(context, tag);

@ -5,16 +5,13 @@
*/ */
package com.todoroo.astrid.tags; package com.todoroo.astrid.tags;
import android.app.Activity;
import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AlertDialog;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView; import android.widget.AutoCompleteTextView;
@ -252,7 +249,7 @@ public final class TagsControlSet extends PopupControlSet {
@Override @Override
public int getIcon() { public int getIcon() {
return R.drawable.ic_label_black_24dp; return R.drawable.ic_label_24dp;
} }
@Override @Override

@ -67,7 +67,7 @@ public class TimerControlSet extends PopupControlSet implements TimerActionListe
@Override @Override
public int getIcon() { public int getIcon() {
return R.drawable.ic_timer_black_24dp; return R.drawable.ic_timer_24dp;
} }
// --- TimeDurationTaskEditControlSet // --- TimeDurationTaskEditControlSet

@ -38,6 +38,6 @@ public class DescriptionControlSet extends TaskEditControlSetBase {
@Override @Override
public int getIcon() { public int getIcon() {
return R.drawable.ic_event_note_black_24dp; return R.drawable.ic_event_note_24dp;
} }
} }

@ -232,7 +232,7 @@ public class HideUntilControlSet extends TaskEditControlSetBase implements OnIte
@Override @Override
public int getIcon() { public int getIcon() {
return R.drawable.ic_visibility_off_black_24dp; return R.drawable.ic_visibility_off_24dp;
} }
@Override @Override

@ -133,7 +133,7 @@ public class ImportanceControlSet extends TaskEditControlSetBase {
@Override @Override
public int getIcon() { public int getIcon() {
return R.drawable.ic_flag_black_24dp; return R.drawable.ic_flag_24dp;
} }
// Same as above because we need the setImportance listeners to fire even in // Same as above because we need the setImportance listeners to fire even in

@ -394,6 +394,6 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
@Override @Override
public int getIcon() { public int getIcon() {
return R.drawable.ic_notifications_black_24dp; return R.drawable.ic_notifications_24dp;
} }
} }

@ -95,7 +95,7 @@ public class WidgetConfigActivity extends InjectingListActivity {
} }
// set up ui // set up ui
adapter = new FilterAdapter(filterProvider, filterCounter, this, getListView(), false, preferences); adapter = new FilterAdapter(filterProvider, filterCounter, this, getListView(), false);
setListAdapter(adapter); setListAdapter(adapter);
Button button = (Button) findViewById(R.id.ok); Button button = (Button) findViewById(R.id.ok);

@ -11,7 +11,6 @@ import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.provider.ContactsContract; import android.provider.ContactsContract;
import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationCompat;
import android.support.v4.media.MediaDescriptionCompatApi21;
import android.text.TextUtils; import android.text.TextUtils;
import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.data.TodorooCursor;

@ -33,7 +33,7 @@ public class FilterSelectionActivity extends InjectingAppCompatActivity {
activityPreferences.applyTheme(); activityPreferences.applyTheme();
final FilterAdapter filterAdapter = new FilterAdapter(filterProvider, filterCounter, this, null, false, activityPreferences); final FilterAdapter filterAdapter = new FilterAdapter(filterProvider, filterCounter, this, null, false);
filterAdapter.populateList(); filterAdapter.populateList();
dialogBuilder.newDialog() dialogBuilder.newDialog()

@ -1,6 +1,8 @@
package org.tasks.injection; package org.tasks.injection;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
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;
@ -42,7 +44,9 @@ 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());
toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp); Drawable drawable = DrawableCompat.wrap(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) {

@ -7,6 +7,7 @@ import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
@Singleton @Singleton
@Deprecated
public class ResourceResolver { public class ResourceResolver {
private final Activity activity; private final Activity activity;

@ -451,6 +451,6 @@ public class DeadlineControlSet extends TaskEditControlSetBase {
@Override @Override
public int getIcon() { public int getIcon() {
return R.drawable.ic_schedule_black_24dp; return R.drawable.ic_schedule_24dp;
} }
} }

@ -0,0 +1,156 @@
/*
* Copyright (C) 2014 Jared Rummler <jared.rummler@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.tasks.ui;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
/**
* Helper class to set the color and transparency for menu icons in an ActionBar/Toolbar.</p>
*
* Example usage:
*
* <pre>
* <code>
* public boolean onCreateOptionsMenu(Menu menu) {
* ...
* int color = getResources().getColor(R.color.your_awesome_color);
* int alpha = 204; // 80% alpha
* MenuColorizer.colorMenu(this, menu, color, alpha);
* ...
* }
* </code>
* </pre>
*
* @author Jared Rummler <jared.rummler@gmail.com>
* @since Dec 11, 2014
*/
public class MenuColorizer {
private MenuColorizer() {
}
/** 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) {
colorMenu(activity, menu, color, 0);
}
/** 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,
final int alpha) {
for (int i = 0, size = menu.size(); i < size; i++) {
final MenuItem menuItem = menu.getItem(i);
colorMenuItem(menuItem, color, alpha);
if (menuItem.hasSubMenu()) {
final SubMenu subMenu = menuItem.getSubMenu();
for (int j = 0; j < subMenu.size(); j++) {
colorMenuItem(subMenu.getItem(j), color, alpha);
}
}
}
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} */
public 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();
if (drawable != null) {
// If we don't mutate the drawable, then all drawable's with this id will have a color
// filter applied to it.
drawable.mutate();
drawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
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;
}
}

@ -33,8 +33,8 @@ import org.tasks.filters.FilterProvider;
import org.tasks.filters.NavigationDrawerAction; import org.tasks.filters.NavigationDrawerAction;
import org.tasks.injection.InjectingFragment; import org.tasks.injection.InjectingFragment;
import org.tasks.location.GeofenceService; import org.tasks.location.GeofenceService;
import org.tasks.preferences.ActivityPreferences;
import org.tasks.preferences.AppearancePreferences; import org.tasks.preferences.AppearancePreferences;
import org.tasks.preferences.Preferences;
import javax.inject.Inject; import javax.inject.Inject;
@ -68,7 +68,7 @@ public class NavigationDrawerFragment extends InjectingFragment {
@Inject FilterCounter filterCounter; @Inject FilterCounter filterCounter;
@Inject FilterProvider filterProvider; @Inject FilterProvider filterProvider;
@Inject GeofenceService geofenceService; @Inject GeofenceService geofenceService;
@Inject ActivityPreferences preferences; @Inject Preferences preferences;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
@ -151,7 +151,7 @@ public class NavigationDrawerFragment extends InjectingFragment {
} }
private void setUpList() { private void setUpList() {
adapter = new FilterAdapter(filterProvider, filterCounter, getActivity(), mDrawerListView, true, preferences); adapter = new FilterAdapter(filterProvider, filterCounter, getActivity(), mDrawerListView, true);
mDrawerListView.setAdapter(adapter); mDrawerListView.setAdapter(adapter);
registerForContextMenu(mDrawerListView); registerForContextMenu(mDrawerListView);
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 619 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 B

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save