HarshBarash

Chat

Jun 11th, 2021
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.54 KB | None | 0 0
  1. public class ChatActivity extends AppCompatActivity {
  2.  
  3.     DatabaseReference profileRef;
  4.     FirebaseDatabase database = FirebaseDatabase.getInstance();
  5.     RecyclerView recyclerView;
  6.     EditText searchEt;
  7.  
  8.     @Override
  9.     protected void onCreate(Bundle savedInstanceState) {
  10.         super.onCreate(savedInstanceState);
  11.         setContentView(R.layout.activity_chat);
  12.  
  13.  
  14.         searchEt = findViewById(R.id.search_userch);
  15.         recyclerView = findViewById(R.id.rv_ch);
  16.         recyclerView.setHasFixedSize(true);
  17.         recyclerView.setLayoutManager(new LinearLayoutManager(ChatActivity.this));
  18.         profileRef = database.getReference("All Users");
  19.  
  20.         searchEt.addTextChangedListener(new TextWatcher() {
  21.             @Override
  22.             public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
  23.  
  24.             }
  25.  
  26.             @Override
  27.             public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
  28.  
  29.             }
  30.  
  31.             @Override
  32.             public void afterTextChanged(Editable editable) {
  33.  
  34.                 String query = searchEt.getText().toString().toUpperCase();
  35.                 Query search = profileRef.orderByChild("name").startAt(query).endAt(query+"\uf0ff");
  36.  
  37.                 FirebaseRecyclerOptions<All_UserMmber> options1 =
  38.                         new FirebaseRecyclerOptions.Builder<All_UserMmber>()
  39.                                 .setQuery(search,All_UserMmber.class)
  40.                                 .build();
  41.  
  42.                 FirebaseRecyclerAdapter<All_UserMmber,ProfileViewholder> firebaseRecyclerAdapter1 =
  43.                         new FirebaseRecyclerAdapter<All_UserMmber, ProfileViewholder>(options1) {
  44.                             @Override
  45.                             protected void onBindViewHolder(@NonNull ProfileViewholder holder, int position, @NonNull All_UserMmber model) {
  46.  
  47.  
  48.                                 final String postkey = getRef(position).getKey();
  49.  
  50.                                 holder.setProfileInchat(getApplication(),model.getName(),model.getUid(),model.getBio(),model.getUrl());
  51.  
  52.  
  53.                                 String  name = getItem(position).getName();
  54.                                 String  url = getItem(position).getUrl();
  55.                                 String uid = getItem(position).getUid();
  56.  
  57.  
  58.                                 holder.sendmessagebtn.setOnClickListener(new View.OnClickListener() {
  59.                                     @Override
  60.                                     public void onClick(View view) {
  61.                                         Intent intent = new Intent(ChatActivity.this,MessageActivity.class);
  62.                                         intent.putExtra("n",name);
  63.                                         intent.putExtra("u",url);
  64.                                         intent.putExtra("uid",uid);
  65.                                         startActivity(intent);
  66.                                     }
  67.                                 });
  68.  
  69.                             }
  70.  
  71.                             @NonNull
  72.                             @Override
  73.                             public ProfileViewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  74.                                 View view = LayoutInflater.from(parent.getContext())
  75.                                         .inflate(R.layout.chat_profile_item,parent,false);
  76.  
  77.                                 return new ProfileViewholder(view);
  78.                             }
  79.                         };
  80.  
  81.                 firebaseRecyclerAdapter1.startListening();
  82.                 recyclerView.setAdapter(firebaseRecyclerAdapter1);
  83.  
  84.             }
  85.         });
  86.     }
  87.  
  88.     @Override
  89.     protected void onStart() {
  90.         super.onStart();
  91.  
  92.  
  93.         PermissionListener permissionListener = new PermissionListener() {
  94.             @Override
  95.             public void onPermissionGranted() {
  96.  
  97.  
  98.             }
  99.  
  100.             @Override
  101.             public void onPermissionDenied(List<String> deniedPermissions) {
  102.  
  103.                 Intent intent = new Intent(ChatActivity.this,MainActivity.class);
  104.                 startActivity(intent);
  105.  
  106.             }
  107.         };
  108.         TedPermission.with(ChatActivity.this)
  109.                 .setPermissionListener(permissionListener)
  110.                 .setPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.RECORD_AUDIO)
  111.                 .check();
  112.  
  113.  
  114.         FirebaseRecyclerOptions<All_UserMmber> options1 =
  115.                 new FirebaseRecyclerOptions.Builder<All_UserMmber>()
  116.                         .setQuery(profileRef,All_UserMmber.class)
  117.                         .build();
  118.  
  119.         FirebaseRecyclerAdapter<All_UserMmber,ProfileViewholder> firebaseRecyclerAdapter1 =
  120.                 new FirebaseRecyclerAdapter<All_UserMmber, ProfileViewholder>(options1) {
  121.                     @Override
  122.                     protected void onBindViewHolder(@NonNull ProfileViewholder holder, int position, @NonNull All_UserMmber model) {
  123.  
  124.  
  125.                         final String postkey = getRef(position).getKey();
  126.  
  127.                         holder.setProfileInchat(getApplication(),model.getName(),model.getUid(),model.getBio(),model.getUrl());
  128.  
  129.  
  130.                         String  name = getItem(position).getName();
  131.                         String  url = getItem(position).getUrl();
  132.                         String uid = getItem(position).getUid();
  133.  
  134.  
  135.                         holder.sendmessagebtn.setOnClickListener(new View.OnClickListener() {
  136.                             @Override
  137.                             public void onClick(View view) {
  138.                                 Intent intent = new Intent(ChatActivity.this,MessageActivity.class);
  139.                                 intent.putExtra("n",name);
  140.                                 intent.putExtra("u",url);
  141.                                 intent.putExtra("uid",uid);
  142.                                 startActivity(intent);
  143.                             }
  144.                         });
  145.  
  146.                     }
  147.  
  148.                     @NonNull
  149.                     @Override
  150.                     public ProfileViewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  151.                         View view = LayoutInflater.from(parent.getContext())
  152.                                 .inflate(R.layout.chat_profile_item,parent,false);
  153.  
  154.                         return new ProfileViewholder(view);
  155.                     }
  156.                 };
  157.  
  158.         firebaseRecyclerAdapter1.startListening();
  159.         recyclerView.setAdapter(firebaseRecyclerAdapter1);
  160.  
  161.  
  162.     }
  163. }
Add Comment
Please, Sign In to add comment