diff options
Diffstat (limited to 'java/src/com/android/inputmethod/dictionarypack/ActionBatch.java')
-rw-r--r-- | java/src/com/android/inputmethod/dictionarypack/ActionBatch.java | 45 |
1 files changed, 14 insertions, 31 deletions
diff --git a/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java b/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java index 09f8032cc..1b526d453 100644 --- a/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java +++ b/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java @@ -25,8 +25,9 @@ import android.net.Uri; import android.text.TextUtils; import android.util.Log; -import com.android.inputmethod.compat.DownloadManagerCompatUtils; +import com.android.inputmethod.latin.BinaryDictionaryFileDumper; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.common.LocaleUtils; import com.android.inputmethod.latin.utils.ApplicationUtils; import com.android.inputmethod.latin.utils.DebugLogUtils; @@ -84,7 +85,7 @@ public final class ActionBatch { * Execute this action NOW. * @param context the context to get system services, resources, databases */ - public void execute(final Context context); + void execute(final Context context); } /** @@ -96,13 +97,10 @@ public final class ActionBatch { private final String mClientId; // The data to download. May not be null. final WordListMetadata mWordList; - final boolean mForceStartNow; - public StartDownloadAction(final String clientId, - final WordListMetadata wordList, final boolean forceStartNow) { + public StartDownloadAction(final String clientId, final WordListMetadata wordList) { DebugLogUtils.l("New download action for client ", clientId, " : ", wordList); mClientId = clientId; mWordList = wordList; - mForceStartNow = forceStartNow; } @Override @@ -141,32 +139,9 @@ public final class ActionBatch { final Request request = new Request(uri); final Resources res = context.getResources(); - if (!mForceStartNow) { - if (DownloadManagerCompatUtils.hasSetAllowedOverMetered()) { - final boolean allowOverMetered; - switch (UpdateHandler.getDownloadOverMeteredSetting(context)) { - case UpdateHandler.DOWNLOAD_OVER_METERED_DISALLOWED: - // User said no: don't allow. - allowOverMetered = false; - break; - case UpdateHandler.DOWNLOAD_OVER_METERED_ALLOWED: - // User said yes: allow. - allowOverMetered = true; - break; - default: // UpdateHandler.DOWNLOAD_OVER_METERED_SETTING_UNKNOWN - // Don't know: use the default value from configuration. - allowOverMetered = res.getBoolean(R.bool.allow_over_metered); - } - DownloadManagerCompatUtils.setAllowedOverMetered(request, allowOverMetered); - } else { - request.setAllowedNetworkTypes(Request.NETWORK_WIFI); - } - request.setAllowedOverRoaming(res.getBoolean(R.bool.allow_over_roaming)); - } // if mForceStartNow, then allow all network types and roaming, which is the default. + request.setAllowedNetworkTypes(Request.NETWORK_WIFI | Request.NETWORK_MOBILE); request.setTitle(mWordList.mDescription); - request.setNotificationVisibility( - res.getBoolean(R.bool.display_notification_for_auto_update) - ? Request.VISIBILITY_VISIBLE : Request.VISIBILITY_HIDDEN); + request.setNotificationVisibility(Request.VISIBILITY_HIDDEN); request.setVisibleInDownloadsUi( res.getBoolean(R.bool.dict_downloads_visible_in_download_UI)); @@ -210,9 +185,17 @@ public final class ActionBatch { + " for an InstallAfterDownload action. Bailing out."); return; } + DebugLogUtils.l("Setting word list as installed"); final SQLiteDatabase db = MetadataDbHelper.getDb(context, mClientId); MetadataDbHelper.markEntryAsFinishedDownloadingAndInstalled(db, mWordListValues); + + // Install the downloaded file by un-compressing and moving it to the staging + // directory. Ideally, we should do this before updating the DB, but the + // installDictToStagingFromContentProvider() relies on the db being updated. + final String localeString = mWordListValues.getAsString(MetadataDbHelper.LOCALE_COLUMN); + BinaryDictionaryFileDumper.installDictToStagingFromContentProvider( + LocaleUtils.constructLocaleFromString(localeString), context, false); } } |