Index: chrome/android/java/src/org/chromium/chrome/browser/infobar/DownloadOverwriteInfoBar.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/DownloadOverwriteInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/DownloadOverwriteInfoBar.java |
deleted file mode 100644 |
index 288d50c92e999abc8247b934013e9570ea19a999..0000000000000000000000000000000000000000 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/DownloadOverwriteInfoBar.java |
+++ /dev/null |
@@ -1,146 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.browser.infobar; |
- |
-import android.content.Context; |
-import android.content.Intent; |
-import android.content.pm.PackageManager; |
-import android.content.pm.ResolveInfo; |
-import android.graphics.Typeface; |
-import android.net.Uri; |
-import android.text.Spannable; |
-import android.text.SpannableString; |
-import android.text.TextUtils; |
-import android.text.style.ClickableSpan; |
-import android.text.style.StyleSpan; |
-import android.view.View; |
- |
-import org.chromium.base.annotations.CalledByNative; |
-import org.chromium.chrome.R; |
-import org.chromium.chrome.browser.download.DownloadUtils; |
- |
-import java.util.List; |
- |
-/** |
- * An infobar to ask whether to overwrite an existing file with a new download. |
- */ |
-public class DownloadOverwriteInfoBar extends InfoBar { |
- private static final String TAG = "DownloadOverwriteInfoBar"; |
- |
- private final String mFileName; |
- private final String mDirName; |
- private final String mDirFullPath; |
- |
- @CalledByNative |
- private static InfoBar createInfoBar(String fileName, String dirName, String dirFullPath) { |
- return new DownloadOverwriteInfoBar(fileName, dirName, dirFullPath); |
- } |
- |
- /** |
- * Constructs DownloadOverwriteInfoBar. |
- * @param fileName The file name. ex) example.jpg |
- * @param dirName The dir name. ex) Downloads |
- * @param dirFullPath The full dir path. ex) sdcards/Downloads. If empty, the Download Manager |
- * will be opened. |
- */ |
- private DownloadOverwriteInfoBar(String fileName, String dirName, String dirFullPath) { |
- super(R.drawable.infobar_downloading, null, null); |
- mFileName = fileName; |
- mDirName = dirName; |
- mDirFullPath = dirFullPath; |
- } |
- |
- @Override |
- public void onButtonClicked(boolean isPrimaryButton) { |
- int action = isPrimaryButton ? ActionType.OVERWRITE |
- : ActionType.CREATE_NEW_FILE; |
- onButtonClicked(action); |
- } |
- |
- private boolean opensDownloadManager() { |
- return mDirFullPath == null || mDirFullPath.isEmpty(); |
- } |
- |
- private CharSequence getMessageText(Context context) { |
- String template = context.getString(R.string.download_overwrite_infobar_text); |
- Intent intent = null; |
- |
- // If the full path is left empty, we assume that the file is in the Chrome Download |
- // Manager. So then in formatInfoBarMessage, if the intent remains null then we are going |
- // to open the download manager when the directory name is clicked. |
- if (!opensDownloadManager()) intent = getIntentForDirectoryLaunch(mDirFullPath); |
- return formatInfoBarMessage(context, template, mFileName, mDirName, intent); |
- } |
- |
- /** |
- * @param dirFullPath The full path of the directory to be launched. |
- * @return An Android intent that can launch the directory. |
- */ |
- private static Intent getIntentForDirectoryLaunch(String dirFullPath) { |
- Intent intent = new Intent(Intent.ACTION_GET_CONTENT); |
- Uri uri = Uri.parse(dirFullPath); |
- if (uri == null) { |
- return null; |
- } |
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
- intent.setDataAndType(uri, "*/*"); |
- return intent; |
- } |
- |
- @Override |
- public void createContent(InfoBarLayout layout) { |
- Context context = layout.getContext(); |
- layout.setMessage(getMessageText(context)); |
- layout.setButtons( |
- context.getString(R.string.download_overwrite_infobar_replace_file_button), |
- context.getString(R.string.download_overwrite_infobar_create_new_file_button)); |
- } |
- |
- /** |
- * Create infobar message in the form of CharSequence. |
- * |
- * @param context The context. |
- * @param template The template CharSequence. |
- * @param fileName The file name. |
- * @param dirName The directory name. |
- * @param dirNameIntent The intent to be launched when user touches the directory name link. |
- * @return CharSequence formatted message for InfoBar. |
- */ |
- private CharSequence formatInfoBarMessage(final Context context, String template, |
- String fileName, String dirName, final Intent dirNameIntent) { |
- SpannableString formattedFileName = new SpannableString(fileName); |
- formattedFileName.setSpan(new StyleSpan(Typeface.BOLD), 0, fileName.length(), |
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); |
- |
- SpannableString formattedDirName = new SpannableString(dirName); |
- if (canResolveIntent(context, dirNameIntent)) { |
- formattedDirName.setSpan(new ClickableSpan() { |
- @Override |
- public void onClick(View view) { |
- context.startActivity(dirNameIntent); |
- } |
- }, 0, dirName.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); |
- } else if (opensDownloadManager()) { |
- formattedDirName.setSpan(new ClickableSpan() { |
- @Override |
- public void onClick(View view) { |
- DownloadUtils.showDownloadManager(null, null); |
- } |
- }, 0, dirName.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); |
- } |
- |
- return TextUtils.expandTemplate(template, formattedFileName, formattedDirName); |
- } |
- |
- private static boolean canResolveIntent(Context context, Intent intent) { |
- if (context == null || intent == null) { |
- return false; |
- } |
- final PackageManager packageManager = context.getPackageManager(); |
- List<ResolveInfo> resolveInfoList = |
- packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); |
- return resolveInfoList.size() > 0; |
- } |
-} |