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;
}
Aggregations