0% found this document useful (0 votes)
72 views6 pages

Coding Login

This Java code defines a UserLogin class that extends AppCompatActivity. The class handles user authentication with Firebase Authentication. It contains UI elements like EditTexts for email and password input. It signs users in with email and password hashed with SHA-256. After successful sign in, it checks the user's role in the database ("user" or "admin") and directs them to the appropriate dashboard activity. It also supports sign in with email link if the intent contains a link.

Uploaded by

Ferdy Ansyah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views6 pages

Coding Login

This Java code defines a UserLogin class that extends AppCompatActivity. The class handles user authentication with Firebase Authentication. It contains UI elements like EditTexts for email and password input. It signs users in with email and password hashed with SHA-256. After successful sign in, it checks the user's role in the database ("user" or "admin") and directs them to the appropriate dashboard activity. It also supports sign in with email link if the intent contains a link.

Uploaded by

Ferdy Ansyah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

package com.siputra.sivoting.

Login;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputType;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
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.siputra.sivoting.Voter.DashboardVoter;
import com.siputra.sivoting.PollingMaker.DashboardPollMaker;
import com.siputra.sivoting.R;

import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import static android.view.View.GONE;

public class UserLogin extends AppCompatActivity {

private EditText user,pass;


private Button sign,reg;
private ProgressBar progressBar;
TextView lupapas;

private FirebaseAuth mAuth;


DatabaseReference reff;
String emaillink = "";

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

// emaillink =
"https://sivoting.page.link/?link=https://sivotingdatabase.firebaseapp.com/__/
auth/action?apiKey%3DAIzaSyBaAXhfcjGhGwn37q2Ud8wU9z3j9q_FDnc%26mode%3DsignIn
%26oobCode%3D56RcVGPDP4xNUPext7JZ6ytMcZb9PCQ1cOHxyezxb8wAAAFzM16p4Q%26continueUrl
%3Dhttps://siputragroup.com/finishSignUp%26lang
%3Den&apn=com.siputra.sivoting&amv&afl=https://sivotingdatabase.firebaseapp.com/
__/auth/action?apiKey%3DAIzaSyBaAXhfcjGhGwn37q2Ud8wU9z3j9q_FDnc%26mode%3DsignIn
%26oobCode%3D56RcVGPDP4xNUPext7JZ6ytMcZb9PCQ1cOHxyezxb8wAAAFzM16p4Q%26continueUrl
%3Dhttps://siputragroup.com/finishSignUp%26lang%3Den";

mAuth = FirebaseAuth.getInstance();
reg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent menuregister = new Intent(UserLogin.this, Register.class);
startActivity(menuregister);
}
});
sign.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loginUserAccount();
}
});
lupapas.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent lupapas = new Intent(UserLogin.this, ForgotPassword.class);
startActivity(lupapas);
}
});

@Override
protected void onStart() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
final EditText input = new EditText(this);
builder.setTitle("Masukan Email Kamu Untuk Masuk menggunakan LINK");
input.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
builder.setView(input);
builder.setCancelable(true);

Intent intent = getIntent();


if (intent.getData() != null){
emaillink = intent.getData().toString();
}
super.onStart();
if (emaillink != "") {
progressBar.setVisibility(View.VISIBLE);
if (mAuth.isSignInWithEmailLink(emaillink)) {
builder.setPositiveButton("OK", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mAuth.signInWithEmailLink(input.getText().toString(),
emaillink)
.addOnCompleteListener(new
OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull
Task<AuthResult> task) {
if (task.isSuccessful()) {
progressBar.setVisibility(GONE);
Intent intent2 = new
Intent(UserLogin.this, DashboardVoter.class);
startActivity(intent2);
Toast.makeText(getApplicationContext(),
"Berhasil Login Menggunakan LINK", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(),
"LINK sudah tidak berlaku!", Toast.LENGTH_LONG).show();
progressBar.setVisibility(GONE);
}

}
});
}
});
builder.setNegativeButton("Batal", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
progressBar.setVisibility(GONE);
}
});
builder.show();
}
}else{
progressBar.setVisibility(GONE);

private void initializeUI() {


user = findViewById(R.id.email);
pass = findViewById(R.id.pass);
sign = findViewById(R.id.sign);
reg = findViewById(R.id.register);
progressBar = findViewById(R.id.progressBar);
lupapas = findViewById(R.id.lupapas);
}

public void signInWithEmailLink(String emailID, String Emaillink){


//if (mAuth.isSignInWithEmailLink(emaillink))
}
public static String sha256(String base){
try {
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte hashBytes[] =
digest.digest(base.getBytes(StandardCharsets.UTF_8));
BigInteger noHash = new BigInteger(1,hashBytes);
return noHash.toString(16);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}

private void loginUserAccount() {

String email,pass1, password;


email = user.getText().toString();
pass1 =pass.getText().toString();
password = sha256(pass.getText().toString());

if(TextUtils.isEmpty(email)&&TextUtils.isEmpty(pass1)){
Toast.makeText(getApplicationContext(), "Silahkan Isi Email dan
Password", Toast.LENGTH_LONG).show();
return;
}

if (TextUtils.isEmpty(email)) {
Toast.makeText(getApplicationContext(), "Email Harus Diisi",
Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(pass1)) {
Toast.makeText(getApplicationContext(), "Password Harus Diisi",
Toast.LENGTH_LONG).show();
return;
}

progressBar.setVisibility(View.VISIBLE);

mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Toast.makeText(getApplicationContext(), "Berhasil
Login", Toast.LENGTH_LONG).show();
progressBar.setVisibility(GONE);

//bikin validasi untuk menentukan dashboard disini


FirebaseUser currentFirebaseUser =
FirebaseAuth.getInstance().getCurrentUser();
String UID = currentFirebaseUser.getUid();
reff=
FirebaseDatabase.getInstance().getReference().child("DPTSISWA").child(UID);
// final Query Onlyuser =reff.orderByChild("lvluser");
reff.addListenerForSingleValueEvent(new
ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot
dataSnapshot) {
String lvluser =
dataSnapshot.child("lvluser").getValue().toString();
Toast.makeText(getApplicationContext(),
lvluser, Toast.LENGTH_LONG).show();
if (lvluser.equals("user")) {
Intent intent = new Intent(UserLogin.this,
DashboardVoter.class);
startActivity(intent);
}
else if (lvluser.equals("admin")) {
Intent intent = new Intent(UserLogin.this,
DashboardPollMaker.class);
startActivity(intent);
}
}

@Override
public void onCancelled(@NonNull DatabaseError
databaseError) {

}
});
}
else {
Toast.makeText(getApplicationContext(), "Email atau
Password Salah !", Toast.LENGTH_LONG).show();
progressBar.setVisibility(GONE);
}
}
});
}
public void onBackPressed() {
runOnUiThread(new Runnable() {
@Override
public void run() {

if (!isFinishing()){
new AlertDialog.Builder(UserLogin.this)
.setTitle("Konfirmasi")
.setMessage("Anda yakin ingin Keluar Aplikasi?")
.setCancelable(true)
.setNegativeButton("Tidak", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
which) {

}
})
.setPositiveButton("Ya", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
which) {
Intent homeIntent = new Intent
(Intent.ACTION_MAIN);
homeIntent.addCategory(Intent.CATEGORY_HOME);

homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(homeIntent);
System.exit(1);
}
}).show();

}
}
});
}
}

You might also like