mirror of
https://github.com/M66B/FairEmail.git
synced 2025-12-30 09:31:11 +01:00
Support for renaming folders
This commit is contained in:
@@ -222,7 +222,7 @@ public class FragmentFolder extends FragmentBase {
|
||||
|
||||
Helper.setViewsEnabled(view, true);
|
||||
|
||||
etName.setEnabled(folder == null);
|
||||
etName.setEnabled(folder == null || EntityFolder.USER.equals(folder.type));
|
||||
cbPoll.setEnabled(cbSynchronize.isChecked());
|
||||
cbDownload.setEnabled(cbSynchronize.isChecked());
|
||||
etKeepDays.setEnabled(!cbKeepAll.isChecked());
|
||||
@@ -361,7 +361,7 @@ public class FragmentFolder extends FragmentBase {
|
||||
|
||||
boolean should = args.getBoolean("should");
|
||||
|
||||
if (TextUtils.isEmpty(display))
|
||||
if (TextUtils.isEmpty(display) || display.equals(name))
|
||||
display = null;
|
||||
|
||||
int sync_days = (TextUtils.isEmpty(sync) ? EntityFolder.DEFAULT_SYNC : Integer.parseInt(sync));
|
||||
@@ -380,6 +380,8 @@ public class FragmentFolder extends FragmentBase {
|
||||
if (folder == null)
|
||||
return !TextUtils.isEmpty(name);
|
||||
|
||||
if (!Objects.equals(folder.name, name))
|
||||
return true;
|
||||
if (!Objects.equals(folder.display, display))
|
||||
return true;
|
||||
if (!Objects.equals(folder.unified, unified))
|
||||
@@ -406,9 +408,6 @@ public class FragmentFolder extends FragmentBase {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(display) || display.equals(name))
|
||||
display = null;
|
||||
|
||||
if (folder == null) {
|
||||
reload = true;
|
||||
Log.i("Creating folder=" + name + " parent=" + parent);
|
||||
@@ -423,7 +422,8 @@ public class FragmentFolder extends FragmentBase {
|
||||
|
||||
if (TextUtils.isEmpty(name))
|
||||
throw new IllegalArgumentException(context.getString(R.string.title_folder_name_missing));
|
||||
if (db.folder().getFolderByName(aid, name) != null)
|
||||
EntityFolder target = db.folder().getFolderByName(aid, name);
|
||||
if (target != null)
|
||||
throw new IllegalArgumentException(context.getString(R.string.title_folder_exists, name));
|
||||
|
||||
EntityFolder create = new EntityFolder();
|
||||
@@ -443,11 +443,19 @@ public class FragmentFolder extends FragmentBase {
|
||||
create.tbc = true;
|
||||
db.folder().insertFolder(create);
|
||||
} else {
|
||||
reload = (!folder.synchronize.equals(synchronize) ||
|
||||
if (!folder.name.equals(name)) {
|
||||
EntityFolder target = db.folder().getFolderByName(folder.account, name);
|
||||
if (target != null)
|
||||
throw new IllegalArgumentException(context.getString(R.string.title_folder_exists, name));
|
||||
}
|
||||
|
||||
reload = (!folder.name.equals(name) ||
|
||||
!folder.synchronize.equals(synchronize) ||
|
||||
!folder.poll.equals(poll));
|
||||
|
||||
Log.i("Updating folder=" + name);
|
||||
Log.i("Updating folder=" + folder.name);
|
||||
db.folder().setFolderProperties(id,
|
||||
folder.name.equals(name) ? null : name,
|
||||
display, unified, navigation, notify, hide,
|
||||
synchronize, poll, download,
|
||||
sync_days, keep_days, auto_delete);
|
||||
|
||||
Reference in New Issue
Block a user