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 13 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.Task;
import com.todoroo.astrid.data.TaskApiDao.TaskCriteria;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.tags.TagService;
/**
@ -66,7 +67,8 @@ public final class CoreFilterExposer extends BroadcastReceiver implements Astrid
Criterion.and(MetadataCriteria.withKey(TagService.KEY),
TagService.TAG.like("x_%", "x"))))))), //$NON-NLS-1$ //$NON-NLS-2$
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;
}

@ -39,6 +39,7 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskApiDao.TaskCriteria;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.ThemeService;
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.lte(PermaSql.VALUE_EOD))),
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),
r.getString(R.string.BFE_Recent),
@ -99,7 +101,8 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
TaskCriteria.ownedByMe()).orderBy(
Order.desc(Task.MODIFICATION_DATE)).limit(15),
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);
@ -114,7 +117,8 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
deleteIntent.putExtra(TOKEN_FILTER_NAME, list[i].title);
list[i].contextMenuLabels = new String[] { context.getString(R.string.BFE_Saved_delete) };
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;
@ -132,7 +136,8 @@ public final class CustomFilterExposer extends BroadcastReceiver implements Astr
Criterion.or(Task.USER_ID.neq(0),
Criterion.and(Metadata.KEY.eq(TaskRabbitMetadata.METADATA_KEY), TaskRabbitMetadata.ID.gt(0))))),
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;
}

@ -45,6 +45,7 @@ import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.subtasks.SubtasksTagListFragment;
import com.todoroo.astrid.tags.TagService.Tag;
import com.todoroo.astrid.utility.AstridPreferences;
@ -175,7 +176,8 @@ public class TagFilterExposer extends BroadcastReceiver implements AstridFilterE
r.getString(R.string.tag_FEx_untagged),
TagService.untaggedTemplate(),
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;
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) {
MenuItem item = menu.add(Menu.NONE, MENU_COMMENTS_REFRESH_ID, Menu.NONE,
R.string.ENA_refresh_comments);
item.setIcon(R.drawable.icn_menu_refresh);
item.setIcon(R.drawable.icn_menu_refresh_dark);
}
super.onPrepareOptionsMenu(menu);
}

@ -86,6 +86,7 @@ import com.todoroo.astrid.service.StatisticsConstants;
import com.todoroo.astrid.service.StatisticsService;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.service.UpgradeService;
import com.todoroo.astrid.subtasks.SubtasksListFragment;
import com.todoroo.astrid.sync.SyncProviderPreferences;
@ -363,7 +364,8 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
}
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) {
@ -398,18 +400,21 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
// --- sort
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
addSyncRefreshMenuItem(menu);
// --- 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
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

@ -5,6 +5,7 @@ import android.graphics.PixelFormat;
import android.view.WindowManager;
import com.timsu.astrid.R;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.AndroidUtilities;
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_WHITE = "transparent-white";
private static int currentTheme;
public static void applyTheme(Activity activity) {
activity.setTheme(getTheme());
currentTheme = getTheme();
activity.setTheme(currentTheme);
activity.getWindow().setFormat(PixelFormat.RGBA_8888);
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);
@ -64,4 +68,44 @@ public class ThemeService {
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.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.service.ThemeService;
public class MainMenuPopover extends FragmentPopover {
@ -58,12 +59,18 @@ public class MainMenuPopover extends FragmentPopover {
private void addFixedItems(boolean 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_friends, R.drawable.icn_friends, MAIN_MENU_ITEM_FRIENDS, null, topFixed); // Friends item
// addMenuItem(R.string.TLA_menu_suggestions, R.drawable.icn_featured_lists, MAIN_MENU_ITEM_SUGGESTIONS, null, topFixed); // Suggestions 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_settings, R.drawable.icn_menu_settings, MAIN_MENU_ITEM_SETTINGS, null, bottomFixed); // Settings item
addMenuItem(R.string.TLA_menu_support, R.drawable.icn_menu_support, MAIN_MENU_ITEM_SUPPORT, null, bottomFixed); // Support item
addMenuItem(R.string.TLA_menu_lists,
ThemeService.getDrawable(R.drawable.icn_menu_lists),
MAIN_MENU_ITEM_LISTS, null, topFixed); // Lists item
addMenuItem(R.string.TLA_menu_tutorial,
ThemeService.getDrawable(R.drawable.icn_menu_tutorial),
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

Loading…
Cancel
Save