🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / Android Yeni / chatleştim

 

1-) Android Yeni -  chatleştim

chatleştim

package com.example.rambo.firebasechat;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.firebase.ui.auth.AuthUI;
import com.google.android.gms.internal.nu;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseAuthException;
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.ValueEventListener;

import android.widget.ArrayAdapter;

import java.util.ArrayList;
import java.util.Arrays;


public class MainActivity extends AppCompatActivity {
    Button
btn_ekle;
    Button
btn_gor;
    Button
btn_nesne_ekle;
    Button
btn_nesne_gor;
    Button
btn_cikis;
    Button
btn_gonder_mesaj;

    EditText
et_isim;
    EditText
et_isim1;
    EditText
et_yas;
    TextView
tv_gor;
    TextView
nesne_gelenler;

    FirebaseDatabase
db;
    FirebaseAuth
mFirebaseAuth;
    FirebaseAuth.AuthStateListener
mAuthStateListener;
    
public static final int RC_SIGN_IN = 1;

    
public static String telefonu = "+905511472017";
    
public static String telefonum = "+905511472017";
    Spinner
sp_gelentelefon;
    Spinner
sp_gelenmesaj;

    
@Override
    
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        
super.onActivityResult(requestCode, resultCode, data);
        
if (requestCode == RC_SIGN_IN) {
            
if (requestCode == RESULT_OK) {
                Toast.
makeText(this, "giriş yapıldı", Toast.LENGTH_SHORT).show();
            }
else if (requestCode == RESULT_CANCELED) {
                finish();
            }
        }
else {

        }
    }

    
@Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        setContentView(R.layout.
activity_main);


        
btn_ekle = (Button) findViewById(R.id.btn_ekle);
        
btn_gonder_mesaj = (Button) findViewById(R.id.btn_gonder_mesaj);
        
btn_cikis = (Button) findViewById(R.id.btn_cikis);
        
sp_gelentelefon = (Spinner) findViewById(R.id.sp_gelentelefon);
        
sp_gelenmesaj = (Spinner) findViewById(R.id.sp_gelenmesaj);

        
et_isim = (EditText) findViewById(R.id.et_isim);
        
et_isim1 = (EditText) findViewById(R.id.et_isim1);

        
db = FirebaseDatabase.getInstance(); // firebase baglandı
        
mFirebaseAuth = FirebaseAuth.getInstance();

        
mAuthStateListener = new FirebaseAuth.AuthStateListener() {
            
@Override
            
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
                
if (firebaseUser != null) {// giriş yaptı ise
                    //firebaseUser.getDisplayName(); ismini profil resmini felan alabiliriz url'sini
                    
telefonEkle(firebaseUser.getPhoneNumber());
                    
telefonum=firebaseUser.getPhoneNumber();
                    Toast.
makeText(MainActivity.this, "giriş yapti", Toast.LENGTH_SHORT).show();
                }
else { // giriş yapmadı ise --> kaydol ekranı
                    
startActivityForResult(// yukarıda ovveride ettim metodu
                            
AuthUI.getInstance()
                                    .createSignInIntentBuilder()
                                    .setIsSmartLockEnabled(
false)// otomatik hemen gitmesin id,şifre
                                    
.setAvailableProviders(
                                            Arrays.
asList(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build(),
                                                    
new AuthUI.IdpConfig.Builder(AuthUI.PHONE_VERIFICATION_PROVIDER).build(),
                                                    
new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(),
                                                    
new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build(),
                                                    
new AuthUI.IdpConfig.Builder(AuthUI.TWITTER_PROVIDER).build()))
                                    .build(),
                            
RC_SIGN_IN);
                }
            }
        };
        
btn_ekle.setOnClickListener(new View.OnClickListener() {
            
@Override
            
public void onClick(View view) {
                
//  yapilacakEkle(et_isim.getText().toString());
                
mesajGonder(telefonum,et_isim.getText().toString(),et_isim1.getText().toString());//telefona
            
}


        });




        
btn_cikis.setOnClickListener(new View.OnClickListener() {
            
@Override
            
public void onClick(View view) {
                FirebaseAuth.
getInstance().signOut();
            }
        });
    }

    
private void mesajGonder(String gonderen_telefon,String gonderilen_telefon,String mesaj) {
        TelefonOda nesne =
new TelefonOda(gonderen_telefon, mesaj);
        DatabaseReference dbRef =
db.getReference(gonderilen_telefon);
        String key = dbRef.push().getKey();
        DatabaseReference dbRefKeyli =
db.getReference(gonderilen_telefon + "//" + key);
        dbRefKeyli.setValue(nesne);
    }

    
@Override
    
protected void onResume() {
        
super.onResume();
        
mFirebaseAuth.addAuthStateListener(mAuthStateListener);
    }

    String
telefon_varmi = "yok";
    DatabaseReference
dbRef;

    
public void telefonEkle(String telefon) {
        
telefonu = telefon;
        
telefon_varmi = "yok";
        
dbRef = db.getReference("telefon");


        
dbRef.addValueEventListener(new ValueEventListener() {
            
@Override
            
public void onDataChange(DataSnapshot dataSnapshot) {
                Iterable<DataSnapshot> keys = dataSnapshot.getChildren();
                
for (DataSnapshot key : keys) {
                    
if (key.getValue().toString().equals(telefonu)) {
                        
telefon_varmi = "var";
                    }
                }
                
if (telefon_varmi.equals("yok")) {
                    DatabaseReference dbRefyeni =
db.getReference("telefon/" + dbRef.push().getKey());
                    dbRefyeni.setValue(
telefonu);
                }
                
telefon_varmi = "yok";
            }

            
@Override
            
public void onCancelled(DatabaseError databaseError) {

            }
        });

        telefonOdaOlustur(
telefonu);
    }

    
private void telefonOdaOlustur(String telefon) {
        TelefonOda nesne =
new TelefonOda(telefon, "varsayilan mesaj");
        DatabaseReference dbRef =
db.getReference(telefon);
        String key = dbRef.push().getKey();
        DatabaseReference dbRefKeyli =
db.getReference(telefon + "//" + key);
        dbRefKeyli.setValue(nesne);
        dbRefKeyli.onDisconnect();
        odayiDinle(telefon);
    }

    ArrayList<String>
telefonlar = null;
    ArrayList<String>
mesajlar = null;
    ArrayAdapter<String>
adp2 = null, adp3 = null;

    
private void odayiDinle(String telefon) {
        
telefonlar = new ArrayList<String>();
        
mesajlar = new ArrayList<String>();
        DatabaseReference dbRef =
db.getReference(telefon); // tum cocukları getirir
        
dbRef.addValueEventListener(new ValueEventListener() { // addListenerForSingleValueEvent --> realtime çalışmaz boyle yazarsan sadece getirir
            
@Override
            
public void onDataChange(DataSnapshot dataSnapshot) {
                
for (DataSnapshot gelenler : dataSnapshot.getChildren()) {
                    
if (gelenler.getValue(TelefonOda.class).getTelefon() != null) {
                        
telefonlar.add(gelenler.getValue(TelefonOda.class).getTelefon());
                        
mesajlar.add(gelenler.getValue(TelefonOda.class).getMesaj());
                    }

                }
                
adp2 = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, telefonlar);

                
adp2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

                
sp_gelentelefon.setAdapter(adp2);

                
adp3 = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, mesajlar);

                
adp3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

                
sp_gelenmesaj.setAdapter(adp3);
            }

            
@Override
            
public void onCancelled(DatabaseError databaseError) {

            }
        });

    }

    
@Override
    
protected void onPause() {
        
super.onPause();
        
if (mAuthStateListener != null) {
            
mFirebaseAuth.removeAuthStateListener(mAuthStateListener);
        }
    }

    
private void yapilacakEkle(String isim) {
       
/* // günceller
        DatabaseReference dbRef=db.getReference("yapilacaklar");
        dbRef.setValue(isim);
        */

        
DatabaseReference dbRef = db.getReference("yapilacaklar");
        String key = dbRef.push().getKey();
        DatabaseReference dbRefyeni =
db.getReference("yapilacaklar/" + key);
        dbRefyeni.setValue(isim);


    }

    
private void yapilacaklariGor() {
        DatabaseReference dbRef =
db.getReference("yapilacaklar");
        
// dbRef.addValueEventListener();//uygulama açıldıktan sonra veri tabanındaki verileri yüklenir.. uygulama açıldıktan sonra veri tabanındaki değişiklik uygulamaya anında yansır
        // dbRef.addListenerForSingleValueEvent(); // uygulama açıldıktan sonra veri tabanındaki verileri yüklenir.. anında yansıma yok
        // dbRef.addChildEventListener();// child yani dalları dinler

        
dbRef.addValueEventListener(new ValueEventListener() {
            
@Override
            
public void onDataChange(DataSnapshot dataSnapshot) {
                
tv_gor.setText("");
                Iterable<DataSnapshot> keys = dataSnapshot.getChildren();
                
for (DataSnapshot key : keys) {
                    
tv_gor.append(key.getValue().toString() + "\n");
                }
            }

            
@Override
            
public void onCancelled(DatabaseError databaseError) {

            }
        });
    }

    
public void kullaniciKayitEt(String isim, int yas) {
        Kullanici nesne =
new Kullanici(isim, yas);
        DatabaseReference dbRef =
db.getReference("Kullanicilar");
        String key = dbRef.push().getKey();
        DatabaseReference dbRefKeyli =
db.getReference("Kullanicilar/" + key);
        dbRefKeyli.setValue(nesne);
    }

    
public void kullaniciGor() {
        
nesne_gelenler.setText("");
        DatabaseReference dbRef =
db.getReference("Kullanicilar"); // tum cocukları getirir
        
dbRef.addListenerForSingleValueEvent(new ValueEventListener() { // addListenerForSingleValueEvent --> realtime çalışmaz boyle yazarsan sadece getirir
            
@Override
            
public void onDataChange(DataSnapshot dataSnapshot) {
                
for (DataSnapshot gelenler : dataSnapshot.getChildren()) {
                    
nesne_gelenler.append(gelenler.getValue(Kullanici.class).getIsim() + "\n");
                }
            }

            
@Override
            
public void onCancelled(DatabaseError databaseError) {

            }
        });

    }
}

 2021 Ocak 18 Pazartesi
 445