Scroll to top after recreate

This commit is contained in:
M66B
2020-03-09 09:51:09 +01:00
parent c552142458
commit 1e2d0be945
2 changed files with 33 additions and 0 deletions

View File

@@ -3751,6 +3751,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
if (handleThreadActions(messages))
return;
checkNewMessages();
Log.i("Submit messages=" + messages.size());
adapter.submitList(messages);
@@ -4476,6 +4478,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
long fid = intent.getLongExtra("folder", -1);
boolean unified = intent.getBooleanExtra("unified", false);
synchronized (Core.newMessages) {
Core.newMessages.remove(fid);
}
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean autoscroll = prefs.getBoolean("autoscroll", true);
@@ -4485,6 +4491,27 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
adapter.gotoTop();
}
private void checkNewMessages() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean autoscroll = prefs.getBoolean("autoscroll", true);
boolean newMessages = false;
synchronized (Core.newMessages) {
for (long fid : new ArrayList<>(Core.newMessages.keySet())) {
EntityFolder f = Core.newMessages.get(fid);
if (f != null &&
((viewType == AdapterMessage.ViewType.UNIFIED && f.unified) ||
(viewType == AdapterMessage.ViewType.FOLDER && folder == f.id))) {
newMessages = true;
Core.newMessages.remove(fid);
}
}
}
if (autoscroll && newMessages)
adapter.gotoTop();
}
private void onStoreRaw(Intent intent) {
message = intent.getLongExtra("id", -1);
Intent create = new Intent(Intent.ACTION_CREATE_DOCUMENT);