mirror of
				https://codeberg.org/tom79/Fedilab.git
				synced 2025-10-20 11:20:16 +03:00 
			
		
		
		
	horizontal scroll view
This commit is contained in:
		
							parent
							
								
									7d7311f971
								
							
						
					
					
						commit
						ea636124fa
					
				
					 4 changed files with 162 additions and 162 deletions
				
			
		| 
						 | 
				
			
			@ -129,7 +129,6 @@ public class Status implements Serializable, Cloneable {
 | 
			
		|||
    public boolean translationShown;
 | 
			
		||||
    public boolean mathsShown = false;
 | 
			
		||||
    public boolean markdownShown = false;
 | 
			
		||||
    public boolean extraFeaturesShown = false;
 | 
			
		||||
    public boolean canLoadMedia = false;
 | 
			
		||||
    public transient boolean isFocused = false;
 | 
			
		||||
    public transient boolean setCursorToEnd = false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -756,12 +756,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
 | 
			
		|||
                holder.binding.statusContent.setText(statusToDeal.contentSpan, TextView.BufferType.SPANNABLE);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (statusToDeal.extraFeaturesShown) {
 | 
			
		||||
            holder.binding.extraFeaturesPanel.setVisibility(View.VISIBLE);
 | 
			
		||||
            holder.binding.extraFeaturesPanel.requestFocus();
 | 
			
		||||
        } else {
 | 
			
		||||
            holder.binding.extraFeaturesPanel.setVisibility(View.GONE);
 | 
			
		||||
        }
 | 
			
		||||
        if (statusToDeal.mathsShown) {
 | 
			
		||||
            holder.binding.statusContentMaths.setVisibility(View.VISIBLE);
 | 
			
		||||
            holder.binding.statusContent.setVisibility(View.GONE);
 | 
			
		||||
| 
						 | 
				
			
			@ -1032,46 +1026,43 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
 | 
			
		|||
                }
 | 
			
		||||
                return true;
 | 
			
		||||
            });
 | 
			
		||||
            holder.binding.actionButtonExtra.setAnimation(null);
 | 
			
		||||
            holder.binding.actionButtonReply.setAnimation(null);
 | 
			
		||||
            holder.binding.actionButtonQuote.setAnimation(null);
 | 
			
		||||
            holder.binding.actionButtonTranslate.setAnimation(null);
 | 
			
		||||
            holder.binding.actionButtonMaths.setAnimation(null);
 | 
			
		||||
            holder.binding.actionButtonMarkdown.setAnimation(null);
 | 
			
		||||
            holder.binding.statusAddCustomEmoji.setAnimation(null);
 | 
			
		||||
            holder.binding.statusEmoji.setAnimation(null);
 | 
			
		||||
            holder.binding.actionButtonMore.setAnimation(null);
 | 
			
		||||
 | 
			
		||||
            holder.binding.actionButtonExtra.setOnClickListener(v -> {
 | 
			
		||||
                if (displayTranslate) {
 | 
			
		||||
                    if (statusToDeal.language != null && statusToDeal.language.trim().length() > 0 && statusToDeal.language.equalsIgnoreCase(MyTransL.getLocale())) {
 | 
			
		||||
                        holder.binding.actionButtonTranslate.setVisibility(View.GONE);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        holder.binding.actionButtonTranslate.setVisibility(View.VISIBLE);
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
            if (displayTranslate) {
 | 
			
		||||
                if (statusToDeal.language != null && statusToDeal.language.trim().length() > 0 && statusToDeal.language.equalsIgnoreCase(MyTransL.getLocale())) {
 | 
			
		||||
                    holder.binding.actionButtonTranslate.setVisibility(View.GONE);
 | 
			
		||||
                }
 | 
			
		||||
                if (statusToDeal.isMaths == null) {
 | 
			
		||||
                    if (statusToDeal.content != null && Helper.mathsPattern.matcher(statusToDeal.content).find()) {
 | 
			
		||||
                        holder.binding.actionButtonMaths.setVisibility(View.VISIBLE);
 | 
			
		||||
                        statusToDeal.isMaths = true;
 | 
			
		||||
                    } else {
 | 
			
		||||
                        holder.binding.actionButtonMaths.setVisibility(View.GONE);
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    if (statusToDeal.isMaths) {
 | 
			
		||||
                        holder.binding.actionButtonMaths.setVisibility(View.VISIBLE);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        holder.binding.actionButtonMaths.setVisibility(View.GONE);
 | 
			
		||||
                    }
 | 
			
		||||
                    holder.binding.actionButtonTranslate.setVisibility(View.VISIBLE);
 | 
			
		||||
                }
 | 
			
		||||
                if (statusToDeal.contentMarkdownSpan != null) {
 | 
			
		||||
                    holder.binding.actionButtonMarkdown.setVisibility(View.VISIBLE);
 | 
			
		||||
            } else {
 | 
			
		||||
                holder.binding.actionButtonTranslate.setVisibility(View.GONE);
 | 
			
		||||
            }
 | 
			
		||||
            if (statusToDeal.isMaths == null) {
 | 
			
		||||
                if (statusToDeal.content != null && Helper.mathsPattern.matcher(statusToDeal.content).find()) {
 | 
			
		||||
                    holder.binding.actionButtonMaths.setVisibility(View.VISIBLE);
 | 
			
		||||
                    statusToDeal.isMaths = true;
 | 
			
		||||
                } else {
 | 
			
		||||
                    holder.binding.actionButtonMarkdown.setVisibility(View.GONE);
 | 
			
		||||
                    holder.binding.actionButtonMaths.setVisibility(View.GONE);
 | 
			
		||||
                }
 | 
			
		||||
                holder.binding.extraFeaturesPanel.setVisibility(View.VISIBLE);
 | 
			
		||||
                holder.binding.actionButtonExtra.setChecked(false);
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            holder.binding.buttonCloseExtraFeaturesPanel.setOnClickListener(v -> {
 | 
			
		||||
                statusToDeal.extraFeaturesShown = !statusToDeal.extraFeaturesShown;
 | 
			
		||||
                adapter.notifyItemChanged(holder.getBindingAdapterPosition());
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            } else {
 | 
			
		||||
                if (statusToDeal.isMaths) {
 | 
			
		||||
                    holder.binding.actionButtonMaths.setVisibility(View.VISIBLE);
 | 
			
		||||
                } else {
 | 
			
		||||
                    holder.binding.actionButtonMaths.setVisibility(View.GONE);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (statusToDeal.contentMarkdownSpan != null) {
 | 
			
		||||
                holder.binding.actionButtonMarkdown.setVisibility(View.VISIBLE);
 | 
			
		||||
            } else {
 | 
			
		||||
                holder.binding.actionButtonMarkdown.setVisibility(View.GONE);
 | 
			
		||||
            }
 | 
			
		||||
            holder.binding.actionButtonBoost.setOnClickListener(v -> {
 | 
			
		||||
                boolean needToWarnForMissingDescription = false;
 | 
			
		||||
                if (warnNoMedia && statusToDeal.media_attachments != null && statusToDeal.media_attachments.size() > 0) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1241,32 +1232,22 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
 | 
			
		|||
        }
 | 
			
		||||
        //Button sizes depending of the defined scale
 | 
			
		||||
        float normalSize = Helper.convertDpToPixel(28, context);
 | 
			
		||||
        holder.binding.actionButtonReply.getLayoutParams().width = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionButtonReply.getLayoutParams().height = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionButtonReply.requestLayout();
 | 
			
		||||
 | 
			
		||||
        holder.binding.actionButtonTranslate.getLayoutParams().width = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionButtonTranslate.getLayoutParams().height = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionButtonTranslate.requestLayout();
 | 
			
		||||
 | 
			
		||||
        holder.binding.actionButtonReply.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
        holder.binding.actionButtonBoost.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
        holder.binding.actionButtonFavorite.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
        holder.binding.actionButtonBookmark.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
 | 
			
		||||
        holder.binding.actionButtonQuote.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
        holder.binding.actionButtonTranslate.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
        holder.binding.actionButtonMaths.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
        holder.binding.actionButtonMarkdown.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
        holder.binding.statusAddCustomEmoji.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
        holder.binding.statusEmoji.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
        holder.binding.actionButtonMore.setImageSize((int) (normalSize * scaleIcon));
 | 
			
		||||
 | 
			
		||||
        holder.binding.statusAddCustomEmoji.getLayoutParams().width = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.statusAddCustomEmoji.getLayoutParams().height = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.statusAddCustomEmoji.requestLayout();
 | 
			
		||||
 | 
			
		||||
        holder.binding.actionButtonQuote.getLayoutParams().width = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionButtonQuote.getLayoutParams().height = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionButtonQuote.requestLayout();
 | 
			
		||||
 | 
			
		||||
        holder.binding.statusEmoji.getLayoutParams().width = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.statusEmoji.getLayoutParams().height = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionButtonMore.getLayoutParams().width = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionButtonMore.getLayoutParams().height = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionButtonMore.requestLayout();
 | 
			
		||||
        holder.binding.actionShare.getLayoutParams().width = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionShare.getLayoutParams().height = (int) (normalSize * scaleIcon);
 | 
			
		||||
        holder.binding.actionShare.requestLayout();
 | 
			
		||||
| 
						 | 
				
			
			@ -2090,14 +2071,9 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
 | 
			
		|||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    } else {
 | 
			
		||||
                        if (statusToDeal.extraFeaturesShown) {
 | 
			
		||||
                            statusToDeal.extraFeaturesShown = false;
 | 
			
		||||
                            adapter.notifyItemChanged(holder.getBindingAdapterPosition());
 | 
			
		||||
                        } else {
 | 
			
		||||
                            Intent intent = new Intent(context, ContextActivity.class);
 | 
			
		||||
                            intent.putExtra(Helper.ARG_STATUS, statusToDeal);
 | 
			
		||||
                            context.startActivity(intent);
 | 
			
		||||
                        }
 | 
			
		||||
                        Intent intent = new Intent(context, ContextActivity.class);
 | 
			
		||||
                        intent.putExtra(Helper.ARG_STATUS, statusToDeal);
 | 
			
		||||
                        context.startActivity(intent);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
| 
						 | 
				
			
			@ -2864,10 +2840,16 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
 | 
			
		|||
 | 
			
		||||
        if (theme_icons_color != -1) {
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_round_reply_24, theme_icons_color);
 | 
			
		||||
            //   Helper.changeDrawableColor(context, holder.binding.statusAddCustomEmoji, theme_icons_color);
 | 
			
		||||
            //   Helper.changeDrawableColor(context, holder.binding.actionButtonQuote, theme_icons_color);
 | 
			
		||||
            //   Helper.changeDrawableColor(context, holder.binding.statusEmoji, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, holder.binding.actionButtonMore, theme_icons_color);
 | 
			
		||||
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_baseline_format_quote_24, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_baseline_translate_24, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_round_repeat_24, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_baseline_functions_24, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.baseline_code_24, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_baseline_emoji_emotions_24, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_baseline_add_reaction_24, theme_icons_color);
 | 
			
		||||
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_round_more_horiz_24, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_round_star_24, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_round_repeat_24, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, holder.binding.visibility, theme_icons_color);
 | 
			
		||||
| 
						 | 
				
			
			@ -2875,11 +2857,20 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
 | 
			
		|||
            Helper.changeDrawableColor(context, R.drawable.ic_person, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_bot, theme_icons_color);
 | 
			
		||||
            Helper.changeDrawableColor(context, R.drawable.ic_round_reply_24, theme_icons_color);
 | 
			
		||||
            //   Helper.changeDrawableColor(context, holder.binding.actionButtonTranslate, theme_icons_color);
 | 
			
		||||
 | 
			
		||||
            holder.binding.actionButtonBoost.setInActiveImageTintColor(theme_icons_color);
 | 
			
		||||
            holder.binding.actionButtonFavorite.setInActiveImageTintColor(theme_icons_color);
 | 
			
		||||
            holder.binding.actionButtonBookmark.setInActiveImageTintColor(theme_icons_color);
 | 
			
		||||
            holder.binding.actionButtonReplyCount.setTextColor(theme_icons_color);
 | 
			
		||||
 | 
			
		||||
            holder.binding.actionButtonQuote.setInActiveImageTintColor(theme_icons_color);
 | 
			
		||||
            holder.binding.actionButtonTranslate.setInActiveImageTintColor(theme_icons_color);
 | 
			
		||||
            holder.binding.actionButtonMaths.setInActiveImageTintColor(theme_icons_color);
 | 
			
		||||
            holder.binding.actionButtonMarkdown.setInActiveImageTintColor(theme_icons_color);
 | 
			
		||||
            holder.binding.statusAddCustomEmoji.setInActiveImageTintColor(theme_icons_color);
 | 
			
		||||
            holder.binding.statusEmoji.setInActiveImageTintColor(theme_icons_color);
 | 
			
		||||
            holder.binding.actionButtonMore.setInActiveImageTintColor(theme_icons_color);
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        if (theme_statuses_color != -1) {
 | 
			
		||||
            holder.binding.cardviewContainer.setBackgroundColor(theme_statuses_color);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -632,6 +632,7 @@
 | 
			
		|||
            android:clipChildren="false"
 | 
			
		||||
            android:clipToPadding="false">
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <com.varunest.sparkbutton.SparkButton
 | 
			
		||||
                android:id="@+id/action_button_reply"
 | 
			
		||||
                android:layout_width="48dp"
 | 
			
		||||
| 
						 | 
				
			
			@ -733,111 +734,119 @@
 | 
			
		|||
                app:animationSpeed="1.5"
 | 
			
		||||
                app:inactiveImage="@drawable/ic_round_bookmark_border_24"
 | 
			
		||||
                app:layout_constraintBottom_toBottomOf="parent"
 | 
			
		||||
                app:layout_constraintEnd_toStartOf="@+id/action_button_extra"
 | 
			
		||||
                app:layout_constraintEnd_toStartOf="@+id/action_button_extra_container"
 | 
			
		||||
                app:layout_constraintStart_toEndOf="@+id/action_button_favorite"
 | 
			
		||||
                app:layout_constraintTop_toTopOf="parent"
 | 
			
		||||
                app:primaryColor="@color/marked_icon"
 | 
			
		||||
                app:secondaryColor="@color/marked_icon"
 | 
			
		||||
                sparkbutton:iconSize="28dp" />
 | 
			
		||||
 | 
			
		||||
            <HorizontalScrollView
 | 
			
		||||
                android:id="@+id/action_button_extra_container"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                android:fillViewport="true"
 | 
			
		||||
                app:layout_constraintBottom_toBottomOf="parent"
 | 
			
		||||
                app:layout_constraintEnd_toStartOf="@+id/action_button_more"
 | 
			
		||||
                app:layout_constraintStart_toEndOf="@+id/action_button_bookmark"
 | 
			
		||||
                app:layout_constraintTop_toTopOf="parent">
 | 
			
		||||
 | 
			
		||||
                <androidx.appcompat.widget.LinearLayoutCompat
 | 
			
		||||
                    android:layout_width="wrap_content"
 | 
			
		||||
                    android:layout_height="wrap_content"
 | 
			
		||||
                    android:orientation="horizontal">
 | 
			
		||||
 | 
			
		||||
                    <com.varunest.sparkbutton.SparkButton
 | 
			
		||||
                        android:id="@+id/action_button_quote"
 | 
			
		||||
                        android:layout_width="48dp"
 | 
			
		||||
                        android:layout_height="48dp"
 | 
			
		||||
                        android:layout_gravity="center"
 | 
			
		||||
                        android:adjustViewBounds="true"
 | 
			
		||||
                        android:contentDescription="@string/quote"
 | 
			
		||||
                        app:activeImage="@drawable/ic_baseline_format_quote_24"
 | 
			
		||||
                        app:animationSpeed="1.5"
 | 
			
		||||
                        app:inactiveImage="@drawable/ic_baseline_format_quote_24"
 | 
			
		||||
                        sparkbutton:iconSize="28dp" />
 | 
			
		||||
 | 
			
		||||
                    <com.varunest.sparkbutton.SparkButton
 | 
			
		||||
                        android:id="@+id/action_button_translate"
 | 
			
		||||
                        android:layout_width="48dp"
 | 
			
		||||
                        android:layout_height="48dp"
 | 
			
		||||
                        android:layout_gravity="center"
 | 
			
		||||
                        android:adjustViewBounds="true"
 | 
			
		||||
                        android:contentDescription="@string/translate"
 | 
			
		||||
                        app:activeImage="@drawable/ic_baseline_translate_24"
 | 
			
		||||
                        app:animationSpeed="1.5"
 | 
			
		||||
                        app:inactiveImage="@drawable/ic_baseline_translate_24"
 | 
			
		||||
                        sparkbutton:iconSize="28dp" />
 | 
			
		||||
 | 
			
		||||
                    <com.varunest.sparkbutton.SparkButton
 | 
			
		||||
                        android:id="@+id/action_button_maths"
 | 
			
		||||
                        android:layout_width="48dp"
 | 
			
		||||
                        android:layout_height="48dp"
 | 
			
		||||
                        android:layout_gravity="center"
 | 
			
		||||
                        android:adjustViewBounds="true"
 | 
			
		||||
                        android:contentDescription="@string/formula"
 | 
			
		||||
                        app:activeImage="@drawable/ic_baseline_functions_24"
 | 
			
		||||
                        app:animationSpeed="1.5"
 | 
			
		||||
                        app:inactiveImage="@drawable/ic_baseline_functions_24"
 | 
			
		||||
                        sparkbutton:iconSize="28dp" />
 | 
			
		||||
 | 
			
		||||
                    <com.varunest.sparkbutton.SparkButton
 | 
			
		||||
                        android:id="@+id/action_button_markdown"
 | 
			
		||||
                        android:layout_width="48dp"
 | 
			
		||||
                        android:layout_height="48dp"
 | 
			
		||||
                        android:layout_gravity="center"
 | 
			
		||||
                        android:adjustViewBounds="true"
 | 
			
		||||
                        android:contentDescription="@string/markdown"
 | 
			
		||||
                        app:activeImage="@drawable/baseline_code_24"
 | 
			
		||||
                        app:animationSpeed="1.5"
 | 
			
		||||
                        app:inactiveImage="@drawable/baseline_code_24"
 | 
			
		||||
                        sparkbutton:iconSize="28dp" />
 | 
			
		||||
 | 
			
		||||
                    <com.varunest.sparkbutton.SparkButton
 | 
			
		||||
                        android:id="@+id/status_add_custom_emoji"
 | 
			
		||||
                        android:layout_width="48dp"
 | 
			
		||||
                        android:layout_height="48dp"
 | 
			
		||||
                        android:layout_gravity="center"
 | 
			
		||||
                        android:adjustViewBounds="true"
 | 
			
		||||
                        android:contentDescription="@string/add_reaction"
 | 
			
		||||
                        app:activeImage="@drawable/ic_baseline_emoji_emotions_24"
 | 
			
		||||
                        app:animationSpeed="1.5"
 | 
			
		||||
                        app:inactiveImage="@drawable/ic_baseline_emoji_emotions_24"
 | 
			
		||||
                        sparkbutton:iconSize="28dp" />
 | 
			
		||||
 | 
			
		||||
                    <com.varunest.sparkbutton.SparkButton
 | 
			
		||||
                        android:id="@+id/status_emoji"
 | 
			
		||||
                        android:layout_width="48dp"
 | 
			
		||||
                        android:layout_height="48dp"
 | 
			
		||||
                        android:layout_gravity="center"
 | 
			
		||||
                        android:adjustViewBounds="true"
 | 
			
		||||
                        android:contentDescription="@string/add_reaction"
 | 
			
		||||
                        app:activeImage="@drawable/ic_baseline_add_reaction_24"
 | 
			
		||||
                        app:animationSpeed="1.5"
 | 
			
		||||
                        app:inactiveImage="@drawable/ic_baseline_add_reaction_24"
 | 
			
		||||
                        sparkbutton:iconSize="28dp" />
 | 
			
		||||
 | 
			
		||||
                </androidx.appcompat.widget.LinearLayoutCompat>
 | 
			
		||||
 | 
			
		||||
            </HorizontalScrollView>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <com.varunest.sparkbutton.SparkButton
 | 
			
		||||
                android:id="@+id/action_button_extra"
 | 
			
		||||
                android:id="@+id/action_button_more"
 | 
			
		||||
                android:layout_width="48dp"
 | 
			
		||||
                android:layout_height="48dp"
 | 
			
		||||
                android:layout_gravity="center"
 | 
			
		||||
                android:adjustViewBounds="true"
 | 
			
		||||
                android:contentDescription="@string/set_extand_extra_features_title"
 | 
			
		||||
                app:activeImage="@drawable/baseline_more_actions"
 | 
			
		||||
                app:inactiveImage="@drawable/baseline_more_actions"
 | 
			
		||||
                app:layout_constraintBottom_toBottomOf="parent"
 | 
			
		||||
                app:layout_constraintEnd_toStartOf="@+id/action_button_more"
 | 
			
		||||
                app:layout_constraintStart_toEndOf="@+id/action_button_bookmark"
 | 
			
		||||
                app:layout_constraintTop_toTopOf="parent"
 | 
			
		||||
                sparkbutton:iconSize="28dp" />
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <androidx.constraintlayout.helper.widget.Flow
 | 
			
		||||
                android:id="@+id/extra_features_panel"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                android:background="@drawable/bg_compose_panels"
 | 
			
		||||
                android:padding="6dp"
 | 
			
		||||
                android:visibility="gone"
 | 
			
		||||
                app:constraint_referenced_ids="button_close_extra_features_panel, action_button_quote, action_button_translate, action_button_maths, status_add_custom_emoji, status_emoji, action_button_markdown"
 | 
			
		||||
                app:flow_horizontalGap="10dp"
 | 
			
		||||
                app:flow_horizontalStyle="spread_inside"
 | 
			
		||||
                app:flow_maxElementsWrap="10"
 | 
			
		||||
                app:flow_wrapMode="aligned"
 | 
			
		||||
                app:layout_constraintBottom_toBottomOf="@id/action_buttons"
 | 
			
		||||
                app:layout_constraintEnd_toEndOf="@id/action_button_extra" />
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <com.google.android.material.button.MaterialButton
 | 
			
		||||
                android:id="@+id/button_close_extra_features_panel"
 | 
			
		||||
                style="@style/Widget.Material3.Button.IconButton.Outlined"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                app:icon="@drawable/ic_baseline_close_24" />
 | 
			
		||||
 | 
			
		||||
            <com.google.android.material.button.MaterialButton
 | 
			
		||||
                android:id="@+id/action_button_quote"
 | 
			
		||||
                style="@style/Widget.Material3.Button.IconButton"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                app:icon="@drawable/ic_baseline_format_quote_24" />
 | 
			
		||||
 | 
			
		||||
            <com.google.android.material.button.MaterialButton
 | 
			
		||||
                android:id="@+id/action_button_translate"
 | 
			
		||||
                style="@style/Widget.Material3.Button.IconButton"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                app:icon="@drawable/ic_baseline_translate_24" />
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <com.google.android.material.button.MaterialButton
 | 
			
		||||
                android:id="@+id/action_button_maths"
 | 
			
		||||
                style="@style/Widget.Material3.Button.IconButton"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                app:icon="@drawable/ic_baseline_functions_24" />
 | 
			
		||||
 | 
			
		||||
            <com.google.android.material.button.MaterialButton
 | 
			
		||||
                android:id="@+id/action_button_markdown"
 | 
			
		||||
                style="@style/Widget.Material3.Button.IconButton"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                app:icon="@drawable/baseline_code_24" />
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <com.google.android.material.button.MaterialButton
 | 
			
		||||
                android:id="@+id/status_add_custom_emoji"
 | 
			
		||||
                style="@style/Widget.Material3.Button.IconButton"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                app:icon="@drawable/ic_baseline_emoji_emotions_24" />
 | 
			
		||||
 | 
			
		||||
            <com.google.android.material.button.MaterialButton
 | 
			
		||||
                android:id="@+id/status_emoji"
 | 
			
		||||
                style="@style/Widget.Material3.Button.IconButton"
 | 
			
		||||
                android:layout_width="wrap_content"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                app:icon="@drawable/ic_baseline_add_reaction_24" />
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <androidx.appcompat.widget.AppCompatImageView
 | 
			
		||||
                android:id="@+id/action_button_more"
 | 
			
		||||
                android:layout_width="28dp"
 | 
			
		||||
                android:layout_height="28dp"
 | 
			
		||||
                android:layout_gravity="center|end"
 | 
			
		||||
                android:adjustViewBounds="true"
 | 
			
		||||
                android:background="@color/transparent"
 | 
			
		||||
                android:clickable="true"
 | 
			
		||||
                android:contentDescription="@string/display_options"
 | 
			
		||||
                android:focusable="true"
 | 
			
		||||
                app:activeImage="@drawable/ic_round_more_horiz_24"
 | 
			
		||||
                app:inactiveImage="@drawable/ic_round_more_horiz_24"
 | 
			
		||||
                app:layout_constraintBottom_toBottomOf="parent"
 | 
			
		||||
                app:layout_constraintEnd_toEndOf="parent"
 | 
			
		||||
                app:layout_constraintTop_toTopOf="parent"
 | 
			
		||||
                app:srcCompat="@drawable/ic_round_more_horiz_24" />
 | 
			
		||||
                sparkbutton:iconSize="28dp" />
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        </androidx.constraintlayout.widget.ConstraintLayout>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1928,6 +1928,7 @@
 | 
			
		|||
    <string name="set_disable_release_notes">Disable release notes</string>
 | 
			
		||||
    <string name="set_disable_release_notes_indication">When a new version is published, you will not be alerted inside the app.</string>
 | 
			
		||||
    <string name="formula">Formula</string>
 | 
			
		||||
    <string name="markdown">Markdown</string>
 | 
			
		||||
    <string name="set_maths_support">Write formula</string>
 | 
			
		||||
    <string name="maths_format">Maths format</string>
 | 
			
		||||
    <string name="hide_single_media_with_card">Hide single media when there is a link preview</string>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue