Advertisement
heru0502

MessageAdapter.java

Jan 19th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.67 KB | None | 0 0
  1. package com.androidchatapp;
  2.  
  3. import android.app.Activity;
  4. import android.app.AlertDialog;
  5. import android.content.ActivityNotFoundException;
  6. import android.content.Context;
  7. import android.content.Intent;
  8. import android.net.Uri;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.widget.ArrayAdapter;
  12. import android.widget.ImageView;
  13. import android.widget.TextView;
  14. import android.widget.Toast;
  15.  
  16. import com.bumptech.glide.Glide;
  17.  
  18. import java.util.ArrayList;
  19.  
  20. import static com.androidchatapp.UserDetails.chatWith;
  21.  
  22. /**
  23.  * Created by manlai on 11/5/2017.
  24.  */
  25.  
  26. public class MessageAdapter extends ArrayAdapter<Message>
  27. {
  28.     private View viewToConvertToMessage;
  29.     private TextView text, name, textFriend;
  30.     private ImageView image, imageFriend, imageStatus, file;
  31.     private Message message, status;
  32.     private boolean hasPhoto, hasType;
  33.     Context context;
  34.  
  35.  
  36.     public MessageAdapter(Context context, int resource, ArrayList<Message> objects)
  37.     {
  38.         super(context, resource, objects);
  39.         this.context = context;
  40.     }
  41.  
  42.  
  43.     @Override
  44.     public View getView(final int position, View convertView, ViewGroup parent)
  45.     {
  46.         viewToConvertToMessage = convertView;
  47.  
  48.         if(viewToConvertToMessage == null)
  49.             viewToConvertToMessage = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.message_item, parent, false);
  50.  
  51.         initializeMessageFields();
  52.  
  53.         message = getItem(position);
  54.         hasPhoto = message.getPhotoURL() != null;
  55.         hasType = message.getType() != null;
  56.  
  57.         drawMessage(position, convertView);
  58.  
  59.         return viewToConvertToMessage;
  60.     }
  61.  
  62.  
  63.     private void initializeMessageFields()
  64.     {
  65.         text = viewToConvertToMessage.findViewById(R.id.text_field);
  66.         textFriend = viewToConvertToMessage.findViewById(R.id.text_friend);
  67.         name = viewToConvertToMessage.findViewById(R.id.name_field);
  68.         image = viewToConvertToMessage.findViewById(R.id.image_field);
  69.         file = viewToConvertToMessage.findViewById(R.id.file_field);
  70.         imageFriend = viewToConvertToMessage.findViewById(R.id.image_friend);
  71.  
  72.         imageStatus = viewToConvertToMessage.findViewById(R.id.image_status_sent);
  73.     }
  74.  
  75.  
  76.     private void drawMessage(final int position, View convertView)
  77.     {
  78.         if(message.getUser().equals(UserDetails.username))
  79.         {
  80.             if(hasPhoto)
  81.             {
  82.                 text.setVisibility(View.GONE);
  83.  
  84.                 if(message.getType().equals("image")){
  85.                     image.setVisibility(View.VISIBLE);
  86.                     file.setVisibility(View.GONE);
  87.                     Glide.with(image.getContext()).load(message.getPhotoURL()).into(image);
  88.                 }else if(message.getType().equals("file")){
  89.                     image.setVisibility(View.GONE);
  90.                     file.setVisibility(View.VISIBLE);
  91.  
  92.                     file.setOnClickListener(new View.OnClickListener() {
  93.                         @Override
  94.                         public void onClick(View view) {
  95. //                            Intent i = new Intent(Intent.ACTION_VIEW);
  96. //                            i.setData(Uri.parse(message.getPhotoURL()));
  97. //                            context.startActivity(i);
  98.                             Toast.makeText(context, "File " +message.getPhotoURL()+" "+message.getType(), Toast.LENGTH_SHORT).show();
  99.                         }
  100.                     });
  101.                 }
  102.  
  103.             }
  104.             else
  105.             {
  106.                 text.setVisibility(View.VISIBLE);
  107.                 image.setVisibility(View.GONE);
  108.                 file.setVisibility(View.GONE);
  109.                 text.setText(message.getText());
  110.             }
  111.  
  112.             if(message.getStatus().equals("terkirim")){
  113.                 imageStatus.setImageResource(R.drawable.ic_sent);
  114.             }else{
  115.                 imageStatus.setImageResource(R.drawable.ic_done_all);
  116.             }
  117.  
  118.             textFriend.setVisibility(View.GONE);
  119.             imageFriend.setVisibility(View.GONE);
  120.  
  121.         }
  122.         else
  123.         {
  124.             if(hasPhoto)
  125.             {
  126.                 textFriend.setVisibility(View.GONE);
  127.                 imageFriend.setVisibility(View.VISIBLE);
  128.                 Glide.with(imageFriend.getContext()).load(message.getPhotoURL()).into(imageFriend);
  129.  
  130.  
  131.             }
  132.             else
  133.             {
  134.                 textFriend.setVisibility(View.VISIBLE);
  135.                 imageFriend.setVisibility(View.GONE);
  136.                 textFriend.setText(message.getText());
  137.             }
  138.  
  139.             text.setVisibility(View.GONE);
  140.             image.setVisibility(View.GONE);
  141.         }
  142.  
  143.  
  144.  
  145.     }
  146.  
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement