Untitled
unknown
plain_text
3 years ago
9.3 kB
5
Indexable
package com.example.socialapp;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.Manifest;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.Toast;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;
import com.gun0912.tedpermission.PermissionListener;
import com.gun0912.tedpermission.TedPermission;
import java.util.List;
public class ChatActivity extends AppCompatActivity {
DatabaseReference profileRef;
FirebaseDatabase database = FirebaseDatabase.getInstance();
RecyclerView recyclerView;
EditText searchEt;
CheckVideoCall checkVideoCall;
DatabaseReference checkVideocallRef;
String senderuid;
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String currentuid = user.getUid();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
searchEt = findViewById(R.id.search_userch);
recyclerView = findViewById(R.id.rv_ch);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(ChatActivity.this));
profileRef = database.getReference("All Users");
checkIncoming();
searchEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
String query = searchEt.getText().toString().toUpperCase();
Query search = profileRef.orderByChild("name").startAt(query).endAt(query+"\uf0ff");
FirebaseRecyclerOptions<All_UserMmber> options1 =
new FirebaseRecyclerOptions.Builder<All_UserMmber>()
.setQuery(search,All_UserMmber.class)
.build();
FirebaseRecyclerAdapter<All_UserMmber,ProfileViewholder> firebaseRecyclerAdapter1 =
new FirebaseRecyclerAdapter<All_UserMmber, ProfileViewholder>(options1) {
@Override
protected void onBindViewHolder(@NonNull ProfileViewholder holder, int position, @NonNull All_UserMmber model) {
final String postkey = getRef(position).getKey();
holder.setProfileInchat(getApplication(),model.getName(),model.getUid(),model.getProf(),model.getUrl());
String name = getItem(position).getName();
String url = getItem(position).getUrl();
String uid = getItem(position).getUid();
holder.sendmessagebtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(ChatActivity.this,MessageActivity.class);
intent.putExtra("n",name);
intent.putExtra("u",url);
intent.putExtra("uid",uid);
startActivity(intent);
}
});
}
@NonNull
@Override
public ProfileViewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.chat_profile_item,parent,false);
return new ProfileViewholder(view);
}
};
firebaseRecyclerAdapter1.startListening();
recyclerView.setAdapter(firebaseRecyclerAdapter1);
}
});
}
@Override
protected void onStart() {
super.onStart();
PermissionListener permissionListener = new PermissionListener() {
@Override
public void onPermissionGranted() {
}
@Override
public void onPermissionDenied(List<String> deniedPermissions) {
Intent intent = new Intent(ChatActivity.this,MainActivity.class);
startActivity(intent);
}
};
TedPermission.with(ChatActivity.this)
.setPermissionListener(permissionListener)
.setPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.RECORD_AUDIO)
.check();
FirebaseRecyclerOptions<All_UserMmber> options1 =
new FirebaseRecyclerOptions.Builder<All_UserMmber>()
.setQuery(profileRef,All_UserMmber.class)
.build();
FirebaseRecyclerAdapter<All_UserMmber,ProfileViewholder> firebaseRecyclerAdapter1 =
new FirebaseRecyclerAdapter<All_UserMmber, ProfileViewholder>(options1) {
@Override
protected void onBindViewHolder(@NonNull ProfileViewholder holder, int position, @NonNull All_UserMmber model) {
final String postkey = getRef(position).getKey();
holder.setProfileInchat(getApplication(),model.getName(),model.getUid(),model.getProf(),model.getUrl());
String name = getItem(position).getName();
String url = getItem(position).getUrl();
String uid = getItem(position).getUid();
holder.sendmessagebtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(ChatActivity.this,MessageActivity.class);
intent.putExtra("n",name);
intent.putExtra("u",url);
intent.putExtra("uid",uid);
startActivity(intent);
}
});
}
@NonNull
@Override
public ProfileViewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.chat_profile_item,parent,false);
return new ProfileViewholder(view);
}
};
firebaseRecyclerAdapter1.startListening();
recyclerView.setAdapter(firebaseRecyclerAdapter1);
}
public void checkIncoming(){
checkVideocallRef = database.getReference("vc");
try {
checkVideocallRef.child(currentuid).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()){
senderuid = snapshot.child("calleruid").getValue().toString();
Intent intent = new Intent(ChatActivity.this,VideoCallinComing.class);
intent.putExtra("uid",senderuid );
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}else {
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}catch (Exception e){
// Toast.makeText(context, e.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}
}
}Editor is loading...