mirror of
				https://codeberg.org/tom79/Fedilab.git
				synced 2025-10-20 11:20:16 +03:00 
			
		
		
		
	Fix some crashes
This commit is contained in:
		
							parent
							
								
									770eef7629
								
							
						
					
					
						commit
						167c3e6251
					
				
					 7 changed files with 50 additions and 26 deletions
				
			
		| 
						 | 
				
			
			@ -697,7 +697,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
 | 
			
		|||
                new ViewModelProvider(BaseMainActivity.this).get(AccountsVM.class).getConnectedAccount(currentInstance, currentToken)
 | 
			
		||||
                        .observe(BaseMainActivity.this, mastodonAccount -> {
 | 
			
		||||
                            //Initialize static var
 | 
			
		||||
                            if (mastodonAccount != null) {
 | 
			
		||||
                            if (mastodonAccount != null && currentAccount != null) {
 | 
			
		||||
                                currentAccount.mastodon_account = mastodonAccount;
 | 
			
		||||
                                displayReleaseNotesIfNeeded(BaseMainActivity.this, false);
 | 
			
		||||
                                new Thread(() -> {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -870,10 +870,14 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
    private boolean canBeSent(StatusDraft statusDraft) {
 | 
			
		||||
        if (statusDraft == null || statusDraft.statusDraftList == null || statusDraft.statusDraftList.isEmpty()) {
 | 
			
		||||
        if (statusDraft == null) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        Status statusCheck = statusDraft.statusDraftList.get(0);
 | 
			
		||||
        List<Status> statuses = statusDraft.statusDraftList;
 | 
			
		||||
        if (statuses == null || statuses.size() == 0) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        Status statusCheck = statuses.get(0);
 | 
			
		||||
        if (statusCheck == null) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -111,6 +111,7 @@ public class LoginActivity extends BaseActivity {
 | 
			
		|||
                            //API call to retrieve account information for the new token
 | 
			
		||||
                            AccountsVM accountsVM = new ViewModelProvider(LoginActivity.this).get(AccountsVM.class);
 | 
			
		||||
                            accountsVM.getConnectedAccount(currentInstanceLogin, account.token).observe(LoginActivity.this, mastodonAccount -> {
 | 
			
		||||
                                if (mastodonAccount != null) {
 | 
			
		||||
                                    account.mastodon_account = mastodonAccount;
 | 
			
		||||
                                    account.user_id = mastodonAccount.id;
 | 
			
		||||
                                    //We check if user have really moderator rights
 | 
			
		||||
| 
						 | 
				
			
			@ -123,6 +124,10 @@ public class LoginActivity extends BaseActivity {
 | 
			
		|||
                                    } else {
 | 
			
		||||
                                        proceedLogin(LoginActivity.this, account);
 | 
			
		||||
                                    }
 | 
			
		||||
                                } else {
 | 
			
		||||
                                    Toasty.error(LoginActivity.this, getString(R.string.toast_token), Toast.LENGTH_LONG).show();
 | 
			
		||||
                                }
 | 
			
		||||
 | 
			
		||||
                            });
 | 
			
		||||
                        } else {
 | 
			
		||||
                            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) {
 | 
			
		||||
                                            accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false)
 | 
			
		||||
                                                    .observe(ProfileActivity.this, newRelationShip -> {
 | 
			
		||||
                                                        if (newRelationShip != null) {
 | 
			
		||||
                                                            relationship = newRelationShip;
 | 
			
		||||
                                                            updateAccount();
 | 
			
		||||
                                                            if (isChecked) {
 | 
			
		||||
| 
						 | 
				
			
			@ -914,6 +915,9 @@ public class ProfileActivity extends BaseActivity {
 | 
			
		|||
                                                            } else {
 | 
			
		||||
                                                                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 {
 | 
			
		||||
                                            if (isChecked) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -854,7 +854,9 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
 | 
			
		|||
    //It only targets last message in a thread
 | 
			
		||||
    //Return content of last compose message
 | 
			
		||||
    public String getLastComposeContent() {
 | 
			
		||||
        if (currentCursorPosition < statusList.size()) {
 | 
			
		||||
            return statusList.get(currentCursorPosition).text != null ? statusList.get(currentCursorPosition).text : "";
 | 
			
		||||
        } else return "";
 | 
			
		||||
    }
 | 
			
		||||
    //------- end contact ----->
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,6 +60,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
 | 
			
		|||
    public FetchMoreCallBack fetchMoreCallBack;
 | 
			
		||||
    private Context context;
 | 
			
		||||
    private boolean isExpended = false;
 | 
			
		||||
    private RecyclerView mRecyclerView;
 | 
			
		||||
 | 
			
		||||
    public ConversationAdapter(List<Conversation> conversations) {
 | 
			
		||||
        if (conversations == null) {
 | 
			
		||||
| 
						 | 
				
			
			@ -194,7 +195,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
 | 
			
		|||
            holder.binding.spoiler.setVisibility(View.VISIBLE);
 | 
			
		||||
            holder.binding.spoiler.setText(
 | 
			
		||||
                    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);
 | 
			
		||||
        } else {
 | 
			
		||||
            holder.binding.spoiler.setVisibility(View.GONE);
 | 
			
		||||
| 
						 | 
				
			
			@ -204,7 +205,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
 | 
			
		|||
        //--- MAIN CONTENT ---
 | 
			
		||||
        holder.binding.statusContent.setText(
 | 
			
		||||
                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);
 | 
			
		||||
        //--- DATE ---
 | 
			
		||||
        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;
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        displayAttachments(holder, position);
 | 
			
		||||
        if (holder.timer != null) {
 | 
			
		||||
            holder.timer.cancel();
 | 
			
		||||
| 
						 | 
				
			
			@ -245,6 +247,13 @@ public class ConversationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
 | 
			
		|||
        applyColorConversation(context, holder);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
 | 
			
		||||
        super.onAttachedToRecyclerView(recyclerView);
 | 
			
		||||
 | 
			
		||||
        mRecyclerView = recyclerView;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void displayAttachments(ConversationAdapter.ConversationHolder holder, int position) {
 | 
			
		||||
        if (conversationList.get(position).last_status != null) {
 | 
			
		||||
            Status status = conversationList.get(position).last_status;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2288,8 +2288,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
 | 
			
		|||
            StatusViewHolder holder = (StatusViewHolder) viewHolder;
 | 
			
		||||
            SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
 | 
			
		||||
            if (sharedpreferences.getBoolean(context.getString(R.string.SET_CARDVIEW), false)) {
 | 
			
		||||
                holder.binding.cardviewContainer.setCardElevation(Helper.convertDpToPixel(5, context));
 | 
			
		||||
                holder.binding.dividerCard.setVisibility(View.GONE);
 | 
			
		||||
                holder.bindingFilteredHide.cardviewContainer.setCardElevation(Helper.convertDpToPixel(5, context));
 | 
			
		||||
                holder.bindingFilteredHide.dividerCard.setVisibility(View.GONE);
 | 
			
		||||
            }
 | 
			
		||||
            if (status.isFetchMore && fetchMoreCallBack != null) {
 | 
			
		||||
                holder.bindingFilteredHide.layoutFetchMore.fetchMoreContainer.setVisibility(View.VISIBLE);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue