mirror of
https://github.com/M66B/FairEmail.git
synced 2026-03-31 14:17:03 +02:00
Prevent deleting folders with children
This commit is contained in:
@@ -730,7 +730,8 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
||||
if (folder.selectable && Shortcuts.can(context))
|
||||
popupMenu.getMenu().add(Menu.NONE, R.string.title_pin, order++, R.string.title_pin);
|
||||
|
||||
if (!folder.read_only && EntityFolder.USER.equals(folder.type))
|
||||
if (!folder.read_only && EntityFolder.USER.equals(folder.type) &&
|
||||
(folder.child_refs == null || folder.child_refs.isEmpty()))
|
||||
popupMenu.getMenu().add(Menu.NONE, R.string.title_delete, order++, R.string.title_delete);
|
||||
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
|
||||
@@ -52,6 +52,7 @@ import androidx.preference.PreferenceManager;
|
||||
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class FragmentFolder extends FragmentBase {
|
||||
@@ -301,6 +302,9 @@ public class FragmentFolder extends FragmentBase {
|
||||
EntityFolder parent = db.folder().getFolderByName(aid, parentName);
|
||||
EntityFolder folder = db.folder().getFolder(id);
|
||||
|
||||
List<EntityFolder> children = db.folder().getChildFolders(id);
|
||||
args.putBoolean("children", (children != null && !children.isEmpty()));
|
||||
|
||||
if (folder != null) {
|
||||
EntityAccount account = db.account().getAccount(folder.account);
|
||||
if (account != null) {
|
||||
@@ -377,7 +381,8 @@ public class FragmentFolder extends FragmentBase {
|
||||
|
||||
deletable = (folder != null &&
|
||||
!folder.read_only &&
|
||||
EntityFolder.USER.equals(folder.type));
|
||||
EntityFolder.USER.equals(folder.type) &&
|
||||
!args.getBoolean("children"));
|
||||
invalidateOptionsMenu();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user