Search in sources :

Example 1 with ExpandableTextView

use of net.iGap.story.ExpandableTextView in project iGap-Android by KianIranian-STDG.

the class StoryDisplayFragment method createView.

@Override
public View createView(Context context) {
    fragmentView = new FrameLayout(context);
    rootLayout = (FrameLayout) fragmentView;
    notifyFrameLayout = new NotifyFrameLayout(context) {

        @Override
        public boolean dispatchKeyEventPreIme(KeyEvent event) {
            if (event != null && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
                if (keyboardViewVisible) {
                    hideStoryReply();
                    return true;
                }
                return false;
            }
            return super.dispatchKeyEventPreIme(event);
        }
    };
    notifyFrameLayout.setListener(this::onScreenSizeChanged);
    rootLayout.addView(notifyFrameLayout, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, LayoutCreator.MATCH_PARENT));
    storyVideoPlayer = new PlayerView(context);
    storyVideoPlayer.setVisibility(View.GONE);
    storyVideoPlayer.setContentDescription("storyVideoPlayer");
    notifyFrameLayout.addView(storyVideoPlayer, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, LayoutCreator.MATCH_PARENT));
    storyDisplayImage = new ImageView(context);
    storyDisplayImage.setScaleType(ImageView.ScaleType.CENTER_CROP);
    storyDisplayImage.setContentDescription("storyDisplayImage");
    notifyFrameLayout.addView(storyDisplayImage, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, LayoutCreator.MATCH_PARENT));
    DisplayMetrics displayMetrics = new DisplayMetrics();
    requireActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    int width = displayMetrics.widthPixels;
    previous = new LinearLayout(context);
    FrameLayout.LayoutParams previousLayoutParam = new FrameLayout.LayoutParams(width / 2, ViewGroup.LayoutParams.MATCH_PARENT, Gravity.LEFT);
    previous.setContentDescription("previous");
    notifyFrameLayout.addView(previous, previousLayoutParam);
    next = new LinearLayout(context);
    FrameLayout.LayoutParams nextLayoutParam = new FrameLayout.LayoutParams(width / 2, ViewGroup.LayoutParams.MATCH_PARENT, Gravity.RIGHT);
    next.setContentDescription("next");
    notifyFrameLayout.addView(next, nextLayoutParam);
    storyVideoProgress = new ProgressBar(context);
    storyVideoProgress.setContentDescription("storyVideoProgress");
    notifyFrameLayout.addView(storyVideoProgress, LayoutCreator.createFrame(40, 40, Gravity.RIGHT | Gravity.TOP, 0, 20, 20, 0));
    storyOverlay = new FrameLayout(context);
    storyOverlay.setContentDescription("storyOverlay");
    notifyFrameLayout.addView(storyOverlay, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, LayoutCreator.MATCH_PARENT));
    topShadow = new View(context);
    topShadow.setContentDescription("topShadow");
    topShadow.setBackground(context.getResources().getDrawable(R.drawable.story_top_shadow));
    storyOverlay.addView(topShadow, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, 60, Gravity.TOP));
    storiesProgressView = new StoriesProgressView(context, null);
    storiesProgressView.setContentDescription("storiesProgressView");
    storiesProgressView.setPadding(8, 0, 8, 0);
    storyOverlay.addView(storiesProgressView, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, LayoutCreator.WRAP_CONTENT, Gravity.TOP, 0, 2, 0, 0));
    profileImage = new CircleImageView(context);
    profileImage.setContentDescription("profileImage");
    storyOverlay.addView(profileImage, LayoutCreator.createFrame(40, 40, Gravity.LEFT, 8, 10, 8, 8));
    LinearLayout profileContainer = new LinearLayout(context);
    profileContainer.setContentDescription("profileContainer");
    profileContainer.setOrientation(LinearLayout.VERTICAL);
    topLinearRootView = new LinearLayout(context);
    topLinearRootView.setGravity(Gravity.CENTER);
    topLinearRootView.setOrientation(LinearLayout.HORIZONTAL);
    profileContainer.addView(topLinearRootView, 0, LayoutCreator.createLinear(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.TOP));
    nickName = new TextView(context);
    nickName.setContentDescription("nickName");
    nickName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 13);
    nickName.setTypeface(ResourcesCompat.getFont(context, R.font.main_font_bold));
    nickName.setTextColor(Color.WHITE);
    topLinearRootView.addView(nickName, LayoutCreator.createLinear(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.CENTER));
    chatIconTv = new FontIconTextView(getContext());
    setTextSize(chatIconTv, R.dimen.dp14);
    chatIconTv.setVisibility(View.GONE);
    chatIconTv.setContentDescription("chatIconTv");
    chatIconTv.setText(R.string.icon_channel);
    chatIconTv.setTextColor(Color.WHITE);
    topLinearRootView.addView(chatIconTv, LayoutCreator.createLinear(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.CENTER, 4, 0, 0, 0));
    verifyIconTv = new FontIconTextView(getContext());
    verifyIconTv.setTextColor(getContext().getResources().getColor(R.color.verify_color));
    verifyIconTv.setText(R.string.icon_blue_badge);
    verifyIconTv.setVisibility(View.GONE);
    setTextSize(verifyIconTv, R.dimen.standardTextSize);
    topLinearRootView.addView(verifyIconTv, LayoutCreator.createLinear(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.CENTER, 4, 0, 0, 0));
    storyTime = new TextView(context);
    storyTime.setContentDescription("storyTime");
    storyTime.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);
    storyTime.setTypeface(nickName.getTypeface(), Typeface.BOLD);
    storyTime.setTextColor(Color.WHITE);
    profileContainer.addView(storyTime, LayoutCreator.createLinear(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.BOTTOM));
    storyOverlay.addView(profileContainer, LayoutCreator.createFrame(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.LEFT, 56, 8, 0, 0));
    captionRootView = new ExpandableTextView(context);
    captionRootView.setContentDescription("captionRootView");
    captionRootView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
    captionRootView.setTextColor(Color.WHITE);
    captionRootView.setPadding(8, 8, 8, 8);
    rootLayout.addView(captionRootView, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, LayoutCreator.WRAP_CONTENT, Gravity.BOTTOM, 0, 0, 0, 80));
    storySeenContainer = new LinearLayout(context);
    storySeenContainer.setContentDescription("storySeenContainer");
    storySeenContainer.setGravity(Gravity.CENTER_VERTICAL);
    storySeenContainer.setOrientation(LinearLayout.HORIZONTAL);
    eyeIcon = new TextView(context);
    eyeIcon.setContentDescription("eyeIcon");
    eyeIcon.setTypeface(ResourcesCompat.getFont(context, R.font.font_icons));
    eyeIcon.setTextColor(Color.WHITE);
    eyeIcon.setGravity(Gravity.CENTER_VERTICAL);
    eyeIcon.setBackground(context.getResources().getDrawable(R.drawable.ic_view_seen));
    eyeIcon.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
    seenCount = new TextView(context);
    seenCount.setContentDescription("seenCount");
    seenCount.setTypeface(ResourcesCompat.getFont(context, R.font.main_font));
    seenCount.setGravity(Gravity.CENTER_VERTICAL);
    seenCount.setTextColor(Color.WHITE);
    seenCount.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
    storySeenContainer.addView(eyeIcon, LayoutCreator.createFrame(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.LEFT));
    storySeenContainer.addView(seenCount, LayoutCreator.createFrame(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.RIGHT, 3, 0, 0, 0));
    storyProgress = new ProgressBar(context);
    storyProgress.setContentDescription("storyProgress");
    storyProgress.setVisibility(View.GONE);
    notifyFrameLayout.addView(storyProgress, LayoutCreator.createFrame(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.CENTER));
    GradientDrawable layer1 = new GradientDrawable();
    layer1.setShape(GradientDrawable.RECTANGLE);
    layer1.setCornerRadii(new float[] { LayoutCreator.dp(8), LayoutCreator.dp(8), 0, 0, 0, 0, LayoutCreator.dp(8), LayoutCreator.dp(8) });
    layer1.setColor(Theme.getInstance().getToolbarBackgroundColor(context));
    GradientDrawable layer2 = new GradientDrawable();
    layer2.setShape(GradientDrawable.RECTANGLE);
    layer2.setColor(Theme.getInstance().getReplyContentBackground(context));
    InsetDrawable insetDrawable = new InsetDrawable(layer2, LayoutCreator.dp(8), 0, 0, 0);
    LayerDrawable drawable = new LayerDrawable(new Drawable[] { layer1, insetDrawable });
    LinearLayout replyAndKeyboardContainer = new LinearLayout(context);
    replyAndKeyboardContainer.setOrientation(LinearLayout.VERTICAL);
    notifyFrameLayout.addView(replyAndKeyboardContainer, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, LayoutCreator.WRAP_CONTENT, Gravity.BOTTOM));
    replyContainer = new FrameLayout(context);
    replyContainer.setVisibility(View.GONE);
    replyContainer.setContentDescription("replyContainer");
    replyContainer.setBackground(Theme.getInstance().tintDrawable(context.getResources().getDrawable(R.drawable.chat_item_sent_bg_light), context, R.attr.iGapSendMessageBubbleColor));
    replyContainer.setPadding(15, 15, 15, 15);
    replyAndKeyboardContainer.addView(replyContainer, LayoutCreator.createLinear(LayoutCreator.MATCH_PARENT, LayoutCreator.WRAP_CONTENT, Gravity.TOP, 15, 0, 15, 10));
    FrameLayout mainContentContainer = new FrameLayout(context);
    replyContainer.addView(mainContentContainer, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, LayoutCreator.WRAP_CONTENT, Gravity.LEFT));
    replyContentContainer = new LinearLayout(context);
    replyContentContainer.setContentDescription("replyContentContainer");
    replyContentContainer.setBackground(drawable);
    replyContentContainer.setOrientation(LinearLayout.VERTICAL);
    mainContentContainer.addView(replyContentContainer, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, 50, Gravity.LEFT, 10, 5, 45, 5));
    replyThumb = new ImageView(context);
    replyThumb.setContentDescription("replyThumb");
    mainContentContainer.addView(replyThumb, LayoutCreator.createFrame(25, LayoutCreator.MATCH_PARENT, Gravity.RIGHT | Gravity.TOP, 0, 0, 5, 0));
    replyTo = new TextView(context);
    replyTo.setContentDescription("replyTo");
    replyTo.setTypeface(ResourcesCompat.getFont(context, R.font.main_font_bold));
    replyTo.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
    replyTo.setEllipsize(TextUtils.TruncateAt.END);
    replyTo.setTextColor(Theme.getInstance().getSendReplayUserColor(context));
    replyContentContainer.addView(replyTo, LayoutCreator.createFrame(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.TOP, 8, 0, 0, 0));
    replyCaption = new TextView(context);
    replyCaption.setContentDescription("replyCaption");
    replyCaption.setTypeface(ResourcesCompat.getFont(context, R.font.main_font));
    replyCaption.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);
    replyCaption.setEllipsize(TextUtils.TruncateAt.END);
    replyCaption.setSingleLine(true);
    replyCaption.setTextColor(Theme.getInstance().getSubTitleColor(context));
    replyContentContainer.addView(replyCaption, LayoutCreator.createFrame(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.BOTTOM, 8, 0, 8, 0));
    sendReplyContainer = new FrameLayout(context);
    sendReplyContainer.setContentDescription("sendReplyContainer");
    replyContainer.addView(sendReplyContainer, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, LayoutCreator.WRAP_CONTENT, Gravity.BOTTOM, 0, 60, 0, 0));
    emojiIcon = new TextView(context);
    emojiIcon.setContentDescription("emojiIcon");
    emojiIcon.setTypeface(ResourcesCompat.getFont(context, R.font.font_icons));
    emojiIcon.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
    emojiIcon.setText(R.string.icon_emoji_smile);
    emojiIcon.setGravity(Gravity.CENTER);
    emojiIcon.setTextColor(Theme.getInstance().getSubTitleColor(context));
    sendReplyContainer.addView(emojiIcon, LayoutCreator.createFrame(50, 50, Gravity.LEFT, 5, 0, 5, 0));
    replyEditText = new EventEditText(context);
    replyEditText.setBackground(null);
    replyEditText.setContentDescription("replyEditText");
    replyEditText.setListener(this::chatMotionEvent);
    replyEditText.setHintTextColor(Theme.getInstance().getSubTitleColor(context));
    replyEditText.setTextColor(Theme.getInstance().getTitleTextColor(context));
    sendReplyContainer.addView(replyEditText, LayoutCreator.createFrame(LayoutCreator.MATCH_PARENT, LayoutCreator.MATCH_PARENT, Gravity.LEFT, 50, 0, 55, 0));
    sendIcon = new TextView(context);
    sendIcon.setContentDescription("sendIcon");
    sendIcon.setTypeface(ResourcesCompat.getFont(context, R.font.font_icons));
    sendIcon.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
    sendIcon.setText(R.string.icon_send);
    sendIcon.setGravity(Gravity.CENTER);
    sendIcon.setTextColor(Theme.getInstance().getSubTitleColor(context));
    sendReplyContainer.addView(sendIcon, LayoutCreator.createFrame(50, 50, Gravity.RIGHT, 5, 0, 5, 0));
    keyboardContainer = new FrameLayout(context);
    keyboardContainer.setContentDescription("keyboardContainer");
    replyAndKeyboardContainer.addView(keyboardContainer, LayoutCreator.createLinear(LayoutCreator.MATCH_PARENT, LayoutCreator.WRAP_CONTENT, Gravity.BOTTOM));
    storyReplyContainer = new LinearLayout(context);
    storyReplyContainer.setContentDescription("storyReplyContainer");
    storyReplyContainer.setOrientation(LinearLayout.VERTICAL);
    storyReplyContainer.setGravity(Gravity.CENTER_HORIZONTAL);
    replyIcon = new TextView(context);
    replyIcon.setContentDescription("replyIcon");
    replyIcon.setTypeface(ResourcesCompat.getFont(context, R.font.font_icons));
    replyIcon.setTextColor(Color.WHITE);
    replyIcon.setText(R.string.icon_chevron_Down);
    replyIcon.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
    replyText = new TextView(context);
    replyText.setContentDescription("replyText");
    replyText.setTypeface(ResourcesCompat.getFont(context, R.font.main_font));
    replyText.setTextColor(Color.WHITE);
    replyText.setText(R.string.replay);
    replyText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
    storyReplyContainer.addView(replyIcon, LayoutCreator.createFrame(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT));
    storyReplyContainer.addView(replyText, LayoutCreator.createFrame(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT));
    notifyFrameLayout.addView(storySeenContainer, LayoutCreator.createFrame(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM, 0, 0, 0, 20));
    notifyFrameLayout.addView(storyReplyContainer, LayoutCreator.createFrame(LayoutCreator.WRAP_CONTENT, LayoutCreator.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM, 0, 0, 0, 30));
    return rootLayout;
}
Also used : ExpandableTextView(net.iGap.story.ExpandableTextView) EventEditText(net.iGap.module.customView.EventEditText) FontIconTextView(net.iGap.module.FontIconTextView) DisplayMetrics(android.util.DisplayMetrics) ImageView(android.widget.ImageView) FontIconTextView(net.iGap.module.FontIconTextView) PlayerView(com.google.android.exoplayer2.ui.PlayerView) RecyclerListView(net.iGap.module.customView.RecyclerListView) View(android.view.View) KeyboardView(net.iGap.libs.emojiKeyboard.KeyboardView) RecyclerView(androidx.recyclerview.widget.RecyclerView) TextView(android.widget.TextView) ExpandableTextView(net.iGap.story.ExpandableTextView) EmojiView(net.iGap.libs.emojiKeyboard.EmojiView) ImageLoadingView(net.iGap.story.liststories.ImageLoadingView) CircleImageView(net.iGap.module.CircleImageView) GradientDrawable(android.graphics.drawable.GradientDrawable) KeyEvent(android.view.KeyEvent) CircleImageView(net.iGap.module.CircleImageView) FrameLayout(android.widget.FrameLayout) NotifyFrameLayout(net.iGap.libs.emojiKeyboard.NotifyFrameLayout) LayerDrawable(android.graphics.drawable.LayerDrawable) PlayerView(com.google.android.exoplayer2.ui.PlayerView) FontIconTextView(net.iGap.module.FontIconTextView) TextView(android.widget.TextView) ExpandableTextView(net.iGap.story.ExpandableTextView) InsetDrawable(android.graphics.drawable.InsetDrawable) ImageView(android.widget.ImageView) CircleImageView(net.iGap.module.CircleImageView) ProgressBar(android.widget.ProgressBar) LinearLayout(android.widget.LinearLayout) NotifyFrameLayout(net.iGap.libs.emojiKeyboard.NotifyFrameLayout)

Aggregations

GradientDrawable (android.graphics.drawable.GradientDrawable)1 InsetDrawable (android.graphics.drawable.InsetDrawable)1 LayerDrawable (android.graphics.drawable.LayerDrawable)1 DisplayMetrics (android.util.DisplayMetrics)1 KeyEvent (android.view.KeyEvent)1 View (android.view.View)1 FrameLayout (android.widget.FrameLayout)1 ImageView (android.widget.ImageView)1 LinearLayout (android.widget.LinearLayout)1 ProgressBar (android.widget.ProgressBar)1 TextView (android.widget.TextView)1 RecyclerView (androidx.recyclerview.widget.RecyclerView)1 PlayerView (com.google.android.exoplayer2.ui.PlayerView)1 EmojiView (net.iGap.libs.emojiKeyboard.EmojiView)1 KeyboardView (net.iGap.libs.emojiKeyboard.KeyboardView)1 NotifyFrameLayout (net.iGap.libs.emojiKeyboard.NotifyFrameLayout)1 CircleImageView (net.iGap.module.CircleImageView)1 FontIconTextView (net.iGap.module.FontIconTextView)1 EventEditText (net.iGap.module.customView.EventEditText)1 RecyclerListView (net.iGap.module.customView.RecyclerListView)1