From 6bc7fedfe6e0ea15e6d51be091fa454d91972060 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Mon, 11 Feb 2013 13:41:29 -0800 Subject: [PATCH] Use uuid for default tag images instead of titles --- .../astrid/actfm/TagCommentsFragment.java | 2 +- .../astrid/actfm/TagSettingsActivity.java | 4 ++-- .../astrid/activity/FilterListFragment.java | 16 +++++++++++++--- .../todoroo/astrid/adapter/FilterAdapter.java | 12 +++++++++++- 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagCommentsFragment.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagCommentsFragment.java index acf8320d5..dcee4fbb9 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagCommentsFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagCommentsFragment.java @@ -114,7 +114,7 @@ public class TagCommentsFragment extends CommentsFragment { AsyncImageView imageView = (AsyncImageView) header.findViewById(R.id.tag_picture); - imageView.setDefaultImageDrawable(ResourceDrawableCache.getImageDrawableFromId(getResources(), TagService.getDefaultImageIDForTag(tagName))); + imageView.setDefaultImageDrawable(ResourceDrawableCache.getImageDrawableFromId(getResources(), TagService.getDefaultImageIDForTag(tagData.getUuid()))); String imageUrl = tagData.getPictureUrl(TagData.PICTURE, RemoteModel.PICTURE_MEDIUM); Bitmap imageBitmap = null; if (TextUtils.isEmpty(imageUrl)) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java index 84b37c1f6..bcede98aa 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java @@ -220,7 +220,7 @@ public class TagSettingsActivity extends FragmentActivity { findViewById(R.id.tag_silenced_container).setVisibility(View.VISIBLE); } - picture.setDefaultImageDrawable(ResourceDrawableCache.getImageDrawableFromId(getResources(), TagService.getDefaultImageIDForTag(tagData.getValue(TagData.NAME)))); + picture.setDefaultImageDrawable(ResourceDrawableCache.getImageDrawableFromId(getResources(), TagService.getDefaultImageIDForTag(tagData.getUuid()))); picture.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { @@ -421,7 +421,7 @@ public class TagSettingsActivity extends FragmentActivity { picture.setUrl(imageUrl); if (!isNewTag) { ImageView shortcut = (ImageView) findViewById(R.id.create_shortcut); - shortcut.setImageBitmap(FilterListFragment.superImposeListIcon(this, picture.getImageBitmap(), tagData.getValue(TagData.NAME))); + shortcut.setImageBitmap(FilterListFragment.superImposeListIcon(this, picture.getImageBitmap(), tagData.getUuid())); } String peopleJson = tagData.getValue(TagData.MEMBERS); diff --git a/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java b/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java index 8f2bf0c1c..e2a9d41ca 100644 --- a/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/FilterListFragment.java @@ -48,10 +48,12 @@ import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.utility.AndroidUtilities; +import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.adapter.FilterAdapter; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; +import com.todoroo.astrid.api.FilterWithUpdate; import com.todoroo.astrid.core.CoreFilterExposer; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.tags.TagService; @@ -327,7 +329,15 @@ public class FilterListFragment extends ListFragment { if(label.length() == 0) return; - Bitmap bitmap = superImposeListIcon(activity, filter.listingIcon, filter.listingTitle); + String defaultImageId = filter.listingTitle; + if (filter instanceof FilterWithUpdate) { + FilterWithUpdate fwu = (FilterWithUpdate) filter; + Bundle customExtras = fwu.customExtras; + if (customExtras != null && customExtras.containsKey(TagViewFragment.EXTRA_TAG_UUID)) + defaultImageId = customExtras.getString(TagViewFragment.EXTRA_TAG_UUID); + } + + Bitmap bitmap = superImposeListIcon(activity, filter.listingIcon, defaultImageId); Intent createShortcutIntent = new Intent(); createShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); @@ -340,11 +350,11 @@ public class FilterListFragment extends ListFragment { activity.getString(R.string.FLA_toast_onCreateShortcut, label), Toast.LENGTH_LONG).show(); } - public static Bitmap superImposeListIcon(Activity activity, Bitmap listingIcon, String listingTitle) { + public static Bitmap superImposeListIcon(Activity activity, Bitmap listingIcon, String uuid) { Bitmap emblem = listingIcon; if(emblem == null) emblem = ((BitmapDrawable) activity.getResources().getDrawable( - TagService.getDefaultImageIDForTag(listingTitle))).getBitmap(); + TagService.getDefaultImageIDForTag(uuid))).getBitmap(); // create icon by superimposing astrid w/ icon DisplayMetrics metrics = new DisplayMetrics(); diff --git a/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java b/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java index a22ec662e..279717d3b 100644 --- a/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/FilterAdapter.java @@ -43,6 +43,7 @@ import com.timsu.astrid.R; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; +import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.activity.AstridActivity; import com.todoroo.astrid.activity.FilterListFragment; import com.todoroo.astrid.activity.TaskListFragment; @@ -55,6 +56,7 @@ import com.todoroo.astrid.api.FilterListHeader; import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.FilterWithUpdate; +import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.helper.AsyncImageView; import com.todoroo.astrid.service.MarketStrategy.NookMarketStrategy; import com.todoroo.astrid.service.TaskService; @@ -582,8 +584,16 @@ public class FilterAdapter extends ArrayAdapter { viewHolder.name.getLayoutParams().height = (int) (58 * metrics.density); if(!nook && filter instanceof FilterWithUpdate) { + String defaultImageId = RemoteModel.NO_UUID; + FilterWithUpdate fwu = (FilterWithUpdate) filter; + Bundle customExtras = fwu.customExtras; + if (customExtras != null && customExtras.containsKey(TagViewFragment.EXTRA_TAG_UUID)) + defaultImageId = customExtras.getString(TagViewFragment.EXTRA_TAG_UUID); + else + defaultImageId = viewHolder.name.getText().toString(); + viewHolder.urlImage.setVisibility(View.VISIBLE); - viewHolder.urlImage.setDefaultImageDrawable(ResourceDrawableCache.getImageDrawableFromId(resources, TagService.getDefaultImageIDForTag(viewHolder.name.getText().toString()))); + viewHolder.urlImage.setDefaultImageDrawable(ResourceDrawableCache.getImageDrawableFromId(resources, TagService.getDefaultImageIDForTag(defaultImageId))); viewHolder.urlImage.setUrl(((FilterWithUpdate)filter).imageUrl); }