From a2a9dbcb0282f44d624070f9919cbc9c6c3bc682 Mon Sep 17 00:00:00 2001 From: seven332 Date: Fri, 8 Apr 2016 20:28:05 +0800 Subject: [PATCH] Add media scan config --- .../java/com/hippo/ehviewer/EhApplication.java | 13 ++++++++++++- .../main/java/com/hippo/ehviewer/Settings.java | 13 ++++++++++++- .../com/hippo/ehviewer/ui/CommonOperations.java | 11 +++++++++++ .../ehviewer/ui/fragment/DownloadFragment.java | 15 ++++++++++++++- app/src/main/res/values-zh-rCN/strings.xml | 7 +++++-- app/src/main/res/values-zh-rHK/strings.xml | 7 +++++-- app/src/main/res/values-zh-rTW/strings.xml | 7 +++++-- app/src/main/res/values/strings.xml | 3 +++ app/src/main/res/xml/download_settings.xml | 7 +++++++ 9 files changed, 74 insertions(+), 9 deletions(-) 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"/> + +