Fix some crashes

This commit is contained in:
Thomas 2022-06-21 16:01:27 +02:00
parent 197dba1658
commit c998ef1f56
3 changed files with 36 additions and 33 deletions

View file

@ -97,6 +97,7 @@ public class ContextActivity extends BaseActivity {
}).start(); }).start();
StatusesVM timelinesVM = new ViewModelProvider(ContextActivity.this).get(StatusesVM.class); StatusesVM timelinesVM = new ViewModelProvider(ContextActivity.this).get(StatusesVM.class);
timelinesVM.getStatus(MainActivity.currentInstance, MainActivity.currentToken, focusedStatus.id).observe(ContextActivity.this, status -> { timelinesVM.getStatus(MainActivity.currentInstance, MainActivity.currentToken, focusedStatus.id).observe(ContextActivity.this, status -> {
if (status != null) {
StatusCache statusCache = new StatusCache(); StatusCache statusCache = new StatusCache();
statusCache.instance = MainActivity.currentInstance; statusCache.instance = MainActivity.currentInstance;
statusCache.user_id = MainActivity.currentUserID; statusCache.user_id = MainActivity.currentUserID;
@ -115,7 +116,7 @@ public class ContextActivity extends BaseActivity {
e.printStackTrace(); e.printStackTrace();
} }
}).start(); }).start();
}
}); });
} }

View file

@ -1663,7 +1663,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
int position = 0; int position = 0;
if (statusList != null) { if (statusList != null) {
for (Status _status : statusList) { for (Status _status : statusList) {
if (_status.id.compareTo(status.id) == 0 || (_status.reblog != null && _status.reblog.id.compareTo(status.id) == 0)) { if (status.id != null && ((_status.id != null && _status.id.compareTo(status.id) == 0) || (_status.reblog != null && _status.reblog.id != null && _status.reblog.id.compareTo(status.id) == 0))) {
break; break;
} }
position++; position++;

View file

@ -512,6 +512,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
@Override @Override
public void onDestroyView() { public void onDestroyView() {
//Update last read id for home timeline //Update last read id for home timeline
if (isAdded()) {
if (mLayoutManager != null) { if (mLayoutManager != null) {
int position = mLayoutManager.findFirstVisibleItemPosition(); int position = mLayoutManager.findFirstVisibleItemPosition();
new Thread(() -> { new Thread(() -> {
@ -526,6 +527,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
binding.recyclerView.setAdapter(null); binding.recyclerView.setAdapter(null);
} }
LocalBroadcastManager.getInstance(requireActivity()).unregisterReceiver(receive_action); LocalBroadcastManager.getInstance(requireActivity()).unregisterReceiver(receive_action);
}
statusAdapter = null; statusAdapter = null;
binding = null; binding = null;
super.onDestroyView(); super.onDestroyView();