Add switching logic via ThemeService to identify light and dark drawables to use. Renamed up filters and plugins icons to be more identificatory.

pull/14/head
Tim Su 14 years ago
parent 328034fbdf
commit cc25b593b4

@ -23,6 +23,7 @@ import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskApiDao.TaskCriteria; import com.todoroo.astrid.data.TaskApiDao.TaskCriteria;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.tags.TagService; import com.todoroo.astrid.tags.TagService;
/** /**
@ -66,7 +67,8 @@ public final class CoreFilterExposer extends BroadcastReceiver implements Astrid
Criterion.and(MetadataCriteria.withKey(TagService.KEY), Criterion.and(MetadataCriteria.withKey(TagService.KEY),
TagService.TAG.like("x_%", "x"))))))), //$NON-NLS-1$ //$NON-NLS-2$ TagService.TAG.like("x_%", "x"))))))), //$NON-NLS-1$ //$NON-NLS-2$
null); null);
inbox.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.filter_inbox)).getBitmap(); inbox.listingIcon = ((BitmapDrawable)r.getDrawable(
ThemeService.getDrawable(R.drawable.filter_inbox))).getBitmap();
return inbox; return inbox;
} }

@ -39,6 +39,7 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskApiDao.TaskCriteria; import com.todoroo.astrid.data.TaskApiDao.TaskCriteria;
import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.service.TagDataService; import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.taskrabbit.TaskRabbitMetadata; import com.todoroo.astrid.taskrabbit.TaskRabbitMetadata;
/** /**
@ -91,7 +92,8 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
Task.DUE_DATE.gt(0), Task.DUE_DATE.gt(0),
Task.DUE_DATE.lte(PermaSql.VALUE_EOD))), Task.DUE_DATE.lte(PermaSql.VALUE_EOD))),
todayValues); todayValues);
list[0].listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.filter_calendar)).getBitmap(); list[0].listingIcon = ((BitmapDrawable)r.getDrawable(
ThemeService.getDrawable(R.drawable.filter_calendar))).getBitmap();
list[1] = new Filter(r.getString(R.string.BFE_Recent), list[1] = new Filter(r.getString(R.string.BFE_Recent),
r.getString(R.string.BFE_Recent), r.getString(R.string.BFE_Recent),
@ -99,7 +101,8 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
TaskCriteria.ownedByMe()).orderBy( TaskCriteria.ownedByMe()).orderBy(
Order.desc(Task.MODIFICATION_DATE)).limit(15), Order.desc(Task.MODIFICATION_DATE)).limit(15),
null); null);
list[1].listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.filter_pencil)).getBitmap(); list[1].listingIcon = ((BitmapDrawable)r.getDrawable(
ThemeService.getDrawable(R.drawable.filter_pencil))).getBitmap();
list[2] = getAssignedByMeFilter(r); list[2] = getAssignedByMeFilter(r);
@ -114,7 +117,8 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
deleteIntent.putExtra(TOKEN_FILTER_NAME, list[i].title); deleteIntent.putExtra(TOKEN_FILTER_NAME, list[i].title);
list[i].contextMenuLabels = new String[] { context.getString(R.string.BFE_Saved_delete) }; list[i].contextMenuLabels = new String[] { context.getString(R.string.BFE_Saved_delete) };
list[i].contextMenuIntents = new Intent[] { deleteIntent }; list[i].contextMenuIntents = new Intent[] { deleteIntent };
list[i].listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.filter_sliders)).getBitmap(); list[i].listingIcon = ((BitmapDrawable)r.getDrawable(
ThemeService.getDrawable(R.drawable.filter_sliders))).getBitmap();
} }
return list; return list;
@ -132,7 +136,8 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
Criterion.or(Task.USER_ID.neq(0), Criterion.or(Task.USER_ID.neq(0),
Criterion.and(Metadata.KEY.eq(TaskRabbitMetadata.METADATA_KEY), TaskRabbitMetadata.ID.gt(0))))), Criterion.and(Metadata.KEY.eq(TaskRabbitMetadata.METADATA_KEY), TaskRabbitMetadata.ID.gt(0))))),
null); null);
f.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.filter_assigned)).getBitmap(); f.listingIcon = ((BitmapDrawable)r.getDrawable(
ThemeService.getDrawable(R.drawable.filter_assigned))).getBitmap();
return f; return f;
} }

@ -45,6 +45,7 @@ import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.TagDataService; import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.subtasks.SubtasksTagListFragment; import com.todoroo.astrid.subtasks.SubtasksTagListFragment;
import com.todoroo.astrid.tags.TagService.Tag; import com.todoroo.astrid.tags.TagService.Tag;
import com.todoroo.astrid.utility.AstridPreferences; import com.todoroo.astrid.utility.AstridPreferences;
@ -175,7 +176,8 @@ public class TagFilterExposer extends BroadcastReceiver implements AstridFilterE
r.getString(R.string.tag_FEx_untagged), r.getString(R.string.tag_FEx_untagged),
TagService.untaggedTemplate(), TagService.untaggedTemplate(),
null); null);
untagged.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.gl_lists)).getBitmap(); untagged.listingIcon = ((BitmapDrawable)r.getDrawable(
ThemeService.getDrawable(R.drawable.gl_lists))).getBitmap();
filters[0] = untagged; filters[0] = untagged;
for(int i = 0; i < tags.length; i++) for(int i = 0; i < tags.length; i++)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -1026,7 +1026,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
if(actFmPreferenceService.isLoggedIn() && remoteId > 0 && menu.findItem(MENU_COMMENTS_REFRESH_ID) == null) { if(actFmPreferenceService.isLoggedIn() && remoteId > 0 && menu.findItem(MENU_COMMENTS_REFRESH_ID) == null) {
MenuItem item = menu.add(Menu.NONE, MENU_COMMENTS_REFRESH_ID, Menu.NONE, MenuItem item = menu.add(Menu.NONE, MENU_COMMENTS_REFRESH_ID, Menu.NONE,
R.string.ENA_refresh_comments); R.string.ENA_refresh_comments);
item.setIcon(R.drawable.icn_menu_refresh); item.setIcon(R.drawable.icn_menu_refresh_dark);
} }
super.onPrepareOptionsMenu(menu); super.onPrepareOptionsMenu(menu);
} }

@ -86,6 +86,7 @@ import com.todoroo.astrid.service.StatisticsConstants;
import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.service.StatisticsService;
import com.todoroo.astrid.service.TagDataService; import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.service.UpgradeService; import com.todoroo.astrid.service.UpgradeService;
import com.todoroo.astrid.subtasks.SubtasksListFragment; import com.todoroo.astrid.subtasks.SubtasksListFragment;
import com.todoroo.astrid.sync.SyncProviderPreferences; import com.todoroo.astrid.sync.SyncProviderPreferences;
@ -363,7 +364,8 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
} }
protected void addSyncRefreshMenuItem(Menu menu) { protected void addSyncRefreshMenuItem(Menu menu) {
addMenuItem(menu, R.string.TLA_menu_sync, R.drawable.icn_menu_refresh, MENU_SYNC_ID, true); addMenuItem(menu, R.string.TLA_menu_sync,
ThemeService.getDrawable(R.drawable.icn_menu_refresh), MENU_SYNC_ID, true);
} }
protected void addMenuItem(Menu menu, int title, int imageRes, int id, boolean showAsAction) { protected void addMenuItem(Menu menu, int title, int imageRes, int id, boolean showAsAction) {
@ -398,18 +400,21 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
// --- sort // --- sort
if (allowResorting()) { if (allowResorting()) {
addMenuItem(menu, R.string.TLA_menu_sort, R.drawable.icn_menu_sort_by_size, MENU_SORT_ID, true); addMenuItem(menu, R.string.TLA_menu_sort,
ThemeService.getDrawable(R.drawable.icn_menu_sort_by_size), MENU_SORT_ID, true);
} }
// --- sync // --- sync
addSyncRefreshMenuItem(menu); addSyncRefreshMenuItem(menu);
// --- new filter // --- new filter
addMenuItem(menu, R.string.FLA_new_filter, R.drawable.icn_menu_add, MENU_NEW_FILTER_ID, true); addMenuItem(menu, R.string.FLA_new_filter,
ThemeService.getDrawable(R.drawable.icn_menu_filters), MENU_NEW_FILTER_ID, true);
// --- addons // --- addons
if (!Constants.MARKET_DISABLED) { if (!Constants.MARKET_DISABLED) {
addMenuItem(menu, R.string.TLA_menu_addons, R.drawable.icn_menu_set_as, MENU_ADDONS_ID, false); addMenuItem(menu, R.string.TLA_menu_addons,
ThemeService.getDrawable(R.drawable.icn_menu_plugins), MENU_ADDONS_ID, false);
} }
// ask about plug-ins // ask about plug-ins

@ -5,6 +5,7 @@ import android.graphics.PixelFormat;
import android.view.WindowManager; import android.view.WindowManager;
import com.timsu.astrid.R; import com.timsu.astrid.R;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
@ -17,8 +18,11 @@ public class ThemeService {
public static final String THEME_TRANSPARENT = "transparent"; public static final String THEME_TRANSPARENT = "transparent";
public static final String THEME_TRANSPARENT_WHITE = "transparent-white"; public static final String THEME_TRANSPARENT_WHITE = "transparent-white";
private static int currentTheme;
public static void applyTheme(Activity activity) { public static void applyTheme(Activity activity) {
activity.setTheme(getTheme()); currentTheme = getTheme();
activity.setTheme(currentTheme);
activity.getWindow().setFormat(PixelFormat.RGBA_8888); activity.getWindow().setFormat(PixelFormat.RGBA_8888);
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER); activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);
@ -64,4 +68,44 @@ public class ThemeService {
return (AndroidUtilities.getSdkVersion() >= 11 ? "black" : "white"); return (AndroidUtilities.getSdkVersion() >= 11 ? "black" : "white");
} }
public static int getDrawable(int lightDrawable) {
boolean darkTheme = currentTheme == R.style.Theme || currentTheme == R.style.Theme_Transparent;
if(!darkTheme)
return lightDrawable;
switch(lightDrawable) {
case R.drawable.icn_menu_refresh:
return R.drawable.icn_menu_refresh_dark;
case R.drawable.icn_menu_filters:
return R.drawable.icn_menu_filters_dark;
case R.drawable.icn_menu_sort_by_size:
return R.drawable.icn_menu_sort_by_size_dark;
case R.drawable.icn_menu_lists:
return R.drawable.icn_menu_lists_dark;
case R.drawable.icn_menu_plugins:
return R.drawable.icn_menu_plugins_dark;
case R.drawable.icn_menu_settings:
return R.drawable.icn_menu_settings_dark;
case R.drawable.icn_menu_support:
return R.drawable.icn_menu_support_dark;
case R.drawable.icn_menu_tutorial:
return R.drawable.icn_menu_tutorial_dark;
case R.drawable.filter_assigned:
return R.drawable.filter_assigned_dark;
case R.drawable.filter_calendar:
return R.drawable.filter_calendar_dark;
case R.drawable.filter_inbox:
return R.drawable.filter_inbox_dark;
case R.drawable.filter_pencil:
return R.drawable.filter_pencil_dark;
case R.drawable.filter_sliders:
return R.drawable.filter_sliders_dark;
case R.drawable.gl_lists:
return R.drawable.gl_lists_dark;
}
throw new RuntimeException("No theme drawable found for " +
ContextManager.getResources().getResourceName(lightDrawable));
}
} }

@ -13,6 +13,7 @@ import android.widget.TextView;
import com.timsu.astrid.R; import com.timsu.astrid.R;
import com.todoroo.astrid.activity.AstridActivity; import com.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.service.ThemeService;
public class MainMenuPopover extends FragmentPopover { public class MainMenuPopover extends FragmentPopover {
@ -58,12 +59,18 @@ public class MainMenuPopover extends FragmentPopover {
private void addFixedItems(boolean isTablet) { private void addFixedItems(boolean isTablet) {
if (!isTablet) if (!isTablet)
addMenuItem(R.string.TLA_menu_lists, R.drawable.icn_menu_lists, MAIN_MENU_ITEM_LISTS, null, topFixed); // Lists item addMenuItem(R.string.TLA_menu_lists,
// addMenuItem(R.string.TLA_menu_friends, R.drawable.icn_friends, MAIN_MENU_ITEM_FRIENDS, null, topFixed); // Friends item ThemeService.getDrawable(R.drawable.icn_menu_lists),
// addMenuItem(R.string.TLA_menu_suggestions, R.drawable.icn_featured_lists, MAIN_MENU_ITEM_SUGGESTIONS, null, topFixed); // Suggestions item MAIN_MENU_ITEM_LISTS, null, topFixed); // Lists item
addMenuItem(R.string.TLA_menu_tutorial, R.drawable.icn_menu_tutorial, MAIN_MENU_ITEM_TUTORIAL, null, bottomFixed); // Tutorial item addMenuItem(R.string.TLA_menu_tutorial,
addMenuItem(R.string.TLA_menu_settings, R.drawable.icn_menu_settings, MAIN_MENU_ITEM_SETTINGS, null, bottomFixed); // Settings item ThemeService.getDrawable(R.drawable.icn_menu_tutorial),
addMenuItem(R.string.TLA_menu_support, R.drawable.icn_menu_support, MAIN_MENU_ITEM_SUPPORT, null, bottomFixed); // Support item MAIN_MENU_ITEM_TUTORIAL, null, bottomFixed); // Tutorial item
addMenuItem(R.string.TLA_menu_settings,
ThemeService.getDrawable(R.drawable.icn_menu_settings),
MAIN_MENU_ITEM_SETTINGS, null, bottomFixed); // Settings item
addMenuItem(R.string.TLA_menu_support,
ThemeService.getDrawable(R.drawable.icn_menu_support),
MAIN_MENU_ITEM_SUPPORT, null, bottomFixed); // Support item
} }
@Override @Override

Loading…
Cancel
Save