diff --git a/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java
index 3d6eb0199..971f3f472 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/DirPickerActivity.java
@@ -25,11 +25,14 @@ import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
+import androidx.core.content.ContextCompat;
import com.hippo.android.resource.AttrResources;
+import com.hippo.ehviewer.AppConfig;
import com.hippo.ehviewer.R;
import com.hippo.ripple.Ripple;
import com.hippo.widget.DirExplorer;
-import com.hippo.yorozuya.ViewUtils;
+import com.hippo.yorozuya.FileUtils;
import java.io.File;
public class DirPickerActivity extends ToolbarActivity
@@ -46,6 +49,7 @@ public class DirPickerActivity extends ToolbarActivity
private TextView mPath;
@Nullable
private DirExplorer mDirExplorer;
+ private View mDefault;
@Nullable
private View mOk;
@@ -55,9 +59,10 @@ public class DirPickerActivity extends ToolbarActivity
setContentView(R.layout.activity_dir_picker);
setNavigationIcon(R.drawable.v_arrow_left_dark_x24);
- mPath = (TextView) ViewUtils.$$(this, R.id.path);
- mDirExplorer = (DirExplorer) ViewUtils.$$(this, R.id.dir_explorer);
- mOk = ViewUtils.$$(this, R.id.ok);
+ mPath = findViewById(R.id.path);
+ mDirExplorer = findViewById(R.id.dir_explorer);
+ mDefault = findViewById(R.id.preset);
+ mOk = findViewById(R.id.ok);
File file;
if (null == savedInstanceState) {
@@ -71,6 +76,7 @@ public class DirPickerActivity extends ToolbarActivity
Ripple.addRipple(mOk, !AttrResources.getAttrBoolean(this, R.attr.isLightTheme));
+ mDefault.setOnClickListener(this);
mOk.setOnClickListener(this);
mPath.setText(mDirExplorer.getCurrentFile().getPath());
@@ -126,7 +132,31 @@ public class DirPickerActivity extends ToolbarActivity
@Override
public void onClick(@NonNull View v) {
- if (mOk == v) {
+ if (mDefault == v) {
+ File[] externalFilesDirs = ContextCompat.getExternalFilesDirs(this, null);
+ File[] dirs = new File[externalFilesDirs.length + 1];
+ dirs[0] = AppConfig.getDefaultDownloadDir();
+ for (int i = 0; i < externalFilesDirs.length; i++) {
+ dirs[i + 1] = new File(externalFilesDirs[i], "download");
+ }
+
+ CharSequence[] items = new CharSequence[dirs.length];
+ items[0] = getString(R.string.default_directory);
+ for (int i = 1; i < items.length; i++) {
+ items[i] = getString(R.string.application_file_directory, i);
+ }
+
+ new AlertDialog.Builder(this).setItems(items, (dialog, which) -> {
+ File dir = dirs[which];
+ if (!FileUtils.ensureDirectory(dir)) {
+ Toast.makeText(DirPickerActivity.this, R.string.directory_not_writable, Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (mDirExplorer != null) {
+ mDirExplorer.setCurrentFile(dir);
+ }
+ }).show();
+ } else if (mOk == v) {
if (null == mDirExplorer) {
return;
}
diff --git a/app/src/main/res/layout/activity_dir_picker.xml b/app/src/main/res/layout/activity_dir_picker.xml
index 7ac7024eb..f6c243126 100644
--- a/app/src/main/res/layout/activity_dir_picker.xml
+++ b/app/src/main/res/layout/activity_dir_picker.xml
@@ -38,13 +38,27 @@
android:layout_height="0dp"
android:layout_weight="1"/>
-
+
+
+
+
+
+
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index b4bd643e2..bb93e4c1e 100755
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -396,6 +396,11 @@
无效的 host
无效的 IP
+
+ 预设
+ 默认目录
+ 应用文件目录 %d (应用卸载后会被删除)
+
第 %d 页
@string/refresh
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 23a50845d..c09531884 100755
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -396,6 +396,11 @@
無效的 host
無效的 IP
+
+ 預設
+ 默認目錄
+ 應用文件目錄 %d (應用卸載後會被刪除)
+
第 %d 頁
@string/refresh
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 3465dc654..e4d20fad9 100755
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -395,6 +395,11 @@
無效的 host
無效的 IP
+
+ 預設
+ 預設目錄
+ 應用檔案目錄 %d (應用解除安裝後會被刪除)
+
第 %d 頁
@string/refresh
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 918ae6218..5c3a9dfe4 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -442,6 +442,11 @@
Invalid host
Invalid IP
+
+ Preset
+ Default directory
+ App file directory %d (it will be remove after uninstalling the app)
+
Page %d
@string/refresh