Skip to content

Commit

Permalink
Warn user that logging in enables online mode
Browse files Browse the repository at this point in the history
  • Loading branch information
MakisChristou committed Mar 26, 2023
1 parent ad8e8be commit 923c7a4
Showing 1 changed file with 130 additions and 100 deletions.
230 changes: 130 additions & 100 deletions verifit/src/main/java/com/example/verifit/ui/LoginActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
Expand Down Expand Up @@ -109,132 +111,160 @@ public void verifit_rs_login(View view)
return;
}

final LoadingDialog loadingDialog = new LoadingDialog(LoginActivity.this);
loadingDialog.loadingAlertDialog();
// Here
LayoutInflater inflater = LayoutInflater.from(LoginActivity.this);
View view1 = inflater.inflate(R.layout.import_red_warning_dialog, null);
AlertDialog alertDialog = new AlertDialog.Builder(LoginActivity.this).setView(view1).create();

UsersApi users = new UsersApi(this,getString(R.string.API_ENDPOINT), username, password);
users.login(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
TextView tv_date = view1.findViewById(R.id.tv_date);

// You are logged out
SharedPreferences sharedPreferences = new SharedPreferences(getApplicationContext());
sharedPreferences.enableOfflineMode();

// Disable caching because new data should be loaded
sharedPreferences.disableCaching();
tv_date.setText("This will erase all local data");

// Handle error
runOnUiThread(() -> {
loadingDialog.dismissDialog();
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar("Can't connect to server");
});
}
Button bt_yes3 = view1.findViewById(R.id.bt_yes3);
bt_yes3.setText("Continue");
Button bt_no3 = view1.findViewById(R.id.bt_no3);

bt_yes3.setOnClickListener(new View.OnClickListener() {
@Override
public void onResponse(Call call, Response response) throws IOException {
String responseBody = response.body().string();
SharedPreferences sharedPreferences = new SharedPreferences(getApplicationContext());
public void onClick(View view) {
alertDialog.dismiss();
final LoadingDialog loadingDialog = new LoadingDialog(LoginActivity.this);
loadingDialog.loadingAlertDialog();

runOnUiThread(() -> {
loadingDialog.dismissDialog();
});
UsersApi users = new UsersApi(LoginActivity.this,getString(R.string.API_ENDPOINT), username, password);
users.login(new Callback() {
@Override
public void onFailure(Call call, IOException e) {

if (200 == response.code())
{
sharedPreferences.enableOnlineMode(responseBody, username, password);
// You are logged out
SharedPreferences sharedPreferences = new SharedPreferences(getApplicationContext());
sharedPreferences.enableOfflineMode();

runOnUiThread(() -> {
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
intent.putExtra("message", "verifit_rs_login");
startActivity(intent);
});
}
else
{
sharedPreferences.enableOfflineMode();
// Disable caching because new data should be loaded
sharedPreferences.disableCaching();

if(response.message().equals("Unauthorized"))
{
// Handle error
runOnUiThread(() -> {
loadingDialog.dismissDialog();
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar("Invalid password");
snackBarWithMessage.showSnackbar("Can't connect to server");
});
}
else if(response.message().equals("Not Acceptable"))
{
runOnUiThread(() -> {
// Create a standard Snackbar with a dismiss button
Snackbar snackbar = Snackbar.make(((Activity) LoginActivity.this).findViewById(android.R.id.content), "Verify your email to login", Snackbar.LENGTH_SHORT);
snackbar.setAction("Resend link", new View.OnClickListener() {
@Override
public void onClick(View view) {

final LoadingDialog loadingDialog = new LoadingDialog(LoginActivity.this);
loadingDialog.loadingAlertDialog();

UsersApi usersApi = new UsersApi(LoginActivity.this,getString(R.string.API_ENDPOINT), username, "");
usersApi.requestEmailVerification(new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
@Override
public void onResponse(Call call, Response response) throws IOException {
String responseBody = response.body().string();
SharedPreferences sharedPreferences = new SharedPreferences(getApplicationContext());

runOnUiThread(() -> {
loadingDialog.dismissDialog();
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar("Can't connect to server");
});
runOnUiThread(() -> {
loadingDialog.dismissDialog();
});

}
if (200 == response.code())
{
sharedPreferences.enableOnlineMode(responseBody, username, password);

runOnUiThread(() -> {
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
intent.putExtra("message", "verifit_rs_login");
startActivity(intent);
});
}
else
{
sharedPreferences.enableOfflineMode();

if(response.message().equals("Unauthorized"))
{
runOnUiThread(() -> {
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar("Invalid password");
});
}
else if(response.message().equals("Not Acceptable"))
{
runOnUiThread(() -> {
// Create a standard Snackbar with a dismiss button
Snackbar snackbar = Snackbar.make(((Activity) LoginActivity.this).findViewById(android.R.id.content), "Verify your email to login", Snackbar.LENGTH_SHORT);
snackbar.setAction("Resend link", new View.OnClickListener() {
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
runOnUiThread(() -> {
loadingDialog.dismissDialog();
public void onClick(View view) {

final LoadingDialog loadingDialog = new LoadingDialog(LoginActivity.this);
loadingDialog.loadingAlertDialog();

UsersApi usersApi = new UsersApi(LoginActivity.this,getString(R.string.API_ENDPOINT), username, "");
usersApi.requestEmailVerification(new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {

runOnUiThread(() -> {
loadingDialog.dismissDialog();
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar("Can't connect to server");
});

}

@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
runOnUiThread(() -> {
loadingDialog.dismissDialog();
});

if(200 == response.code()){
runOnUiThread(() -> {
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar("Email Sent");
});

}
else
{
runOnUiThread(() -> {
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar(response.message().toString());
});
}
}
});

if(200 == response.code()){
runOnUiThread(() -> {
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar("Email Sent");
});

}
else
{
runOnUiThread(() -> {
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar(response.message().toString());
});
}
snackbar.dismiss();
}
});

snackbar.dismiss();
}
});

snackbar.show();

});
}
else if (response.message().equals("Not Found"))
{
runOnUiThread(() -> {
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar("Account not found");
});
snackbar.show();

});
}
else if (response.message().equals("Not Found"))
{
runOnUiThread(() -> {
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar("Account not found");
});
}
else
{
runOnUiThread(() -> {
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar(response.message().toString());
});
}
}
}
else
{
runOnUiThread(() -> {
SnackBarWithMessage snackBarWithMessage = new SnackBarWithMessage(LoginActivity.this);
snackBarWithMessage.showSnackbar(response.message().toString());
});
}
}
});
}
});

bt_no3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
alertDialog.dismiss();
}
});
alertDialog.show();

}

public boolean checkEmail(String email)
Expand Down

0 comments on commit 923c7a4

Please sign in to comment.