From 1510b1276614b496ffca747ce1122e43f4508956 Mon Sep 17 00:00:00 2001 From: Floens Date: Thu, 14 Jul 2016 15:05:38 +0200 Subject: [PATCH] Fixup previous PR Don't save in the subfolder by default. Set the sub folder on the image task, and give the task to getSaveLocation so that it can find out if it should return a sub folder or not. Move setting to main settings screen. --- .../floens/chan/core/saver/ImageSaveTask.java | 10 ++++--- .../floens/chan/core/saver/ImageSaver.java | 26 +++++++++---------- .../chan/core/settings/ChanSettings.java | 4 +-- .../AdvancedSettingsController.java | 2 -- .../ui/controller/ImageViewerController.java | 4 ++- .../ui/controller/MainSettingsController.java | 1 + Clover/app/src/main/res/values/strings.xml | 3 ++- 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaveTask.java b/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaveTask.java index 523541e7..9a2a23d5 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaveTask.java +++ b/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaveTask.java @@ -50,14 +50,16 @@ public class ImageSaveTask implements Runnable, FileCache.DownloadedCallback { private boolean makeBitmap; private Bitmap bitmap; private boolean showToast; - private String boardName; + private String subFolder; private boolean success = false; - public void setBoardName(String boardName) {this.boardName = boardName;} + public void setSubFolder(String boardName) { + this.subFolder = boardName; + } - public String getBoardName() { - return boardName; + public String getSubFolder() { + return subFolder; } public ImageSaveTask(PostImage postImage) { diff --git a/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaver.java b/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaver.java index 99b69c16..f075a164 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaver.java +++ b/Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaver.java @@ -43,8 +43,8 @@ import static org.floens.chan.utils.AndroidUtils.getAppContext; import static org.floens.chan.utils.AndroidUtils.getString; public class ImageSaver implements ImageSaveTask.ImageSaveTaskCallback { - public static final int MAX_RENAME_TRIES = 500; private static final String TAG = "ImageSaver"; + private static final int MAX_RENAME_TRIES = 500; private static final int NOTIFICATION_ID = 3; private static final int MAX_NAME_LENGTH = 50; private static final Pattern REPEATED_UNDERSCORES_PATTERN = Pattern.compile("_+"); @@ -55,25 +55,21 @@ public class ImageSaver implements ImageSaveTask.ImageSaveTaskCallback { private int doneTasks = 0; private int totalTasks = 0; private Toast toast; - private String boardName; + public static ImageSaver getInstance() { + return instance; + } private ImageSaver() { EventBus.getDefault().register(this); notificationManager = (NotificationManager) getAppContext().getSystemService(Context.NOTIFICATION_SERVICE); } - public static ImageSaver getInstance() { - return instance; - } - public void startDownloadTask(Context context, final ImageSaveTask task) { - - boardName = task.getBoardName(); PostImage postImage = task.getPostImage(); String name = ChanSettings.saveOriginalFilename.get() ? postImage.originalName : postImage.filename; String fileName = filterName(name + "." + postImage.extension); - task.setDestination(findUnusedFileName(new File(getSaveLocation(), fileName), false)); + task.setDestination(findUnusedFileName(new File(getSaveLocation(task), fileName), false)); // task.setMakeBitmap(true); task.setShowToast(true); @@ -125,11 +121,13 @@ public class ImageSaver implements ImageSaveTask.ImageSaveTaskCallback { return filtered; } - public File getSaveLocation() { - if (ChanSettings.saveBoardFolder.get()) { - return new File(ChanSettings.saveLocation.get() + File.separator + boardName); + public File getSaveLocation(ImageSaveTask task) { + String base = ChanSettings.saveLocation.get(); + String boardName = task.getSubFolder(); + if (boardName != null) { + return new File(base + File.separator + boardName); } else { - return new File(ChanSettings.saveLocation.get()); + return new File(base); } } @@ -165,7 +163,7 @@ public class ImageSaver implements ImageSaveTask.ImageSaveTaskCallback { for (ImageSaveTask task : tasks) { PostImage postImage = task.getPostImage(); String fileName = filterName(postImage.originalName + "." + postImage.extension); - task.setDestination(new File(getSaveLocation() + File.separator + subFolder + File.separator + fileName)); + task.setDestination(new File(getSaveLocation(task) + File.separator + subFolder + File.separator + fileName)); startTask(task); } diff --git a/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java b/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java index e8f2af2c..715491cf 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java +++ b/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java @@ -130,7 +130,6 @@ public class ChanSettings { public static final BooleanSetting postFilename; public static final BooleanSetting neverHideToolbar; public static final BooleanSetting controllerSwipeable; - public static final BooleanSetting saveBoardFolder; public static final BooleanSetting watchEnabled; @@ -228,8 +227,7 @@ public class ChanSettings { postFilename = new BooleanSetting(p, "preference_post_filename", false); neverHideToolbar = new BooleanSetting(p, "preference_never_hide_toolbar", false); controllerSwipeable = new BooleanSetting(p, "preference_controller_swipeable", true); - - saveBoardFolder = new BooleanSetting(p, "preference_save_subboard", true); + saveBoardFolder = new BooleanSetting(p, "preference_save_subboard", false); watchEnabled = new BooleanSetting(p, "preference_watch_enabled", false); watchEnabled.addCallback(new Setting.SettingCallback() { diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java index c94e7e2f..5b62993b 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java @@ -105,8 +105,6 @@ public class AdvancedSettingsController extends SettingsController { settings.add(new BooleanSettingView(this, ChanSettings.postFilename, R.string.setting_post_filename, 0)); neverHideToolbar = settings.add(new BooleanSettingView(this, ChanSettings.neverHideToolbar, R.string.setting_never_hide_toolbar, 0)); - settings.add(new BooleanSettingView(this, ChanSettings.saveBoardFolder, R.string.setting_save_board_folder, 0)); - groups.add(settings); SettingsGroup proxy = new SettingsGroup(R.string.settings_group_proxy); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java index ed32cbf4..862bb50e 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java @@ -231,7 +231,9 @@ public class ImageViewerController extends Controller implements ImageViewerPres } else { ImageSaveTask task = new ImageSaveTask(postImage); task.setShare(share); - task.setBoardName(presenter.getLoadable().board); + if (ChanSettings.saveBoardFolder.get()) { + task.setSubFolder(presenter.getLoadable().board); + } ImageSaver.getInstance().startDownloadTask(context, task); } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java index 1b7e06df..cce54c56 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java @@ -272,6 +272,7 @@ public class MainSettingsController extends SettingsController implements Toolba } })); setSaveLocationDescription(); + browsing.add(new BooleanSettingView(this, ChanSettings.saveBoardFolder, R.string.setting_save_board_folder, R.string.setting_save_board_folder_description)); browsing.add(new BooleanSettingView(this, ChanSettings.openLinkConfirmation, R.string.setting_open_link_confirmation, 0)); browsing.add(new BooleanSettingView(this, ChanSettings.autoRefreshThread, R.string.setting_auto_refresh_thread, 0)); diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index d108e51a..19d2c7e4 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -411,7 +411,8 @@ Re-enable this permission in the app settings if you permanently disabled it."Use the new captcha Enable to use the newer recaptcha. Save original filename - Save in board folder + Save images in a board folder + Create a folder for each board to store images in Share url to image Share the url to the image instead of the image itself Use HTTPS