Optional force reload

This commit is contained in:
M66B 2020-03-30 13:07:37 +02:00
parent b330518620
commit 7b617e4d7c
8 changed files with 24 additions and 22 deletions

View File

@ -598,7 +598,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
break;
case R.string.title_synchronize_enabled:
db.folder().setFolderSynchronize(id, enabled);
ServiceSynchronize.reload(context, aid, "folder sync=" + enabled);
ServiceSynchronize.reload(context, aid, false, "folder sync=" + enabled);
break;
default:
throw new IllegalArgumentException("Unknown folder property=" + property);

View File

@ -333,7 +333,7 @@ public class FragmentAccounts extends FragmentBase {
}
private void onMenuForceSync() {
ServiceSynchronize.reload(getContext(), null, "force sync");
ServiceSynchronize.reload(getContext(), null, true, "force sync");
ToastEx.makeText(getContext(), R.string.title_executing, Toast.LENGTH_LONG).show();
}
@ -343,7 +343,7 @@ public class FragmentAccounts extends FragmentBase {
if (requestCode == REQUEST_IMPORT_OAUTH)
if (Helper.hasPermissions(getContext(), permissions))
ServiceSynchronize.reload(getContext(), null, "Permissions regranted");
ServiceSynchronize.reload(getContext(), null, false, "Permissions regranted");
}
private void onSwipeRefresh() {
@ -400,7 +400,7 @@ public class FragmentAccounts extends FragmentBase {
}
if (force)
ServiceSynchronize.reload(context, null, "forced refresh");
ServiceSynchronize.reload(context, null, true, "refresh");
else
ServiceSynchronize.eval(context, "refresh");

View File

@ -551,7 +551,7 @@ public class FragmentFolder extends FragmentBase {
}
if (reload)
ServiceSynchronize.reload(context, aid, "save folder");
ServiceSynchronize.reload(context, aid, false, "save folder");
else
ServiceSynchronize.eval(context, "save folder");
@ -617,7 +617,7 @@ public class FragmentFolder extends FragmentBase {
db.endTransaction();
}
ServiceSynchronize.reload(context, folder.account, "delete folder");
ServiceSynchronize.reload(context, folder.account, false, "delete folder");
return null;
}

View File

@ -391,7 +391,7 @@ public class FragmentFolders extends FragmentBase {
}
if (force)
ServiceSynchronize.reload(context, null, "forced refresh");
ServiceSynchronize.reload(context, null, true, "refresh");
else
ServiceSynchronize.eval(context, "refresh");
@ -503,7 +503,7 @@ public class FragmentFolders extends FragmentBase {
}
private void onMenuForceSync() {
ServiceSynchronize.reload(getContext(), null, "force sync");
ServiceSynchronize.reload(getContext(), null, true, "force sync");
ToastEx.makeText(getContext(), R.string.title_executing, Toast.LENGTH_LONG).show();
}

View File

@ -1394,7 +1394,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
}
if (force)
ServiceSynchronize.reload(context, null, "forced refresh");
ServiceSynchronize.reload(context, null, true, "refresh");
else
ServiceSynchronize.eval(context, "refresh");
@ -3762,7 +3762,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
}
private void onMenuForceSync() {
ServiceSynchronize.reload(getContext(), null, "force sync");
ServiceSynchronize.reload(getContext(), null, true, "force sync");
ToastEx.makeText(getContext(), R.string.title_executing, Toast.LENGTH_LONG).show();
}

View File

@ -207,7 +207,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("auto_optimize", checked).apply();
ServiceSynchronize.reload(getContext(), null, "optimize");
ServiceSynchronize.reload(getContext(), null, false, "optimize");
}
});

View File

@ -220,7 +220,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("sync_unseen", checked).apply();
ServiceSynchronize.reload(getContext(), null, "sync_unseen=" + checked);
ServiceSynchronize.reload(getContext(), null, false, "sync_unseen=" + checked);
}
});
@ -228,7 +228,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("sync_flagged", checked).apply();
ServiceSynchronize.reload(getContext(), null, "sync_flagged=" + checked);
ServiceSynchronize.reload(getContext(), null, false, "sync_flagged=" + checked);
}
});
@ -236,7 +236,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("delete_unseen", checked).apply();
ServiceSynchronize.reload(getContext(), null, "delete_unseen=" + checked);
ServiceSynchronize.reload(getContext(), null, false, "delete_unseen=" + checked);
}
});
@ -244,7 +244,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("sync_kept", checked).apply();
ServiceSynchronize.reload(getContext(), null, "sync_kept=" + checked);
ServiceSynchronize.reload(getContext(), null, false, "sync_kept=" + checked);
}
});
@ -252,7 +252,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("sync_folders", checked).apply();
ServiceSynchronize.reload(getContext(), null, "sync_folders=" + checked);
ServiceSynchronize.reload(getContext(), null, false, "sync_folders=" + checked);
}
});
@ -269,7 +269,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("subscribed_only", checked).apply();
ServiceSynchronize.reload(getContext(), null, "subscribed_only");
ServiceSynchronize.reload(getContext(), null, false, "subscribed_only");
}
});

View File

@ -685,7 +685,8 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
}
private void onReload(Intent intent) {
lastLost = 0;
if (intent.getBooleanExtra("force", false))
lastLost = 0;
Bundle command = new Bundle();
command.putString("name", "reload");
command.putLong("account", intent.getLongExtra("account", -1));
@ -954,7 +955,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
String name = e.getFolder().getFullName();
Log.i("Folder created=" + name);
if (db.folder().getFolderByName(account.id, name) == null)
reload(ServiceSynchronize.this, account.id, "folder created");
reload(ServiceSynchronize.this, account.id, false, "folder created");
} finally {
wlFolder.release();
}
@ -972,7 +973,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
int count = db.folder().renameFolder(account.id, old, name);
Log.i("Renamed to " + name + " count=" + count);
if (count == 0)
reload(ServiceSynchronize.this, account.id, "folder renamed");
reload(ServiceSynchronize.this, account.id, false, "folder renamed");
} finally {
wlFolder.release();
}
@ -986,7 +987,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
String name = e.getFolder().getFullName();
Log.i("Folder deleted=" + name);
if (db.folder().getFolderByName(account.id, name) != null)
reload(ServiceSynchronize.this, account.id, "folder deleted");
reload(ServiceSynchronize.this, account.id, false, "folder deleted");
} finally {
wlFolder.release();
}
@ -1912,11 +1913,12 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
.putExtra("reason", reason));
}
static void reload(Context context, Long account, String reason) {
static void reload(Context context, Long account, boolean force, String reason) {
ContextCompat.startForegroundService(context,
new Intent(context, ServiceSynchronize.class)
.setAction("reload")
.putExtra("account", account == null ? -1 : account)
.putExtra("force", force)
.putExtra("reason", reason));
}