mirror of
https://github.com/hmalik144/Driver.git
synced 2025-12-10 02:45:20 +00:00
New push with junit espresso tests
This commit is contained in:
14
.idea/assetWizardSettings.xml
generated
14
.idea/assetWizardSettings.xml
generated
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="WizardSettings">
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="imageWizard">
|
||||
<value>
|
||||
<PersistentState />
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -29,7 +29,7 @@
|
||||
</value>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -1,4 +1,5 @@
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
@@ -6,8 +7,8 @@ android {
|
||||
applicationId "h_mal.appttude.com.driver"
|
||||
minSdkVersion 24
|
||||
targetSdkVersion 28
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
versionCode 5
|
||||
versionName "1.5"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
buildTypes {
|
||||
@@ -22,17 +23,24 @@ dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
implementation 'com.android.support:design:28.0.0'
|
||||
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
|
||||
implementation 'com.android.support:cardview-v7:26.1.0'
|
||||
implementation 'com.android.support:cardview-v7:28.0.0'
|
||||
implementation 'com.android.support:support-v4:28.0.0'
|
||||
implementation 'com.android.support:exifinterface:28.0.0'
|
||||
implementation 'com.google.android.gms:play-services-auth:15.0.1'
|
||||
implementation 'com.google.firebase:firebase-core:16.0.1'
|
||||
implementation 'com.google.firebase:firebase-auth:16.0.1'
|
||||
implementation 'com.google.firebase:firebase-storage:16.0.1'
|
||||
implementation 'com.google.firebase:firebase-database:16.0.1'
|
||||
implementation 'com.github.chrisbanes:PhotoView:2.1.0'
|
||||
implementation 'com.squareup.picasso:picasso:2.71828'
|
||||
implementation 'com.google.code.gson:gson:2.3.1'
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
||||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
||||
androidTestImplementation 'com.android.support.test:rules:1.0.2'
|
||||
}
|
||||
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
@@ -3,7 +3,10 @@ package h_mal.appttude.com.driver;
|
||||
import android.content.Context;
|
||||
import android.support.test.InstrumentationRegistry;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
import android.view.View;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@@ -23,4 +26,5 @@ public class ExampleInstrumentedTest {
|
||||
|
||||
assertEquals("h_mal.appttude.com.driver", appContext.getPackageName());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,13 +19,12 @@
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity
|
||||
android:name=".LoginActivity"
|
||||
android:name=".User.LoginActivity"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/Theme.Design.NoActionBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
@@ -36,9 +35,10 @@
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
|
||||
</activity>
|
||||
<activity android:name=".RegisterActivity">
|
||||
<activity android:name=".User.RegisterActivity">
|
||||
|
||||
</activity>
|
||||
|
||||
<provider
|
||||
android:name="android.support.v4.content.FileProvider"
|
||||
android:authorities="h_mal.appttude.com.driver"
|
||||
@@ -46,8 +46,10 @@
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_paths"></meta-data>
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
|
||||
<activity android:name=".User.forgotPasswordActivity"></activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,293 @@
|
||||
package h_mal.appttude.com.driver.Archive;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.ImageSwiperClass;
|
||||
import h_mal.appttude.com.driver.Objects.ArchiveObject;
|
||||
import h_mal.appttude.com.driver.Objects.DriverProfileObject;
|
||||
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
|
||||
import h_mal.appttude.com.driver.Objects.InsuranceObject;
|
||||
import h_mal.appttude.com.driver.Objects.LogbookObject;
|
||||
import h_mal.appttude.com.driver.Objects.MotObject;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireVehicleObject;
|
||||
import h_mal.appttude.com.driver.Objects.VehicleProfileObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.VehicleProfile;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.*;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson;
|
||||
import static h_mal.appttude.com.driver.MainActivity.setAsDateTime;
|
||||
|
||||
public class ArchiveObjectListAdapter extends BaseAdapter {
|
||||
|
||||
private static String TAG = "ArchiveObjectListAdapte";
|
||||
|
||||
ArchiveObject archiveObject;
|
||||
Context context;
|
||||
String archiveString;
|
||||
|
||||
int size;
|
||||
String[] mKeys;
|
||||
|
||||
private TextView dateArchivedText;
|
||||
|
||||
public ArchiveObjectListAdapter(ArchiveObject archiveObject, Context context, String archiveString) {
|
||||
this.archiveObject = archiveObject;
|
||||
this.context = context;
|
||||
this.archiveString = archiveString;
|
||||
|
||||
switch (archiveString){
|
||||
case PRIVATE_HIRE_FIREBASE:
|
||||
size = archiveObject.getPrivate_hire().size();
|
||||
mKeys = archiveObject.getPrivate_hire().keySet().toArray(new String[archiveObject.getPrivate_hire().size()]);
|
||||
break;
|
||||
case DRIVERS_LICENSE_FIREBASE:
|
||||
size = archiveObject.getDriver_license().size();
|
||||
mKeys = archiveObject.getDriver_license().keySet().toArray(new String[archiveObject.getDriver_license().size()]);
|
||||
break;
|
||||
case VEHICLE_DETAILS_FIREBASE:
|
||||
size = archiveObject.getVehicle_details().size();
|
||||
mKeys = archiveObject.getVehicle_details().keySet().toArray(new String[archiveObject.getVehicle_details().size()]);
|
||||
break;
|
||||
case MOT_FIREBASE:
|
||||
size = archiveObject.getMot_details().size();
|
||||
mKeys = archiveObject.getMot_details().keySet().toArray(new String[archiveObject.getMot_details().size()]);
|
||||
break;
|
||||
case INSURANCE_FIREBASE:
|
||||
size = archiveObject.getInsurance_details().size();
|
||||
mKeys = archiveObject.getInsurance_details().keySet().toArray(new String[archiveObject.getInsurance_details().size()]);
|
||||
break;
|
||||
case LOG_BOOK_FIREBASE:
|
||||
size = archiveObject.getLog_book().size();
|
||||
mKeys = archiveObject.getLog_book().keySet().toArray(new String[archiveObject.getLog_book().size()]);
|
||||
break;
|
||||
case PRIVATE_HIRE_VEHICLE_LICENSE:
|
||||
size = archiveObject.getPh_car().size();
|
||||
mKeys = archiveObject.getPh_car().keySet().toArray(new String[archiveObject.getPh_car().size()]);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return size;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getItem(int position) {
|
||||
switch (archiveString){
|
||||
case PRIVATE_HIRE_FIREBASE:
|
||||
return archiveObject.getPrivate_hire().get(mKeys[position]);
|
||||
case DRIVERS_LICENSE_FIREBASE:
|
||||
return archiveObject.getDriver_license().get(mKeys[position]);
|
||||
case VEHICLE_DETAILS_FIREBASE:
|
||||
return archiveObject.getVehicle_details().get(mKeys[position]);
|
||||
case MOT_FIREBASE:
|
||||
return archiveObject.getMot_details().get(mKeys[position]);
|
||||
case INSURANCE_FIREBASE:
|
||||
return archiveObject.getInsurance_details().get(mKeys[position]);
|
||||
case LOG_BOOK_FIREBASE:
|
||||
return archiveObject.getLog_book().get(mKeys[position]);
|
||||
case PRIVATE_HIRE_VEHICLE_LICENSE:
|
||||
return archiveObject.getPh_car().get(mKeys[position]);
|
||||
default:
|
||||
return mKeys[position];
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View listItemView = convertView;
|
||||
if (listItemView == null) {
|
||||
if (archiveString.equals(PRIVATE_HIRE_FIREBASE) ||
|
||||
archiveString.equals(DRIVERS_LICENSE_FIREBASE) ||
|
||||
archiveString.equals(MOT_FIREBASE) ||
|
||||
archiveString.equals(LOG_BOOK_FIREBASE) ||
|
||||
archiveString.equals(PRIVATE_HIRE_VEHICLE_LICENSE)){
|
||||
|
||||
listItemView = LayoutInflater.from(context).inflate(
|
||||
R.layout.archive_license_item, parent, false);
|
||||
|
||||
ImageView imageView = listItemView.findViewById(R.id.image_archive);
|
||||
ProgressBar progressBar = listItemView.findViewById(R.id.prog_archive);
|
||||
dateArchivedText = listItemView.findViewById(R.id.date_archived);
|
||||
|
||||
LinearLayout expiryHolder = listItemView.findViewById(R.id.expiry_view);
|
||||
LinearLayout fieldTwo = listItemView.findViewById(R.id.field_two_view);
|
||||
|
||||
TextView expiryText = listItemView.findViewById(R.id.exp_text);
|
||||
TextView fiewTwoLable = listItemView.findViewById(R.id.field_two);
|
||||
TextView fieldTwoText = listItemView.findViewById(R.id.field_two_text);
|
||||
|
||||
switch (archiveString){
|
||||
case PRIVATE_HIRE_FIREBASE:
|
||||
expiryHolder.setVisibility(View.VISIBLE);
|
||||
fieldTwo.setVisibility(View.VISIBLE);
|
||||
|
||||
PrivateHireObject privateHireObject = (PrivateHireObject) getItem(position);
|
||||
|
||||
Picasso.get().load(privateHireObject.getPhImageString())
|
||||
.into(loadImage(progressBar,imageView));
|
||||
dateString(position);
|
||||
|
||||
expiryText.setText(privateHireObject.getPhExpiry());
|
||||
fiewTwoLable.setText("Private Hire License No.:");
|
||||
fieldTwoText.setText(privateHireObject.getPhNumber());
|
||||
break;
|
||||
case DRIVERS_LICENSE_FIREBASE:
|
||||
expiryHolder.setVisibility(View.VISIBLE);
|
||||
fieldTwo.setVisibility(View.VISIBLE);
|
||||
|
||||
DriversLicenseObject driversLicenseObject = (DriversLicenseObject) getItem(position);
|
||||
|
||||
Picasso.get().load(driversLicenseObject.getLicenseImageString())
|
||||
.into(loadImage(progressBar,imageView));
|
||||
dateString(position);
|
||||
|
||||
expiryText.setText(driversLicenseObject.getLicenseExpiry());
|
||||
fiewTwoLable.setText("License No.:");
|
||||
fieldTwoText.setText(driversLicenseObject.getLicenseNumber());
|
||||
break;
|
||||
case MOT_FIREBASE:
|
||||
Log.i(TAG, "getView: MOT OBJECT");
|
||||
expiryHolder.setVisibility(View.VISIBLE);
|
||||
fieldTwo.setVisibility(View.GONE);
|
||||
|
||||
MotObject motObject = (MotObject) getItem(position);
|
||||
|
||||
Picasso.get().load(motObject.getMotImageString())
|
||||
.into(loadImage(progressBar,imageView));
|
||||
dateString(position);
|
||||
expiryText.setText(motObject.getMotExpiry());
|
||||
break;
|
||||
case LOG_BOOK_FIREBASE:
|
||||
expiryHolder.setVisibility(View.GONE);
|
||||
fieldTwo.setVisibility(View.VISIBLE);
|
||||
|
||||
LogbookObject logbookObject = (LogbookObject) getItem(position);
|
||||
|
||||
Picasso.get().load(logbookObject.getPhotoString())
|
||||
.into(loadImage(progressBar,imageView));
|
||||
dateString(position);
|
||||
|
||||
fiewTwoLable.setText("V5C No.:");
|
||||
fieldTwoText.setText(logbookObject.getV5cnumber());
|
||||
break;
|
||||
case PRIVATE_HIRE_VEHICLE_LICENSE:
|
||||
expiryHolder.setVisibility(View.VISIBLE);
|
||||
fieldTwo.setVisibility(View.VISIBLE);
|
||||
|
||||
PrivateHireVehicleObject privateHireVehicleObject = (PrivateHireVehicleObject) getItem(position);
|
||||
|
||||
Picasso.get().load(privateHireVehicleObject.getPhCarImageString())
|
||||
.into(loadImage(progressBar,imageView));
|
||||
dateString(position);
|
||||
|
||||
expiryText.setText(privateHireVehicleObject.getPhCarExpiry());
|
||||
fiewTwoLable.setText("Private Hire Vehicle License No.:");
|
||||
fieldTwoText.setText(privateHireVehicleObject.getPhCarNumber());
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}else if (archiveString.equals(INSURANCE_FIREBASE)){
|
||||
listItemView = LayoutInflater.from(context).inflate(
|
||||
R.layout.archive_insurance_item, parent, false);
|
||||
|
||||
View holder = listItemView.findViewById(R.id.image_pager);
|
||||
ImageSwiperClass swiperClass = new ImageSwiperClass(context,holder);
|
||||
// swiperClass.hideDelete();
|
||||
listItemView.findViewById(R.id.delete).setVisibility(View.GONE);
|
||||
// holder.findViewById(R.id.delete).setVisibility(View.INVISIBLE);
|
||||
|
||||
dateArchivedText = listItemView.findViewById(R.id.date_archived);
|
||||
dateString(position);
|
||||
|
||||
TextView expiryText = listItemView.findViewById(R.id.exp_text);
|
||||
TextView fieldTwoText = listItemView.findViewById(R.id.archive_insurer);
|
||||
|
||||
InsuranceObject insuranceObject = (InsuranceObject) getItem(position);
|
||||
swiperClass.reinstantiateList(insuranceObject.getPhotoStrings());
|
||||
|
||||
expiryText.setText(insuranceObject.getExpiryDate());
|
||||
fieldTwoText.setText(insuranceObject.getInsurerName());
|
||||
|
||||
}else if(archiveString.equals(VEHICLE_DETAILS_FIREBASE)){
|
||||
listItemView = LayoutInflater.from(context).inflate(
|
||||
R.layout.archive_vehicle_item, parent, false);
|
||||
|
||||
dateArchivedText = listItemView.findViewById(R.id.date_archived);
|
||||
dateString(position);
|
||||
|
||||
TextView numberPlate = listItemView.findViewById(R.id.number_plate);
|
||||
TextView keeperName = listItemView.findViewById(R.id.keeper_name);
|
||||
TextView keeperAddress = listItemView.findViewById(R.id.keeper_address);
|
||||
TextView carText = listItemView.findViewById(R.id.car_text_arch);
|
||||
TextView carColour = listItemView.findViewById(R.id.car_colour);
|
||||
TextView carSeized = listItemView.findViewById(R.id.seized);
|
||||
TextView startDate = listItemView.findViewById(R.id.first_date);
|
||||
|
||||
VehicleProfileObject vehicleProfileObject = (VehicleProfileObject) getItem(position);
|
||||
|
||||
numberPlate.setText(vehicleProfileObject.getReg());
|
||||
keeperName.setText(vehicleProfileObject.getKeeperName());
|
||||
keeperAddress.setText(vehicleProfileObject.getKeeperAddress() + "\n" +vehicleProfileObject.getKeeperPostCode());
|
||||
carText.setText(vehicleProfileObject.getMake() + " " + vehicleProfileObject.getModel());
|
||||
carColour.setText(vehicleProfileObject.getColour());
|
||||
|
||||
String s;
|
||||
if (vehicleProfileObject.isSeized()){
|
||||
s = "Yes";
|
||||
}else {
|
||||
s = "No";
|
||||
}
|
||||
carSeized.setText(s);
|
||||
|
||||
startDate.setText(vehicleProfileObject.getStartDate());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return listItemView;
|
||||
}
|
||||
|
||||
private void dateString(int position){
|
||||
boolean success = true;
|
||||
try {
|
||||
dateArchivedText.setText(setAsDateTime(mKeys[position]));
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
success = false;
|
||||
}finally {
|
||||
if (!success){
|
||||
dateArchivedText.setText(mKeys[position].substring(0,8));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.content.Context;
|
||||
import android.app.DatePickerDialog;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
@@ -15,6 +16,7 @@ import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
@@ -26,25 +28,39 @@ import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
import java.util.Calendar;
|
||||
|
||||
import static h_mal.appttude.com.driver.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.FirebaseClass.DRIVER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.FirebaseClass.PRIVATE_HIRE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
public class DriverLicenseFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
private ImageView imageView;
|
||||
private ProgressBar progressBar;
|
||||
|
||||
EditText licenseNo;
|
||||
EditText expiry;
|
||||
@@ -55,10 +71,33 @@ public class DriverLicenseFragment extends Fragment {
|
||||
String li_numberString;
|
||||
String li_exprString;
|
||||
|
||||
DatabaseReference reference;
|
||||
|
||||
DriversLicenseObject driversLicenseObject;
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uploadNew = false;
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(DRIVER_FIREBASE).child(DRIVERS_LICENSE_FIREBASE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -68,10 +107,9 @@ public class DriverLicenseFragment extends Fragment {
|
||||
View view = inflater.inflate(R.layout.fragment_driver_license, container, false);
|
||||
|
||||
imageView = view.findViewById(R.id.driversli_img);
|
||||
progressBar = view.findViewById(R.id.pb_dl);
|
||||
|
||||
DatabaseReference reference = mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid())
|
||||
.child(DRIVER_FIREBASE).child(DRIVERS_LICENSE_FIREBASE);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
TextView uploadLic = view.findViewById(R.id.upload_lic);
|
||||
@@ -82,8 +120,10 @@ public class DriverLicenseFragment extends Fragment {
|
||||
expiry.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(expiry);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@@ -110,6 +150,12 @@ public class DriverLicenseFragment extends Fragment {
|
||||
|
||||
if (!TextUtils.isEmpty(li_numberString) &&
|
||||
!TextUtils.isEmpty(li_exprString)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@@ -119,7 +165,10 @@ public class DriverLicenseFragment extends Fragment {
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
publishObject();
|
||||
fragmentManager.popBackStack();
|
||||
|
||||
}else {
|
||||
Toast.makeText(getContext(), getString(R.string.failed_upload), Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -127,7 +176,10 @@ public class DriverLicenseFragment extends Fragment {
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}else {
|
||||
if (TextUtils.isEmpty(li_numberString)){
|
||||
@@ -136,7 +188,7 @@ public class DriverLicenseFragment extends Fragment {
|
||||
if (TextUtils.isEmpty(li_exprString)){
|
||||
expiry.setError("Field required");
|
||||
}
|
||||
if (picUri == null){
|
||||
if (picUri == null && filePath == null){
|
||||
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
@@ -148,7 +200,7 @@ public class DriverLicenseFragment extends Fragment {
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
DriversLicenseObject driversLicenseObject = null;
|
||||
viewController.progress(View.GONE);
|
||||
try{
|
||||
driversLicenseObject = dataSnapshot.getValue(DriversLicenseObject.class);
|
||||
}catch (Exception e){
|
||||
@@ -159,34 +211,50 @@ public class DriverLicenseFragment extends Fragment {
|
||||
li_numberString = driversLicenseObject.getLicenseNumber();
|
||||
li_exprString = driversLicenseObject.getLicenseExpiry();
|
||||
|
||||
if(!uploadNew){
|
||||
licenseNo.setText(li_numberString);
|
||||
expiry.setText(li_exprString);
|
||||
Picasso.get()
|
||||
.load(picUri)
|
||||
.placeholder(R.mipmap.ic_launcher_round)
|
||||
.into(imageView);
|
||||
.into(loadImage(progressBar,imageView));
|
||||
}
|
||||
}else{
|
||||
Toast.makeText(getContext(), getString(R.string.failed_retrieve), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
|
||||
viewController.progress(View.GONE);
|
||||
Toast.makeText(getContext(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
|
||||
Log.e(TAG, "onCancelled: " + databaseError.getMessage());
|
||||
}
|
||||
};
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
DriversLicenseObject driversLicenseObject = new DriversLicenseObject(picUri.toString(),li_numberString,li_exprString);
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,DRIVERS_LICENSE_FIREBASE,driversLicenseObject);
|
||||
}
|
||||
|
||||
mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child(DRIVER_FIREBASE).child(DRIVERS_LICENSE_FIREBASE)
|
||||
.setValue(driversLicenseObject).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
DriversLicenseObject driversLicenseObjectNew = new DriversLicenseObject(picUri.toString(),li_numberString,li_exprString);
|
||||
|
||||
reference.setValue(driversLicenseObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
|
||||
if (task.isSuccessful()){
|
||||
Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
|
||||
approvalsClass.setStatusCode(UID,DRIVERS_LICENSE_FIREBASE+APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else {
|
||||
Toast.makeText(getContext(),R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -209,13 +277,13 @@ public class DriverLicenseFragment extends Fragment {
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults(new ImageSelectorResults.FilepathResponse() {
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,imageView,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
}
|
||||
}).Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,imageView);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.widget.CardView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.ApprovalsObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
|
||||
public class DriverOverallFragment extends Fragment {
|
||||
|
||||
CardView driverProfile;
|
||||
CardView privateHire;
|
||||
CardView driversLicense;
|
||||
|
||||
ImageView driverApr;
|
||||
ImageView privateApr ;
|
||||
ImageView driversLiApr;
|
||||
TextView privExp;
|
||||
TextView drivLiExp;
|
||||
|
||||
DatabaseReference reference;
|
||||
|
||||
WholeDriverObject driverProfileObject;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_driver_overall, container, false);
|
||||
|
||||
driverProfile = view.findViewById(R.id.driver_prof);
|
||||
privateHire = view.findViewById(R.id.private_hire);
|
||||
driversLicense = view.findViewById(R.id.drivers_license);
|
||||
|
||||
driverApr = view.findViewById(R.id.approval_dp);
|
||||
privateApr = view.findViewById(R.id.approval_ph);
|
||||
driversLiApr = view.findViewById(R.id.approval_dl);
|
||||
|
||||
privExp = view.findViewById(R.id.ph_button_exp);
|
||||
drivLiExp = view.findViewById(R.id.dl_button_exp);
|
||||
|
||||
privExp.setVisibility(View.GONE);
|
||||
drivLiExp.setVisibility(View.GONE);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
driverProfileObject = dataSnapshot.getValue(WholeDriverObject.class);
|
||||
|
||||
if (driverProfileObject.approvalsObject != null){
|
||||
ApprovalsObject approvalsObject = driverProfileObject.getApprovalsObject();
|
||||
|
||||
driverApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getDriver_details_approval()));
|
||||
privateApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getPrivate_hire_approval()));
|
||||
driversLiApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getDriver_license_approval()));
|
||||
}
|
||||
|
||||
if (driverProfileObject.driver_profile != null){
|
||||
if (driverProfileObject.getDriver_profile().private_hire != null){
|
||||
privExp.setVisibility(View.VISIBLE);
|
||||
privExp.setText("Expiry: " + driverProfileObject.getDriver_profile().getPrivate_hire().getPhExpiry());
|
||||
}
|
||||
if (driverProfileObject.getDriver_profile().driver_license != null){
|
||||
drivLiExp.setVisibility(View.VISIBLE);
|
||||
drivLiExp.setText("Expiry: " + driverProfileObject.getDriver_profile().getDriver_license().getLicenseExpiry());
|
||||
}
|
||||
}
|
||||
|
||||
driverProfile.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new DriverProfileFragment());
|
||||
}
|
||||
});
|
||||
|
||||
privateHire.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (driverProfileObject.driver_profile == null){
|
||||
executeFragment(new PrivateHireLicenseFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),driverProfileObject.getDriver_profile().getPrivate_hire()
|
||||
,new PrivateHireLicenseFragment());
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
driversLicense.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (driverProfileObject.driver_profile == null){
|
||||
executeFragment(new DriverLicenseFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),driverProfileObject.getDriver_profile().getDriver_license()
|
||||
,new DriverLicenseFragment());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -13,60 +13,76 @@ import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
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.Task;
|
||||
import com.google.firebase.auth.UserProfileChangeRequest;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Global.ViewController;
|
||||
import h_mal.appttude.com.driver.Objects.DriverProfileObject;
|
||||
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
import h_mal.appttude.com.driver.Objects.UserObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.FirebaseClass.*;
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.*;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.executeFragment;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
|
||||
public class driverProfileFragment extends Fragment {
|
||||
public class DriverProfileFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
ImageView driverPic;
|
||||
ProgressBar pb;
|
||||
TextView addPic;
|
||||
EditText forenames;
|
||||
EditText address;
|
||||
EditText postcode;
|
||||
EditText dob;
|
||||
EditText ni;
|
||||
TextView privateHire;
|
||||
TextView retrievedPH;
|
||||
EditText dateFirst;
|
||||
TextView driverLi;
|
||||
TextView retrievedDl;
|
||||
Button submit_driver;
|
||||
|
||||
Uri filePath;
|
||||
Uri picUri;
|
||||
|
||||
DatabaseReference driverProfileReference;
|
||||
|
||||
PrivateHireObject privateHireObject;
|
||||
String UID;
|
||||
DriverProfileObject driverProfileObject;
|
||||
DriversLicenseObject driversLicenseObject;
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
driverProfileReference = mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid())
|
||||
|
||||
if (getArguments() != null){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
driverProfileReference = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(DRIVER_FIREBASE);
|
||||
|
||||
}
|
||||
@@ -78,21 +94,17 @@ public class driverProfileFragment extends Fragment {
|
||||
View view = inflater.inflate(R.layout.fragment_driver_profile, container, false);
|
||||
|
||||
driverPic = view.findViewById(R.id.driver_pic);
|
||||
pb = view.findViewById(R.id.pb_dp);
|
||||
addPic = view.findViewById(R.id.add_driver_pic);
|
||||
forenames = view.findViewById(R.id.names);
|
||||
address = view.findViewById(R.id.address);
|
||||
postcode = view.findViewById(R.id.postcode);
|
||||
dob = view.findViewById(R.id.dob);
|
||||
ni = view.findViewById(R.id.ni_number);
|
||||
privateHire = view.findViewById(R.id.private_hire);
|
||||
retrievedPH = view.findViewById(R.id.retrievedPH);
|
||||
dateFirst = view.findViewById(R.id.date_first);
|
||||
driverLi = view.findViewById(R.id.drivers_li);
|
||||
retrievedDl = view.findViewById(R.id.retrieved_dl);
|
||||
submit_driver = view.findViewById(R.id.submit_driver);
|
||||
|
||||
driverPic.setVisibility(View.GONE);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
driverProfileReference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
addPic.setOnClickListener(new View.OnClickListener() {
|
||||
@@ -104,20 +116,6 @@ public class driverProfileFragment extends Fragment {
|
||||
}
|
||||
});
|
||||
|
||||
privateHire.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new PrivateHireLicenseFragment());
|
||||
}
|
||||
});
|
||||
|
||||
driverLi.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new DriverLicenseFragment());
|
||||
}
|
||||
});
|
||||
|
||||
dob.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -144,17 +142,7 @@ public class driverProfileFragment extends Fragment {
|
||||
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
try{
|
||||
privateHireObject = dataSnapshot.child(PRIVATE_HIRE_FIREBASE).getValue(PrivateHireObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (privateHireObject != null){
|
||||
|
||||
retrievedPH.setText("Private Hire License no.: " +privateHireObject.getPhNumber()
|
||||
+"\nPrivate Hire License expiry: " + privateHireObject.getPhExpiry());
|
||||
}
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
try {
|
||||
driverProfileObject = dataSnapshot.child(DRIVER_DETAILS_FIREBASE).getValue(DriverProfileObject.class);
|
||||
@@ -168,36 +156,26 @@ public class driverProfileFragment extends Fragment {
|
||||
dob.setText(driverProfileObject.getDob());
|
||||
dateFirst.setText(driverProfileObject.getDateFirst());
|
||||
ni.setText(driverProfileObject.getNi());
|
||||
driverPic.setVisibility(View.VISIBLE);
|
||||
Picasso.get().load(driverProfileObject.getDriverPic()).into(driverPic);
|
||||
|
||||
|
||||
Picasso.get().load(driverProfileObject.getDriverPic())
|
||||
.into(loadImage(pb,driverPic));
|
||||
picUri = Uri.parse(driverProfileObject.getDriverPic());
|
||||
|
||||
}else {
|
||||
driverPic.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
try{
|
||||
driversLicenseObject = dataSnapshot.child(DRIVERS_LICENSE_FIREBASE).getValue(DriversLicenseObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (driversLicenseObject != null){
|
||||
retrievedDl.setText("Driving License no.: " +driversLicenseObject.getLicenseNumber()
|
||||
+"\nDriving License expiry: " + driversLicenseObject.getLicenseExpiry());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
String driverForename = forenames.getText().toString().trim();
|
||||
String AddressString = address.getText().toString().trim();
|
||||
String postCodeString = postcode.getText().toString().trim();
|
||||
@@ -211,8 +189,14 @@ public class driverProfileFragment extends Fragment {
|
||||
!TextUtils.isEmpty(dobString) &&
|
||||
!TextUtils.isEmpty(niString) &&
|
||||
!TextUtils.isEmpty(dateFirstString)){
|
||||
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
@@ -220,7 +204,9 @@ public class driverProfileFragment extends Fragment {
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
writeDriverToDb();
|
||||
fragmentManager.popBackStack();
|
||||
|
||||
}else {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -229,6 +215,7 @@ public class driverProfileFragment extends Fragment {
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
writeDriverToDb();
|
||||
}
|
||||
}
|
||||
|
||||
}else {
|
||||
if (TextUtils.isEmpty(driverForename)){
|
||||
@@ -249,9 +236,6 @@ public class driverProfileFragment extends Fragment {
|
||||
if (TextUtils.isEmpty(dateFirstString)){
|
||||
dateFirst.setError("Field required");
|
||||
}
|
||||
if (picUri == null){
|
||||
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -262,14 +246,14 @@ public class driverProfileFragment extends Fragment {
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults(new ImageSelectorResults.FilepathResponse() {
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,driverPic,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
}
|
||||
}).Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,driverPic);
|
||||
driverPic.setVisibility(View.VISIBLE);
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -285,6 +269,42 @@ public class driverProfileFragment extends Fragment {
|
||||
DriverProfileObject driverProfileObject = new DriverProfileObject(picUri.toString(),forenameText,
|
||||
addressText,postcodeText,dobText,niText,datefirstText);
|
||||
|
||||
driverProfileReference.child(DRIVER_DETAILS_FIREBASE).setValue(driverProfileObject);
|
||||
if (UID.equals(auth.getCurrentUser().getUid())){
|
||||
UserProfileChangeRequest.Builder profileUpdatesBuilder = new UserProfileChangeRequest.Builder();
|
||||
profileUpdatesBuilder.setPhotoUri(picUri);
|
||||
UserProfileChangeRequest profileUpdates = profileUpdatesBuilder.build();
|
||||
|
||||
auth.getCurrentUser().updateProfile(profileUpdates)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
Log.d(TAG, "User profile updated.");
|
||||
viewController.reloadDrawer();
|
||||
mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child("user_details")
|
||||
.setValue(new UserObject(auth.getCurrentUser().getDisplayName(),auth.getCurrentUser().getEmail(),picUri.toString()));
|
||||
}
|
||||
}
|
||||
})
|
||||
.addOnFailureListener(new OnFailureListener() {
|
||||
@Override
|
||||
public void onFailure(@NonNull Exception e) {
|
||||
Log.e(TAG, "onFailure: ", e);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
driverProfileReference.child(DRIVER_DETAILS_FIREBASE).setValue(driverProfileObject)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
approvalsClass.setStatusCode(UID,DRIVER_DETAILS_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
fragmentManager.popBackStack();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,300 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.Layout;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Global.ImageSwiperClass;
|
||||
import h_mal.appttude.com.driver.Objects.InsuranceObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
|
||||
public class InsuranceFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
DatabaseReference reference;
|
||||
|
||||
TextView uploadIns;
|
||||
EditText insName;
|
||||
EditText insExpiry;
|
||||
View holder;
|
||||
|
||||
public Uri filePath;
|
||||
public Uri picUri;
|
||||
|
||||
public List<String> photoStrings;
|
||||
|
||||
String insNameString;
|
||||
String insExpiryString;
|
||||
|
||||
InsuranceObject insuranceObject;
|
||||
ImageSwiperClass swiperClass;
|
||||
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uploadNew = false;
|
||||
|
||||
photoStrings = new ArrayList<>();
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID).child(VEHICLE_FIREBASE).child(INSURANCE_FIREBASE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_insurance, container, false);
|
||||
|
||||
uploadIns = view.findViewById(R.id.uploadInsurance);
|
||||
insName = view.findViewById(R.id.insurer);
|
||||
insExpiry = view.findViewById(R.id.insurance_exp);
|
||||
Button submit = view.findViewById(R.id.submit_ins);
|
||||
|
||||
holder = view.findViewById(R.id.image_pager);
|
||||
swiperClass = new ImageSwiperClass(getContext(),holder);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
uploadIns.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
|
||||
imageSelectorDialog.setImageName("insurance"+getDateStamp());
|
||||
imageSelectorDialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
insExpiry.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(insExpiry);
|
||||
}
|
||||
});
|
||||
|
||||
submit.setOnClickListener(submitOnClickListener);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
try{
|
||||
insuranceObject = dataSnapshot.getValue(InsuranceObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (insuranceObject != null){
|
||||
if (!uploadNew){
|
||||
photoStrings = insuranceObject.getPhotoStrings();
|
||||
swiperClass.reinstantiateList(photoStrings);
|
||||
if (insuranceObject.insurerName != null){
|
||||
insNameString = insuranceObject.getInsurerName();
|
||||
insName.setText(insNameString);
|
||||
}
|
||||
if (insuranceObject.expiryDate != null){
|
||||
insExpiryString = insuranceObject.getExpiryDate();
|
||||
insExpiry.setText(insExpiryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
insNameString = insName.getText().toString().trim();
|
||||
insExpiryString = insExpiry.getText().toString().trim();
|
||||
|
||||
if (!TextUtils.isEmpty(insNameString)
|
||||
&& !TextUtils.isEmpty(insExpiryString)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
Log.i(TAG, "processFinish: ");
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
publishObject();
|
||||
}else {
|
||||
Toast.makeText(getContext(), "Could not upload", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
}).uploadImage(INSURANCE_FIREBASE,INSURANCE_FIREBASE + getDateStamp());
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if (TextUtils.isEmpty(insNameString)){
|
||||
insName.setError("Field required");
|
||||
}
|
||||
if (TextUtils.isEmpty(insExpiryString)){
|
||||
insExpiry.setError("Field required");
|
||||
}
|
||||
if (picUri == null){
|
||||
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,INSURANCE_FIREBASE,insuranceObject);
|
||||
}
|
||||
|
||||
photoStrings = swiperClass.getImageStrings();
|
||||
|
||||
InsuranceObject insuranceObject = new InsuranceObject(photoStrings, insNameString, insExpiryString);
|
||||
|
||||
reference.setValue(insuranceObject).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
approvalsClass.setStatusCode(UID,INSURANCE_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else{
|
||||
Toast.makeText(getContext(), "Upload Unsuccessful", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
|
||||
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
|
||||
Intent cameraIntent = new
|
||||
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
startActivityForResult(cameraIntent, CAMERA_REQUEST);
|
||||
} else {
|
||||
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
new FirebaseClass(getContext(), output, new FirebaseClass.Response() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
if (output != null){
|
||||
photoStrings.add(output.toString());
|
||||
swiperClass.addPhotoString(output.toString());
|
||||
//notify data change
|
||||
reference.setValue(new InsuranceObject(photoStrings,null,null));
|
||||
}
|
||||
}
|
||||
}).uploadImage(INSURANCE_FIREBASE,INSURANCE_FIREBASE + getDateStamp());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
printObjectAsJson(TAG,photoStrings);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,262 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Objects.MotObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
|
||||
public class MotFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
DatabaseReference reference;
|
||||
|
||||
TextView uploadMot;
|
||||
ImageView motImage;
|
||||
ProgressBar progressBar;
|
||||
EditText motExpiryEditText;
|
||||
|
||||
public Uri filePath;
|
||||
public Uri picUri;
|
||||
|
||||
MotObject motObject;
|
||||
String motExpText;
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uploadNew = false;
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(VEHICLE_FIREBASE).child(MOT_FIREBASE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_mot, container, false);
|
||||
|
||||
motImage = view.findViewById(R.id.mot_img);
|
||||
progressBar = view.findViewById(R.id.pb_mot);
|
||||
uploadMot = view.findViewById(R.id.uploadmot);
|
||||
motExpiryEditText = view.findViewById(R.id.mot_expiry);
|
||||
Button submit = view.findViewById(R.id.submit_mot);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
uploadMot.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
|
||||
imageSelectorDialog.setImageName("mot_certificate");
|
||||
imageSelectorDialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
motExpiryEditText.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(motExpiryEditText);
|
||||
}
|
||||
});
|
||||
|
||||
submit.setOnClickListener(submitOnClickListener);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
try{
|
||||
motObject = dataSnapshot.getValue(MotObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (motObject != null){
|
||||
if (!uploadNew){
|
||||
picUri = Uri.parse(motObject.getMotImageString());
|
||||
motExpText = motObject.getMotExpiry();
|
||||
|
||||
motExpiryEditText.setText(motExpText);
|
||||
Picasso.get()
|
||||
.load(picUri)
|
||||
.into(loadImage(progressBar,motImage));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
motExpText = motExpiryEditText.getText().toString().trim();
|
||||
|
||||
if (!TextUtils.isEmpty(motExpText)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
Log.i(TAG, "processFinish: ");
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
publishObject();
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
}
|
||||
}).uploadImage(MOT_FIREBASE,MOT_FIREBASE + getDateStamp());
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if (TextUtils.isEmpty(motExpText)){
|
||||
motExpiryEditText.setError("Field required");
|
||||
}
|
||||
if (picUri == null){
|
||||
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,MOT_FIREBASE,motObject);
|
||||
}
|
||||
MotObject motObject = new MotObject(picUri.toString(), motExpText);
|
||||
|
||||
reference.setValue(motObject).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
|
||||
approvalsClass.setStatusCode(UID,MOT_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else {
|
||||
Toast.makeText(getContext(), "Unable to upload", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
|
||||
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
|
||||
Intent cameraIntent = new
|
||||
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
startActivityForResult(cameraIntent, CAMERA_REQUEST);
|
||||
} else {
|
||||
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,motImage,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,50 +1,61 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.FirebaseError;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
import java.util.UUID;
|
||||
|
||||
import static h_mal.appttude.com.driver.FirebaseClass.*;
|
||||
import static h_mal.appttude.com.driver.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.*;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
public class PrivateHireLicenseFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
private ImageView imageView;
|
||||
String fname;
|
||||
ProgressBar pb;
|
||||
|
||||
EditText phNo;
|
||||
EditText phExpiry;
|
||||
@@ -55,11 +66,33 @@ public class PrivateHireLicenseFragment extends Fragment {
|
||||
String Ph_numberString;
|
||||
String Ph_exprString;
|
||||
|
||||
DatabaseReference reference;
|
||||
|
||||
PrivateHireObject privateHireObject;
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uploadNew = false;
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(DRIVER_FIREBASE).child(PRIVATE_HIRE_FIREBASE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -68,13 +101,12 @@ public class PrivateHireLicenseFragment extends Fragment {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_private_hire_license, container, false);
|
||||
|
||||
DatabaseReference reference = mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid())
|
||||
.child(DRIVER_FIREBASE).child(PRIVATE_HIRE_FIREBASE);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
PrivateHireObject privateHireObject = null;
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
try{
|
||||
privateHireObject = dataSnapshot.getValue(PrivateHireObject.class);
|
||||
}catch (Exception e){
|
||||
@@ -85,12 +117,14 @@ public class PrivateHireLicenseFragment extends Fragment {
|
||||
Ph_numberString = privateHireObject.getPhNumber();
|
||||
Ph_exprString = privateHireObject.getPhExpiry();
|
||||
|
||||
Log.i(TAG, "onDataChange: uploadNew = " + uploadNew);
|
||||
if (!uploadNew){
|
||||
phNo.setText(Ph_numberString);
|
||||
phExpiry.setText(Ph_exprString);
|
||||
Picasso.get()
|
||||
.load(picUri)
|
||||
.placeholder(R.mipmap.ic_launcher_round)
|
||||
.into(imageView);
|
||||
.into(loadImage(pb,imageView));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,12 +132,13 @@ public class PrivateHireLicenseFragment extends Fragment {
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
TextView uploadPH = view.findViewById(R.id.uploadphlic);
|
||||
imageView = view.findViewById(R.id.imageView2);
|
||||
pb = view.findViewById(R.id.pb_priv);
|
||||
|
||||
phNo = view.findViewById(R.id.ph_no);
|
||||
phExpiry = view.findViewById(R.id.ph_expiry);
|
||||
@@ -113,6 +148,7 @@ public class PrivateHireLicenseFragment extends Fragment {
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(phExpiry);
|
||||
dateDialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -138,6 +174,11 @@ public class PrivateHireLicenseFragment extends Fragment {
|
||||
|
||||
if (!TextUtils.isEmpty(Ph_numberString) &&
|
||||
!TextUtils.isEmpty(Ph_exprString)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new Response(){
|
||||
@@ -147,7 +188,10 @@ public class PrivateHireLicenseFragment extends Fragment {
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
publishObject();
|
||||
fragmentManager.popBackStack();
|
||||
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -156,7 +200,7 @@ public class PrivateHireLicenseFragment extends Fragment {
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
}
|
||||
|
||||
}
|
||||
}else {
|
||||
if (TextUtils.isEmpty(Ph_numberString)){
|
||||
phNo.setError("Field required");
|
||||
@@ -177,16 +221,28 @@ public class PrivateHireLicenseFragment extends Fragment {
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
PrivateHireObject privateHireObject = new PrivateHireObject(picUri.toString(),Ph_numberString,Ph_exprString);
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,PRIVATE_HIRE_FIREBASE,privateHireObject);
|
||||
}
|
||||
|
||||
mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child(DRIVER_FIREBASE).child(PRIVATE_HIRE_FIREBASE)
|
||||
.setValue(privateHireObject).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
PrivateHireObject privateHireObjectNew = new PrivateHireObject(picUri.toString(),Ph_numberString,Ph_exprString);
|
||||
|
||||
mDatabase.child(USER_FIREBASE).child(UID).child(DRIVER_FIREBASE).child(PRIVATE_HIRE_FIREBASE)
|
||||
.setValue(privateHireObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
|
||||
if (task.isSuccessful()){
|
||||
Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
|
||||
approvalsClass.setStatusCode(UID,PRIVATE_HIRE_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -209,13 +265,13 @@ public class PrivateHireLicenseFragment extends Fragment {
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults(new ImageSelectorResults.FilepathResponse() {
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,imageView,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
}
|
||||
}).Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,imageView);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,285 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireVehicleObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
|
||||
public class PrivateHireVehicleFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
private ImageView imageView;
|
||||
ProgressBar pb;
|
||||
|
||||
EditText phNo;
|
||||
EditText phExpiry;
|
||||
|
||||
public Uri filePath;
|
||||
|
||||
public Uri picUri;
|
||||
String Ph_numberString;
|
||||
String Ph_exprString;
|
||||
|
||||
DatabaseReference reference;
|
||||
|
||||
PrivateHireVehicleObject privateHireObject;
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
uploadNew = false;
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(VEHICLE_FIREBASE).child(PRIVATE_HIRE_VEHICLE_LICENSE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_private_hire_vehicle, container, false);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
TextView uploadPH = view.findViewById(R.id.uploadphlic);
|
||||
imageView = view.findViewById(R.id.imageView2);
|
||||
pb = view.findViewById(R.id.pb_priv);
|
||||
|
||||
phNo = view.findViewById(R.id.ph_no);
|
||||
phExpiry = view.findViewById(R.id.ph_expiry);
|
||||
|
||||
phExpiry.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(phExpiry);
|
||||
dateDialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
Button submit = view.findViewById(R.id.submit);
|
||||
submit.setOnClickListener(submitClick);
|
||||
|
||||
uploadPH.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
|
||||
imageSelectorDialog.setImageName("private_hire");
|
||||
imageSelectorDialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private View.OnClickListener submitClick = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Ph_numberString = phNo.getText().toString().trim();
|
||||
Ph_exprString = phExpiry.getText().toString().trim();
|
||||
|
||||
//validation for data then submit
|
||||
|
||||
if (!TextUtils.isEmpty(Ph_numberString) &&
|
||||
!TextUtils.isEmpty(Ph_exprString)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
Log.i(TAG, "processFinish: ");
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
publishObject();
|
||||
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
}).uploadImage(PRIVATE_HIRE_FIREBASE,PRIVATE_HIRE_FIREBASE + getDateStamp());
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if (TextUtils.isEmpty(Ph_numberString)){
|
||||
phNo.setError("Field required");
|
||||
}
|
||||
if (TextUtils.isEmpty(Ph_exprString)){
|
||||
phExpiry.setError("Field required");
|
||||
}
|
||||
if (picUri == null){
|
||||
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
try{
|
||||
privateHireObject = dataSnapshot.getValue(PrivateHireVehicleObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (privateHireObject != null){
|
||||
picUri = Uri.parse(privateHireObject.getPhCarImageString());
|
||||
Ph_numberString = privateHireObject.getPhCarNumber();
|
||||
Ph_exprString = privateHireObject.getPhCarExpiry();
|
||||
|
||||
Log.i(TAG, "onDataChange: uploadNew = " + uploadNew);
|
||||
if (!uploadNew){
|
||||
phNo.setText(Ph_numberString);
|
||||
phExpiry.setText(Ph_exprString);
|
||||
Picasso.get()
|
||||
.load(picUri)
|
||||
.into(loadImage(pb,imageView));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,PRIVATE_HIRE_VEHICLE_LICENSE,privateHireObject);
|
||||
}
|
||||
|
||||
PrivateHireVehicleObject privateHireObjectNew = new PrivateHireVehicleObject(picUri.toString(),Ph_numberString,Ph_exprString);
|
||||
|
||||
reference.setValue(privateHireObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
|
||||
approvalsClass.setStatusCode(UID,PRIVATE_HIRE_VEHICLE_LICENSE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
|
||||
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
|
||||
Intent cameraIntent = new
|
||||
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
startActivityForResult(cameraIntent, CAMERA_REQUEST);
|
||||
} else {
|
||||
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults().Results(getActivity(), requestCode, resultCode, data,
|
||||
filePath, imageView, new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,188 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.widget.CardView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.ApprovalsObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
public class VehicleOverallFragment extends Fragment {
|
||||
|
||||
ImageView vehicleApr;
|
||||
ImageView insuranceApr;
|
||||
ImageView motApr;
|
||||
ImageView logbookApr;
|
||||
private ImageView privateHireCarApr;
|
||||
TextView insuranceExp;
|
||||
TextView motExp;
|
||||
private TextView privateHireExp;
|
||||
private CardView vehicleProfile;
|
||||
private CardView insurance;
|
||||
private CardView mot;
|
||||
private CardView logbook;
|
||||
private CardView privateHireCar;
|
||||
|
||||
private DatabaseReference reference;
|
||||
private WholeDriverObject wholeDriverObject;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_vehicle_overall, container, false);
|
||||
|
||||
vehicleProfile = view.findViewById(R.id.vehicle_prof);
|
||||
insurance = view.findViewById(R.id.insurance);
|
||||
mot = view.findViewById(R.id.mot);
|
||||
logbook = view.findViewById(R.id.logbook);
|
||||
privateHireCar = view.findViewById(R.id.private_hire_vehicle_license);
|
||||
|
||||
vehicleApr = view.findViewById(R.id.approval_vehicle);
|
||||
insuranceApr = view.findViewById(R.id.approval_insurance);
|
||||
motApr = view.findViewById(R.id.approval_mot);
|
||||
logbookApr = view.findViewById(R.id.approval_lb);
|
||||
privateHireCarApr = view.findViewById(R.id.approval_ph_car);
|
||||
|
||||
insuranceExp = view.findViewById(R.id.ins_exp);
|
||||
motExp = view.findViewById(R.id.mot_exp);
|
||||
privateHireExp = view.findViewById(R.id.ph_car_exp);
|
||||
|
||||
insuranceExp.setVisibility(View.GONE);
|
||||
motExp.setVisibility(View.GONE);
|
||||
privateHireExp.setVisibility(View.GONE);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
wholeDriverObject = dataSnapshot.getValue(WholeDriverObject.class);
|
||||
|
||||
if (wholeDriverObject.approvalsObject != null) {
|
||||
ApprovalsObject approvalsObject = wholeDriverObject.getApprovalsObject();
|
||||
|
||||
vehicleApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getVehicle_details_approval()));
|
||||
insuranceApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getInsurance_details_approval()));
|
||||
motApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getMot_details_approval()));
|
||||
logbookApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getLog_book_approval()));
|
||||
privateHireCarApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getPh_car_approval()));
|
||||
}
|
||||
|
||||
if (wholeDriverObject.vehicle_profile != null){
|
||||
if (wholeDriverObject.getVehicle_profile().insurance_details != null){
|
||||
insuranceExp.setVisibility(View.VISIBLE);
|
||||
insuranceExp.setText("Expiry: " + wholeDriverObject.getVehicle_profile().getInsurance_details().getExpiryDate());
|
||||
}
|
||||
if (wholeDriverObject.getVehicle_profile().mot_details != null){
|
||||
motExp.setVisibility(View.VISIBLE);
|
||||
motExp.setText("Expiry: " + wholeDriverObject.getVehicle_profile().getMot_details().getMotExpiry());
|
||||
}
|
||||
if (wholeDriverObject.getVehicle_profile().private_hire_vehicle != null){
|
||||
privateHireExp.setVisibility(View.VISIBLE);
|
||||
privateHireExp.setText("Expiry: " + wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject().getPhCarExpiry());
|
||||
}
|
||||
}
|
||||
|
||||
vehicleProfile.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wholeDriverObject.vehicle_profile == null){
|
||||
executeFragment(new VehicleSetupFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getVehicle_details()
|
||||
,new VehicleSetupFragment());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
insurance.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wholeDriverObject.vehicle_profile == null){
|
||||
executeFragment(new InsuranceFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getInsurance_details()
|
||||
,new InsuranceFragment());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
mot.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wholeDriverObject.vehicle_profile == null){
|
||||
executeFragment(new MotFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getMot_details()
|
||||
,new MotFragment());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
logbook.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wholeDriverObject.vehicle_profile == null){
|
||||
executeFragment(new logbookFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getLog_book()
|
||||
,new logbookFragment());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
privateHireCar.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wholeDriverObject.vehicle_profile == null){
|
||||
executeFragment(new PrivateHireVehicleFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject()
|
||||
,new PrivateHireVehicleFragment());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,223 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
|
||||
import h_mal.appttude.com.driver.Objects.InsuranceObject;
|
||||
import h_mal.appttude.com.driver.Objects.LogbookObject;
|
||||
import h_mal.appttude.com.driver.Objects.MotObject;
|
||||
import h_mal.appttude.com.driver.Objects.VehicleProfileObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_DETAILS_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
|
||||
public class VehicleSetupFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
EditText reg;
|
||||
EditText make;
|
||||
EditText model;
|
||||
EditText color;
|
||||
EditText keeperName;
|
||||
EditText address;
|
||||
EditText postcode;
|
||||
EditText startDate;
|
||||
CheckBox seized;
|
||||
Button Submit;
|
||||
|
||||
DatabaseReference ref;
|
||||
|
||||
VehicleProfileObject vehicleProfileObject;
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uploadNew = false;
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
ref = mDatabase.child(USER_FIREBASE).child(UID).child(VEHICLE_FIREBASE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_vehicle_setup, container, false);
|
||||
|
||||
reg = view.findViewById(R.id.reg);
|
||||
make = view.findViewById(R.id.make);
|
||||
model = view.findViewById(R.id.model);
|
||||
color = view.findViewById(R.id.colour);
|
||||
keeperName = view.findViewById(R.id.keeper_name);
|
||||
address = view.findViewById(R.id.address);
|
||||
postcode = view.findViewById(R.id.postcode);
|
||||
startDate = view.findViewById(R.id.start_date);
|
||||
seized = view.findViewById(R.id.seized);
|
||||
Submit = view.findViewById(R.id.submit_vehicle);
|
||||
|
||||
startDate.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(startDate);
|
||||
}
|
||||
});
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
ref.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
Submit.setOnClickListener(submitOnClickListener);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener(){
|
||||
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
try{
|
||||
vehicleProfileObject = dataSnapshot.child(VEHICLE_DETAILS_FIREBASE).getValue(VehicleProfileObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (vehicleProfileObject != null){
|
||||
if(!uploadNew) {
|
||||
reg.setText(vehicleProfileObject.getReg());
|
||||
make.setText(vehicleProfileObject.getMake());
|
||||
model.setText(vehicleProfileObject.getModel());
|
||||
color.setText(vehicleProfileObject.getColour());
|
||||
keeperName.setText(vehicleProfileObject.getKeeperName());
|
||||
address.setText(vehicleProfileObject.getKeeperAddress());
|
||||
postcode.setText(vehicleProfileObject.getKeeperPostCode());
|
||||
startDate.setText(vehicleProfileObject.getStartDate());
|
||||
seized.setChecked(vehicleProfileObject.isSeized());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
String regString = reg.getText().toString().trim();
|
||||
String makeString = make.getText().toString().trim();
|
||||
String modelString = model.getText().toString().trim();
|
||||
String colourString = color.getText().toString().trim();
|
||||
String keeperNameStrin = keeperName.getText().toString().trim();
|
||||
String addressString = address.getText().toString().trim();
|
||||
String postcodeString = postcode.getText().toString().trim();
|
||||
String driverForename = startDate.getText().toString().trim();
|
||||
|
||||
if (!TextUtils.isEmpty(regString)
|
||||
&&!TextUtils.isEmpty(makeString)
|
||||
&&!TextUtils.isEmpty(modelString)
|
||||
&&!TextUtils.isEmpty(colourString)
|
||||
&&!TextUtils.isEmpty(keeperNameStrin)
|
||||
&&!TextUtils.isEmpty(addressString)
|
||||
&&!TextUtils.isEmpty(postcodeString)
|
||||
&&!TextUtils.isEmpty(driverForename)) {
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,VEHICLE_DETAILS_FIREBASE,vehicleProfileObject);
|
||||
}
|
||||
|
||||
VehicleProfileObject vehicleProfileObject = new VehicleProfileObject(
|
||||
regString ,makeString ,modelString ,colourString ,keeperNameStrin ,addressString ,postcodeString ,driverForename,
|
||||
seized.isChecked()
|
||||
);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
ref.child(VEHICLE_DETAILS_FIREBASE).setValue(vehicleProfileObject).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
approvalsClass.setStatusCode(UID,VEHICLE_DETAILS_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
approvalsClass.setStatusCode(UID,MOT_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
approvalsClass.setStatusCode(UID,INSURANCE_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
approvalsClass.setStatusCode(UID,LOG_BOOK_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else{
|
||||
Toast.makeText(getContext(), "Upload Unsuccessful", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
}else {
|
||||
if (TextUtils.isEmpty(regString)){reg.setError("Field required");}
|
||||
if (TextUtils.isEmpty(makeString)){make.setError("Field required");}
|
||||
if (TextUtils.isEmpty(modelString)){model.setError("Field required");}
|
||||
if (TextUtils.isEmpty(colourString)){color.setError("Field required");}
|
||||
if (TextUtils.isEmpty(keeperNameStrin)){keeperName.setError("Field required");}
|
||||
if (TextUtils.isEmpty(addressString)){address.setError("Field required");}
|
||||
if (TextUtils.isEmpty(postcodeString)){postcode.setError("Field required");}
|
||||
if (TextUtils.isEmpty(driverForename)){startDate.setError("Field required");}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,22 +1,20 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.support.v7.widget.CardView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.executeFragment;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import h_mal.appttude.com.driver.Global.ExecuteFragment;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
|
||||
|
||||
public class homeFragment extends Fragment {
|
||||
public class homeDriverFragment extends Fragment {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
@@ -35,7 +33,7 @@ public class homeFragment extends Fragment {
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new driverProfileFragment());
|
||||
executeFragment(new DriverOverallFragment());
|
||||
}
|
||||
});
|
||||
|
||||
@@ -43,7 +41,7 @@ public class homeFragment extends Fragment {
|
||||
second.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new VehicleSetupFragment());
|
||||
executeFragment(new VehicleOverallFragment());
|
||||
}
|
||||
});
|
||||
|
||||
@@ -0,0 +1,255 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Objects.LogbookObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
|
||||
public class logbookFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
DatabaseReference reference;
|
||||
|
||||
TextView uploadlb;
|
||||
ImageView lbImage;
|
||||
ProgressBar progressBar;
|
||||
EditText v5cNumber;
|
||||
|
||||
public Uri filePath;
|
||||
public Uri picUri;
|
||||
|
||||
String v5cString;
|
||||
|
||||
LogbookObject logbookObject;
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uploadNew = false;
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID).child(VEHICLE_FIREBASE).child(LOG_BOOK_FIREBASE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_logbook, container, false);
|
||||
|
||||
uploadlb = view.findViewById(R.id.upload_lb);
|
||||
lbImage = view.findViewById(R.id.log_book_img);
|
||||
progressBar = view.findViewById(R.id.pb_lb);
|
||||
v5cNumber = view.findViewById(R.id.v5c_no);
|
||||
Button submit = view.findViewById(R.id.submit_lb);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
uploadlb.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
|
||||
imageSelectorDialog.setImageName("logbook_pic"+getDateStamp());
|
||||
imageSelectorDialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
submit.setOnClickListener(submitOnClickListener);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
try{
|
||||
logbookObject = dataSnapshot.getValue(LogbookObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (logbookObject != null){
|
||||
picUri = Uri.parse(logbookObject.getPhotoString());
|
||||
v5cString = logbookObject.getV5cnumber();
|
||||
|
||||
if(!uploadNew) {
|
||||
v5cNumber.setText(v5cString);
|
||||
Picasso.get()
|
||||
.load(picUri)
|
||||
.into(loadImage(progressBar, lbImage));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
v5cString = v5cNumber.getText().toString().trim();
|
||||
|
||||
if (!TextUtils.isEmpty(v5cString)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
Log.i(TAG, "processFinish: ");
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
publishObject();
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
}).uploadImage(LOG_BOOK_FIREBASE,LOG_BOOK_FIREBASE + getDateStamp());
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}else {
|
||||
if (TextUtils.isEmpty(v5cString)){
|
||||
v5cNumber.setError("Field required");
|
||||
}
|
||||
if (picUri == null){
|
||||
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,LOG_BOOK_FIREBASE,logbookObject);
|
||||
}
|
||||
|
||||
LogbookObject logbookObjectNew = new LogbookObject(picUri.toString(), v5cString);
|
||||
|
||||
reference.setValue(logbookObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
approvalsClass.setStatusCode(UID,LOG_BOOK_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else{
|
||||
Toast.makeText(getContext(), "Upload Unsuccessful", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.VISIBLE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
|
||||
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
|
||||
Intent cameraIntent = new
|
||||
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
startActivityForResult(cameraIntent, CAMERA_REQUEST);
|
||||
} else {
|
||||
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,lbImage,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class FindAddressFragment extends Fragment {
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_find_address, container, false);
|
||||
|
||||
TextView findAddress = view.findViewById(R.id.findaddress);
|
||||
Button sumbit = view.findViewById(R.id.submit);
|
||||
|
||||
LinearLayout linearLayout = view.findViewById(R.id.lin_lay);
|
||||
|
||||
EditText address = view.findViewById(R.id.address);
|
||||
EditText postcode = view.findViewById(R.id.postcode);
|
||||
|
||||
findAddress.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog dialogAddress = new ImageSelectorDialog(getContext());
|
||||
dialogAddress.show();
|
||||
}
|
||||
});
|
||||
|
||||
sumbit.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.ApprovalsObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_DENIED;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVED;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.NO_DATE_PRESENT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_APPROVALS;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson;
|
||||
|
||||
public class ApprovalsClass {
|
||||
|
||||
public ApprovalsClass() {
|
||||
}
|
||||
|
||||
public static int mode(int[] array) {
|
||||
printObjectAsJson("modeArrays",array);
|
||||
int mode = array[0];
|
||||
int maxCount = 0;
|
||||
if (matchedArray(array,3)){
|
||||
return 3;
|
||||
}else if (matchedArray(array,0)){
|
||||
return 0;
|
||||
}else {
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
int value = array[i];
|
||||
int count = 1;
|
||||
for (int j = 0; j < array.length; j++) {
|
||||
if (array[j] == value) count++;
|
||||
if (count > maxCount) {
|
||||
mode = value;
|
||||
maxCount = count;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mode == 3){
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return mode;
|
||||
}
|
||||
|
||||
private static boolean matchedArray (int [] array, int match){
|
||||
for (int i : array){
|
||||
if (i != match){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getOverApprovalStatusCode(WholeDriverObject wholeDriverObject){
|
||||
|
||||
if (wholeDriverObject.approvalsObject != null){
|
||||
ApprovalsObject approvalsObject = wholeDriverObject.getApprovalsObject();
|
||||
|
||||
int[] ints = new int[]{approvalsObject.getDriver_details_approval(),
|
||||
approvalsObject.getDriver_license_approval(),
|
||||
approvalsObject.getPrivate_hire_approval(),
|
||||
approvalsObject.getVehicle_details_approval(),
|
||||
approvalsObject.getInsurance_details_approval(),
|
||||
approvalsObject.getMot_details_approval(),
|
||||
approvalsObject.getLog_book_approval(),
|
||||
approvalsObject.getPh_car_approval()};
|
||||
|
||||
|
||||
return setImageResource(mode(ints));
|
||||
}
|
||||
|
||||
return setImageResource(NO_DATE_PRESENT);
|
||||
}
|
||||
|
||||
public void setStatusCode(String userId,String approvalNameString,int status){
|
||||
|
||||
if (!approvalNameString.equals("")) {
|
||||
mDatabase.child(USER_FIREBASE).child(userId).child(USER_APPROVALS).child(approvalNameString)
|
||||
.setValue(status).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public int setImageResource(int statusCode){
|
||||
int imageResource;
|
||||
|
||||
switch (statusCode){
|
||||
case APPROVAL_PENDING:
|
||||
imageResource = R.drawable.pending;
|
||||
break;
|
||||
case APPROVAL_DENIED:
|
||||
imageResource = R.drawable.denied;
|
||||
break;
|
||||
case APPROVED:
|
||||
imageResource = R.drawable.approved;
|
||||
break;
|
||||
default:
|
||||
imageResource = R.drawable.zero;
|
||||
break;
|
||||
}
|
||||
|
||||
return imageResource;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.util.Log;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.ARCHIVE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateTimeStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
|
||||
public class ArchiveClass {
|
||||
private static final String TAG = "ArchiveClass";
|
||||
|
||||
public ArchiveClass() {
|
||||
}
|
||||
|
||||
public void archiveRecord(String UID, String item, Object object) {
|
||||
final DatabaseReference toPath = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(ARCHIVE_FIREBASE).child(item);
|
||||
|
||||
toPath.child(getDateTimeStamp()).setValue(object).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Log.i(TAG, "onComplete: archive successful");
|
||||
}else {
|
||||
Log.i(TAG, "onComplete: archive unsuccessful");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void openDialogArchive(Context context,Object object, final Fragment fragment){
|
||||
if (object == null){
|
||||
executeFragment(fragment);
|
||||
}else {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
builder.setMessage("Do you want to View/Edit or Upload new?")
|
||||
.setPositiveButton("View/Edit", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
executeFragment(fragment);
|
||||
}
|
||||
})
|
||||
.setNegativeButton("Upload New", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(UPLOAD_NEW,"Yes");
|
||||
fragment.setArguments(bundle);
|
||||
executeFragment(fragment);
|
||||
}
|
||||
})
|
||||
.create().show();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void openDialogArchive(Context context,Object object, String user,final Fragment fragment){
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putString("user_id",user);
|
||||
fragment.setArguments(bundle);
|
||||
|
||||
if (object == null){
|
||||
executeFragment(fragment);
|
||||
}else {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
builder.setMessage("Do you want to View/Edit or Upload new?")
|
||||
.setPositiveButton("View/Edit", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
executeFragment(fragment);
|
||||
}
|
||||
})
|
||||
.setNegativeButton("Upload New", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
bundle.putString(UPLOAD_NEW,"Yes");
|
||||
executeFragment(fragment);
|
||||
}
|
||||
})
|
||||
.create().show();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.app.DatePickerDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.widget.DatePicker;
|
||||
@@ -16,6 +18,8 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
public class DateDialog extends DatePickerDialog {
|
||||
|
||||
int mYear;
|
||||
@@ -24,10 +28,12 @@ public class DateDialog extends DatePickerDialog {
|
||||
|
||||
EditText editText;
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
public DateDialog(@NonNull Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
public DateDialog(@NonNull Context context, int themeResId) {
|
||||
super(context, themeResId);
|
||||
}
|
||||
@@ -70,16 +76,16 @@ public class DateDialog extends DatePickerDialog {
|
||||
mDay = calendar.get(Calendar.DAY_OF_MONTH);
|
||||
}else {
|
||||
try {
|
||||
SimpleDateFormat sdfrmt = new SimpleDateFormat("dd-MM-yyyy");
|
||||
SimpleDateFormat sdfrmt = new SimpleDateFormat("dd/MM/yyyy");
|
||||
sdfrmt.setLenient(false);
|
||||
javaDate = sdfrmt.parse(dateString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}finally {
|
||||
if (javaDate != null) {
|
||||
mYear = Integer.parseInt(dateString.substring(6, 9));
|
||||
mMonth = Integer.parseInt(dateString.substring(4, 5));
|
||||
mDay = Integer.parseInt(dateString.substring(1, 2));
|
||||
mYear = Integer.parseInt(dateString.substring(6, dateString.length()));
|
||||
mMonth = Integer.parseInt(dateString.substring(3, 5))-1;
|
||||
mDay = Integer.parseInt(dateString.substring(0, 2));
|
||||
}else {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
mYear = calendar.get(Calendar.YEAR);
|
||||
@@ -110,8 +116,8 @@ public class DateDialog extends DatePickerDialog {
|
||||
mMonth = month + 1;
|
||||
mDay = dayOfMonth;
|
||||
|
||||
editText.setText(String.format("%02d", mDay) + "-" +
|
||||
String.format("%02d", (mMonth)) +"-" +
|
||||
editText.setText(String.format("%02d", mDay) + "/" +
|
||||
String.format("%02d", (mMonth)) +"/" +
|
||||
mYear
|
||||
);
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
|
||||
public class ExecuteFragment {
|
||||
|
||||
public static final String UPLOAD_NEW = "upload_new";
|
||||
|
||||
public static void executeFragment(Fragment fragment, Bundle bundle) {
|
||||
executeFragmentMethod(fragment,bundle);
|
||||
}
|
||||
|
||||
public static void executeFragment(Fragment fragment) {
|
||||
executeFragmentMethod(fragment);
|
||||
}
|
||||
|
||||
public static void executeFragment(Fragment fragment, String userId) {
|
||||
executeFragmentMethod(fragment,userId);
|
||||
}
|
||||
|
||||
public static void executeFragment(Fragment fragment, String userId, String archive) {
|
||||
executeFragmentMethod(fragment,userId,archive);
|
||||
}
|
||||
|
||||
private static void executeFragmentMethod(Fragment f){
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit();
|
||||
}
|
||||
|
||||
private static void executeFragmentMethod(Fragment f,String user_id){
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("user_id",user_id);
|
||||
|
||||
f.setArguments(bundle);
|
||||
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit();
|
||||
}
|
||||
|
||||
private static void executeFragmentMethod(Fragment f,String user_id,String archive){
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("user_id",user_id);
|
||||
bundle.putString("archive",archive);
|
||||
|
||||
f.setArguments(bundle);
|
||||
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit();
|
||||
}
|
||||
|
||||
private static void executeFragmentMethod(Fragment f, Bundle b){
|
||||
if (b != null){
|
||||
f.setArguments(b);
|
||||
}
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit();
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,8 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
@@ -26,11 +25,24 @@ public class FirebaseClass {
|
||||
public static final String PRIVATE_HIRE_FIREBASE = "private_hire";
|
||||
public static final String DRIVERS_LICENSE_FIREBASE = "driver_license";
|
||||
|
||||
public static final String USER_APPROVALS = "approvalsObject";
|
||||
public static final String APPROVAL_CONSTANT = "_approval";
|
||||
public static final String ARCHIVE_FIREBASE = "archive";
|
||||
|
||||
public static final String DRIVER_NUMBER = "driver_number";
|
||||
|
||||
public static final String VEHICLE_FIREBASE = "vehicle_profile";
|
||||
public static final String MOT_FIREBASE = "mot_details";
|
||||
public static final String VEHICLE_DETAILS_FIREBASE = "vehicle_details";
|
||||
public static final String INSURANCE_FIREBASE = "insurance_details";
|
||||
public static final String LOG_BOOK_FIREBASE = "log_book";
|
||||
public static final String PRIVATE_HIRE_VEHICLE_LICENSE = "private_hire_vehicle";
|
||||
|
||||
public static final int NO_DATE_PRESENT = 0;
|
||||
public static final int APPROVAL_PENDING = 1;
|
||||
public static final int APPROVAL_DENIED = 2;
|
||||
public static final int APPROVED = 3;
|
||||
|
||||
|
||||
Context context;
|
||||
Uri filePath;
|
||||
@@ -49,8 +61,7 @@ public class FirebaseClass {
|
||||
|
||||
public void uploadImage(String path, String name) {
|
||||
|
||||
if(filePath != null)
|
||||
{
|
||||
if(filePath != null) {
|
||||
final ProgressDialog progressDialog = new ProgressDialog(context);
|
||||
progressDialog.setTitle("Uploading...");
|
||||
progressDialog.show();
|
||||
@@ -1,4 +1,4 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
@@ -17,6 +17,7 @@ import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.content.FileProvider;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
@@ -33,6 +34,9 @@ import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static android.support.v4.app.ActivityCompat.getPermissionCompatDelegate;
|
||||
import static android.support.v4.app.ActivityCompat.requestPermissions;
|
||||
import static android.support.v4.app.ActivityCompat.startActivityForResult;
|
||||
import static android.support.v4.content.PermissionChecker.checkSelfPermission;
|
||||
@@ -45,6 +49,7 @@ public class ImageSelectorDialog extends Dialog{
|
||||
public static final int PICK_IMAGE_REQUEST = 71;
|
||||
public static final int CAMERA_REQUEST = 1888;
|
||||
public static final int MY_CAMERA_PERMISSION_CODE = 100;
|
||||
public static final int STORAGE_PERMISSION_CODE = 101;
|
||||
|
||||
private String saveFileName;
|
||||
public static Uri photoURI;
|
||||
@@ -73,11 +78,8 @@ public class ImageSelectorDialog extends Dialog{
|
||||
setContentView(R.layout.address_dialog);
|
||||
|
||||
//check if we have we have storage rights
|
||||
int permission = ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
|
||||
if (permission != PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(getContext(), "Storage permissions not granted", Toast.LENGTH_SHORT).show();
|
||||
}else {
|
||||
final int permissionPic = ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
final int permissionCam = ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.CAMERA);
|
||||
|
||||
fragment = fragmentManager.getFragments().get(0);
|
||||
|
||||
@@ -87,7 +89,14 @@ public class ImageSelectorDialog extends Dialog{
|
||||
upload.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (permissionPic == PackageManager.PERMISSION_GRANTED){
|
||||
chooseImage();
|
||||
|
||||
}else {
|
||||
Toast.makeText(getContext(), "Storage permissions required", Toast.LENGTH_SHORT).show();
|
||||
requestPermissions(fragment.getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
||||
STORAGE_PERMISSION_CODE);
|
||||
}
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
@@ -95,13 +104,7 @@ public class ImageSelectorDialog extends Dialog{
|
||||
takePic.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
if (
|
||||
checkSelfPermission(fragment.getActivity(), Manifest.permission.CAMERA)
|
||||
!= PackageManager.PERMISSION_GRANTED) {
|
||||
requestPermissions(fragment.getActivity(), new String[]{Manifest.permission.CAMERA},
|
||||
MY_CAMERA_PERMISSION_CODE);
|
||||
} else {
|
||||
if (permissionCam == PackageManager.PERMISSION_GRANTED){
|
||||
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
File file = createFile();
|
||||
photoURI = Uri.fromFile(file);
|
||||
@@ -111,13 +114,14 @@ public class ImageSelectorDialog extends Dialog{
|
||||
file);
|
||||
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
|
||||
fragment.startActivityForResult(cameraIntent, CAMERA_REQUEST);
|
||||
|
||||
}else {
|
||||
Toast.makeText(getContext(), "Camera Permissions required", Toast.LENGTH_SHORT).show();
|
||||
requestPermissions(fragment.getActivity(), new String[]{Manifest.permission.CAMERA},
|
||||
MY_CAMERA_PERMISSION_CODE);
|
||||
}
|
||||
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Picture;
|
||||
import android.net.Uri;
|
||||
import android.os.Environment;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
@@ -21,16 +17,12 @@ import android.widget.Toast;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
|
||||
import static android.app.Activity.RESULT_OK;
|
||||
import static android.os.Environment.DIRECTORY_PICTURES;
|
||||
import static h_mal.appttude.com.driver.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.ImageSelectorDialog.PICK_IMAGE_REQUEST;
|
||||
import static h_mal.appttude.com.driver.ImageSelectorDialog.photoURI;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.PICK_IMAGE_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.photoURI;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
|
||||
public class ImageSelectorResults {
|
||||
@@ -41,14 +33,13 @@ public class ImageSelectorResults {
|
||||
void processFinish(Uri output);
|
||||
}
|
||||
|
||||
public FilepathResponse delegate;
|
||||
// public FilepathResponse delegate;
|
||||
|
||||
public ImageSelectorResults(FilepathResponse delegate) {
|
||||
this.delegate = delegate;
|
||||
public ImageSelectorResults() {
|
||||
}
|
||||
|
||||
public void Results(Activity activity, int requestCode, int resultCode, Intent data, Uri filePath,
|
||||
ImageView imageView){
|
||||
ImageView imageView,FilepathResponse delegate){
|
||||
|
||||
this.activity = activity;
|
||||
|
||||
@@ -70,9 +61,12 @@ public class ImageSelectorResults {
|
||||
}
|
||||
finally {
|
||||
if (bitmap != null){
|
||||
//
|
||||
delegate.processFinish(filePath);
|
||||
Log.i(getClass().getSimpleName(), "Results: " + filePath);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
|
||||
@@ -108,10 +102,73 @@ public class ImageSelectorResults {
|
||||
|
||||
}
|
||||
|
||||
delegate.processFinish(filePath);
|
||||
Log.i(getClass().getSimpleName(), "Results: " + filePath);
|
||||
}
|
||||
}
|
||||
|
||||
public void Results(Activity activity, int requestCode, int resultCode, Intent data, Uri filePath,FilepathResponse delegate){
|
||||
|
||||
this.activity = activity;
|
||||
|
||||
if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
|
||||
&& data != null && data.getData() != null )
|
||||
{
|
||||
filePath = data.getData();
|
||||
Bitmap bitmap = null;
|
||||
try {
|
||||
bitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), filePath);
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
finally {
|
||||
if (bitmap != null){
|
||||
delegate.processFinish(filePath);
|
||||
Log.i(getClass().getSimpleName(), "Results: " + filePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
|
||||
//check if we have we have storage rights
|
||||
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
|
||||
if (permission != PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(activity, "Storage permissions not granted", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}else {
|
||||
|
||||
try {
|
||||
File f = Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES);
|
||||
String fname = "driver"+ getDateStamp() + ".jpg";
|
||||
File image = new File(f,fname);
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(image);
|
||||
|
||||
filePath = photoURI;
|
||||
|
||||
Bitmap bitmap = MediaStore.Images.Media
|
||||
.getBitmap(activity.getContentResolver(), photoURI);
|
||||
|
||||
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, 90,fileOutputStream);
|
||||
fileOutputStream.flush();
|
||||
fileOutputStream.close();
|
||||
galleryAddPic();
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
delegate.processFinish(filePath);
|
||||
Log.i(getClass().getSimpleName(), "Results: " + filePath);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void galleryAddPic() {
|
||||
@@ -0,0 +1,245 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.provider.ContactsContract;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.view.PagerAdapter;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.AlphaAnimation;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.squareup.picasso.Target;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.MainActivity.imageViewClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
|
||||
public class ImageSwiperClass{
|
||||
|
||||
private static final String TAG = "ImageSwiperClass";
|
||||
|
||||
private ImageView left;
|
||||
private ImageView mainImage;
|
||||
private ImageView right;
|
||||
|
||||
private List<String> imageStrings;
|
||||
private Context context;
|
||||
|
||||
private SlidingImageViewAdapter adapter;
|
||||
|
||||
ViewPager viewPager;
|
||||
public ImageView delete;
|
||||
|
||||
public ImageSwiperClass(Context context, View wholeView) {
|
||||
this.context = context;
|
||||
|
||||
left = wholeView.findViewById(R.id.left);
|
||||
right = wholeView.findViewById(R.id.right);
|
||||
|
||||
left.setOnClickListener(leftClick);
|
||||
right.setOnClickListener(rightClick);
|
||||
|
||||
viewPager = wholeView.findViewById(R.id.view_pager);
|
||||
|
||||
delete = wholeView.findViewById(R.id.delete);
|
||||
|
||||
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageScrolled(int i, float v, int i1) {
|
||||
AlphaAnimation animation1 = new AlphaAnimation(0.2f, 1.0f);
|
||||
animation1.setDuration(200);
|
||||
animation1.setFillAfter(true);
|
||||
delete.startAnimation(animation1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(final int i) {
|
||||
Log.i(TAG, "onPageSelected: position = " + i);
|
||||
setArrows();
|
||||
delete.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
deleteDialog(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int i) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
Log.i(TAG, "ImageSwiperClass: viewpager = " + viewPager.getId());
|
||||
}
|
||||
|
||||
public List<String> getImageStrings() {
|
||||
return imageStrings;
|
||||
}
|
||||
|
||||
public void addPhotoString(String s){
|
||||
if (imageStrings == null){
|
||||
imageStrings = new ArrayList<>();
|
||||
}
|
||||
imageStrings.add(s);
|
||||
|
||||
adapter = new SlidingImageViewAdapter();
|
||||
viewPager.setAdapter(adapter);
|
||||
}
|
||||
|
||||
public void reinstantiateList(List<String> imageStrings){
|
||||
this.imageStrings = imageStrings;
|
||||
|
||||
adapter = new SlidingImageViewAdapter();
|
||||
viewPager.setAdapter(adapter);
|
||||
|
||||
setArrows();
|
||||
}
|
||||
|
||||
public void hideDelete(){
|
||||
delete.setVisibility(View.INVISIBLE);
|
||||
Log.i(TAG, "hideDelete: hides deleete?");
|
||||
}
|
||||
|
||||
private View.OnClickListener leftClick = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
|
||||
setArrows();
|
||||
}
|
||||
};
|
||||
|
||||
private View.OnClickListener rightClick = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
viewPager.setCurrentItem(viewPager.getCurrentItem() +1);
|
||||
setArrows();
|
||||
}
|
||||
};
|
||||
|
||||
private void deleteDialog(final int position){
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
builder.setMessage("Are you sure you want to delete?")
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
imageStrings.remove(position);
|
||||
viewPager.setAdapter(adapter);
|
||||
// adapter.notifyDataSetChanged();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.create()
|
||||
.show();
|
||||
}
|
||||
|
||||
private void setArrows(){
|
||||
if (imageStrings != null && imageStrings.size() > 0){
|
||||
//left arrow
|
||||
if (viewPager.getCurrentItem() > 0){
|
||||
setAnimation(left,true);
|
||||
}else{
|
||||
setAnimation(left,false);
|
||||
}
|
||||
|
||||
//right
|
||||
if (viewPager.getCurrentItem() == imageStrings.size() -1){
|
||||
setAnimation(right,false);
|
||||
}else{
|
||||
setAnimation(right,true);
|
||||
}
|
||||
}
|
||||
if (imageStrings == null){
|
||||
setAnimation(left,false);
|
||||
setAnimation(right,false);
|
||||
}
|
||||
}
|
||||
|
||||
private void setAnimation(ImageView view,boolean up){
|
||||
float start;
|
||||
float finish;
|
||||
if(up){
|
||||
start = 0.2f;
|
||||
finish = 1.0f;
|
||||
}else {
|
||||
start = 1.0f;
|
||||
finish = 0.2f;
|
||||
}
|
||||
// if (view.getAlpha() != start){
|
||||
AlphaAnimation animation1 = new AlphaAnimation(start, finish);
|
||||
animation1.setDuration(500);
|
||||
animation1.setFillAfter(true);
|
||||
// view.startAnimation(animation1);
|
||||
view.setAlpha(finish);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
class SlidingImageViewAdapter extends PagerAdapter{
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
if (imageStrings == null || imageStrings.size() < 1){
|
||||
delete.setVisibility(View.GONE);
|
||||
return 0;
|
||||
}else {
|
||||
delete.setVisibility(View.VISIBLE);
|
||||
return imageStrings.size();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroyItem(@NonNull ViewGroup container, int position,Object object) {
|
||||
if (object != null){
|
||||
container.removeView((View) object);
|
||||
}else {
|
||||
container.removeViewAt(position);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
|
||||
return view.equals(o);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Object instantiateItem(@NonNull ViewGroup container, final int position) {
|
||||
View pagerPic = LayoutInflater.from(context).inflate(R.layout.insurance_item,container,false);
|
||||
setArrows();
|
||||
|
||||
if(imageStrings != null && imageStrings.size() >0){
|
||||
mainImage = pagerPic.getRootView().findViewById(R.id.main_image);
|
||||
final ProgressBar pb = pagerPic.findViewById(R.id.pb_ins);
|
||||
|
||||
Picasso.get().load(imageStrings.get(position)).into(loadImage(pb,mainImage));
|
||||
|
||||
}
|
||||
|
||||
container.addView(pagerPic, 0);
|
||||
|
||||
return pagerPic;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyDataSetChanged() {
|
||||
super.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.design.widget.FloatingActionButton;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.github.chrisbanes.photoview.PhotoView;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static android.os.Environment.DIRECTORY_PICTURES;
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.photoURI;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
|
||||
public class ImageViewClass {
|
||||
|
||||
public static final String IMAGE_VALUE = "image";
|
||||
private static Bitmap bitmap;
|
||||
|
||||
public ImageViewClass() {
|
||||
}
|
||||
|
||||
public void open(Bitmap bitmap){
|
||||
ImageViewClass.bitmap = bitmap;
|
||||
executeFragment(new ImageViewerFragment());
|
||||
}
|
||||
|
||||
public static class ImageViewerFragment extends Fragment {
|
||||
|
||||
private View view;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
view = inflater.inflate(R.layout.fragment_image_viewer, container, false);
|
||||
|
||||
FloatingActionButton fab = view.findViewById(R.id.download_pic);
|
||||
|
||||
if (bitmap != null){
|
||||
PhotoView photoView = view.findViewById(R.id.photo_view);
|
||||
photoView.setImageBitmap(bitmap);
|
||||
|
||||
fab.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
downloadPic();
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
|
||||
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
}
|
||||
@Override
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
((AppCompatActivity)getActivity()).getSupportActionBar().show();
|
||||
getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
}
|
||||
|
||||
private void downloadPic() throws FileNotFoundException {
|
||||
File f = Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES);
|
||||
String fname = "driver"+ getDateStamp() + ".jpg";
|
||||
File image = new File(f,fname);
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(image);
|
||||
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, 100,fileOutputStream);
|
||||
try {
|
||||
fileOutputStream.flush();
|
||||
fileOutputStream.close();
|
||||
|
||||
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
|
||||
Uri contentUri = Uri.fromFile(image);
|
||||
mediaScanIntent.setData(contentUri);
|
||||
getActivity().sendBroadcast(mediaScanIntent);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_DENIED;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVED;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_DETAILS_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_APPROVALS;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_DETAILS_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
public class SetApprovalDialog{
|
||||
|
||||
private final String[] groupNames = {"Pending","Denied","Approved"};
|
||||
private String approvalNameString;
|
||||
|
||||
public int statusCode;
|
||||
private Activity activity;
|
||||
private String userId;
|
||||
private ImageView imageView;
|
||||
|
||||
public SetApprovalDialog(int statusCode, Activity activity, String userId, int position, ImageView imageView) {
|
||||
this.statusCode = statusCode;
|
||||
this.activity = activity;
|
||||
this.userId = userId;
|
||||
this.imageView = imageView;
|
||||
this.approvalNameString = getElement(position);
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
public void init(){
|
||||
int checkedItem;
|
||||
switch (statusCode){
|
||||
case APPROVAL_PENDING:
|
||||
checkedItem = 0;
|
||||
break;
|
||||
case APPROVAL_DENIED:
|
||||
checkedItem = 1;
|
||||
break;
|
||||
case APPROVED:
|
||||
checkedItem = 2;
|
||||
break;
|
||||
default:
|
||||
checkedItem = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(activity);
|
||||
alertBuilder.setSingleChoiceItems(groupNames, checkedItem, singleChoiceListener);
|
||||
// .setPositiveButton(android.R.string.ok, submit);
|
||||
alertBuilder.create().getOwnerActivity();
|
||||
alertBuilder.show();
|
||||
}
|
||||
|
||||
DialogInterface.OnClickListener singleChoiceListener = new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
switch (which) {
|
||||
case 0:
|
||||
statusCode = APPROVAL_PENDING;
|
||||
publishStatuscode(statusCode, dialog);
|
||||
return;
|
||||
case 1:
|
||||
statusCode = APPROVAL_DENIED;
|
||||
publishStatuscode(statusCode, dialog);
|
||||
return;
|
||||
case 2:
|
||||
statusCode = APPROVED;
|
||||
publishStatuscode(statusCode, dialog);
|
||||
return;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private void publishStatuscode(final int status, final DialogInterface dialog){
|
||||
viewController.progress(View.VISIBLE);
|
||||
|
||||
if (!approvalNameString.equals("")){
|
||||
mDatabase.child(USER_FIREBASE).child(userId).child(USER_APPROVALS).child(approvalNameString)
|
||||
.setValue(status).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Toast.makeText(activity, "Status change successful", Toast.LENGTH_SHORT).show();
|
||||
imageView.setImageResource(approvalsClass.setImageResource(status));
|
||||
dialog.dismiss();
|
||||
}else{
|
||||
Toast.makeText(activity, "Status change unsuccessful", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
});
|
||||
}else {
|
||||
Toast.makeText(activity, "Could not push status", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private String getElement(int i){
|
||||
String element = "";
|
||||
|
||||
switch (i){
|
||||
case 0:
|
||||
element = DRIVER_DETAILS_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 1:
|
||||
element = DRIVERS_LICENSE_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 2:
|
||||
element = PRIVATE_HIRE_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 3:
|
||||
element = VEHICLE_DETAILS_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 4:
|
||||
element = INSURANCE_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 5:
|
||||
element = MOT_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 6:
|
||||
element = LOG_BOOK_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 7:
|
||||
element = PRIVATE_HIRE_VEHICLE_LICENSE + APPROVAL_CONSTANT;
|
||||
|
||||
}
|
||||
|
||||
return element;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.view.View;
|
||||
|
||||
public class ViewController {
|
||||
|
||||
private Activity activity;
|
||||
|
||||
public ViewController(Activity activity) {
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
public void progress(int vis){
|
||||
if (activity instanceof ViewControllerInterface){
|
||||
((ViewControllerInterface) activity).progressVisibility(vis);
|
||||
}
|
||||
}
|
||||
|
||||
public void reloadDrawer(){
|
||||
if (activity instanceof ViewControllerInterface){
|
||||
((ViewControllerInterface) activity).updateDrawer();
|
||||
}
|
||||
}
|
||||
|
||||
public interface ViewControllerInterface {
|
||||
|
||||
void progressVisibility(int vis);
|
||||
|
||||
void updateDrawer();
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
|
||||
public class InsuranceFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_insurance, container, false);
|
||||
|
||||
TextView uploadInsurance = view.findViewById(R.id.uploadInsurance);
|
||||
|
||||
|
||||
|
||||
uploadInsurance.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,17 +2,16 @@ package h_mal.appttude.com.driver;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.design.widget.FloatingActionButton;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@@ -24,23 +23,49 @@ import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.auth.FirebaseUser;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.FirebaseDatabase;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.google.firebase.storage.FirebaseStorage;
|
||||
import com.google.firebase.storage.StorageReference;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.squareup.picasso.Target;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import h_mal.appttude.com.driver.Driver.DriverOverallFragment;
|
||||
import h_mal.appttude.com.driver.Driver.VehicleOverallFragment;
|
||||
import h_mal.appttude.com.driver.Driver.VehicleSetupFragment;
|
||||
import h_mal.appttude.com.driver.Driver.DriverProfileFragment;
|
||||
import h_mal.appttude.com.driver.Driver.homeDriverFragment;
|
||||
import h_mal.appttude.com.driver.Global.ApprovalsClass;
|
||||
import h_mal.appttude.com.driver.Global.ArchiveClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageViewClass;
|
||||
import h_mal.appttude.com.driver.Global.ViewController;
|
||||
import h_mal.appttude.com.driver.SuperUser.homeSuperUserFragment;
|
||||
import h_mal.appttude.com.driver.User.LoginActivity;
|
||||
import h_mal.appttude.com.driver.User.profileFragment;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
|
||||
public class MainActivity extends AppCompatActivity
|
||||
implements NavigationView.OnNavigationItemSelectedListener {
|
||||
implements NavigationView.OnNavigationItemSelectedListener, ViewController.ViewControllerInterface {
|
||||
|
||||
private static String TAG = MainActivity.class.getSimpleName();
|
||||
|
||||
@@ -50,7 +75,14 @@ public class MainActivity extends AppCompatActivity
|
||||
public static StorageReference storageReference;
|
||||
public static DatabaseReference mDatabase;
|
||||
|
||||
public static NavigationView navigationView;
|
||||
public NavigationView navigationView;
|
||||
ProgressBar progressBar;
|
||||
public Toolbar toolbar;
|
||||
|
||||
public static ViewController viewController;
|
||||
public static ImageViewClass imageViewClass;
|
||||
public static ApprovalsClass approvalsClass;
|
||||
public static ArchiveClass archiveClass;
|
||||
|
||||
private static final int REQUEST_EXTERNAL_STORAGE = 1;
|
||||
private static String[] PERMISSIONS_STORAGE = {
|
||||
@@ -63,12 +95,22 @@ public class MainActivity extends AppCompatActivity
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
|
||||
viewController = new ViewController(this);
|
||||
imageViewClass = new ImageViewClass();
|
||||
approvalsClass = new ApprovalsClass();
|
||||
archiveClass = new ArchiveClass();
|
||||
|
||||
auth = FirebaseAuth.getInstance();
|
||||
storage = FirebaseStorage.getInstance();
|
||||
storageReference = storage.getReference();
|
||||
mDatabase = FirebaseDatabase.getInstance().getReference();
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
DatabaseReference ref = mDatabase.child(USER_FIREBASE)
|
||||
.child(auth.getCurrentUser().getUid())
|
||||
.child("role");
|
||||
|
||||
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||
@@ -79,20 +121,91 @@ public class MainActivity extends AppCompatActivity
|
||||
|
||||
navigationView = (NavigationView) findViewById(R.id.nav_view);
|
||||
navigationView.setNavigationItemSelectedListener(this);
|
||||
|
||||
fragmentManager = getSupportFragmentManager();
|
||||
executeFragment(new homeFragment());
|
||||
|
||||
setupDrawer();
|
||||
|
||||
fragmentManager = getSupportFragmentManager();
|
||||
fragmentManager.addOnBackStackChangedListener(backStackChangedListener);
|
||||
|
||||
progressBar = findViewById(R.id.progress_bar);
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
|
||||
ref.addListenerForSingleValueEvent(new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
String role = (String) dataSnapshot.getValue();
|
||||
Log.i(TAG, "onDataChange: " + role);
|
||||
if (role.equals("driver")){
|
||||
executeFragment(new homeDriverFragment());
|
||||
|
||||
}else if(role.equals("super_user")){
|
||||
executeFragment(new homeSuperUserFragment());
|
||||
}
|
||||
drawerMenuItems(role);
|
||||
progressBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
public static void executeFragment(Fragment f){
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit();
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void setupDrawer(){
|
||||
public FragmentManager.OnBackStackChangedListener backStackChangedListener= new FragmentManager.OnBackStackChangedListener() {
|
||||
@Override
|
||||
public void onBackStackChanged() {
|
||||
String fragmentString = fragmentManager.getFragments().get(0).getClass().getSimpleName();
|
||||
String title;
|
||||
|
||||
switch (fragmentString){
|
||||
case "DriverProfileFragment":
|
||||
title = "Driver Profile";
|
||||
break;
|
||||
case "DriverLicenseFragment":
|
||||
title = "Drivers License";
|
||||
break;
|
||||
case "InsuranceFragment":
|
||||
title = "Insurance";
|
||||
break;
|
||||
case "logbookFragment":
|
||||
title = "Logbook";
|
||||
break;
|
||||
case "MotFragment":
|
||||
title = "M.O.T";
|
||||
break;
|
||||
case "PrivateHireLicenseFragment":
|
||||
title = "Private Hire License";
|
||||
break;
|
||||
case "VehicleSetupFragment":
|
||||
title = "Vehicle Profile";
|
||||
break;
|
||||
case "UserMainFragment":
|
||||
return;
|
||||
case "ArchiveFragment":
|
||||
return;
|
||||
default:
|
||||
title = getResources().getString(R.string.app_name);
|
||||
}
|
||||
|
||||
setTitle(title);
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void setTitle(CharSequence title) {
|
||||
// super.setTitle(title);
|
||||
|
||||
toolbar.setTitle(title);
|
||||
}
|
||||
|
||||
public void drawerMenuItems(String s){
|
||||
if (s.equals("super_user")){
|
||||
Menu menu = navigationView.getMenu();
|
||||
menu.removeGroup(R.id.menu_group);
|
||||
}
|
||||
}
|
||||
|
||||
public void setupDrawer(){
|
||||
View header = navigationView.getHeaderView(0);
|
||||
|
||||
TextView driverEmail = header.findViewById(R.id.driver_email);
|
||||
@@ -108,14 +221,22 @@ public class MainActivity extends AppCompatActivity
|
||||
driverName.setText(user.getDisplayName());
|
||||
}
|
||||
|
||||
Log.i(TAG, "setupDrawer: "+ storageReference.child("images/"+auth.getCurrentUser().getEmail()+"/profile_pic").getDownloadUrl());
|
||||
|
||||
Picasso.get()
|
||||
.load(user.getPhotoUrl())
|
||||
.placeholder(R.mipmap.ic_launcher_round)
|
||||
.placeholder(R.drawable.choice_img_round)
|
||||
.into(driverImage);
|
||||
}
|
||||
|
||||
TextView textView = findViewById(R.id.logout);
|
||||
textView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
auth.signOut();
|
||||
Intent intent = new Intent(getApplicationContext(),LoginActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -126,9 +247,23 @@ public class MainActivity extends AppCompatActivity
|
||||
drawer.closeDrawer(GravityCompat.START);
|
||||
} else {
|
||||
if (fragmentManager.getBackStackEntryCount() > 1) {
|
||||
if (fragmentManager.getFragments().get(0).getClass()
|
||||
.getSimpleName().equals("InsuranceFragment")){
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle("Return to previous?")
|
||||
.setMessage("Progress unsaved. Are you sure?")
|
||||
.setNegativeButton(android.R.string.no, null)
|
||||
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface arg0, int arg1) {
|
||||
fragmentManager.popBackStack();
|
||||
}
|
||||
}).create().show();
|
||||
}else{
|
||||
new AlertDialog.Builder(this,R.style.Theme_AppCompat_Dialog_Alert)
|
||||
fragmentManager.popBackStack();
|
||||
}
|
||||
|
||||
}else{
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle("Leave?")
|
||||
.setMessage("Are you sure you want to exit?")
|
||||
.setNegativeButton(android.R.string.no, null)
|
||||
@@ -142,13 +277,6 @@ public class MainActivity extends AppCompatActivity
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
getMenuInflater().inflate(R.menu.main, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle action bar item clicks here. The action bar will
|
||||
@@ -174,9 +302,9 @@ public class MainActivity extends AppCompatActivity
|
||||
// Handle the camera action
|
||||
executeFragment(new profileFragment());
|
||||
} else if (id == R.id.nav_gallery) {
|
||||
executeFragment(new driverProfileFragment());
|
||||
executeFragment(new DriverOverallFragment());
|
||||
} else if (id == R.id.nav_slideshow) {
|
||||
executeFragment(new VehicleSetupFragment());
|
||||
executeFragment(new VehicleOverallFragment());
|
||||
}
|
||||
|
||||
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||
@@ -198,8 +326,72 @@ public class MainActivity extends AppCompatActivity
|
||||
}
|
||||
}
|
||||
|
||||
public static Target loadImage (final ProgressBar pb, final ImageView mainImage){
|
||||
|
||||
Target target = new Target() {
|
||||
@Override
|
||||
public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
|
||||
pb.setVisibility(View.GONE);
|
||||
|
||||
mainImage.setImageBitmap(bitmap);
|
||||
mainImage.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
imageViewClass.open(bitmap);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
|
||||
pb.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareLoad(Drawable placeHolderDrawable) {
|
||||
pb.setVisibility(View.VISIBLE);
|
||||
}
|
||||
};
|
||||
mainImage.setTag(target);
|
||||
|
||||
return target;
|
||||
|
||||
}
|
||||
|
||||
public static String getDateStamp(){
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmm");
|
||||
return sdf.format(new Date());
|
||||
}
|
||||
|
||||
public static String getDateTimeStamp(){
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
|
||||
return sdf.format(new Date());
|
||||
}
|
||||
|
||||
public static String setAsDateTime(String strCurrentDate) throws ParseException {
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss");
|
||||
Date newDate = format.parse(strCurrentDate);
|
||||
|
||||
format = new SimpleDateFormat("dd/MM/yyyy");
|
||||
return format.format(newDate);
|
||||
}
|
||||
|
||||
public static void printObjectAsJson(String TAG, Object o){
|
||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
JsonParser jp = new JsonParser();
|
||||
JsonElement je = jp.parse(new Gson().toJson(o));
|
||||
String prettyJsonString = gson.toJson(je);
|
||||
|
||||
Log.i(TAG, "onBindViewHolder: object" + prettyJsonString);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void progressVisibility(int vis) {
|
||||
progressBar.setVisibility(vis);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDrawer() {
|
||||
setupDrawer();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
|
||||
public class MotFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_mot, container, false);
|
||||
|
||||
TextView uploadMot = view.findViewById(R.id.uploadmot);
|
||||
|
||||
|
||||
|
||||
uploadMot.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package h_mal.appttude.com.driver.Objects;
|
||||
|
||||
public class ApprovalsObject {
|
||||
|
||||
public int driver_details_approval;
|
||||
public int driver_license_approval;
|
||||
public int private_hire_approval;
|
||||
public int vehicle_details_approval;
|
||||
public int mot_details_approval;
|
||||
public int insurance_details_approval;
|
||||
public int log_book_approval;
|
||||
public int private_hire_vehicle_approval;
|
||||
|
||||
public ApprovalsObject() {
|
||||
}
|
||||
|
||||
public ApprovalsObject(int driver_details_approval, int driver_license_approval, int private_hire_approval, int vehicle_details_approval, int mot_details_approval, int insurance_details_approval, int log_book_approval, int private_hire_vehicle_approval) {
|
||||
this.driver_details_approval = driver_details_approval;
|
||||
this.driver_license_approval = driver_license_approval;
|
||||
this.private_hire_approval = private_hire_approval;
|
||||
this.vehicle_details_approval = vehicle_details_approval;
|
||||
this.mot_details_approval = mot_details_approval;
|
||||
this.insurance_details_approval = insurance_details_approval;
|
||||
this.log_book_approval = log_book_approval;
|
||||
this.private_hire_vehicle_approval = private_hire_vehicle_approval;
|
||||
}
|
||||
|
||||
public int getPh_car_approval() {
|
||||
return private_hire_vehicle_approval;
|
||||
}
|
||||
|
||||
public int getDriver_details_approval() {
|
||||
return driver_details_approval;
|
||||
}
|
||||
|
||||
public int getDriver_license_approval() {
|
||||
return driver_license_approval;
|
||||
}
|
||||
|
||||
public int getPrivate_hire_approval() {
|
||||
return private_hire_approval;
|
||||
}
|
||||
|
||||
public int getVehicle_details_approval() {
|
||||
return vehicle_details_approval;
|
||||
}
|
||||
|
||||
public int getMot_details_approval() {
|
||||
return mot_details_approval;
|
||||
}
|
||||
|
||||
public int getInsurance_details_approval() {
|
||||
return insurance_details_approval;
|
||||
}
|
||||
|
||||
public int getLog_book_approval() {
|
||||
return log_book_approval;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package h_mal.appttude.com.driver.Objects;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class ArchiveObject {
|
||||
|
||||
public HashMap<String,DriversLicenseObject> driver_license;
|
||||
public HashMap<String,PrivateHireObject> private_hire;
|
||||
public HashMap<String,VehicleProfileObject> vehicle_details;
|
||||
public HashMap<String,InsuranceObject> insurance_details;
|
||||
public HashMap<String,MotObject> mot_details;
|
||||
public HashMap<String,LogbookObject> log_book;
|
||||
public HashMap<String,PrivateHireVehicleObject> private_hire_vehicle;
|
||||
|
||||
public ArchiveObject() {
|
||||
}
|
||||
|
||||
public ArchiveObject(HashMap<String, DriversLicenseObject> driver_license, HashMap<String, PrivateHireObject> private_hire, HashMap<String, VehicleProfileObject> vehicle_details, HashMap<String, InsuranceObject> insurance_details, HashMap<String, MotObject> mot_details, HashMap<String, LogbookObject> log_book, HashMap<String, PrivateHireVehicleObject> private_hire_vehicle) {
|
||||
this.driver_license = driver_license;
|
||||
this.private_hire = private_hire;
|
||||
this.vehicle_details = vehicle_details;
|
||||
this.insurance_details = insurance_details;
|
||||
this.mot_details = mot_details;
|
||||
this.log_book = log_book;
|
||||
this.private_hire_vehicle = private_hire_vehicle;
|
||||
}
|
||||
|
||||
public HashMap<String, PrivateHireVehicleObject> getPh_car() {
|
||||
return private_hire_vehicle;
|
||||
}
|
||||
|
||||
public HashMap<String, DriversLicenseObject> getDriver_license() {
|
||||
return driver_license;
|
||||
}
|
||||
|
||||
public HashMap<String, PrivateHireObject> getPrivate_hire() {
|
||||
return private_hire;
|
||||
}
|
||||
|
||||
public HashMap<String, VehicleProfileObject> getVehicle_details() {
|
||||
return vehicle_details;
|
||||
}
|
||||
|
||||
public HashMap<String, InsuranceObject> getInsurance_details() {
|
||||
return insurance_details;
|
||||
}
|
||||
|
||||
public HashMap<String, MotObject> getMot_details() {
|
||||
return mot_details;
|
||||
}
|
||||
|
||||
public HashMap<String, LogbookObject> getLog_book() {
|
||||
return log_book;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,31 @@
|
||||
package h_mal.appttude.com.driver.Objects;
|
||||
|
||||
class InsuranceObject {
|
||||
import java.util.List;
|
||||
|
||||
public class InsuranceObject {
|
||||
|
||||
public List<String> photoStrings;
|
||||
public String insurerName;
|
||||
public String expiryDate;
|
||||
|
||||
public InsuranceObject() {
|
||||
}
|
||||
|
||||
public InsuranceObject(List<String> photoStrings, String insurerName, String expiryDate) {
|
||||
this.photoStrings = photoStrings;
|
||||
this.insurerName = insurerName;
|
||||
this.expiryDate = expiryDate;
|
||||
}
|
||||
|
||||
public List<String> getPhotoStrings() {
|
||||
return photoStrings;
|
||||
}
|
||||
|
||||
public String getInsurerName() {
|
||||
return insurerName;
|
||||
}
|
||||
|
||||
public String getExpiryDate() {
|
||||
return expiryDate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,23 @@
|
||||
package h_mal.appttude.com.driver.Objects;
|
||||
|
||||
class LogbookObject {
|
||||
public class LogbookObject {
|
||||
|
||||
public String photoString;
|
||||
public String v5cnumber;
|
||||
|
||||
public LogbookObject(String photoString, String v5cnumber) {
|
||||
this.photoString = photoString;
|
||||
this.v5cnumber = v5cnumber;
|
||||
}
|
||||
|
||||
public LogbookObject() {
|
||||
}
|
||||
|
||||
public String getPhotoString() {
|
||||
return photoString;
|
||||
}
|
||||
|
||||
public String getV5cnumber() {
|
||||
return v5cnumber;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,23 @@
|
||||
package h_mal.appttude.com.driver.Objects;
|
||||
|
||||
public class MotObject {
|
||||
|
||||
public String motImageString;
|
||||
public String motExpiry;
|
||||
|
||||
public MotObject() {
|
||||
}
|
||||
|
||||
public MotObject(String motImageString, String motExpiry) {
|
||||
this.motImageString = motImageString;
|
||||
this.motExpiry = motExpiry;
|
||||
}
|
||||
|
||||
public String getMotImageString() {
|
||||
return motImageString;
|
||||
}
|
||||
|
||||
public String getMotExpiry() {
|
||||
return motExpiry;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package h_mal.appttude.com.driver.Objects;
|
||||
|
||||
public class PrivateHireVehicleObject {
|
||||
|
||||
public String phCarImageString;
|
||||
public String phCarNumber;
|
||||
public String phCarExpiry;
|
||||
|
||||
public PrivateHireVehicleObject(String phCarImageString, String phCarNumber, String phCarExpiry) {
|
||||
this.phCarImageString = phCarImageString;
|
||||
this.phCarNumber = phCarNumber;
|
||||
this.phCarExpiry = phCarExpiry;
|
||||
}
|
||||
|
||||
public PrivateHireVehicleObject() {
|
||||
}
|
||||
|
||||
public String getPhCarImageString() {
|
||||
return phCarImageString;
|
||||
}
|
||||
|
||||
public String getPhCarNumber() {
|
||||
return phCarNumber;
|
||||
}
|
||||
|
||||
public String getPhCarExpiry() {
|
||||
return phCarExpiry;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package h_mal.appttude.com.driver.Objects;
|
||||
|
||||
public class UserObject {
|
||||
|
||||
public String profileName;
|
||||
public String profileEmail;
|
||||
public String profilePicString;
|
||||
|
||||
public UserObject() {
|
||||
}
|
||||
|
||||
public UserObject(String profileName, String profileEmail, String profilePicString) {
|
||||
this.profileName = profileName;
|
||||
this.profileEmail = profileEmail;
|
||||
this.profilePicString = profilePicString;
|
||||
}
|
||||
|
||||
public String getProfileName() {
|
||||
return profileName;
|
||||
}
|
||||
|
||||
public String getProfileEmail() {
|
||||
return profileEmail;
|
||||
}
|
||||
|
||||
public String getProfilePicString() {
|
||||
return profilePicString;
|
||||
}
|
||||
}
|
||||
@@ -11,13 +11,23 @@ public class VehicleProfileObject {
|
||||
public String keeperPostCode;
|
||||
public String startDate;
|
||||
public boolean seized;
|
||||
public MotObject motObject;
|
||||
public InsuranceObject insuranceObject;
|
||||
public LogbookObject logbookObject;
|
||||
|
||||
public VehicleProfileObject() {
|
||||
}
|
||||
|
||||
public VehicleProfileObject(String reg, String make, String model, String colour, String keeperName,
|
||||
String keeperAddress, String keeperPostCode, String startDate, boolean seized) {
|
||||
this.reg = reg;
|
||||
this.make = make;
|
||||
this.model = model;
|
||||
this.colour = colour;
|
||||
this.keeperName = keeperName;
|
||||
this.keeperAddress = keeperAddress;
|
||||
this.keeperPostCode = keeperPostCode;
|
||||
this.startDate = startDate;
|
||||
this.seized = seized;
|
||||
}
|
||||
|
||||
public String getReg() {
|
||||
return reg;
|
||||
}
|
||||
@@ -54,15 +64,4 @@ public class VehicleProfileObject {
|
||||
return seized;
|
||||
}
|
||||
|
||||
public MotObject getMotObject() {
|
||||
return motObject;
|
||||
}
|
||||
|
||||
public InsuranceObject getInsuranceObject() {
|
||||
return insuranceObject;
|
||||
}
|
||||
|
||||
public LogbookObject getLogbookObject() {
|
||||
return logbookObject;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
package h_mal.appttude.com.driver.Objects;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.ApprovalsObject;
|
||||
import h_mal.appttude.com.driver.Objects.ArchiveObject;
|
||||
import h_mal.appttude.com.driver.Objects.UserObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.DriverProfile;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.VehicleProfile;
|
||||
|
||||
public class WholeDriverObject {
|
||||
|
||||
public DriverProfile driver_profile;
|
||||
public String role;
|
||||
public ArchiveObject archive;
|
||||
public UserObject user_details;
|
||||
public VehicleProfile vehicle_profile;
|
||||
public ApprovalsObject approvalsObject;
|
||||
public String driver_number;
|
||||
|
||||
public WholeDriverObject(DriverProfile driver_profile, String role, ArchiveObject archive, UserObject user_details, VehicleProfile vehicle_profile, ApprovalsObject approvalsObject, String driver_number) {
|
||||
this.driver_profile = driver_profile;
|
||||
this.role = role;
|
||||
this.archive = archive;
|
||||
this.user_details = user_details;
|
||||
this.vehicle_profile = vehicle_profile;
|
||||
this.approvalsObject = approvalsObject;
|
||||
this.driver_number = driver_number;
|
||||
}
|
||||
|
||||
public WholeDriverObject() {
|
||||
}
|
||||
|
||||
public String getDriver_number() {
|
||||
return driver_number;
|
||||
}
|
||||
|
||||
public ArchiveObject getArchive() {
|
||||
return archive;
|
||||
}
|
||||
|
||||
public DriverProfile getDriver_profile() {
|
||||
return driver_profile;
|
||||
}
|
||||
|
||||
public String getRole() {
|
||||
return role;
|
||||
}
|
||||
|
||||
public UserObject getUser_details() {
|
||||
return user_details;
|
||||
}
|
||||
|
||||
public VehicleProfile getVehicle_profile() {
|
||||
return vehicle_profile;
|
||||
}
|
||||
|
||||
public ApprovalsObject getApprovalsObject() {
|
||||
return approvalsObject;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package h_mal.appttude.com.driver.Objects.WholeObject;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.DriverProfileObject;
|
||||
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
|
||||
public class DriverProfile {
|
||||
|
||||
public DriverProfileObject driver_profile;
|
||||
public DriversLicenseObject driver_license;
|
||||
public PrivateHireObject private_hire;
|
||||
|
||||
public DriverProfile(DriverProfileObject driver_profile, DriversLicenseObject driver_license, PrivateHireObject private_hire) {
|
||||
this.driver_profile = driver_profile;
|
||||
this.driver_license = driver_license;
|
||||
this.private_hire = private_hire;
|
||||
}
|
||||
|
||||
public DriverProfile() {
|
||||
}
|
||||
|
||||
public DriverProfileObject getDriver_profile() {
|
||||
return driver_profile;
|
||||
}
|
||||
|
||||
public DriversLicenseObject getDriver_license() {
|
||||
return driver_license;
|
||||
}
|
||||
|
||||
public PrivateHireObject getPrivate_hire() {
|
||||
return private_hire;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package h_mal.appttude.com.driver.Objects.WholeObject;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
|
||||
|
||||
public class MappedObject implements Parcelable {
|
||||
|
||||
public String userId;
|
||||
public WholeDriverObject wholeDriverObject;
|
||||
|
||||
public MappedObject(String userId, WholeDriverObject wholeDriverObject) {
|
||||
this.userId = userId;
|
||||
this.wholeDriverObject = wholeDriverObject;
|
||||
}
|
||||
|
||||
public MappedObject() {
|
||||
}
|
||||
|
||||
protected MappedObject(Parcel in) {
|
||||
userId = in.readString();
|
||||
}
|
||||
|
||||
public static final Creator<MappedObject> CREATOR = new Creator<MappedObject>() {
|
||||
@Override
|
||||
public MappedObject createFromParcel(Parcel in) {
|
||||
return new MappedObject(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MappedObject[] newArray(int size) {
|
||||
return new MappedObject[size];
|
||||
}
|
||||
};
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public WholeDriverObject getWholeDriverObject() {
|
||||
return wholeDriverObject;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeString(userId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package h_mal.appttude.com.driver.Objects.WholeObject;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.InsuranceObject;
|
||||
import h_mal.appttude.com.driver.Objects.LogbookObject;
|
||||
import h_mal.appttude.com.driver.Objects.MotObject;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireVehicleObject;
|
||||
import h_mal.appttude.com.driver.Objects.VehicleProfileObject;
|
||||
|
||||
public class VehicleProfile {
|
||||
|
||||
public InsuranceObject insurance_details;
|
||||
public LogbookObject log_book;
|
||||
public MotObject mot_details;
|
||||
public VehicleProfileObject vehicle_details;
|
||||
public PrivateHireVehicleObject private_hire_vehicle;
|
||||
|
||||
public VehicleProfile() {
|
||||
}
|
||||
|
||||
// public VehicleProfile(InsuranceObject insurance_details, LogbookObject log_book, MotObject mot_details, VehicleProfileObject vehicle_details) {
|
||||
// this.insurance_details = insurance_details;
|
||||
// this.log_book = log_book;
|
||||
// this.mot_details = mot_details;
|
||||
// this.vehicle_details = vehicle_details;
|
||||
// }
|
||||
|
||||
public VehicleProfile(InsuranceObject insurance_details, LogbookObject log_book, MotObject mot_details, VehicleProfileObject vehicle_details, PrivateHireVehicleObject private_hire_vehicle) {
|
||||
this.insurance_details = insurance_details;
|
||||
this.log_book = log_book;
|
||||
this.mot_details = mot_details;
|
||||
this.vehicle_details = vehicle_details;
|
||||
this.private_hire_vehicle = private_hire_vehicle;
|
||||
}
|
||||
|
||||
|
||||
public PrivateHireVehicleObject getPrivateHireVehicleObject() {
|
||||
return private_hire_vehicle;
|
||||
}
|
||||
|
||||
public InsuranceObject getInsurance_details() {
|
||||
return insurance_details;
|
||||
}
|
||||
|
||||
public LogbookObject getLog_book() {
|
||||
return log_book;
|
||||
}
|
||||
|
||||
public MotObject getMot_details() {
|
||||
return mot_details;
|
||||
}
|
||||
|
||||
public VehicleProfileObject getVehicle_details() {
|
||||
return vehicle_details;
|
||||
}
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ProgressBar;
|
||||
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 RegisterActivity extends AppCompatActivity {
|
||||
|
||||
private FirebaseAuth auth;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_register);
|
||||
|
||||
auth = FirebaseAuth.getInstance();
|
||||
|
||||
final EditText email = findViewById(R.id.email_register);
|
||||
final EditText passwordTop = findViewById(R.id.password_top);
|
||||
final EditText passwordBottom = findViewById(R.id.password_bottom);
|
||||
final ProgressBar progressBar = findViewById(R.id.pb);
|
||||
Button submit = findViewById(R.id.email_sign_up);
|
||||
|
||||
submit.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
String emailText = email.getText().toString().trim();
|
||||
String passwordText = passwordTop.getText().toString().trim();
|
||||
String passwordTextBottom = passwordBottom.getText().toString().trim();
|
||||
|
||||
if (TextUtils.isEmpty(emailText)) {
|
||||
Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
|
||||
email.setError(getString(R.string.error_field_required));
|
||||
return;
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(passwordText)) {
|
||||
Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
|
||||
passwordTop.setError(getString(R.string.error_field_required));
|
||||
return;
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(passwordTextBottom)) {
|
||||
Toast.makeText(getApplicationContext(), "Enter password again!", Toast.LENGTH_SHORT).show();
|
||||
passwordBottom.setError(getString(R.string.error_field_required));
|
||||
return;
|
||||
}
|
||||
|
||||
if (passwordText.length() < 6) {
|
||||
passwordTop.setError(getString(R.string.error_invalid_password));
|
||||
return;
|
||||
}
|
||||
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
//create user
|
||||
auth.createUserWithEmailAndPassword(emailText, passwordText)
|
||||
.addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<AuthResult> task) {
|
||||
Toast.makeText(RegisterActivity.this, "createUserWithEmail:onComplete:" + task.isSuccessful(), Toast.LENGTH_SHORT).show();
|
||||
progressBar.setVisibility(View.GONE);
|
||||
if (!task.isSuccessful()) {
|
||||
Toast.makeText(RegisterActivity.this, "Authentication failed." + task.getException(),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,305 @@
|
||||
package h_mal.appttude.com.driver.SuperUser;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import h_mal.appttude.com.driver.Archive.ArchiveFragment;
|
||||
import h_mal.appttude.com.driver.Driver.DriverLicenseFragment;
|
||||
import h_mal.appttude.com.driver.Driver.InsuranceFragment;
|
||||
import h_mal.appttude.com.driver.Driver.MotFragment;
|
||||
import h_mal.appttude.com.driver.Driver.PrivateHireLicenseFragment;
|
||||
import h_mal.appttude.com.driver.Driver.PrivateHireVehicleFragment;
|
||||
import h_mal.appttude.com.driver.Driver.VehicleSetupFragment;
|
||||
import h_mal.appttude.com.driver.Driver.DriverProfileFragment;
|
||||
import h_mal.appttude.com.driver.Driver.logbookFragment;
|
||||
import h_mal.appttude.com.driver.Global.SetApprovalDialog;
|
||||
import h_mal.appttude.com.driver.Objects.ApprovalsObject;
|
||||
import h_mal.appttude.com.driver.Objects.ArchiveObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.NO_DATE_PRESENT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_DETAILS_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
|
||||
public class ApprovalListAdapter extends ArrayAdapter<MappedObject> {
|
||||
|
||||
private String TAG = "ApprovalListAdapter";
|
||||
|
||||
String [] names = {"Driver Profile","Driver License","Private Hire","Vehicle Profile","Insurance","MOT","Logbook","P/H Vehicle"};
|
||||
|
||||
MappedObject mappedObject;
|
||||
Activity activity;
|
||||
int approvalCode;
|
||||
|
||||
public ApprovalListAdapter(@NonNull Activity activity, @NonNull MappedObject[] objects) {
|
||||
super(activity, 0, objects);
|
||||
this.mappedObject = objects[0];
|
||||
this.activity = activity;
|
||||
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||
View listItemView = convertView;
|
||||
if (listItemView == null) {
|
||||
listItemView = LayoutInflater.from(activity).inflate(
|
||||
R.layout.approval_list_grid_item, parent, false);
|
||||
}
|
||||
|
||||
approvalCode = getApprovalStatusCode(position);
|
||||
|
||||
TextView textView = listItemView.findViewById(R.id.approval_text);
|
||||
textView.setText(names[position]);
|
||||
|
||||
final ImageView imageView = listItemView.findViewById(R.id.approval_iv);
|
||||
imageView.setImageResource(approvalsClass.setImageResource(approvalCode));
|
||||
|
||||
imageView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
new SetApprovalDialog(approvalCode,activity,mappedObject.getUserId(),position,imageView);
|
||||
}
|
||||
});
|
||||
|
||||
ImageView archiveImage = listItemView.findViewById(R.id.archive_icon);
|
||||
if (mappedObject.getWholeDriverObject().archive != null){
|
||||
Log.i(TAG, "getView: archive = " + getArchive(position,mappedObject.getWholeDriverObject().getArchive()));
|
||||
archiveImage.setVisibility(getArchive(position,mappedObject.getWholeDriverObject().getArchive()));
|
||||
archiveImage.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
String s = null;
|
||||
switch (position){
|
||||
case 1:
|
||||
s = DRIVERS_LICENSE_FIREBASE;
|
||||
break;
|
||||
case 2:
|
||||
s = PRIVATE_HIRE_FIREBASE;
|
||||
break;
|
||||
case 3:
|
||||
s = VEHICLE_DETAILS_FIREBASE;
|
||||
break;
|
||||
case 4:
|
||||
s = INSURANCE_FIREBASE;
|
||||
break;
|
||||
case 5:
|
||||
s = MOT_FIREBASE;
|
||||
break;
|
||||
case 6:
|
||||
s = LOG_BOOK_FIREBASE;
|
||||
break;
|
||||
case 7:
|
||||
s = PRIVATE_HIRE_VEHICLE_LICENSE;
|
||||
break;
|
||||
|
||||
}
|
||||
executeFragment(new ArchiveFragment(),mappedObject.getUserId(),s);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
listItemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
getFragment(position);
|
||||
}
|
||||
});
|
||||
|
||||
listItemView.setMinimumHeight(parent.getHeight()/4);
|
||||
listItemView.setPadding((int)convertDpToPixel(9,getContext()),
|
||||
(int)convertDpToPixel(9,getContext()),
|
||||
(int)convertDpToPixel(9,getContext()),
|
||||
(int)convertDpToPixel(9,getContext()));
|
||||
|
||||
return listItemView;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return 8;
|
||||
}
|
||||
|
||||
private int getArchive(int i, ArchiveObject archiveObject){
|
||||
Object o = null;
|
||||
int visible;
|
||||
|
||||
switch (i){
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
o = archiveObject.driver_license;
|
||||
break;
|
||||
case 2:
|
||||
o = archiveObject.private_hire;
|
||||
break;
|
||||
case 3:
|
||||
o = archiveObject.vehicle_details;
|
||||
break;
|
||||
case 4:
|
||||
o = archiveObject.insurance_details;
|
||||
break;
|
||||
case 5:
|
||||
o = archiveObject.mot_details;
|
||||
break;
|
||||
case 6:
|
||||
o = archiveObject.log_book;
|
||||
break;
|
||||
case 7:
|
||||
o = archiveObject.private_hire_vehicle;
|
||||
|
||||
}
|
||||
|
||||
if (o != null){
|
||||
visible = View.VISIBLE;
|
||||
}else{
|
||||
visible = View.GONE;
|
||||
}
|
||||
|
||||
return visible;
|
||||
}
|
||||
|
||||
private void getFragment(int i){
|
||||
Fragment f = null;
|
||||
WholeDriverObject wholeDriverObject = mappedObject.getWholeDriverObject();
|
||||
Object o = null;
|
||||
switch (i) {
|
||||
case 0:
|
||||
f = new DriverProfileFragment();
|
||||
if (wholeDriverObject.driver_profile != null && wholeDriverObject.getDriver_profile().driver_profile != null) {
|
||||
o = wholeDriverObject.getDriver_profile().getDriver_profile();
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
f = new DriverLicenseFragment();
|
||||
if (wholeDriverObject.driver_profile != null && wholeDriverObject.getDriver_profile().driver_license != null) {
|
||||
o = wholeDriverObject.getDriver_profile().getDriver_license();
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
f = new PrivateHireLicenseFragment();
|
||||
if (wholeDriverObject.driver_profile != null && wholeDriverObject.getDriver_profile().private_hire != null) {
|
||||
o = wholeDriverObject.getDriver_profile().getPrivate_hire();
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
f = new VehicleSetupFragment();
|
||||
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().vehicle_details != null){
|
||||
o = wholeDriverObject.getVehicle_profile().getVehicle_details();
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
f = new InsuranceFragment();
|
||||
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().insurance_details != null){
|
||||
o = wholeDriverObject.getVehicle_profile().getInsurance_details();
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
f = new MotFragment();
|
||||
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().mot_details != null){
|
||||
o = wholeDriverObject.getVehicle_profile().getMot_details();
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
f = new logbookFragment();
|
||||
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().log_book != null){
|
||||
o = wholeDriverObject.getVehicle_profile().getLog_book();
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
f = new PrivateHireVehicleFragment();
|
||||
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().private_hire_vehicle != null){
|
||||
o = wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (o == null){
|
||||
executeFragment(f,mappedObject.getUserId());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),o
|
||||
,mappedObject.getUserId(),f);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private int getApprovalStatusCode(int i){
|
||||
int statusCode = NO_DATE_PRESENT;
|
||||
|
||||
if (mappedObject.getWholeDriverObject().approvalsObject != null){
|
||||
ApprovalsObject approvalsObject = mappedObject.getWholeDriverObject().getApprovalsObject();
|
||||
|
||||
switch (i) {
|
||||
case 0:
|
||||
if (approvalsObject.driver_details_approval != 0) {
|
||||
statusCode = approvalsObject.getDriver_details_approval();
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (approvalsObject.driver_license_approval != 0) {
|
||||
statusCode = approvalsObject.getDriver_license_approval();
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (approvalsObject.private_hire_approval != 0) {
|
||||
statusCode = approvalsObject.getPrivate_hire_approval();
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (approvalsObject.vehicle_details_approval != 0) {
|
||||
statusCode = approvalsObject.getVehicle_details_approval();
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (approvalsObject.insurance_details_approval != 0) {
|
||||
statusCode = approvalsObject.getInsurance_details_approval();
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (approvalsObject.mot_details_approval != 0) {
|
||||
statusCode = approvalsObject.getMot_details_approval();
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (approvalsObject.log_book_approval != 0) {
|
||||
statusCode = approvalsObject.getLog_book_approval();
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (approvalsObject.private_hire_vehicle_approval != 0) {
|
||||
statusCode = approvalsObject.getPh_car_approval();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return statusCode;
|
||||
}
|
||||
|
||||
public static float convertDpToPixel(float dp, Context context){
|
||||
return dp * ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
package h_mal.appttude.com.driver.SuperUser;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.squareup.picasso.Target;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.FileInputStream;
|
||||
import java.util.List;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.UserObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_NUMBER;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.imageViewClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
|
||||
public class ListViewSuperAdapter extends ArrayAdapter<MappedObject> {
|
||||
|
||||
public ListViewSuperAdapter(@NonNull Context context, @NonNull List<MappedObject> objects) {
|
||||
super(context, 0, objects);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View getView(int i, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||
View listItemView = convertView;
|
||||
if (listItemView == null) {
|
||||
listItemView = LayoutInflater.from(getContext()).inflate(
|
||||
R.layout.list_item_layout, parent, false);
|
||||
|
||||
|
||||
}
|
||||
|
||||
Log.i("getviewposition", "getView: pos = " + i);
|
||||
|
||||
final ImageView profilePicImage = listItemView.findViewById(R.id.driverPic);
|
||||
final ProgressBar progressBar = listItemView.findViewById(R.id.pb_su_list);
|
||||
TextView userNameTextView = listItemView.findViewById(R.id.username_text);
|
||||
TextView userEmailTextView = listItemView.findViewById(R.id.emailaddress_text);
|
||||
ImageView profileApprovalImage = listItemView.findViewById(R.id.approval_iv);
|
||||
final TextView driverNo = listItemView.findViewById(R.id.driver_no);
|
||||
final MappedObject mappedObject = getItem(i);
|
||||
|
||||
final UserObject object = mappedObject.getWholeDriverObject().getUser_details();
|
||||
|
||||
if (object.profilePicString != null){
|
||||
Picasso.get()
|
||||
.load(object.getProfilePicString())
|
||||
.resize(128,128)
|
||||
.placeholder(R.drawable.choice_img_round)
|
||||
.into(new Target() {
|
||||
@Override
|
||||
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
profilePicImage.setImageBitmap(bitmap);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareLoad(Drawable placeHolderDrawable) {
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
}
|
||||
});
|
||||
|
||||
}else {
|
||||
profilePicImage.setImageResource(R.drawable.choice_img_round);
|
||||
}
|
||||
|
||||
userNameTextView.setText(object.getProfileName());
|
||||
userEmailTextView.setText(object.getProfileEmail());
|
||||
if (mappedObject.getWholeDriverObject().driver_number == null){
|
||||
driverNo.setText("0");
|
||||
}else {
|
||||
String s = String.valueOf(mappedObject.getWholeDriverObject().getDriver_number());
|
||||
driverNo.setText(s);
|
||||
}
|
||||
|
||||
|
||||
driverNo.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
|
||||
final EditText input = new EditText(getContext());
|
||||
LinearLayout layout = new LinearLayout(getContext());
|
||||
layout.setOrientation(LinearLayout.VERTICAL);
|
||||
layout.setPadding(28,0,56,0);
|
||||
input.setText(driverNo.getText().toString());
|
||||
input.setSelectAllOnFocus(true);
|
||||
layout.addView(input);
|
||||
builder.setTitle("Change Driver Number")
|
||||
.setView(layout)
|
||||
.setPositiveButton("Submit", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(final DialogInterface dialog, int which) {
|
||||
DatabaseReference reference = mDatabase.child(USER_FIREBASE).child(mappedObject.getUserId())
|
||||
.child(DRIVER_NUMBER);
|
||||
Log.i("Dialog Driver no", "onClick: " + reference.toString());
|
||||
|
||||
reference.setValue(input.getText().toString()).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Toast.makeText(getContext(), "Driver Number Changed", Toast.LENGTH_SHORT).show();
|
||||
dialog.dismiss();
|
||||
notifyDataSetChanged();
|
||||
Log.i("Dialog Driver no", "onComplete: " + task.getResult());
|
||||
}else {
|
||||
Log.e("Dialog Driver no", "onComplete: ", task.getException());
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
).create()
|
||||
.show();
|
||||
}
|
||||
});
|
||||
|
||||
profileApprovalImage.setImageResource(
|
||||
approvalsClass.getOverApprovalStatusCode(mappedObject.getWholeDriverObject()));
|
||||
|
||||
|
||||
listItemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("mapped",mappedObject);
|
||||
|
||||
executeFragment(new UserMainFragment(),bundle);
|
||||
}
|
||||
});
|
||||
|
||||
return listItemView;
|
||||
}
|
||||
|
||||
private boolean hasImage(@NonNull ImageView view) {
|
||||
Drawable drawable = view.getDrawable();
|
||||
boolean hasImage = (drawable != null);
|
||||
|
||||
if (hasImage && (drawable instanceof BitmapDrawable)) {
|
||||
hasImage = ((BitmapDrawable)drawable).getBitmap() != null;
|
||||
}
|
||||
|
||||
return hasImage;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package h_mal.appttude.com.driver.SuperUser;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.GridView;
|
||||
import android.widget.ListView;
|
||||
|
||||
import h_mal.appttude.com.driver.Archive.ArchiveFragment;
|
||||
import h_mal.appttude.com.driver.Global.ExecuteFragment;
|
||||
import h_mal.appttude.com.driver.MainActivity;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
public class UserMainFragment extends Fragment {
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_user_main, container, false);
|
||||
|
||||
Log.i("UserMain", "onCreateView: height = " + view.getHeight());
|
||||
|
||||
MappedObject mappedObject = getArguments().getParcelable("mapped");
|
||||
|
||||
getActivity().setTitle(mappedObject.getWholeDriverObject().getUser_details().getProfileName());
|
||||
|
||||
// ListView listView = view.findViewById(R.id.approvals_list);
|
||||
GridView listView = view.findViewById(R.id.approvals_list);
|
||||
listView.setAdapter(new ApprovalListAdapter(getActivity(), new MappedObject[]{mappedObject}));
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
package h_mal.appttude.com.driver.SuperUser;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
|
||||
public class homeSuperUserFragment extends Fragment {
|
||||
|
||||
DatabaseReference users;
|
||||
ListViewSuperAdapter listViewSuperAdapter;
|
||||
|
||||
List<MappedObject> mappedObjectList;
|
||||
private SharedPreferences sharedPreferences;
|
||||
private int sortOrder;
|
||||
private boolean sortDesc;
|
||||
private static final String SORT = "SORT";
|
||||
private static final String REVERSED = "REVERSED";
|
||||
private static final String TAG = "homeSuperUserFragment";
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
users = mDatabase.child(USER_FIREBASE);
|
||||
mappedObjectList = new ArrayList<>();
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
users.addValueEventListener(valueEventListener);
|
||||
|
||||
sharedPreferences = getActivity().getSharedPreferences("PREFS", 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_home_super_user, container, false);
|
||||
|
||||
final ListView list = view.findViewById(R.id.list_view_super);
|
||||
|
||||
listViewSuperAdapter = new ListViewSuperAdapter(getContext(),mappedObjectList);
|
||||
list.setAdapter(listViewSuperAdapter);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot snapshot) {
|
||||
mappedObjectList.clear();
|
||||
Log.i("Count " ,""+snapshot.getChildrenCount());
|
||||
for (DataSnapshot postSnapshot: snapshot.getChildren()) {
|
||||
if (postSnapshot.child("role").getValue().toString().equals("driver")){
|
||||
printObjectAsJson("object",postSnapshot.toString());
|
||||
mappedObjectList.add(new MappedObject(postSnapshot.getKey(),postSnapshot.getValue(WholeDriverObject.class)));
|
||||
}
|
||||
}
|
||||
sortDate(sortOrder,sortDesc);
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
inflater.inflate(R.menu.menu_calls_fragment, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == R.id.archive){
|
||||
final String[] grpname = {"Driver Name","Driver Number","Approval"};
|
||||
sortOrder = sharedPreferences.getInt(SORT,0);
|
||||
int checkedItem = sortOrder;
|
||||
final int[] compareInt = {0};
|
||||
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
|
||||
builder.setTitle("Sort by:")
|
||||
.setSingleChoiceItems(grpname, checkedItem, new DialogInterface
|
||||
.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int item) {
|
||||
switch (item) {
|
||||
case 0:
|
||||
compareInt[0] = 0;
|
||||
return;
|
||||
case 1:
|
||||
compareInt[0] = 1;
|
||||
return;
|
||||
case 2:
|
||||
compareInt[0] = 2;
|
||||
}
|
||||
}
|
||||
}).setPositiveButton("Ascending", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
sortDate(compareInt[0],false);
|
||||
dialog.dismiss();
|
||||
}
|
||||
}).setNegativeButton("Descending", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
sortDate(compareInt[0],true);
|
||||
dialog.dismiss();
|
||||
}
|
||||
})
|
||||
.create().show();
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void sortDate(final int compareInt, boolean reversed){
|
||||
Log.i(TAG, "sortDate: " + compareInt + " - " + reversed);
|
||||
Comparator<MappedObject> comparator = new Comparator<MappedObject>() {
|
||||
@Override
|
||||
public int compare(MappedObject o1, MappedObject o2) {
|
||||
switch (compareInt){
|
||||
case 0:
|
||||
return o1.getWholeDriverObject().getUser_details().getProfileName().compareTo(
|
||||
o2.getWholeDriverObject().getUser_details().getProfileName());
|
||||
case 1:
|
||||
return o1.getWholeDriverObject().getDriver_number()
|
||||
.compareTo(o2.getWholeDriverObject().getDriver_number());
|
||||
case 2:
|
||||
return approvalsClass.getOverApprovalStatusCode(o1.wholeDriverObject) -
|
||||
approvalsClass.getOverApprovalStatusCode(o2.wholeDriverObject);
|
||||
default:
|
||||
return approvalsClass.getOverApprovalStatusCode(o1.wholeDriverObject) -
|
||||
approvalsClass.getOverApprovalStatusCode(o2.wholeDriverObject);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
sharedPreferences.edit().putInt(SORT,compareInt).apply();
|
||||
sharedPreferences.edit().putBoolean(REVERSED,reversed).apply();
|
||||
|
||||
if (reversed){
|
||||
Collections.sort(mappedObjectList,comparator.reversed());
|
||||
}else {
|
||||
Collections.sort(mappedObjectList,comparator);
|
||||
}
|
||||
|
||||
listViewSuperAdapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
@@ -1,31 +1,19 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
package h_mal.appttude.com.driver.User;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.app.LoaderManager.LoaderCallbacks;
|
||||
|
||||
import android.content.CursorLoader;
|
||||
import android.content.Loader;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.ContactsContract;
|
||||
import android.text.TextUtils;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.AutoCompleteTextView;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
@@ -37,22 +25,17 @@ import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.auth.AuthResult;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static android.Manifest.permission.READ_CONTACTS;
|
||||
import h_mal.appttude.com.driver.MainActivity;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
/**
|
||||
* A login screen that offers login via email/password.
|
||||
*/
|
||||
public class LoginActivity extends AppCompatActivity{
|
||||
|
||||
private String TAG = "LoginActivity";
|
||||
private FirebaseAuth auth;
|
||||
|
||||
private static final String[] DUMMY_CREDENTIALS = new String[]{
|
||||
"driver@example.com:hello", "bar@example.com:world"
|
||||
};
|
||||
|
||||
// UI references.
|
||||
private EditText mEmailView;
|
||||
private EditText mPasswordView;
|
||||
@@ -65,6 +48,7 @@ public class LoginActivity extends AppCompatActivity{
|
||||
setContentView(R.layout.activity_login);
|
||||
|
||||
auth = FirebaseAuth.getInstance();
|
||||
|
||||
// Set up the login form.
|
||||
mEmailView = findViewById(R.id.email);
|
||||
|
||||
@@ -92,7 +76,7 @@ public class LoginActivity extends AppCompatActivity{
|
||||
mProgressView = findViewById(R.id.login_progress);
|
||||
mLoginView = findViewById(R.id.email_login_form);
|
||||
|
||||
TextView register = findViewById(R.id.register);
|
||||
TextView register = findViewById(R.id.register_button);
|
||||
register.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -100,10 +84,16 @@ public class LoginActivity extends AppCompatActivity{
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
TextView forgotPw = findViewById(R.id.forgot);
|
||||
forgotPw.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(getApplication(),forgotPasswordActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Attempts to sign in or register the account specified by the login form.
|
||||
@@ -159,25 +149,19 @@ public class LoginActivity extends AppCompatActivity{
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<AuthResult> task) {
|
||||
showProgress(false);
|
||||
|
||||
if (task.isSuccessful()){
|
||||
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
|
||||
}
|
||||
})
|
||||
.addOnFailureListener(new OnFailureListener() {
|
||||
@Override
|
||||
public void onFailure(@NonNull Exception e) {
|
||||
}else {
|
||||
Toast.makeText(LoginActivity.this, getString(R.string.login_failed), Toast.LENGTH_SHORT).show();
|
||||
showProgress(false);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isEmailValid(String email) {
|
||||
//TODO: Replace this with your own logic
|
||||
@@ -197,7 +181,7 @@ public class LoginActivity extends AppCompatActivity{
|
||||
// On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
|
||||
// for very easy animations. If available, use these APIs to fade-in
|
||||
// the progress spinner.
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
|
||||
|
||||
int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
|
||||
|
||||
mLoginView.setVisibility(show ? View.GONE : View.VISIBLE);
|
||||
@@ -217,12 +201,6 @@ public class LoginActivity extends AppCompatActivity{
|
||||
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// The ViewPropertyAnimator APIs are not available, so simply show
|
||||
// and hide the relevant UI components.
|
||||
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
mLoginView.setVisibility(show ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
package h_mal.appttude.com.driver.User;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
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.ProgressBar;
|
||||
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;
|
||||
import com.google.firebase.auth.UserProfileChangeRequest;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.FirebaseDatabase;
|
||||
|
||||
import h_mal.appttude.com.driver.MainActivity;
|
||||
import h_mal.appttude.com.driver.Objects.UserObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
|
||||
public class RegisterActivity extends AppCompatActivity {
|
||||
|
||||
private FirebaseAuth auth;
|
||||
private EditText name;
|
||||
private EditText email;
|
||||
private EditText passwordTop;
|
||||
private EditText passwordBottom;
|
||||
private ProgressBar progressBar;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_register);
|
||||
|
||||
auth = FirebaseAuth.getInstance();
|
||||
|
||||
name = findViewById(R.id.name_register);
|
||||
email = findViewById(R.id.email_register);
|
||||
passwordTop = findViewById(R.id.password_top);
|
||||
passwordBottom = findViewById(R.id.password_bottom);
|
||||
progressBar = findViewById(R.id.pb);
|
||||
Button submit = findViewById(R.id.email_sign_up);
|
||||
|
||||
submit.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
final String nameString = name.getText().toString().trim();
|
||||
String emailText = email.getText().toString().trim();
|
||||
String passwordText = passwordTop.getText().toString().trim();
|
||||
String passwordTextBottom = passwordBottom.getText().toString().trim();
|
||||
|
||||
boolean cancel = false;
|
||||
View focusView = null;
|
||||
|
||||
if (TextUtils.isEmpty(nameString)) {
|
||||
name.setError(getString(R.string.error_field_required));
|
||||
focusView = name;
|
||||
cancel = true;
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(emailText)) {
|
||||
email.setError(getString(R.string.error_field_required));
|
||||
focusView = email;
|
||||
cancel = true;
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(passwordText)) {
|
||||
passwordTop.setError(getString(R.string.error_field_required));
|
||||
focusView = passwordTop;
|
||||
cancel = true;
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(passwordTextBottom)) {
|
||||
passwordBottom.setError(getString(R.string.error_field_required));
|
||||
focusView = passwordBottom;
|
||||
cancel = true;
|
||||
}
|
||||
|
||||
if (!TextUtils.isEmpty(passwordText) && !isPasswordValid(passwordText)) {
|
||||
passwordTop.setError(getString(R.string.error_invalid_password));
|
||||
focusView = passwordTop;
|
||||
cancel = true;
|
||||
}
|
||||
|
||||
if (!passwordText.equals(passwordTextBottom)){
|
||||
passwordBottom.setError(getString(R.string.no_match_password));
|
||||
focusView = passwordBottom;
|
||||
cancel = true;
|
||||
}
|
||||
|
||||
if (cancel) {
|
||||
// There was an error; don't attempt login and focus the first
|
||||
// form field with an error.
|
||||
focusView.requestFocus();
|
||||
} else {
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
//create user
|
||||
auth.createUserWithEmailAndPassword(emailText, passwordText)
|
||||
.addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<AuthResult> task) {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
if (!task.isSuccessful()) {
|
||||
Toast.makeText(RegisterActivity.this, "Authentication failed." + task.getException(),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
|
||||
UserProfileChangeRequest.Builder profileUpdatesBuilder = new UserProfileChangeRequest.Builder();
|
||||
|
||||
if (!TextUtils.isEmpty(nameString)){
|
||||
profileUpdatesBuilder.setDisplayName(nameString);
|
||||
}
|
||||
|
||||
UserProfileChangeRequest profileUpdates = profileUpdatesBuilder.build();
|
||||
|
||||
auth.getCurrentUser().updateProfile(profileUpdates).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Log.i("RegisterActivity", "onComplete: " + task.isSuccessful());
|
||||
|
||||
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
|
||||
|
||||
mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child("role")
|
||||
.setValue("driver");
|
||||
mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child("user_details")
|
||||
.setValue(new UserObject(auth.getCurrentUser().getDisplayName(),auth.getCurrentUser().getEmail(),null));
|
||||
|
||||
Intent intent = new Intent(RegisterActivity.this,MainActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private boolean isPasswordValid(String password) {
|
||||
//TODO: Replace this with your own logic
|
||||
return password.length() > 6;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package h_mal.appttude.com.driver.User;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.NavUtils;
|
||||
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.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
public class forgotPasswordActivity extends AppCompatActivity {
|
||||
|
||||
String TAG = "forgotPasswordActivity";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_forgot_password);
|
||||
|
||||
final EditText editText = findViewById(R.id.reset_pw);
|
||||
|
||||
final Button resetPw = findViewById(R.id.reset_pw_sign_up);
|
||||
resetPw.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
resetPassword(editText.getText().toString().trim());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void resetPassword(String emailAddress){
|
||||
FirebaseAuth auth = FirebaseAuth.getInstance();
|
||||
|
||||
auth.sendPasswordResetEmail(emailAddress)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
Log.d(TAG, "Email sent.");
|
||||
|
||||
NavUtils.navigateUpFromSameTask(forgotPasswordActivity.this);
|
||||
finish();
|
||||
}else {
|
||||
Toast.makeText(forgotPasswordActivity.this, "Could not reset Password", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,251 @@
|
||||
package h_mal.appttude.com.driver.User;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.InputType;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
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.Task;
|
||||
import com.google.firebase.auth.AuthCredential;
|
||||
import com.google.firebase.auth.EmailAuthProvider;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.auth.FirebaseUser;
|
||||
import com.google.firebase.auth.UserProfileChangeRequest;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.storage.FirebaseStorage;
|
||||
import com.google.firebase.storage.StorageReference;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Global.ViewController;
|
||||
import h_mal.appttude.com.driver.Objects.UserObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_DETAILS_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
|
||||
public class profileFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
private TextView email;
|
||||
private TextView name;
|
||||
private TextView changePw;
|
||||
|
||||
private FirebaseUser user;
|
||||
private DatabaseReference databaseReference;
|
||||
|
||||
private static final String EMAIL_CONSTANT = "Email Address";
|
||||
private static final String PW_CONSTANT = "Password";
|
||||
|
||||
ViewController viewController;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
viewController = new ViewController(getActivity());
|
||||
|
||||
user = auth.getCurrentUser();
|
||||
databaseReference = mDatabase.child(USER_FIREBASE).child(user.getUid())
|
||||
.child(DRIVER_FIREBASE).child(DRIVER_DETAILS_FIREBASE)
|
||||
.child("driverPic");
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_profile, container, false);
|
||||
|
||||
email = view.findViewById(R.id.change_email);
|
||||
name = view.findViewById(R.id.change_profile_name);
|
||||
changePw = view.findViewById(R.id.change_pw);
|
||||
|
||||
Button button = view.findViewById(R.id.submit_profile);
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
fragmentManager.popBackStack();
|
||||
}
|
||||
});
|
||||
|
||||
name.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
|
||||
dialog.setTitle("Update Username");
|
||||
|
||||
final EditText titleBox = new EditText(getContext());
|
||||
titleBox.setText(user.getDisplayName());
|
||||
dialog.setView(titleBox);
|
||||
dialog.setPositiveButton("Update", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
updateProfile(titleBox.getText().toString().trim());
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
email.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
showDialog(EMAIL_CONSTANT);
|
||||
}
|
||||
});
|
||||
|
||||
changePw.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
showDialog(PW_CONSTANT);
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private void updateProfile(String profileName){
|
||||
UserProfileChangeRequest.Builder profileUpdatesBuilder = new UserProfileChangeRequest.Builder();
|
||||
|
||||
if (!TextUtils.isEmpty(profileName)){
|
||||
profileUpdatesBuilder.setDisplayName(profileName);
|
||||
}
|
||||
|
||||
UserProfileChangeRequest profileUpdates = profileUpdatesBuilder.build();
|
||||
|
||||
user.updateProfile(profileUpdates)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
Log.d(TAG, "User profile updated.");
|
||||
viewController.reloadDrawer();
|
||||
}
|
||||
}
|
||||
})
|
||||
.addOnFailureListener(new OnFailureListener() {
|
||||
@Override
|
||||
public void onFailure(@NonNull Exception e) {
|
||||
Toast.makeText(getContext(), "Update Failed", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void changeCredentials(String email, String password, final String changeText, final String selector){
|
||||
// Get auth credentials from the user for re-authentication
|
||||
AuthCredential credential = EmailAuthProvider
|
||||
.getCredential(email, password); // Current Login Credentials \\
|
||||
// Prompt the user to re-provide their sign-in credentials
|
||||
user.reauthenticate(credential)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
Log.d(TAG, "User re-authenticated.");
|
||||
|
||||
user = FirebaseAuth.getInstance().getCurrentUser();
|
||||
if (selector.equals(EMAIL_CONSTANT)){
|
||||
user.updateEmail(changeText)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
Log.d(TAG, "User email address updated.");
|
||||
Toast.makeText(getContext(), "Update Successful", Toast.LENGTH_SHORT).show();
|
||||
viewController.reloadDrawer();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (selector.equals(PW_CONSTANT)){
|
||||
user.updatePassword(changeText)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
Log.d(TAG, "User email address updated.");
|
||||
Toast.makeText(getContext(), "Update Successful", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showDialog(final String update){
|
||||
//Make new Dialog
|
||||
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
|
||||
dialog.setTitle("Update " + update);
|
||||
|
||||
LinearLayout layout = new LinearLayout(getContext());
|
||||
layout.setOrientation(LinearLayout.VERTICAL);
|
||||
layout.setPadding(28,0,56,0);
|
||||
|
||||
final EditText box1 = new EditText(getContext());
|
||||
box1.setHint("Current Email Address");
|
||||
box1.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
||||
layout.addView(box1); // Notice this is an add method
|
||||
|
||||
final EditText box2 = new EditText(getContext());
|
||||
box2.setHint("Current Password");
|
||||
box2.setInputType(InputType.TYPE_CLASS_TEXT |
|
||||
InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
layout.addView(box2); // Another add method
|
||||
|
||||
final EditText box3 = new EditText(getContext());
|
||||
if (update.equals(PW_CONSTANT)){
|
||||
box3.setInputType(InputType.TYPE_CLASS_TEXT |
|
||||
InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
}else {
|
||||
box3.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
||||
}
|
||||
box3.setHint("New " + update);
|
||||
layout.addView(box3); // Another add method
|
||||
|
||||
dialog.setView(layout);
|
||||
dialog.setPositiveButton("Update", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
String email = box1.getText().toString().trim();
|
||||
String password = box2.getText().toString().trim();
|
||||
String textThree = box3.getText().toString().trim();
|
||||
|
||||
changeCredentials(email,password,textThree,update);
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
}
|
||||
@@ -1,194 +0,0 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
|
||||
import static h_mal.appttude.com.driver.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.FirebaseClass.DRIVER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.FirebaseClass.PRIVATE_HIRE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.executeFragment;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
|
||||
|
||||
public class VehicleSetupFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
EditText reg;
|
||||
EditText make;
|
||||
EditText model;
|
||||
EditText color;
|
||||
EditText keeperName;
|
||||
EditText address;
|
||||
EditText postcode;
|
||||
EditText startDate;
|
||||
CheckBox seized;
|
||||
TextView mot;
|
||||
TextView retrievedmot;
|
||||
TextView insurance;
|
||||
TextView retrievedIns;
|
||||
TextView logbook;
|
||||
TextView logbook_retrieved;
|
||||
Button Submit;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_vehicle_setup, container, false);
|
||||
|
||||
reg = view.findViewById(R.id.reg);
|
||||
make = view.findViewById(R.id.make);
|
||||
model = view.findViewById(R.id.model);
|
||||
color = view.findViewById(R.id.colour);
|
||||
keeperName = view.findViewById(R.id.keeper_name);
|
||||
address = view.findViewById(R.id.address);
|
||||
postcode = view.findViewById(R.id.postcode);
|
||||
startDate = view.findViewById(R.id.start_date);
|
||||
seized = view.findViewById(R.id.seized);
|
||||
mot = view.findViewById(R.id.mot);
|
||||
retrievedmot = view.findViewById(R.id.retrievedmot);
|
||||
insurance = view.findViewById(R.id.insurance);
|
||||
retrievedIns = view.findViewById(R.id.insurance_retrieved);
|
||||
logbook = view.findViewById(R.id.log_book);
|
||||
logbook_retrieved = view.findViewById(R.id.log_book_retrieved);
|
||||
Submit = view.findViewById(R.id.submit_vehicle);
|
||||
|
||||
initiateViewsFromFb();
|
||||
|
||||
mot.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new MotFragment());
|
||||
}
|
||||
});
|
||||
|
||||
insurance.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new InsuranceFragment());
|
||||
}
|
||||
});
|
||||
|
||||
logbook.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new logbookFragment());
|
||||
}
|
||||
});
|
||||
|
||||
Submit.setOnClickListener(submitOnClickListener);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private void initiateViewsFromFb() {
|
||||
//todo: retrieve object and set data in fields
|
||||
}
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
//TODO: get strings from views
|
||||
String regString = reg.getText().toString().trim();
|
||||
String makeString = make.getText().toString().trim();
|
||||
String modelString = model.getText().toString().trim();
|
||||
String colourString = color.getText().toString().trim();
|
||||
String keeperNameStrin = keeperName.getText().toString().trim();
|
||||
String addressString = address.getText().toString().trim();
|
||||
String postcodeString = postcode.getText().toString().trim();
|
||||
String driverForename = startDate.getText().toString().trim();
|
||||
|
||||
//TODO: validate the strings
|
||||
// if ( !TextUtils.isEmpty(driverForename) &&
|
||||
// !TextUtils.isEmpty(AddressString) &&
|
||||
// !TextUtils.isEmpty(postCodeString) &&
|
||||
// !TextUtils.isEmpty(dobString) &&
|
||||
// !TextUtils.isEmpty(niString) &&
|
||||
// !TextUtils.isEmpty(dateFirstString)){
|
||||
|
||||
// Log.i(TAG, "onClick: new Image uploaded");
|
||||
// new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
// @Override
|
||||
// public void processFinish(Uri output) {
|
||||
// Log.i(TAG, "processFinish: ");
|
||||
// if (output != null){
|
||||
// picUri = output;
|
||||
// writeDriverToDb();
|
||||
// fragmentManager.popBackStack();
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }).uploadImage(DRIVERS_LICENSE_FIREBASE,DRIVERS_LICENSE_FIREBASE + getDateStamp());
|
||||
// Log.i(TAG, "onClick: pushing with same image");
|
||||
// writeDriverToDb();
|
||||
|
||||
//todo: set error if invalid
|
||||
// }else {
|
||||
// if (TextUtils.isEmpty(driverForename)){
|
||||
// forenames.setError("Field required");
|
||||
// }
|
||||
// if (TextUtils.isEmpty(AddressString)){
|
||||
// address.setError("Field required");
|
||||
// }
|
||||
// if (TextUtils.isEmpty(postCodeString)){
|
||||
// postcode.setError("Field required");
|
||||
// }
|
||||
// if (TextUtils.isEmpty(dobString)){
|
||||
// dob.setError("Field required");
|
||||
// }
|
||||
// if (TextUtils.isEmpty(niString)){
|
||||
// ni.setError("Field required");
|
||||
// }
|
||||
// if (TextUtils.isEmpty(dateFirstString)){
|
||||
// dateFirst.setError("Field required");
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private void publishObject(){
|
||||
//TODO: publish vehicle object
|
||||
// PrivateHireObject privateHireObject = new PrivateHireObject(picUri.toString(),Ph_numberString,Ph_exprString);
|
||||
//
|
||||
// mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child(DRIVER_FIREBASE).child(PRIVATE_HIRE_FIREBASE)
|
||||
// .setValue(privateHireObject).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
// @Override
|
||||
// public void onComplete(@NonNull Task<Void> task) {
|
||||
//
|
||||
// Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
|
||||
public class logbookFragment extends Fragment {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_logbook, container, false);
|
||||
|
||||
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,257 +0,0 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.NavigationView;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.Continuation;
|
||||
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.FirebaseAuth;
|
||||
import com.google.firebase.auth.FirebaseUser;
|
||||
import com.google.firebase.auth.UserProfileChangeRequest;
|
||||
import com.google.firebase.storage.FirebaseStorage;
|
||||
import com.google.firebase.storage.OnProgressListener;
|
||||
import com.google.firebase.storage.StorageReference;
|
||||
import com.google.firebase.storage.UploadTask;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
import static android.app.Activity.RESULT_OK;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.setupDrawer;
|
||||
|
||||
public class profileFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
private final int PICK_IMAGE_REQUEST = 70;
|
||||
|
||||
private ImageView imageView;
|
||||
private EditText email;
|
||||
private EditText name;
|
||||
|
||||
FirebaseStorage storage;
|
||||
StorageReference storageReference;
|
||||
|
||||
private FirebaseUser user;
|
||||
|
||||
private Uri filePath;
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
user = auth.getCurrentUser();
|
||||
storage = FirebaseStorage.getInstance();
|
||||
storageReference = storage.getReference();
|
||||
|
||||
setRetainInstance(true);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_profile, container, false);
|
||||
|
||||
imageView = view.findViewById(R.id.profile_pic);
|
||||
email = view.findViewById(R.id.profile_email);
|
||||
name = view.findViewById(R.id.profile_name);
|
||||
|
||||
TextView upload = view.findViewById(R.id.uploadprofilepic);
|
||||
|
||||
upload.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
chooseImage();
|
||||
}
|
||||
});
|
||||
|
||||
retrieveProfile();
|
||||
|
||||
Button button = view.findViewById(R.id.submit_profile);
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
updateProfile();
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
public void retrieveProfile(){
|
||||
email.setText(user.getEmail());
|
||||
if (user.getDisplayName() != null){
|
||||
name.setText(user.getDisplayName());
|
||||
}
|
||||
|
||||
if(imageView != null){
|
||||
Picasso.get()
|
||||
.load(user.getPhotoUrl())
|
||||
.placeholder(R.mipmap.ic_launcher_round)
|
||||
.into(imageView);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void updateProfile(){
|
||||
UserProfileChangeRequest.Builder profileUpdatesBuilder = new UserProfileChangeRequest.Builder();
|
||||
|
||||
String profileName = name.getText().toString().trim();
|
||||
|
||||
|
||||
if (!TextUtils.isEmpty(profileName)){
|
||||
profileUpdatesBuilder.setDisplayName(profileName);
|
||||
}
|
||||
if (filePath != null ||
|
||||
imageView.getDrawable().getConstantState() != getResources().getDrawable( R.mipmap.ic_launcher_round).getConstantState()){
|
||||
profileUpdatesBuilder.setPhotoUri(filePath);
|
||||
}
|
||||
|
||||
UserProfileChangeRequest profileUpdates = profileUpdatesBuilder.build();
|
||||
|
||||
user.updateProfile(profileUpdates)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
Log.d(TAG, "User profile updated.");
|
||||
setupDrawer();
|
||||
fragmentManager.popBackStack();
|
||||
}
|
||||
}
|
||||
})
|
||||
.addOnFailureListener(new OnFailureListener() {
|
||||
@Override
|
||||
public void onFailure(@NonNull Exception e) {
|
||||
Toast.makeText(getContext(), "Update Failed", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void uploadImage() {
|
||||
|
||||
if(filePath != null)
|
||||
{
|
||||
final ProgressDialog progressDialog = new ProgressDialog(getContext());
|
||||
progressDialog.setTitle("Uploading...");
|
||||
progressDialog.show();
|
||||
|
||||
final StorageReference ref = storageReference.child("images/"+ user.getUid() + "/profile_pic");
|
||||
UploadTask uploadTask = ref.putFile(filePath);
|
||||
|
||||
uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
|
||||
@Override
|
||||
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
|
||||
double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot
|
||||
.getTotalByteCount());
|
||||
progressDialog.setMessage("Uploaded "+(int)progress+"%");
|
||||
}
|
||||
}).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
|
||||
@Override
|
||||
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
|
||||
if (!task.isSuccessful()) {
|
||||
throw task.getException();
|
||||
}
|
||||
|
||||
// Continue with the task to get the download URL
|
||||
return ref.getDownloadUrl();
|
||||
}
|
||||
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Uri> task) {
|
||||
if (task.isSuccessful()) {
|
||||
filePath = task.getResult();
|
||||
progressDialog.dismiss();
|
||||
Toast.makeText(getContext(), "Uploaded Successfully", Toast.LENGTH_SHORT).show();
|
||||
Log.i(TAG, "onComplete: uploaded Successful uri: " + task.getResult());
|
||||
} else {
|
||||
progressDialog.dismiss();
|
||||
Toast.makeText(getContext(), "Failed to upload", Toast.LENGTH_SHORT).show();
|
||||
Log.i(TAG, "onComplete: failed to get url");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
|
||||
// @Override
|
||||
// public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
|
||||
//
|
||||
// }
|
||||
// })
|
||||
// .addOnFailureListener(new OnFailureListener() {
|
||||
// @Override
|
||||
// public void onFailure(@NonNull Exception e) {
|
||||
//
|
||||
// }
|
||||
// })
|
||||
// .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
|
||||
// @Override
|
||||
// public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
|
||||
// double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot
|
||||
// .getTotalByteCount());
|
||||
// progressDialog.setMessage("Uploaded "+(int)progress+"%");
|
||||
// }
|
||||
// });
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void chooseImage() {
|
||||
Intent intent = new Intent();
|
||||
intent.setType("image/*");
|
||||
intent.setAction(Intent.ACTION_GET_CONTENT);
|
||||
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
|
||||
&& data != null && data.getData() != null )
|
||||
{
|
||||
filePath = data.getData();
|
||||
Bitmap bitmap = null;
|
||||
try {
|
||||
bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), filePath);
|
||||
imageView.setImageBitmap(bitmap);
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
finally {
|
||||
if (bitmap != null){
|
||||
uploadImage();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
BIN
app/src/main/res/drawable/approved.png
Normal file
BIN
app/src/main/res/drawable/approved.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.9 KiB |
BIN
app/src/main/res/drawable/choice_img.png
Normal file
BIN
app/src/main/res/drawable/choice_img.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 153 KiB |
BIN
app/src/main/res/drawable/choice_img_round.png
Normal file
BIN
app/src/main/res/drawable/choice_img_round.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 171 KiB |
BIN
app/src/main/res/drawable/denied.png
Normal file
BIN
app/src/main/res/drawable/denied.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
9
app/src/main/res/drawable/ic_archive_black_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_archive_black_24dp.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FFffffff"
|
||||
android:pathData="M20.54,5.23l-1.39,-1.68C18.88,3.21 18.47,3 18,3H6c-0.47,0 -0.88,0.21 -1.16,0.55L3.46,5.23C3.17,5.57 3,6.02 3,6.5V19c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V6.5c0,-0.48 -0.17,-0.93 -0.46,-1.27zM12,17.5L6.5,12H10v-2h4v2h3.5L12,17.5zM5.12,5l0.81,-1h12l0.94,1H5.12z"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z"/>
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/ic_local_taxi_black_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_local_taxi_black_24dp.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M18.92,6.01C18.72,5.42 18.16,5 17.5,5L15,5L15,3L9,3v2L6.5,5c-0.66,0 -1.21,0.42 -1.42,1.01L3,12v8c0,0.55 0.45,1 1,1h1c0.55,0 1,-0.45 1,-1v-1h12v1c0,0.55 0.45,1 1,1h1c0.55,0 1,-0.45 1,-1v-8l-2.08,-5.99zM6.5,16c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,13 6.5,13s1.5,0.67 1.5,1.5S7.33,16 6.5,16zM17.5,16c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5zM5,11l1.5,-4.5h11L19,11L5,11z"/>
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/ic_person_black_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_person_black_24dp.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/ic_settings_black_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_settings_black_24dp.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/ic_sort_black_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_sort_black_24dp.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z"/>
|
||||
</vector>
|
||||
BIN
app/src/main/res/drawable/pending.png
Normal file
BIN
app/src/main/res/drawable/pending.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
@@ -3,7 +3,7 @@
|
||||
<gradient
|
||||
android:angle="135"
|
||||
android:centerColor="@color/colorAccent"
|
||||
android:endColor="#00695C"
|
||||
android:startColor="@color/colorAccent"
|
||||
android:endColor="@color/colour_four"
|
||||
android:startColor="@color/colour_siz"
|
||||
android:type="linear" />
|
||||
</shape>
|
||||
BIN
app/src/main/res/drawable/zero.png
Normal file
BIN
app/src/main/res/drawable/zero.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
55
app/src/main/res/layout/activity_forgot_password.xml
Normal file
55
app/src/main/res/layout/activity_forgot_password.xml
Normal file
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".User.RegisterActivity">
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/pb"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp"
|
||||
android:layout_centerInParent="true">
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/reset_pw"
|
||||
style="@style/edittexttheme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="Enter Emil Address"
|
||||
android:inputType="textEmailAddress"
|
||||
android:maxLines="1" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/reset_pw_sign_up"
|
||||
style="?android:attr/borderlessButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_margin="12dp"
|
||||
android:background="@drawable/cardviewoutline"
|
||||
android:text="Sign Up"
|
||||
android:textColor="#91ddff"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".ImageSelectorActivity">
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
@@ -10,7 +10,8 @@
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
||||
android:background="@drawable/cars"
|
||||
tools:context=".LoginActivity">
|
||||
android:importantForAutofill="yes"
|
||||
tools:context=".User.LoginActivity">
|
||||
|
||||
<!-- Login progress -->
|
||||
|
||||
@@ -41,6 +42,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="18dp"
|
||||
android:layout_marginRight="18dp"
|
||||
android:importantForAutofill="yes"
|
||||
android:autofilledHighlight="@android:color/transparent"
|
||||
android:ems="10"
|
||||
android:hint="@string/prompt_email"
|
||||
@@ -69,6 +71,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="18dp"
|
||||
android:layout_marginRight="18dp"
|
||||
android:importantForAutofill="yes"
|
||||
android:autofilledHighlight="@android:color/transparent"
|
||||
android:ems="10"
|
||||
android:hint="@string/prompt_password"
|
||||
@@ -84,18 +87,46 @@
|
||||
<!--</android.support.design.widget.TextInputLayout>-->
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
<LinearLayout
|
||||
android:id="@+id/register"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginRight="18dp"
|
||||
android:text="Sign up"
|
||||
android:textColor="#03a9f4"
|
||||
android:layout_marginLeft="18dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/forgot"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="left"
|
||||
android:layout_weight="1"
|
||||
android:shadowColor="@color/colour_five"
|
||||
android:shadowDx="1"
|
||||
android:shadowDy="1"
|
||||
android:shadowRadius="1"
|
||||
android:text="Forgot Password"
|
||||
android:textColor="@color/colour_seven"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/register_button"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="right"
|
||||
android:paddingRight="2dp"
|
||||
android:shadowColor="@color/colour_five"
|
||||
android:shadowDx="1"
|
||||
android:shadowDy="1"
|
||||
android:shadowRadius="1"
|
||||
android:text="Sign up"
|
||||
android:textColor="@color/colour_seven"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
@@ -20,6 +20,24 @@
|
||||
android:layout_gravity="start"
|
||||
android:fitsSystemWindows="true"
|
||||
app:headerLayout="@layout/nav_header_main"
|
||||
app:menu="@menu/activity_main_drawer" />
|
||||
app:menu="@menu/activity_main_drawer" >
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:clickable="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/logout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp"
|
||||
android:gravity="center"
|
||||
android:text="Logout"
|
||||
android:textColor="@color/colorPrimary"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
</android.support.design.widget.NavigationView>
|
||||
|
||||
</android.support.v4.widget.DrawerLayout>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".RegisterActivity">
|
||||
tools:context=".User.RegisterActivity">
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="wrap_content"
|
||||
@@ -19,6 +19,23 @@
|
||||
android:padding="12dp"
|
||||
android:layout_centerInParent="true">
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/name_register"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="Enter Full Name"
|
||||
android:inputType="textEmailAddress"
|
||||
android:maxLines="1"
|
||||
style="@style/edittexttheme" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@@ -26,6 +26,11 @@
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/container">
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center" />
|
||||
</FrameLayout>
|
||||
|
||||
</LinearLayout>
|
||||
41
app/src/main/res/layout/approval_list_item.xml
Normal file
41
app/src/main/res/layout/approval_list_item.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/approval_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="left|center"
|
||||
android:textSize="22sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="Private Hire License" />
|
||||
</FrameLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/approval_iv"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_marginLeft="12dp"
|
||||
android:layout_marginRight="6dp"
|
||||
android:padding="6dp"
|
||||
tools:src="@drawable/pending" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/archive_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:padding="6dp"
|
||||
android:tint="@color/colour_three"
|
||||
android:src="@drawable/ic_archive_black_24dp" />
|
||||
|
||||
</LinearLayout>
|
||||
92
app/src/main/res/layout/archive_insurance_item.xml
Normal file
92
app/src/main/res/layout/archive_insurance_item.xml
Normal file
@@ -0,0 +1,92 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="6dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:background="@color/colour_siz"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/date_archived"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginRight="12dp"
|
||||
android:textColor="@color/colour_two"
|
||||
android:textStyle="bold"
|
||||
tools:text="12/12/2019" />
|
||||
|
||||
<include
|
||||
android:id="@+id/image_pager"
|
||||
layout="@layout/multi_image_selector"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_marginBottom="12dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Expiry"
|
||||
android:textColor="@color/colour_four"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/exp_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="12/12/2019" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="right"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Insurer"
|
||||
android:textColor="@color/colour_four"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/archive_insurer"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="Admiral" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
221
app/src/main/res/layout/archive_vehicle_item.xml
Normal file
221
app/src/main/res/layout/archive_vehicle_item.xml
Normal file
@@ -0,0 +1,221 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/colour_siz"
|
||||
android:paddingBottom="12dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/view_1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_margin="12dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/number_plate"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="left"
|
||||
android:layout_weight="1"
|
||||
android:textColor="@color/colour_one"
|
||||
android:textStyle="bold"
|
||||
tools:text="PR11 CKK" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/date_archived"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="right"
|
||||
android:textColor="@color/colour_one"
|
||||
android:textStyle="bold"
|
||||
tools:text="12/04/2019" />
|
||||
</LinearLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/view_1">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/car_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="12dp"
|
||||
android:layout_marginRight="6dp"
|
||||
android:layout_toLeftOf="@id/divider"
|
||||
android:gravity="right"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_margin="3dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="right"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Make/Model"
|
||||
android:textColor="@color/colour_four"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/car_text_arch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="Honda Jazz" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_margin="3dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="right"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Colour"
|
||||
android:textColor="@color/colour_four"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/car_colour"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="right"
|
||||
tools:text="Blue" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_margin="3dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="right"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Seized"
|
||||
android:textColor="@color/colour_four"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/seized"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="right"
|
||||
tools:text="No" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginRight="3dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="right"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Date Started"
|
||||
android:textColor="@color/colour_four"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/first_date"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="06/06/2017" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:id="@+id/divider"
|
||||
android:layout_width="2dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignBottom="@+id/car_holder"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:background="@color/colour_one" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/right"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="6dp"
|
||||
android:layout_marginRight="12dp"
|
||||
android:layout_toRightOf="@id/divider"
|
||||
android:gravity="left"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="3dp"
|
||||
android:gravity="left"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Keepers Name"
|
||||
android:textColor="@color/colour_two"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/keeper_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="First Lastname" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="3dp"
|
||||
android:gravity="left"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Keepers Address"
|
||||
android:textColor="@color/colour_two"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/keeper_address"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="left"
|
||||
tools:text="first line of address \nSecond line of address\nArea name\nSS11 4DD" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||
tools:context=".MainActivity"
|
||||
tools:showIn="@layout/app_bar_main">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Hello World!"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
16
app/src/main/res/layout/fragment_archive.xml
Normal file
16
app/src/main/res/layout/fragment_archive.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".Archive.ArchiveFragment">
|
||||
|
||||
<ListView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:divider="@android:color/transparent"
|
||||
android:id="@+id/archive_listview">
|
||||
|
||||
</ListView>
|
||||
|
||||
</FrameLayout>
|
||||
@@ -3,34 +3,50 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".DriverLicenseFragment">
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:context=".Driver.DriverLicenseFragment">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/dl_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingRight="12dp">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginBottom="12dp"
|
||||
app:cardCornerRadius="28dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/driversli_img"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_dl"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@id/dl_view"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:scaleType="centerInside"
|
||||
android:adjustViewBounds="true"
|
||||
tools:src="@drawable/bg" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp"
|
||||
android:id="@+id/dl_view"
|
||||
android:layout_centerInParent="true">
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/upload_lic"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/lin_lay"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
@@ -48,14 +64,14 @@
|
||||
|
||||
<EditText
|
||||
android:id="@+id/lic_no"
|
||||
style="@style/edittexttheme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="Drivers License no."
|
||||
android:inputType="none"
|
||||
android:maxLines="1"
|
||||
style="@style/edittexttheme" />
|
||||
android:maxLines="1" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
@@ -65,16 +81,19 @@
|
||||
|
||||
<EditText
|
||||
android:id="@+id/lic_expiry"
|
||||
style="@style/edittexttheme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:focusable="false"
|
||||
android:hint="Drivers License Expiry"
|
||||
android:inputType="date"
|
||||
android:maxLines="1"
|
||||
style="@style/edittexttheme"/>
|
||||
android:maxLines="1" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
154
app/src/main/res/layout/fragment_driver_overall.xml
Normal file
154
app/src/main/res/layout/fragment_driver_overall.xml
Normal file
@@ -0,0 +1,154 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:context=".Driver.homeDriverFragment"
|
||||
android:orientation="vertical">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:id="@+id/driver_prof"
|
||||
style="@style/cardview_theme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="16dp">
|
||||
|
||||
<ImageView
|
||||
android:src="@drawable/cardviewoutline"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitXY"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center|left"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/approval_dp"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="right|center"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:padding="6dp"
|
||||
tools:src="@android:drawable/presence_online" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:text="Driver Profile"
|
||||
android:textSize="26sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:id="@+id/private_hire"
|
||||
style="@style/cardview_theme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="16dp"
|
||||
app:cardBackgroundColor="@android:color/transparent">
|
||||
|
||||
<ImageView
|
||||
android:src="@drawable/cardviewoutline"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitXY"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_gravity="center|left">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/approval_ph"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="right|center"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:padding="6dp"
|
||||
tools:src="@android:drawable/presence_online" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:text="Private Hire License"
|
||||
android:textSize="22sp" />
|
||||
<TextView
|
||||
android:id="@+id/ph_button_exp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="Expires: 20/12/2019"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:id="@+id/drivers_license"
|
||||
style="@style/cardview_theme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="16dp"
|
||||
app:cardBackgroundColor="@android:color/transparent">
|
||||
|
||||
<ImageView
|
||||
android:src="@drawable/cardviewoutline"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitXY"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_gravity="center|left">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/approval_dl"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="right|center"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:padding="6dp"
|
||||
tools:src="@android:drawable/presence_online" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Drivers License"
|
||||
android:textSize="22sp" />
|
||||
<TextView
|
||||
android:id="@+id/dl_button_exp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
tools:text="Expires: 20/12/2019"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -3,8 +3,9 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical"
|
||||
tools:context=".driverProfileFragment">
|
||||
tools:context=".Driver.DriverProfileFragment">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -12,13 +13,30 @@
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/driver_pic"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="100dp"
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginBottom="12dp"
|
||||
tools:src="@mipmap/ic_launcher_round" />
|
||||
app:cardCornerRadius="28dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/driver_pic"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="center" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/add_driver_pic"
|
||||
@@ -29,6 +47,7 @@
|
||||
android:ems="10"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:gravity="center"
|
||||
android:singleLine="true"
|
||||
android:text="Add Driver photo"
|
||||
android:textColorHighlight="#608d91" />
|
||||
@@ -146,50 +165,6 @@
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/private_hire"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Add Private Hire License"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/retrievedPH"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingRight="12dp"
|
||||
android:text="Private hire number : 254215751 \nExpiry Date: 22/10/2019" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/drivers_li"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Add Drivers License"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/retrieved_dl"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingRight="12dp"
|
||||
android:text="Drivers license number : AGSCE83858HP4DB \nExpiry Date: 22/10/2019" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/submit_driver"
|
||||
style="?android:attr/borderlessButtonStyle"
|
||||
|
||||
@@ -1,140 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_margin="12dp"
|
||||
tools:context=".FindAddressFragment">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/findaddress"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/lin_lay"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:gravity="center"
|
||||
android:padding="12dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Find Address"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/submit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_margin="12dp"
|
||||
android:background="@drawable/cardviewoutline"
|
||||
android:text="@string/submit"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold"
|
||||
style="?android:attr/borderlessButtonStyle" />
|
||||
|
||||
<!--<RelativeLayout-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="wrap_content">-->
|
||||
|
||||
<!--<view-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="1dp"-->
|
||||
<!--android:layout_alignParentLeft="true"-->
|
||||
<!--android:layout_centerVertical="true"-->
|
||||
<!--android:layout_toLeftOf="@id/or"-->
|
||||
<!--android:background="#000000" />-->
|
||||
|
||||
<!--<TextView-->
|
||||
<!--android:id="@+id/or"-->
|
||||
<!--android:layout_width="wrap_content"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--android:layout_centerHorizontal="true"-->
|
||||
<!--android:layout_centerVertical="true"-->
|
||||
<!--android:layout_margin="4dp"-->
|
||||
<!--android:textColor="#000000"-->
|
||||
<!--android:textStyle="bold"-->
|
||||
<!--android:text="OR" />-->
|
||||
|
||||
<!--<view-->
|
||||
<!--android:layout_width="wrap_content"-->
|
||||
<!--android:layout_height="1dp"-->
|
||||
<!--android:layout_alignParentRight="true"-->
|
||||
<!--android:layout_centerVertical="true"-->
|
||||
<!--android:layout_toRightOf="@id/or"-->
|
||||
<!--android:background="#000000" />-->
|
||||
|
||||
<!--</RelativeLayout>-->
|
||||
|
||||
<!--<TextView-->
|
||||
<!--android:id="@+id/entermanually"-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--android:background="@drawable/round_edit_text"-->
|
||||
<!--android:ems="10"-->
|
||||
<!--android:gravity="center"-->
|
||||
<!--android:padding="12dp"-->
|
||||
<!--android:selectAllOnFocus="true"-->
|
||||
<!--android:singleLine="true"-->
|
||||
<!--android:text="Enter Address Manually"-->
|
||||
<!--android:textColorHighlight="#608d91" />-->
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/lin_lay"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/address"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:gravity="top|left"
|
||||
android:hint="Address"
|
||||
android:inputType="textMultiLine"
|
||||
android:lines="4"
|
||||
android:maxLines="7"
|
||||
android:minLines="4"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/postcode"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="Postcode"
|
||||
android:inputType="none"
|
||||
android:maxLines="1"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -4,27 +4,9 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:context=".homeFragment"
|
||||
tools:context=".Driver.homeDriverFragment"
|
||||
android:orientation="vertical">
|
||||
|
||||
<!--<android.support.v7.widget.CardView-->
|
||||
<!--android:id="@+id/driver"-->
|
||||
<!--style="@style/cardview_theme"-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="0dp"-->
|
||||
<!--android:layout_margin="16dp"-->
|
||||
<!--android:layout_weight="1"-->
|
||||
<!--app:background="@drawable/cardviewoutline">-->
|
||||
|
||||
<!--<TextView-->
|
||||
<!--android:layout_width="wrap_content"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--android:layout_gravity="center"-->
|
||||
<!--android:text="Driver Profile"-->
|
||||
<!--android:textSize="22sp" />-->
|
||||
|
||||
<!--</android.support.v7.widget.CardView>-->
|
||||
|
||||
<Button
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
|
||||
16
app/src/main/res/layout/fragment_home_super_user.xml
Normal file
16
app/src/main/res/layout/fragment_home_super_user.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".SuperUser.homeSuperUserFragment">
|
||||
|
||||
<ListView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/list_view_super"
|
||||
tools:listitem="@layout/list_item_layout">
|
||||
|
||||
</ListView>
|
||||
|
||||
</RelativeLayout>
|
||||
28
app/src/main/res/layout/fragment_image_viewer.xml
Normal file
28
app/src/main/res/layout/fragment_image_viewer.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#ffffff">
|
||||
|
||||
<com.github.chrisbanes.photoview.PhotoView
|
||||
android:id="@+id/photo_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#000000"
|
||||
tools:src="@drawable/cars"/>
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/download_pic"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:src="@drawable/ic_file_download_black_24dp" />
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -1,22 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ins_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp"
|
||||
android:layout_centerInParent="true">
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingRight="12dp">
|
||||
|
||||
<include
|
||||
android:id="@+id/image_pager"
|
||||
layout="@layout/multi_image_selector"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@+id/ins_view"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_marginBottom="12dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/uploadInsurance"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/lin_lay"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
@@ -47,25 +63,6 @@
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/ins_no"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="Insurance No.:"
|
||||
android:inputType="date"
|
||||
android:maxLines="1"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
@@ -74,8 +71,8 @@
|
||||
android:id="@+id/insurance_exp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:focusable="false"
|
||||
android:hint="Insurance expiry:"
|
||||
android:inputType="date"
|
||||
android:maxLines="1"
|
||||
@@ -88,7 +85,8 @@
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/submit"
|
||||
android:id="@+id/submit_ins"
|
||||
style="?android:attr/borderlessButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
@@ -98,8 +96,9 @@
|
||||
android:background="@drawable/cardviewoutline"
|
||||
android:text="@string/submit"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold"
|
||||
style="?android:attr/borderlessButtonStyle" />
|
||||
android:textStyle="bold" />
|
||||
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -1,9 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".logbookFragment">
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:context=".Driver.logbookFragment">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/lb_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp"
|
||||
android:layout_alignParentTop="true">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginBottom="12dp"
|
||||
app:cardCornerRadius="28dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/log_book_img"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_lb"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="center" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/upload_lb"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/lin_lay"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:gravity="center"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Upload logbook"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/v5c_no"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="V5C number"
|
||||
android:inputType="none"
|
||||
android:maxLines="1"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
<Button
|
||||
android:id="@+id/submit_lb"
|
||||
style="?android:attr/borderlessButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_margin="12dp"
|
||||
android:background="@drawable/cardviewoutline"
|
||||
android:text="@string/submit"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -3,50 +3,59 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical"
|
||||
tools:context=".PrivateHireLicenseFragment">
|
||||
tools:context=".Driver.PrivateHireLicenseFragment">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/mot_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp"
|
||||
android:layout_centerInParent="true">
|
||||
android:layout_alignParentTop="true">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginBottom="12dp"
|
||||
app:cardCornerRadius="28dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/mot_img"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_mot"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="center" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/uploadmot"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/lin_lay"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:gravity="center"
|
||||
android:padding="12dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Upload M.O.T"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/mot_no"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="MOT Number"
|
||||
android:inputType="none"
|
||||
android:maxLines="1"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
@@ -57,6 +66,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:focusable="false"
|
||||
android:hint="MOT Expiry"
|
||||
android:inputType="date"
|
||||
android:maxLines="1"
|
||||
@@ -69,7 +79,8 @@
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/submit"
|
||||
android:id="@+id/submit_mot"
|
||||
style="?android:attr/borderlessButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
@@ -79,8 +90,7 @@
|
||||
android:background="@drawable/cardviewoutline"
|
||||
android:text="@string/submit"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold"
|
||||
style="?android:attr/borderlessButtonStyle" />
|
||||
android:textStyle="bold" />
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -5,26 +5,54 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".PrivateHireLicenseFragment">
|
||||
tools:context=".Driver.PrivateHireLicenseFragment">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ph_view_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp"
|
||||
android:layout_centerInParent="true">
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingRight="12dp">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginBottom="12dp"
|
||||
app:cardCornerRadius="28dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView2"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_priv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/uploadphlic"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/lin_lay"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:gravity="center"
|
||||
android:padding="12dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Upload Private hire photo"
|
||||
@@ -57,8 +85,8 @@
|
||||
android:id="@+id/ph_expiry"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:focusable="false"
|
||||
android:hint="Private Hire License Expiry"
|
||||
android:inputType="date"
|
||||
android:maxLines="1"
|
||||
@@ -84,18 +112,7 @@
|
||||
android:textStyle="bold"
|
||||
style="?android:attr/borderlessButtonStyle" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@id/ph_view_holder"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:scaleType="centerInside"
|
||||
android:adjustViewBounds="true"
|
||||
tools:src="@drawable/bg" />
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
118
app/src/main/res/layout/fragment_private_hire_vehicle.xml
Normal file
118
app/src/main/res/layout/fragment_private_hire_vehicle.xml
Normal file
@@ -0,0 +1,118 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".Driver.PrivateHireLicenseFragment">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ph_view_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingRight="12dp">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginBottom="12dp"
|
||||
app:cardCornerRadius="28dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView2"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_priv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/uploadphlic"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/lin_lay"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:gravity="center"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Upload Private hire photo"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/ph_no"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="Private Hire Vehicle License no."
|
||||
android:inputType="none"
|
||||
android:maxLines="1"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/ph_expiry"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ems="10"
|
||||
android:focusable="false"
|
||||
android:hint="Private Hire License Expiry"
|
||||
android:inputType="date"
|
||||
android:maxLines="1"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/submit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_margin="12dp"
|
||||
android:background="@drawable/cardviewoutline"
|
||||
android:text="@string/submit"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold"
|
||||
style="?android:attr/borderlessButtonStyle" />
|
||||
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -5,7 +5,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".PrivateHireLicenseFragment">
|
||||
tools:context=".Driver.PrivateHireLicenseFragment">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ph_view_holder"
|
||||
@@ -16,11 +16,9 @@
|
||||
android:layout_centerInParent="true">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/uploadprofilepic"
|
||||
android:id="@+id/change_profile_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/lin_lay"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
@@ -28,44 +26,36 @@
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Upload new profile picture"
|
||||
android:text="Change Profile Name"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/profile_name"
|
||||
<TextView
|
||||
android:id="@+id/change_email"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:hint="Profile Name"
|
||||
android:inputType="textPersonName"
|
||||
android:maxLines="1"
|
||||
android:gravity="center"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Change Email Address"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<EditText
|
||||
android:id="@+id/profile_email"
|
||||
<TextView
|
||||
android:id="@+id/change_pw"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:hint="Profile Email"
|
||||
android:inputType="textEmailAddress"
|
||||
android:maxLines="1"
|
||||
android:gravity="center"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Change Password"
|
||||
android:textColorHighlight="#608d91" />
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -88,17 +78,5 @@
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/profile_pic"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@id/ph_view_holder"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:adjustViewBounds="true"
|
||||
android:src="@mipmap/ic_launcher" />
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
33
app/src/main/res/layout/fragment_user_main.xml
Normal file
33
app/src/main/res/layout/fragment_user_main.xml
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/rel"
|
||||
tools:context=".SuperUser.UserMainFragment">
|
||||
|
||||
<!--<ListView-->
|
||||
<!--android:id="@+id/approvals_list"-->
|
||||
<!--android:layout_width="wrap_content"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--android:layout_alignParentStart="true"-->
|
||||
<!--android:layout_alignParentTop="true"-->
|
||||
<!--android:orientation="vertical"-->
|
||||
<!--android:padding="20dp"-->
|
||||
<!--tools:listitem="@layout/approval_list_item">-->
|
||||
|
||||
<!--</ListView>-->
|
||||
|
||||
<GridView
|
||||
android:id="@+id/approvals_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:numColumns="2"
|
||||
android:rowCount="4"
|
||||
android:stretchMode="columnWidth"
|
||||
tools:listitem="@layout/approval_list_grid_item">
|
||||
|
||||
</GridView>
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
253
app/src/main/res/layout/fragment_vehicle_overall.xml
Normal file
253
app/src/main/res/layout/fragment_vehicle_overall.xml
Normal file
@@ -0,0 +1,253 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:id="@+id/vehicle_prof"
|
||||
style="@style/cardview_theme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="16dp">
|
||||
|
||||
<ImageView
|
||||
android:src="@drawable/cardviewoutline"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitXY"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center|left"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/approval_vehicle"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="right|center"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:padding="6dp"
|
||||
tools:src="@android:drawable/presence_online" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:text="Vehicle Profile"
|
||||
android:textSize="26sp" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:id="@+id/insurance"
|
||||
style="@style/cardview_theme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="16dp"
|
||||
app:cardBackgroundColor="@android:color/transparent">
|
||||
|
||||
<ImageView
|
||||
android:src="@drawable/cardviewoutline"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitXY"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center|left"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/approval_insurance"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="right|center"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:padding="6dp"
|
||||
tools:src="@drawable/approved" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Insurance"
|
||||
android:textSize="22sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/ins_exp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="Expires: 20/12/2019" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:id="@+id/mot"
|
||||
style="@style/cardview_theme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="16dp"
|
||||
app:cardBackgroundColor="@android:color/transparent">
|
||||
|
||||
<ImageView
|
||||
android:src="@drawable/cardviewoutline"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitXY"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="left|center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/approval_mot"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="right|center"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:padding="6dp"
|
||||
tools:src="@android:drawable/presence_online" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="right"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="M.O.T"
|
||||
android:textSize="22sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/mot_exp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="Expires: 20/12/2019" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:id="@+id/logbook"
|
||||
style="@style/cardview_theme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_margin="16dp"
|
||||
app:cardBackgroundColor="@android:color/transparent">
|
||||
|
||||
<ImageView
|
||||
android:src="@drawable/cardviewoutline"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitXY"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center|left"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/approval_lb"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="right|center"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:padding="6dp"
|
||||
tools:src="@android:drawable/presence_online" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="Logbook"
|
||||
android:textSize="22sp" />
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:id="@+id/private_hire_vehicle_license"
|
||||
style="@style/cardview_theme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_margin="16dp"
|
||||
android:layout_weight="1"
|
||||
app:cardBackgroundColor="@android:color/transparent">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/cardviewoutline" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center|left"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/approval_ph_car"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="right|center"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:padding="6dp"
|
||||
tools:src="@android:drawable/presence_online" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="P/H Vehicle License"
|
||||
android:textSize="22sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/ph_car_exp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
tools:text="Expires: 20/12/2019" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</android.support.v7.widget.CardView>
|
||||
</LinearLayout>
|
||||
@@ -22,7 +22,7 @@
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="Car reg"
|
||||
android:inputType="none"
|
||||
android:inputType="textCapCharacters"
|
||||
android:maxLines="1"
|
||||
style="@style/edittexttheme" />
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="Postcode of Keeper"
|
||||
android:inputType="none"
|
||||
android:inputType="none|textCapCharacters"
|
||||
android:maxLines="1"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
@@ -150,6 +150,7 @@
|
||||
android:layout_marginBottom="12dp"
|
||||
android:ems="10"
|
||||
android:hint="Start date"
|
||||
android:focusable="false"
|
||||
android:inputType="date"
|
||||
android:maxLines="1"
|
||||
style="@style/edittexttheme" />
|
||||
@@ -165,77 +166,14 @@
|
||||
android:padding="12dp"
|
||||
android:textSize="18sp"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/mot"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Add MOT details"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/retrievedmot"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:padding="12dp"
|
||||
android:text="MOT number : 254215751 \nExpiry Date: 22/10/2019" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/insurance"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Add insurance details"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/insurance_retrieved"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:padding="12dp"
|
||||
android:text="Insurer : Admiral \nInsurance No.: 483sdf4623\nExpiry Date: 22/10/2019"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/log_book"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/round_edit_text"
|
||||
android:ems="10"
|
||||
android:padding="12dp"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:text="Add Log Book"
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/log_book_retrieved"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:padding="12dp"
|
||||
android:text="V5C number: 483sdf4623"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/submit_vehicle"
|
||||
style="?android:attr/borderlessButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="22dp"
|
||||
android:layout_gravity="right"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:background="@drawable/cardviewoutline"
|
||||
android:text="@string/submit"
|
||||
android:textColor="#91ddff"
|
||||
|
||||
41
app/src/main/res/layout/insurance_item.xml
Normal file
41
app/src/main/res/layout/insurance_item.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
tools:layout_height="200dp">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/frame_lay"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:adjustViewBounds="true">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:cardCornerRadius="28dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/main_image"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_ins"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="center" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</FrameLayout>
|
||||
113
app/src/main/res/layout/list_item_layout.xml
Normal file
113
app/src/main/res/layout/list_item_layout.xml
Normal file
@@ -0,0 +1,113 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="102dp"
|
||||
android:layout_margin="6dp">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/round_card_holder"
|
||||
android:layout_width="102dp"
|
||||
android:layout_height="102dp"
|
||||
android:layout_above="@id/id_holder"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:id="@+id/roundCard"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="100dp"
|
||||
android:layout_above="@id/id_holder"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_gravity="center"
|
||||
android:padding="3dp"
|
||||
app:cardCornerRadius="50dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/driverPic"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:contentDescription="@string/list_item_image"
|
||||
android:scaleType="centerCrop"
|
||||
tools:srcCompat="@mipmap/ic_launcher_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_su_list"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone" />
|
||||
</android.support.v7.widget.CardView>
|
||||
</FrameLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/textholder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="6dp"
|
||||
android:layout_toLeftOf="@id/driver_no"
|
||||
android:layout_toRightOf="@id/round_card_holder"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/username_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_toRightOf="@id/roundCard"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="Haider Malik" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/emailaddress_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_toRightOf="@id/roundCard"
|
||||
android:textSize="14sp"
|
||||
tools:text="h.malik144.au@gmail.com" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/driver_no"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="40dp"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:paddingLeft="12dp"
|
||||
android:paddingRight="12dp"
|
||||
android:textColor="@color/colour_four"
|
||||
android:textSize="20dp"
|
||||
android:textStyle="bold"
|
||||
app:autoSizeMaxTextSize="22dp"
|
||||
app:autoSizeMinTextSize="16dp"
|
||||
tools:text="T22" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/approval_iv"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginLeft="6dp"
|
||||
android:adjustViewBounds="true"
|
||||
tools:src="@android:drawable/presence_online" />
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
47
app/src/main/res/layout/multi_image_selector.xml
Normal file
47
app/src/main/res/layout/multi_image_selector.xml
Normal file
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/left"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:rotation="180"
|
||||
app:srcCompat="@android:drawable/ic_media_play" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:adjustViewBounds="true">
|
||||
|
||||
|
||||
|
||||
<android.support.v4.view.ViewPager
|
||||
android:id="@+id/view_pager"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
</android.support.v4.view.ViewPager>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/delete"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="top|right"
|
||||
app:srcCompat="@android:drawable/ic_delete" />
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/right"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
app:srcCompat="@android:drawable/ic_media_play" />
|
||||
|
||||
</LinearLayout>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user