diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.java b/app/src/main/java/com/hippo/ehviewer/EhApplication.java
index af4d51c1a..cf718e40f 100644
--- a/app/src/main/java/com/hippo/ehviewer/EhApplication.java
+++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.java
@@ -43,6 +43,7 @@ import com.hippo.network.StatusCodeException;
import com.hippo.okhttp.CookieDB;
import com.hippo.scene.SceneApplication;
import com.hippo.text.Html;
+import com.hippo.unifile.UniFile;
import com.hippo.util.BitmapUtils;
import com.hippo.util.ReadableTime;
import com.hippo.yorozuya.FileUtils;
@@ -112,8 +113,18 @@ public class EhApplication extends SceneApplication implements Thread.UncaughtEx
Analytics.start(this);
}
- CommonOperations.ensureNoMediaFile(Settings.getDownloadLocation());
+ // Check no media file
+ UniFile downloadLocation = Settings.getDownloadLocation();
+ if (Settings.getMediaScan()) {
+ CommonOperations.removeNoMediaFile(downloadLocation);
+ } else {
+ CommonOperations.ensureNoMediaFile(downloadLocation);
+ }
+
+ // Clear temp dir
clearTempDir();
+
+ // Check app update
update();
// Update version code
diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.java b/app/src/main/java/com/hippo/ehviewer/Settings.java
index 94071c532..684552f0d 100644
--- a/app/src/main/java/com/hippo/ehviewer/Settings.java
+++ b/app/src/main/java/com/hippo/ehviewer/Settings.java
@@ -559,7 +559,18 @@ public class Settings {
putString(KEY_DOWNLOAD_SAVE_QUERY, uri.getEncodedQuery());
putString(KEY_DOWNLOAD_SAVE_FRAGMENT, uri.getEncodedFragment());
- CommonOperations.ensureNoMediaFile(location);
+ if (getMediaScan()) {
+ CommonOperations.removeNoMediaFile(location);
+ } else {
+ CommonOperations.ensureNoMediaFile(location);
+ }
+ }
+
+ public static final String KEY_MEDIA_SCAN = "media_scan";
+ private static final boolean DEFAULT_MEDIA_SCAN = false;
+
+ public static boolean getMediaScan() {
+ return getBoolean(KEY_MEDIA_SCAN, DEFAULT_MEDIA_SCAN);
}
private static final String KEY_RECENT_DOWNLOAD_LABEL = "recent_download_label";
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.java b/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.java
index 47fb362a2..5a0b8be14 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.java
@@ -309,4 +309,15 @@ public final class CommonOperations {
IOUtils.closeQuietly(is);
}
}
+
+ public static void removeNoMediaFile(UniFile file) {
+ if (null == file) {
+ return;
+ }
+
+ UniFile noMedia = file.subFile(".nomedia");
+ if (null != noMedia && noMedia.isFile()) {
+ noMedia.delete();
+ }
+ }
}
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.java
index 306471921..3ab12b319 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/DownloadFragment.java
@@ -32,6 +32,7 @@ import android.widget.Toast;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.Settings;
+import com.hippo.ehviewer.ui.CommonOperations;
import com.hippo.ehviewer.ui.DirPickerActivity;
import com.hippo.unifile.UniFile;
@@ -52,11 +53,13 @@ public class DownloadFragment extends PreferenceFragment implements
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.download_settings);
+ Preference mediaScan = findPreference(Settings.KEY_MEDIA_SCAN);
Preference imageSize = findPreference(Settings.KEY_IMAGE_SIZE);
mDownloadLocation = findPreference(KEY_DOWNLOAD_LOCATION);
onUpdateDownloadLocation();
+ mediaScan.setOnPreferenceChangeListener(this);
imageSize.setOnPreferenceChangeListener(this);
if (mDownloadLocation != null) {
@@ -190,7 +193,17 @@ public class DownloadFragment extends PreferenceFragment implements
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
- if (Settings.KEY_IMAGE_SIZE.equals(key)) {
+ if (Settings.KEY_MEDIA_SCAN.equals(key)) {
+ if (newValue instanceof Boolean) {
+ UniFile downloadLocation = Settings.getDownloadLocation();
+ if ((Boolean) newValue) {
+ CommonOperations.removeNoMediaFile(downloadLocation);
+ } else {
+ CommonOperations.ensureNoMediaFile(downloadLocation);
+ }
+ }
+ return true;
+ } else if (Settings.KEY_IMAGE_SIZE.equals(key)) {
if (newValue instanceof String) {
Settings.putImageSize((String) newValue);
}
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index ed89c3596..3bc0ddf10 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -418,8 +418,6 @@
Lollipop 提供了新的写入外置 SD 卡的 API。如果您想把下载路径设置到外置 SD 卡上,点击“文档”按钮
文档
继续
- 恢复下载项
- 恢复下载目录里的所有下载项
下载线程数
最多同时下载 %s 张图片
预载图片
@@ -429,6 +427,11 @@
自动
下载原图
这很危险!勾选此项会导致下载配额迅速流失
+ 允许媒体扫描
+ 请避免他人翻看你的图库应用
+ 大多数图库应用将不会显示下载目录中的图片
+ 恢复下载项
+ 恢复下载目录里的所有下载项
恢复中
未找到可恢复下载项
恢复失败
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index a8aa18559..caac50754 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -418,8 +418,6 @@
Lollipop 提供了新的寫入外置 SD 卡的 API。如果您想把下載路徑設置到外置 SD 卡上,點擊“文檔”按鈕
文檔
繼續
- 恢復下載項
- 恢復下載目錄裏的所有下載項
下載線程數
最多同時下載 %s 張圖片
預載圖片
@@ -429,6 +427,11 @@
自動
下載原圖
這很危險!勾選此項會導致下載配額迅速流失
+ 允許媒體掃描
+ 請避免他人翻看你的圖庫應用
+ 大多數圖庫應用將不會顯示下載目錄中的圖片
+ 恢復下載項
+ 恢復下載目錄裏的所有下載項
恢復中
未找到可恢復下載項
恢復失敗
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 00fbee065..51ae4e7de 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -418,8 +418,6 @@
Lollipop 提供了新的寫入外接 SD 卡的 API。如果您想把下載路徑設定到外接 SD 卡上,點選“文件”按鈕
文件
繼續
- 恢復下載項
- 恢復下載目錄裡的所有下載項
下載執行緒數
最多同時下載 %s 張圖片
預載圖片
@@ -429,6 +427,11 @@
自動
下載原圖
這很危險!勾選此項會導致下載配額迅速流失
+ 允許媒體掃描
+ 請避免他人翻看你的相簿應用
+ 大多數相簿應用將不會顯示下載目錄中的圖片
+ 恢復下載項
+ 恢復下載目錄裡的所有下載項
恢復中
未找到可恢復下載項
恢復失敗
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d099347d4..759aaacb2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -460,6 +460,9 @@
Android 5.0+ provides new API to write on external SD card. Click the \"DOCUMENT\" button if you want to set download location to SD card
Document
Continue
+ Allow media scan
+ Please keep your gallery apps away from other people
+ Most gallery apps will ignore pictures in download path
Multi thread download
Up to %s images
Preload image
diff --git a/app/src/main/res/xml/download_settings.xml b/app/src/main/res/xml/download_settings.xml
index 60f67ab64..0fbbad25f 100644
--- a/app/src/main/res/xml/download_settings.xml
+++ b/app/src/main/res/xml/download_settings.xml
@@ -23,6 +23,13 @@
android:key="download_location"
android:title="@string/settings_download_download_location"/>
+
+