+ All Categories
Home > Documents > ELPIJI ORDERING AND SHIPPING SYSTEM ON ANDROID … · import com.google.firebase.auth.FirebaseAuth;...

ELPIJI ORDERING AND SHIPPING SYSTEM ON ANDROID … · import com.google.firebase.auth.FirebaseAuth;...

Date post: 06-Jul-2019
Category:
Upload: trannhan
View: 228 times
Download: 0 times
Share this document with a friend
58
APPENDIX Application User MainActivity.java package com.example.finalproject; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import com.google.firebase.auth.FirebaseAuth; public class MainActivity extends AppCompatActivity { private FirebaseAuth firebaseAuth; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); firebaseAuth = FirebaseAuth.getInstance(); } public void btnRegistration_Click(View view){ finish(); Intent i = new Intent(MainActivity.this, RegistrationActivity.class); startActivity(i); } public void btnLogin_Click(View view){ finish(); Intent i = new Intent(MainActivity.this, LoginActivity.class); startActivity(i); } } RegistrationActivity.java package com.example.finalproject; import android.app.ProgressDialog; import android.content.Intent; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.Toast; import com.firebase.client.Firebase; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.AuthResult; A
Transcript

APPENDIX

Application User

MainActivity.java

package com.example.finalproject;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import com.google.firebase.auth.FirebaseAuth;public class MainActivity extends AppCompatActivity { private FirebaseAuth firebaseAuth; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); firebaseAuth = FirebaseAuth.getInstance(); } public void btnRegistration_Click(View view){ finish(); Intent i = new Intent(MainActivity.this,RegistrationActivity.class); startActivity(i); } public void btnLogin_Click(View view){ finish(); Intent i = new Intent(MainActivity.this,LoginActivity.class); startActivity(i); }}

RegistrationActivity.java

package com.example.finalproject;import android.app.ProgressDialog;import android.content.Intent;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.EditText;import android.widget.Toast;import com.firebase.client.Firebase;import com.google.android.gms.tasks.OnCompleteListener;import com.google.android.gms.tasks.Task;import com.google.firebase.auth.AuthResult;

A

import com.google.firebase.auth.FirebaseAuth;import com.google.firebase.auth.FirebaseUser;import java.util.HashMap;public class RegistrationActivity extends AppCompatActivity { private EditText txtEmailAddress; private EditText txtPassword; private EditText txtUsernames; private EditText txtAddress; private EditText txtPhone; private FirebaseAuth firebaseAuth; private Firebase mRef; private String email;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_registration); Firebase.setAndroidContext(this); mRef = new Firebase("https://finalproject-73b47.firebaseio.com/Users"); txtEmailAddress = (EditText)findViewById(R.id.txtEmailRegistration); txtPassword = (EditText)findViewById(R.id.txtPasswordRegistration); txtUsernames = (EditText) findViewById(R.id.txtNama); txtAddress = (EditText) findViewById(R.id.txtAlamat); txtPhone = (EditText) findViewById(R.id.txtTelp); firebaseAuth = FirebaseAuth.getInstance(); if(firebaseAuth.getCurrentUser() != null){ finish(); startActivity(new Intent(getApplicationContext(),ProfileActivity.class)); } } public void btnRegistrationUser_Click(View view){ final ProgressDialog progressDialog =ProgressDialog.show(RegistrationActivity.this, "Please Wait...","Processing...", true); (firebaseAuth.createUserWithEmailAndPassword(txtEmailAddress.getText().toString(),txtPassword.getText().toString())) .addOnCompleteListener(newOnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task){ progressDialog.dismiss(); if (task.isSuccessful()){

String email =txtEmailAddress.getText().toString().replace(".",","); String pass =txtPassword.getText().toString();

B

String nama =txtUsernames.getText().toString(); String alamat =txtAddress.getText().toString(); String notelp = txtPhone.getText().toString(); HashMap<String, String> dataUser = newHashMap<>(); dataUser.put("Nama", nama ); dataUser.put("Email", email); dataUser.put("Password", pass); dataUser.put("Alamat", alamat); dataUser.put("Telepon", notelp); mRef.child(email).setValue(dataUser); finish();

Toast.makeText(RegistrationActivity.this, "RegistrationSuccessful",Toast.LENGTH_LONG).show(); Intent i = newIntent(RegistrationActivity.this, ProfileActivity.class); startActivity(i); } else { Log.e("ERROR",task.getException().toString()); Toast.makeText(RegistrationActivity.this,task.getException().getMessage(), Toast.LENGTH_LONG).show(); } } }); }}

LoginActivity.java

package com.example.finalproject;import android.app.ProgressDialog;import android.content.Intent;import android.provider.ContactsContract;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.EditText;import android.widget.Toast;import com.firebase.client.Firebase;import com.google.android.gms.tasks.OnCompleteListener;import com.google.android.gms.tasks.Task;import com.google.firebase.auth.AuthResult;import com.google.firebase.auth.FirebaseAuth;import com.google.firebase.auth.FirebaseUser;

C

public class LoginActivity extends AppCompatActivity { private EditText txtEmailLogin; private EditText txtPasswordLogin; private FirebaseAuth firebaseAuth; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); firebaseAuth = FirebaseAuth.getInstance(); txtEmailLogin = (EditText)findViewById(R.id.txtEmailLogin); txtPasswordLogin = (EditText)findViewById(R.id.txtPasswordLogin); if(firebaseAuth.getCurrentUser() != null){ finish(); startActivity(new Intent(getApplicationContext(),ProfileActivity.class)); } } public void btnLoginUser_Click(View view){ final ProgressDialog progressDialog =ProgressDialog.show(LoginActivity.this, "Please Wait...","Processing...", true); (firebaseAuth.signInWithEmailAndPassword(txtEmailLogin.getText().toString(), txtPasswordLogin.getText().toString())) .addOnCompleteListener(newOnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNullTask<AuthResult> task) { progressDialog.dismiss(); if (task.isSuccessful()) { finish(); Toast.makeText(LoginActivity.this, "Login Successful",Toast.LENGTH_LONG).show(); Intent i = newIntent(LoginActivity.this, ProfileActivity.class); startActivity(i); } else{ Log.e("ERROR",task.getException().toString());Toast.makeText(LoginActivity.this,task.getException().getMessage(), Toast.LENGTH_LONG).show(); } } }); }}

D

ProfileActivity.java

package com.example.finalproject;import android.*;import android.content.Intent;import android.content.pm.PackageManager;import android.support.v4.app.ActivityCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import com.google.firebase.auth.FirebaseAuth;import com.google.firebase.auth.FirebaseUser;public class ProfileActivity extends AppCompatActivity { static final int MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION =1; private FirebaseAuth firebaseAuth; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_profile); getMyLocation(); firebaseAuth = FirebaseAuth.getInstance(); FirebaseUser FirebaseCurrentUser =FirebaseAuth.getInstance().getCurrentUser(); Toast.makeText(this, "" + FirebaseCurrentUser.getEmail(),Toast.LENGTH_SHORT).show(); } public void btnPesan_Click(View view){

Intent i = new Intent(ProfileActivity.this,PesanActivity.class); startActivity(i); } public void btnHistory_Click(View view){ Intent i = new Intent(ProfileActivity.this,HistoryActivity.class); startActivity(i); } public void btnBarang_Click(View view){ Intent i = new Intent(ProfileActivity.this,ListBarangActivity.class); startActivity(i); } public void btnTrack_Click(View view){ Intent i = new Intent(ProfileActivity.this,TrackOrderActivity.class); startActivity(i); } public void btnSignOut_Click(View view) { firebaseAuth.signOut(); finish();

E

startActivity(new Intent(this, LoginActivity.class)); } private void getMyLocation() {if(ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED&&ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(ProfileActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION); return; } }}

ListBarang.java

package com.example.finalproject;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;import com.firebase.client.ChildEventListener;import com.firebase.client.DataSnapshot;import com.firebase.client.Firebase;import com.firebase.client.FirebaseError;import com.firebase.client.Query;import com.google.firebase.auth.FirebaseAuth;import java.util.ArrayList;public class ListBarangActivity extends AppCompatActivity { private Firebase mRef; private ListView mListView; private ArrayList<Object> barang = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_barang); Firebase.setAndroidContext(this);

mRef = new Firebase("https://finalproject-73b47.firebaseio.com/DaftarBarang"); mListView = (ListView) findViewById(R.id.lvBarang); final ArrayAdapter<Object> arrayAdapter = newArrayAdapter<>(this, android.R.layout.simple_list_item_1, barang); mListView.setAdapter(arrayAdapter); mRef.addChildEventListener(new ChildEventListener() { @Override

F

public void onChildAdded(DataSnapshot dataSnapshot,String s) { Object value =dataSnapshot.getValue().toString().replace("{","").replace("}","").replace(",","\n"); barang.add(value); arrayAdapter.notifyDataSetChanged(); } @Override public void onChildChanged(DataSnapshot dataSnapshot,String s) { } @Override public void onChildRemoved(DataSnapshot dataSnapshot){ } @Override public void onChildMoved(DataSnapshot dataSnapshot,String s) { } @Override public void onCancelled(FirebaseError firebaseError) { } }); }}

PesanActivity.java

package com.example.finalproject;import android.content.Context;import android.content.Intent;import android.content.pm.PackageManager;import android.graphics.Color;import android.location.Location;import android.location.LocationManager;import android.os.AsyncTask;import android.os.Bundle;import android.support.annotation.NonNull;import android.support.v4.app.ActivityCompat;import android.support.v4.app.FragmentActivity;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.akexorcist.googledirection.DirectionCallback;import com.akexorcist.googledirection.GoogleDirection;import com.akexorcist.googledirection.constant.TransportMode;import com.akexorcist.googledirection.model.Direction;import com.akexorcist.googledirection.util.DirectionConverter;

G

import com.firebase.client.Firebase;import com.google.android.gms.common.api.GoogleApiClient;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.MarkerOptions;import com.google.firebase.auth.FirebaseAuth;import com.google.firebase.auth.FirebaseUser;import android.Manifest;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.text.DateFormat;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.concurrent.ExecutionException;public class PesanActivity extends FragmentActivity implementsOnMapReadyCallback { private GoogleMap mMap; private EditText txtNamaPembeli; private EditText txtAlamatPembeli; private EditText txtTelpPembeli; private EditText txtBarangDipesan; private EditText txtQuantity; private Button btnOke; private Firebase mRef; private Firebase mRef1; private Firebase mRef2; public String lat; public String longi; Double longitude1; Double latitude1; private String tanggal =DateFormat.getDateTimeInstance().format(new Date()); private FirebaseAuth firebaseAuth; private String email; private LatLng toko; private LatLng origin; private LatLng destination;

H

private TextView tvDistance; private TextView tvDuration; private String urls; String s= "-6.990150"; String s1="110.422987"; String jarak; String waktu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pesan); // Obtain the SupportMapFragment and get notified when themap is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment)getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); Firebase.setAndroidContext(this); firebaseAuth = FirebaseAuth.getInstance();FirebaseUser FirebaseCurrentUser =FirebaseAuth.getInstance().getCurrentUser(); email = FirebaseCurrentUser.getEmail().replace(".", ","); txtNamaPembeli = (EditText) findViewById(R.id.txtNama); txtAlamatPembeli = (EditText)findViewById(R.id.txtAlamat); txtTelpPembeli = (EditText) findViewById(R.id.txtTelpon); txtBarangDipesan = (EditText)findViewById(R.id.txtBarang); txtQuantity = (EditText) findViewById(R.id.txtJumlah); btnOke = (Button) findViewById(R.id.btnSubmits); tvDistance = (TextView) findViewById(R.id.tvJarak); tvDuration = (TextView) findViewById(R.id.tvDurasi); mRef = new Firebase("https://finalproject-73b47.firebaseio.com/DataToko"); } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; if (ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION) !=PackageManager.PERMISSION_GRANTED &&ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_COARSE_LOCATION) !=PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and thenoverriding // public void onRequestPermissionsResult(intrequestCode, String[] permissions, // int[]grantResults) // to handle the case where the user grants thepermission. See the documentation

I

// for ActivityCompat#requestPermissions for moredetails. return; } mMap.setMyLocationEnabled(true); LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location myLocation =locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER); longitude1 = myLocation.getLongitude(); latitude1 = myLocation.getLatitude(); LatLng lokasi = new LatLng(latitude1, longitude1); mMap.addMarker(new MarkerOptions().position(lokasi)); mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(lokasi,18)); toko = new LatLng(-6.990150, 110.422987); lat = Double.toString(latitude1); longi = Double.toString(longitude1); } public void btnSubmits_Click(View view) { final String NamaPembeli =txtNamaPembeli.getText().toString(); final String AlamatPembeli =txtAlamatPembeli.getText().toString(); final String Telp = txtTelpPembeli.getText().toString(); final String Barang =txtBarangDipesan.getText().toString(); final String Jumlah = txtQuantity.getText().toString(); String status = "Belum Diproses"; HashMap<String, String> dataToko = new HashMap<>(); dataToko.put("Nama", NamaPembeli); dataToko.put("Alamat", AlamatPembeli); dataToko.put("Telepon", Telp); dataToko.put("Barang", Barang); dataToko.put("Quantity", Jumlah); dataToko.put("Latitude", lat); dataToko.put("Longitude", longi); dataToko.put("Tanggal", tanggal); dataToko.put("Status", status); dataToko.put("Email", email); mRef.push().setValue(dataToko); Toast.makeText(PesanActivity.this, "Pemesanan telahberhasil", Toast.LENGTH_LONG).show(); String serverKey = "AIzaSyATk8ph2-yClUcaVaFH6IsxaHQ7jP4kYn0"; origin = new LatLng(latitude1, longitude1); destination = toko; urls ="https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=" + latitude1 + "," + longitude1 +"&destinations=-6.990150,110.422987&key=AIzaSyATk8ph2-yClUcaVaFH6IsxaHQ7jP4kYn0"; new ParsingJson(PesanActivity.this).execute(urls);

J

mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(origin,17)); GoogleDirection.withServerKey(serverKey) .from(origin) .to(destination) .transportMode(TransportMode.DRIVING) .execute(new DirectionCallback() { @Override public void onDirectionSuccess(Directiondirection, String rawBody) { if (direction.isOK()) { mMap.addMarker(newMarkerOptions().position(origin)); mMap.addMarker(newMarkerOptions().position(destination).title("Mr. Yanto Stores"));

ArrayList<LatLng>directionPositionList =direction.getRouteList().get(0).getLegList().get(0).getDirectionPoint(); mMap.addPolyline(DirectionConverter.createPolyline(PesanActivity.this, directionPositionList, 2,Color.RED)); } } @Override public void onDirectionFailure(Throwable t) { // Do something here } }); } private class ParsingJson extends AsyncTask<String, Void,String>{ public ParsingJson(PesanActivity pesanActivity) { } @Override protected String doInBackground(String... params) {

try { URL url=new URL(params[0]); HttpURLConnection con= (HttpURLConnection)url.openConnection(); con.setRequestMethod("GET"); con.connect(); int statuscode=con.getResponseCode(); if(statuscode==HttpURLConnection.HTTP_OK) { BufferedReader br=new BufferedReader(newInputStreamReader(con.getInputStream())); StringBuilder sb=new StringBuilder(); String line=br.readLine(); while(line!=null) { sb.append(line);

K

line=br.readLine(); } String json=sb.toString(); JSONObject root=new JSONObject(json); JSONArrayarray_rows=root.getJSONArray("rows"); JSONObjectobject_rows=array_rows.getJSONObject(0); JSONArrayarray_elements=object_rows.getJSONArray("elements"); JSONObjectobject_elements=array_elements.getJSONObject(0); JSONObjectobject_duration=object_elements.getJSONObject("duration"); JSONObjectobject_distance=object_elements.getJSONObject("distance"); return object_duration.getString("value")+","+object_distance.getString("value");

} } catch (MalformedURLException e) { Log.d("error", "error1"); } catch (IOException e) { Log.d("error", "error2"); } catch (JSONException e) { Log.d("error","error3"); } return null; } protected void onPostExecute(String aDouble) { super.onPostExecute(aDouble); if(aDouble!=null) { setDouble(aDouble); } else Toast.makeText(PesanActivity.this, "Error PleaseTry Again", Toast.LENGTH_SHORT).show(); } private void setDouble(String result) { String res[]=result.split(","); Double min=Double.parseDouble(res[0])/60; int dist=Integer.parseInt(res[1])/1000;

tvDuration.setText("Waktu Sampai= " + (int) (min / 60)+ " hr " + (int) (min % 60) + " mins"); tvDistance.setText("Jarak = " + dist + " Kilometers"); } }}

L

HistoryActivity.java

package com.example.finalproject;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;import com.firebase.client.ChildEventListener;import com.firebase.client.DataSnapshot;import com.firebase.client.Firebase;import com.firebase.client.FirebaseError;import com.firebase.client.Query;import com.google.firebase.auth.FirebaseAuth;import com.google.firebase.auth.FirebaseUser;import java.util.ArrayList;public class HistoryActivity extends AppCompatActivity { private Firebase mRef; private FirebaseAuth firebaseAuth; private ListView mListView; private ArrayList<Object> historyData = new ArrayList<>(); private String email; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_history); firebaseAuth = FirebaseAuth.getInstance(); Firebase.setAndroidContext(this); FirebaseUser FirebaseCurrentUser =FirebaseAuth.getInstance().getCurrentUser(); email = FirebaseCurrentUser.getEmail().replace(".",","); mRef = new Firebase("https://finalproject-73b47.firebaseio.com/DataToko"); Query ref = mRef.orderByChild("Email").equalTo(email); mListView = (ListView) findViewById(R.id.listHistory); final ArrayAdapter<Object> arrayAdapter = newArrayAdapter<>(this, android.R.layout.simple_list_item_1,historyData); mListView.setAdapter(arrayAdapter); ref.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot,String s) { Object value =dataSnapshot.getValue().toString().replace("{","").replace("}","").replace(",","\n"); historyData.add(value); arrayAdapter.notifyDataSetChanged(); } @Override public void onChildChanged(DataSnapshot dataSnapshot,String s) { }

M

@Override public void onChildRemoved(DataSnapshot dataSnapshot){ } @Override public void onChildMoved(DataSnapshot dataSnapshot,String s) { } @Override public void onCancelled(FirebaseError firebaseError) { } }); }}

TrackOrderActivity.java

package com.example.finalproject;import android.content.Context;import android.content.pm.PackageManager;import android.graphics.Color;import android.location.Location;import android.location.LocationManager;import android.support.v4.app.ActivityCompat;import android.support.v4.app.FragmentActivity;import android.os.Bundle;import android.widget.TextView;import android.widget.Toast;import com.akexorcist.googledirection.DirectionCallback;import com.akexorcist.googledirection.GoogleDirection;import com.akexorcist.googledirection.constant.TransportMode;import com.akexorcist.googledirection.model.Direction;import com.akexorcist.googledirection.util.DirectionConverter;import com.firebase.client.ChildEventListener;import com.firebase.client.DataSnapshot;import com.firebase.client.Firebase;import com.firebase.client.FirebaseError;import com.firebase.client.Query;import com.firebase.client.ValueEventListener;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.MarkerOptions;import com.google.firebase.auth.FirebaseAuth;import com.google.firebase.auth.FirebaseUser;import java.util.ArrayList;public class TrackOrderActivity extends FragmentActivityimplements OnMapReadyCallback { private GoogleMap mMap; private Firebase mRef;

N

private Double latitude1; private Double longitude1; private Query query; private String email; private String lats; private String longs; private String KEYID; private LatLng origin; private LatLng destination; private Double lati; private Double longi; private Firebase keyFb; private TextView ND; private TextView TD; private String namaDriver; private String telponDriver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_track_order); // Obtain the SupportMapFragment and get notified when themap is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment)getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); Firebase.setAndroidContext(this); FirebaseUser FirebaseCurrentUser =FirebaseAuth.getInstance().getCurrentUser(); email = FirebaseCurrentUser.getEmail().replace(".",","); ND = (TextView) findViewById(R.id.txtNamaDriver); TD = (TextView) findViewById(R.id.txtTelponDriver); mRef = new Firebase("https://finalproject-73b47.firebaseio.com/DataToko"); query = mRef.orderByChild("Email").equalTo(email); query.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot,String s) { namaDriver =dataSnapshot.child("NamaDriver").getValue().toString(); telponDriver =dataSnapshot.child("TeleponDriver").getValue().toString(); } @Override public void onChildChanged(DataSnapshot dataSnapshot,String s) { KEYID = dataSnapshot.getKey(); String value =dataSnapshot.getValue().toString().replace("{", "").replace("}","").replace(",", "\n"); lats =dataSnapshot.child("LatDriver").getValue().toString();

O

longs =dataSnapshot.child("LongDriver").getValue().toString(); namaDriver =dataSnapshot.child("NamaDriver").getValue().toString(); telponDriver =dataSnapshot.child("TeleponDriver").getValue().toString(); buatPeta(); } @Override public void onChildRemoved(DataSnapshot dataSnapshot){ } @Override public void onChildMoved(DataSnapshot dataSnapshot,String s) { } @Override public void onCancelled(FirebaseError firebaseError) { } });LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); if (ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION) !=PackageManager.PERMISSION_GRANTED &&ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_COARSE_LOCATION) !=PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling return; } Location myLocation =locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER); longitude1 = myLocation.getLongitude(); latitude1 = myLocation.getLatitude(); } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; origin = new LatLng(latitude1,longitude1); mMap.addMarker(new MarkerOptions().position(origin)); mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(origin,15)); } public void buatPeta(){ mMap.clear(); lati = Double.parseDouble(lats); longi = Double.parseDouble(longs); String serverKey = "AIzaSyATk8ph2-yClUcaVaFH6IsxaHQ7jP4kYn0"; origin = new LatLng(latitude1, longitude1); destination = new LatLng(lati,longi);

P

mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(origin,15)); GoogleDirection.withServerKey(serverKey) .from(origin) .to(destination) .transportMode(TransportMode.DRIVING) .execute(new DirectionCallback() { @Override public void onDirectionSuccess(Directiondirection, String rawBody) { if (direction.isOK()) { mMap.addMarker(newMarkerOptions().position(origin)); mMap.addMarker(newMarkerOptions().position(destination)); ArrayList<LatLng>directionPositionList =direction.getRouteList().get(0).getLegList().get(0).getDirectionPoint(); mMap.addPolyline(DirectionConverter.createPolyline(TrackOrderActivity.this, directionPositionList, 2,Color.RED)); } } @Override public void onDirectionFailure(Throwable t) { // Do something here } }); ND.setText("Nama Driver: "+namaDriver+""); TD.setText("Telepon Driver: "+telponDriver+""); }}

activity_login.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalproject.LoginActivity"> <TextView android:id="@+id/textView" android:layout_width="174dp" android:layout_height="36dp" android:text="Email Address :" android:textSize="18sp" tools:ignore="HardcodedText,MissingConstraints" android:layout_marginLeft="8dp"

Q

app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="8dp" /> <EditText android:id="@+id/txtEmailLogin" android:layout_width="322dp" android:layout_height="42dp" android:ems="10" android:inputType="textEmailAddress" tools:ignore="LabelFor,MissingConstraints" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/textView" /> <TextView android:id="@+id/textView2" android:layout_width="173dp" android:layout_height="45dp" android:text="Password :" android:textSize="18sp" tools:ignore="HardcodedText,MissingConstraints" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/txtEmailLogin" /> <Button android:id="@+id/btnLoginUser" android:onClick="btnLoginUser_Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Login" tools:ignore="HardcodedText,MissingConstraints" android:layout_marginRight="8dp" app:layout_constraintRight_toRightOf="parent" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/txtPasswordLogin" /> <EditText android:id="@+id/txtPasswordLogin" android:layout_width="322dp" android:layout_height="50dp" android:ems="10" android:inputType="textPassword" tools:ignore="LabelFor,MissingConstraints" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/textView2" /></android.support.constraint.ConstraintLayout>

R

activity_registration.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalproject.RegistrationActivity"> <EditText android:id="@+id/txtEmailRegistration" android:layout_width="323dp" android:layout_height="48dp" android:layout_marginBottom="8dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:layout_marginTop="8dp" android:ems="10" android:hint="Email" android:inputType="textEmailAddress" app:layout_constraintBottom_toTopOf="@+id/txtPasswordRegistration" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="LabelFor,MissingConstraints" /> <Button android:id="@+id/btnRegistrationUser" android:onClick="btnRegistrationUser_Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Submit" tools:ignore="HardcodedText,MissingConstraints" android:layout_marginRight="8dp" app:layout_constraintRight_toRightOf="parent" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintHorizontal_bias="0.41" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="75dp" /> <EditText android:id="@+id/txtPasswordRegistration" android:layout_width="322dp" android:layout_height="47dp" android:layout_marginBottom="20dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:ems="10" android:hint="Password" android:inputType="textPassword" app:layout_constraintBottom_toTopOf="@+id/txtNama"

S

app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" tools:ignore="LabelFor,MissingConstraints" /> <EditText android:id="@+id/txtTelp" android:layout_width="320dp" android:layout_height="53dp" android:layout_marginBottom="43dp" android:layout_marginLeft="0dp" android:layout_marginRight="8dp" android:ems="10" android:hint="Telepon" android:inputType="phone" app:layout_constraintBottom_toTopOf="@+id/btnRegistrationUser" app:layout_constraintHorizontal_bias="0.142" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> <EditText android:id="@+id/txtAlamat" android:layout_width="320dp" android:layout_height="53dp" android:layout_marginBottom="24dp" android:layout_marginLeft="0dp" android:layout_marginRight="8dp" android:ems="10" android:hint="Alamat" android:inputType="textPersonName" app:layout_constraintBottom_toTopOf="@+id/txtTelp" app:layout_constraintHorizontal_bias="0.142" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> <EditText android:id="@+id/txtNama" android:layout_width="320dp" android:layout_height="53dp" android:layout_marginBottom="16dp" android:layout_marginLeft="0dp" android:layout_marginRight="8dp" android:ems="10" android:hint="Nama" android:inputType="textPersonName" app:layout_constraintBottom_toTopOf="@+id/txtAlamat" app:layout_constraintHorizontal_bias="0.142" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /></android.support.constraint.ConstraintLayout>

T

activity_profile.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalproject.ProfileActivity"> <TextView android:id="@+id/textView4" android:layout_width="227dp" android:layout_height="38dp" android:text="Welcome User" android:textSize="20dp" tools:ignore="HardcodedText,MissingConstraints,SpUsage" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="28dp" app:layout_constraintRight_toLeftOf="@+id/btnSignOut" android:layout_marginRight="8dp" app:layout_constraintHorizontal_bias="0.216" android:layout_marginBottom="8dp" app:layout_constraintBottom_toTopOf="@+id/btnListBarang" app:layout_constraintVertical_bias="0.0" /> <Button android:id="@+id/btnPesan" android:onClick="btnPesan_Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:text="Pesan Gas Sekarang" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" tools:ignore="HardcodedText,MissingConstraints" app:layout_constraintHorizontal_bias="0.406" android:layout_marginBottom="38dp" app:layout_constraintBottom_toTopOf="@+id/btnHistory" /> <Button android:id="@+id/btnSignOut" android:onClick="btnSignOut_Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="-3dp" android:text="Sign Out" app:layout_constraintRight_toRightOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="447dp" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="8dp"

U

app:layout_constraintVertical_bias="0.0" /> <Button android:id="@+id/btnHistory" android:onClick="btnHistory_Click" android:layout_width="170dp" android:layout_height="57dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:text="Tampil History Order" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintHorizontal_bias="0.393" android:layout_marginBottom="25dp" app:layout_constraintBottom_toTopOf="@+id/btnTrack" /> <Button android:id="@+id/btnListBarang" android:layout_width="158dp" android:layout_height="56dp" android:layout_marginBottom="44dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:onClick="btnBarang_Click" android:text="Lihat Barang" app:layout_constraintBottom_toTopOf="@+id/btnPesan" app:layout_constraintHorizontal_bias="0.404" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> <Button android:id="@+id/btnTrack" android:onClick="btnTrack_Click" android:layout_width="172dp" android:layout_height="54dp" android:layout_marginBottom="76dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:text="Track Orderan Saat Ini" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.418" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /></android.support.constraint.ConstraintLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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"

V

android:layout_height="match_parent" tools:context="com.example.finalproject.MainActivity"> <Button android:id="@+id/btnRegistration" android:layout_width="258dp" android:layout_height="68dp" android:onClick="btnRegistration_Click" android:text="Registration" tools:ignore="HardcodedText,MissingConstraints" android:layout_marginRight="8dp" app:layout_constraintRight_toRightOf="parent" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginBottom="8dp" app:layout_constraintBottom_toTopOf="@+id/btnLogin" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="8dp" app:layout_constraintVertical_bias="0.444" /> <Button android:id="@+id/btnLogin" android:layout_width="218dp" android:layout_height="55dp" android:onClick="btnLogin_Click" android:text="Login" tools:ignore="HardcodedText,MissingConstraints" android:layout_marginRight="8dp" app:layout_constraintRight_toRightOf="parent" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="213dp" /></android.support.constraint.ConstraintLayout>

activity_list_barang.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalproject.ListBarangActivity"> <ListView android:id="@+id/lvBarang" android:layout_width="368dp" android:layout_height="495dp" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp" /></android.support.constraint.ConstraintLayout>

W

activity_pesan.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="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:weightSum="1" android:orientation="vertical"> <TextView android:id="@+id/tvJarak" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView" /> <TextView android:id="@+id/tvDurasi" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextView" /> <fragment android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="120dp" tools:context="com.example.finalproject.PesanActivity" android:layout_weight="0.40" /> <EditText android:id="@+id/txtNama" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="Nama" android:inputType="textPersonName" /> <EditText android:id="@+id/txtAlamat" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0.03" android:ems="10" android:hint="Alamat" android:inputType="textPersonName" /> <EditText android:id="@+id/txtTelpon" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="Telepon" android:inputType="phone" /> <EditText android:id="@+id/txtBarang" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10"

X

android:hint="Barang" android:inputType="textPersonName" /> <EditText android:id="@+id/txtJumlah" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="Jumlah Barang" android:inputType="textPersonName" /> <Button android:id="@+id/btnSubmits" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="btnSubmits_Click" android:text="Submit" /></LinearLayout>

activity_history

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalproject.HistoryActivity"> <ListView android:id="@+id/listHistory" android:layout_width="368dp" android:layout_height="495dp" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp" /></android.support.constraint.ConstraintLayout>

activity_track_order.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="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:weightSum="1" android:orientation="vertical"><fragmentxmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment"

Y

android:layout_width="match_parent" android:layout_height="410dp" tools:context="com.example.finalproject.TrackOrderActivity" android:layout_weight="0.91" /> <TextView android:id="@+id/txtNamaDriver" android:layout_width="match_parent" android:layout_height="30dp" android:text="TextView" /> <TextView android:id="@+id/txtTelponDriver" android:layout_width="match_parent" android:layout_height="30dp" android:text="TextView" /></LinearLayout>

build.gradle(Project: FinalProject)

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' classpath 'com.google.gms:google-services:3.0.0' }}allprojects { repositories { jcenter() }}task clean(type: Delete) { delete rootProject.buildDir}

build.gradle(Module:app)

apply plugin: 'com.android.application'android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.example.finalproject" minSdkVersion 17 targetSdkVersion 25 versionCode 1 versionName "1.0"

Z

testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner" packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile files('libs/android-async-http-1.4.6.jar') compile files('libs/httpclient-4.0.3.jar') compile files('libs/http-core-4.1.jar') compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.google.firebase:firebase-auth:10.2.1' compile 'com.google.android.gms:play-services-maps:10.2.1' compile 'com.google.android.gms:play-services-auth:10.2.1' compile 'com.google.firebase:firebase-database:10.2.1' compile 'com.google.firebase:firebase-messaging:10.2.1' compile 'com.firebase:firebase-client-android:2.3.1' compile 'com.google.android.gms:play-services-location:10.2.1' compile 'com.akexorcist:googledirectionlibrary:1.0.4' testCompile 'junit:junit:4.12'}apply plugin: 'com.google.gms.google-services'

AA

Application Courier

MainActivity.java

package com.example.finalprojectdriver;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void btnDaftar_Click(View view) { finish(); Intent i = new Intent(MainActivity.this, DaftarActivity.class); startActivity(i); } public void btnLogin_Click(View view) { finish(); Intent i = new Intent(MainActivity.this, LoginActivity.class); startActivity(i); }}

DaftarActivity.java

package com.example.finalprojectdriver;import android.app.ProgressDialog;import android.content.Intent;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.firebase.client.Firebase;import com.google.android.gms.tasks.OnCompleteListener;import com.google.android.gms.tasks.Task;import com.google.firebase.auth.AuthResult;import com.google.firebase.auth.FirebaseAuth;import java.util.HashMap;public class DaftarActivity extends AppCompatActivity { private EditText txtEmails; private EditText txtPasswords; private EditText txtUsernames; private EditText txtPhone;

AB

private EditText txtAddress; private Button btnSub; private FirebaseAuth firebaseAuth; private Firebase mRef; private Bundle ext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_daftar); Firebase.setAndroidContext(this); mRef = new Firebase("https://finalproject-73b47.firebaseio.com/DaftarDriver"); txtEmails = (EditText) findViewById(R.id.txtEmail); txtPasswords = (EditText) findViewById(R.id.txtPassword); txtUsernames = (EditText) findViewById(R.id.txtUsername); txtPhone = (EditText) findViewById(R.id.txtTelpon); txtAddress = (EditText) findViewById(R.id.txtAlamatDriver); btnSub = (Button) findViewById(R.id.btnSubmit); firebaseAuth = FirebaseAuth.getInstance(); if(firebaseAuth.getCurrentUser() != null){ finish(); startActivity(new Intent(getApplicationContext(),ProfileDriverActivity.class)); } } public void btnSubmit_Click(View view){ final ProgressDialog progressDialog =ProgressDialog.show(DaftarActivity.this, "Please Wait...","Processing...", true); (firebaseAuth.createUserWithEmailAndPassword(txtEmails.getText().toString(),txtPasswords.getText().toString())) .addOnCompleteListener(newOnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult>task) { progressDialog.dismiss(); if (task.isSuccessful()){String email = txtEmails.getText().toString().replace(".",",");String pass = txtPasswords.getText().toString();String username = txtUsernames.getText().toString();String phone = txtPhone.getText().toString();String address = txtAddress.getText().toString();HashMap<String, String> dataDriver = new HashMap<>();dataDriver.put("Nama", username);dataDriver.put("Email", email);dataDriver.put("Password", pass);dataDriver.put("Telepon", phone);dataDriver.put("Alamat", address);mRef.child(email).setValue(dataDriver);finish();Toast.makeText(DaftarActivity.this,"RegistrationSuccessful",Toast.LENGTH_LONG).show();Intent i = new Intent(DaftarActivity.this, ProfileDriverActivity.class); startActivity(i); }

AC

else {Log.e("ERROR", task.getException().toString());Toast.makeText(DaftarActivity.this,task.getException().getMessage(),Toast.LENGTH_LONG).show(); } } }); }}

LoginActivity.java

package com.example.finalprojectdriver;import android.app.ProgressDialog;import android.content.Intent;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.EditText;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 LoginActivity extends AppCompatActivity { private EditText txtEmailLogin; private EditText txtPasswordLogin; private FirebaseAuth firebaseAuth; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); firebaseAuth = FirebaseAuth.getInstance(); txtEmailLogin = (EditText) findViewById(R.id.txtEmailLogin); txtPasswordLogin = (EditText)findViewById(R.id.txtPasswordLogin); if(firebaseAuth.getCurrentUser() != null){ finish(); startActivity(new Intent(getApplicationContext(),ProfileDriverActivity.class)); } } public void btnLoginUser_Click(View view){ final ProgressDialog progressDialog =ProgressDialog.show(LoginActivity.this, "Please Wait...","Processing...", true); (firebaseAuth.signInWithEmailAndPassword(txtEmailLogin.getText().toString(), txtPasswordLogin.getText().toString())) .addOnCompleteListener(newOnCompleteListener<AuthResult>() {

AD

@Override public void onComplete(@NonNull Task<AuthResult>task) { progressDialog.dismiss(); if (task.isSuccessful()) { finish(); Toast.makeText(LoginActivity.this, "LoginSuccessful", Toast.LENGTH_LONG).show(); Intent i = new Intent(LoginActivity.this,ProfileDriverActivity.class); startActivity(i); } else{ Log.e("ERROR",task.getException().toString()); Toast.makeText(LoginActivity.this,task.getException().getMessage(), Toast.LENGTH_LONG).show(); } } }); }}

ProfileDriverActivity.java

package com.example.finalprojectdriver;import android.app.ProgressDialog;import android.content.Intent;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.EditText;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 LoginActivity extends AppCompatActivity { private EditText txtEmailLogin; private EditText txtPasswordLogin; private FirebaseAuth firebaseAuth; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); firebaseAuth = FirebaseAuth.getInstance(); txtEmailLogin = (EditText) findViewById(R.id.txtEmailLogin); txtPasswordLogin = (EditText)findViewById(R.id.txtPasswordLogin); if(firebaseAuth.getCurrentUser() != null){

AE

finish(); startActivity(new Intent(getApplicationContext(),ProfileDriverActivity.class)); } } public void btnLoginUser_Click(View view){ final ProgressDialog progressDialog =ProgressDialog.show(LoginActivity.this, "Please Wait...","Processing...", true); (firebaseAuth.signInWithEmailAndPassword(txtEmailLogin.getText().toString(), txtPasswordLogin.getText().toString())) .addOnCompleteListener(newOnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult>task) { progressDialog.dismiss(); if (task.isSuccessful()) { finish(); Toast.makeText(LoginActivity.this, "LoginSuccessful", Toast.LENGTH_LONG).show(); Intent i = new Intent(LoginActivity.this,ProfileDriverActivity.class); startActivity(i); } else{ Log.e("ERROR",task.getException().toString()); Toast.makeText(LoginActivity.this,task.getException().getMessage(), Toast.LENGTH_LONG).show(); } } }); }}

ListJobActivity.java

package com.example.finalprojectdriver;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.pm.PackageManager;import android.location.Location;import android.location.LocationManager;import android.provider.ContactsContract;import android.support.v4.app.ActivityCompat;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;

AF

import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import com.firebase.client.ChildEventListener;import com.firebase.client.DataSnapshot;import com.firebase.client.Firebase;import com.firebase.client.FirebaseError;import com.firebase.client.Query;import com.firebase.client.ValueEventListener;import com.google.firebase.auth.FirebaseAuth;import com.google.firebase.auth.FirebaseUser;import java.security.PrivateKey;import java.util.ArrayList;import java.util.HashMap;public class ListJobActivity extends AppCompatActivity { private ListView viewJob; private Firebase mRef, mRef1; private ArrayList<String> ListJobs = new ArrayList<>(); private FirebaseAuth firebaseAuth; private String email; private Query query, query1; private Firebase keyFb; private String KEYID; private String idOrder; private Double latDriver, longDriver; private String namaDriver; private String alamatDriver; private String teleponDriver; private String latitudess; private String longitudess; private String namaUser; private String alamatUser; private String telponUser; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_job); firebaseAuth = FirebaseAuth.getInstance(); Firebase.setAndroidContext(this); if (ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION) !=PackageManager.PERMISSION_GRANTED &&ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_COARSE_LOCATION) !=PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling return; } LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location myLocation =locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER); longDriver = myLocation.getLongitude(); latDriver = myLocation.getLatitude();

AG

FirebaseUser FirebaseCurrentUser =FirebaseAuth.getInstance().getCurrentUser(); email = FirebaseCurrentUser.getEmail().replace(".", ","); mRef = new Firebase("https://finalproject-73b47.firebaseio.com/DataToko"); query = mRef.orderByChild("Status").equalTo("Belum Diproses"); viewJob = (ListView) findViewById(R.id.listJob); final ArrayAdapter<String> arrayAdapter = newArrayAdapter<>(this, android.R.layout.simple_list_item_1, ListJobs); viewJob.setAdapter(arrayAdapter); getProfileDriver(); query.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, Strings) { KEYID = dataSnapshot.getKey(); String value =dataSnapshot.getValue().toString().replace("{", "").replace("}","").replace(",", "\n"); latitudess =dataSnapshot.child("Latitude").getValue().toString(); longitudess =dataSnapshot.child("Longitude").getValue().toString(); namaUser =dataSnapshot.child("Nama").getValue().toString(); alamatUser =dataSnapshot.child("Alamat").getValue().toString(); telponUser =dataSnapshot.child("Telepon").getValue().toString(); ListJobs.add(value); arrayAdapter.notifyDataSetChanged(); } @Override public void onChildChanged(DataSnapshot dataSnapshot,String s) { } @Override public void onChildRemoved(DataSnapshot dataSnapshot) { } @Override public void onChildMoved(DataSnapshot dataSnapshot, Strings) { } @Override public void onCancelled(FirebaseError firebaseError) { } }); viewJob.setOnItemClickListener(newAdapterView.OnItemClickListener() { @Override public void onItemClick(final AdapterView<?> parent, finalView view, final int position, final long id) { final String message = "Sedang di proses oleh driver "+ namaDriver + "";

AH

AlertDialog.Builder a_builder = newAlertDialog.Builder(ListJobActivity.this); a_builder.setMessage("Apa anda yakin mau ambil jobini?") .setCancelable(false) .setPositiveButton("Ya", newDialogInterface.OnClickListener() { @Override public void onClick(DialogInterfacedialog, int which) { //Toast.makeText(ListJobActivity.this,idOrder, Toast.LENGTH_SHORT).show(); keyFb = mRef.child(KEYID); keyFb.child("Status").setValue(message); keyFb.child("LatDriver").setValue(latDriver); keyFb.child("LongDriver").setValue(longDriver); keyFb.child("NamaDriver").setValue(namaDriver); keyFb.child("TeleponDriver").setValue(teleponDriver); Intent i = newIntent(ListJobActivity.this, TrackActivityDriver.class); i.putExtra("LatUser",latitudess); i.putExtra("LongUser",longitudess); i.putExtra("NamaUser",namaUser); i.putExtra("AlamatUser",alamatUser); i.putExtra("TeleponUser",telponUser); i.putExtra("NamaDriver",namaDriver); //Intent a =newIntent(getApplicationContext(),GPS_SERVICE.class); //startService(a); startActivity(i); } }) .setNegativeButton("Tidak", newDialogInterface.OnClickListener() { @Override public void onClick(DialogInterfacedialog, int which) { dialog.cancel(); } }); AlertDialog alert = a_builder.create(); alert.setTitle("Perhatian"); alert.show(); } }); } public void getProfileDriver() { mRef1 = new Firebase("https://finalproject-73b47.firebaseio.com/DaftarDriver"); Query driver = mRef1.orderByChild("Email").equalTo(email);

AI

driver.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for(DataSnapshot driv: dataSnapshot.getChildren()){ namaDriver =driv.child("Nama").getValue().toString(); alamatDriver =driv.child("Alamat").getValue().toString(); teleponDriver =driv.child("Telepon").getValue().toString(); } } @Override public void onCancelled(FirebaseError firebaseError) { } }); }}

TrackActivityDriver.java

package com.example.finalprojectdriver;import android.content.BroadcastReceiver;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.IntentFilter;import android.content.pm.PackageManager;import android.graphics.Color;import android.location.Location;import android.location.LocationManager;import android.support.annotation.NonNull;import android.support.annotation.Nullable;import android.support.v4.app.ActivityCompat;import android.support.v4.app.FragmentActivity;import android.os.Bundle;import android.support.v7.app.AlertDialog;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import com.akexorcist.googledirection.DirectionCallback;import com.akexorcist.googledirection.GoogleDirection;import com.akexorcist.googledirection.constant.TransportMode;import com.akexorcist.googledirection.model.Direction;import com.akexorcist.googledirection.util.DirectionConverter;import com.firebase.client.ChildEventListener;import com.firebase.client.DataSnapshot;import com.firebase.client.Firebase;import com.firebase.client.FirebaseError;import com.firebase.client.Query;import com.google.android.gms.common.ConnectionResult;

AJ

import com.google.android.gms.common.api.GoogleApiClient;import com.google.android.gms.location.FusedLocationProviderApi;import com.google.android.gms.location.LocationListener;import com.google.android.gms.location.LocationRequest;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.MarkerOptions;import java.util.ArrayList;public class TrackActivityDriver extends FragmentActivityimplements OnMapReadyCallback,GoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener, LocationListener { private GoogleMap mMap; private String a; private String b; private String c; private String d; private String e; private String f; private Double latUser; private Double longUser; private Double latitude1; private Double longitude1; private LatLng lokasiUser; private LatLng origin; private LatLng destination; private TextView tvNama; private TextView tvAlamat; private TextView tvTelpon; private Button selesai; private BroadcastReceiver broadcastReceiver; private Firebase mRef; private Query query; private String KEYID; private Firebase keyFB; private String latitudeee; private String longitudeee; private FusedLocationProviderApi locationProvider =LocationServices.FusedLocationApi; private GoogleApiClient googleApiClient; private LocationRequest locationRequest; private Double myLatitude; private Double myLongitude; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_track_driver); SupportMapFragment mapFragment = (SupportMapFragment)getSupportFragmentManager()

AK

.findFragmentById(R.id.map); mapFragment.getMapAsync(this); Firebase.setAndroidContext(this); Bundle bundle = getIntent().getExtras(); if (bundle != null) { a = bundle.getString("LatUser"); b = bundle.getString("LongUser"); c = bundle.getString("NamaUser"); d = bundle.getString("AlamatUser"); e = bundle.getString("TeleponUser"); f = bundle.getString("NamaDriver"); } googleApiClient = new GoogleApiClient.Builder(this) .addApi(LocationServices.API) .addConnectionCallbacks(TrackActivityDriver.this) .addOnConnectionFailedListener(this) .build(); locationRequest = new LocationRequest(); locationRequest.setInterval(20 * 1000); locationRequest.setFastestInterval(30 * 1000); locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY); mRef = new Firebase("https://finalproject-73b47.firebaseio.com/DataToko"); query = mRef.orderByChild("Status").equalTo("Sedang di prosesoleh driver " + f + ""); query.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, Strings) { KEYID = dataSnapshot.getKey(); String value =dataSnapshot.getValue().toString().replace("{", "").replace("}","").replace(",", "\n"); } @Override public void onChildChanged(DataSnapshot dataSnapshot,String s) { } @Override public void onChildRemoved(DataSnapshot dataSnapshot) { } @Override public void onChildMoved(DataSnapshot dataSnapshot, Strings) { } @Override public void onCancelled(FirebaseError firebaseError) { } }); tvNama = (TextView) findViewById(R.id.txtName); tvAlamat = (TextView) findViewById(R.id.txtAddress); tvTelpon = (TextView) findViewById(R.id.txtPhone); tvNama.setText("Nama Pembeli: " + c + "");

AL

tvAlamat.setText("Alamat Lengkap: " + d + ""); tvTelpon.setText("Telepon Pembeli: " + e + ""); selesai = (Button) findViewById(R.id.btnFinish); } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; latUser = Double.parseDouble(a); longUser = Double.parseDouble(b); LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); if (ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION) !=PackageManager.PERMISSION_GRANTED &&ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_COARSE_LOCATION) !=PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling return; } Location myLocation =locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER); longitude1 = myLocation.getLongitude(); latitude1 = myLocation.getLatitude(); lokasiUser = new LatLng(latUser, longUser); String serverKey = "AIzaSyATk8ph2-yClUcaVaFH6IsxaHQ7jP4kYn0"; origin = new LatLng(latitude1, longitude1); destination = lokasiUser; mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(origin, 17)); GoogleDirection.withServerKey(serverKey) .from(origin) .to(destination) .transportMode(TransportMode.DRIVING) .execute(new DirectionCallback() { @Override public void onDirectionSuccess(Direction direction,String rawBody) { if (direction.isOK()) { mMap.addMarker(newMarkerOptions().position(origin)); mMap.addMarker(newMarkerOptions().position(destination)); ArrayList<LatLng> directionPositionList =direction.getRouteList().get(0).getLegList().get(0).getDirectionPoint(); mMap.addPolyline(DirectionConverter.createPolyline(TrackActivityDriver.this, directionPositionList, 2, Color.RED)); } } @Override public void onDirectionFailure(Throwable t) { } }); } public void buatPetaBaru() { mMap.clear();

AM

String serverKey = "AIzaSyATk8ph2-yClUcaVaFH6IsxaHQ7jP4kYn0"; origin = new LatLng(myLatitude, myLongitude); destination = lokasiUser; mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(origin, 17)); GoogleDirection.withServerKey(serverKey) .from(origin) .to(destination) .transportMode(TransportMode.DRIVING) .execute(new DirectionCallback() { @Override public void onDirectionSuccess(Direction direction,String rawBody) { if (direction.isOK()) { mMap.addMarker(newMarkerOptions().position(origin)); mMap.addMarker(newMarkerOptions().position(destination)); ArrayList<LatLng> directionPositionList =direction.getRouteList().get(0).getLegList().get(0).getDirectionPoint(); mMap.addPolyline(DirectionConverter.createPolyline(TrackActivityDriver.this, directionPositionList, 2, Color.RED)); } } @Override public void onDirectionFailure(Throwable t) { } }); } public void btnFinish_Click(View view) { Intent i = new Intent(TrackActivityDriver.this,GPS_SERVICE.class); stopService(i); AlertDialog.Builder a_builder = newAlertDialog.Builder(TrackActivityDriver.this); a_builder.setMessage("Apakah Orderan Sudah Selesai?") .setCancelable(false) .setPositiveButton("Ya", newDialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, intwhich) { keyFB = mRef.child(KEYID); keyFB.child("Status").setValue("Sudahdiselesaikan oleh driver " + f + ""); Intent a = newIntent(TrackActivityDriver.this, ProfileDriverActivity.class); finish(); startActivity(a); } }) .setNegativeButton("Tidak", newDialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, intwhich) {

AN

dialog.cancel(); } }); AlertDialog alert = a_builder.create(); alert.setTitle("Perhatian"); alert.show(); } @Override public void onConnected(@Nullable Bundle bundle) { requestLocationUpdates(); } private void requestLocationUpdates() { if (ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION) !=PackageManager.PERMISSION_GRANTED &&ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_COARSE_LOCATION) !=PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling return; } LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, this); } @Override public void onConnectionSuspended(int i) { } @Override public void onConnectionFailed(@NonNull ConnectionResultconnectionResult) { } @Override public void onLocationChanged(Location location) { myLatitude = location.getLatitude(); myLongitude = location.getLongitude(); keyFB = mRef.child(KEYID); keyFB.child("LatDriver").setValue(myLatitude); keyFB.child("LongDriver").setValue(myLongitude); buatPetaBaru(); } @Override protected void onStart() { super.onStart(); googleApiClient.connect(); } @Override protected void onResume() { super.onResume(); if (googleApiClient.isConnected()) { requestLocationUpdates(); } } @Override protected void onPause() {

AO

super.onPause(); LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient, this); } @Override protected void onStop() { super.onStop(); googleApiClient.disconnect(); }}

activity_daftar.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalprojectdriver.DaftarActivity"> <EditText android:id="@+id/txtEmail" android:layout_width="297dp" android:layout_height="65dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:ems="10" android:hint="Email" android:inputType="textPersonName" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="8dp" android:layout_marginBottom="8dp" app:layout_constraintBottom_toTopOf="@+id/txtPassword" /> <EditText android:id="@+id/txtPassword" android:layout_width="301dp" android:layout_height="71dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:ems="10" android:hint="Password" android:inputType="textPassword" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" android:layout_marginBottom="11dp" app:layout_constraintBottom_toTopOf="@+id/txtUsername" /> <Button

AP

android:id="@+id/btnSubmit" android:onClick="btnSubmit_Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="34dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:text="Submit" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintHorizontal_bias="0.457" /> <EditText android:id="@+id/txtUsername" android:layout_width="305dp" android:layout_height="65dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:ems="10" android:hint="Username" android:inputType="textPersonName" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" android:layout_marginBottom="8dp" app:layout_constraintBottom_toTopOf="@+id/txtTelpon" /> <EditText android:id="@+id/txtTelpon" android:layout_width="306dp" android:layout_height="67dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:ems="10" android:hint="Telepon" android:inputType="phone" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" android:layout_marginBottom="8dp" app:layout_constraintBottom_toTopOf="@+id/txtAlamatDriver" /> <EditText android:id="@+id/txtAlamatDriver" android:layout_width="306dp" android:layout_height="67dp" android:layout_marginBottom="83dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:ems="10" android:hint="Alamat" android:inputType="text" app:layout_constraintBottom_toTopOf="@+id/btnSubmit" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" />

AQ

</android.support.constraint.ConstraintLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalprojectdriver.MainActivity"> <Button android:id="@+id/btnDaftar" android:onClick="btnDaftar_Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:layout_marginTop="76dp" android:text="Daftar" app:layout_constraintBottom_toTopOf="@+id/btnLogin" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.115" /> <Button android:id="@+id/btnLogin" android:onClick="btnLogin_Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:text="Login" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" tools:layout_editor_absoluteY="198dp" /></android.support.constraint.ConstraintLayout>

login_activity.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalprojectdriver.LoginActivity">

AR

<TextView android:id="@+id/textView" android:layout_width="174dp" android:layout_height="36dp" android:text="Email Address :" android:textSize="18sp" tools:ignore="HardcodedText,MissingConstraints" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="8dp" /> <EditText android:id="@+id/txtEmailLogin" android:layout_width="322dp" android:layout_height="42dp" android:ems="10" android:inputType="textEmailAddress" tools:ignore="LabelFor,MissingConstraints" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/textView" /> <TextView android:id="@+id/textView2" android:layout_width="173dp" android:layout_height="45dp" android:text="Password :" android:textSize="18sp" tools:ignore="HardcodedText,MissingConstraints" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/txtEmailLogin" /> <Button android:id="@+id/btnLoginUser" android:onClick="btnLoginUser_Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Login" tools:ignore="HardcodedText,MissingConstraints" android:layout_marginRight="8dp" app:layout_constraintRight_toRightOf="parent" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/txtPasswordLogin" /> <EditText android:id="@+id/txtPasswordLogin" android:layout_width="322dp" android:layout_height="50dp" android:ems="10" android:inputType="textPassword" tools:ignore="LabelFor,MissingConstraints" android:layout_marginLeft="8dp"

AS

app:layout_constraintLeft_toLeftOf="parent" android:layout_marginTop="8dp" app:layout_constraintTop_toBottomOf="@+id/textView2" /></android.support.constraint.ConstraintLayout>

activity_list_job.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalprojectdriver.ListJobActivity"> <ListView android:id="@+id/listJob" android:layout_width="375dp" android:layout_height="526dp" tools:layout_editor_absoluteX="5dp" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="-8dp" /></android.support.constraint.ConstraintLayout>

activity_track_driver.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="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:weightSum="1" android:orientation="vertical"> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="339dp" tools:context="com.example.finalprojectdriver.TrackActivityDriver" android:layout_weight="0.49" /> <TextView android:id="@+id/txtName" android:layout_width="match_parent" android:layout_height="30dp" android:text="TextView" /> <TextView

AT

android:id="@+id/txtAddress" android:layout_width="match_parent" android:layout_height="30dp" android:text="TextView" /> <TextView android:id="@+id/txtPhone" android:layout_width="match_parent" android:layout_height="30dp" android:text="TextView" /> <Button android:id="@+id/btnFinish" android:onClick="btnFinish_Click" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Selesai Mengantar" /></LinearLayout>

build.gradle(Project: FinalProjectDriver)

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath 'com.google.gms:google-services:3.0.0' }}allprojects { repositories { jcenter() }}task clean(type: Delete) { delete rootProject.buildDir}

build.gradle(Module: app)

apply plugin: 'com.android.application'android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.example.finalprojectdriver" minSdkVersion 17 targetSdkVersion 25 versionCode 1 versionName "1.0"

AU

testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner" packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.google.firebase:firebase-auth:10.2.1' compile 'com.google.android.gms:play-services-maps:10.2.1' compile 'com.google.android.gms:play-services-auth:10.2.1' compile 'com.google.firebase:firebase-database:10.2.1' compile 'com.google.firebase:firebase-messaging:10.2.1' compile 'com.firebase:firebase-client-android:2.3.1' compile 'com.google.android.gms:play-services-location:10.2.1' compile 'com.akexorcist:googledirectionlibrary:1.0.4' compile 'com.android.support:recyclerview-v7:25.3.1' compile 'com.android.support:cardview-v7:25.3.1' testCompile 'junit:junit:4.12'}apply plugin: 'com.google.gms.google-services'

AV

Application Admin

MainActivity.java

package com.example.finalprojectadmin;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void tampilOrderData_Click(View view){ Intent i = new Intent(MainActivity.this, OrderActivity.class); startActivity(i); } public void btnTmbh_Click(View view){ Intent i = new Intent(MainActivity.this, TambahActivity.class); startActivity(i); }}

OrderActivity.java

package com.example.finalprojectadmin;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;import com.firebase.client.ChildEventListener;import com.firebase.client.DataSnapshot;import com.firebase.client.Firebase;import com.firebase.client.FirebaseError;import com.firebase.client.Query;import java.util.ArrayList;public class OrderActivity extends AppCompatActivity { private Firebase mRef; private ListView mListView; private ArrayList<Object> dataDetail = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_order); Firebase.setAndroidContext(this); mRef = new Firebase("https://finalproject-73b47.firebaseio.com/DataToko"); mListView = (ListView) findViewById(R.id.listOrder);

AW

final ArrayAdapter<Object> arrayAdapter = newArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataDetail); mListView.setAdapter(arrayAdapter); Query ref = mRef.orderByChild("Tanggal"); ref.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, Strings) { Object value =dataSnapshot.getValue().toString().replace("{","").replace("}","").replace(",","\n"); dataDetail.add(value); arrayAdapter.notifyDataSetChanged(); } @Override public void onChildChanged(DataSnapshot dataSnapshot,String s) { } @Override public void onChildRemoved(DataSnapshot dataSnapshot) { } @Override public void onChildMoved(DataSnapshot dataSnapshot, Strings) { } @Override public void onCancelled(FirebaseError firebaseError) { } }); }}

TambahActivity.java

package com.example.finalprojectadmin;import android.content.Intent;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.Toast;import com.firebase.client.Firebase;import java.util.HashMap;public class TambahActivity extends AppCompatActivity { private Firebase mRef; private EditText txtBarangs; private EditText txtHargas; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tambah);

AX

Firebase.setAndroidContext(this); txtBarangs = (EditText) findViewById(R.id.txtBarang); txtHargas = (EditText) findViewById(R.id.txtHarga); mRef = new Firebase("https://finalproject-73b47.firebaseio.com/DaftarBarang"); } public void btnSubmit_Click(View view){ String NamaBarang = txtBarangs.getText().toString(); String HargaBarang = txtHargas.getText().toString(); HashMap<String, String> dataBarang = new HashMap<>(); dataBarang.put("Barang", NamaBarang); dataBarang.put("Harga", HargaBarang); mRef.push().setValue(dataBarang); Toast.makeText(TambahActivity.this,"Barang Telah Ditambahkan",Toast.LENGTH_LONG).show(); }}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalprojectadmin.MainActivity"> <Button android:id="@+id/tampilOrderData" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:text="Tampil Order Data" android:onClick="tampilOrderData_Click" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="320dp" /> <Button android:id="@+id/btnTmbh" android:onClick="btnTmbh_Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:layout_marginTop="41dp" android:text="Tambah Barang" app:layout_constraintBottom_toTopOf="@+id/tampilOrderData" app:layout_constraintLeft_toLeftOf="parent"

AY

app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /></android.support.constraint.ConstraintLayout>

activity_order.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalprojectadmin.OrderActivity"> <ListView android:id="@+id/listOrder" android:layout_width="368dp" android:layout_height="495dp" android:layout_marginTop="5dp" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /></android.support.constraint.ConstraintLayout>

activity_tambah.xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayoutxmlns: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" tools:context="com.example.finalprojectadmin.TambahActivity"> <EditText android:id="@+id/txtBarang" android:layout_width="0dp" android:layout_height="69dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:ems="10" android:inputType="textPersonName" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" android:layout_marginBottom="8dp" app:layout_constraintBottom_toTopOf="@+id/textView2" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" /> <EditText android:id="@+id/txtHarga"

AZ

android:layout_width="365dp" android:layout_height="69dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:ems="10" android:inputType="textPersonName" app:layout_constraintHorizontal_bias="0.666" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="16dp" app:layout_constraintBottom_toTopOf="@+id/btnSubmit" /> <TextView android:id="@+id/textView" android:layout_width="196dp" android:layout_height="40dp" android:text="Nama Barang" android:textSize="18sp" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="16dp" android:layout_marginRight="8dp" app:layout_constraintRight_toRightOf="parent" app:layout_constraintHorizontal_bias="0.0" android:layout_marginBottom="8dp" app:layout_constraintBottom_toTopOf="@+id/txtBarang" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" /> <TextView android:id="@+id/textView2" android:layout_width="198dp" android:layout_height="46dp" android:text="Harga" android:textSize="18sp" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginRight="8dp" app:layout_constraintRight_toRightOf="parent" app:layout_constraintHorizontal_bias="0.0" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" app:layout_constraintBottom_toTopOf="@+id/txtHarga" /> <Button android:id="@+id/btnSubmit" android:onClick="btnSubmit_Click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Submit" android:layout_marginRight="8dp" app:layout_constraintRight_toRightOf="parent" android:layout_marginLeft="8dp"

BA

app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="168dp" app:layout_constraintHorizontal_bias="0.457" /></android.support.constraint.ConstraintLayout>

build.gradle(Project: FinalProjectAdmin)

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' classpath 'com.google.gms:google-services:3.0.0' }}allprojects { repositories { jcenter() }}task clean(type: Delete) { delete rootProject.buildDir}

build.gradle(Module: app)

apply plugin: 'com.android.application'android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.example.finalprojectadmin" minSdkVersion 17 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner" packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt'

BB

exclude 'META-INF/LGPL2.1' } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.google.firebase:firebase-auth:10.2.1' compile 'com.google.android.gms:play-services-maps:10.2.1' compile 'com.google.android.gms:play-services-auth:10.2.1' compile 'com.google.firebase:firebase-database:10.2.1' compile 'com.google.firebase:firebase-messaging:10.2.1' compile 'com.firebase:firebase-client-android:2.3.1' compile 'com.google.android.gms:play-services-location:10.2.1' compile 'com.akexorcist:googledirectionlibrary:1.0.4' compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.google.firebase:firebase-auth:10.2.1' compile 'com.google.android.gms:play-services-maps:10.2.1' compile 'com.google.android.gms:play-services-auth:10.2.1' compile 'com.google.firebase:firebase-database:10.2.1' compile 'com.google.firebase:firebase-messaging:10.2.1' compile 'com.firebase:firebase-client-android:2.3.1' compile 'com.google.android.gms:play-services-location:10.2.1' compile 'com.akexorcist:googledirectionlibrary:1.0.4' testCompile 'junit:junit:4.12'}apply plugin: 'com.google.gms.google-services'

BC

BD

BE

BF


Recommended