Added files of Alex and fixed the code.

This commit is contained in:
Batuhan Berk Başoğlu 2020-11-19 13:59:45 -05:00
parent c3d1f605d7
commit ccd5a1d53b
872 changed files with 15722 additions and 26674 deletions

View file

@ -0,0 +1,25 @@
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 About extends AppCompatActivity {
FirebaseAuth fAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
fAuth = FirebaseAuth.getInstance();
}
public void logout(View view){
fAuth.signOut();
startActivity(new Intent(getApplicationContext(), Login.class));
finish();
}
}

View file

@ -0,0 +1,132 @@
package com.example.capstone;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.EventListener;
import com.google.firebase.firestore.FieldValue;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.FirebaseFirestoreException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class Drivers extends AppCompatActivity{
FirebaseAuth fAuth;
FirebaseFirestore fstore;
String userID;
private RecyclerView mRecyclerView;
private eAdapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
ArrayList<driveritem> mExampleList = new ArrayList<>();
private Button add, remove;
String Fname, email, phone;
int numOfDrivers;
int removeP;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drivers);
fAuth = FirebaseAuth.getInstance();
fstore = FirebaseFirestore.getInstance();
add = findViewById(R.id.adddriver);
remove = findViewById(R.id.removedriver);
userID = fAuth.getCurrentUser().getUid();
DocumentReference documentReference = fstore.collection("users").document(userID);
documentReference.addSnapshotListener(this, new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(@Nullable DocumentSnapshot value, @Nullable FirebaseFirestoreException error) {
String test = value.getString("Number of Drivers");
numOfDrivers = Integer.parseInt(test);
Fname = value.getString("First Name") + " " + value.getString("Last Name");
email = value.getString("Email");
phone = value.getString("Phone Number");
mExampleList.add(new driveritem(Fname, email, phone));
for(int i=1; i<numOfDrivers; i++){
Fname = value.getString("First Name"+(i+1)) + " " + value.getString("Last Name"+(i+1));
email = value.getString("Email"+(i+1));
phone = value.getString("Phone Number"+(i+1));
mExampleList.add(new driveritem(Fname, email, phone));
}
mRecyclerView = findViewById(R.id.recyclerview);
mRecyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(Drivers.this);
mAdapter = new eAdapter(mExampleList);
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setAdapter(mAdapter);
mAdapter.setOnItemClickListener(new eAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
removeP = position;
}
});
}
});
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addDriver();
}
});
remove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
removeDriver();
}
});
}
public void addDriver(){
startActivity(new Intent(getApplicationContext(), add.class));
}
public void removeDriver(){
if(removeP != 0){
Map<String,Object> user = new HashMap<>();
DocumentReference documentReference = fstore.collection("users").document(userID);
documentReference.update("First Name"+String.valueOf(removeP+1), FieldValue.delete());
documentReference.update("Last Name"+String.valueOf(removeP+1), FieldValue.delete());
documentReference.update("Email"+String.valueOf(removeP+1), FieldValue.delete());
documentReference.update("Phone Number"+String.valueOf(removeP+1), FieldValue.delete());
user.put("Number of Drivers",String.valueOf(removeP));
documentReference.update(user);
finish();
startActivity(getIntent());
} else {
Toast.makeText(Drivers.this, "Cannot delete main driver", Toast.LENGTH_LONG).show();
}
}
public void logout(View view){
fAuth.signOut();
startActivity(new Intent(getApplicationContext(), Login.class));
finish();
}
}

View file

@ -0,0 +1,128 @@
package com.example.capstone;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
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.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;
public class Enrollment extends AppCompatActivity {
private static final int CAMERA_REQUEST = 10;
private static final int IMAGE_GALLERY_REQUEST = 20;
FirebaseAuth fAuth;
FirebaseStorage storage;
StorageReference storageReference;
ImageView preview;
Button upload;
Uri imageUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enrollment);
fAuth = FirebaseAuth.getInstance();
storage = FirebaseStorage.getInstance();
storageReference = storage.getReference();
preview = findViewById(R.id.imagepreview);
upload = findViewById(R.id.upload);
upload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
StorageReference riversRef = storageReference.child("Images/"+fAuth.getCurrentUser().getUid()+"/"+ imageUri.getLastPathSegment());
riversRef.putFile(imageUri)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
}
});
}
});
}
public void logout(View view){
fAuth.signOut();
startActivity(new Intent(getApplicationContext(), Login.class));
finish();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == CAMERA_REQUEST) {
Bitmap cameraImage = (Bitmap) data.getExtras().get("data");
preview.setImageBitmap(cameraImage);
}
if (requestCode == IMAGE_GALLERY_REQUEST) {
imageUri = data.getData();
InputStream inputStream;
try {
inputStream = getContentResolver().openInputStream(imageUri);
Bitmap image = BitmapFactory.decodeStream(inputStream);
preview.setImageBitmap(image);
} catch (FileNotFoundException e) {
e.printStackTrace();
Toast.makeText(this, "Unable to open image", Toast.LENGTH_LONG).show();
}
}
}
}
public void takepic(View v) {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
public void loadpic(View v){
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
File pictureDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
String pictureDirectoryPath = pictureDirectory.getPath();
Uri data = Uri.parse(pictureDirectoryPath);
photoPickerIntent.setDataAndType(data, "image/*");
startActivityForResult(photoPickerIntent, IMAGE_GALLERY_REQUEST);
}
}

View file

@ -0,0 +1,80 @@
package com.example.capstone;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
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;
public class Login extends AppCompatActivity {
private EditText email, password;
private Button save;
private TextView account;
FirebaseAuth fAuth;
private String em, pw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
email = (EditText) findViewById(R.id.username);
password = (EditText) findViewById(R.id.password);
save = (Button) findViewById(R.id.signin);
account = findViewById(R.id.account);
fAuth = FirebaseAuth.getInstance();
account.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), signup.class));
}
});
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
em = email.getText().toString().trim();
pw = password.getText().toString().trim();
if(TextUtils.isEmpty(em)){
email.setError("Email is Required.");
return;
}
if(TextUtils.isEmpty(pw)){
password.setError("Email is Required.");
return;
}
fAuth.signInWithEmailAndPassword(em, pw).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
Toast.makeText(Login.this, "Successful Login", Toast.LENGTH_LONG).show();
openHomepage();
} else {
Toast.makeText(Login.this, task.getException().toString(), Toast.LENGTH_LONG).show();
}
}
});
}
});
}
public void openHomepage() {
Intent intent = new Intent(this, homepage.class);
startActivity(intent);
}
}

View file

@ -1,44 +1,44 @@
package com.example.capstone;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button login;
private Button sign;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
login = (Button) findViewById(R.id.signin);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openLogin();
}
});
sign = (Button) findViewById(R.id.signup);
sign.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openSignup();
}
});
}
public void openLogin() {
Intent intent = new Intent(this, Login.class);
startActivity(intent);
}
public void openSignup() {
Intent intent2 = new Intent(this, signup.class);
startActivity(intent2);
}
}
package com.example.capstone;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button login;
private Button sign;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
login = (Button) findViewById(R.id.signin);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openLogin();
}
});
sign = (Button) findViewById(R.id.signup);
sign.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openSignup();
}
});
}
public void openLogin() {
Intent intent = new Intent(this, Login.class);
startActivity(intent);
}
public void openSignup() {
Intent intent2 = new Intent(this, signup.class);
startActivity(intent2);
}
}

View file

@ -0,0 +1,25 @@
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 Password extends AppCompatActivity {
FirebaseAuth fAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_password);
fAuth = FirebaseAuth.getInstance();
}
public void logout(View view){
fAuth.signOut();
startActivity(new Intent(getApplicationContext(), Login.class));
finish();
}
}

View file

@ -0,0 +1,70 @@
package com.example.capstone;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.google.firebase.auth.FirebaseAuth;
public class Settings extends AppCompatActivity {
FirebaseAuth fAuth;
private Button dri, enr, sup, pas, abu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
fAuth = FirebaseAuth.getInstance();
dri = findViewById(R.id.managedrivers);
enr = findViewById(R.id.enrollment);
sup = findViewById(R.id.support);
pas = findViewById(R.id.password);
abu = findViewById(R.id.aboutus);
dri.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Drivers.class));
}
});
enr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Enrollment.class));
}
});
sup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Support.class));
}
});
pas.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Password.class));
}
});
abu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), About.class));
}
});
}
public void logout(View view){
fAuth.signOut();
startActivity(new Intent(getApplicationContext(), Login.class));
finish();
}
}

View file

@ -0,0 +1,36 @@
package com.example.capstone;
public class Signal {
private String power;
private String alarm;
private String motor;
public Signal() {
}
public String getPower() {
return power;
}
public void setPower(String power) {
this.power = power;
}
public String getAlarm() {
return alarm;
}
public void setAlarm(String alarm) {
this.alarm = alarm;
}
public String getMotor() {
return motor;
}
public void setMotor(String motor) {
this.motor = motor;
}
}

View file

@ -0,0 +1,26 @@
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 Support extends AppCompatActivity {
FirebaseAuth fAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_support);
fAuth = FirebaseAuth.getInstance();
}
public void logout(View view){
fAuth.signOut();
startActivity(new Intent(getApplicationContext(), Login.class));
finish();
}
}

View file

@ -0,0 +1,58 @@
package com.example.capstone;
public class User {
private String Firstname;
private String Lastname;
private Long phone;
private String email;
private String password;
public User(String fn, String ln, Long ph, String em, String pw) {
Firstname = fn;
Lastname = ln;
phone = ph;
email = em;
password = pw;
}
public String getFirstname() {
return Firstname;
}
public void setFirstname(String firstname) {
Firstname = firstname;
}
public String getLastname() {
return Lastname;
}
public void setLastname(String lastname) {
Lastname = lastname;
}
public Long getPhone() {
return phone;
}
public void setPhone(Long phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

View file

@ -0,0 +1,155 @@
package com.example.capstone;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
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.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;
public class add extends AppCompatActivity {
private EditText firstname, lastname, phone, email;
private Button save, cancel;
FirebaseAuth fAuth;
private boolean check;
FirebaseFirestore fstore;
String userID;
int numOfDrivers;
private String fn, ln, em, ph;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
firstname = (EditText) findViewById(R.id.fname);
lastname = (EditText) findViewById(R.id.lname);
phone = (EditText) findViewById(R.id.phone);
email = (EditText) findViewById(R.id.email);
save = (Button) findViewById(R.id.adddriver);
cancel = (Button) findViewById(R.id.cancel);
fAuth = FirebaseAuth.getInstance();
fstore = FirebaseFirestore.getInstance();
userID = fAuth.getCurrentUser().getUid();
DocumentReference documentReference = fstore.collection("users").document(userID);
documentReference.addSnapshotListener(this, new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(@Nullable DocumentSnapshot value, @Nullable FirebaseFirestoreException error) {
String test = value.getString("Number of Drivers");
numOfDrivers = Integer.parseInt(test);
}
});
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fn = firstname.getText().toString().trim();
ln = lastname.getText().toString().trim();
ph = phone.getText().toString().trim();
em = email.getText().toString().trim();
if(TextUtils.isEmpty(fn)){
firstname.setError("First name is Required.");
return;
}
if(TextUtils.isEmpty(ln)){
lastname.setError("Last name is Required.");
return;
}
if(TextUtils.isEmpty(ph)){
phone.setError("Phone number is Required.");
return;
}
check = onlyDigits(ph, ph.length());
if(!check){
phone.setError("Invalid phone number");
return;
}
if(ph.length() < 10){
phone.setError("Invalid phone number");
return;
}
if(TextUtils.isEmpty(em)){
email.setError("Email is Required.");
return;
}
numOfDrivers++;
DocumentReference documentReference = fstore.collection("users").document(userID);
Map<String,Object> user = new HashMap<>();
user.put("First Name"+String.valueOf(numOfDrivers),fn);
user.put("Last Name"+String.valueOf(numOfDrivers),ln);
user.put("Email"+String.valueOf(numOfDrivers),em);
user.put("Phone Number"+String.valueOf(numOfDrivers),ph);
user.put("Number of Drivers",String.valueOf(numOfDrivers));
documentReference.update(user).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
}
});
openDriver();
}
});
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Drivers.class));
}
});
}
public void openDriver() {
Intent intent = new Intent(this, Drivers.class);
startActivity(intent);
}
public static boolean onlyDigits(String str, int n) {
for(int i = 0; i < n; i++) {
if(str.charAt(i) >= '0'
&& str.charAt(i) <= '9') {
return true;
} else {
return false;
}
}
return false;
}
public void logout(View view){
fAuth.signOut();
startActivity(new Intent(getApplicationContext(), Login.class));
finish();
}
}

View file

@ -0,0 +1,62 @@
package com.example.capstone;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatDialogFragment;
public class addDriver extends AppCompatDialogFragment {
private EditText fn, ln, ph, em;
private addDriverListener listener;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.add_driver, null);
builder.setView(view).setTitle("Add Driver").setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String fns = fn.getText().toString();
String lns = ln.getText().toString();
String phs = ph.getText().toString();
String ems = fn.getText().toString();
listener.applyTexts(fns, lns, phs, ems);
}
});
fn = view.findViewById(R.id.fname);
ln = view.findViewById(R.id.lname);
ph = view.findViewById(R.id.phone);
em = view.findViewById(R.id.email);
return builder.create();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
listener = (addDriverListener) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString()+"must implement addDriverListener");
}
}
public interface addDriverListener{
void applyTexts(String fn, String ln, String ph, String em);
}
}

View file

@ -0,0 +1,24 @@
package com.example.capstone;
public class driveritem {
private String mText1;
private String mText2;
private String mText3;
public driveritem( String text1, String text2, String text3) {
mText1 = text1;
mText2 = text2;
mText3 = text3;
}
public String getText1() { return mText1; }
public String getText2() {
return mText2;
}
public String getText3() {
return mText3;
}
}

View file

@ -0,0 +1,81 @@
package com.example.capstone;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
public class eAdapter extends RecyclerView.Adapter<eAdapter.ExampleViewHolder> {
private ArrayList<driveritem> mExampleList;
private OnItemClickListener mListener;
public interface OnItemClickListener {
void onItemClick(int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
mListener = listener;
}
public static class ExampleViewHolder extends RecyclerView.ViewHolder {
public TextView mTextView1;
public TextView mTextView2;
public TextView mTextView3;
public ExampleViewHolder(View itemView, final OnItemClickListener listener) {
super(itemView);
mTextView1 = itemView.findViewById(R.id.textView);
mTextView2 = itemView.findViewById(R.id.textView2);
mTextView3 = itemView.findViewById(R.id.textView3);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
listener.onItemClick(position);
}
}
}
});
}
}
public eAdapter(ArrayList<driveritem> exampleList) {
mExampleList = exampleList;
}
@Override
public ExampleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.driveritem, parent, false);
ExampleViewHolder evh = new ExampleViewHolder(v, mListener);
return evh;
}
@Override
public void onBindViewHolder(ExampleViewHolder holder, int position) {
driveritem currentItem = mExampleList.get(position);
holder.mTextView1.setText(currentItem.getText1());
holder.mTextView2.setText(currentItem.getText2());
holder.mTextView3.setText(currentItem.getText3());
}
@Override
public int getItemCount() {
return mExampleList.size();
}
public void filterList(ArrayList<driveritem> filteredList) {
mExampleList = filteredList;
notifyDataSetChanged();
}
}

View file

@ -1,14 +1,108 @@
package com.example.capstone;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class homepage extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_homepage);
}
}
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.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.Toolbar;
import com.google.firebase.auth.FirebaseAuth;
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 java.util.HashMap;
public class homepage extends AppCompatActivity {
FirebaseAuth fAuth;
private Button setting, poweron, alarmoff;
DatabaseReference reff;
Signal sig;
int check = 0;
int check2 = 0;
private ImageView a, e;
private TextView at, et;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_homepage);
fAuth = FirebaseAuth.getInstance();
setting = findViewById(R.id.settings);
poweron = findViewById(R.id.poweron);
alarmoff = findViewById(R.id.alarmoff);
at = findViewById(R.id.alarmtitle3);
a = findViewById(R.id.alarm);
et = findViewById(R.id.enginetitle3);
e = findViewById(R.id.engine);
reff = FirebaseDatabase.getInstance().getReference().child("signal");
sig = new Signal();
sig.setMotor("off");
sig.setPower("off");
sig.setAlarm("off");
reff.child("1").setValue(sig);
setting.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Settings.class));
}
});
poweron.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(check == 0){
sig.setPower("on");
sig.setMotor("on");
e.setImageResource(R.drawable.ic_power_on);
et.setText("ON");
check = 1;
} else {
sig.setPower("off");
sig.setMotor("off");
e.setImageResource(R.drawable.ic_power_off);
et.setText("OFF");
check = 0;
}
reff.child("1").setValue(sig);
}
});
alarmoff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(check2 == 0){
sig.setAlarm("on");
a.setImageResource(R.drawable.ic_alarm_on);
at.setText("ON");
check2 = 1;
} else {
sig.setAlarm("off");
a.setImageResource(R.drawable.ic_alarm_off);
at.setText("OFF");
check2 = 0;
}
reff.child("1").setValue(sig);
}
});
}
public void logout(View view){
fAuth.signOut();
startActivity(new Intent(getApplicationContext(), Login.class));
finish();
}
}

View file

@ -0,0 +1,156 @@
package com.example.capstone;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Button;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
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.FirebaseFirestore;
import java.util.HashMap;
import java.util.Map;
public class signup extends AppCompatActivity {
private EditText firstname, lastname, phone, email, password;
private Button save;
FirebaseAuth fAuth;
private TextView account;
private String fn, ln, em, pw, ph;
private boolean check;
FirebaseFirestore fstore;
String userID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
firstname = (EditText) findViewById(R.id.Fname);
lastname = (EditText) findViewById(R.id.Lname);
phone = (EditText) findViewById(R.id.phone);
email = (EditText) findViewById(R.id.username);
password = (EditText) findViewById(R.id.password);
save = (Button) findViewById(R.id.siup);
fAuth = FirebaseAuth.getInstance();
account = findViewById(R.id.account1);
fstore = FirebaseFirestore.getInstance();
account.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Login.class));
}
});
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fn = firstname.getText().toString().trim();
ln = lastname.getText().toString().trim();
ph = phone.getText().toString().trim();
em = email.getText().toString().trim();
pw = password.getText().toString().trim();
if(TextUtils.isEmpty(fn)){
firstname.setError("First name is Required.");
return;
}
if(TextUtils.isEmpty(ln)){
lastname.setError("Last name is Required.");
return;
}
if(TextUtils.isEmpty(ph)){
phone.setError("Phone number is Required.");
return;
}
check = onlyDigits(ph, ph.length());
if(!check){
phone.setError("Invalid phone number");
return;
}
if(ph.length() < 10){
phone.setError("Invalid phone number");
return;
}
if(TextUtils.isEmpty(em)){
email.setError("Email is Required.");
return;
}
if(TextUtils.isEmpty(pw)){
password.setError("Password is Required.");
return;
}
if(pw.length() < 6){
password.setError("Password must be more than 6 characters.");
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();
userID = fAuth.getCurrentUser().getUid();
DocumentReference documentReference = fstore.collection("users").document(userID);
Map<String,Object> user = new HashMap<>();
user.put("First Name",fn);
user.put("Last Name",ln);
user.put("Email",em);
user.put("Phone Number",ph);
user.put("Number of Drivers",String.valueOf(1));
documentReference.set(user).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
}
});
openHomepage();
} else {
Toast.makeText(signup.this, task.getException().toString(), Toast.LENGTH_LONG).show();
}
}
});
}
});
}
public void openHomepage() {
Intent intent = new Intent(this, homepage.class);
startActivity(intent);
}
public static boolean onlyDigits(String str, int n) {
for(int i = 0; i < n; i++) {
if(str.charAt(i) >= '0'
&& str.charAt(i) <= '9') {
return true;
} else {
return false;
}
}
return false;
}
}