Fix some crashes

maths
Thomas 2 years ago
parent 770eef7629
commit 167c3e6251

@ -697,7 +697,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
new ViewModelProvider(BaseMainActivity.this).get(AccountsVM.class).getConnectedAccount(currentInstance, currentToken) new ViewModelProvider(BaseMainActivity.this).get(AccountsVM.class).getConnectedAccount(currentInstance, currentToken)
.observe(BaseMainActivity.this, mastodonAccount -> { .observe(BaseMainActivity.this, mastodonAccount -> {
//Initialize static var //Initialize static var
if (mastodonAccount != null) { if (mastodonAccount != null && currentAccount != null) {
currentAccount.mastodon_account = mastodonAccount; currentAccount.mastodon_account = mastodonAccount;
displayReleaseNotesIfNeeded(BaseMainActivity.this, false); displayReleaseNotesIfNeeded(BaseMainActivity.this, false);
new Thread(() -> { new Thread(() -> {

@ -870,10 +870,14 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
private boolean canBeSent(StatusDraft statusDraft) { private boolean canBeSent(StatusDraft statusDraft) {
if (statusDraft == null || statusDraft.statusDraftList == null || statusDraft.statusDraftList.isEmpty()) { if (statusDraft == null) {
return false;
}
List<Status> statuses = statusDraft.statusDraftList;
if (statuses == null || statuses.size() == 0) {
return false; return false;
} }
Status statusCheck = statusDraft.statusDraftList.get(0); Status statusCheck = statuses.get(0);
if (statusCheck == null) { if (statusCheck == null) {
return false; return false;
} }

@ -111,6 +111,7 @@ public class LoginActivity extends BaseActivity {
//API call to retrieve account information for the new token //API call to retrieve account information for the new token
AccountsVM accountsVM = new ViewModelProvider(LoginActivity.this).get(AccountsVM.class); AccountsVM accountsVM = new ViewModelProvider(LoginActivity.this).get(AccountsVM.class);
accountsVM.getConnectedAccount(currentInstanceLogin, account.token).observe(LoginActivity.this, mastodonAccount -> { accountsVM.getConnectedAccount(currentInstanceLogin, account.token).observe(LoginActivity.this, mastodonAccount -> {
if (mastodonAccount != null) {
account.mastodon_account = mastodonAccount; account.mastodon_account = mastodonAccount;
account.user_id = mastodonAccount.id; account.user_id = mastodonAccount.id;
//We check if user have really moderator rights //We check if user have really moderator rights
@ -123,6 +124,10 @@ public class LoginActivity extends BaseActivity {
} else { } else {
proceedLogin(LoginActivity.this, account); proceedLogin(LoginActivity.this, account);
} }
} else {
Toasty.error(LoginActivity.this, getString(R.string.toast_token), Toast.LENGTH_LONG).show();
}
}); });
} else { } else {
Toasty.error(LoginActivity.this, getString(R.string.toast_token), Toast.LENGTH_LONG).show(); Toasty.error(LoginActivity.this, getString(R.string.toast_token), Toast.LENGTH_LONG).show();

@ -903,6 +903,7 @@ public class ProfileActivity extends BaseActivity {
if (relationship == null || !relationship.following) { if (relationship == null || !relationship.following) {
accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false)
.observe(ProfileActivity.this, newRelationShip -> { .observe(ProfileActivity.this, newRelationShip -> {
if (newRelationShip != null) {
relationship = newRelationShip; relationship = newRelationShip;
updateAccount(); updateAccount();
if (isChecked) { if (isChecked) {
@ -914,6 +915,9 @@ public class ProfileActivity extends BaseActivity {
} else { } else {
timelinesVM.deleteAccountsList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, listsId[which], userIds); timelinesVM.deleteAccountsList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, listsId[which], userIds);
} }
} else {
Toasty.error(ProfileActivity.this, getString(R.string.toast_error_add_to_list), Toast.LENGTH_LONG).show();
}
}); });
} else { } else {
if (isChecked) { if (isChecked) {

@ -854,7 +854,9 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
//It only targets last message in a thread //It only targets last message in a thread
//Return content of last compose message //Return content of last compose message
public String getLastComposeContent() { public String getLastComposeContent() {
if (currentCursorPosition < statusList.size()) {
return statusList.get(currentCursorPosition).text != null ? statusList.get(currentCursorPosition).text : ""; return statusList.get(currentCursorPosition).text != null ? statusList.get(currentCursorPosition).text : "";
} else return "";
} }
//------- end contact -----> //------- end contact ----->

@ -60,6 +60,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
public FetchMoreCallBack fetchMoreCallBack; public FetchMoreCallBack fetchMoreCallBack;
private Context context; private Context context;
private boolean isExpended = false; private boolean isExpended = false;
private RecyclerView mRecyclerView;
public ConversationAdapter(List<Conversation> conversations) { public ConversationAdapter(List<Conversation> conversations) {
if (conversations == null) { if (conversations == null) {
@ -194,7 +195,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
holder.binding.spoiler.setVisibility(View.VISIBLE); holder.binding.spoiler.setVisibility(View.VISIBLE);
holder.binding.spoiler.setText( holder.binding.spoiler.setText(
conversation.last_status.getSpanSpoiler(context, conversation.last_status.getSpanSpoiler(context,
new WeakReference<>(holder.binding.spoiler), () -> notifyItemChanged(holder.getBindingAdapterPosition())), new WeakReference<>(holder.binding.spoiler), () -> mRecyclerView.post(() -> notifyItemChanged(holder.getBindingAdapterPosition()))),
TextView.BufferType.SPANNABLE); TextView.BufferType.SPANNABLE);
} else { } else {
holder.binding.spoiler.setVisibility(View.GONE); holder.binding.spoiler.setVisibility(View.GONE);
@ -204,7 +205,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
//--- MAIN CONTENT --- //--- MAIN CONTENT ---
holder.binding.statusContent.setText( holder.binding.statusContent.setText(
conversation.last_status.getSpanContent(context, conversation.last_status.getSpanContent(context,
new WeakReference<>(holder.binding.statusContent), () -> notifyItemChanged(holder.getBindingAdapterPosition())), new WeakReference<>(holder.binding.statusContent), () -> mRecyclerView.post(() -> notifyItemChanged(holder.getBindingAdapterPosition()))),
TextView.BufferType.SPANNABLE); TextView.BufferType.SPANNABLE);
//--- DATE --- //--- DATE ---
holder.binding.lastMessageDate.setText(Helper.dateDiff(context, conversation.last_status.created_at)); holder.binding.lastMessageDate.setText(Helper.dateDiff(context, conversation.last_status.created_at));
@ -224,6 +225,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
return false; return false;
}); });
displayAttachments(holder, position); displayAttachments(holder, position);
if (holder.timer != null) { if (holder.timer != null) {
holder.timer.cancel(); holder.timer.cancel();
@ -245,6 +247,13 @@ public class ConversationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
applyColorConversation(context, holder); applyColorConversation(context, holder);
} }
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
mRecyclerView = recyclerView;
}
private void displayAttachments(ConversationAdapter.ConversationHolder holder, int position) { private void displayAttachments(ConversationAdapter.ConversationHolder holder, int position) {
if (conversationList.get(position).last_status != null) { if (conversationList.get(position).last_status != null) {
Status status = conversationList.get(position).last_status; Status status = conversationList.get(position).last_status;

@ -2288,8 +2288,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
StatusViewHolder holder = (StatusViewHolder) viewHolder; StatusViewHolder holder = (StatusViewHolder) viewHolder;
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
if (sharedpreferences.getBoolean(context.getString(R.string.SET_CARDVIEW), false)) { if (sharedpreferences.getBoolean(context.getString(R.string.SET_CARDVIEW), false)) {
holder.binding.cardviewContainer.setCardElevation(Helper.convertDpToPixel(5, context)); holder.bindingFilteredHide.cardviewContainer.setCardElevation(Helper.convertDpToPixel(5, context));
holder.binding.dividerCard.setVisibility(View.GONE); holder.bindingFilteredHide.dividerCard.setVisibility(View.GONE);
} }
if (status.isFetchMore && fetchMoreCallBack != null) { if (status.isFetchMore && fetchMoreCallBack != null) {
holder.bindingFilteredHide.layoutFetchMore.fetchMoreContainer.setVisibility(View.VISIBLE); holder.bindingFilteredHide.layoutFetchMore.fetchMoreContainer.setVisibility(View.VISIBLE);

Loading…
Cancel
Save