summaryrefslogtreecommitdiffstats
path: root/src/com/android/messaging/widget/BugleWidgetProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/messaging/widget/BugleWidgetProvider.java')
-rw-r--r--src/com/android/messaging/widget/BugleWidgetProvider.java114
1 files changed, 0 insertions, 114 deletions
diff --git a/src/com/android/messaging/widget/BugleWidgetProvider.java b/src/com/android/messaging/widget/BugleWidgetProvider.java
deleted file mode 100644
index 50c97b6..0000000
--- a/src/com/android/messaging/widget/BugleWidgetProvider.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * 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 com.android.messaging.widget;
-
-import android.app.PendingIntent;
-import android.appwidget.AppWidgetManager;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.widget.RemoteViews;
-
-import com.android.messaging.R;
-import com.android.messaging.ui.UIIntents;
-import com.android.messaging.util.LogUtil;
-import com.android.messaging.util.OsUtil;
-import com.android.messaging.util.SafeAsyncTask;
-import com.android.messaging.util.UiUtils;
-
-public class BugleWidgetProvider extends BaseWidgetProvider {
- public static final String ACTION_NOTIFY_CONVERSATIONS_CHANGED =
- "com.android.Bugle.intent.action.ACTION_NOTIFY_CONVERSATIONS_CHANGED";
-
- public static final int WIDGET_NEW_CONVERSATION_REQUEST_CODE = 986;
-
- /**
- * Update the widget appWidgetId
- */
- @Override
- protected void updateWidget(final Context context, final int appWidgetId) {
- if (OsUtil.hasRequiredPermissions()) {
- SafeAsyncTask.executeOnThreadPool(new Runnable() {
- @Override
- public void run() {
- rebuildWidget(context, appWidgetId);
- }
- });
- } else {
- AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId,
- UiUtils.getWidgetMissingPermissionView(context));
- }
- }
-
- @Override
- protected String getAction() {
- return ACTION_NOTIFY_CONVERSATIONS_CHANGED;
- }
-
- @Override
- protected int getListId() {
- return R.id.conversation_list;
- }
-
- public static void rebuildWidget(final Context context, final int appWidgetId) {
- if (LogUtil.isLoggable(TAG, LogUtil.VERBOSE)) {
- LogUtil.v(TAG, "BugleWidgetProvider.rebuildWidget appWidgetId: " + appWidgetId);
- }
- final RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
- R.layout.widget_conversation_list);
- PendingIntent clickIntent;
-
- // Launch an intent to avoid ANRs
- final Intent intent = new Intent(context, WidgetConversationListService.class);
- intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
- intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
- remoteViews.setRemoteAdapter(appWidgetId, R.id.conversation_list, intent);
-
- remoteViews.setTextViewText(R.id.widget_label, context.getString(R.string.app_name));
-
- // Open Bugle's app conversation list when click on header
- clickIntent = UIIntents.get().getWidgetPendingIntentForConversationListActivity(context);
- remoteViews.setOnClickPendingIntent(R.id.widget_header, clickIntent);
-
- // On click intent for Compose
- clickIntent = UIIntents.get().getWidgetPendingIntentForConversationActivity(context,
- null /*conversationId*/, WIDGET_NEW_CONVERSATION_REQUEST_CODE);
- remoteViews.setOnClickPendingIntent(R.id.widget_compose, clickIntent);
-
- // On click intent for Conversation
- // Note: the template intent has to be a "naked" intent without any extras. It turns out
- // that if the template intent does have extras, those particular extras won't get
- // replaced by the fill-in intent on each list item.
- clickIntent = UIIntents.get().getWidgetPendingIntentForConversationActivity(context,
- null /*conversationId*/, WIDGET_CONVERSATION_REQUEST_CODE);
- remoteViews.setPendingIntentTemplate(R.id.conversation_list, clickIntent);
-
- AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, remoteViews);
- }
-
- /*
- * notifyDatasetChanged call when the conversation list changes so the Bugle widget will
- * update and reflect the changes
- */
- public static void notifyConversationListChanged(final Context context) {
- if (LogUtil.isLoggable(TAG, LogUtil.VERBOSE)) {
- LogUtil.v(TAG, "notifyConversationListChanged");
- }
- final Intent intent = new Intent(ACTION_NOTIFY_CONVERSATIONS_CHANGED);
- context.sendBroadcast(intent);
- }
-}