Added the Alexandre's updated code.
|
@ -8,11 +8,13 @@
|
|||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:label="Keyless Auto"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity android:name=".add"></activity>
|
||||
<activity android:name=".Apps"></activity>
|
||||
<activity android:name=".Email" />
|
||||
<activity android:name=".add" />
|
||||
<activity android:name=".About" />
|
||||
<activity android:name=".Support" />
|
||||
<activity android:name=".Password" />
|
||||
|
|
BIN
UI/app/src/main/ic_launcher-web.png
Normal file
After Width: | Height: | Size: 28 KiB |
|
@ -22,4 +22,8 @@ public class About extends AppCompatActivity {
|
|||
startActivity(new Intent(getApplicationContext(), Login.class));
|
||||
finish();
|
||||
}
|
||||
|
||||
public void back(View view){
|
||||
startActivity(new Intent(getApplicationContext(), Settings.class));
|
||||
}
|
||||
}
|
||||
|
|
29
UI/app/src/main/java/com/example/capstone/Apps.java
Normal file
|
@ -0,0 +1,29 @@
|
|||
package com.example.capstone;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
|
||||
public class Apps extends AppCompatActivity {
|
||||
FirebaseAuth fAuth;
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_apps);
|
||||
fAuth = FirebaseAuth.getInstance();
|
||||
}
|
||||
|
||||
public void logout(View view){
|
||||
fAuth.signOut();
|
||||
startActivity(new Intent(getApplicationContext(), Login.class));
|
||||
finish();
|
||||
}
|
||||
|
||||
public void back(View view){
|
||||
startActivity(new Intent(getApplicationContext(), homepage.class));
|
||||
}
|
||||
}
|
|
@ -129,4 +129,8 @@ public class Drivers extends AppCompatActivity{
|
|||
startActivity(new Intent(getApplicationContext(), Login.class));
|
||||
finish();
|
||||
}
|
||||
|
||||
public void back(View view){
|
||||
startActivity(new Intent(getApplicationContext(), Settings.class));
|
||||
}
|
||||
}
|
||||
|
|
59
UI/app/src/main/java/com/example/capstone/Email.java
Normal file
|
@ -0,0 +1,59 @@
|
|||
package com.example.capstone;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnFailureListener;
|
||||
import com.google.android.gms.tasks.OnSuccessListener;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.auth.FirebaseUser;
|
||||
import com.google.firebase.firestore.FirebaseFirestore;
|
||||
|
||||
public class Email extends AppCompatActivity {
|
||||
FirebaseAuth fauth;
|
||||
FirebaseFirestore fstore;
|
||||
Button resend, con;
|
||||
FirebaseUser user;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_email);
|
||||
|
||||
fauth = FirebaseAuth.getInstance();
|
||||
fstore = FirebaseFirestore.getInstance();
|
||||
resend = findViewById(R.id.resend);
|
||||
con = findViewById(R.id.con);
|
||||
user = fauth.getCurrentUser();
|
||||
|
||||
con.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
startActivity(new Intent(getApplicationContext(), Login.class));
|
||||
}
|
||||
});
|
||||
|
||||
resend.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
user.sendEmailVerification().addOnSuccessListener(new OnSuccessListener<Void>() {
|
||||
public void onSuccess(Void aVoid) {
|
||||
Toast.makeText(Email.this, "Verification Email has been sent.", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}).addOnFailureListener(new OnFailureListener() {
|
||||
@Override
|
||||
public void onFailure(@NonNull Exception e) {
|
||||
Toast.makeText(Email.this, "Please use valid Email address", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
|
@ -125,4 +125,8 @@ public class Enrollment extends AppCompatActivity {
|
|||
|
||||
|
||||
}
|
||||
|
||||
public void back(View view){
|
||||
startActivity(new Intent(getApplicationContext(), Settings.class));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
package com.example.capstone;
|
||||
|
||||
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.TextUtils;
|
||||
|
@ -13,14 +15,17 @@ import android.widget.TextView;
|
|||
import android.widget.Toast;
|
||||
|
||||
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.AuthResult;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.auth.FirebaseUser;
|
||||
|
||||
public class Login extends AppCompatActivity {
|
||||
private EditText email, password;
|
||||
private Button save;
|
||||
private TextView account;
|
||||
private TextView account, pass;
|
||||
FirebaseAuth fAuth;
|
||||
private String em, pw;
|
||||
|
||||
|
@ -33,6 +38,8 @@ public class Login extends AppCompatActivity {
|
|||
password = (EditText) findViewById(R.id.password);
|
||||
save = (Button) findViewById(R.id.signin);
|
||||
account = findViewById(R.id.account);
|
||||
pass = findViewById(R.id.pass);
|
||||
|
||||
fAuth = FirebaseAuth.getInstance();
|
||||
|
||||
account.setOnClickListener(new View.OnClickListener() {
|
||||
|
@ -42,6 +49,43 @@ public class Login extends AppCompatActivity {
|
|||
}
|
||||
});
|
||||
|
||||
pass.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
final EditText mail = new EditText(v.getContext());
|
||||
final AlertDialog.Builder passwordReset = new AlertDialog.Builder(v.getContext());
|
||||
passwordReset.setTitle("Reset Password?");
|
||||
passwordReset.setMessage("Don't worry! Just fill in your email and we'll send you a link to reset your password.");
|
||||
passwordReset.setView(mail);
|
||||
passwordReset.setPositiveButton("Reset password", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
String mail2 = mail.getText().toString();
|
||||
fAuth.sendPasswordResetEmail(mail2).addOnSuccessListener(new OnSuccessListener<Void>() {
|
||||
@Override
|
||||
public void onSuccess(Void aVoid) {
|
||||
Toast.makeText(Login.this, "Reset password link has been sent to your email.", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}).addOnFailureListener(new OnFailureListener() {
|
||||
@Override
|
||||
public void onFailure(@NonNull Exception e) {
|
||||
Toast.makeText(Login.this, "Error! Email not sent "+ e.getMessage(), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
passwordReset.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
passwordReset.create().show();
|
||||
}
|
||||
});
|
||||
|
||||
save.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -62,8 +106,13 @@ public class Login extends AppCompatActivity {
|
|||
@Override
|
||||
public void onComplete(@NonNull Task<AuthResult> task) {
|
||||
if(task.isSuccessful()){
|
||||
Toast.makeText(Login.this, "Successful Login", Toast.LENGTH_LONG).show();
|
||||
openHomepage();
|
||||
FirebaseUser fuser = fAuth.getCurrentUser();
|
||||
if(fuser != null && fuser.isEmailVerified()){
|
||||
Toast.makeText(Login.this, "Successful Login", Toast.LENGTH_LONG).show();
|
||||
openHomepage();
|
||||
} else {
|
||||
startActivity(new Intent(getApplicationContext(), Email.class));
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(Login.this, task.getException().toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
|
|
@ -1,20 +1,58 @@
|
|||
package com.example.capstone;
|
||||
|
||||
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.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnFailureListener;
|
||||
import com.google.android.gms.tasks.OnSuccessListener;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
|
||||
public class Password extends AppCompatActivity {
|
||||
FirebaseAuth fAuth;
|
||||
private Button reset, backb;
|
||||
private EditText email;
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_password);
|
||||
fAuth = FirebaseAuth.getInstance();
|
||||
email = (EditText) findViewById(R.id.email);
|
||||
reset = (Button) findViewById(R.id.Resetpassword);
|
||||
backb = (Button) findViewById(R.id.backb);
|
||||
|
||||
reset.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
String mail = email.getText().toString();
|
||||
fAuth.sendPasswordResetEmail(mail).addOnSuccessListener(new OnSuccessListener<Void>() {
|
||||
@Override
|
||||
public void onSuccess(Void aVoid) {
|
||||
Toast.makeText(Password.this, "Reset password link has been sent to your email.", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}).addOnFailureListener(new OnFailureListener() {
|
||||
@Override
|
||||
public void onFailure(@NonNull Exception e) {
|
||||
Toast.makeText(Password.this, "Error! Email not sent "+ e.getMessage(), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
backb.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
startActivity(new Intent(getApplicationContext(), Settings.class));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void logout(View view){
|
||||
|
@ -22,4 +60,8 @@ public class Password extends AppCompatActivity {
|
|||
startActivity(new Intent(getApplicationContext(), Login.class));
|
||||
finish();
|
||||
}
|
||||
|
||||
public void back(View view){
|
||||
startActivity(new Intent(getApplicationContext(), Settings.class));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,4 +67,8 @@ public class Settings extends AppCompatActivity {
|
|||
startActivity(new Intent(getApplicationContext(), Login.class));
|
||||
finish();
|
||||
}
|
||||
|
||||
public void back(View view){
|
||||
startActivity(new Intent(getApplicationContext(), homepage.class));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,4 +23,8 @@ public class Support extends AppCompatActivity {
|
|||
startActivity(new Intent(getApplicationContext(), Login.class));
|
||||
finish();
|
||||
}
|
||||
|
||||
public void back(View view){
|
||||
startActivity(new Intent(getApplicationContext(), Settings.class));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,16 +4,15 @@ public class User {
|
|||
|
||||
private String Firstname;
|
||||
private String Lastname;
|
||||
private Long phone;
|
||||
private String phone;
|
||||
private String email;
|
||||
private String password;
|
||||
|
||||
public User(String fn, String ln, Long ph, String em, String pw) {
|
||||
public User(String fn, String ln, String ph, String em) {
|
||||
Firstname = fn;
|
||||
Lastname = ln;
|
||||
phone = ph;
|
||||
email = em;
|
||||
password = pw;
|
||||
|
||||
}
|
||||
|
||||
public String getFirstname() {
|
||||
|
@ -32,11 +31,11 @@ public class User {
|
|||
Lastname = lastname;
|
||||
}
|
||||
|
||||
public Long getPhone() {
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public void setPhone(Long phone) {
|
||||
public void setPhone(String phone) {
|
||||
this.phone = phone;
|
||||
}
|
||||
|
||||
|
@ -48,11 +47,4 @@ public class User {
|
|||
this.email = email;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,8 @@ import com.google.android.gms.tasks.OnSuccessListener;
|
|||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.auth.AuthResult;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.FirebaseDatabase;
|
||||
import com.google.firebase.firestore.DocumentReference;
|
||||
import com.google.firebase.firestore.DocumentSnapshot;
|
||||
import com.google.firebase.firestore.EventListener;
|
||||
|
@ -36,6 +38,7 @@ public class add extends AppCompatActivity {
|
|||
String userID;
|
||||
int numOfDrivers;
|
||||
private String fn, ln, em, ph;
|
||||
DatabaseReference reff;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
@ -118,6 +121,11 @@ public class add extends AppCompatActivity {
|
|||
public void onSuccess(Void aVoid) {
|
||||
}
|
||||
});
|
||||
reff = FirebaseDatabase.getInstance().getReference().child("signal");
|
||||
reff.child("2").child("E-Mail").setValue(em);
|
||||
reff.child("2").child("First Name").setValue(fn);
|
||||
reff.child("2").child("Last Name").setValue(ln);
|
||||
reff.child("2").child("Phone").setValue(ph);
|
||||
openDriver();
|
||||
}
|
||||
});
|
||||
|
@ -152,4 +160,8 @@ public class add extends AppCompatActivity {
|
|||
startActivity(new Intent(getApplicationContext(), Login.class));
|
||||
finish();
|
||||
}
|
||||
|
||||
public void back(View view){
|
||||
startActivity(new Intent(getApplicationContext(), Drivers.class));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.example.capstone;
|
|||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
@ -11,6 +12,8 @@ import android.widget.EditText;
|
|||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatDialogFragment;
|
||||
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
|
||||
public class addDriver extends AppCompatDialogFragment {
|
||||
private EditText fn, ln, ph, em;
|
||||
private addDriverListener listener;
|
||||
|
@ -59,4 +62,5 @@ public class addDriver extends AppCompatDialogFragment {
|
|||
public interface addDriverListener{
|
||||
void applyTexts(String fn, String ln, String ph, String em);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ import java.util.HashMap;
|
|||
|
||||
public class homepage extends AppCompatActivity {
|
||||
FirebaseAuth fAuth;
|
||||
private Button setting, poweron, alarmoff;
|
||||
private Button setting, poweron, alarmoff, apps;
|
||||
DatabaseReference reff;
|
||||
Signal sig;
|
||||
int check = 0;
|
||||
|
@ -39,6 +39,7 @@ public class homepage extends AppCompatActivity {
|
|||
setting = findViewById(R.id.settings);
|
||||
poweron = findViewById(R.id.poweron);
|
||||
alarmoff = findViewById(R.id.alarmoff);
|
||||
apps = findViewById(R.id.apps);
|
||||
at = findViewById(R.id.alarmtitle3);
|
||||
a = findViewById(R.id.alarm);
|
||||
et = findViewById(R.id.enginetitle3);
|
||||
|
@ -58,6 +59,14 @@ public class homepage extends AppCompatActivity {
|
|||
}
|
||||
});
|
||||
|
||||
apps.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
startActivity(new Intent(getApplicationContext(), Apps.class));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
poweron.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -103,4 +112,9 @@ public class homepage extends AppCompatActivity {
|
|||
startActivity(new Intent(getApplicationContext(), Login.class));
|
||||
finish();
|
||||
}
|
||||
|
||||
public void back(View view){
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
package com.example.capstone;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import android.content.Intent;
|
||||
|
@ -16,14 +20,22 @@ import android.widget.TextView;
|
|||
import android.widget.Toast;
|
||||
|
||||
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.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.google.firebase.firestore.DocumentReference;
|
||||
import com.google.firebase.firestore.DocumentSnapshot;
|
||||
import com.google.firebase.firestore.EventListener;
|
||||
import com.google.firebase.firestore.FirebaseFirestore;
|
||||
import com.google.firebase.firestore.FirebaseFirestoreException;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
@ -34,9 +46,11 @@ private Button save;
|
|||
FirebaseAuth fAuth;
|
||||
private TextView account;
|
||||
private String fn, ln, em, pw, ph;
|
||||
private boolean check;
|
||||
private boolean check, check2, check3, check4;
|
||||
FirebaseFirestore fstore;
|
||||
String userID;
|
||||
DatabaseReference reff, sigR;
|
||||
private String uCount;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
@ -52,6 +66,7 @@ String userID;
|
|||
fAuth = FirebaseAuth.getInstance();
|
||||
account = findViewById(R.id.account1);
|
||||
fstore = FirebaseFirestore.getInstance();
|
||||
|
||||
account.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -90,7 +105,7 @@ String userID;
|
|||
}
|
||||
|
||||
if(ph.length() < 10){
|
||||
phone.setError("Invalid phone number");
|
||||
phone.setError("Invalid phone number length");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -105,15 +120,42 @@ String userID;
|
|||
}
|
||||
|
||||
if(pw.length() < 6){
|
||||
password.setError("Password must be more than 6 characters.");
|
||||
password.setError("Password must be minumum of 6 characters.");
|
||||
return;
|
||||
}
|
||||
|
||||
check2 = FindUpperCase(pw);
|
||||
if(!check2){
|
||||
password.setError("Password must contain one uppercase letter");
|
||||
return;
|
||||
}
|
||||
|
||||
check3 = FindNumber(pw);
|
||||
if(!check3){
|
||||
password.setError("Password must contain one number");
|
||||
return;
|
||||
}
|
||||
|
||||
check4 = FindSpecialCharacter(pw);
|
||||
if(!check4){
|
||||
password.setError("Password must contain one special character");
|
||||
return;
|
||||
}
|
||||
fAuth.createUserWithEmailAndPassword(em, pw).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<AuthResult> task) {
|
||||
if(task.isSuccessful()){
|
||||
Toast.makeText(signup.this, "Successful Registration", Toast.LENGTH_LONG).show();
|
||||
FirebaseUser fuser = fAuth.getCurrentUser();
|
||||
fuser.sendEmailVerification().addOnSuccessListener(new OnSuccessListener<Void>() {
|
||||
public void onSuccess(Void aVoid) {
|
||||
Toast.makeText(signup.this, "Successful Registration. Verification Email has been sent.", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}).addOnFailureListener(new OnFailureListener() {
|
||||
@Override
|
||||
public void onFailure(@NonNull Exception e) {
|
||||
Toast.makeText(signup.this, "Please use valid Email address", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
userID = fAuth.getCurrentUser().getUid();
|
||||
DocumentReference documentReference = fstore.collection("users").document(userID);
|
||||
Map<String,Object> user = new HashMap<>();
|
||||
|
@ -127,7 +169,28 @@ String userID;
|
|||
public void onSuccess(Void aVoid) {
|
||||
}
|
||||
});
|
||||
openHomepage();
|
||||
|
||||
reff = FirebaseDatabase.getInstance().getReference().child("signal");
|
||||
|
||||
/*DocumentReference noteRef = fstore.document("UserNum/Num");
|
||||
noteRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
|
||||
@Override
|
||||
public void onEvent(@Nullable DocumentSnapshot value, @Nullable FirebaseFirestoreException error) {
|
||||
if (value.exists()) {
|
||||
uCount = value.getString("UNum");
|
||||
}
|
||||
}
|
||||
});
|
||||
Map<String, Object> note = new HashMap<>();
|
||||
note.put("UNum", String.valueOf(uCount+1));
|
||||
noteRef.set(note);*/
|
||||
|
||||
reff.child("2").child("E-Mail").setValue(em);
|
||||
reff.child("2").child("First Name").setValue(fn);
|
||||
reff.child("2").child("Last Name").setValue(ln);
|
||||
reff.child("2").child("Phone").setValue(ph);
|
||||
|
||||
openEmail();
|
||||
} else {
|
||||
Toast.makeText(signup.this, task.getException().toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
@ -137,8 +200,8 @@ String userID;
|
|||
});
|
||||
}
|
||||
|
||||
public void openHomepage() {
|
||||
Intent intent = new Intent(this, homepage.class);
|
||||
public void openEmail() {
|
||||
Intent intent = new Intent(this, Email.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
|
@ -153,4 +216,39 @@ String userID;
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean FindUpperCase(String str){
|
||||
int count = 0;
|
||||
for(int i = 0; i<str.length(); i++){
|
||||
if(Character.isUpperCase(str.charAt(i))){
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if(count >= 1){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean FindNumber(String str){
|
||||
int count = 0;
|
||||
for(int i = 0; i<str.length(); i++){
|
||||
if(Character.isDigit(str.charAt(i))){
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if(count >= 1){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean FindSpecialCharacter(String s) {
|
||||
Pattern p = Pattern.compile("[^A-Za-z0-9]");
|
||||
Matcher m = p.matcher(s);
|
||||
boolean b = m.find();
|
||||
return b;
|
||||
}
|
||||
}
|
||||
|
|
5
UI/app/src/main/res/drawable/ic_arrow.xml
Normal file
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
|
||||
</vector>
|
|
@ -1,170 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path
|
||||
android:fillColor="#008577"
|
||||
android:pathData="M0,0h108v108h-108z" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M9,0L9,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,0L19,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M29,0L29,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M39,0L39,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M49,0L49,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M59,0L59,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M69,0L69,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M79,0L79,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M89,0L89,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M99,0L99,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,9L108,9"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,19L108,19"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,29L108,29"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,39L108,39"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,49L108,49"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,59L108,59"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,69L108,69"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,79L108,79"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,89L108,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,99L108,99"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,29L89,29"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,39L89,39"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,49L89,49"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,59L89,59"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,69L89,69"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,79L89,79"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M29,19L29,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M39,19L39,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M49,19L49,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M59,19L59,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M69,19L69,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M79,19L79,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
</vector>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient
|
||||
android:startColor="#1D3790"
|
||||
android:endColor="#23252B"
|
||||
android:angle="270"/>
|
||||
</shape>
|
5
UI/app/src/main/res/drawable/ic_photo.xml
Normal file
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z"/>
|
||||
</vector>
|
5
UI/app/src/main/res/drawable/ic_picture.xml
Normal file
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M19,7h-8v6h8L19,7zM21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,1.98 2,1.98h18c1.1,0 2,-0.88 2,-1.98L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19.01L3,19.01L3,4.98h18v14.03z"/>
|
||||
</vector>
|
5
UI/app/src/main/res/drawable/ic_wireless.xml
Normal file
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M15,9L9,9c-0.55,0 -1,0.45 -1,1v12c0,0.55 0.45,1 1,1h6c0.55,0 1,-0.45 1,-1L16,10c0,-0.55 -0.45,-1 -1,-1zM12,15c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM7.05,6.05l1.41,1.41C9.37,6.56 10.62,6 12,6s2.63,0.56 3.54,1.46l1.41,-1.41C15.68,4.78 13.93,4 12,4s-3.68,0.78 -4.95,2.05zM12,0C8.96,0 6.21,1.23 4.22,3.22l1.41,1.41C7.26,3.01 9.51,2 12,2s4.74,1.01 6.36,2.64l1.41,-1.41C17.79,1.23 15.04,0 12,0z"/>
|
||||
</vector>
|
|
@ -10,16 +10,30 @@
|
|||
<include
|
||||
layout="@layout/toolbar"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/ebouttitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginBottom="630dp"
|
||||
android:gravity="center"
|
||||
android:text="About us"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="30dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/ebouttitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginBottom="630dp"
|
||||
android:gravity="center"
|
||||
android:text="About us"
|
||||
android:layout_width="384dp"
|
||||
android:layout_height="607dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="Keyless Auto Vehicle Anti-Theft Facial Recognition System\n\nComputer Engineering capstone 2020-2021\n\nVehicle Anti-Theft Facial Recognition System is designed to prevent burglary using facial recognition system. Hardware uses Raspberry Pi 4 and software uses the Python. The user interface of software is based on android studio. The administrators can choose their option for adding a new driver, delete the current driver, and update the face data of the current driver. The camera is going to be connected to a Raspberry Pi 4 board which is used for taking the picture of a user's face. Then the Raspberry Pi will use OpenCV library to recognize the user's face.\n\nCreated by: Alexandre Pereira, Qian Ma, Leyao Li, Feier Zhang, Batuhan Başoğlu and Sam Hermas Parada"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="30dp"
|
||||
android:textSize="20dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
|
65
UI/app/src/main/res/layout/activity_apps.xml
Normal file
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/background"
|
||||
tools:context=".Apps">
|
||||
|
||||
<include
|
||||
layout="@layout/toolbar"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/remote"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_marginStart="40dp"
|
||||
android:layout_marginBottom="560dp"
|
||||
android:layout_x="118dp"
|
||||
android:layout_y="95dp"
|
||||
android:background="@drawable/ic_wireless"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/remotetitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="37dp"
|
||||
android:layout_marginBottom="540dp"
|
||||
android:gravity="center"
|
||||
android:text="Remote access"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="13dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/thiefpic"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_marginStart="160dp"
|
||||
android:layout_marginBottom="560dp"
|
||||
android:layout_x="118dp"
|
||||
android:layout_y="95dp"
|
||||
android:background="@drawable/ic_photo"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/remotetitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="160dp"
|
||||
android:layout_marginBottom="540dp"
|
||||
android:gravity="center"
|
||||
android:text="Thief pictures"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="13dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
94
UI/app/src/main/res/layout/activity_email.xml
Normal file
|
@ -0,0 +1,94 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/background"
|
||||
android:orientation="vertical"
|
||||
tools:context=".Email">
|
||||
<ImageView
|
||||
android:id="@+id/imageView"
|
||||
android:layout_width="235dp"
|
||||
android:layout_height="240dp"
|
||||
android:layout_marginBottom="470dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:srcCompat="@drawable/caroutline2" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="KEYLESS AUTO"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="27dp"
|
||||
app:fontFamily="normal"
|
||||
android:layout_marginBottom="485dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="Vehicle Anti-Theft Facial Recognition System"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="9dp"
|
||||
app:fontFamily="normal"
|
||||
android:layout_marginBottom="470dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="300dp"
|
||||
android:gravity="center"
|
||||
android:text="Please verify your email to continue using this application"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="20dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/resend"
|
||||
android:layout_width="315dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginBottom="130dp"
|
||||
android:background="@drawable/mybutton"
|
||||
android:text="Resend code"
|
||||
android:textColor="#1D3790"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/con"
|
||||
android:layout_width="315dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginBottom="60dp"
|
||||
android:background="@drawable/mybutton"
|
||||
android:text="Login"
|
||||
android:textColor="#1D3790"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -79,6 +79,21 @@
|
|||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pass"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="120dp"
|
||||
android:gravity="center"
|
||||
android:text="Forgot your password?"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="15dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/username"
|
||||
android:layout_width="315dp"
|
||||
|
|
|
@ -24,4 +24,60 @@
|
|||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="380dp"
|
||||
android:layout_height="100dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginBottom="440dp"
|
||||
android:gravity="center"
|
||||
android:text="To change the account password enter the email used to create the accout and a link will be sent with instructions to change the password"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="20dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/email"
|
||||
android:layout_width="315dp"
|
||||
android:layout_height="50dp"
|
||||
android:background="@drawable/loginedittext"
|
||||
android:hint="Email"
|
||||
android:paddingLeft="10dp"
|
||||
android:textColorHint="#ffffff"
|
||||
tools:layout_editor_absoluteX="25dp"
|
||||
tools:layout_editor_absoluteY="332dp"
|
||||
android:layout_marginBottom="380dp"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"/>
|
||||
<Button
|
||||
android:id="@+id/Resetpassword"
|
||||
android:layout_width="140dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginStart="50dp"
|
||||
android:layout_marginBottom="280dp"
|
||||
android:background="@drawable/mybutton"
|
||||
android:text="Reset Password"
|
||||
android:textColor="#1D3790"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/backb"
|
||||
android:layout_width="140dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginEnd="50dp"
|
||||
android:layout_marginBottom="280dp"
|
||||
android:background="@drawable/mybutton"
|
||||
android:text="Back"
|
||||
android:textColor="#1D3790"
|
||||
android:textSize="16sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -26,7 +26,7 @@
|
|||
android:id="@+id/imageView"
|
||||
android:layout_width="125dp"
|
||||
android:layout_height="142dp"
|
||||
android:layout_marginBottom="540dp"
|
||||
android:layout_marginBottom="550dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.15"
|
||||
|
|
|
@ -11,15 +11,69 @@
|
|||
layout="@layout/toolbar"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/supporttitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/supporttitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginBottom="630dp"
|
||||
android:gravity="center"
|
||||
android:text="Support"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="30dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/contacttitle"
|
||||
android:layout_width="365dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginBottom="630dp"
|
||||
android:gravity="center"
|
||||
android:text="Support"
|
||||
android:layout_marginBottom="550dp"
|
||||
android:text="Contact us"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="30dp"
|
||||
android:textSize="22dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/contacttitle2"
|
||||
android:layout_width="365dp"
|
||||
android:layout_height="100dp"
|
||||
android:layout_marginStart="25dp"
|
||||
android:layout_marginBottom="435dp"
|
||||
android:text="Chat with a Customer Specialist\n\nHave questions? Email us for real-time help.\n\napere094@uottawa.ca"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="15dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/contacttitle3"
|
||||
android:layout_width="365dp"
|
||||
android:layout_height="25dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginBottom="390dp"
|
||||
android:text="Call us"
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="15dp"
|
||||
android:textStyle="bold"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/contacttitle4"
|
||||
android:layout_width="365dp"
|
||||
android:layout_height="100dp"
|
||||
android:layout_marginStart="25dp"
|
||||
android:layout_marginBottom="280dp"
|
||||
android:text="Get in touch, free of charge. Just call 1-800-123-4567\n\nCustomer representatives are available from 3 a.m. to 10 p.m., daily."
|
||||
android:textColor="#ffffff"
|
||||
android:textSize="15dp"
|
||||
app:fontFamily="normal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
|
|
@ -5,6 +5,14 @@
|
|||
android:background="@color/colorPrimary"
|
||||
android:elevation="4dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/back"
|
||||
android:layout_width="25dp"
|
||||
android:layout_height="25dp"
|
||||
android:onClick="back"
|
||||
android:src="@drawable/ic_arrow"
|
||||
android:layout_marginEnd="10dp"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -17,12 +25,13 @@
|
|||
android:layout_width="60dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginTop="13dp"
|
||||
android:layout_marginStart="220dp"
|
||||
android:layout_marginStart="180dp"
|
||||
android:background="@drawable/mybutton"
|
||||
android:onClick="logout"
|
||||
android:text="Sign Out"
|
||||
android:textColor="#1D3790"
|
||||
android:textSize="10sp" />
|
||||
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
UI/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 1.9 KiB |
BIN
UI/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 3.9 KiB |
BIN
UI/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 5.9 KiB |
BIN
UI/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.1 KiB |
BIN
UI/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
Normal file
After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |