0% found this document useful (0 votes)
32 views

Coding of Java Only

The document contains code for an Android app that allows users to book truck delivery services. It includes activities for selecting delivery items, booking a delivery time, and sending help requests via email. The activities utilize buttons, text views, shared preferences and intents to pass data between screens and functions.

Uploaded by

Ameer Imtiaz
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views

Coding of Java Only

The document contains code for an Android app that allows users to book truck delivery services. It includes activities for selecting delivery items, booking a delivery time, and sending help requests via email. The activities utilize buttons, text views, shared preferences and intents to pass data between screens and functions.

Uploaded by

Ameer Imtiaz
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 29

package com.example.

truckapp;

import androidx.appcompat.app.AppCompatActivity;

import android.app.TimePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;

import java.util.Calendar;

public class BookActivity extends AppCompatActivity implements


View.OnClickListener {

//Initialize Variables
TextView tvTimer;
int tHour,tMinute;
Button button;

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

button= findViewById(R.id.orderBtn);
button.setOnClickListener(this);

//Assign Variables
tvTimer = findViewById(R.id.tv_time);

tvTimer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Initialize Time Picker Dialogue

TimePickerDialog timePickerDialog = new


TimePickerDialog(BookActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int
minute) {
//Initialize Hour and Minute
tHour = hourOfDay;
tMinute = minute;

//Initialize Calender
Calendar calendar = Calendar.getInstance();

//set hour and minute


calendar.set(0,0,0,tHour,tMinute);

//set selected time on text view


tvTimer.setText(DateFormat.format("hh:mm
aa",calendar));
}
},12,0,false
);

//for displaying previous selected time


timePickerDialog.updateTime(tHour,tMinute);
timePickerDialog.show();
}
});

button = findViewById(R.id.orderBtn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openMainActivity();
Toast.makeText(BookActivity.this,"Your Order has been
Successfully Booked",Toast.LENGTH_LONG).show();
}
});

private void openMainActivity() {


Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
finish();

@Override
public void onClick(View v) {

}
}

.
package com.example.truckapp;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import java.util.ArrayList;
import java.util.Collections;

public class EatablesActivity extends AppCompatActivity {

Button addButton;
TextView tItems, lItems;
boolean[] selectedItems;
ArrayList<Integer> itemsList = new ArrayList<>();
String[] itemsArray =
{"Tomato","Cucumber","Avocado","Eggplant","Pepper","Butternut
Squash","Pumpkin",
"Zucchini","Portobello Mushroom","Shiitake Mushroom","White Button
Mushroom","Beet","Radish",
"Potato","Sweet
Potato","Carrot","Garlic","Onion","Asparagus","Rhubarb","Celery","Lettuce",

"Spinach","Kale","Cabbage","Arugula","Broccoli","Artichoke","Cauliflower"};

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

// assign variable
tItems = findViewById(R.id.Items);
addButton = findViewById(R.id.add_btn);
lItems = findViewById(R.id.items_txt);

//initialize selected items array


selectedItems = new boolean[itemsArray.length];

tItems.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//initialize alert dialogue
AlertDialog.Builder builder = new AlertDialog.Builder(
EatablesActivity.this
);
// set title
builder.setTitle("Select Items");

//set dialogue non cancelable


builder.setCancelable(false);

builder.setMultiChoiceItems(itemsArray, selectedItems, new


DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int
i, boolean b) {

//check condition
if (b){
//when checkbox is selected
// add position in items list

itemsList.add(i);
// sort items list
Collections.sort(itemsList);

}
else {
// when checkbox Un selected
// remove position from items list
itemsList.remove(i);
}
}
});

builder.setPositiveButton("OK", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int
which) {
//intialize string builder
StringBuilder stringBuilder = new StringBuilder();
// use for loop
for (int j=0; j<itemsList.size(); j++){
// concat array value

stringBuilder.append(itemsArray[itemsList.get(j)]);

// check condition
if (j !=itemsList.size()-1){
// when j value is not equal to items list
size -1
// Add new line

stringBuilder.append("\n ");
}
}
SaveSharedPrefrences sp = new SaveSharedPrefrences();

sp.setStringBuilder(getApplicationContext(),
stringBuilder.toString());
lItems.setText(sp.getStringBuilder(getApplicationContext()));

//
//
// lItems.setText(stringBuilder.toString());
// set text on text view
// tItems.setText(stringBuilder.toString());
addButton.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
if(itemsList == null)
{
Toast.makeText(EatablesActivity.this, "No
Item Selected", Toast.LENGTH_LONG).show();
}
else
{
Intent intent = new
Intent(EatablesActivity.this,BookActivity.class);
startActivity(intent);

}
// Intent intent = new
Intent(HouseholdActivity.this,BookActivity.class);
// startActivity(intent);
}
});

}
});

builder.setNegativeButton("Cancel", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int
which) {
// dismiss dialogue
dialogInterface.dismiss();
}
});

builder.setNeutralButton("Clear All", new


DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int
which) {
// used for loop
for (int j=0; j<selectedItems.length; j++){
// remove all selection
selectedItems[j] = false;

// clear items list


itemsList.clear();
//clear tect view value
lItems.setText("");
}
}
});
// show dialog
builder.show();
}

});

}
.

.
package com.example.truckapp;

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;

public class HelpActivity extends AppCompatActivity {

private EditText mEditTextTo;


private EditText mEditTextSubject;
private EditText mEditTextMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_help);

mEditTextTo = findViewById(R.id.edit_text_to);
mEditTextSubject = findViewById(R.id.edit_text_subject);
mEditTextMessage = findViewById(R.id.edit_text_message);

Button buttonSend = findViewById(R.id.button_send);


buttonSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendMail();
}
});

private void sendMail() {


String recipientList = mEditTextTo.getText().toString();
String[] recipients = recipientList.split(",");

String subject = mEditTextSubject.getText().toString();


String message = mEditTextMessage.getText().toString();

Intent intent = new Intent(Intent.ACTION_SEND);


intent.putExtra(Intent.EXTRA_EMAIL,recipients);
intent.putExtra(Intent.EXTRA_SUBJECT,subject);
intent.putExtra(Intent.EXTRA_TEXT,message);

intent.setType("message/rfc822");
startActivity(Intent.createChooser(intent,"Choose an Email client"));
}
}

.
.
package com.example.truckapp;

import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.GridLayout;

public class ItemsActivity extends AppCompatActivity {

GridLayout mainGridLayout;

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

mainGridLayout = (GridLayout)findViewById(R.id.mainGridLayout);

setSingleEvent(mainGridLayout);
}

private void setSingleEvent(GridLayout mainGridLayout) {

for (int i=0;i<mainGridLayout.getChildCount();i++)


{
CardView cardView = (CardView)mainGridLayout.getChildAt(i);
final int finalI = i;
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (finalI==0)
{
Intent intent = new
Intent(ItemsActivity.this,HouseholdActivity.class);
startActivity(intent);

}
else if (finalI==1)
{
Intent intent = new
Intent(ItemsActivity.this,Electronics.class);
startActivity(intent);

}
else if (finalI==2)
{
Intent intent = new
Intent(ItemsActivity.this,OfficeActivity.class);
startActivity(intent);

}
else if (finalI==3)
{
Intent intent = new
Intent(ItemsActivity.this,EatablesActivity.class);
startActivity(intent);

}
}
});
}
}
}

..

..

.
.
package com.example.truckapp;

import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;

import com.google.android.material.navigation.NavigationView;
import com.google.firebase.auth.FirebaseAuth;

import org.jetbrains.annotations.NotNull;

public class MainActivity extends AppCompatActivity {

Button button, logout;


DrawerLayout drawerLayout;
NavigationView navigationView;
ActionBarDrawerToggle toggle;

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

logout = findViewById(R.id.nav_Logout);

Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);
// now it is time to tell the system that we are going to use this
action bar or toolbar
setSupportActionBar(toolbar);

navigationView=(NavigationView)findViewById(R.id.nav_view);
drawerLayout =(DrawerLayout)findViewById(R.id.drawer);

toggle=new
ActionBarDrawerToggle(this,drawerLayout,toolbar,R.string.navigation_drawer_op
en,R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();

navigationView.setNavigationItemSelectedListener(new
NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull @NotNull MenuItem
menuItem)
{

switch (menuItem.getItemId())
{
case R.id.nav_profile:
Intent intent = new
Intent(MainActivity.this,ProfileActivity.class);
startActivity(intent);
drawerLayout.closeDrawer(GravityCompat.START);
break;
case R.id.nav_orders:
Intent intent1 = new
Intent(MainActivity.this,MyOrdersActivity.class);
startActivity(intent1);
drawerLayout.closeDrawer(GravityCompat.START);
break;
case R.id.nav_help:
Intent intent2 = new
Intent(MainActivity.this,HelpActivity.class);
startActivity(intent2);
drawerLayout.closeDrawer(GravityCompat.START);
break;
case R.id.nav_settings:
Toast.makeText(getApplicationContext(),"Settings
options are not yet available ",Toast.LENGTH_LONG).show();
drawerLayout.closeDrawer(GravityCompat.START);
break;
case R.id.nav_Logout:
FirebaseAuth.getInstance().signOut();
startActivity(new
Intent(getApplicationContext(),LoginActivity.class));
finish();

break;
}

return true;
}
});

button = findViewById(R.id.Maps_view);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openMapsView();
}
});

public void openMapsView(){


Intent intent = new Intent(this,MapsActivity.class);
startActivity(intent);
}

@Override
public void onBackPressed() {
super.onBackPressed();
finishAffinity();
}
}

..

.
.
package com.example.truckapp;

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;
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.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 org.jetbrains.annotations.NotNull;

public class LoginActivity extends AppCompatActivity {


EditText mEmail, mPassword;
Button mLoginBtn;
TextView mCreateBtn, forgotTextLink;
FirebaseAuth fAuth;

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

mEmail =findViewById(R.id.emailtext);
mPassword = findViewById(R.id.passwordtext);
fAuth = FirebaseAuth.getInstance();
mLoginBtn = findViewById(R.id.Loginbutton);
mCreateBtn = findViewById(R.id.createText);
forgotTextLink = findViewById(R.id.forgotPassword);

mLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = mEmail.getText().toString().trim();
String password = mPassword.getText().toString().trim();

if (TextUtils.isEmpty(email)){
mEmail.setError("Email is required");
return;
}

if (TextUtils.isEmpty(password)){
mPassword.setError("Password is required");
return;
}

if (password.length() < 6){


mPassword.setError("Password must be of 6 or more
characters");
return;
}

// for the authentication of the user

fAuth.signInWithEmailAndPassword(email,
password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull @NotNull Task<AuthResult>
task) {
if (task.isSuccessful()){

if (fAuth.getCurrentUser().isEmailVerified()){

Toast.makeText(LoginActivity.this, "Logged in
successfully", Toast.LENGTH_SHORT).show();
startActivity(new
Intent(getApplicationContext(),MainActivity.class));
}
else {
Toast.makeText(LoginActivity.this, "Please
Verify your Email", Toast.LENGTH_LONG).show();
}
}
else {
Toast.makeText(LoginActivity.this, "Error Occurred
!" + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}

}
});
}
});

mCreateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new
Intent(getApplicationContext(),RegisterActivity.class));
}
});

forgotTextLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

EditText resetMail = new EditText(v.getContext());


AlertDialog.Builder passwordResetDialog = new
AlertDialog.Builder(v.getContext());
passwordResetDialog.setTitle("Reset Password ?");
passwordResetDialog.setMessage("Enter your Email to get a
Password Reset link");
passwordResetDialog.setView(resetMail);

passwordResetDialog.setPositiveButton("Yes", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
/// for getting the email and sending a reset link

String mail = resetMail.getText().toString();

fAuth.sendPasswordResetEmail(mail).addOnSuccessListener(new
OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {

Toast.makeText(LoginActivity.this, "Reset link


has been sent to your Email", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull @NotNull Exception
e) {
Toast.makeText(LoginActivity.this, "Error !
Reset link is not sent"+ e.getMessage(), Toast.LENGTH_SHORT).show();
}
});

}
});

passwordResetDialog.setNegativeButton("No", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// if the user selects no then nothing happens just
closes the dialog and be back at login
}
});

passwordResetDialog.create().show();

}
});

@Override
public void onBackPressed() {
super.onBackPressed();
finishAffinity();
}

}
………………………………………
package com.example.truckapp;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.SearchView;
import android.widget.Toast;

//import com.firebase.geofire.GeoFire;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;

import org.jetbrains.annotations.NotNull;

import java.io.IOException;
import java.util.List;

public class MapsActivity extends AppCompatActivity implements


OnMapReadyCallback {

private FusedLocationProviderClient client;


private SupportMapFragment mapFragment;
private int REQUEST_CODE = 111;
Button button;

GoogleMap map;
SearchView searchView;

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

searchView = findViewById(R.id.sv_location);

mapFragment = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.maps);

client =
LocationServices.getFusedLocationProviderClient(MapsActivity.this);

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener()
{
@Override
public boolean onQueryTextSubmit(String query) {
String location = searchView.getQuery().toString();
List<Address> addressList = null;

if (location != null || !location.equals("")){


Geocoder geocoder = new Geocoder(MapsActivity.this);

try {
addressList =
geocoder.getFromLocationName(location,1);

} catch (IOException e) {
e.printStackTrace();
}
Address address= addressList.get(0);
LatLng latLng = new LatLng(address.getLatitude(),
address.getLongitude());
map.addMarker(new
MarkerOptions().position(latLng).title(location));

map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,14));
}

return false;
}

@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
mapFragment.getMapAsync(this);

if (ActivityCompat.checkSelfPermission(MapsActivity.this,
Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {

getCurrentLocation();
}else{
ActivityCompat.requestPermissions(MapsActivity.this,new String[]
{Manifest.permission.ACCESS_FINE_LOCATION},REQUEST_CODE);
}
button = findViewById(R.id.Booking);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openItemsActivity();
}
});

private void getCurrentLocation() {

if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode,
String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission.
// for ActivityCompat#requestPermissions
return;
}
Task<Location> task = client.getLastLocation();

task.addOnSuccessListener(new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null) {
//then sync maps
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
LatLng latLng = new LatLng(location.getLatitude(),
location.getLongitude());
MarkerOptions markerOptions = new
MarkerOptions().position(latLng).title("You are Here");

googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 14));

googleMap.addMarker(markerOptions).showInfoWindow();

});

}
}
});
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull
String[] permissions, @NonNull @NotNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions,
grantResults);

if (requestCode == REQUEST_CODE){
if (grantResults.length > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED){
getCurrentLocation();
}
}else {
Toast.makeText(this, "Permission Denied",
Toast.LENGTH_SHORT).show();
}

public void openItemsActivity(){

Intent intent = new Intent(this,ItemsActivity.class);


startActivity(intent);

@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
}
}

.
.

.
package com.example.truckapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

public class MyOrdersActivity extends AppCompatActivity {

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

TextView t1;
t1 = findViewById(R.id.show_order);

SaveSharedPrefrences sp = new SaveSharedPrefrences();

String name = sp.getStringBuilder(getApplicationContext());

t1.setText(name);

}
}
………………………………………

..

.
.

.
package com.example.truckapp;

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

class SaveSharedPrefrences {

static final String PREF_KEY = "ItemsPrefs";

static SharedPreferences getSharedPreferences(Context ctx) {


return PreferenceManager.getDefaultSharedPreferences(ctx);
}

public static void setStringBuilder(Context ctx, String names)


{
SharedPreferences.Editor editor = getSharedPreferences(ctx).edit();

editor.putString(PREF_KEY, names);
editor.commit();
}

public static String getStringBuilder(Context ctx)


{
return getSharedPreferences(ctx).getString(PREF_KEY,"" );
}

public static void clearEveryThing(Context ctx)


{
SharedPreferences.Editor editor = getSharedPreferences(ctx).edit();
editor.clear(); //clear all stored data
editor.commit();
}
}
package com.example.truckapp;

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

class SaveSharedPrefrences {

static final String PREF_KEY = "ItemsPrefs";

static SharedPreferences getSharedPreferences(Context ctx) {


return PreferenceManager.getDefaultSharedPreferences(ctx);
}

public static void setStringBuilder(Context ctx, String names)


{
SharedPreferences.Editor editor = getSharedPreferences(ctx).edit();

editor.putString(PREF_KEY, names);
editor.commit();
}

public static String getStringBuilder(Context ctx)


{
return getSharedPreferences(ctx).getString(PREF_KEY,"" );
}

public static void clearEveryThing(Context ctx)


{
SharedPreferences.Editor editor = getSharedPreferences(ctx).edit();
editor.clear(); //clear all stored data
editor.commit();
}
}
……………………..

.
.

.
package com.example.truckapp;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

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;

public class ProfileActivity extends AppCompatActivity {

Button logout;
TextView fullName, email, phone;
FirebaseAuth fAuth;
FirebaseFirestore fstore;
String userID;

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

logout = findViewById(R.id.logoutBtn);
fullName = findViewById(R.id.text_name);
email = findViewById(R.id.text_email);
phone = findViewById(R.id.text_phn);

// for initializing the data


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 documentSnapshot,
@Nullable FirebaseFirestoreException e) {
phone.setText(documentSnapshot.getString("phone"));
fullName.setText(documentSnapshot.getString("fName"));
email.setText(documentSnapshot.getString("email"));
}
});

logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FirebaseAuth.getInstance().signOut();
startActivity(new
Intent(getApplicationContext(),LoginActivity.class));
finish();

}
});

}
…………………….

.
.

.
package com.example.truckapp;

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

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
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.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.firestore.DocumentReference;
import com.google.firebase.firestore.FirebaseFirestore;

import org.jetbrains.annotations.NotNull;

import java.util.HashMap;
import java.util.Map;

public class RegisterActivity extends AppCompatActivity {


public static final String TAG = "TAG";
EditText mFullName, mEmail, mPassword, mPhone;
Button mRegistrationBtn;
TextView mLoginBtn;
FirebaseAuth fAuth;
FirebaseFirestore fstore;
String userID;

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

mFullName = findViewById(R.id.fullname);
mEmail = findViewById(R.id.emailtext);
mPassword = findViewById(R.id.passwordtext);
mPhone = findViewById(R.id.Phonetext);
mRegistrationBtn = findViewById(R.id.Loginbutton);
mLoginBtn = findViewById(R.id.createText);
// Initializing Firebase Auth & fire store
fAuth = FirebaseAuth.getInstance();
fstore = FirebaseFirestore.getInstance();

mRegistrationBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = mEmail.getText().toString().trim();
String password = mPassword.getText().toString().trim();
String fullname = mFullName.getText().toString();
String phone = mPhone.getText().toString();

if (TextUtils.isEmpty(fullname)){
mFullName.setError("Name is Compulsory");
return;
}

if (TextUtils.isEmpty(email)){
mEmail.setError("Email is required");
return;
}

if (TextUtils.isEmpty(password)){
mPassword.setError("Password is required");
return;
}

if (password.length() < 6){


mPassword.setError("Password must be of 6 or more
characters");
return;
}
if (TextUtils.isEmpty(phone)){
mPhone.setError("Phone number is required");
return;
}

/// now for registering the user in the firebase


fAuth.createUserWithEmailAndPassword(email,
password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull @NotNull Task<AuthResult>
task) {
if (task.isSuccessful()){

// firstly sending a verification link

fAuth.getCurrentUser().sendEmailVerification().addOnCompleteListener(new
OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull @NotNull
Task<Void> task) {

Toast.makeText(RegisterActivity.this,
"User Registered and verification Email has been Sent",
Toast.LENGTH_LONG).show();
mFullName.setText("");
mEmail.setText("");
mPassword.setText("");
mPhone.setText("");
}
});

userID = fAuth.getCurrentUser().getUid();
DocumentReference documentReference =
fstore.collection("users").document(userID);
Map<String,Object> user = new HashMap<>();
user.put("fName",fullname);
user.put("email",email);
user.put("phone",phone);

documentReference.set(user).addOnSuccessListener(new OnSuccessListener<Void>()
{
@Override
public void onSuccess(Void unused) {
Log.d(TAG, "onSuccess: User profile is
created for "+ userID);
}
});

}
else {
Toast.makeText(RegisterActivity.this, "Error
Occurred !" + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}

}
});
}
});

mLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new
Intent(getApplicationContext(),LoginActivity.class));
}
});

}
}
…………………………..

..

.
.

..

.
package com.example.truckapp;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class Splash_activity extends AppCompatActivity {

private static int SPLASH_SCREEN = 2000;


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

new Handler().postDelayed(new Runnable() {


@Override
public void run() {
Intent intent = new
Intent(Splash_activity.this,RegisterActivity.class);
startActivity(intent);
finish();
}
},SPLASH_SCREEN);
}
}
…………………………………………………….

..

You might also like