mirror of
https://github.com/M66B/FairEmail.git
synced 2024-12-31 20:25:38 +00:00
Confirm repair
This commit is contained in:
parent
09406ecac8
commit
c468068603
1 changed files with 59 additions and 44 deletions
|
@ -632,58 +632,73 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
|
|||
btnRepair.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
new SimpleTask<Void>() {
|
||||
@Override
|
||||
protected void onPostExecute(Bundle args) {
|
||||
prefs.edit().remove("debug").apply();
|
||||
ToastEx.makeText(v.getContext(), R.string.title_completed, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
new AlertDialog.Builder(view.getContext())
|
||||
.setTitle(R.string.title_advanced_repair)
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
new SimpleTask<Void>() {
|
||||
@Override
|
||||
protected void onPostExecute(Bundle args) {
|
||||
prefs.edit().remove("debug").apply();
|
||||
ToastEx.makeText(v.getContext(), R.string.title_completed, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Void onExecute(Context context, Bundle args) throws Throwable {
|
||||
DB db = DB.getInstance(context);
|
||||
@Override
|
||||
protected Void onExecute(Context context, Bundle args) throws Throwable {
|
||||
DB db = DB.getInstance(context);
|
||||
|
||||
List<EntityAccount> accounts = db.account().getAccounts();
|
||||
if (accounts == null)
|
||||
return null;
|
||||
List<EntityAccount> accounts = db.account().getAccounts();
|
||||
if (accounts == null)
|
||||
return null;
|
||||
|
||||
for (EntityAccount account : accounts) {
|
||||
if (account.protocol != EntityAccount.TYPE_IMAP)
|
||||
continue;
|
||||
for (EntityAccount account : accounts) {
|
||||
if (account.protocol != EntityAccount.TYPE_IMAP)
|
||||
continue;
|
||||
|
||||
List<EntityFolder> folders = db.folder().getFolders(account.id, false, false);
|
||||
if (folders == null)
|
||||
continue;
|
||||
List<EntityFolder> folders = db.folder().getFolders(account.id, false, false);
|
||||
if (folders == null)
|
||||
continue;
|
||||
|
||||
EntityFolder inbox = db.folder().getFolderByType(account.id, EntityFolder.INBOX);
|
||||
for (EntityFolder folder : folders) {
|
||||
if (inbox == null && "inbox".equalsIgnoreCase(folder.name))
|
||||
folder.type = EntityFolder.INBOX;
|
||||
EntityFolder inbox = db.folder().getFolderByType(account.id, EntityFolder.INBOX);
|
||||
for (EntityFolder folder : folders) {
|
||||
if (inbox == null && "inbox".equalsIgnoreCase(folder.name))
|
||||
folder.type = EntityFolder.INBOX;
|
||||
|
||||
if (!EntityFolder.USER.equals(folder.type) &&
|
||||
!EntityFolder.SYSTEM.equals(folder.type)) {
|
||||
EntityLog.log(context, "Repairing " + account.name + ":" + folder.type);
|
||||
folder.setProperties();
|
||||
folder.setSpecials(account);
|
||||
db.folder().updateFolder(folder);
|
||||
}
|
||||
if (!EntityFolder.USER.equals(folder.type) &&
|
||||
!EntityFolder.SYSTEM.equals(folder.type)) {
|
||||
EntityLog.log(context, "Repairing " + account.name + ":" + folder.type);
|
||||
folder.setProperties();
|
||||
folder.setSpecials(account);
|
||||
db.folder().updateFolder(folder);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onExecuted(Bundle args, Void data) {
|
||||
ServiceSynchronize.reload(v.getContext(), null, true, "repair");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
Log.unexpectedError(getParentFragmentManager(), ex);
|
||||
}
|
||||
}.execute(FragmentOptionsMisc.this, new Bundle(), "repair");
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onExecuted(Bundle args, Void data) {
|
||||
ServiceSynchronize.reload(v.getContext(), null, true, "repair");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
Log.unexpectedError(getParentFragmentManager(), ex);
|
||||
}
|
||||
}.execute(FragmentOptionsMisc.this, new Bundle(), "repair");
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
// Do nothing
|
||||
}
|
||||
})
|
||||
.show();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
swAutostart.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
|
|
Loading…
Reference in a new issue