Cleaner implementation; use resource
Use boolean resource to determine if we should show folders in widget
items or not
Change-Id: I7c711ce8ef10e7bc2621a418e1c515bffa0da236
diff --git a/res/values/constants.xml b/res/values/constants.xml
index ccf4f44..0b255ed 100644
--- a/res/values/constants.xml
+++ b/res/values/constants.xml
@@ -66,4 +66,7 @@
<!-- Number of decoded contact photo bitmaps retained in an LRU cache -->
<integer name="config_image_cache_max_bitmaps">24</integer>
+
+ <!-- Whether to display folder colors in the widget -->
+ <bool name="display_folder_colors_in_widget">false</bool>
</resources>
diff --git a/src/com/android/mail/widget/WidgetConversationViewBuilder.java b/src/com/android/mail/widget/WidgetConversationViewBuilder.java
index 89b5c7a..3fe6d23 100644
--- a/src/com/android/mail/widget/WidgetConversationViewBuilder.java
+++ b/src/com/android/mail/widget/WidgetConversationViewBuilder.java
@@ -20,6 +20,7 @@
import com.android.mail.providers.Account;
import com.android.mail.providers.Folder;
import com.android.mail.ui.FolderDisplayer;
+import com.android.mail.widget.WidgetConversationViewBuilder.WidgetFolderDisplayer;
import java.util.Map;
@@ -55,6 +56,7 @@
private static Bitmap ATTACHMENT;
private final Context mContext;
+ private WidgetFolderDisplayer mFolderDisplayer;
/**
* Label Displayer for Widget
@@ -220,6 +222,11 @@
remoteViews.setViewVisibility(R.id.widget_unread_background, View.GONE);
remoteViews.setViewVisibility(R.id.widget_read_background, View.VISIBLE);
}
+ if (mContext.getResources().getBoolean(R.bool.display_folder_colors_in_widget)) {
+ mFolderDisplayer = new WidgetFolderDisplayer(mContext);
+ mFolderDisplayer.loadConversationFolders(folders, currentFolder);
+ mFolderDisplayer.displayFolders(remoteViews);
+ }
return remoteViews;
}
diff --git a/src/com/android/mail/widget/WidgetService.java b/src/com/android/mail/widget/WidgetService.java
index eb531ab..23dc6c7 100644
--- a/src/com/android/mail/widget/WidgetService.java
+++ b/src/com/android/mail/widget/WidgetService.java
@@ -51,10 +51,7 @@
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent) {
- Context context = getApplicationContext();
- Account account = Account.newinstance(intent.getStringExtra(WidgetProvider.EXTRA_ACCOUNT));
- return new MailFactory(context, intent, this, new WidgetConversationViewBuilder(context,
- account), account);
+ return new MailFactory(getApplicationContext(), intent, this);
}
@@ -88,14 +85,14 @@
private WidgetService mService;
private int mSenderFormatVersion;
- public MailFactory(Context context, Intent intent, WidgetService service,
- WidgetConversationViewBuilder builder, Account account) {
+ public MailFactory(Context context, Intent intent, WidgetService service) {
mContext = context;
mAppWidgetId = intent.getIntExtra(
AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
- mAccount = account;
+ mAccount = Account.newinstance(intent.getStringExtra(WidgetProvider.EXTRA_ACCOUNT));
mFolder = new Folder(intent.getStringExtra(WidgetProvider.EXTRA_FOLDER));
- mWidgetConversationViewBuilder = builder;
+ mWidgetConversationViewBuilder = new WidgetConversationViewBuilder(context,
+ mAccount);
mResolver = context.getContentResolver();
mService = service;
}