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