summaryrefslogtreecommitdiffstats
path: root/src/com/android/email/provider/WidgetProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/email/provider/WidgetProvider.java')
-rw-r--r--src/com/android/email/provider/WidgetProvider.java191
1 files changed, 0 insertions, 191 deletions
diff --git a/src/com/android/email/provider/WidgetProvider.java b/src/com/android/email/provider/WidgetProvider.java
deleted file mode 100644
index 6909e8902..000000000
--- a/src/com/android/email/provider/WidgetProvider.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (C) 2012 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.email.provider;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.database.Cursor;
-import android.net.Uri;
-
-import com.android.emailcommon.provider.Account;
-import com.android.emailcommon.provider.Mailbox;
-import com.android.mail.providers.Folder;
-import com.android.mail.providers.UIProvider;
-import com.android.mail.utils.LogTag;
-import com.android.mail.utils.LogUtils;
-import com.android.mail.widget.BaseWidgetProvider;
-import com.android.mail.widget.WidgetService;
-
-public class WidgetProvider extends BaseWidgetProvider {
- private static final String LEGACY_PREFS_NAME = "com.android.email.widget.WidgetManager";
- private static final String LEGACY_ACCOUNT_ID_PREFIX = "accountId_";
- private static final String LEGACY_MAILBOX_ID_PREFIX = "mailboxId_";
-
- private static final String LOG_TAG = LogTag.getLogTag();
-
- /**
- * Remove preferences when deleting widget
- */
- @Override
- public void onDeleted(Context context, int[] appWidgetIds) {
- super.onDeleted(context, appWidgetIds);
-
- // Remove any legacy Email widget information
- final SharedPreferences prefs = context.getSharedPreferences(LEGACY_PREFS_NAME, 0);
- final SharedPreferences.Editor editor = prefs.edit();
- for (int widgetId : appWidgetIds) {
- // Remove the account in the preference
- editor.remove(LEGACY_ACCOUNT_ID_PREFIX + widgetId);
- editor.remove(LEGACY_MAILBOX_ID_PREFIX + widgetId);
- }
- editor.apply();
- }
-
- @Override
- protected com.android.mail.providers.Account getAccountObject(
- Context context, String accountUri) {
- final ContentResolver resolver = context.getContentResolver();
- final Cursor accountCursor = resolver.query(Uri.parse(accountUri),
- UIProvider.ACCOUNTS_PROJECTION_NO_CAPABILITIES, null, null, null);
-
- return getPopulatedAccountObject(accountCursor);
- }
-
-
- @Override
- protected boolean isAccountValid(Context context, com.android.mail.providers.Account account) {
- if (account != null) {
- final ContentResolver resolver = context.getContentResolver();
- final Cursor accountCursor = resolver.query(account.uri,
- UIProvider.ACCOUNTS_PROJECTION_NO_CAPABILITIES, null, null, null);
- if (accountCursor != null) {
- try {
- return accountCursor.getCount() > 0;
- } finally {
- accountCursor.close();
- }
- }
- }
- return false;
- }
-
- @Override
- protected void migrateLegacyWidgetInformation(Context context, int widgetId) {
- final SharedPreferences prefs = context.getSharedPreferences(LEGACY_PREFS_NAME, 0);
- final SharedPreferences.Editor editor = prefs.edit();
-
- long accountId = loadAccountIdPref(context, widgetId);
- long mailboxId = loadMailboxIdPref(context, widgetId);
- // Legacy support; if preferences haven't been saved for this widget, load something
- if (accountId == Account.NO_ACCOUNT || mailboxId == Mailbox.NO_MAILBOX) {
- LogUtils.d(LOG_TAG, "Couldn't load account or mailbox. accountId: %d" +
- " mailboxId: %d widgetId %d", accountId, mailboxId, widgetId);
- return;
- }
-
- accountId = migrateLegacyWidgetAccountId(accountId);
- mailboxId = migrateLegacyWidgetMailboxId(mailboxId, accountId);
-
- // Get Account and folder objects for the account id and mailbox id
- final com.android.mail.providers.Account uiAccount = getAccount(context, accountId);
- final Folder uiFolder = EmailProvider.getFolder(context, mailboxId);
-
- if (uiAccount != null && uiFolder != null) {
- WidgetService.saveWidgetInformation(context, widgetId, uiAccount,
- uiFolder.folderUri.fullUri.toString());
-
- updateWidgetInternal(context, widgetId, uiAccount, uiFolder.type, uiFolder.capabilities,
- uiFolder.folderUri.fullUri, uiFolder.conversationListUri, uiFolder.name);
-
- // Now remove the old legacy preference value
- editor.remove(LEGACY_ACCOUNT_ID_PREFIX + widgetId);
- editor.remove(LEGACY_MAILBOX_ID_PREFIX + widgetId);
- }
- editor.apply();
- }
-
- private static long migrateLegacyWidgetAccountId(long accountId) {
- if (accountId == Account.ACCOUNT_ID_COMBINED_VIEW) {
- return EmailProvider.COMBINED_ACCOUNT_ID;
- }
- return accountId;
- }
-
- /**
- * @param accountId The migrated accountId
- * @return
- */
- private static long migrateLegacyWidgetMailboxId(long mailboxId, long accountId) {
- if (mailboxId == Mailbox.QUERY_ALL_INBOXES) {
- return EmailProvider.getVirtualMailboxId(accountId, Mailbox.TYPE_INBOX);
- } else if (mailboxId == Mailbox.QUERY_ALL_UNREAD) {
- return EmailProvider.getVirtualMailboxId(accountId, Mailbox.TYPE_UNREAD);
- }
- return mailboxId;
- }
-
- private static com.android.mail.providers.Account getAccount(Context context, long accountId) {
- final ContentResolver resolver = context.getContentResolver();
- final Cursor ac = resolver.query(EmailProvider.uiUri("uiaccount", accountId),
- UIProvider.ACCOUNTS_PROJECTION_NO_CAPABILITIES, null, null, null);
-
- com.android.mail.providers.Account uiAccount = getPopulatedAccountObject(ac);
-
- return uiAccount;
- }
-
- private static com.android.mail.providers.Account getPopulatedAccountObject(
- final Cursor accountCursor) {
- if (accountCursor == null) {
- LogUtils.e(LOG_TAG, "Null account cursor");
- return null;
- }
-
- com.android.mail.providers.Account uiAccount = null;
- try {
- if (accountCursor.moveToFirst()) {
- uiAccount = com.android.mail.providers.Account.builder().buildFrom(accountCursor);
- }
- } finally {
- accountCursor.close();
- }
- return uiAccount;
- }
-
- /**
- * Returns the saved account ID for the given widget. Otherwise,
- * {@link com.android.emailcommon.provider.Account#NO_ACCOUNT} if
- * the account ID was not previously saved.
- */
- static long loadAccountIdPref(Context context, int appWidgetId) {
- final SharedPreferences prefs = context.getSharedPreferences(LEGACY_PREFS_NAME, 0);
- long accountId = prefs.getLong(LEGACY_ACCOUNT_ID_PREFIX + appWidgetId, Account.NO_ACCOUNT);
- return accountId;
- }
-
- /**
- * Returns the saved mailbox ID for the given widget. Otherwise,
- * {@link com.android.emailcommon.provider.Mailbox#NO_MAILBOX} if
- * the mailbox ID was not previously saved.
- */
- static long loadMailboxIdPref(Context context, int appWidgetId) {
- final SharedPreferences prefs = context.getSharedPreferences(LEGACY_PREFS_NAME, 0);
- long mailboxId = prefs.getLong(LEGACY_MAILBOX_ID_PREFIX + appWidgetId, Mailbox.NO_MAILBOX);
- return mailboxId;
- }
-}