Don't show download toast during SUW
Check to see if setup wizard is running before showing toast to
inform user that a download was started. Note that this will only
affect the device owner; when adding new users later, the toast
will still appear. (The USER_SETUP_COMPLETE flag is hidden from
the SDK, while DEVICE_PROVISIONED remains available.)
Bug: 22594336
Change-Id: I57c42d6f821714b71cbb066e82bba2a1dbab4951
diff --git a/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java b/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java
index a02203d..0517bc8 100644
--- a/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java
+++ b/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java
@@ -32,6 +32,7 @@
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.ParcelFileDescriptor;
+import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
@@ -956,14 +957,23 @@
WordListMetadata metadata = WordListMetadata.createFromContentValues(installCandidate);
actions.add(new ActionBatch.StartDownloadAction(clientId, metadata));
final String localeString = installCandidate.getAsString(MetadataDbHelper.LOCALE_COLUMN);
+
// We are in a content provider: we can't do any UI at all. We have to defer the displaying
// itself to the service. Also, we only display this when the user does not have a
- // dictionary for this language already.
- final Intent intent = new Intent();
- intent.setClass(context, DictionaryService.class);
- intent.setAction(DictionaryService.SHOW_DOWNLOAD_TOAST_INTENT_ACTION);
- intent.putExtra(DictionaryService.LOCALE_INTENT_ARGUMENT, localeString);
- context.startService(intent);
+ // dictionary for this language already. During setup wizard, however, this UI is
+ // suppressed.
+ final boolean deviceProvisioned = Settings.Global.getInt(context.getContentResolver(),
+ Settings.Global.DEVICE_PROVISIONED, 0) != 0;
+ if (deviceProvisioned) {
+ final Intent intent = new Intent();
+ intent.setClass(context, DictionaryService.class);
+ intent.setAction(DictionaryService.SHOW_DOWNLOAD_TOAST_INTENT_ACTION);
+ intent.putExtra(DictionaryService.LOCALE_INTENT_ARGUMENT, localeString);
+ context.startService(intent);
+ } else {
+ Log.i(TAG, "installIfNeverRequested() : Don't show download toast");
+ }
+
Log.i(TAG, "installIfNeverRequested() : StartDownloadAction for " + metadata);
actions.execute(context, new LogProblemReporter(TAG));
}