Skip to content

Instantly share code, notes, and snippets.

@malikkurosaki
Last active November 13, 2018 12:36
Show Gist options
  • Select an option

  • Save malikkurosaki/49dffbc143c081f0f3df01b6c17819ad to your computer and use it in GitHub Desktop.

Select an option

Save malikkurosaki/49dffbc143c081f0f3df01b6c17819ad to your computer and use it in GitHub Desktop.
malikkurosaki firebase ui recyclerview
package com.malik.rajanepikep;
public class Dapat {
private String nama;
private String alamat;
public Dapat(){}
public Dapat(String nama, String alamat) {
this.nama = nama;
this.alamat = alamat;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getAlamat() {
return alamat;
}
public void setAlamat(String alamat) {
this.alamat = alamat;
}
}
package com.malik.rajanepikep;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.firebase.ui.auth.AuthUI;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import java.util.Collections;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private static final int RC_SIGN_IN = 123;
private List<AuthUI.IdpConfig> providers;
private DatabaseReference reference;
private FirebaseRecyclerAdapter<Dapat,MyAdapter> adapter;
public MainActivity() {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
reference = FirebaseDatabase.getInstance().getReference();
Boolean sudahMasuk = user != null;
providers = Collections.singletonList(
new AuthUI.IdpConfig.PhoneBuilder().build()
);
final Button masuk = findViewById(R.id.tombol1);
Button keluar = findViewById(R.id.keluar);
if (sudahMasuk){
masuk.setVisibility(View.GONE);
keluar.setVisibility(View.VISIBLE);
String phoneNumber = user.getPhoneNumber();
Toast.makeText(getApplicationContext(), phoneNumber,Toast.LENGTH_LONG).show();
}else {
masuk.setVisibility(View.VISIBLE);
keluar.setVisibility(View.GONE);
masuk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
login();
}
});
}
keluar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AuthUI.getInstance().signOut(getApplicationContext())
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
finish();
startActivity(getIntent());
}
});
}
});
Query query = FirebaseDatabase.getInstance().getReference().child("user");
FirebaseRecyclerOptions<Dapat> options = new FirebaseRecyclerOptions.Builder<Dapat>()
.setQuery(reference,Dapat.class).build();
adapter = new FirebaseRecyclerAdapter<Dapat, MyAdapter>(options) {
@Override
protected void onBindViewHolder(@NonNull MyAdapter holder, int position, @NonNull Dapat model) {
holder.nama.setText(model.getNama());
holder.alamat.setText(model.getAlamat());
Toast.makeText(getApplicationContext(),model.getAlamat(),Toast.LENGTH_LONG).show();
}
@NonNull
@Override
public MyAdapter onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.orang,viewGroup,false);
return new MyAdapter(view);
}
};
RecyclerView recyclerView = findViewById(R.id.wadah);
LinearLayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(layoutManager);
adapter.startListening();
recyclerView.setAdapter(adapter);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN){
if (resultCode == RESULT_OK){
Toast.makeText(getApplicationContext(),"anda masuk ya",Toast.LENGTH_LONG).show();
finish();
startActivity(getIntent());
}else {
Toast.makeText(getApplicationContext(),"gagal masuk",Toast.LENGTH_LONG).show();
finish();
startActivity(getIntent());
}
}
}
public void login(){
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(providers)
.setLogo(R.drawable.mobil)
.build(),RC_SIGN_IN
);
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
adapter.stopListening();
}
}
package com.malik.rajanepikep;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;
public class MyAdapter extends RecyclerView.ViewHolder {
public TextView nama,alamat;
public MyAdapter(@NonNull View itemView) {
super(itemView);
nama = itemView.findViewById(R.id.namanya);
alamat = itemView.findViewById(R.id.alamatnya);
}
}
@malikkurosaki
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment