SHARE
TWEET

Untitled

a guest Jun 27th, 2019 64 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import android.content.Intent;
  2.             import android.os.Bundle;
  3.             import android.view.View;
  4.             import android.widget.Button;
  5.             import android.widget.EditText;
  6.  
  7.             import androidx.annotation.NonNull;
  8.             import androidx.appcompat.app.AppCompatActivity;
  9.  
  10.             import com.google.android.gms.tasks.OnCompleteListener;
  11.             import com.google.android.gms.tasks.Task;
  12.             import com.google.firebase.FirebaseApp;
  13.             import com.google.firebase.FirebaseException;
  14.             import com.google.firebase.auth.AuthResult;
  15.             import com.google.firebase.auth.FirebaseAuth;
  16.             import com.google.firebase.auth.FirebaseUser;
  17.             import com.google.firebase.auth.PhoneAuthCredential;
  18.             import com.google.firebase.auth.PhoneAuthProvider;
  19.             import com.google.firebase.database.DataSnapshot;
  20.             import com.google.firebase.database.DatabaseError;
  21.             import com.google.firebase.database.DatabaseReference;
  22.             import com.google.firebase.database.FirebaseDatabase;
  23.             import com.google.firebase.database.ValueEventListener;
  24.  
  25.             import java.util.HashMap;
  26.             import java.util.Map;
  27.             import java.util.concurrent.TimeUnit;
  28.  
  29.  
  30.             public class LoginActivity extends AppCompatActivity {
  31.  
  32.                 private EditText mPhoneNumber, mCode;
  33.                 private Button mSend;
  34.  
  35.                 private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks;
  36.  
  37.                 String mVerificationId;
  38.  
  39.                 @Override
  40.                 protected void onCreate(Bundle savedInstanceState) {
  41.                     super.onCreate(savedInstanceState);
  42.                     setContentView(R.layout.activity_main);
  43.  
  44.                     FirebaseApp.initializeApp(this);
  45.  
  46.                     userIsLoggedIn();
  47.  
  48.                     mPhoneNumber = findViewById(R.id.phoneNumber);
  49.                     mCode = findViewById(R.id.code);
  50.  
  51.                     mSend = findViewById(R.id.verify);
  52.  
  53.                     mSend.setOnClickListener(new View.OnClickListener() {
  54.                         @Override
  55.                         public void onClick(View v) {
  56.                             if(mVerificationId != null)
  57.                                 verifyPhoneNumberWithCode();
  58.                             else
  59.                                 startPhoneNumberVerification();
  60.                         }
  61.                     });
  62.  
  63.  
  64.                     mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
  65.                         @Override
  66.                         public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
  67.                             signInWithPhoneAuthCredential(phoneAuthCredential);
  68.                         }
  69.  
  70.                         @Override
  71.                         public void onVerificationFailed(FirebaseException e) {
  72.                         }
  73.  
  74.  
  75.                         @Override
  76.                         public void onCodeSent(String verificationId, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
  77.                             super.onCodeSent(verificationId, forceResendingToken);
  78.  
  79.                             mVerificationId = verificationId;
  80.                             mSend.setText("Verify Code");
  81.                         }
  82.                     };
  83.  
  84.                 }
  85.  
  86.  
  87.  
  88.                 private void verifyPhoneNumberWithCode(){
  89.                     PhoneAuthCredential credential = PhoneAuthProvider.getCredential(mVerificationId, mCode.getText().toString());
  90.                     signInWithPhoneAuthCredential(credential);
  91.                 }
  92.  
  93.                 private void signInWithPhoneAuthCredential(PhoneAuthCredential phoneAuthCredential) {
  94.                     FirebaseAuth.getInstance().signInWithCredential(phoneAuthCredential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  95.                         @Override
  96.                         public void onComplete(@NonNull Task<AuthResult> task) {
  97.                             if(task.isSuccessful()){
  98.  
  99.                                 final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
  100.  
  101.                                 if(user != null){
  102.                                             final DatabaseReference mUserDB = FirebaseDatabase.getInstance().getReference().child("user").child(user.getUid());
  103.                                             mUserDB.addListenerForSingleValueEvent(new ValueEventListener() {
  104.                                                 @Override
  105.                                                 public void onDataChange(DataSnapshot dataSnapshot) {
  106.                                                     if(!dataSnapshot.exists()){
  107.                                                         Map<String,Object> userMap = new HashMap<>();
  108.                                                         userMap.put("phone",user.getPhoneNumber());
  109.                                                         userMap.put("name",user.getPhoneNumber());
  110.                                                         mUserDB.updateChildren(userMap);
  111.  
  112.                                                     }
  113.                                                     userIsLoggedIn();
  114.                                                 }
  115.  
  116.                                                 @Override
  117.                                                 public void onCancelled(DatabaseError databaseError) {
  118.  
  119.                                                 }
  120.                                             });
  121.                                             //userIsLoggedIn();
  122.                                         }
  123.  
  124.                                     }
  125.                                 }
  126.  
  127.  
  128.  
  129.  
  130.                     });
  131.                 }
  132.  
  133.                 private void userIsLoggedIn() {
  134.                     FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
  135.                     if(user != null){
  136.                         startActivity(new Intent(getApplicationContext(), MainPageActivity.class));
  137.                         finish();
  138.                         return;
  139.                     }
  140.                 }
  141.  
  142.                 private void startPhoneNumberVerification() {
  143.                     PhoneAuthProvider.getInstance().verifyPhoneNumber(
  144.                             mPhoneNumber.getText().toString(),
  145.                             60,
  146.                             TimeUnit.SECONDS,
  147.                             this,
  148.                             mCallbacks);
  149.                 }
  150.             }
  151.      
  152. import androidx.appcompat.app.AppCompatActivity;
  153.  
  154.             import android.Manifest;
  155.             import android.content.Intent;
  156.             import android.os.Build;
  157.             import android.os.Bundle;
  158.             import android.view.View;
  159.             import android.widget.Button;
  160.             import com.google.firebase.auth.FirebaseAuth;
  161.  
  162.             public class MainPageActivity extends AppCompatActivity {
  163.  
  164.                 @Override
  165.                 protected void onCreate(Bundle savedInstanceState) {
  166.                     super.onCreate(savedInstanceState);
  167.                     setContentView(R.layout.activity_main_page);
  168.  
  169.                     Button mLogout = findViewById(R.id.logout);
  170.                 Button mFindUser = findViewById(R.id.findUser);
  171.  
  172.                     mFindUser.setOnClickListener(new View.OnClickListener(){
  173.                         @Override
  174.                         public void onClick(View v){
  175.                             startActivity(new Intent(getApplicationContext(),FindUserActivity.class));
  176.  
  177.                         }
  178.                     });
  179.  
  180.  
  181.  
  182.                     mLogout.setOnClickListener(new View.OnClickListener(){
  183.                         @Override
  184.                         public void onClick(View v){
  185.                             FirebaseAuth.getInstance().signOut();
  186.                             Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
  187.                             intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  188.                             startActivity(intent);
  189.                             finish();
  190.                             return;
  191.                         }
  192.                     });
  193.             getPermissions();
  194.                 }
  195.  
  196.                 private void getPermissions() {
  197.                     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
  198.                         requestPermissions(new String[]{Manifest.permission.WRITE_CONTACTS,Manifest.permission.READ_CONTACTS},1);
  199.                     }
  200.                 }
  201.  
  202.  
  203.             }
  204.      
  205. import androidx.appcompat.app.AppCompatActivity;
  206.             import androidx.recyclerview.widget.LinearLayoutManager;
  207.             import androidx.recyclerview.widget.RecyclerView;
  208.  
  209.             import android.database.Cursor;
  210.             import android.os.Bundle;
  211.             import android.provider.ContactsContract;
  212.             import android.telephony.TelephonyManager;
  213.             import android.widget.LinearLayout;
  214.  
  215.             import com.google.firebase.database.DataSnapshot;
  216.             import com.google.firebase.database.DatabaseError;
  217.             import com.google.firebase.database.DatabaseReference;
  218.             import com.google.firebase.database.FirebaseDatabase;
  219.             import com.google.firebase.database.Query;
  220.             import com.google.firebase.database.ValueEventListener;
  221.  
  222.             import java.util.ArrayList;
  223.  
  224.             public class FindUserActivity extends AppCompatActivity {
  225.                 private RecyclerView mUserList;
  226.                 private RecyclerView.Adapter mUserListAdapter;
  227.                 private RecyclerView.LayoutManager mUserListLayoutManager;
  228.             ArrayList<UserObject> userList,contactList;
  229.                 @Override
  230.                 protected void onCreate(Bundle savedInstanceState) {
  231.                     super.onCreate(savedInstanceState);
  232.                     setContentView(R.layout.activity_find_user);
  233.             contactList= new ArrayList<>();
  234.                     userList= new ArrayList<>();
  235.  
  236.             initializeRecyclerView();
  237.  
  238.                     getContactsList();
  239.                 }
  240.  
  241.                 private void getContactsList(){
  242.                     String ISOPrefix = getCountryISO();
  243.                     Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null);
  244.                     while(phones.moveToNext()){
  245.                         String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
  246.                         String phone = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
  247.                         phone = phone.replace("","");
  248.                         phone = phone.replace("-","");
  249.                         phone = phone.replace("(","");
  250.                         phone = phone.replace(")","");
  251.                         if(!String.valueOf(phone.charAt(0)).equals("+"))
  252.                             phone = ISOPrefix + phone;
  253.  
  254.  
  255.  
  256.                         UserObject mContact = new UserObject(name,phone);
  257.                         contactList.add(mContact);
  258.                         getUserDeatails(mContact);
  259.                     }
  260.                 }
  261.  
  262.                 private void getUserDeatails(UserObject mContact) {
  263.                     DatabaseReference mUserDB = FirebaseDatabase.getInstance().getReference().child("user");
  264.                     Query query = mUserDB.orderByChild("phone").equalTo(mContact.getPhone());
  265.                     query.addListenerForSingleValueEvent(new ValueEventListener() {
  266.                         @Override
  267.                         public void onDataChange(DataSnapshot dataSnapshot) {
  268.                             if(dataSnapshot.exists()){
  269.                                 String phone = "";
  270.                                 String name = "";
  271.                                 for(DataSnapshot childSnapshot : dataSnapshot.getChildren()){
  272.                                     if(childSnapshot.child("phone").getValue()!= null)
  273.                                         phone = childSnapshot.child("phone").getValue().toString();
  274.                                     if(childSnapshot.child("name").getValue()!= null)
  275.                                         phone = childSnapshot.child("name").getValue().toString();
  276.                                     UserObject mUser = new UserObject(name,phone);
  277.                                     userList.add(mUser);
  278.                                     mUserListAdapter.notifyDataSetChanged();
  279.                                     return;
  280.  
  281.                                 }
  282.                             }
  283.                         }
  284.  
  285.                         @Override
  286.                         public void onCancelled(DatabaseError databaseError) {
  287.  
  288.                         }
  289.                     });
  290.                 }
  291.  
  292.                 private String getCountryISO(){
  293.                     String iso =null;
  294.                 TelephonyManager telephonyManager = (TelephonyManager) getApplicationContext().getSystemService(getApplicationContext().TELEPHONY_SERVICE);
  295.                     if(telephonyManager.getNetworkCountryIso() != null)
  296.                         if(telephonyManager.getNetworkCountryIso().toString().equals(""))
  297.                             iso=telephonyManager.getNetworkCountryIso().toString();
  298.                     return CountryToPhonePrefix.getPhone(iso);
  299.             }
  300.                 private void initializeRecyclerView(){
  301.                     mUserList= findViewById(R.id.userList);
  302.                     mUserList.setNestedScrollingEnabled(false);
  303.                     mUserList.setHasFixedSize(false);
  304.                     mUserListLayoutManager = new LinearLayoutManager(getApplicationContext(), RecyclerView.VERTICAL,false);
  305.                     mUserList.setLayoutManager(mUserListLayoutManager);
  306.                     mUserListAdapter = new UserListAdapter(userList);
  307.                     mUserList.setAdapter(mUserListAdapter);
  308.                 }
  309.             }
  310.      
  311. import android.view.LayoutInflater;
  312.             import android.view.View;
  313.             import android.view.ViewGroup;
  314.             import android.widget.TextView;
  315.  
  316.             import androidx.annotation.NonNull;
  317.             import androidx.recyclerview.widget.RecyclerView;
  318.  
  319.             import java.util.ArrayList;
  320.  
  321.             public class UserListAdapter extends RecyclerView.Adapter<UserListAdapter.UserListViewHolder> {
  322.                 ArrayList<UserObject> userList;
  323.                 public UserListAdapter(ArrayList<UserObject> userList){
  324.                     this.userList=userList;
  325.                 }
  326.  
  327.                 @NonNull
  328.                 @Override
  329.                 public UserListViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  330.                     View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_user,null,false);
  331.                     RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
  332.                     layoutView.setLayoutParams(lp);
  333.                     UserListViewHolder rcv = new UserListViewHolder(layoutView);
  334.                     return rcv;
  335.                 }
  336.  
  337.                 @Override
  338.                 public void onBindViewHolder(@NonNull UserListViewHolder holder, int position) {
  339.                     holder.mName.setText(userList.get(position).getName());
  340.                     holder.mPhone.setText(userList.get(position).getPhone());
  341.  
  342.                 }
  343.  
  344.                 @Override
  345.                 public int getItemCount() {
  346.                     return userList.size();
  347.                 }
  348.  
  349.  
  350.                 public class UserListViewHolder extends RecyclerView.ViewHolder{
  351.                     public TextView mName,mPhone;
  352.                     public UserListViewHolder(View view){
  353.                         super(view);
  354.                         mName = view.findViewById(R.id.name);
  355.                         mPhone = view.findViewById(R.id.phone);
  356.  
  357.                     }
  358.  
  359.                 }
  360.             }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top