Skip to content

Instantly share code, notes, and snippets.

@malikkurosaki
Created September 23, 2018 08:31
Show Gist options
  • Save malikkurosaki/91a00f7066c33714d627740871db7006 to your computer and use it in GitHub Desktop.
Save malikkurosaki/91a00f7066c33714d627740871db7006 to your computer and use it in GitHub Desktop.
backup for ignore eror
package com.malik.rajapickup;
import android.app.Dialog;
import android.content.Intent;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
import com.esafirm.imagepicker.features.ImagePicker;
import com.firebase.ui.auth.AuthUI;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
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.ValueEventListener;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.InstanceIdResult;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import com.pedro.library.AutoPermissions;
import com.pedro.library.AutoPermissionsListener;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private FirebaseUser auth;
private List<AuthUI.IdpConfig> provider;
private Boolean terlihat = false;
private Boolean sudahLogin = false;
private int SIGNIN_CODE = 100;
private Boolean sudahUpateProfil = true;
private AlertDialog.Builder updateProfileBilder;
private View updateProfilView;
private Dialog updateProfileDialog;
private ImageView panelImageUser;
private TextView panelNameUser;
private Button panelLogin;
private Button panelLogOut;
private LinearLayout panelLay;
private ScrollView scrollLay;
private FrameLayout container;
private ImageView updateGambarProfile;
private EditText updateProfileNama;
private Button updateProfileSimpan;
private StorageReference storageReference;
private int PILIH_PHOTO = 67;
private Uri urlGambarProfil;
private DatabaseReference reference;
private String tkn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auth = FirebaseAuth.getInstance().getCurrentUser();
storageReference = FirebaseStorage.getInstance().getReference();
reference = FirebaseDatabase.getInstance().getReference();
panelImageUser = findViewById(R.id.panelImageUser);
panelNameUser = findViewById(R.id.panelNameUser);
panelLogin = findViewById(R.id.panelLogin);
panelLogOut = findViewById(R.id.panelLogOut);
panelLay = findViewById(R.id.panelLay);
scrollLay = findViewById(R.id.scrollLay);
container = findViewById(R.id.container);
updateProfileBilder = new AlertDialog.Builder(this);
updateProfilView = getLayoutInflater().inflate(R.layout.update_profil,null);
updateProfileBilder.setView(updateProfilView);
updateProfileDialog = updateProfileBilder.create();
updateGambarProfile = updateProfilView.findViewById(R.id.updateGambarProfil);
updateProfileNama = updateProfilView.findViewById(R.id.updateNamaProfil);
updateProfileSimpan = findViewById(R.id.updateProfileSimpan);
storageReference.child("user").child(auth.getUid()).child("profil.jpg").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(final Uri uri) {
Picasso.get().load(uri).into(panelImageUser, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError(Exception e) {
}
});
}
});
//onScroll action
scrollLay.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
int scrollY = scrollLay.getScrollY();
int batas = 200;
if (scrollY >= batas){
panelLay.setBackgroundColor(getResources().getColor(R.color.browser_actions_bg_grey));
}else {
panelLay.setBackgroundColor(0);
}
}
});
sudahLogin = auth != null;
terlihat = sudahLogin;
if (terlihat){
panelImageUser.setVisibility(View.VISIBLE);
panelNameUser.setVisibility(View.VISIBLE);
panelLogOut.setVisibility(View.VISIBLE);
panelLogin.setVisibility(View.GONE);
}else {
panelImageUser.setVisibility(View.GONE);
panelNameUser.setVisibility(View.GONE);
panelLogOut.setVisibility(View.GONE);
panelLogin.setVisibility(View.VISIBLE);
}
panelLogin.setOnClickListener(this);
panelLogOut.setOnClickListener(this);
updateGambarProfile.setOnClickListener(this);
panelImageUser.setOnClickListener(this);
}
// watesane
public void updatePilihGambarProfile(){
ImagePicker.create(this).start();
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.panelLogin:
keLogin();
break;
case R.id.panelLogOut:
keKeluar();
break;
case R.id.updateGambarProfil:
AutoPermissions.Companion.loadActivityPermissions(MainActivity.this, 1);
updatePilihGambarProfile();
break;
case R.id.panelImageUser:
//updateProfileDialog.show();
imagePicker();
break;
}
}
public void imagePicker(){
Intent ambilGambar = new Intent(Intent.ACTION_PICK);
ambilGambar.setType("image/*");
startActivityForResult(ambilGambar,PILIH_PHOTO);
}
public void keLogin(){
provider = Collections.singletonList(new AuthUI.IdpConfig.PhoneBuilder().build());
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(provider)
.build(),SIGNIN_CODE
);
}
public void keKeluar(){
AuthUI.getInstance().signOut(getApplicationContext()).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
finish();
startActivity(getIntent());
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//hasil permission
AutoPermissionsListener listener = new AutoPermissionsListener() {
@Override
public void onGranted(int i, String[] strings) {
}
@Override
public void onDenied(int i, String[] strings) {
}
};
AutoPermissions.Companion.parsePermissions(MainActivity.this, requestCode, permissions, listener);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode == PILIH_PHOTO && resultCode == RESULT_OK){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("tunggu sebentar");
final Dialog dialog = builder.create();
dialog.show();
assert data != null;
final Uri gambar = data.getData();
final StorageReference tempat = storageReference.child("user").child(auth.getUid()).child("profil.jpg");
UploadTask uploadTask = tempat.putFile(gambar);
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Picasso.get().load(gambar).into(panelImageUser, new Callback() {
@Override
public void onSuccess() {
dialog.dismiss();
}
@Override
public void onError(Exception e) {
}
});
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("SALAHNYA","adalah :"+e);
}
});
}
if (requestCode == SIGNIN_CODE && resultCode == RESULT_OK){
Toast.makeText(getApplicationContext(),"selamat kembali",Toast.LENGTH_LONG).show();
finish();
startActivity(getIntent());
}
super.onActivityResult(requestCode, resultCode, data);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment