Merge "Browser: real download path can't match the displayed path"
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 7d0223c..e16cb17 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -454,7 +454,7 @@
<string name="download_file_exist_msg">文件已经存在,请重新输入文件名!</string>
<string name="download_file_exist">文件已经存在</string>
<string name ="time_min">分钟</string>
- <string name="download_path_phone_stroage_label">/内置存储器</string>
+ <string name="download_path_phone_storage_label">/内置存储器</string>
<string name="download_path_sd_card_label">/SD卡</string>
<string name="download_path_unavailable_dlg_title">浏览器的下载路径不可达</string>
<string name="download_path_unavailable_dlg_msg">请重新设置浏览器的下载路径</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index dab4f51..e4c2fd3 100755
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1069,7 +1069,7 @@
<string name="download_file_exist_msg">This File is Already Exist,Please Input a New File\'s Name!</string>
<string name="download_file_exist">File Exist</string>
<string name ="time_min">min</string>
- <string name="download_path_phone_stroage_label">/Phone Stroage</string>
+ <string name="download_path_phone_storage_label">/Phone Storage</string>
<string name="download_path_sd_card_label">/SD card</string>
<string name="download_path_unavailable_dlg_title">Download Directory is Unavailable</string>
<string name="download_path_unavailable_dlg_msg">Please modify the Download Directory of Browser</string>
diff --git a/src/com/android/browser/DownloadHandler.java b/src/com/android/browser/DownloadHandler.java
index 15167a0..1ce33da 100644
--- a/src/com/android/browser/DownloadHandler.java
+++ b/src/com/android/browser/DownloadHandler.java
@@ -566,7 +566,7 @@
downloadPath = downloadPath.replace(sdCardDir, sdCardLabel);
} else if ((phoneStorageDir != null) && downloadPath.startsWith(phoneStorageDir)) {
String phoneStorageLabel = activity.getResources().getString(
- R.string.download_path_phone_stroage_label);
+ R.string.download_path_phone_storage_label);
downloadPath = downloadPath.replace(phoneStorageDir, phoneStorageLabel);
}
return downloadPath;
diff --git a/src/com/android/browser/DownloadSettings.java b/src/com/android/browser/DownloadSettings.java
index aecb543..698fa88 100644
--- a/src/com/android/browser/DownloadSettings.java
+++ b/src/com/android/browser/DownloadSettings.java
@@ -36,6 +36,7 @@
import java.lang.Thread;
import android.net.Uri;
import android.os.Bundle;
+import android.os.Environment;
import android.text.format.*;
import android.util.Log;
import android.view.View;
@@ -115,7 +116,8 @@
BrowserUtils.FILENAME_MAX_LENGTH);
downloadFilenameET.setText(filenameBase);
- downloadPath = BrowserSettings.getInstance().getDownloadPath();
+ downloadPath = chooseFolderFromMimeType(BrowserSettings.getInstance().getDownloadPath(),
+ mimetype);
downloadPathForUser = DownloadHandler.getDownloadPathForUser(DownloadSettings.this,
downloadPath);
setDownloadPathForUserText(downloadPathForUser);
@@ -238,6 +240,22 @@
}
}
+ // Add for carrier feature - download to related folders by mimetype.
+ private static String chooseFolderFromMimeType(String path, String mimeType) {
+ String destinationFolder = null;
+ if (!path.contains(Environment.DIRECTORY_DOWNLOADS) || null == mimeType)
+ return path;
+ if (mimeType.startsWith("audio"))
+ destinationFolder = Environment.DIRECTORY_MUSIC;
+ else if (mimeType.startsWith("video"))
+ destinationFolder = Environment.DIRECTORY_MOVIES;
+ else if (mimeType.startsWith("image"))
+ destinationFolder = Environment.DIRECTORY_PICTURES;
+ if (null != destinationFolder)
+ path = path.replace(Environment.DIRECTORY_DOWNLOADS, destinationFolder);
+ return path;
+ }
+
/**
* show download path for user
*