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.
multisite
Floens 9 years ago
parent a250594acd
commit 1510b12766
  1. 10
      Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaveTask.java
  2. 26
      Clover/app/src/main/java/org/floens/chan/core/saver/ImageSaver.java
  3. 4
      Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java
  4. 2
      Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java
  5. 4
      Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java
  6. 1
      Clover/app/src/main/java/org/floens/chan/ui/controller/MainSettingsController.java
  7. 3
      Clover/app/src/main/res/values/strings.xml

@ -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) {

@ -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);
}

@ -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<Boolean>() {

@ -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);

@ -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);
}
}

@ -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));

@ -411,7 +411,8 @@ Re-enable this permission in the app settings if you permanently disabled it."</
<string name="setting_use_new_captcha">Use the new captcha</string>
<string name="setting_use_new_captcha_description">Enable to use the newer recaptcha.</string>
<string name="setting_save_original_filename">Save original filename</string>
<string name="setting_save_board_folder">Save in board folder</string>
<string name="setting_save_board_folder">Save images in a board folder</string>
<string name="setting_save_board_folder_description">Create a folder for each board to store images in</string>
<string name="setting_share_url">Share url to image</string>
<string name="setting_share_url_description">Share the url to the image instead of the image itself</string>
<string name="setting_network_https">Use HTTPS</string>

Loading…
Cancel
Save