Guest User

Untitled

a guest
Jan 16th, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.56 KB | None | 0 0
  1. public class HolderWorker {
  2.  
  3.     public static String ownUserId = MainActivity.MY_ID;
  4.     public static String forwardTemplateText = "Forwarded by ";
  5.     public static String editedTemplateText = "Edited";
  6.     public static boolean isGroupChat = true;
  7.     public static String attachment = "Attachment: ";
  8.  
  9.     private Message message;
  10.     private ItemMessageBinding binding;
  11.  
  12.     public HolderWorker(ItemMessageBinding binding) {
  13.         this.binding = binding;
  14.         initializeStubListeners();
  15.     }
  16.  
  17.     public void setMessage(Message message) {
  18.         this.message = message;
  19.         binding.setMessage(message);
  20.         updateView();
  21.     }
  22.  
  23.     public void updateView() {
  24.         formatViewCondition();
  25.         if (message.getIsForwarded()!=null&&message.getIsForwarded()) {
  26.             verifyIfMessageDataExists(message.getIsForwarded(), binding.stubMessageForward);
  27.         } else {
  28. //            verifyIfMessageDataExists(message.getRepliedMessage(), binding.stubMessageReply);
  29.         }
  30.         verifyIfMessageDataExists(message.getText(), binding.stubMessageText);
  31.         verifyIfMessageDataExists(message.getImage(), binding.stubMessageImage);
  32.         verifyIfMessageDataExists(message.getSharedContact(), binding.stubMessageContact);
  33.     }
  34.  
  35.     private void formatViewCondition() {
  36.         if (isOwnMessage()) {
  37.             binding.mainLayout.setGravity(Gravity.RIGHT);
  38.             binding.llForBubbleGravity.setGravity(Gravity.RIGHT);
  39.             LayoutParams tvTextAndTimeParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
  40.             tvTextAndTimeParams.gravity = Gravity.RIGHT;
  41.             binding.llTextAndTime.setLayoutParams(tvTextAndTimeParams);
  42. //            binding.messageUserAvatar.setVisibility(View.GONE);
  43.         } else {
  44.             if (isGroupChat) {
  45.                 verifyIfMessageDataExists(message.getUser().getAvatar(), binding.stubMessageAvatar);
  46.             }
  47.         }
  48.  
  49.         checkIsReaded();
  50.         setIfEdited();
  51.         applyDateToView(binding.messageTime);
  52.     }
  53.  
  54.     private void initializeStubListeners() {
  55.         binding.stubMessageAvatar.setOnInflateListener(new ViewStub.OnInflateListener() {
  56.             @Override
  57.             public void onInflate(ViewStub stub, View inflated) {
  58.                 ItemMessagePartAvatarBinding avatarBinding = DataBindingUtil.bind(inflated);
  59.                 setImage(inflated, avatarBinding.ivMessageAvatar, message.getUser().getAvatar(), true);
  60.             }
  61.         });
  62.  
  63.         binding.stubMessageReply.setOnInflateListener(new ViewStub.OnInflateListener() {
  64.             @Override
  65.             public void onInflate(ViewStub viewStub, View view) {
  66.                 ItemMessagePartReplyBinding replyBinding = DataBindingUtil.bind(view);
  67. //                replyBinding.setMessage(message.getRepliedMessage());
  68.             }
  69.         });
  70.         binding.stubMessageForward.setOnInflateListener(new ViewStub.OnInflateListener() {
  71.             @Override
  72.             public void onInflate(ViewStub viewStub, View view) {
  73.                 ItemMessagePartForwardBinding forwardBinding = DataBindingUtil.bind(view);
  74.                 binding.setMessage(message);
  75.                 String forwardText = forwardTemplateText;
  76.                 if (message.getForwarderName() != null && !message.getForwarderName().isEmpty()) {
  77.                     forwardText += message.getForwarderName();
  78.                 } else forwardText += "Unknown";
  79.                 forwardBinding.tvMessageForward.setText(forwardText);
  80.             }
  81.         });
  82.  
  83.  
  84.         binding.stubMessageText.setOnInflateListener(new ViewStub.OnInflateListener() {
  85.             @Override
  86.             public void onInflate(ViewStub viewStub, View view) {
  87.                 ItemMessagePartTextBinding textBinding = DataBindingUtil.bind(view);
  88.                 textBinding.setMessage(message);
  89. //                if (message.getText().length() > 500 && textBinding.tvMessageTranslatedText == null) {//Not working because not initialized
  90. //                    binding.llTextAndTime.setOrientation(LinearLayout.HORIZONTAL);
  91. //                    LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
  92. //                    textViewParams.gravity = Gravity.CENTER_VERTICAL;
  93. //                    binding.messageTime.setLayoutParams(textViewParams);
  94. //                }
  95.                 if (isOwnMessage()) {
  96.                     textBinding.tvMessageText.setTextColor(Color.WHITE);
  97.                 } else {
  98.                     textBinding.tvMessageText.setTextColor(Color.BLACK);
  99.                 }
  100.                 if (message.getTranslatedMessage() != null && !message.getTranslatedMessage().isEmpty()) {
  101.                     textBinding.tvMessageTranslatedText.setVisibility(View.VISIBLE);
  102.                     textBinding.vMessageTranslatedTextDivider.setVisibility(View.VISIBLE);
  103.                     textBinding.tvMessageText.setTextColor(Color.GRAY);
  104.                     if (isOwnMessage()) {
  105.                         textBinding.tvMessageTranslatedText.setTextColor(Color.WHITE);
  106.                     } else {
  107.                         textBinding.tvMessageTranslatedText.setTextColor(Color.BLACK);
  108.                     }
  109.                 }
  110.             }
  111.         });
  112.  
  113.         binding.stubMessageImage.setOnInflateListener(new ViewStub.OnInflateListener() {
  114.             @Override
  115.             public void onInflate(ViewStub stub, View inflated) {
  116.                 ItemMessagePartImageBinding imageBinding = DataBindingUtil.bind(inflated);
  117.                 setImage(inflated, imageBinding.ivMessageImage, message.getImage(), false);
  118.             }
  119.         });
  120.  
  121.         binding.stubMessageContact.setOnInflateListener(new ViewStub.OnInflateListener() {
  122.             @Override
  123.             public void onInflate(ViewStub viewStub, View view) {
  124.                 ItemMessagePartContactBinding contactBinding = DataBindingUtil.bind(view);
  125.                 contactBinding.setMessage(message);
  126.                 binding.llTimeAndCheck.setVisibility(View.GONE);
  127.                 setImage(view, contactBinding.messageContactAvatar, message.getSharedContact().getAvatar(), false);
  128.                 applyDateToView(contactBinding.tvMessageContactTime);
  129.                 checkIsReaded(contactBinding.messageContactCheck);
  130.                 if (!isOwnMessage()) {
  131.                     contactBinding.tvMessageContactActionViewContact.setBackgroundResource(R.drawable.bg_incoming_messge_action_view_contact);
  132.                 }
  133.             }
  134.         });
  135.     }
Advertisement
Add Comment
Please, Sign In to add comment