mirror of
https://github.com/hmalik144/Driver.git
synced 2025-12-10 02:45:20 +00:00
@@ -14,6 +14,11 @@ orbs:
|
|||||||
jobs:
|
jobs:
|
||||||
# Below is the definition of your job to build and test your app, you can rename and customize it as you want.
|
# Below is the definition of your job to build and test your app, you can rename and customize it as you want.
|
||||||
build-and-test:
|
build-and-test:
|
||||||
|
# Parameters used for determining
|
||||||
|
parameters:
|
||||||
|
flavour:
|
||||||
|
type: string
|
||||||
|
default: "Driver"
|
||||||
# These next lines define the Android machine image executor.
|
# These next lines define the Android machine image executor.
|
||||||
# See: https://circleci.com/docs/2.0/executor-types/
|
# See: https://circleci.com/docs/2.0/executor-types/
|
||||||
executor:
|
executor:
|
||||||
@@ -29,14 +34,13 @@ jobs:
|
|||||||
name: Setup variables for build
|
name: Setup variables for build
|
||||||
command: |
|
command: |
|
||||||
echo "$GOOGLE_SERVICES_KEY" > "app/google-services.json"
|
echo "$GOOGLE_SERVICES_KEY" > "app/google-services.json"
|
||||||
# echo "$RELEASE_KEYSTORE_BASE64" | base64 --decode > "android/app/release_keystore.jks"
|
|
||||||
- run:
|
- run:
|
||||||
name: Grant execute permission for gradlew
|
name: Grant execute permission for gradlew
|
||||||
command: |
|
command: |
|
||||||
chmod +x gradlew
|
chmod +x gradlew
|
||||||
# The next step will run the unit tests
|
# The next step will run the unit tests
|
||||||
- android/run-tests:
|
- android/run-tests:
|
||||||
test-command: ./gradlew testDriverDebugUnitTest --continue
|
test-command: ./gradlew test<< parameters.flavour >>DebugUnitTest --continue
|
||||||
# Install Firebase tools needed for firebase emulator
|
# Install Firebase tools needed for firebase emulator
|
||||||
- run:
|
- run:
|
||||||
name: Install firebase tools
|
name: Install firebase tools
|
||||||
@@ -50,15 +54,10 @@ jobs:
|
|||||||
background: true
|
background: true
|
||||||
# Then start the emulator and run the Instrumentation tests!
|
# Then start the emulator and run the Instrumentation tests!
|
||||||
- android/start-emulator-and-run-tests:
|
- android/start-emulator-and-run-tests:
|
||||||
post-emulator-launch-assemble-command: ./gradlew assembleDriverDebugAndroidTest
|
post-emulator-launch-assemble-command: ./gradlew assemble<< parameters.flavour >>DebugAndroidTest
|
||||||
test-command: ./gradlew connectedDriverDebugAndroidTest
|
test-command: ./gradlew connected<< parameters.flavour >>DebugAndroidTest
|
||||||
system-image: system-images;android-25;google_apis;x86
|
system-image: system-images;android-25;google_apis;x86
|
||||||
# And finally run the release build
|
# store test reports
|
||||||
# - run:
|
|
||||||
# name: Assemble release build
|
|
||||||
# command: |
|
|
||||||
# ./gradlew assembleDriverRelease
|
|
||||||
# Then publish the artifacts of the Instrumentation tests!
|
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: app/build/reports/androidTests/connected
|
path: app/build/reports/androidTests/connected
|
||||||
destination: reports
|
destination: reports
|
||||||
@@ -74,11 +73,50 @@ jobs:
|
|||||||
# Then publish the results of the Instrumentation tests!
|
# Then publish the results of the Instrumentation tests!
|
||||||
- store_test_results:
|
- store_test_results:
|
||||||
path: app/build/outputs/androidTest-results/connected
|
path: app/build/outputs/androidTest-results/connected
|
||||||
|
# Assemble
|
||||||
|
assemble-and-release:
|
||||||
|
# Parameters used for determining
|
||||||
|
parameters:
|
||||||
|
flavour:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
executor:
|
||||||
|
name: android/android-machine
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Setup variables for release
|
||||||
|
command: |
|
||||||
|
echo "$RELEASE_KEYSTORE_BASE64" | base64 --decode > "android/app/release_keystore.jks"
|
||||||
|
echo "$GOOGLE_PLAY_KEY" > "android/playstore.json"
|
||||||
|
# And finally run the release build
|
||||||
|
- run:
|
||||||
|
name: Assemble release build
|
||||||
|
command: |
|
||||||
|
./gradlew assembleDriverRelease
|
||||||
# Invoke jobs via workflows
|
# Invoke jobs via workflows
|
||||||
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
|
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
|
||||||
workflows:
|
workflows:
|
||||||
sample: # This is the name of the workflow, feel free to change it to better match your workflow.
|
version: 2
|
||||||
# Inside the workflow, you define the jobs you want to run.
|
build-release-driver:
|
||||||
jobs:
|
jobs:
|
||||||
- build-and-test
|
- build-and-test:
|
||||||
|
flavour: Driver
|
||||||
|
- assemble-and-release:
|
||||||
|
flavour: "Driver"
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- main_driver
|
||||||
|
requires:
|
||||||
|
- build-and-test
|
||||||
|
build-release-admin:
|
||||||
|
jobs:
|
||||||
|
- build-and-test:
|
||||||
|
flavour: Admin
|
||||||
|
- assemble-and-release:
|
||||||
|
flavour: Admin
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only: main_admin
|
||||||
|
requires:
|
||||||
|
- build-and-test
|
||||||
@@ -14,7 +14,7 @@ def relStoreFile = System.getenv("RELEASE_KEYSTORE")
|
|||||||
android {
|
android {
|
||||||
compileSdkVersion 31
|
compileSdkVersion 31
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "h_mal.appttude.com"
|
applicationId "h_mal.appttude.com.driver"
|
||||||
minSdkVersion 24
|
minSdkVersion 24
|
||||||
targetSdkVersion 31
|
targetSdkVersion 31
|
||||||
versionCode 6
|
versionCode 6
|
||||||
@@ -47,7 +47,7 @@ android {
|
|||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
// signingConfig signingConfigs.release
|
signingConfig signingConfigs.release
|
||||||
minifyEnabled false
|
minifyEnabled false
|
||||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||||
}
|
}
|
||||||
@@ -66,12 +66,11 @@ android {
|
|||||||
flavorDimensions "Default"
|
flavorDimensions "Default"
|
||||||
productFlavors {
|
productFlavors {
|
||||||
driver {
|
driver {
|
||||||
applicationIdSuffix ".driver"
|
|
||||||
versionCode 6
|
versionCode 6
|
||||||
versionName "1.0.5"
|
versionName "1.0.5"
|
||||||
}
|
}
|
||||||
admin {
|
admin {
|
||||||
applicationIdSuffix ".driverAdmin"
|
applicationIdSuffix ".admin"
|
||||||
versionCode 4
|
versionCode 4
|
||||||
versionName "0.0.5"
|
versionName "0.0.5"
|
||||||
}
|
}
|
||||||
@@ -84,7 +83,7 @@ android {
|
|||||||
}
|
}
|
||||||
admin {
|
admin {
|
||||||
manifest {
|
manifest {
|
||||||
srcFile 'src/driver_admin/AndroidManifest.xml'
|
srcFile 'src/admin/AndroidManifest.xml'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
12
app/src/admin/AndroidManifest.xml
Normal file
12
app/src/admin/AndroidManifest.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<!-- To auto-complete the email text field in the login form with the user's emails -->
|
||||||
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
|
||||||
|
<application
|
||||||
|
android:icon="@mipmap/ic_launcher"
|
||||||
|
android:roundIcon="@mipmap/ic_launcher_round">
|
||||||
|
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.objects
|
package h_mal.appttude.com.driver.admin.objects
|
||||||
|
|
||||||
|
|
||||||
class ApprovalsObject {
|
class ApprovalsObject {
|
||||||
@@ -29,6 +29,6 @@ class ApprovalsObject {
|
|||||||
this.mot_details_approval = mot_details_approval
|
this.mot_details_approval = mot_details_approval
|
||||||
this.insurance_details_approval = insurance_details_approval
|
this.insurance_details_approval = insurance_details_approval
|
||||||
this.log_book_approval = log_book_approval
|
this.log_book_approval = log_book_approval
|
||||||
ph_car_approval = private_hire_vehicle_approval
|
this.ph_car_approval = private_hire_vehicle_approval
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package h_mal.appttude.com.driver.admin.objects
|
||||||
|
|
||||||
|
import h_mal.appttude.com.driver.model.*
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
class ArchiveObject {
|
||||||
|
var driver_license: HashMap<String, DriversLicense>? = null
|
||||||
|
var private_hire: HashMap<String, PrivateHireLicense>? = null
|
||||||
|
var vehicle_details: HashMap<String, VehicleProfile>? = null
|
||||||
|
var insurance_details: HashMap<String, Insurance>? = null
|
||||||
|
var mot_details: HashMap<String, Mot>? = null
|
||||||
|
var log_book: HashMap<String, Logbook>? = null
|
||||||
|
var ph_car: HashMap<String, PrivateHireVehicle>? = null
|
||||||
|
|
||||||
|
constructor()
|
||||||
|
constructor(
|
||||||
|
driver_license: HashMap<String, DriversLicense>?,
|
||||||
|
private_hire: HashMap<String, PrivateHireLicense>?,
|
||||||
|
vehicle_details: HashMap<String, VehicleProfile>?,
|
||||||
|
insurance_details: HashMap<String, Insurance>?,
|
||||||
|
mot_details: HashMap<String, Mot>?,
|
||||||
|
log_book: HashMap<String, Logbook>?,
|
||||||
|
private_hire_vehicle: HashMap<String, PrivateHireVehicle>?
|
||||||
|
) {
|
||||||
|
this.driver_license = driver_license
|
||||||
|
this.private_hire = private_hire
|
||||||
|
this.vehicle_details = vehicle_details
|
||||||
|
this.insurance_details = insurance_details
|
||||||
|
this.mot_details = mot_details
|
||||||
|
this.log_book = log_book
|
||||||
|
this.ph_car = private_hire_vehicle
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.objects
|
package h_mal.appttude.com.driver.admin.objects
|
||||||
|
|
||||||
|
|
||||||
class UserObject {
|
class UserObject {
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package h_mal.appttude.com.objects
|
package h_mal.appttude.com.driver.admin.objects
|
||||||
|
|
||||||
import h_mal.appttude.com.objects.wholeObject.DriverProfile
|
import h_mal.appttude.com.driver.admin.objects.wholeObject.DriverProfile
|
||||||
import h_mal.appttude.com.objects.wholeObject.VehicleProfile
|
import h_mal.appttude.com.driver.admin.objects.wholeObject.VehicleProfile
|
||||||
|
|
||||||
|
|
||||||
class WholeDriverObject {
|
class WholeDriverObject {
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package h_mal.appttude.com.driver.admin.objects.wholeObject
|
||||||
|
|
||||||
|
import h_mal.appttude.com.driver.model.DriverProfile
|
||||||
|
import h_mal.appttude.com.driver.model.DriversLicense
|
||||||
|
import h_mal.appttude.com.driver.model.PrivateHireLicense
|
||||||
|
|
||||||
|
|
||||||
|
class DriverProfile {
|
||||||
|
var driver_profile: DriverProfile? = null
|
||||||
|
var driver_license: DriversLicense? = null
|
||||||
|
var private_hire: PrivateHireLicense? = null
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
driver_profile: DriverProfile?,
|
||||||
|
driver_license: DriversLicense?,
|
||||||
|
private_hire: PrivateHireLicense?
|
||||||
|
) {
|
||||||
|
this.driver_profile = driver_profile
|
||||||
|
this.driver_license = driver_license
|
||||||
|
this.private_hire = private_hire
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor()
|
||||||
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package h_mal.appttude.com.objects.wholeObject
|
package h_mal.appttude.com.driver.admin.objects.wholeObject
|
||||||
|
|
||||||
import android.os.Parcel
|
import android.os.Parcel
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import h_mal.appttude.com.objects.WholeDriverObject
|
import h_mal.appttude.com.driver.admin.objects.WholeDriverObject
|
||||||
|
|
||||||
|
|
||||||
class MappedObject : Parcelable {
|
class MappedObject : Parcelable {
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package h_mal.appttude.com.driver.admin.objects.wholeObject
|
||||||
|
|
||||||
|
import h_mal.appttude.com.driver.model.Insurance
|
||||||
|
import h_mal.appttude.com.driver.model.Logbook
|
||||||
|
import h_mal.appttude.com.driver.model.PrivateHireVehicle
|
||||||
|
import h_mal.appttude.com.driver.model.Mot
|
||||||
|
import h_mal.appttude.com.driver.model.VehicleProfile
|
||||||
|
|
||||||
|
|
||||||
|
class VehicleProfile {
|
||||||
|
var insurance_details: Insurance? = null
|
||||||
|
var log_book: Logbook? = null
|
||||||
|
var mot_details: Mot? = null
|
||||||
|
var vehicle_details: VehicleProfile? = null
|
||||||
|
var privateHireVehicle: PrivateHireVehicle? = null
|
||||||
|
|
||||||
|
constructor()
|
||||||
|
constructor(
|
||||||
|
insurance_details: Insurance?,
|
||||||
|
log_book: Logbook?,
|
||||||
|
mot_details: Mot?,
|
||||||
|
vehicle_details: VehicleProfile?,
|
||||||
|
private_hire_vehicle: PrivateHireVehicle?
|
||||||
|
) {
|
||||||
|
this.insurance_details = insurance_details
|
||||||
|
this.log_book = log_book
|
||||||
|
this.mot_details = mot_details
|
||||||
|
this.vehicle_details = vehicle_details
|
||||||
|
this.privateHireVehicle = private_hire_vehicle
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package h_mal.appttude.com.ui
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import h_mal.appttude.com.objects.wholeObject.MappedObject
|
import h_mal.appttude.com.driver.admin.objects.wholeObject.MappedObject
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
|
|
||||||
|
|
||||||
class ApprovalListAdapter(
|
class ApprovalListAdapter(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.ui
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
import android.app.AlertDialog
|
import android.app.AlertDialog
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.ui
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
import android.app.AlertDialog
|
import android.app.AlertDialog
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
@@ -8,14 +8,14 @@ import android.util.Log
|
|||||||
import android.view.*
|
import android.view.*
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.google.firebase.database.DataSnapshot
|
import com.google.firebase.database.DataSnapshot
|
||||||
import com.google.firebase.database.DatabaseError
|
import com.google.firebase.database.DatabaseError
|
||||||
import com.google.firebase.database.DatabaseReference
|
import com.google.firebase.database.DatabaseReference
|
||||||
import com.google.firebase.database.ValueEventListener
|
import com.google.firebase.database.ValueEventListener
|
||||||
import h_mal.appttude.com.objects.WholeDriverObject
|
import h_mal.appttude.com.driver.admin.objects.WholeDriverObject
|
||||||
import h_mal.appttude.com.objects.wholeObject.MappedObject
|
import h_mal.appttude.com.driver.admin.objects.wholeObject.MappedObject
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import kotlinx.android.synthetic.admin.fragment_home_super_user.*
|
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ class HomeSuperUserFragment : Fragment() {
|
|||||||
// Inflate the layout for this fragment
|
// Inflate the layout for this fragment
|
||||||
val view: View = inflater.inflate(R.layout.fragment_home_super_user, container, false)
|
val view: View = inflater.inflate(R.layout.fragment_home_super_user, container, false)
|
||||||
|
|
||||||
recycler_view.apply {
|
view.findViewById<RecyclerView>(R.id.recycler_view).apply {
|
||||||
layoutManager = LinearLayoutManager(context)
|
layoutManager = LinearLayoutManager(context)
|
||||||
recyclerViewAdapter = RecyclerViewAdapter(context, mappedObjectList)
|
recyclerViewAdapter = RecyclerViewAdapter(context, mappedObjectList)
|
||||||
adapter = recyclerViewAdapter
|
adapter = recyclerViewAdapter
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import com.google.firebase.auth.FirebaseUser
|
||||||
|
import h_mal.appttude.com.driver.R
|
||||||
|
import h_mal.appttude.com.driver.base.DrawerActivity
|
||||||
|
import h_mal.appttude.com.driver.databinding.ActivityMainBinding
|
||||||
|
import h_mal.appttude.com.driver.databinding.NavHeaderMainBinding
|
||||||
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
|
import h_mal.appttude.com.driver.viewmodels.MainViewModel
|
||||||
|
|
||||||
|
|
||||||
|
class MainActivity : DrawerActivity<MainViewModel, ActivityMainBinding>() {
|
||||||
|
|
||||||
|
override val containerId: Int = R.id.container
|
||||||
|
override val drawerLayoutId: Int = R.id.drawer_layout
|
||||||
|
override val toolbarId: Int = R.id.toolbar
|
||||||
|
override val navViewId: Int = R.id.nav_view
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
viewModel.getUserDetails()
|
||||||
|
setupLogoutInDrawer()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onSuccess(data: Any?) {
|
||||||
|
super.onSuccess(data)
|
||||||
|
when (data) {
|
||||||
|
is FirebaseUser -> {
|
||||||
|
setupDrawer(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setupDrawer(user: FirebaseUser) {
|
||||||
|
NavHeaderMainBinding.inflate(layoutInflater).apply {
|
||||||
|
driverEmail.text = user.email
|
||||||
|
driverName.text = user.displayName
|
||||||
|
profileImage.setGlideImage(user.photoUrl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setupLogoutInDrawer() {
|
||||||
|
binding.logout.setOnClickListener {
|
||||||
|
viewModel.logOut()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.ui
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
import android.app.AlertDialog
|
import android.app.AlertDialog
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@@ -12,9 +12,9 @@ import android.widget.LinearLayout
|
|||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.squareup.picasso.Picasso
|
import com.squareup.picasso.Picasso
|
||||||
import h_mal.appttude.com.objects.UserObject
|
import h_mal.appttude.com.driver.admin.objects.UserObject
|
||||||
import h_mal.appttude.com.objects.wholeObject.MappedObject
|
import h_mal.appttude.com.driver.admin.objects.wholeObject.MappedObject
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
|
|
||||||
|
|
||||||
class RecyclerViewAdapter constructor(var context: Context?, var objects: List<MappedObject>?) :
|
class RecyclerViewAdapter constructor(var context: Context?, var objects: List<MappedObject>?) :
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.ui
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
@@ -7,8 +7,8 @@ import android.view.View
|
|||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.GridView
|
import android.widget.GridView
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import h_mal.appttude.com.objects.wholeObject.MappedObject
|
import h_mal.appttude.com.driver.admin.objects.wholeObject.MappedObject
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
|
|
||||||
|
|
||||||
class UserMainFragment : Fragment() {
|
class UserMainFragment : Fragment() {
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
package h_mal.appttude.com.objects
|
|
||||||
|
|
||||||
import h_mal.appttude.com.model.*
|
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
class ArchiveObject {
|
|
||||||
var driver_license: HashMap<String, DriversLicenseObject>? = null
|
|
||||||
var private_hire: HashMap<String, PrivateHireObject>? = null
|
|
||||||
var vehicle_details: HashMap<String, VehicleProfileObject>? = null
|
|
||||||
var insurance_details: HashMap<String, InsuranceObject>? = null
|
|
||||||
var mot_details: HashMap<String, MotObject>? = null
|
|
||||||
var log_book: HashMap<String, LogbookObject>? = null
|
|
||||||
var ph_car: HashMap<String, PrivateHireVehicleObject>? = null
|
|
||||||
|
|
||||||
constructor()
|
|
||||||
constructor(
|
|
||||||
driver_license: HashMap<String, DriversLicenseObject>?,
|
|
||||||
private_hire: HashMap<String, PrivateHireObject>?,
|
|
||||||
vehicle_details: HashMap<String, VehicleProfileObject>?,
|
|
||||||
insurance_details: HashMap<String, InsuranceObject>?,
|
|
||||||
mot_details: HashMap<String, MotObject>?,
|
|
||||||
log_book: HashMap<String, LogbookObject>?,
|
|
||||||
private_hire_vehicle: HashMap<String, PrivateHireVehicleObject>?
|
|
||||||
) {
|
|
||||||
this.driver_license = driver_license
|
|
||||||
this.private_hire = private_hire
|
|
||||||
this.vehicle_details = vehicle_details
|
|
||||||
this.insurance_details = insurance_details
|
|
||||||
this.mot_details = mot_details
|
|
||||||
this.log_book = log_book
|
|
||||||
this.ph_car = private_hire_vehicle
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
package h_mal.appttude.com.objects.wholeObject
|
|
||||||
|
|
||||||
import h_mal.appttude.com.model.DriverProfileObject
|
|
||||||
import h_mal.appttude.com.model.DriversLicenseObject
|
|
||||||
import h_mal.appttude.com.model.PrivateHireObject
|
|
||||||
|
|
||||||
|
|
||||||
class DriverProfile {
|
|
||||||
var driver_profile: DriverProfileObject? = null
|
|
||||||
var driver_license: DriversLicenseObject? = null
|
|
||||||
var private_hire: PrivateHireObject? = null
|
|
||||||
|
|
||||||
constructor(
|
|
||||||
driver_profile: DriverProfileObject?,
|
|
||||||
driver_license: DriversLicenseObject?,
|
|
||||||
private_hire: PrivateHireObject?
|
|
||||||
) {
|
|
||||||
this.driver_profile = driver_profile
|
|
||||||
this.driver_license = driver_license
|
|
||||||
this.private_hire = private_hire
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor()
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
package h_mal.appttude.com.objects.wholeObject
|
|
||||||
|
|
||||||
import h_mal.appttude.com.model.InsuranceObject
|
|
||||||
import h_mal.appttude.com.model.LogbookObject
|
|
||||||
import h_mal.appttude.com.model.PrivateHireVehicleObject
|
|
||||||
import h_mal.appttude.com.model.MotObject
|
|
||||||
import h_mal.appttude.com.model.VehicleProfileObject
|
|
||||||
|
|
||||||
|
|
||||||
class VehicleProfile {
|
|
||||||
var insurance_details: InsuranceObject? = null
|
|
||||||
var log_book: LogbookObject? = null
|
|
||||||
var mot_details: MotObject? = null
|
|
||||||
var vehicle_details: VehicleProfileObject? = null
|
|
||||||
var privateHireVehicleObject: PrivateHireVehicleObject? = null
|
|
||||||
|
|
||||||
constructor()
|
|
||||||
|
|
||||||
// public VehicleProfile(InsuranceObject insurance_details, LogbookObject log_book, MotObject mot_details, VehicleProfileObject vehicle_details) {
|
|
||||||
// this.insurance_details = insurance_details;
|
|
||||||
// this.log_book = log_book;
|
|
||||||
// this.mot_details = mot_details;
|
|
||||||
// this.vehicle_details = vehicle_details;
|
|
||||||
// }
|
|
||||||
constructor(
|
|
||||||
insurance_details: InsuranceObject?,
|
|
||||||
log_book: LogbookObject?,
|
|
||||||
mot_details: MotObject?,
|
|
||||||
vehicle_details: VehicleProfileObject?,
|
|
||||||
private_hire_vehicle: PrivateHireVehicleObject?
|
|
||||||
) {
|
|
||||||
this.insurance_details = insurance_details
|
|
||||||
this.log_book = log_book
|
|
||||||
this.mot_details = mot_details
|
|
||||||
this.vehicle_details = vehicle_details
|
|
||||||
privateHireVehicleObject = private_hire_vehicle
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
package h_mal.appttude.com.ui
|
|
||||||
|
|
||||||
|
|
||||||
import android.os.Bundle
|
|
||||||
import android.view.MenuItem
|
|
||||||
import android.view.View
|
|
||||||
import androidx.core.view.GravityCompat
|
|
||||||
import androidx.navigation.NavController
|
|
||||||
import androidx.navigation.findNavController
|
|
||||||
import androidx.navigation.ui.AppBarConfiguration
|
|
||||||
import androidx.navigation.ui.navigateUp
|
|
||||||
import androidx.navigation.ui.setupActionBarWithNavController
|
|
||||||
import androidx.navigation.ui.setupWithNavController
|
|
||||||
import com.google.android.material.navigation.NavigationView
|
|
||||||
import com.google.firebase.auth.FirebaseUser
|
|
||||||
import h_mal.appttude.com.R
|
|
||||||
import h_mal.appttude.com.base.BaseActivity
|
|
||||||
import h_mal.appttude.com.dialogs.ExitDialog.displayExitDialog
|
|
||||||
import h_mal.appttude.com.utils.setGlideImage
|
|
||||||
import h_mal.appttude.com.viewmodels.MainViewModel
|
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
|
||||||
import kotlinx.android.synthetic.main.app_bar_main.*
|
|
||||||
import kotlinx.android.synthetic.main.nav_header_main.view.*
|
|
||||||
|
|
||||||
|
|
||||||
class MainActivity : BaseActivity<MainViewModel>(),
|
|
||||||
NavigationView.OnNavigationItemSelectedListener {
|
|
||||||
|
|
||||||
private val vm by createLazyViewModel<MainViewModel>()
|
|
||||||
override fun getViewModel(): MainViewModel = vm
|
|
||||||
override val layoutId: Int = R.layout.activity_main
|
|
||||||
|
|
||||||
lateinit var navController: NavController
|
|
||||||
lateinit var appBarConfiguration: AppBarConfiguration
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
|
||||||
super.onCreate(savedInstanceState)
|
|
||||||
|
|
||||||
setSupportActionBar(toolbar)
|
|
||||||
supportActionBar?.setDisplayShowTitleEnabled(false)
|
|
||||||
navController = findNavController(R.id.container)
|
|
||||||
|
|
||||||
appBarConfiguration = AppBarConfiguration(navController.graph, drawer_layout)
|
|
||||||
nav_view.setupWithNavController(navController)
|
|
||||||
setupActionBarWithNavController(navController, appBarConfiguration)
|
|
||||||
|
|
||||||
getViewModel().getUserDetails()
|
|
||||||
setupLogoutInDrawer()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onSupportNavigateUp(): Boolean {
|
|
||||||
return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setTitle(title: CharSequence) {
|
|
||||||
toolbar.title = title
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onBackPressed() {
|
|
||||||
if (drawer_layout.isDrawerOpen(GravityCompat.START)) {
|
|
||||||
drawer_layout.closeDrawer(GravityCompat.START)
|
|
||||||
} else {
|
|
||||||
val navHostFragment = supportFragmentManager.findFragmentById(R.id.container)
|
|
||||||
navHostFragment?.childFragmentManager?.backStackEntryCount?.takeIf { it >= 1 }?.let {
|
|
||||||
return super.onBackPressed()
|
|
||||||
}
|
|
||||||
displayExitDialog()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onSuccess(data: Any?) {
|
|
||||||
super.onSuccess(data)
|
|
||||||
when (data) {
|
|
||||||
is FirebaseUser -> {
|
|
||||||
setupDrawer(data)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setupDrawer(user: FirebaseUser) {
|
|
||||||
val header: View = nav_view.getHeaderView(0)
|
|
||||||
header.driver_email.text = user.email
|
|
||||||
header.driver_name.text = user.displayName
|
|
||||||
header.profileImage.setGlideImage(user.photoUrl)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setupLogoutInDrawer() {
|
|
||||||
logout.setOnClickListener {
|
|
||||||
getViewModel().logOut()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onNavigationItemSelected(item: MenuItem): Boolean {
|
|
||||||
// Handle navigation view item clicks here.
|
|
||||||
when (item.itemId) {
|
|
||||||
R.id.nav_user_settings -> {}
|
|
||||||
}
|
|
||||||
drawer_layout.closeDrawer(GravityCompat.START)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,8 @@
|
|||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/recycler_view"
|
android:id="@+id/recycler_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
tools:listitem="@layout/list_item_layout">
|
||||||
|
|
||||||
</androidx.recyclerview.widget.RecyclerView>
|
</androidx.recyclerview.widget.RecyclerView>
|
||||||
|
|
||||||
|
|||||||
15
app/src/admin/res/navigation/main_navigation.xml
Normal file
15
app/src/admin/res/navigation/main_navigation.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<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/homeAdminFragment">
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/homeAdminFragment"
|
||||||
|
android:name="h_mal.appttude.com.driver.ui.HomeSuperUserFragment"
|
||||||
|
android:label="fragment_home"
|
||||||
|
tools:layout="@layout/fragment_home_super_user">
|
||||||
|
</fragment>
|
||||||
|
|
||||||
|
</navigation>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com
|
package h_mal.appttude.com.driver
|
||||||
|
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com
|
package h_mal.appttude.com.driver
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
@@ -10,7 +10,7 @@ import androidx.test.espresso.UiController
|
|||||||
import androidx.test.espresso.ViewAction
|
import androidx.test.espresso.ViewAction
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.isRoot
|
import androidx.test.espresso.matcher.ViewMatchers.isRoot
|
||||||
import androidx.test.platform.app.InstrumentationRegistry
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
import h_mal.appttude.com.base.BaseActivity
|
import h_mal.appttude.com.driver.base.BaseActivity
|
||||||
import org.hamcrest.Matcher
|
import org.hamcrest.Matcher
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com
|
package h_mal.appttude.com.driver
|
||||||
|
|
||||||
|
|
||||||
private const val apiKey = "test_key"
|
private const val apiKey = "test_key"
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com
|
package h_mal.appttude.com.driver
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package h_mal.appttude.com
|
package h_mal.appttude.com.driver
|
||||||
|
|
||||||
import com.google.firebase.auth.FirebaseAuth
|
import com.google.firebase.auth.FirebaseAuth
|
||||||
import com.google.firebase.database.FirebaseDatabase
|
import com.google.firebase.database.FirebaseDatabase
|
||||||
import com.google.firebase.storage.FirebaseStorage
|
import com.google.firebase.storage.FirebaseStorage
|
||||||
import h_mal.appttude.com.base.BaseActivity
|
import h_mal.appttude.com.driver.base.BaseActivity
|
||||||
import h_mal.appttude.com.data.FirebaseAuthSource
|
import h_mal.appttude.com.driver.data.FirebaseAuthSource
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import kotlinx.coroutines.tasks.await
|
import kotlinx.coroutines.tasks.await
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com
|
package h_mal.appttude.com.driver
|
||||||
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.reflect.TypeToken
|
import com.google.gson.reflect.TypeToken
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.firebase
|
package h_mal.appttude.com.driver.firebase
|
||||||
|
|
||||||
data class SignUpResponse(
|
data class SignUpResponse(
|
||||||
val expiresIn: String? = null,
|
val expiresIn: String? = null,
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package h_mal.appttude.com.robots
|
package h_mal.appttude.com.driver.robots
|
||||||
|
|
||||||
import h_mal.appttude.com.BaseTestRobot
|
import h_mal.appttude.com.driver.BaseTestRobot
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
|
|
||||||
fun home(func: HomeRobot.() -> Unit) = HomeRobot().apply { func() }
|
fun home(func: HomeRobot.() -> Unit) = HomeRobot().apply { func() }
|
||||||
class HomeRobot : BaseTestRobot() {
|
class HomeRobot : BaseTestRobot() {
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package h_mal.appttude.com.robots
|
package h_mal.appttude.com.driver.robots
|
||||||
|
|
||||||
import h_mal.appttude.com.BaseTestRobot
|
import h_mal.appttude.com.driver.BaseTestRobot
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
|
|
||||||
|
|
||||||
fun login(func: LoginRobot.() -> Unit) = LoginRobot().apply { func() }
|
fun login(func: LoginRobot.() -> Unit) = LoginRobot().apply { func() }
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package h_mal.appttude.com.robots
|
package h_mal.appttude.com.driver.robots
|
||||||
|
|
||||||
import h_mal.appttude.com.BaseTestRobot
|
import h_mal.appttude.com.driver.BaseTestRobot
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
|
|
||||||
fun register(func: RegisterRobot.() -> Unit) = RegisterRobot().apply { func() }
|
fun register(func: RegisterRobot.() -> Unit) = RegisterRobot().apply { func() }
|
||||||
class RegisterRobot : BaseTestRobot() {
|
class RegisterRobot : BaseTestRobot() {
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
package h_mal.appttude.com.tests
|
package h_mal.appttude.com.driver.tests
|
||||||
|
|
||||||
|
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import androidx.test.filters.LargeTest
|
import androidx.test.filters.LargeTest
|
||||||
import h_mal.appttude.com.FirebaseTest
|
import h_mal.appttude.com.driver.FirebaseTest
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.USER_PASSWORD
|
import h_mal.appttude.com.driver.USER_PASSWORD
|
||||||
import h_mal.appttude.com.robots.home
|
import h_mal.appttude.com.driver.robots.home
|
||||||
import h_mal.appttude.com.robots.login
|
import h_mal.appttude.com.driver.robots.login
|
||||||
import h_mal.appttude.com.ui.user.LoginActivity
|
import h_mal.appttude.com.driver.ui.user.LoginActivity
|
||||||
import org.junit.*
|
import org.junit.*
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
package h_mal.appttude.com.tests
|
package h_mal.appttude.com.driver.tests
|
||||||
|
|
||||||
|
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import androidx.test.filters.LargeTest
|
import androidx.test.filters.LargeTest
|
||||||
import h_mal.appttude.com.FirebaseTest
|
import h_mal.appttude.com.driver.FirebaseTest
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.USER_PASSWORD
|
import h_mal.appttude.com.driver.USER_PASSWORD
|
||||||
import h_mal.appttude.com.robots.home
|
import h_mal.appttude.com.driver.robots.home
|
||||||
import h_mal.appttude.com.robots.login
|
import h_mal.appttude.com.driver.robots.login
|
||||||
import h_mal.appttude.com.robots.register
|
import h_mal.appttude.com.driver.robots.register
|
||||||
import h_mal.appttude.com.ui.user.LoginActivity
|
import h_mal.appttude.com.driver.ui.user.LoginActivity
|
||||||
import org.junit.*
|
import org.junit.*
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
|
||||||
@@ -1,39 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="h_mal.appttude.com.driver">
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round">
|
android:roundIcon="@mipmap/ic_launcher_round">
|
||||||
<activity
|
|
||||||
android:name="h_mal.appttude.com.ui.user.LoginActivity"
|
|
||||||
android:label="@string/app_name"
|
|
||||||
android:theme="@style/AppTheme.NoActionBar.User"
|
|
||||||
android:exported="true">
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.MAIN" />
|
|
||||||
<action android:name="android.intent.action.VIEW" />
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
|
||||||
</intent-filter>
|
|
||||||
</activity>
|
|
||||||
<activity
|
|
||||||
android:name="h_mal.appttude.com.ui.MainActivity"
|
|
||||||
android:configChanges="orientation|screenSize"
|
|
||||||
android:label="@string/app_name"
|
|
||||||
android:theme="@style/AppTheme.NoActionBar" />
|
|
||||||
<activity
|
|
||||||
android:name="h_mal.appttude.com.ui.update.UpdateActivity"
|
|
||||||
android:theme="@style/AppTheme.NoActionBar.Update" />
|
|
||||||
|
|
||||||
<provider
|
|
||||||
android:name="androidx.core.content.FileProvider"
|
|
||||||
android:authorities="h_mal.appttude.com.driver"
|
|
||||||
android:exported="false"
|
|
||||||
android:grantUriPermissions="true">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
||||||
android:resource="@xml/file_paths" />
|
|
||||||
</provider>
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.databinding.FragmentDriverOverallBinding
|
import h_mal.appttude.com.driver.databinding.FragmentDriverOverallBinding
|
||||||
import h_mal.appttude.com.utils.navigateTo
|
import h_mal.appttude.com.driver.utils.navigateTo
|
||||||
|
|
||||||
class DriverOverallFragment : Fragment() {
|
class DriverOverallFragment : Fragment() {
|
||||||
|
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
package h_mal.appttude.com.ui
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.base.DataSubmissionBaseFragment
|
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
|
||||||
import h_mal.appttude.com.data.DRIVER
|
import h_mal.appttude.com.driver.data.DRIVER
|
||||||
import h_mal.appttude.com.databinding.FragmentHomeDriverBinding
|
import h_mal.appttude.com.driver.databinding.FragmentHomeDriverBinding
|
||||||
import h_mal.appttude.com.utils.hide
|
import h_mal.appttude.com.driver.utils.hide
|
||||||
import h_mal.appttude.com.utils.navigateTo
|
import h_mal.appttude.com.driver.utils.navigateTo
|
||||||
import h_mal.appttude.com.utils.show
|
import h_mal.appttude.com.driver.utils.show
|
||||||
import h_mal.appttude.com.viewmodels.RoleViewModel
|
import h_mal.appttude.com.driver.viewmodels.RoleViewModel
|
||||||
|
|
||||||
|
|
||||||
class HomeFragment :
|
class HomeFragment :
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import com.google.firebase.auth.FirebaseUser
|
||||||
|
import h_mal.appttude.com.driver.R
|
||||||
|
import h_mal.appttude.com.driver.base.DrawerActivity
|
||||||
|
import h_mal.appttude.com.driver.databinding.ActivityMainBinding
|
||||||
|
import h_mal.appttude.com.driver.databinding.NavHeaderMainBinding
|
||||||
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
|
import h_mal.appttude.com.driver.viewmodels.MainViewModel
|
||||||
|
|
||||||
|
|
||||||
|
class MainActivity : DrawerActivity<MainViewModel, ActivityMainBinding>() {
|
||||||
|
|
||||||
|
override val containerId: Int = R.id.container
|
||||||
|
override val drawerLayoutId: Int = R.id.drawer_layout
|
||||||
|
override val toolbarId: Int = R.id.toolbar
|
||||||
|
override val navViewId: Int = R.id.nav_view
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
viewModel.getUserDetails()
|
||||||
|
setupLogoutInDrawer()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onSuccess(data: Any?) {
|
||||||
|
super.onSuccess(data)
|
||||||
|
|
||||||
|
when (data) {
|
||||||
|
is FirebaseUser -> {
|
||||||
|
setupDrawer(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setupDrawer(user: FirebaseUser) {
|
||||||
|
NavHeaderMainBinding.inflate(layoutInflater).apply {
|
||||||
|
driverEmail.text = user.email
|
||||||
|
driverName.text = user.displayName
|
||||||
|
profileImage.setGlideImage(user.photoUrl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setupLogoutInDrawer() {
|
||||||
|
binding.logout.setOnClickListener {
|
||||||
|
viewModel.logOut()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.databinding.FragmentVehicleOverallBinding
|
import h_mal.appttude.com.driver.databinding.FragmentVehicleOverallBinding
|
||||||
import h_mal.appttude.com.utils.navigateTo
|
import h_mal.appttude.com.driver.utils.navigateTo
|
||||||
|
|
||||||
|
|
||||||
class VehicleOverallFragment : Fragment() {
|
class VehicleOverallFragment : Fragment() {
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui
|
package h_mal.appttude.com.driver.ui
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.databinding.FragmentWelcomeBinding
|
import h_mal.appttude.com.driver.databinding.FragmentWelcomeBinding
|
||||||
import h_mal.appttude.com.utils.navigateTo
|
import h_mal.appttude.com.driver.utils.navigateTo
|
||||||
|
|
||||||
|
|
||||||
class WelcomeFragment : Fragment() {
|
class WelcomeFragment : Fragment() {
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui.driverprofile
|
package h_mal.appttude.com.driver.ui.driverprofile
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import h_mal.appttude.com.base.DataSubmissionBaseFragment
|
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentDriverLicenseBinding
|
import h_mal.appttude.com.driver.databinding.FragmentDriverLicenseBinding
|
||||||
import h_mal.appttude.com.dialogs.DateDialog
|
import h_mal.appttude.com.driver.dialogs.DateDialog
|
||||||
import h_mal.appttude.com.model.DriversLicense
|
import h_mal.appttude.com.driver.model.DriversLicense
|
||||||
import h_mal.appttude.com.utils.isTrue
|
import h_mal.appttude.com.driver.utils.isTrue
|
||||||
import h_mal.appttude.com.utils.setGlideImage
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
import h_mal.appttude.com.viewmodels.DriverLicenseViewModel
|
import h_mal.appttude.com.driver.viewmodels.DriverLicenseViewModel
|
||||||
|
|
||||||
class DriverLicenseFragment :
|
class DriverLicenseFragment :
|
||||||
DataSubmissionBaseFragment<DriverLicenseViewModel, FragmentDriverLicenseBinding, DriversLicense>() {
|
DataSubmissionBaseFragment<DriverLicenseViewModel, FragmentDriverLicenseBinding, DriversLicense>() {
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui.driverprofile
|
package h_mal.appttude.com.driver.ui.driverprofile
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import h_mal.appttude.com.base.DataSubmissionBaseFragment
|
import h_mal.appttude.com.driver.databinding.FragmentDriverProfileBinding
|
||||||
import h_mal.appttude.com.databinding.FragmentDriverProfileBinding
|
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
|
||||||
import h_mal.appttude.com.dialogs.DateDialog
|
import h_mal.appttude.com.driver.dialogs.DateDialog
|
||||||
import h_mal.appttude.com.model.DriverProfile
|
import h_mal.appttude.com.driver.model.DriverProfile
|
||||||
import h_mal.appttude.com.utils.isTrue
|
import h_mal.appttude.com.driver.utils.isTrue
|
||||||
import h_mal.appttude.com.utils.setGlideImage
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
import h_mal.appttude.com.viewmodels.DriverProfileViewModel
|
import h_mal.appttude.com.driver.viewmodels.DriverProfileViewModel
|
||||||
|
|
||||||
|
|
||||||
class DriverProfileFragment :
|
class DriverProfileFragment :
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui.driverprofile
|
package h_mal.appttude.com.driver.ui.driverprofile
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import h_mal.appttude.com.base.DataSubmissionBaseFragment
|
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentPrivateHireLicenseBinding
|
import h_mal.appttude.com.driver.databinding.FragmentPrivateHireLicenseBinding
|
||||||
import h_mal.appttude.com.dialogs.DateDialog
|
import h_mal.appttude.com.driver.dialogs.DateDialog
|
||||||
import h_mal.appttude.com.model.PrivateHireLicense
|
import h_mal.appttude.com.driver.model.PrivateHireLicense
|
||||||
import h_mal.appttude.com.utils.isTrue
|
import h_mal.appttude.com.driver.utils.isTrue
|
||||||
import h_mal.appttude.com.utils.setGlideImage
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
import h_mal.appttude.com.viewmodels.PrivateHireLicenseViewModel
|
import h_mal.appttude.com.driver.viewmodels.PrivateHireLicenseViewModel
|
||||||
|
|
||||||
|
|
||||||
class PrivateHireLicenseFragment : DataSubmissionBaseFragment
|
class PrivateHireLicenseFragment : DataSubmissionBaseFragment
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
package h_mal.appttude.com.ui.vehicleprofile
|
package h_mal.appttude.com.driver.ui.vehicleprofile
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import h_mal.appttude.com.base.DataSubmissionBaseFragment
|
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentInsuranceBinding
|
import h_mal.appttude.com.driver.databinding.FragmentInsuranceBinding
|
||||||
import h_mal.appttude.com.dialogs.DateDialog
|
import h_mal.appttude.com.driver.dialogs.DateDialog
|
||||||
import h_mal.appttude.com.model.Insurance
|
import h_mal.appttude.com.driver.model.Insurance
|
||||||
import h_mal.appttude.com.utils.isTrue
|
import h_mal.appttude.com.driver.utils.isTrue
|
||||||
import h_mal.appttude.com.utils.setGlideImage
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
import h_mal.appttude.com.viewmodels.InsuranceViewModel
|
import h_mal.appttude.com.driver.viewmodels.InsuranceViewModel
|
||||||
|
|
||||||
|
|
||||||
class InsuranceFragment :
|
class InsuranceFragment :
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package h_mal.appttude.com.ui.vehicleprofile
|
package h_mal.appttude.com.driver.ui.vehicleprofile
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import h_mal.appttude.com.base.DataSubmissionBaseFragment
|
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentLogbookBinding
|
import h_mal.appttude.com.driver.databinding.FragmentLogbookBinding
|
||||||
import h_mal.appttude.com.model.Logbook
|
import h_mal.appttude.com.driver.model.Logbook
|
||||||
import h_mal.appttude.com.utils.isTrue
|
import h_mal.appttude.com.driver.utils.isTrue
|
||||||
import h_mal.appttude.com.utils.setGlideImage
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
import h_mal.appttude.com.viewmodels.LogbookViewModel
|
import h_mal.appttude.com.driver.viewmodels.LogbookViewModel
|
||||||
|
|
||||||
|
|
||||||
class LogbookFragment :
|
class LogbookFragment :
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui.vehicleprofile
|
package h_mal.appttude.com.driver.ui.vehicleprofile
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import h_mal.appttude.com.base.DataSubmissionBaseFragment
|
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentMotBinding
|
import h_mal.appttude.com.driver.databinding.FragmentMotBinding
|
||||||
import h_mal.appttude.com.dialogs.DateDialog
|
import h_mal.appttude.com.driver.dialogs.DateDialog
|
||||||
import h_mal.appttude.com.model.Mot
|
import h_mal.appttude.com.driver.model.Mot
|
||||||
import h_mal.appttude.com.utils.isTrue
|
import h_mal.appttude.com.driver.utils.isTrue
|
||||||
import h_mal.appttude.com.utils.setGlideImage
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
import h_mal.appttude.com.viewmodels.MotViewModel
|
import h_mal.appttude.com.driver.viewmodels.MotViewModel
|
||||||
|
|
||||||
|
|
||||||
class MotFragment : DataSubmissionBaseFragment<MotViewModel, FragmentMotBinding, Mot>() {
|
class MotFragment : DataSubmissionBaseFragment<MotViewModel, FragmentMotBinding, Mot>() {
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui.vehicleprofile
|
package h_mal.appttude.com.driver.ui.vehicleprofile
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import h_mal.appttude.com.base.DataSubmissionBaseFragment
|
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentPrivateHireLicenseBinding
|
import h_mal.appttude.com.driver.databinding.FragmentPrivateHireLicenseBinding
|
||||||
import h_mal.appttude.com.dialogs.DateDialog
|
import h_mal.appttude.com.driver.dialogs.DateDialog
|
||||||
import h_mal.appttude.com.model.PrivateHireVehicle
|
import h_mal.appttude.com.driver.model.PrivateHireVehicle
|
||||||
import h_mal.appttude.com.utils.isTrue
|
import h_mal.appttude.com.driver.utils.isTrue
|
||||||
import h_mal.appttude.com.utils.setGlideImage
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
import h_mal.appttude.com.viewmodels.PrivateHireVehicleViewModel
|
import h_mal.appttude.com.driver.viewmodels.PrivateHireVehicleViewModel
|
||||||
|
|
||||||
|
|
||||||
class PrivateHireVehicleFragment :
|
class PrivateHireVehicleFragment :
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package h_mal.appttude.com.ui.vehicleprofile
|
package h_mal.appttude.com.driver.ui.vehicleprofile
|
||||||
|
|
||||||
import h_mal.appttude.com.base.DataSubmissionBaseFragment
|
import h_mal.appttude.com.driver.base.DataSubmissionBaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentVehicleSetupBinding
|
import h_mal.appttude.com.driver.databinding.FragmentVehicleSetupBinding
|
||||||
import h_mal.appttude.com.dialogs.DateDialog
|
import h_mal.appttude.com.driver.dialogs.DateDialog
|
||||||
import h_mal.appttude.com.model.VehicleProfile
|
import h_mal.appttude.com.driver.model.VehicleProfile
|
||||||
import h_mal.appttude.com.utils.isTrue
|
import h_mal.appttude.com.driver.utils.isTrue
|
||||||
import h_mal.appttude.com.viewmodels.VehicleProfileViewModel
|
import h_mal.appttude.com.driver.viewmodels.VehicleProfileViewModel
|
||||||
|
|
||||||
|
|
||||||
class VehicleProfileFragment : DataSubmissionBaseFragment
|
class VehicleProfileFragment : DataSubmissionBaseFragment
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/homeDriverFragment"
|
android:id="@+id/homeDriverFragment"
|
||||||
android:name="h_mal.appttude.com.ui.HomeFragment"
|
android:name="h_mal.appttude.com.driver.ui.HomeFragment"
|
||||||
android:label="fragment_home"
|
android:label="fragment_home"
|
||||||
tools:layout="@layout/fragment_home_driver">
|
tools:layout="@layout/fragment_home_driver">
|
||||||
<action
|
<action
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/driverOverallFragment"
|
android:id="@+id/driverOverallFragment"
|
||||||
android:name="h_mal.appttude.com.ui.DriverOverallFragment"
|
android:name="h_mal.appttude.com.driver.ui.DriverOverallFragment"
|
||||||
android:label="DriverOverallFragment"
|
android:label="DriverOverallFragment"
|
||||||
tools:layout="@layout/fragment_driver_overall">
|
tools:layout="@layout/fragment_driver_overall">
|
||||||
<action
|
<action
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/vehicleOverallFragment"
|
android:id="@+id/vehicleOverallFragment"
|
||||||
android:name="h_mal.appttude.com.ui.VehicleOverallFragment"
|
android:name="h_mal.appttude.com.driver.ui.VehicleOverallFragment"
|
||||||
android:label="VehicleOverallFragment"
|
android:label="VehicleOverallFragment"
|
||||||
tools:layout="@layout/fragment_vehicle_overall">
|
tools:layout="@layout/fragment_vehicle_overall">
|
||||||
<action
|
<action
|
||||||
@@ -96,49 +96,49 @@
|
|||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/driverProfileFragment"
|
android:id="@+id/driverProfileFragment"
|
||||||
android:name="h_mal.appttude.com.ui.driverprofile.DriverProfileFragment"
|
android:name="h_mal.appttude.com.driver.ui.driverprofile.DriverProfileFragment"
|
||||||
android:label="fragment_driver_profile"
|
android:label="fragment_driver_profile"
|
||||||
tools:layout="@layout/fragment_driver_profile" />
|
tools:layout="@layout/fragment_driver_profile" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/driverLicenseFragment"
|
android:id="@+id/driverLicenseFragment"
|
||||||
android:name="h_mal.appttude.com.ui.driverprofile.DriverLicenseFragment"
|
android:name="h_mal.appttude.com.driver.ui.driverprofile.DriverLicenseFragment"
|
||||||
android:label="fragment_driver_license"
|
android:label="fragment_driver_license"
|
||||||
tools:layout="@layout/fragment_driver_license" />
|
tools:layout="@layout/fragment_driver_license" />
|
||||||
|
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/vehicleSetupFragment"
|
android:id="@+id/vehicleSetupFragment"
|
||||||
android:name="h_mal.appttude.com.ui.vehicleprofile.VehicleProfileFragment"
|
android:name="h_mal.appttude.com.driver.ui.vehicleprofile.VehicleProfileFragment"
|
||||||
android:label="VehicleSetupFragment"
|
android:label="VehicleSetupFragment"
|
||||||
tools:layout="@layout/fragment_vehicle_setup" />
|
tools:layout="@layout/fragment_vehicle_setup" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/insuranceFragment"
|
android:id="@+id/insuranceFragment"
|
||||||
android:name="h_mal.appttude.com.ui.vehicleprofile.InsuranceFragment"
|
android:name="h_mal.appttude.com.driver.ui.vehicleprofile.InsuranceFragment"
|
||||||
android:label="InsuranceFragment"
|
android:label="InsuranceFragment"
|
||||||
tools:layout="@layout/fragment_insurance" />
|
tools:layout="@layout/fragment_insurance" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/motFragment"
|
android:id="@+id/motFragment"
|
||||||
android:name="h_mal.appttude.com.ui.vehicleprofile.MotFragment"
|
android:name="h_mal.appttude.com.driver.ui.vehicleprofile.MotFragment"
|
||||||
android:label="MotFragment"
|
android:label="MotFragment"
|
||||||
tools:layout="@layout/fragment_mot" />
|
tools:layout="@layout/fragment_mot" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/logbookFragment"
|
android:id="@+id/logbookFragment"
|
||||||
android:name="h_mal.appttude.com.ui.vehicleprofile.LogbookFragment"
|
android:name="h_mal.appttude.com.driver.ui.vehicleprofile.LogbookFragment"
|
||||||
android:label="fragment_logbook"
|
android:label="fragment_logbook"
|
||||||
tools:layout="@layout/fragment_logbook" />
|
tools:layout="@layout/fragment_logbook" />
|
||||||
<activity
|
<activity
|
||||||
android:id="@+id/nav_user_settings"
|
android:id="@+id/nav_user_settings"
|
||||||
android:name="h_mal.appttude.com.ui.update.UpdateActivity"
|
android:name="h_mal.appttude.com.driver.ui.update.UpdateActivity"
|
||||||
android:label="fragment_profile"
|
android:label="fragment_profile"
|
||||||
tools:layout="@layout/update_activity" />
|
tools:layout="@layout/update_activity" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/privateHireLicenseFragment2"
|
android:id="@+id/privateHireLicenseFragment2"
|
||||||
android:name="h_mal.appttude.com.ui.driverprofile.PrivateHireLicenseFragment"
|
android:name="h_mal.appttude.com.driver.ui.driverprofile.PrivateHireLicenseFragment"
|
||||||
android:label="fragment_private_hire_license"
|
android:label="fragment_private_hire_license"
|
||||||
tools:layout="@layout/fragment_private_hire_license" />
|
tools:layout="@layout/fragment_private_hire_license" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/privateHireVehicleFragment"
|
android:id="@+id/privateHireVehicleFragment"
|
||||||
android:name="h_mal.appttude.com.ui.vehicleprofile.PrivateHireVehicleFragment"
|
android:name="h_mal.appttude.com.driver.ui.vehicleprofile.PrivateHireVehicleFragment"
|
||||||
android:label="fragment_private_hire_vehicle"
|
android:label="fragment_private_hire_vehicle"
|
||||||
tools:layout="@layout/fragment_private_hire_vehicle" />
|
tools:layout="@layout/fragment_private_hire_vehicle" />
|
||||||
</navigation>
|
</navigation>
|
||||||
@@ -1,18 +1,47 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="h_mal.appttude.com">
|
package="h_mal.appttude.com.driver">
|
||||||
<!-- To auto-complete the email text field in the login form with the user's emails -->
|
<!-- To auto-complete the email text field in the login form with the user's emails -->
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name="h_mal.appttude.com.application.DriverApplication"
|
android:name="h_mal.appttude.com.driver.application.DriverApplication"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/AppTheme">
|
android:theme="@style/AppTheme">
|
||||||
|
<activity
|
||||||
|
android:name="h_mal.appttude.com.driver.ui.user.LoginActivity"
|
||||||
|
android:label="@string/app_name"
|
||||||
|
android:theme="@style/AppTheme.NoActionBar.User"
|
||||||
|
android:exported="true">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
<activity
|
||||||
|
android:name="h_mal.appttude.com.driver.ui.MainActivity"
|
||||||
|
android:configChanges="orientation|screenSize"
|
||||||
|
android:label="@string/app_name"
|
||||||
|
android:theme="@style/AppTheme.NoActionBar" />
|
||||||
|
<activity
|
||||||
|
android:name="h_mal.appttude.com.driver.ui.update.UpdateActivity"
|
||||||
|
android:theme="@style/AppTheme.NoActionBar.Update" />
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:name="androidx.core.content.FileProvider"
|
||||||
|
android:authorities="h_mal.appttude.com.driver"
|
||||||
|
android:exported="false"
|
||||||
|
android:grantUriPermissions="true">
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
|
android:resource="@xml/file_paths" />
|
||||||
|
</provider>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package h_mal.appttude.com.data
|
|
||||||
|
|
||||||
const val DRIVER = "driver"
|
|
||||||
const val ADMIN = "super_user"
|
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package h_mal.appttude.com.application
|
package h_mal.appttude.com.driver.application
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import h_mal.appttude.com.data.FirebaseAuthSource
|
import h_mal.appttude.com.driver.data.FirebaseAuthSource
|
||||||
import h_mal.appttude.com.data.FirebaseDatabaseSource
|
import h_mal.appttude.com.driver.data.FirebaseDatabaseSource
|
||||||
import h_mal.appttude.com.data.FirebaseStorageSource
|
import h_mal.appttude.com.driver.data.FirebaseStorageSource
|
||||||
import h_mal.appttude.com.viewmodels.*
|
import h_mal.appttude.com.driver.viewmodels.*
|
||||||
|
|
||||||
class ApplicationViewModelFactory(
|
class ApplicationViewModelFactory(
|
||||||
private val auth: FirebaseAuthSource,
|
private val auth: FirebaseAuthSource,
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package h_mal.appttude.com.application
|
package h_mal.appttude.com.driver.application
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import h_mal.appttude.com.data.FirebaseAuthSource
|
import h_mal.appttude.com.driver.data.FirebaseAuthSource
|
||||||
import h_mal.appttude.com.data.FirebaseDatabaseSource
|
import h_mal.appttude.com.driver.data.FirebaseDatabaseSource
|
||||||
import h_mal.appttude.com.data.FirebaseStorageSource
|
import h_mal.appttude.com.driver.data.FirebaseStorageSource
|
||||||
import org.kodein.di.Kodein
|
import org.kodein.di.Kodein
|
||||||
import org.kodein.di.KodeinAware
|
import org.kodein.di.KodeinAware
|
||||||
import org.kodein.di.android.x.androidXModule
|
import org.kodein.di.android.x.androidXModule
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.Archive
|
package h_mal.appttude.com.driver.archive
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
@@ -7,7 +7,7 @@ import android.view.ViewGroup
|
|||||||
import android.widget.ListView
|
import android.widget.ListView
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.google.firebase.database.DatabaseReference
|
import com.google.firebase.database.DatabaseReference
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
|
|
||||||
class ArchiveFragment : Fragment() {
|
class ArchiveFragment : Fragment() {
|
||||||
// var archive: ArchiveObject? = null
|
// var archive: ArchiveObject? = null
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
package h_mal.appttude.com.Archive
|
package h_mal.appttude.com.driver.archive
|
||||||
|
|
||||||
//import h_mal.appttude.com.Global.FirebaseClass
|
//import h_mal.appttude.com.driver.Global.FirebaseClass
|
||||||
//import h_mal.appttude.com.Global.ImageSwiperClass
|
//import h_mal.appttude.com.driver.Global.ImageSwiperClass
|
||||||
//import h_mal.appttude.com.Objects.ArchiveObject
|
//import h_mal.appttude.com.driver.Objects.ArchiveObject
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.BaseAdapter
|
import android.widget.BaseAdapter
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import h_mal.appttude.com.utils.DateUtils.convertDateStringDatePattern
|
import h_mal.appttude.com.driver.utils.DateUtils.convertDateStringDatePattern
|
||||||
import java.text.ParseException
|
import java.text.ParseException
|
||||||
|
|
||||||
class ArchiveObjectListAdapter(
|
class ArchiveObjectListAdapter(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.base
|
package h_mal.appttude.com.driver.base
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@@ -12,10 +12,10 @@ import androidx.appcompat.app.AppCompatActivity
|
|||||||
import androidx.lifecycle.ViewModelLazy
|
import androidx.lifecycle.ViewModelLazy
|
||||||
import androidx.test.espresso.IdlingResource
|
import androidx.test.espresso.IdlingResource
|
||||||
import androidx.viewbinding.ViewBinding
|
import androidx.viewbinding.ViewBinding
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.application.ApplicationViewModelFactory
|
import h_mal.appttude.com.driver.application.ApplicationViewModelFactory
|
||||||
import h_mal.appttude.com.data.ViewState
|
import h_mal.appttude.com.driver.data.ViewState
|
||||||
import h_mal.appttude.com.utils.*
|
import h_mal.appttude.com.driver.utils.*
|
||||||
import org.kodein.di.KodeinAware
|
import org.kodein.di.KodeinAware
|
||||||
import org.kodein.di.android.kodein
|
import org.kodein.di.android.kodein
|
||||||
import org.kodein.di.generic.instance
|
import org.kodein.di.generic.instance
|
||||||
@@ -29,16 +29,18 @@ abstract class BaseActivity<V : BaseViewModel, VB : ViewBinding> : AppCompatActi
|
|||||||
private lateinit var loadingView: View
|
private lateinit var loadingView: View
|
||||||
|
|
||||||
private var _binding: VB? = null
|
private var _binding: VB? = null
|
||||||
private val binding: VB
|
val binding: VB
|
||||||
get() = _binding ?: error("Must only access binding while fragment is attached.")
|
get() = _binding ?: error("Must only access binding while fragment is attached.")
|
||||||
|
|
||||||
|
|
||||||
val viewModel: V by createLazyViewModel()
|
val viewModel: V by createLazyViewModel()
|
||||||
|
|
||||||
override val kodein by kodein()
|
override val kodein by kodein()
|
||||||
val factory by instance<ApplicationViewModelFactory>()
|
private val factory by instance<ApplicationViewModelFactory>()
|
||||||
|
|
||||||
fun createLazyViewModel(): Lazy<V> = ViewModelLazy(
|
/**
|
||||||
|
* Create a lazy viewmodel based on the generic view model [V].
|
||||||
|
*/
|
||||||
|
private fun createLazyViewModel(): Lazy<V> = ViewModelLazy(
|
||||||
getGenericClassAt(0),
|
getGenericClassAt(0),
|
||||||
{ viewModelStore },
|
{ viewModelStore },
|
||||||
{ factory },
|
{ factory },
|
||||||
@@ -52,7 +54,10 @@ abstract class BaseActivity<V : BaseViewModel, VB : ViewBinding> : AppCompatActi
|
|||||||
?.kotlin
|
?.kotlin
|
||||||
?: throw IllegalStateException("Can not find class from generic argument")
|
?: throw IllegalStateException("Can not find class from generic argument")
|
||||||
|
|
||||||
fun inflateBindingByType(
|
/**
|
||||||
|
* Create a view binding out of the the generic [VB]
|
||||||
|
*/
|
||||||
|
private fun inflateBindingByType(
|
||||||
genericClassAt: KClass<VB>
|
genericClassAt: KClass<VB>
|
||||||
): VB = try {
|
): VB = try {
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
@@ -74,8 +79,14 @@ abstract class BaseActivity<V : BaseViewModel, VB : ViewBinding> : AppCompatActi
|
|||||||
setupView(binding)
|
setupView(binding)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
open fun setupView(binding: VB) {}
|
open fun setupView(binding: VB) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extension function which can be used in our child class for binding.
|
||||||
|
*
|
||||||
|
* @sample applyBinding { textView.text = "Hello" }
|
||||||
|
*/
|
||||||
fun applyBinding(block: VB.() -> Unit) {
|
fun applyBinding(block: VB.() -> Unit) {
|
||||||
block(binding)
|
block(binding)
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.base
|
package h_mal.appttude.com.driver.base
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.ClipData
|
import android.content.ClipData
|
||||||
@@ -11,9 +11,9 @@ import android.view.ViewGroup
|
|||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.createViewModelLazy
|
import androidx.fragment.app.createViewModelLazy
|
||||||
import androidx.viewbinding.ViewBinding
|
import androidx.viewbinding.ViewBinding
|
||||||
import h_mal.appttude.com.application.ApplicationViewModelFactory
|
import h_mal.appttude.com.driver.application.ApplicationViewModelFactory
|
||||||
import h_mal.appttude.com.data.ViewState
|
import h_mal.appttude.com.driver.data.ViewState
|
||||||
import h_mal.appttude.com.utils.PermissionsUtils
|
import h_mal.appttude.com.driver.utils.PermissionsUtils
|
||||||
import org.kodein.di.KodeinAware
|
import org.kodein.di.KodeinAware
|
||||||
import org.kodein.di.android.x.kodein
|
import org.kodein.di.android.x.kodein
|
||||||
import org.kodein.di.generic.instance
|
import org.kodein.di.generic.instance
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package h_mal.appttude.com.base
|
package h_mal.appttude.com.driver.base
|
||||||
|
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import h_mal.appttude.com.data.ViewState
|
import h_mal.appttude.com.driver.data.ViewState
|
||||||
import h_mal.appttude.com.utils.Event
|
import h_mal.appttude.com.driver.utils.Event
|
||||||
|
|
||||||
abstract class BaseViewModel : ViewModel() {
|
abstract class BaseViewModel : ViewModel() {
|
||||||
open val uiState: MutableLiveData<ViewState> = MutableLiveData()
|
open val uiState: MutableLiveData<ViewState> = MutableLiveData()
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.base
|
package h_mal.appttude.com.driver.base
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -8,10 +8,10 @@ import android.view.View
|
|||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
import androidx.core.widget.doAfterTextChanged
|
import androidx.core.widget.doAfterTextChanged
|
||||||
import androidx.viewbinding.ViewBinding
|
import androidx.viewbinding.ViewBinding
|
||||||
import h_mal.appttude.com.data.UserAuthState
|
import h_mal.appttude.com.driver.data.UserAuthState
|
||||||
import h_mal.appttude.com.ui.user.LoginActivity
|
import h_mal.appttude.com.driver.ui.user.LoginActivity
|
||||||
import h_mal.appttude.com.utils.PermissionsUtils.askForPermissions
|
import h_mal.appttude.com.driver.utils.PermissionsUtils.askForPermissions
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validateEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validateEditText
|
||||||
|
|
||||||
private const val IMAGE_PERMISSION_RESULT = 402
|
private const val IMAGE_PERMISSION_RESULT = 402
|
||||||
|
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
package h_mal.appttude.com.base
|
package h_mal.appttude.com.driver.base
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import com.google.firebase.database.DatabaseReference
|
import com.google.firebase.database.DatabaseReference
|
||||||
import com.google.firebase.storage.StorageReference
|
import com.google.firebase.storage.StorageReference
|
||||||
import h_mal.appttude.com.data.FirebaseAuthentication
|
import h_mal.appttude.com.driver.data.FirebaseAuthentication
|
||||||
import h_mal.appttude.com.data.FirebaseCompletion
|
import h_mal.appttude.com.driver.data.FirebaseCompletion
|
||||||
import h_mal.appttude.com.data.FirebaseDatabaseSource
|
import h_mal.appttude.com.driver.data.FirebaseDatabaseSource
|
||||||
import h_mal.appttude.com.data.FirebaseStorageSource
|
import h_mal.appttude.com.driver.data.FirebaseStorageSource
|
||||||
import h_mal.appttude.com.utils.Coroutines.io
|
import h_mal.appttude.com.driver.utils.Coroutines.io
|
||||||
import h_mal.appttude.com.utils.DateUtils.getDateTimeStamp
|
import h_mal.appttude.com.driver.utils.DateUtils.getDateTimeStamp
|
||||||
import h_mal.appttude.com.utils.getDataFromDatabaseRef
|
import h_mal.appttude.com.driver.utils.getDataFromDatabaseRef
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.async
|
import kotlinx.coroutines.async
|
||||||
import kotlinx.coroutines.coroutineScope
|
import kotlinx.coroutines.coroutineScope
|
||||||
@@ -1,43 +1,54 @@
|
|||||||
package h_mal.appttude.com.ui
|
package h_mal.appttude.com.driver.base
|
||||||
|
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
|
import androidx.appcompat.widget.Toolbar
|
||||||
import androidx.core.view.GravityCompat
|
import androidx.core.view.GravityCompat
|
||||||
|
import androidx.drawerlayout.widget.DrawerLayout
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import androidx.navigation.ui.AppBarConfiguration
|
import androidx.navigation.ui.AppBarConfiguration
|
||||||
import androidx.navigation.ui.navigateUp
|
import androidx.navigation.ui.navigateUp
|
||||||
import androidx.navigation.ui.setupActionBarWithNavController
|
import androidx.navigation.ui.setupActionBarWithNavController
|
||||||
import androidx.navigation.ui.setupWithNavController
|
import androidx.navigation.ui.setupWithNavController
|
||||||
|
import androidx.viewbinding.ViewBinding
|
||||||
import com.google.android.material.navigation.NavigationView
|
import com.google.android.material.navigation.NavigationView
|
||||||
import com.google.firebase.auth.FirebaseUser
|
import com.google.firebase.auth.FirebaseUser
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.databinding.NavHeaderMainBinding
|
||||||
import h_mal.appttude.com.base.BaseActivity
|
import h_mal.appttude.com.driver.dialogs.ExitDialog.displayExitDialog
|
||||||
import h_mal.appttude.com.databinding.ActivityMainBinding
|
import h_mal.appttude.com.driver.utils.isTrue
|
||||||
import h_mal.appttude.com.databinding.NavHeaderMainBinding
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
import h_mal.appttude.com.dialogs.ExitDialog.displayExitDialog
|
|
||||||
import h_mal.appttude.com.utils.isTrue
|
|
||||||
import h_mal.appttude.com.utils.setGlideImage
|
|
||||||
import h_mal.appttude.com.viewmodels.MainViewModel
|
|
||||||
|
|
||||||
|
abstract class DrawerActivity<V : BaseViewModel, VB : ViewBinding> : BaseActivity<V, VB>(),
|
||||||
class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),
|
|
||||||
NavigationView.OnNavigationItemSelectedListener {
|
NavigationView.OnNavigationItemSelectedListener {
|
||||||
|
|
||||||
|
abstract val containerId: Int
|
||||||
|
abstract val drawerLayoutId: Int
|
||||||
|
abstract val toolbarId: Int
|
||||||
|
abstract val navViewId:Int
|
||||||
|
|
||||||
lateinit var navController: NavController
|
lateinit var navController: NavController
|
||||||
lateinit var appBarConfiguration: AppBarConfiguration
|
lateinit var appBarConfiguration: AppBarConfiguration
|
||||||
|
|
||||||
override fun setupView(binding: ActivityMainBinding) = binding.run {
|
lateinit var toolbar: Toolbar
|
||||||
setSupportActionBar(appBarLayout.toolbar)
|
lateinit var drawerLayout: DrawerLayout
|
||||||
|
lateinit var navView: NavigationView
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
toolbar = findViewById(toolbarId)
|
||||||
|
drawerLayout = findViewById(drawerLayoutId)
|
||||||
|
navView = findViewById(navViewId)
|
||||||
|
|
||||||
|
setSupportActionBar(toolbar)
|
||||||
supportActionBar?.setDisplayShowTitleEnabled(false)
|
supportActionBar?.setDisplayShowTitleEnabled(false)
|
||||||
navController = findNavController(R.id.container)
|
navController = findNavController(containerId)
|
||||||
|
|
||||||
appBarConfiguration = AppBarConfiguration(navController.graph, drawerLayout)
|
appBarConfiguration = AppBarConfiguration(navController.graph, drawerLayout)
|
||||||
navView.setupWithNavController(navController)
|
navView.setupWithNavController(navController)
|
||||||
setupActionBarWithNavController(navController, appBarConfiguration)
|
setupActionBarWithNavController(navController, appBarConfiguration)
|
||||||
|
|
||||||
viewModel.getUserDetails()
|
|
||||||
setupLogoutInDrawer()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSupportNavigateUp(): Boolean {
|
override fun onSupportNavigateUp(): Boolean {
|
||||||
@@ -45,10 +56,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun setTitle(title: CharSequence) {
|
override fun setTitle(title: CharSequence) {
|
||||||
applyBinding {
|
toolbar.title = title
|
||||||
appBarLayout.toolbar.title = title
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
@@ -56,9 +64,9 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),
|
|||||||
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
|
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
|
||||||
drawerLayout.closeDrawer(GravityCompat.START)
|
drawerLayout.closeDrawer(GravityCompat.START)
|
||||||
} else {
|
} else {
|
||||||
val navHostFragment = supportFragmentManager.findFragmentById(R.id.container)
|
navController.backQueue.size.let { it >= 1 }.isTrue {
|
||||||
navHostFragment?.childFragmentManager?.backStackEntryCount?.let { it >= 1 }?.isTrue {
|
|
||||||
super.onBackPressed()
|
super.onBackPressed()
|
||||||
|
return@applyBinding
|
||||||
}
|
}
|
||||||
displayExitDialog()
|
displayExitDialog()
|
||||||
}
|
}
|
||||||
@@ -84,23 +92,8 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupLogoutInDrawer() {
|
|
||||||
applyBinding {
|
|
||||||
logout.setOnClickListener {
|
|
||||||
viewModel.logOut()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onNavigationItemSelected(item: MenuItem): Boolean {
|
override fun onNavigationItemSelected(item: MenuItem): Boolean {
|
||||||
// Handle navigation view item clicks here.
|
drawerLayout.closeDrawer(GravityCompat.START)
|
||||||
when (item.itemId) {
|
|
||||||
R.id.nav_user_settings -> {}
|
|
||||||
}
|
|
||||||
applyBinding {
|
|
||||||
drawerLayout.closeDrawer(GravityCompat.START)
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.data
|
package h_mal.appttude.com.driver.data
|
||||||
|
|
||||||
import com.google.firebase.database.DataSnapshot
|
import com.google.firebase.database.DataSnapshot
|
||||||
import com.google.firebase.database.DatabaseError
|
import com.google.firebase.database.DatabaseError
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.data
|
package h_mal.appttude.com.driver.data
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import com.google.android.gms.tasks.Task
|
import com.google.android.gms.tasks.Task
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.data
|
package h_mal.appttude.com.driver.data
|
||||||
|
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import com.google.firebase.auth.FirebaseAuth
|
import com.google.firebase.auth.FirebaseAuth
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.data
|
package h_mal.appttude.com.driver.data
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import com.google.android.gms.tasks.Task
|
import com.google.android.gms.tasks.Task
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.data
|
package h_mal.appttude.com.driver.data
|
||||||
|
|
||||||
sealed class FirebaseCompletion {
|
sealed class FirebaseCompletion {
|
||||||
object Default : FirebaseCompletion()
|
object Default : FirebaseCompletion()
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.data
|
package h_mal.appttude.com.driver.data
|
||||||
|
|
||||||
import com.google.firebase.database.DatabaseReference
|
import com.google.firebase.database.DatabaseReference
|
||||||
import com.google.firebase.database.FirebaseDatabase
|
import com.google.firebase.database.FirebaseDatabase
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.data
|
package h_mal.appttude.com.driver.data
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import com.google.firebase.storage.FirebaseStorage
|
import com.google.firebase.storage.FirebaseStorage
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package h_mal.appttude.com.driver.data
|
||||||
|
|
||||||
|
const val DRIVER = "driver"
|
||||||
|
const val ADMIN = "super_user"
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.data
|
package h_mal.appttude.com.driver.data
|
||||||
|
|
||||||
import com.google.firebase.auth.FirebaseUser
|
import com.google.firebase.auth.FirebaseUser
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package h_mal.appttude.com.data
|
package h_mal.appttude.com.driver.data
|
||||||
|
|
||||||
import h_mal.appttude.com.utils.Event
|
import h_mal.appttude.com.driver.utils.Event
|
||||||
|
|
||||||
|
|
||||||
sealed class ViewState {
|
sealed class ViewState {
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package h_mal.appttude.com.dialogs
|
package h_mal.appttude.com.driver.dialogs
|
||||||
|
|
||||||
|
|
||||||
import android.app.DatePickerDialog
|
import android.app.DatePickerDialog
|
||||||
import android.app.DatePickerDialog.OnDateSetListener
|
import android.app.DatePickerDialog.OnDateSetListener
|
||||||
import android.icu.util.Calendar
|
import android.icu.util.Calendar
|
||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.utils.DateUtils
|
import h_mal.appttude.com.driver.utils.DateUtils
|
||||||
|
|
||||||
|
|
||||||
private const val DATE_FORMAT = "dd/MM/yyyy"
|
private const val DATE_FORMAT = "dd/MM/yyyy"
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package h_mal.appttude.com.dialogs
|
package h_mal.appttude.com.driver.dialogs
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.app.AlertDialog
|
import android.app.AlertDialog
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import kotlin.system.exitProcess
|
import kotlin.system.exitProcess
|
||||||
|
|
||||||
object ExitDialog {
|
object ExitDialog {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.model
|
package h_mal.appttude.com.driver.model
|
||||||
|
|
||||||
data class DriverProfile(
|
data class DriverProfile(
|
||||||
var driverPic: String? = null,
|
var driverPic: String? = null,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.model
|
package h_mal.appttude.com.driver.model
|
||||||
|
|
||||||
|
|
||||||
data class DriversLicense(
|
data class DriversLicense(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.model
|
package h_mal.appttude.com.driver.model
|
||||||
|
|
||||||
data class Insurance(
|
data class Insurance(
|
||||||
var photoStrings: MutableList<String?>? = null,
|
var photoStrings: MutableList<String?>? = null,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.model
|
package h_mal.appttude.com.driver.model
|
||||||
|
|
||||||
|
|
||||||
data class Logbook(
|
data class Logbook(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.model
|
package h_mal.appttude.com.driver.model
|
||||||
|
|
||||||
|
|
||||||
data class Mot(
|
data class Mot(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.model
|
package h_mal.appttude.com.driver.model
|
||||||
|
|
||||||
|
|
||||||
data class PrivateHireLicense(
|
data class PrivateHireLicense(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.model
|
package h_mal.appttude.com.driver.model
|
||||||
|
|
||||||
|
|
||||||
class PrivateHireVehicle(
|
class PrivateHireVehicle(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.model
|
package h_mal.appttude.com.driver.model
|
||||||
|
|
||||||
|
|
||||||
data class VehicleProfile(
|
data class VehicleProfile(
|
||||||
6
app/src/main/java/h_mal/appttude/com/driver/ui/.idea/dictionaries
generated
Normal file
6
app/src/main/java/h_mal/appttude/com/driver/ui/.idea/dictionaries
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectDictionaryState">
|
||||||
|
<dictionary name="h_mal" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
6
app/src/main/java/h_mal/appttude/com/driver/ui/.idea/kotlinc.xml
generated
Normal file
6
app/src/main/java/h_mal/appttude/com/driver/ui/.idea/kotlinc.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Kotlin2JsCompilerArguments">
|
||||||
|
<option name="sourceMapEmbedSources" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
11
app/src/main/java/h_mal/appttude/com/driver/ui/.idea/misc.xml
generated
Normal file
11
app/src/main/java/h_mal/appttude/com/driver/ui/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CMakeSettings">
|
||||||
|
<configurations>
|
||||||
|
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
|
||||||
|
</configurations>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
8
app/src/main/java/h_mal/appttude/com/driver/ui/.idea/modules.xml
generated
Normal file
8
app/src/main/java/h_mal/appttude/com/driver/ui/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/ui.iml" filepath="$PROJECT_DIR$/ui.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
6
app/src/main/java/h_mal/appttude/com/driver/ui/.idea/vcs.xml
generated
Normal file
6
app/src/main/java/h_mal/appttude/com/driver/ui/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$/../../../../../../../.." vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package h_mal.appttude.com.ui.update
|
package h_mal.appttude.com.driver.ui.update
|
||||||
|
|
||||||
import h_mal.appttude.com.base.BaseFragment
|
import h_mal.appttude.com.driver.base.BaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentDeleteProfileBinding
|
import h_mal.appttude.com.driver.databinding.FragmentDeleteProfileBinding
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validatePasswordEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validatePasswordEditText
|
||||||
import h_mal.appttude.com.utils.setEnterPressedListener
|
import h_mal.appttude.com.driver.utils.setEnterPressedListener
|
||||||
import h_mal.appttude.com.viewmodels.UpdateUserViewModel
|
import h_mal.appttude.com.driver.viewmodels.UpdateUserViewModel
|
||||||
|
|
||||||
|
|
||||||
class DeleteProfileFragment :
|
class DeleteProfileFragment :
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package h_mal.appttude.com.driver.ui.update
|
||||||
|
|
||||||
|
import h_mal.appttude.com.driver.base.BaseActivity
|
||||||
|
import h_mal.appttude.com.driver.data.FirebaseCompletion
|
||||||
|
import h_mal.appttude.com.driver.databinding.UpdateActivityBinding
|
||||||
|
import h_mal.appttude.com.driver.utils.displayToast
|
||||||
|
import h_mal.appttude.com.driver.viewmodels.UpdateUserViewModel
|
||||||
|
|
||||||
|
class UpdateActivity : BaseActivity<UpdateUserViewModel, UpdateActivityBinding>() {
|
||||||
|
|
||||||
|
override fun onSuccess(data: Any?) {
|
||||||
|
super.onSuccess(data)
|
||||||
|
when (data) {
|
||||||
|
is FirebaseCompletion.Changed -> displayToast(data.message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package h_mal.appttude.com.ui.update
|
package h_mal.appttude.com.driver.ui.update
|
||||||
|
|
||||||
import h_mal.appttude.com.base.BaseFragment
|
import h_mal.appttude.com.driver.base.BaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentUpdateEmailBinding
|
import h_mal.appttude.com.driver.databinding.FragmentUpdateEmailBinding
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validateEmailEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validateEmailEditText
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validatePasswordEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validatePasswordEditText
|
||||||
import h_mal.appttude.com.utils.setEnterPressedListener
|
import h_mal.appttude.com.driver.utils.setEnterPressedListener
|
||||||
import h_mal.appttude.com.viewmodels.UpdateUserViewModel
|
import h_mal.appttude.com.driver.viewmodels.UpdateUserViewModel
|
||||||
|
|
||||||
|
|
||||||
class UpdateEmailFragment : BaseFragment<UpdateUserViewModel, FragmentUpdateEmailBinding>() {
|
class UpdateEmailFragment : BaseFragment<UpdateUserViewModel, FragmentUpdateEmailBinding>() {
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package h_mal.appttude.com.ui.update
|
package h_mal.appttude.com.driver.ui.update
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.base.BaseFragment
|
import h_mal.appttude.com.driver.base.BaseFragment
|
||||||
import h_mal.appttude.com.databinding.UpdateOverviewFragmentBinding
|
import h_mal.appttude.com.driver.databinding.UpdateOverviewFragmentBinding
|
||||||
import h_mal.appttude.com.utils.navigateTo
|
import h_mal.appttude.com.driver.utils.navigateTo
|
||||||
import h_mal.appttude.com.viewmodels.UpdateUserViewModel
|
import h_mal.appttude.com.driver.viewmodels.UpdateUserViewModel
|
||||||
|
|
||||||
class UpdateOverviewFragment : BaseFragment<UpdateUserViewModel, UpdateOverviewFragmentBinding>(),
|
class UpdateOverviewFragment : BaseFragment<UpdateUserViewModel, UpdateOverviewFragmentBinding>(),
|
||||||
View.OnClickListener {
|
View.OnClickListener {
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package h_mal.appttude.com.ui.update
|
package h_mal.appttude.com.driver.ui.update
|
||||||
|
|
||||||
import h_mal.appttude.com.base.BaseFragment
|
import h_mal.appttude.com.driver.base.BaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentUpdatePasswordBinding
|
import h_mal.appttude.com.driver.databinding.FragmentUpdatePasswordBinding
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validateEmailEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validateEmailEditText
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validatePasswordEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validatePasswordEditText
|
||||||
import h_mal.appttude.com.utils.setEnterPressedListener
|
import h_mal.appttude.com.driver.utils.setEnterPressedListener
|
||||||
import h_mal.appttude.com.viewmodels.UpdateUserViewModel
|
import h_mal.appttude.com.driver.viewmodels.UpdateUserViewModel
|
||||||
|
|
||||||
|
|
||||||
class UpdatePasswordFragment : BaseFragment<UpdateUserViewModel, FragmentUpdatePasswordBinding>() {
|
class UpdatePasswordFragment : BaseFragment<UpdateUserViewModel, FragmentUpdatePasswordBinding>() {
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
package h_mal.appttude.com.ui.update
|
package h_mal.appttude.com.driver.ui.update
|
||||||
|
|
||||||
import android.Manifest.permission.READ_EXTERNAL_STORAGE
|
import android.Manifest.permission.READ_EXTERNAL_STORAGE
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import androidx.core.widget.doAfterTextChanged
|
import androidx.core.widget.doAfterTextChanged
|
||||||
import com.google.firebase.auth.FirebaseUser
|
import com.google.firebase.auth.FirebaseUser
|
||||||
import h_mal.appttude.com.base.BaseFragment
|
import h_mal.appttude.com.driver.base.BaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentUpdateProfileBinding
|
import h_mal.appttude.com.driver.databinding.FragmentUpdateProfileBinding
|
||||||
import h_mal.appttude.com.utils.PermissionsUtils.askForPermissions
|
import h_mal.appttude.com.driver.utils.PermissionsUtils.askForPermissions
|
||||||
import h_mal.appttude.com.utils.setEnterPressedListener
|
import h_mal.appttude.com.driver.utils.setEnterPressedListener
|
||||||
import h_mal.appttude.com.utils.setGlideImage
|
import h_mal.appttude.com.driver.utils.setGlideImage
|
||||||
import h_mal.appttude.com.viewmodels.UpdateUserViewModel
|
import h_mal.appttude.com.driver.viewmodels.UpdateUserViewModel
|
||||||
|
|
||||||
const val TAG_CONST = "non-user"
|
const val TAG_CONST = "non-user"
|
||||||
private const val IMAGE_PERMISSION_RESULT = 402
|
private const val IMAGE_PERMISSION_RESULT = 402
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package h_mal.appttude.com.ui.user
|
package h_mal.appttude.com.driver.ui.user
|
||||||
|
|
||||||
import h_mal.appttude.com.base.BaseFragment
|
import h_mal.appttude.com.driver.base.BaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentForgotPasswordBinding
|
import h_mal.appttude.com.driver.databinding.FragmentForgotPasswordBinding
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validateEmailEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validateEmailEditText
|
||||||
import h_mal.appttude.com.viewmodels.UserViewModel
|
import h_mal.appttude.com.driver.viewmodels.UserViewModel
|
||||||
|
|
||||||
|
|
||||||
class ForgotPasswordFragment : BaseFragment<UserViewModel, FragmentForgotPasswordBinding>() {
|
class ForgotPasswordFragment : BaseFragment<UserViewModel, FragmentForgotPasswordBinding>() {
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui.user
|
package h_mal.appttude.com.driver.ui.user
|
||||||
|
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import com.google.firebase.auth.AuthResult
|
import com.google.firebase.auth.AuthResult
|
||||||
import com.google.firebase.auth.FirebaseUser
|
import com.google.firebase.auth.FirebaseUser
|
||||||
import h_mal.appttude.com.base.BaseActivity
|
import h_mal.appttude.com.driver.base.BaseActivity
|
||||||
import h_mal.appttude.com.databinding.ActivityLoginBinding
|
import h_mal.appttude.com.driver.databinding.ActivityLoginBinding
|
||||||
import h_mal.appttude.com.ui.MainActivity
|
import h_mal.appttude.com.driver.ui.MainActivity
|
||||||
import h_mal.appttude.com.viewmodels.UserViewModel
|
import h_mal.appttude.com.driver.viewmodels.UserViewModel
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui.user
|
package h_mal.appttude.com.driver.ui.user
|
||||||
|
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.base.BaseFragment
|
import h_mal.appttude.com.driver.base.BaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentLoginBinding
|
import h_mal.appttude.com.driver.databinding.FragmentLoginBinding
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validateEmailEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validateEmailEditText
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validatePasswordEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validatePasswordEditText
|
||||||
import h_mal.appttude.com.utils.navigateTo
|
import h_mal.appttude.com.driver.utils.navigateTo
|
||||||
import h_mal.appttude.com.utils.setEnterPressedListener
|
import h_mal.appttude.com.driver.utils.setEnterPressedListener
|
||||||
import h_mal.appttude.com.viewmodels.UserViewModel
|
import h_mal.appttude.com.driver.viewmodels.UserViewModel
|
||||||
|
|
||||||
class LoginFragment : BaseFragment<UserViewModel, FragmentLoginBinding>() {
|
class LoginFragment : BaseFragment<UserViewModel, FragmentLoginBinding>() {
|
||||||
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package h_mal.appttude.com.ui.user
|
package h_mal.appttude.com.driver.ui.user
|
||||||
|
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.base.BaseFragment
|
import h_mal.appttude.com.driver.base.BaseFragment
|
||||||
import h_mal.appttude.com.databinding.FragmentRegisterBinding
|
import h_mal.appttude.com.driver.databinding.FragmentRegisterBinding
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validateEmailEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validateEmailEditText
|
||||||
import h_mal.appttude.com.utils.TextValidationUtils.validatePasswordEditText
|
import h_mal.appttude.com.driver.utils.TextValidationUtils.validatePasswordEditText
|
||||||
import h_mal.appttude.com.utils.setEnterPressedListener
|
import h_mal.appttude.com.driver.utils.setEnterPressedListener
|
||||||
import h_mal.appttude.com.viewmodels.UserViewModel
|
import h_mal.appttude.com.driver.viewmodels.UserViewModel
|
||||||
|
|
||||||
class RegisterFragment :
|
class RegisterFragment :
|
||||||
BaseFragment<UserViewModel, FragmentRegisterBinding>() {
|
BaseFragment<UserViewModel, FragmentRegisterBinding>() {
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package h_mal.appttude.com.ui.user
|
package h_mal.appttude.com.driver.ui.user
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import h_mal.appttude.com.R
|
import h_mal.appttude.com.driver.R
|
||||||
import h_mal.appttude.com.base.BaseFragment
|
import h_mal.appttude.com.driver.base.BaseFragment
|
||||||
import h_mal.appttude.com.data.FirebaseCompletion
|
import h_mal.appttude.com.driver.data.FirebaseCompletion
|
||||||
import h_mal.appttude.com.databinding.SplashScreenBinding
|
import h_mal.appttude.com.driver.databinding.SplashScreenBinding
|
||||||
import h_mal.appttude.com.utils.navigateTo
|
import h_mal.appttude.com.driver.utils.navigateTo
|
||||||
import h_mal.appttude.com.viewmodels.UserViewModel
|
import h_mal.appttude.com.driver.viewmodels.UserViewModel
|
||||||
|
|
||||||
|
|
||||||
class SplashScreenFragment : BaseFragment<UserViewModel, SplashScreenBinding>() {
|
class SplashScreenFragment : BaseFragment<UserViewModel, SplashScreenBinding>() {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.utils
|
package h_mal.appttude.com.driver.utils
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package h_mal.appttude.com.utils
|
package h_mal.appttude.com.driver.utils
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.animation.Animation
|
import android.view.animation.Animation
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user