Kotlin migration Successful

This commit is contained in:
2021-03-06 20:23:17 +00:00
parent 1ba40b2f38
commit 4adc0d4fbe
83 changed files with 482 additions and 1552 deletions

View File

@@ -36,6 +36,7 @@ android {
kotlinOptions {
jvmTarget = "1.8"
}
}
dependencies {
@@ -87,5 +88,5 @@ dependencies {
implementation "org.kodein.di:kodein-di-framework-android-x:$kodein_version"
/* Image Carousal */
implementation 'io.github.vejei.carouselview:carouselview:1.0.0-alpha'
implementation 'com.synnapps:carouselview:0.1.5'
}

View File

@@ -9,7 +9,8 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import h_mal.appttude.com.driver.ui.HomeFragment;
import h_mal.appttude.com.driver.ui.driver.HomeFragment;
import h_mal.appttude.com.driver.ui.driver.MainActivity;
import static org.junit.Assert.assertNotNull;

View File

@@ -0,0 +1,8 @@
package h_mal.appttude.com.driver.base
import org.junit.Assert.*
class BaseActivityTest{
}

View File

@@ -18,6 +18,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import h_mal.appttude.com.driver.R;
import h_mal.appttude.com.driver.ui.user.LoginActivity;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.*;

View File

@@ -18,6 +18,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import h_mal.appttude.com.driver.R;
import h_mal.appttude.com.driver.ui.user.LoginActivity;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.*;

View File

@@ -20,7 +20,7 @@
android:theme="@style/AppTheme">
<activity android:name=".update.UpdateActivity" />
<activity
android:name=".user.LoginActivity"
android:name=".ui.user.LoginActivity"
android:label="@string/app_name"
android:theme="@style/Theme.Design.NoActionBar">
<intent-filter>
@@ -31,7 +31,7 @@
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:name=".ui.driver.MainActivity"
android:configChanges="orientation|screenSize"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" />

View File

@@ -11,7 +11,7 @@ import android.widget.TextView
import com.squareup.picasso.Picasso
import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.Global.ImageSwiperClass
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.ui.driver.MainActivity
import h_mal.appttude.com.driver.Objects.ArchiveObject
import h_mal.appttude.com.driver.Objects.InsuranceObject
import h_mal.appttude.com.driver.Objects.LogbookObject
@@ -74,64 +74,64 @@ class ArchiveObjectListAdapter(
val fiewTwoLable: TextView = listItemView.findViewById(R.id.field_two)
val fieldTwoText: TextView = listItemView.findViewById(R.id.field_two_text)
when (archiveString) {
FirebaseClass.PRIVATE_HIRE_FIREBASE -> {
expiryHolder.visibility = View.VISIBLE
fieldTwo.visibility = View.VISIBLE
val privateHireObject: PrivateHireObject =
getItem(position) as PrivateHireObject
Picasso.get().load(privateHireObject.phImageString)
.placeholder(R.drawable.choice_img)
.into(imageView)
dateString(position)
expiryText.text = privateHireObject.phExpiry
fiewTwoLable.text = "Private Hire License No.:"
fieldTwoText.text = privateHireObject.phNumber
}
FirebaseClass.DRIVERS_LICENSE_FIREBASE -> {
expiryHolder.visibility = View.VISIBLE
fieldTwo.visibility = View.VISIBLE
val driversLicenseObject: DriversLicenseObject =
getItem(position) as DriversLicenseObject
Picasso.get().load(driversLicenseObject.licenseImageString)
.placeholder(R.drawable.choice_img)
.into(imageView)
dateString(position)
expiryText.text = driversLicenseObject.licenseExpiry
fiewTwoLable.text = "License No.:"
fieldTwoText.text = driversLicenseObject.licenseNumber
}
FirebaseClass.MOT_FIREBASE -> {
expiryHolder.visibility = View.VISIBLE
fieldTwo.visibility = View.GONE
val motObject: MotObject = getItem(position) as MotObject
Picasso.get().load(motObject.motImageString)
.placeholder(R.drawable.choice_img)
.into(imageView)
dateString(position)
expiryText.text = motObject.motExpiry
}
FirebaseClass.LOG_BOOK_FIREBASE -> {
expiryHolder.visibility = View.GONE
fieldTwo.visibility = View.VISIBLE
val logbookObject: LogbookObject = getItem(position) as LogbookObject
Picasso.get().load(logbookObject.photoString)
.into(MainActivity.loadImage(imageView))
dateString(position)
fiewTwoLable.text = "V5C No.:"
fieldTwoText.text = logbookObject.v5cnumber
}
FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE -> {
expiryHolder.visibility = View.VISIBLE
fieldTwo.visibility = View.VISIBLE
val privateHireVehicleObject: PrivateHireVehicleObject =
getItem(position) as PrivateHireVehicleObject
Picasso.get().load(privateHireVehicleObject.phCarImageString)
.into(MainActivity.loadImage(imageView))
dateString(position)
expiryText.text = privateHireVehicleObject.phCarExpiry
fiewTwoLable.text = "Private Hire Vehicle License No.:"
fieldTwoText.text = privateHireVehicleObject.phCarNumber
}
// FirebaseClass.PRIVATE_HIRE_FIREBASE -> {
// expiryHolder.visibility = View.VISIBLE
// fieldTwo.visibility = View.VISIBLE
// val privateHireObject: PrivateHireObject =
// getItem(position) as PrivateHireObject
// Picasso.get().load(privateHireObject.phImageString)
// .placeholder(R.drawable.choice_img)
// .into(imageView)
// dateString(position)
// expiryText.text = privateHireObject.phExpiry
// fiewTwoLable.text = "Private Hire License No.:"
// fieldTwoText.text = privateHireObject.phNumber
// }
// FirebaseClass.DRIVERS_LICENSE_FIREBASE -> {
// expiryHolder.visibility = View.VISIBLE
// fieldTwo.visibility = View.VISIBLE
// val driversLicenseObject: DriversLicenseObject =
// getItem(position) as DriversLicenseObject
// Picasso.get().load(driversLicenseObject.licenseImageString)
// .placeholder(R.drawable.choice_img)
// .into(imageView)
// dateString(position)
// expiryText.text = driversLicenseObject.licenseExpiry
// fiewTwoLable.text = "License No.:"
// fieldTwoText.text = driversLicenseObject.licenseNumber
// }
// FirebaseClass.MOT_FIREBASE -> {
// expiryHolder.visibility = View.VISIBLE
// fieldTwo.visibility = View.GONE
// val motObject: MotObject = getItem(position) as MotObject
// Picasso.get().load(motObject.motImageString)
// .placeholder(R.drawable.choice_img)
// .into(imageView)
// dateString(position)
// expiryText.text = motObject.motExpiry
// }
// FirebaseClass.LOG_BOOK_FIREBASE -> {
// expiryHolder.visibility = View.GONE
// fieldTwo.visibility = View.VISIBLE
// val logbookObject: LogbookObject = getItem(position) as LogbookObject
// Picasso.get().load(logbookObject.photoString)
// .into(MainActivity.loadImage(imageView))
// dateString(position)
// fiewTwoLable.text = "V5C No.:"
// fieldTwoText.text = logbookObject.v5cnumber
// }
// FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE -> {
// expiryHolder.visibility = View.VISIBLE
// fieldTwo.visibility = View.VISIBLE
// val privateHireVehicleObject: PrivateHireVehicleObject =
// getItem(position) as PrivateHireVehicleObject
// Picasso.get().load(privateHireVehicleObject.phCarImageString)
// .into(MainActivity.loadImage(imageView))
// dateString(position)
// expiryText.text = privateHireVehicleObject.phCarExpiry
// fiewTwoLable.text = "Private Hire Vehicle License No.:"
// fieldTwoText.text = privateHireVehicleObject.phCarNumber
// }
}
} else if ((archiveString == FirebaseClass.INSURANCE_FIREBASE)) {
listItemView = LayoutInflater.from(context).inflate(

View File

@@ -1,35 +0,0 @@
package h_mal.appttude.com.driver
import android.net.Uri
import android.widget.EditText
import android.widget.ImageView
import androidx.core.widget.doAfterTextChanged
import h_mal.appttude.com.driver.data.DataFieldState
import h_mal.appttude.com.driver.utils.setPicassoImage
interface DataFieldsInterface {
fun EditText.setFieldFromDataFetch(data: String?) = apply {
setText(data)
tag = DataFieldState.NonUserSateUpdated
}
fun EditText.applyChangeListener() = doAfterTextChanged {
if (tag == DataFieldState.NonUserSateUpdated) {
tag = DataFieldState.DefaultState
return@doAfterTextChanged
}
tag = DataFieldState.UserUpdateState
}
fun ImageView.setFieldFromFetchData(data: String?)= apply {
setPicassoImage(data)
tag = DataFieldState.NonUserSateUpdated
}
fun EditText.getTextAfterFieldValidation(): String? =
takeIf { it.tag is DataFieldState.UserUpdateState }?.let { it.text?.toString() }
fun ImageView.getTextAfterFieldValidation(imageUri: Uri?): Uri? =
takeIf { it.tag is DataFieldState.UserUpdateState }?.let { imageUri }
}

View File

@@ -1,6 +1,7 @@
package h_mal.appttude.com.driver.Global
import android.app.AlertDialog
import android.app.DatePickerDialog
import android.app.DatePickerDialog.OnDateSetListener
import android.content.Context
@@ -11,12 +12,12 @@ import androidx.annotation.RequiresApi
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.utils.DateUtils
private const val DATE_FORMAT = "dd/MM/yyyy"
@RequiresApi(api = Build.VERSION_CODES.N)
class DateDialog(
context: Context,
private val editText: EditText
) : DatePickerDialog(context) {
) : DatePickerDialog(editText.context, AlertDialog.THEME_HOLO_LIGHT) {
var dateSetListener: OnDateSetListener =
OnDateSetListener { _, year, month, dayOfMonth ->

View File

@@ -1,23 +0,0 @@
package h_mal.appttude.com.driver.Global
import android.app.Activity
class ViewController constructor(private val activity: Activity?) {
fun progress(vis: Int) {
if (activity is ViewControllerInterface) {
(activity as ViewControllerInterface).progressVisibility(vis)
}
}
fun reloadDrawer() {
if (activity is ViewControllerInterface) {
(activity as ViewControllerInterface).updateDrawer()
}
}
open interface ViewControllerInterface {
fun progressVisibility(vis: Int)
fun updateDrawer()
}
}

View File

@@ -12,11 +12,11 @@ import android.widget.TextView
import androidx.fragment.app.Fragment
import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.Global.SetApprovalDialog
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.ui.driver.MainActivity
import h_mal.appttude.com.driver.Objects.ArchiveObject
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.driver.InsuranceFragment
import h_mal.appttude.com.driver.ui.driver.vehicleprofile.InsuranceFragment
import h_mal.appttude.com.driver.ui.driver.driverprofile.DriverLicenseFragment
import h_mal.appttude.com.driver.ui.driver.driverprofile.DriverProfileFragment
import h_mal.appttude.com.driver.ui.driver.driverprofile.PrivateHireLicenseFragment
@@ -53,153 +53,153 @@ class ApprovalListAdapter(
R.layout.approval_list_grid_item, parent, false
)
}
approvalCode = getApprovalStatusCode(position)
val textView: TextView = listItemView!!.findViewById(R.id.approval_text)
textView.text = names.get(position)
val imageView: ImageView = listItemView.findViewById(R.id.approval_iv)
imageView.setImageResource(
MainActivity.approvalsClass!!.setImageResource(
approvalCode
)
)
imageView.setOnClickListener {
SetApprovalDialog(
approvalCode,
activity,
mappedObject.userId,
position,
imageView
)
}
val archiveImage: ImageView = listItemView.findViewById(R.id.archive_icon)
mappedObject.wholeDriverObject?.archive?.let {
archiveImage.visibility = getArchive(
position,
it
)
archiveImage.setOnClickListener {
var s: String? = null
when (position) {
1 -> s = FirebaseClass.DRIVERS_LICENSE_FIREBASE
2 -> s = FirebaseClass.PRIVATE_HIRE_FIREBASE
3 -> s = FirebaseClass.VEHICLE_DETAILS_FIREBASE
4 -> s = FirebaseClass.INSURANCE_FIREBASE
5 -> s = FirebaseClass.MOT_FIREBASE
6 -> s = FirebaseClass.LOG_BOOK_FIREBASE
7 -> s = FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE
}
// executeFragment(ArchiveFragment(), mappedObject.userId, s)
}
}
listItemView.setOnClickListener(View.OnClickListener { getFragment(position) })
listItemView.minimumHeight = parent.height / 4
listItemView.setPadding(
convertDpToPixel(9f, context).toInt(),
convertDpToPixel(9f, context).toInt(),
convertDpToPixel(9f, context).toInt(),
convertDpToPixel(9f, context).toInt()
)
return (listItemView)
// approvalCode = getApprovalStatusCode(position)
// val textView: TextView = listItemView!!.findViewById(R.id.approval_text)
// textView.text = names.get(position)
// val imageView: ImageView = listItemView.findViewById(R.id.approval_iv)
// imageView.setImageResource(
// MainActivity.approvalsClass!!.setImageResource(
// approvalCode
// )
// )
// imageView.setOnClickListener {
// SetApprovalDialog(
// approvalCode,
// activity,
// mappedObject.userId,
// position,
// imageView
// )
// }
// val archiveImage: ImageView = listItemView.findViewById(R.id.archive_icon)
// mappedObject.wholeDriverObject?.archive?.let {
//
//
// archiveImage.visibility = getArchive(
// position,
// it
// )
// archiveImage.setOnClickListener {
// var s: String? = null
// when (position) {
// 1 -> s = FirebaseClass.DRIVERS_LICENSE_FIREBASE
// 2 -> s = FirebaseClass.PRIVATE_HIRE_FIREBASE
// 3 -> s = FirebaseClass.VEHICLE_DETAILS_FIREBASE
// 4 -> s = FirebaseClass.INSURANCE_FIREBASE
// 5 -> s = FirebaseClass.MOT_FIREBASE
// 6 -> s = FirebaseClass.LOG_BOOK_FIREBASE
// 7 -> s = FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE
// }
//// executeFragment(ArchiveFragment(), mappedObject.userId, s)
// }
// }
// listItemView.setOnClickListener(View.OnClickListener { getFragment(position) })
// listItemView.minimumHeight = parent.height / 4
// listItemView.setPadding(
// convertDpToPixel(9f, context).toInt(),
// convertDpToPixel(9f, context).toInt(),
// convertDpToPixel(9f, context).toInt(),
// convertDpToPixel(9f, context).toInt()
// )
return (listItemView)!!
}
override fun getCount(): Int {
return 8
}
private fun getArchive(i: Int, archiveObject: ArchiveObject?): Int {
var o: Any? = null
val visible: Int
when (i) {
0 -> { }
1 -> o = archiveObject!!.driver_license
2 -> o = archiveObject!!.private_hire
3 -> o = archiveObject!!.vehicle_details
4 -> o = archiveObject!!.insurance_details
5 -> o = archiveObject!!.mot_details
6 -> o = archiveObject!!.log_book
7 -> o = archiveObject!!.ph_car
}
if (o != null) {
visible = View.VISIBLE
} else {
visible = View.GONE
}
return visible
}
private fun getFragment(i: Int) {
lateinit var f: Fragment
val driverProfile by lazy { mappedObject.wholeDriverObject?.driver_profile }
val vehicleProfile by lazy { mappedObject.wholeDriverObject?.vehicle_profile }
val o: Any? = when (i) {
0 -> {
f = DriverProfileFragment()
driverProfile?.driver_profile
}
1 -> {
f = DriverLicenseFragment()
driverProfile?.driver_license
}
2 -> {
f = PrivateHireLicenseFragment()
driverProfile?.private_hire
}
3 -> {
f = VehicleProfileFragment()
vehicleProfile?.vehicle_details
}
4 -> {
f = InsuranceFragment()
vehicleProfile?.insurance_details
}
5 -> {
f = MotFragment()
vehicleProfile?.insurance_details
}
6 -> {
f = LogbookFragment()
vehicleProfile?.log_book
}
7 -> {
f = PrivateHireVehicleFragment()
vehicleProfile?.privateHireVehicleObject
}
else -> null
}
if (o == null) {
// executeFragment(f, mappedObject.userId)
} else {
MainActivity.archiveClass.openDialogArchive(
context, o, mappedObject.userId, f
)
}
}
private fun getApprovalStatusCode(i: Int): Int {
val statusCode = mappedObject.wholeDriverObject?.approvalsObject?.let{
when (i) {
0 -> it.driver_details_approval
1 -> it.driver_license_approval
2 -> it.private_hire_approval
3 -> it.vehicle_details_approval
4 -> it.insurance_details_approval
5 -> it.mot_details_approval
6 -> it.log_book_approval
7 -> it.ph_car_approval
else -> FirebaseClass.NO_DATE_PRESENT
}
}
return statusCode ?: FirebaseClass.NO_DATE_PRESENT
}
companion object {
fun convertDpToPixel(dp: Float, context: Context): Float {
return dp * (context.resources
.displayMetrics.densityDpi.toFloat() / DisplayMetrics.DENSITY_DEFAULT)
}
}
// override fun getCount(): Int {
// return 8
// }
//
// private fun getArchive(i: Int, archiveObject: ArchiveObject?): Int {
// var o: Any? = null
// val visible: Int
// when (i) {
// 0 -> { }
// 1 -> o = archiveObject!!.driver_license
// 2 -> o = archiveObject!!.private_hire
// 3 -> o = archiveObject!!.vehicle_details
// 4 -> o = archiveObject!!.insurance_details
// 5 -> o = archiveObject!!.mot_details
// 6 -> o = archiveObject!!.log_book
// 7 -> o = archiveObject!!.ph_car
// }
// if (o != null) {
// visible = View.VISIBLE
// } else {
// visible = View.GONE
// }
// return visible
// }
//
// private fun getFragment(i: Int) {
// lateinit var f: Fragment
// val driverProfile by lazy { mappedObject.wholeDriverObject?.driver_profile }
// val vehicleProfile by lazy { mappedObject.wholeDriverObject?.vehicle_profile }
// val o: Any? = when (i) {
// 0 -> {
// f = DriverProfileFragment()
// driverProfile?.driver_profile
// }
// 1 -> {
// f = DriverLicenseFragment()
// driverProfile?.driver_license
// }
// 2 -> {
// f = PrivateHireLicenseFragment()
// driverProfile?.private_hire
// }
// 3 -> {
// f = VehicleProfileFragment()
// vehicleProfile?.vehicle_details
// }
// 4 -> {
// f = InsuranceFragment()
// vehicleProfile?.insurance_details
// }
// 5 -> {
// f = MotFragment()
// vehicleProfile?.insurance_details
// }
// 6 -> {
// f = LogbookFragment()
// vehicleProfile?.log_book
// }
// 7 -> {
// f = PrivateHireVehicleFragment()
// vehicleProfile?.privateHireVehicleObject
// }
// else -> null
// }
// if (o == null) {
//// executeFragment(f, mappedObject.userId)
// } else {
// MainActivity.archiveClass.openDialogArchive(
// context, o, mappedObject.userId, f
// )
// }
// }
//
// private fun getApprovalStatusCode(i: Int): Int {
// val statusCode = mappedObject.wholeDriverObject?.approvalsObject?.let{
// when (i) {
// 0 -> it.driver_details_approval
// 1 -> it.driver_license_approval
// 2 -> it.private_hire_approval
// 3 -> it.vehicle_details_approval
// 4 -> it.insurance_details_approval
// 5 -> it.mot_details_approval
// 6 -> it.log_book_approval
// 7 -> it.ph_car_approval
// else -> FirebaseClass.NO_DATE_PRESENT
// }
// }
// return statusCode ?: FirebaseClass.NO_DATE_PRESENT
// }
//
// companion object {
// fun convertDpToPixel(dp: Float, context: Context): Float {
// return dp * (context.resources
// .displayMetrics.densityDpi.toFloat() / DisplayMetrics.DENSITY_DEFAULT)
// }
// }
}

View File

@@ -12,7 +12,7 @@ import android.widget.LinearLayout
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.squareup.picasso.Picasso
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.ui.driver.MainActivity
import h_mal.appttude.com.driver.Objects.UserObject
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject
import h_mal.appttude.com.driver.R
@@ -67,9 +67,9 @@ class RecyclerViewAdapter constructor(var context: Context?, var objects: List<M
}.create()
.show()
}
viewHolderCurrent.profileApprovalImage.setImageResource(
MainActivity.approvalsClass!!.getOverApprovalStatusCode(mappedObject.wholeDriverObject)
)
// viewHolderCurrent.profileApprovalImage.setImageResource(
// MainActivity.approvalsClass!!.getOverApprovalStatusCode(mappedObject.wholeDriverObject)
// )
viewHolderCurrent.itemView.setOnClickListener {
val bundle: Bundle = Bundle()
bundle.putParcelable("mapped", mappedObject)

View File

@@ -12,11 +12,12 @@ 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.MainActivity
import h_mal.appttude.com.driver.ui.driver.MainActivity
import h_mal.appttude.com.driver.Objects.WholeDriverObject
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject
import h_mal.appttude.com.driver.R
import kotlinx.android.synthetic.main.fragment_home_super_user.*
import java.io.IOException
import java.util.*
@@ -125,11 +126,12 @@ class homeSuperUserFragment : Fragment() {
}
return s1!!.compareTo((s2)!!)
}
2 -> return MainActivity.approvalsClass.getOverApprovalStatusCode(o1.wholeDriverObject) -
MainActivity.approvalsClass.getOverApprovalStatusCode(o2.wholeDriverObject)
else -> return MainActivity.approvalsClass.getOverApprovalStatusCode(
o1.wholeDriverObject
) - MainActivity.approvalsClass.getOverApprovalStatusCode(o2.wholeDriverObject)
else -> { throw IOException("dfdfs") }
// 2 -> return MainActivity.approvalsClass.getOverApprovalStatusCode(o1.wholeDriverObject) -
// MainActivity.approvalsClass.getOverApprovalStatusCode(o2.wholeDriverObject)
// else -> return MainActivity.approvalsClass.getOverApprovalStatusCode(
// o1.wholeDriverObject
// ) - MainActivity.approvalsClass.getOverApprovalStatusCode(o2.wholeDriverObject)
}
}
}

View File

@@ -8,26 +8,26 @@ import h_mal.appttude.com.driver.data.FirebaseStorageSource
import h_mal.appttude.com.driver.viewmodels.*
class ApplicationViewModelFactory(
private val firebaseAuthSource: FirebaseAuthSource,
private val firebaseDatabaseSource: FirebaseDatabaseSource,
private val firebaseStorageSource: FirebaseStorageSource
private val auth: FirebaseAuthSource,
private val database: FirebaseDatabaseSource,
private val storage: FirebaseStorageSource
) : ViewModelProvider.Factory {
@Suppress("UNCHECKED_CAST")
override fun <T : ViewModel> create(modelClass: Class<T>): T {
with(modelClass){
return when{
isAssignableFrom(UserViewModel::class.java) -> UserViewModel(firebaseAuthSource)
isAssignableFrom(MainViewModel::class.java) -> MainViewModel(firebaseAuthSource, firebaseDatabaseSource)
isAssignableFrom(UpdateUserViewModel::class.java) -> UpdateUserViewModel(firebaseAuthSource, firebaseStorageSource)
isAssignableFrom(DriverLicenseViewModel::class.java) -> DriverLicenseViewModel(firebaseAuthSource, firebaseDatabaseSource, firebaseStorageSource)
isAssignableFrom(DriverProfileViewModel::class.java) -> DriverProfileViewModel(firebaseAuthSource, firebaseDatabaseSource, firebaseStorageSource)
isAssignableFrom(PrivateHireLicenseViewModel::class.java) -> PrivateHireLicenseViewModel(firebaseAuthSource, firebaseDatabaseSource, firebaseStorageSource)
isAssignableFrom(VehicleProfileViewModel::class.java) -> VehicleProfileViewModel(firebaseAuthSource, firebaseDatabaseSource, firebaseStorageSource)
isAssignableFrom(InsuranceViewModel::class.java) -> InsuranceViewModel(firebaseAuthSource, firebaseDatabaseSource, firebaseStorageSource)
isAssignableFrom(MotViewModel::class.java) -> MotViewModel(firebaseAuthSource, firebaseDatabaseSource, firebaseStorageSource)
isAssignableFrom(LogbookViewModel::class.java) -> LogbookViewModel(firebaseAuthSource, firebaseDatabaseSource, firebaseStorageSource)
isAssignableFrom(PrivateHireVehicleViewModel::class.java) -> PrivateHireVehicleViewModel(firebaseAuthSource, firebaseDatabaseSource, firebaseStorageSource)
isAssignableFrom(UserViewModel::class.java) -> UserViewModel(auth)
isAssignableFrom(MainViewModel::class.java) -> MainViewModel(auth, database)
isAssignableFrom(UpdateUserViewModel::class.java) -> UpdateUserViewModel(auth, storage)
isAssignableFrom(DriverLicenseViewModel::class.java) -> DriverLicenseViewModel(auth, database, storage)
isAssignableFrom(DriverProfileViewModel::class.java) -> DriverProfileViewModel(auth, database, storage)
isAssignableFrom(PrivateHireLicenseViewModel::class.java) -> PrivateHireLicenseViewModel(auth, database, storage)
isAssignableFrom(VehicleProfileViewModel::class.java) -> VehicleProfileViewModel(auth, database, storage)
isAssignableFrom(InsuranceViewModel::class.java) -> InsuranceViewModel(auth, database, storage)
isAssignableFrom(MotViewModel::class.java) -> MotViewModel(auth, database, storage)
isAssignableFrom(LogbookViewModel::class.java) -> LogbookViewModel(auth, database, storage)
isAssignableFrom(PrivateHireVehicleViewModel::class.java) -> PrivateHireVehicleViewModel(auth, database, storage)
else -> throw IllegalArgumentException("Unknown ViewModel class")
} as T
}

View File

@@ -4,6 +4,8 @@ import android.content.Intent
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams
import android.view.ViewGroup.LayoutParams.*
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.Observer
@@ -24,17 +26,17 @@ import org.kodein.di.generic.instance
abstract class BaseActivity<V : BaseViewModel> : AppCompatActivity(), KodeinAware {
private lateinit var loadingView: View
abstract fun getViewModel(): V?
abstract fun getViewModel(): V?
abstract val layoutId: Int
override val kodein by kodein()
val factory by instance<ApplicationViewModelFactory>()
inline fun <reified VM : ViewModel> createLazyViewModel(): Lazy<VM> = viewModels { factory }
inline fun <reified VM : ViewModel> createViewModel(): VM = ViewModelProvider(viewModelStore, factory).get(VM::class.java)
inline fun <reified VM : ViewModel> createViewModel(): VM =
ViewModelProvider(viewModelStore, factory).get(VM::class.java)
var mProgressDialog: View? = null
private var loading: Boolean = false
@@ -44,20 +46,26 @@ abstract class BaseActivity<V : BaseViewModel> : AppCompatActivity(), KodeinAwar
setContentView(layoutId)
}
override fun onStart() {
super.onStart()
/**
* Creates a loading view which to be shown during async operations
*
* #setOnClickListener(null) is an ugly work around to prevent under being clicked during
* loading
*/
private fun instantiateLoadingView(){
loadingView = layoutInflater.inflate(R.layout.progress_layout, null)
loadingView.setOnClickListener(null)
addContentView(loadingView, ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
))
addContentView(loadingView, LayoutParams(MATCH_PARENT, MATCH_PARENT))
loadingView.hide()
}
fun <A : AppCompatActivity> startActivity(activity: Class<A>){
override fun onStart() {
super.onStart()
instantiateLoadingView()
}
fun <A : AppCompatActivity> startActivity(activity: Class<A>) {
val intent = Intent(this, activity)
startActivity(intent)
}
@@ -89,7 +97,7 @@ abstract class BaseActivity<V : BaseViewModel> : AppCompatActivity(), KodeinAwar
private fun configureObserver() {
getViewModel()?.uiState?.observe(this, Observer {
when(it){
when (it) {
is ViewState.HasStarted -> onStarted()
is ViewState.HasData<*> -> onSuccess(it.data.getContentIfNotHandled())
is ViewState.HasError -> onFailure(it.error.getContentIfNotHandled())
@@ -97,20 +105,17 @@ abstract class BaseActivity<V : BaseViewModel> : AppCompatActivity(), KodeinAwar
})
}
private fun View.fadeIn() {
apply {
show()
triggerAnimation(R.anim.nav_default_enter_anim){}
}
private fun View.fadeIn() = apply {
show()
triggerAnimation(R.anim.nav_default_enter_anim) {}
}
private fun View.fadeOut() {
apply {
hide()
triggerAnimation(R.anim.nav_default_exit_anim){}
}
private fun View.fadeOut() = apply {
hide()
triggerAnimation(R.anim.nav_default_exit_anim) {}
}
override fun onBackPressed() {
if (!loading) super.onBackPressed()
}

View File

@@ -86,8 +86,11 @@ abstract class BaseFragment<V : BaseViewModel> : Fragment(), KodeinAware {
if (resultCode == Activity.RESULT_OK){
when(requestCode){
IMAGE_SELECT_REQUEST_CODE -> {
data?.clipData?.convertToList()?.let {
onImageGalleryResult(it.subList(0, 9))
data?.clipData?.convertToList()?.let { clip ->
val list = clip.takeIf { it.size > 10 }?.let{
clip.subList(0, 9)
} ?: clip
onImageGalleryResult(list)
return
}
onImageGalleryResult(data?.data)

View File

@@ -2,6 +2,6 @@ package h_mal.appttude.com.driver.data
sealed class DataFieldState {
object DefaultState : DataFieldState()
object NonUserSateUpdated: DataFieldState()
object NonUserStateUpdated: DataFieldState()
object UserUpdateState: DataFieldState()
}

View File

@@ -1,102 +0,0 @@
package h_mal.appttude.com.driver.driver
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
import h_mal.appttude.com.driver.DataFieldsInterface
import h_mal.appttude.com.driver.Objects.InsuranceObject
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
import h_mal.appttude.com.driver.utils.setPicassoImage
import h_mal.appttude.com.driver.viewmodels.InsuranceViewModel
import io.github.vejei.carouselview.CarouselAdapter
import kotlinx.android.synthetic.main.fragment_insurance.*
class InsuranceFragment : DataSubmissionBaseFragment<InsuranceViewModel, InsuranceObject>(),
DataFieldsInterface {
private var selectedImages: List<Uri>? = listOf()
lateinit var adapter: PageAdapter
private val viewmodel: InsuranceViewModel by getFragmentViewModel()
override fun getViewModel(): InsuranceViewModel = viewmodel
override fun getLayoutId(): Int = R.layout.fragment_insurance
override var model = InsuranceObject()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setImageSelectionAsMultiple()
adapter = PageAdapter()
carousel_view.adapter = adapter
insurer.setTextOnChange { model.insurerName = it }
insurance_exp.setTextOnChange { model.expiryDate = it }
uploadInsurance.setOnClickListener { openGalleryWithPermissionRequest() }
submit_ins.setOnClickListener { submit() }
}
override fun submit() {
super.submit()
validateEditTexts(insurer, insurance_exp)
.takeIf { !it }
?.let { return }
viewmodel.setDataInDatabase(model, selectedImages)
}
override fun setFields(data: InsuranceObject) {
super.setFields(data)
insurer.setFieldFromDataFetch(model.insurerName)
insurance_exp.setFieldFromDataFetch(model.expiryDate)
model.photoStrings?.let { adapter.setData(it) }
}
override fun onImageGalleryResult(imageUris: List<Uri>?) {
selectedImages = imageUris
selectedImages?.let { adapter.setData(it) }
}
class PageAdapter : CarouselAdapter<PageAdapter.ViewHolder>() {
private var data: List<Any?>? = null
fun setData(list: List<Any?>) {
data = list
notifyDataSetChanged()
}
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
private val backgroundImageView = itemView.findViewById<ImageView>(R.id.imageView)
fun bind(page: Any?) {
backgroundImageView.clipToOutline = true
when (page) {
is Uri -> backgroundImageView.setImageURI(page)
is String -> backgroundImageView.setPicassoImage(page)
}
}
}
override fun onCreatePageViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
LayoutInflater.from(parent.context).inflate(R.layout.carousal_image_cell, parent, false)
)
}
override fun onBindPageViewHolder(holder: ViewHolder, position: Int) {
holder.bind(data?.get(position))
}
override fun getPageCount(): Int {
return data?.size ?: 0
}
}
}

View File

@@ -1,4 +1,4 @@
package h_mal.appttude.com.driver.ui
package h_mal.appttude.com.driver.ui.driver
import android.os.Bundle
import android.view.LayoutInflater

View File

@@ -1,4 +1,4 @@
package h_mal.appttude.com.driver
package h_mal.appttude.com.driver.ui.driver
import android.Manifest
import android.graphics.Bitmap
@@ -21,9 +21,10 @@ import com.squareup.picasso.Target
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.R
import h_mal.appttude.com.driver.base.BaseActivity
import h_mal.appttude.com.driver.dialogs.ExitDialog.displayExitDialog
import h_mal.appttude.com.driver.user.LoginActivity
import h_mal.appttude.com.driver.ui.user.LoginActivity
import h_mal.appttude.com.driver.utils.ActivityIntentBuilder.createIntent
import h_mal.appttude.com.driver.utils.setPicassoImage
import h_mal.appttude.com.driver.viewmodels.MainViewModel
@@ -45,10 +46,6 @@ class MainActivity : BaseActivity<MainViewModel>(),
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
imageViewClass = ImageViewClass()
approvalsClass = ApprovalsClass()
archiveClass = ArchiveClass()
setSupportActionBar(toolbar)
navController = findNavController(R.id.container)
@@ -104,16 +101,6 @@ class MainActivity : BaseActivity<MainViewModel>(),
}
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
if (item.itemId == R.id.action_settings) {
return true
}
return super.onOptionsItemSelected(item)
}
override fun onNavigationItemSelected(item: MenuItem): Boolean {
// Handle navigation view item clicks here.
when (item.itemId) {
@@ -122,33 +109,4 @@ class MainActivity : BaseActivity<MainViewModel>(),
drawer_layout.closeDrawer(GravityCompat.START)
return true
}
companion object {
lateinit var imageViewClass: ImageViewClass
lateinit var approvalsClass: ApprovalsClass
lateinit var archiveClass: ArchiveClass
private const val REQUEST_EXTERNAL_STORAGE: Int = 1
private val PERMISSIONS_STORAGE: Array<String> = arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
fun loadImage(mainImage: ImageView?): Target {
val target: Target = object : Target {
override fun onBitmapLoaded(bitmap: Bitmap, from: LoadedFrom) {
mainImage!!.setImageBitmap(bitmap)
mainImage.setOnClickListener{ imageViewClass.open(bitmap) }
}
override fun onBitmapFailed(e: Exception, errorDrawable: Drawable) {}
override fun onPrepareLoad(placeHolderDrawable: Drawable) {
mainImage!!.setImageResource(R.drawable.choice_img)
}
}
mainImage!!.tag = target
return target
}
}
}

View File

@@ -3,15 +3,15 @@ package h_mal.appttude.com.driver.ui.driver.driverprofile
import android.net.Uri
import android.os.Bundle
import android.view.View
import h_mal.appttude.com.driver.DataFieldsInterface
import h_mal.appttude.com.driver.Global.DateDialog
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
import h_mal.appttude.com.driver.model.DriversLicenseObject
import h_mal.appttude.com.driver.utils.setPicassoImage
import h_mal.appttude.com.driver.viewmodels.DriverLicenseViewModel
import kotlinx.android.synthetic.main.fragment_driver_license.*
class DriverLicenseFragment : DataSubmissionBaseFragment<DriverLicenseViewModel, DriversLicenseObject>(), DataFieldsInterface {
class DriverLicenseFragment : DataSubmissionBaseFragment<DriverLicenseViewModel, DriversLicenseObject>() {
private val viewmodel: DriverLicenseViewModel by getFragmentViewModel()
override fun getViewModel(): DriverLicenseViewModel = viewmodel
@@ -26,7 +26,7 @@ class DriverLicenseFragment : DataSubmissionBaseFragment<DriverLicenseViewModel,
lic_expiry.apply {
setTextOnChange{ model.licenseExpiry = it }
setOnClickListener {
DateDialog(requireContext(), this)
DateDialog(this)
}
}
lic_no.setTextOnChange{ model.licenseNumber = it }
@@ -36,24 +36,22 @@ class DriverLicenseFragment : DataSubmissionBaseFragment<DriverLicenseViewModel,
}
override fun submit(){
validateEditTexts(lic_expiry,lic_no)
.takeIf { !it }
?.let { return }
validateEditTexts(lic_expiry,lic_no).takeIf { !it }?.let { return }
viewmodel.setDataInDatabase(model, imageUri)
}
override fun setFields(data: DriversLicenseObject) {
super.setFields(data)
driversli_img.setFieldFromFetchData(data.licenseImageString)
lic_no.setFieldFromDataFetch(data.licenseNumber)
lic_expiry.setFieldFromDataFetch(data.licenseExpiry)
driversli_img.setPicassoImage(data.licenseImageString)
lic_no.setText(data.licenseNumber)
lic_expiry.setText(data.licenseExpiry)
}
override fun onImageGalleryResult(imageUri: Uri?) {
super.onImageGalleryResult(imageUri)
this.imageUri = imageUri
driversli_img.setImageURI(imageUri)
driversli_img.setPicassoImage(imageUri)
}
}

View File

@@ -3,8 +3,6 @@ package h_mal.appttude.com.driver.ui.driver.driverprofile
import android.net.Uri
import android.os.Bundle
import android.view.View
import android.widget.EditText
import h_mal.appttude.com.driver.DataFieldsInterface
import h_mal.appttude.com.driver.Global.DateDialog
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
@@ -14,7 +12,7 @@ import h_mal.appttude.com.driver.viewmodels.DriverProfileViewModel
import kotlinx.android.synthetic.main.fragment_driver_profile.*
class DriverProfileFragment: DataSubmissionBaseFragment<DriverProfileViewModel, DriverProfileObject>(), DataFieldsInterface {
class DriverProfileFragment: DataSubmissionBaseFragment<DriverProfileViewModel, DriverProfileObject>() {
var localUri: Uri? = null
@@ -29,12 +27,17 @@ class DriverProfileFragment: DataSubmissionBaseFragment<DriverProfileViewModel,
names_input.setTextOnChange{ model.forenames = it }
address_input.setTextOnChange{ model.address = it }
postcode_input.setTextOnChange{ model.postcode = it }
dob_input.setTextOnChange{ model.dob = it }
dob_input.apply {
setTextOnChange{ model.dob = it }
setOnClickListener {
DateDialog(this)
}
}
ni_number.setTextOnChange{ model.ni = it }
date_first.apply {
setTextOnChange{ model.dateFirst = it }
setOnClickListener {
DateDialog(requireContext(), it as EditText)
DateDialog(this)
}
}
add_driver_pic.setOnClickListener { openGalleryWithPermissionRequest() }
@@ -53,18 +56,18 @@ class DriverProfileFragment: DataSubmissionBaseFragment<DriverProfileViewModel,
override fun setFields(data: DriverProfileObject) {
super.setFields(data)
driver_pic.setPicassoImage(data.driverPic)
names_input.setFieldFromDataFetch(data.forenames)
address_input.setFieldFromDataFetch(data.address)
postcode_input.setFieldFromDataFetch(data.postcode)
dob_input.setFieldFromDataFetch(data.dob)
ni_number.setFieldFromDataFetch(data.ni)
date_first.setFieldFromDataFetch(data.dateFirst)
names_input.setText(data.forenames)
address_input.setText(data.address)
postcode_input.setText(data.postcode)
dob_input.setText(data.dob)
ni_number.setText(data.ni)
date_first.setText(data.dateFirst)
}
override fun onImageGalleryResult(imageUri: Uri?) {
super.onImageGalleryResult(imageUri)
localUri = imageUri
driver_pic.setImageURI(imageUri)
driver_pic.setPicassoImage(imageUri)
}
}

View File

@@ -3,7 +3,7 @@ package h_mal.appttude.com.driver.ui.driver.driverprofile
import android.net.Uri
import android.os.Bundle
import android.view.View
import h_mal.appttude.com.driver.DataFieldsInterface
import h_mal.appttude.com.driver.Global.DateDialog
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
import h_mal.appttude.com.driver.model.PrivateHireObject
@@ -12,8 +12,7 @@ import h_mal.appttude.com.driver.viewmodels.PrivateHireLicenseViewModel
import kotlinx.android.synthetic.main.fragment_private_hire_license.*
class PrivateHireLicenseFragment : DataSubmissionBaseFragment<PrivateHireLicenseViewModel, PrivateHireObject>(),
DataFieldsInterface {
class PrivateHireLicenseFragment : DataSubmissionBaseFragment<PrivateHireLicenseViewModel, PrivateHireObject>() {
val viewmodel by getFragmentViewModel<PrivateHireLicenseViewModel>()
override fun getViewModel(): PrivateHireLicenseViewModel = viewmodel
@@ -24,16 +23,19 @@ class PrivateHireLicenseFragment : DataSubmissionBaseFragment<PrivateHireLicense
super.onViewCreated(view, savedInstanceState)
ph_no.setTextOnChange{ model.phNumber = it }
ph_expiry.setTextOnChange{ model.phExpiry = it }
ph_expiry.apply {
setTextOnChange{ model.phExpiry = it }
setOnClickListener {
DateDialog(this)
}
}
uploadphlic.setOnClickListener { openGalleryWithPermissionRequest() }
submit.setOnClickListener{ submit() }
}
override fun submit(){
validateEditTexts(ph_no,ph_expiry)
.takeIf { !it }
?.let { return }
validateEditTexts(ph_no,ph_expiry).takeIf { !it }?.let { return }
viewmodel.setDataInDatabase(model, picUri)
}
@@ -41,13 +43,13 @@ class PrivateHireLicenseFragment : DataSubmissionBaseFragment<PrivateHireLicense
override fun setFields(data: PrivateHireObject) {
super.setFields(data)
imageView2.setPicassoImage(data.phImageString)
ph_no.setFieldFromDataFetch(data.phNumber)
ph_expiry.setFieldFromDataFetch(data.phExpiry)
ph_no.setText(data.phNumber)
ph_expiry.setText(data.phExpiry)
}
override fun onImageGalleryResult(imageUri: Uri?) {
super.onImageGalleryResult(imageUri)
imageView2.setImageURI(imageUri)
imageView2.setPicassoImage(imageUri)
}
}

View File

@@ -0,0 +1,70 @@
package h_mal.appttude.com.driver.ui.driver.vehicleprofile
import android.net.Uri
import android.os.Bundle
import android.view.View
import android.widget.ImageView
import h_mal.appttude.com.driver.Global.DateDialog
import h_mal.appttude.com.driver.Objects.InsuranceObject
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
import h_mal.appttude.com.driver.utils.setPicassoImage
import h_mal.appttude.com.driver.viewmodels.InsuranceViewModel
import kotlinx.android.synthetic.main.fragment_insurance.*
class InsuranceFragment : DataSubmissionBaseFragment<InsuranceViewModel, InsuranceObject>() {
private var selectedImages: List<Uri>? = listOf()
private val viewmodel: InsuranceViewModel by getFragmentViewModel()
override fun getViewModel(): InsuranceViewModel = viewmodel
override fun getLayoutId(): Int = R.layout.fragment_insurance
override var model = InsuranceObject()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setImageSelectionAsMultiple()
insurer.setTextOnChange { model.insurerName = it }
insurance_exp.apply {
setOnClickListener { DateDialog(this) }
setTextOnChange { model.expiryDate = it }
}
uploadInsurance.setOnClickListener { openGalleryWithPermissionRequest() }
submit_ins.setOnClickListener { submit() }
}
private fun updateImageCarousal(list: List<Any?>) {
carouselView.setImageClickListener(null)
carouselView.setImageListener { i: Int, imageView: ImageView ->
when (list[i]) {
is Uri -> { imageView.setPicassoImage(list[i] as Uri) }
is String -> imageView.setPicassoImage(list[i] as String)
}
}
carouselView.pageCount = list.size
}
override fun submit() {
super.submit()
validateEditTexts(insurer, insurance_exp).takeIf { !it }?.let { return }
viewmodel.setDataInDatabase(model, selectedImages)
}
override fun setFields(data: InsuranceObject) {
super.setFields(data)
insurer.setText(model.insurerName)
insurance_exp.setText(model.expiryDate)
model.photoStrings?.let { updateImageCarousal(it) }
}
override fun onImageGalleryResult(imageUris: List<Uri>?) {
selectedImages = imageUris
selectedImages?.let { updateImageCarousal(it) }
}
}

View File

@@ -3,7 +3,6 @@ package h_mal.appttude.com.driver.ui.driver.vehicleprofile
import android.net.Uri
import android.os.Bundle
import android.view.View
import h_mal.appttude.com.driver.DataFieldsInterface
import h_mal.appttude.com.driver.Objects.LogbookObject
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
@@ -12,8 +11,7 @@ import h_mal.appttude.com.driver.viewmodels.LogbookViewModel
import kotlinx.android.synthetic.main.fragment_logbook.*
class LogbookFragment : DataSubmissionBaseFragment<LogbookViewModel, LogbookObject>(),
DataFieldsInterface {
class LogbookFragment : DataSubmissionBaseFragment<LogbookViewModel, LogbookObject>() {
private val viewmodel by getFragmentViewModel<LogbookViewModel>()
override fun getViewModel(): LogbookViewModel = viewmodel
@@ -41,13 +39,13 @@ class LogbookFragment : DataSubmissionBaseFragment<LogbookViewModel, LogbookObje
super.setFields(data)
log_book_img.setPicassoImage(data.photoString)
v5c_no.setFieldFromDataFetch(data.v5cnumber)
v5c_no.setText(data.v5cnumber)
}
override fun onImageGalleryResult(imageUri: Uri?) {
super.onImageGalleryResult(imageUri)
picUri = imageUri
log_book_img.setImageURI(picUri)
log_book_img.setPicassoImage(picUri)
}
}

View File

@@ -3,7 +3,8 @@ package h_mal.appttude.com.driver.ui.driver.vehicleprofile
import android.net.Uri
import android.os.Bundle
import android.view.View
import h_mal.appttude.com.driver.DataFieldsInterface
import h_mal.appttude.com.driver.Global.DateDialog
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
import h_mal.appttude.com.driver.model.MotObject
@@ -12,8 +13,7 @@ import h_mal.appttude.com.driver.viewmodels.MotViewModel
import kotlinx.android.synthetic.main.fragment_mot.*
class MotFragment: DataSubmissionBaseFragment<MotViewModel, MotObject>(),
DataFieldsInterface {
class MotFragment: DataSubmissionBaseFragment<MotViewModel, MotObject>(){
private val viewmodel by getFragmentViewModel<MotViewModel>()
override fun getViewModel(): MotViewModel = viewmodel
@@ -23,27 +23,31 @@ class MotFragment: DataSubmissionBaseFragment<MotViewModel, MotObject>(),
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mot_expiry.setTextOnChange{ model.motExpiry = it }
mot_expiry.apply {
setTextOnChange{ model.motExpiry = it }
setOnClickListener {
DateDialog(this)
}
}
uploadmot.setOnClickListener { openGalleryWithPermissionRequest() }
submit_mot.setOnClickListener { submit() }
}
override fun submit() {
super.submit()
validateEditTexts(mot_expiry)
.takeIf { !it }
?.let { return }
validateEditTexts(mot_expiry).takeIf { !it }?.let { return }
viewmodel.setDataInDatabase(model, picUri)
}
override fun setFields(data: MotObject) {
super.setFields(data)
mot_img.setPicassoImage(data.motImageString)
mot_expiry.setFieldFromDataFetch(data.motExpiry)
mot_expiry.setText(data.motExpiry)
}
override fun onImageGalleryResult(imageUri: Uri?) {
super.onImageGalleryResult(imageUri)
mot_img.setImageURI(imageUri)
mot_img.setPicassoImage(imageUri)
}
}

View File

@@ -3,7 +3,8 @@ package h_mal.appttude.com.driver.ui.driver.vehicleprofile
import android.net.Uri
import android.os.Bundle
import android.view.View
import h_mal.appttude.com.driver.DataFieldsInterface
import h_mal.appttude.com.driver.Global.DateDialog
import h_mal.appttude.com.driver.Objects.PrivateHireVehicleObject
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
@@ -12,8 +13,7 @@ import h_mal.appttude.com.driver.viewmodels.PrivateHireVehicleViewModel
import kotlinx.android.synthetic.main.fragment_private_hire_vehicle.*
class PrivateHireVehicleFragment: DataSubmissionBaseFragment<PrivateHireVehicleViewModel, PrivateHireVehicleObject>(),
DataFieldsInterface {
class PrivateHireVehicleFragment: DataSubmissionBaseFragment<PrivateHireVehicleViewModel, PrivateHireVehicleObject>(){
private val viewmodel by getFragmentViewModel<PrivateHireVehicleViewModel>()
override fun getViewModel(): PrivateHireVehicleViewModel = viewmodel
@@ -24,7 +24,12 @@ class PrivateHireVehicleFragment: DataSubmissionBaseFragment<PrivateHireVehicleV
super.onViewCreated(view, savedInstanceState)
ph_no.setTextOnChange{ model.phCarNumber = it }
ph_expiry.setTextOnChange{ model.phCarExpiry = it }
ph_expiry.apply {
setTextOnChange{ model.phCarExpiry = it }
setOnClickListener {
DateDialog(this)
}
}
uploadphlic.setOnClickListener { openGalleryWithPermissionRequest() }
submit.setOnClickListener { submit() }
@@ -32,21 +37,19 @@ class PrivateHireVehicleFragment: DataSubmissionBaseFragment<PrivateHireVehicleV
override fun submit() {
super.submit()
validateEditTexts(ph_no, ph_expiry)
.takeIf { !it }
?.let { return }
validateEditTexts(ph_no, ph_expiry).takeIf { !it }?.let { return }
viewmodel.setDataInDatabase(model, picUri)
}
override fun setFields(data: PrivateHireVehicleObject) {
super.setFields(data)
imageView2.setPicassoImage(data.phCarImageString)
ph_no.setFieldFromDataFetch(data.phCarNumber)
ph_expiry.setFieldFromDataFetch(data.phCarExpiry)
ph_no.setText(data.phCarNumber)
ph_expiry.setText(data.phCarExpiry)
}
override fun onImageGalleryResult(imageUri: Uri?) {
super.onImageGalleryResult(imageUri)
imageView2.setImageURI(imageUri)
imageView2.setPicassoImage(imageUri)
}
}

View File

@@ -2,7 +2,8 @@ package h_mal.appttude.com.driver.ui.driver.vehicleprofile
import android.os.Bundle
import android.view.View
import h_mal.appttude.com.driver.DataFieldsInterface
import h_mal.appttude.com.driver.Global.DateDialog
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
import h_mal.appttude.com.driver.model.VehicleProfileObject
@@ -10,9 +11,7 @@ import h_mal.appttude.com.driver.viewmodels.VehicleProfileViewModel
import kotlinx.android.synthetic.main.fragment_vehicle_setup.*
class VehicleProfileFragment :
DataSubmissionBaseFragment<VehicleProfileViewModel, VehicleProfileObject>(),
DataFieldsInterface {
class VehicleProfileFragment: DataSubmissionBaseFragment<VehicleProfileViewModel, VehicleProfileObject>(){
private val viewmodel by getFragmentViewModel<VehicleProfileViewModel>()
override fun getViewModel(): VehicleProfileViewModel = viewmodel
@@ -29,7 +28,12 @@ class VehicleProfileFragment :
keeper_name.setTextOnChange { model.keeperName = it }
address.setTextOnChange { model.keeperAddress = it }
postcode.setTextOnChange { model.keeperPostCode = it }
start_date.setTextOnChange { model.startDate = it }
start_date.apply {
setTextOnChange{ model.startDate = it }
setOnClickListener {
DateDialog(this)
}
}
seized_checkbox.setOnCheckedChangeListener { _, res -> model.isSeized = res}
submit_vehicle.setOnClickListener { submit() }
@@ -45,14 +49,14 @@ class VehicleProfileFragment :
override fun setFields(data: VehicleProfileObject) {
super.setFields(data)
reg.setFieldFromDataFetch(data.reg)
make.setFieldFromDataFetch(data.make)
car_model.setFieldFromDataFetch(data.model)
colour.setFieldFromDataFetch(data.colour)
keeper_name.setFieldFromDataFetch(data.keeperName)
address.setFieldFromDataFetch(data.keeperAddress)
postcode.setFieldFromDataFetch(data.keeperPostCode)
start_date.setFieldFromDataFetch(data.startDate)
reg.setText(data.reg)
make.setText(data.make)
car_model.setText(data.model)
colour.setText(data.colour)
keeper_name.setText(data.keeperName)
address.setText(data.keeperAddress)
postcode.setText(data.keeperPostCode)
start_date.setText(data.startDate)
seized_checkbox.isChecked = data.isSeized
}
}

View File

@@ -85,7 +85,7 @@ class UpdateProfileFragment : BaseFragment<UpdateUserViewModel>() {
override fun onImageGalleryResult(imageUri: Uri?) {
super.onImageGalleryResult(imageUri)
this.imageUri = imageUri
profile_img.setImageURI(imageUri)
profile_img.setPicassoImage(imageUri)
imageChangeListener = true
}

View File

@@ -1,11 +1,11 @@
package h_mal.appttude.com.driver.user
package h_mal.appttude.com.driver.ui.user
import android.content.Intent
import android.os.Bundle
import com.google.firebase.auth.AuthResult
import com.google.firebase.auth.FirebaseUser
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.ui.driver.MainActivity
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.BaseActivity
import h_mal.appttude.com.driver.viewmodels.UserViewModel

View File

@@ -1,4 +1,4 @@
package h_mal.appttude.com.driver.user
package h_mal.appttude.com.driver.ui.user
import android.os.Bundle
import android.view.View

View File

@@ -1,4 +1,4 @@
package h_mal.appttude.com.driver.user
package h_mal.appttude.com.driver.ui.user
import android.os.Bundle
import android.view.View

View File

@@ -1,10 +1,12 @@
package h_mal.appttude.com.driver.user
package h_mal.appttude.com.driver.ui.user
import android.os.Bundle
import android.view.View
import androidx.fragment.app.activityViewModels
import com.google.firebase.auth.FirebaseUser
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.base.BaseFragment
import h_mal.appttude.com.driver.data.FirebaseCompletion
import h_mal.appttude.com.driver.utils.Coroutines.main
import h_mal.appttude.com.driver.utils.navigateTo
import h_mal.appttude.com.driver.viewmodels.UserViewModel
@@ -20,14 +22,14 @@ class SplashScreenFragment : BaseFragment<UserViewModel>() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
userViewModel.getUser()
goToLogin()
userViewModel.splashscreenCheckUserIsLoggedIn()
}
private fun goToLogin() = main{
delay(1000)
view?.navigateTo(R.id.to_loginFragment)
override fun onSuccess(data: Any?) {
super.onSuccess(data)
when(data){
is FirebaseCompletion.Default -> view?.navigateTo(R.id.to_loginFragment)
}
}
}

View File

@@ -3,7 +3,9 @@ package h_mal.appttude.com.driver.viewmodels
import com.google.firebase.auth.AuthResult
import h_mal.appttude.com.driver.base.BaseViewModel
import h_mal.appttude.com.driver.data.FirebaseAuthentication
import h_mal.appttude.com.driver.data.FirebaseCompletion
import h_mal.appttude.com.driver.utils.Coroutines.io
import kotlinx.coroutines.delay
import kotlinx.coroutines.tasks.await
class UserViewModel(
@@ -34,11 +36,12 @@ class UserViewModel(
}
}
fun getUser(): Boolean {
return auth.getUser()?.let {
fun splashscreenCheckUserIsLoggedIn() = io {
delay(1000)
auth.getUser()?.let {
onSuccess(it)
true
} ?: false
}
onSuccess(FirebaseCompletion.Default)
}
}

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/colour_three"
android:endColor="@color/colour_two"
android:type="linear"
android:angle="45"/>
</shape>

View File

@@ -1,12 +0,0 @@
<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,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0" />
<path
android:fillColor="#FF000000"
android:pathData="M9,2L7.17,4H4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2H9zm3,15c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z" />
</vector>

View File

@@ -1,9 +0,0 @@
<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="M22,16V4c0,-1.1 -0.9,-2 -2,-2H8c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2zm-11,-4l2.03,2.71L16,11l4,5H8l3,-4zM2,6v14c0,1.1 0.9,2 2,2h14v-2H4V6H2z" />
</vector>

View File

@@ -1,9 +0,0 @@
<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="M22.7,19l-9.1,-9.1c0.9,-2.3 0.4,-5 -1.5,-6.9 -2,-2 -5,-2.4 -7.4,-1.3L9,6 6,9 1.6,4.7C0.4,7.1 0.9,10.1 2.9,12.1c1.9,1.9 4.6,2.4 6.9,1.5l9.1,9.1c0.4,0.4 1,0.4 1.4,0l2.3,-2.3c0.5,-0.4 0.5,-1.1 0.1,-1.4z" />
</vector>

View File

@@ -1,9 +0,0 @@
<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="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z" />
</vector>

View File

@@ -1,9 +0,0 @@
<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,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z" />
</vector>

View File

@@ -1,9 +0,0 @@
<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="M4,6H2v14c0,1.1 0.9,2 2,2h14v-2H4V6zm16,-4H8c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2V4c0,-1.1 -0.9,-2 -2,-2zm-8,12.5v-9l6,4.5 -6,4.5z" />
</vector>

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent"/>
<stroke android:width="2dip" android:color="@android:color/holo_red_dark" />
<corners android:radius="22dip"/>
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>

View File

@@ -1,34 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillType="evenOdd"
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
android:strokeWidth="1"
android:strokeColor="#00000000">
<aapt:attr name="android:fillColor">
<gradient
android:endX="78.5885"
android:endY="90.9159"
android:startX="48.7653"
android:startY="61.0927"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

View File

@@ -1,170 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#008577"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

View File

@@ -1,9 +0,0 @@
<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>

View File

@@ -1,9 +0,0 @@
<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>

View File

@@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.cardview.widget.CardView
style="@style/cardview_theme"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:cardBackgroundColor="#03a9f4">
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
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"
android:text="sdfasdasda"
android:inputType="textEmailAddress"
android:maxLines="1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:textColorHighlight="#03a9f4" />
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<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">
<com.google.android.material.textfield.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" />
</com.google.android.material.textfield.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>

View File

@@ -6,8 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/cars"
android:id="@+id/something"
tools:context=".user.LoginActivity">
tools:context=".ui.user.LoginActivity">
<fragment
android:id="@+id/container"

View File

@@ -1,102 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<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">
<com.google.android.material.textfield.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" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/email_register"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:ems="10"
android:hint="Enter Email"
android:inputType="textEmailAddress"
android:maxLines="1"
style="@style/edittexttheme" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/password_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:ems="10"
android:hint="Enter Password"
android:inputType="textPassword"
android:maxLines="1"
style="@style/edittexttheme" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/password_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:ems="10"
android:hint="Enter Password Again"
android:inputType="textPassword"
android:maxLines="1"
style="@style/edittexttheme"/>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
<Button
android:id="@+id/email_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>

View File

@@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
tools:context=".ui.driver.MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"

View File

@@ -1,41 +0,0 @@
<?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>

View File

@@ -65,7 +65,6 @@
android:orientation="vertical">
<TextView
android:id="@+id/expiry_field"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Expiry"

View File

@@ -1,313 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
android:layout_weight="1"
android:background="#fcf7f7">
<ImageView
android:id="@+id/approval_one"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignBottom="@id/card_one"
android:layout_alignParentLeft="true"
android:layout_centerVertical="false"
android:layout_gravity="center_vertical"
android:layout_marginTop="16dp"
tools:src="@drawable/approved" />
<androidx.cardview.widget.CardView
android:id="@+id/card_one"
style="@style/cardview_theme"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/layout"
android:layout_marginTop="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="3dp"
android:layout_toRightOf="@id/approval_one"
app:cardBackgroundColor="@color/colour_three">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center"
android:layout_marginLeft="44dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Vehicle Profile"
android:textSize="26sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<LinearLayout
android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="24dp"
android:layout_marginBottom="8dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="18dp"
android:text="Upload new"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Edit/View"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
android:layout_weight="1"
android:background="#fcf7f7">
<ImageView
android:id="@+id/approval_two"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignBottom="@id/card_two"
android:layout_alignParentLeft="true"
android:layout_centerVertical="false"
android:layout_gravity="center_vertical"
android:layout_marginTop="16dp"
tools:src="@drawable/denied" />
<androidx.cardview.widget.CardView
android:id="@+id/card_two"
style="@style/cardview_theme"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/layout_1"
android:layout_marginTop="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="3dp"
android:layout_toRightOf="@id/approval_two"
app:cardBackgroundColor="@color/colour_three">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center"
android:layout_marginLeft="44dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Insurance"
android:textSize="26sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Expiry: 12/12/2019" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<LinearLayout
android:id="@+id/layout_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="24dp"
android:layout_marginBottom="8dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="18dp"
android:text="Upload new"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Edit/View"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
android:layout_weight="1"
android:background="#fcf7f7">
<ImageView
android:id="@+id/approval_three"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignBottom="@id/card_three"
android:layout_alignParentLeft="true"
android:layout_centerVertical="false"
android:layout_gravity="center_vertical"
android:layout_marginTop="16dp"
tools:src="@drawable/zero" />
<androidx.cardview.widget.CardView
android:id="@+id/card_three"
style="@style/cardview_theme"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/layout_2"
android:layout_marginTop="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="3dp"
android:layout_toRightOf="@id/approval_three"
app:cardBackgroundColor="@color/colour_three">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center"
android:layout_marginLeft="44dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="M.O.T"
android:textSize="26sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Expiry: 12/12/2019" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<LinearLayout
android:id="@+id/layout_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="24dp"
android:layout_marginBottom="8dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="18dp"
android:text="Upload new"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Edit/View"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
android:layout_weight="1"
android:background="#fcf7f7">
<ImageView
android:id="@+id/approval_four"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignBottom="@id/card_four"
android:layout_alignParentLeft="true"
android:layout_centerVertical="false"
android:layout_gravity="center_vertical"
android:layout_marginTop="16dp"
tools:src="@drawable/pending" />
<androidx.cardview.widget.CardView
android:id="@+id/card_four"
style="@style/cardview_theme"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/layout_3"
android:layout_marginTop="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="3dp"
android:layout_toRightOf="@id/approval_four"
app:cardBackgroundColor="@color/colour_three">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center"
android:layout_marginLeft="44dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Logbook"
android:textSize="26sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<LinearLayout
android:id="@+id/layout_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="24dp"
android:layout_marginBottom="8dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="18dp"
android:text="Upload new"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Edit/View"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>

View File

@@ -7,7 +7,6 @@
tools:context=".ui.driver.driverprofile.DriverLicenseFragment">
<LinearLayout
android:id="@+id/dl_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"

View File

@@ -9,7 +9,7 @@
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".ui.HomeFragment">
tools:context=".ui.driver.HomeFragment">
<ImageView
android:id="@+id/prova_logo"
@@ -40,7 +40,6 @@
app:layout_constraintTop_toBottomOf="@id/prova_logo" />
<TextView
android:id="@+id/prova_subtitle_tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
@@ -90,7 +89,6 @@
app:layout_constraintBottom_toTopOf="@id/drivers_license">
<TextView
android:id="@+id/sign_up_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
@@ -117,7 +115,6 @@
app:layout_constraintBottom_toBottomOf="parent">
<TextView
android:id="@+id/login_button_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"

View File

@@ -9,7 +9,7 @@
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".ui.HomeFragment">
tools:context=".ui.driver.HomeFragment">
<ImageView
android:id="@+id/prova_logo"
@@ -40,7 +40,6 @@
app:layout_constraintTop_toBottomOf="@id/prova_logo" />
<TextView
android:id="@+id/prova_subtitle_tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
@@ -66,7 +65,6 @@
app:layout_constraintBottom_toTopOf="@id/car">
<TextView
android:id="@+id/sign_up_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
@@ -93,7 +91,6 @@
app:layout_constraintBottom_toBottomOf="parent">
<TextView
android:id="@+id/login_button_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"

View File

@@ -6,7 +6,6 @@
android:orientation="vertical">
<LinearLayout
android:id="@+id/ins_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
@@ -14,17 +13,17 @@
android:paddingTop="12dp"
android:paddingRight="12dp">
<io.github.vejei.carouselview.CarouselView
android:id="@+id/carousel_view"
<com.synnapps.carouselview.CarouselView
android:id="@+id/carouselView"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_height="200dp"
android:layout_marginBottom="12dp"
app:carouselMode="preview"
app:carouselPreviewSide="sides"
app:carouselPreviewOffset="30dp"
app:carouselPreviewSideBySideStyle="scale"
app:carouselMargin="10dp"
android:layout_marginTop="8dp"/>
app:fillColor="#FFFFFFFF"
app:pageColor="#00000000"
app:radius="6dp"
app:autoPlay="false"
app:strokeColor="#FF777777"
app:strokeWidth="1dp"/>
<TextView
android:id="@+id/uploadInsurance"

View File

@@ -7,7 +7,6 @@
tools:context=".ui.driver.vehicleprofile.LogbookFragment">
<LinearLayout
android:id="@+id/lb_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"

View File

@@ -11,7 +11,7 @@
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="#73000000"
android:importantForAutofill="yes"
tools:context=".user.LoginFragment">
tools:context=".ui.user.LoginFragment">
<LinearLayout
@@ -44,7 +44,6 @@
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
@@ -89,7 +88,6 @@
</androidx.cardview.widget.CardView>
<LinearLayout
android:id="@+id/register"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"

View File

@@ -8,7 +8,6 @@
>
<LinearLayout
android:id="@+id/mot_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"

View File

@@ -8,7 +8,6 @@
tools:context=".ui.driver.driverprofile.PrivateHireLicenseFragment">
<LinearLayout
android:id="@+id/ph_view_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"

View File

@@ -8,7 +8,6 @@
tools:context=".ui.driver.vehicleprofile.PrivateHireVehicleFragment">
<LinearLayout
android:id="@+id/ph_view_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"

View File

@@ -4,6 +4,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:background="@drawable/cars"
tools:context=".user.SplashScreenFragment">
tools:context=".ui.user.SplashScreenFragment">
</FrameLayout>

View File

@@ -35,7 +35,6 @@
app:layout_constraintTop_toBottomOf="@+id/login_title_tv" />
<com.mikhaellopez.circularimageview.CircularImageView
android:id="@+id/prova_icon"
android:layout_width="40dp"
android:layout_height="40dp"
tools:src="@android:drawable/ic_menu_camera"

View File

@@ -3,7 +3,6 @@
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-->

View File

@@ -27,7 +27,6 @@
android:orientation="horizontal">
<ImageView
android:id="@+id/approval_vehicle"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_gravity="right|center"
@@ -69,7 +68,6 @@
android:orientation="horizontal">
<ImageView
android:id="@+id/approval_insurance"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_gravity="right|center"
@@ -91,7 +89,6 @@
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" />
@@ -122,7 +119,6 @@
android:orientation="horizontal">
<ImageView
android:id="@+id/approval_mot"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_gravity="right|center"
@@ -145,7 +141,6 @@
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" />
@@ -178,7 +173,6 @@
android:orientation="horizontal">
<ImageView
android:id="@+id/approval_lb"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_gravity="right|center"
@@ -219,7 +213,6 @@
android:orientation="horizontal">
<ImageView
android:id="@+id/approval_ph_car"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_gravity="right|center"
@@ -241,7 +234,6 @@
android:textSize="22sp" />
<TextView
android:id="@+id/ph_car_exp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"

View File

@@ -1,34 +0,0 @@
<?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">
<androidx.cardview.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" />
</androidx.cardview.widget.CardView>
</FrameLayout>
</FrameLayout>

View File

@@ -49,7 +49,6 @@
</FrameLayout>
<LinearLayout
android:id="@+id/textholder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"

View File

@@ -18,7 +18,6 @@
android:layout_height="200dp"
android:adjustViewBounds="true">
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

View File

@@ -6,7 +6,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/cars"
android:id="@+id/something"
tools:context=".update.UpdateActivity">
<fragment

View File

@@ -50,7 +50,6 @@
app:layout_constraintStart_toStartOf="parent">
<TextView
android:id="@+id/update_email_button_label"
style="@style/button_inner_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -74,7 +73,6 @@
app:layout_constraintStart_toStartOf="parent">
<TextView
android:id="@+id/update_password_button_label"
style="@style/button_inner_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -98,7 +96,6 @@
app:layout_constraintStart_toStartOf="parent">
<TextView
android:id="@+id/update_profile_button_label"
style="@style/button_inner_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
</menu>

View File

@@ -7,7 +7,7 @@
<fragment
android:id="@+id/loginFragment"
android:name="h_mal.appttude.com.driver.user.LoginFragment"
android:name="h_mal.appttude.com.driver.ui.user.LoginFragment"
android:label="LoginFragment"
tools:layout="@layout/fragment_login">
<action
@@ -27,7 +27,7 @@
</fragment>
<fragment
android:id="@+id/registerFragment"
android:name="h_mal.appttude.com.driver.user.RegisterFragment"
android:name="h_mal.appttude.com.driver.ui.user.RegisterFragment"
android:label="RegisterFragment"
tools:layout="@layout/fragment_register"/>
<fragment
@@ -37,7 +37,7 @@
tools:layout="@layout/fragment_forgot_password" />
<fragment
android:id="@+id/splashScreenFragment"
android:name="h_mal.appttude.com.driver.user.SplashScreenFragment"
android:name="h_mal.appttude.com.driver.ui.user.SplashScreenFragment"
android:label="fragment_splash_screen"
tools:layout="@layout/fragment_splash_screen" >
<action

View File

@@ -2,12 +2,11 @@
<navigation 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:id="@+id/main_navigation"
app:startDestination="@id/homeDriverFragment">
<fragment
android:id="@+id/homeDriverFragment"
android:name="h_mal.appttude.com.driver.ui.HomeFragment"
android:name="h_mal.appttude.com.driver.ui.driver.HomeFragment"
android:label="fragment_home"
tools:layout="@layout/fragment_home_driver" >
<action
@@ -114,7 +113,7 @@
tools:layout="@layout/fragment_vehicle_setup"/>
<fragment
android:id="@+id/insuranceFragment"
android:name="h_mal.appttude.com.driver.driver.InsuranceFragment"
android:name="h_mal.appttude.com.driver.ui.driver.vehicleprofile.InsuranceFragment"
android:label="InsuranceFragment"
tools:layout="@layout/fragment_insurance"/>
<fragment

View File

@@ -2,7 +2,6 @@
<navigation 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:id="@+id/update_navigation"
app:startDestination="@id/updateOverviewFragment">
<fragment

View File

@@ -1,18 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="login_edit_text">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginLeft">18dp</item>
<item name="android:layout_marginRight">18dp</item>
<item name="android:importantForAutofill">yes</item>
<item name="android:autofilledHighlight">@android:color/transparent</item>
<item name="android:ems">10</item>
<item name="android:inputType">textEmailAddress</item>
<item name="android:maxLines">1</item>
<item name="android:selectAllOnFocus">true</item>
<item name="android:singleLine">true</item>
<item name="android:textColorHighlight">#03a9f4</item>
</style>
</resources>

View File

@@ -4,6 +4,4 @@
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="nav_header_vertical_spacing">8dp</dimen>
<dimen name="nav_header_height">200dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="floating_hint_margin">22dp</dimen>
</resources>

View File

@@ -1,8 +1 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<item name="ic_menu_camera" type="drawable">@android:drawable/ic_menu_camera</item>
<item name="ic_menu_gallery" type="drawable">@android:drawable/ic_menu_gallery</item>
<item name="ic_menu_slideshow" type="drawable">@android:drawable/ic_menu_slideshow</item>
<item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item>
<item name="ic_menu_share" type="drawable">@android:drawable/ic_menu_share</item>
<item name="ic_menu_send" type="drawable">@android:drawable/ic_menu_send</item>
</resources>
<resources xmlns:android="http://schemas.android.com/apk/res/android"></resources>

View File

@@ -1,38 +1,20 @@
<resources>
<string name="app_name">Choice Minicabs</string>
<string name="navigation_drawer_open">Open navigation drawer</string>
<string name="navigation_drawer_close">Close navigation drawer</string>
<string name="nav_header_title">Driver Name</string>
<string name="nav_header_subtitle">driver@example.com</string>
<string name="nav_header_desc">Navigation header</string>
<string name="action_settings">Settings</string>
<string name="title_activity_login">Sign in</string>
<!-- Strings related to login -->
<string name="prompt_email">Email</string>
<string name="prompt_password">Password</string>
<string name="action_sign_in">Log in</string>
<string name="action_sign_in_short">Sign in</string>
<string name="error_invalid_email">This email address is invalid</string>
<string name="error_invalid_password">This password is too short</string>
<string name="no_match_password">Passwords do not match</string>
<string name="error_incorrect_password">This password is incorrect</string>
<string name="error_field_required">This field is required</string>
<string name="permission_rationale">"Contacts permissions are needed for providing email
completions."
</string>
<string name="hello_blank_fragment">Hello blank fragment</string>
<string name="error_fields_non_match">Passwords Do Not Match</string>
<string name="login_failed">Login Failed!</string>
<string name="submit">Submit</string>
<string name="take_pic">Open Camera</string>
<string name="upload_pic">Upload from Storage</string>
<string name="set_date">Select date</string>
<string name="image_required">Driver Photo Required</string>
<string name="no_role">No role detected</string>
<string name="list_item_image">list item image</string>
<string name="failed_retrieve">Failed to retrieve data</string>
<string name="failed_upload">Failed to upload data</string>
<string name="unsuccessful">Unable To upload</string>
<string name="reset_password">Reset Password</string>
<string name="reset_password_subtitle">Enter email address to receive a password reset link.</string>
<string name="promt_name">Name</string>

View File

@@ -48,18 +48,6 @@
<item name="android:textStyle">bold</item>
</style>
<style name="test_item_title" parent="TextAppearance.AppCompat">
<item name="android:textSize">22sp</item>
<item name="android:textStyle">bold</item>
</style>
<style name="small_header_text" parent="TextAppearance.AppCompat">
<item name="android:gravity">center</item>
<item name="android:textSize">14sp</item>
<item name="android:textStyle">bold</item>
<item name="android:layout_margin">4dp</item>
</style>
<style name="button_inner_text" parent="TextAppearance.AppCompat">
<item name="android:gravity">center</item>
<item name="android:textSize">18sp</item>
@@ -67,16 +55,6 @@
<item name="android:layout_margin">8dp</item>
</style>
<style name="button" parent="CardView">
<item name="cardCornerRadius">8dp</item>
</style>
<style name="info_field_label" parent="TextAppearance.AppCompat">
<!-- <item name="android:textAppearance">@android:style/TextAppearance</item>-->
<item name="android:padding">?android:attr/listPreferredItemPaddingEnd</item>
<item name="android:minHeight">?android:attr/listPreferredItemHeightSmall</item>
</style>
<style name="constraint_container">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>