Scroll to top on paused

pull/168/head
M66B 5 years ago
parent 464a0f0e63
commit f4b96bc5fe

@ -1070,6 +1070,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext()); LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
IntentFilter iff = new IntentFilter(); IntentFilter iff = new IntentFilter();
iff.addAction(SimpleTask.ACTION_TASK_COUNT); iff.addAction(SimpleTask.ACTION_TASK_COUNT);
iff.addAction(ACTION_NEW_MESSAGE);
lbm.registerReceiver(creceiver, iff); lbm.registerReceiver(creceiver, iff);
return view; return view;
@ -1086,21 +1087,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
super.onDestroyView(); super.onDestroyView();
} }
private BroadcastReceiver creceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("Received " + intent);
Log.logExtras(intent);
int count = intent.getIntExtra("count", 0);
if (count == 0) {
if (initialized && !loading)
pbWait.setVisibility(View.GONE);
} else
pbWait.setVisibility(View.VISIBLE);
}
};
@Override @Override
public void onDestroy() { public void onDestroy() {
super.onDestroy(); super.onDestroy();
@ -3842,22 +3828,55 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
return super.onCreateAnimation(transit, enter, nextAnim); return super.onCreateAnimation(transit, enter, nextAnim);
} }
private BroadcastReceiver creceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("Received " + intent);
Log.logExtras(intent);
String action = intent.getAction();
if (SimpleTask.ACTION_TASK_COUNT.equals(action))
onTaskCount(intent);
else if (ACTION_NEW_MESSAGE.equals(action))
onNewMessage(intent);
}
};
private BroadcastReceiver receiver = new BroadcastReceiver() { private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) { if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
String action = intent.getAction(); String action = intent.getAction();
if (ACTION_STORE_RAW.equals(action)) if (ACTION_STORE_RAW.equals(action))
onStoreRaw(intent); onStoreRaw(intent);
else if (ACTION_DECRYPT.equals(action)) else if (ACTION_DECRYPT.equals(action))
onDecrypt(intent); onDecrypt(intent);
else if (ACTION_NEW_MESSAGE.equals(action))
onNewMessage(intent);
} }
} }
}; };
private void onTaskCount(Intent intent) {
int count = intent.getIntExtra("count", 0);
if (count == 0) {
if (initialized && !loading)
pbWait.setVisibility(View.GONE);
} else
pbWait.setVisibility(View.VISIBLE);
}
private void onNewMessage(Intent intent) {
long fid = intent.getLongExtra("folder", -1);
boolean unified = intent.getBooleanExtra("unified", false);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean autoscroll = prefs.getBoolean("autoscroll", true);
if (autoscroll &&
((viewType == AdapterMessage.ViewType.UNIFIED && unified) ||
(viewType == AdapterMessage.ViewType.FOLDER && folder == fid)))
adapter.gotoTop();
}
private void onStoreRaw(Intent intent) { private void onStoreRaw(Intent intent) {
message = intent.getLongExtra("id", -1); message = intent.getLongExtra("id", -1);
Intent create = new Intent(Intent.ACTION_CREATE_DOCUMENT); Intent create = new Intent(Intent.ACTION_CREATE_DOCUMENT);
@ -3884,19 +3903,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
Snackbar.make(view, R.string.title_no_openpgp, Snackbar.LENGTH_LONG).show(); Snackbar.make(view, R.string.title_no_openpgp, Snackbar.LENGTH_LONG).show();
} }
private void onNewMessage(Intent intent) {
long fid = intent.getLongExtra("folder", -1);
boolean unified = intent.getBooleanExtra("unified", false);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean autoscroll = prefs.getBoolean("autoscroll", true);
if (autoscroll &&
((viewType == AdapterMessage.ViewType.UNIFIED && unified) ||
(viewType == AdapterMessage.ViewType.FOLDER && folder == fid)))
adapter.gotoTop();
}
@Override @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) { public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);

Loading…
Cancel
Save