Migrated to kotlin on the app folder. Broken build

This commit is contained in:
2021-02-12 12:23:14 +00:00
parent 63513f5da8
commit 3ac640d5ca
81 changed files with 5239 additions and 6072 deletions

View File

@@ -1,29 +1,138 @@
<component name="ProjectCodeStyleConfiguration"> <component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173"> <code_scheme name="Project" version="173">
<Objective-C-extensions> <JetCodeStyleSettings>
<file> <option name="PACKAGES_TO_USE_STAR_IMPORTS">
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" /> <value>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" /> <package name="java.util" alias="false" withSubpackages="false" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" /> <package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" /> <package name="io.ktor" alias="false" withSubpackages="true" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" /> </value>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" /> </option>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" /> <option name="PACKAGES_IMPORT_LAYOUT">
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" /> <value>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" /> <package name="" alias="false" withSubpackages="true" />
</file> <package name="java" alias="false" withSubpackages="true" />
<class> <package name="javax" alias="false" withSubpackages="true" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" /> <package name="kotlin" alias="false" withSubpackages="true" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" /> <package name="" alias="true" withSubpackages="true" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" /> </value>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" /> </option>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" /> <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" /> </JetCodeStyleSettings>
</class> <codeStyleSettings language="XML">
<extensions> <indentOptions>
<pair source="cpp" header="h" fileNamingConvention="NONE" /> <option name="CONTINUATION_INDENT_SIZE" value="4" />
<pair source="c" header="h" fileNamingConvention="NONE" /> </indentOptions>
</extensions> <arrangement>
</Objective-C-extensions> <rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</codeStyleSettings>
</code_scheme> </code_scheme>
</component> </component>

5
.idea/codeStyles/codeStyleConfig.xml generated Normal file
View File

@@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

2
.idea/gradle.xml generated
View File

@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="DEFAULT_WRAPPED" /> <option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules"> <option name="modules">

50
.idea/jarRepositories.xml generated Normal file
View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven" />
<option name="name" value="maven" />
<option name="url" value="https://jitpack.io" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="MavenRepo" />
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="C:\Users\h_mal\AppData\Local\Android\Sdk\extras\android\m2repository" />
<option name="name" value="C:\Users\h_mal\AppData\Local\Android\Sdk\extras\android\m2repository" />
<option name="url" value="file:/$USER_HOME$/AppData/Local/Android/Sdk/extras/android/m2repository/" />
</remote-repository>
<remote-repository>
<option name="id" value="C:\Users\h_mal\AppData\Local\Android\Sdk\extras\google\m2repository" />
<option name="name" value="C:\Users\h_mal\AppData\Local\Android\Sdk\extras\google\m2repository" />
<option name="url" value="file:/$USER_HOME$/AppData/Local/Android/Sdk/extras/google/m2repository/" />
</remote-repository>
<remote-repository>
<option name="id" value="C:\Users\h_mal\AppData\Local\Android\Sdk\extras\m2repository" />
<option name="name" value="C:\Users\h_mal\AppData\Local\Android\Sdk\extras\m2repository" />
<option name="url" value="file:/$USER_HOME$/AppData/Local/Android/Sdk/extras/m2repository/" />
</remote-repository>
</component>
</project>

16
.idea/misc.xml generated
View File

@@ -5,7 +5,7 @@
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> <option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="myNullables"> <option name="myNullables">
<value> <value>
<list size="7"> <list size="12">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" /> <item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
@@ -13,23 +13,33 @@
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> <item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" /> <item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
<item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" /> <item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
<item index="7" class="java.lang.String" itemvalue="android.annotation.Nullable" />
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
<item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
<item index="11" class="java.lang.String" itemvalue="com.android.annotations.Nullable" />
</list> </list>
</value> </value>
</option> </option>
<option name="myNotNulls"> <option name="myNotNulls">
<value> <value>
<list size="6"> <list size="11">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" /> <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" /> <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" /> <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" /> <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
<item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" /> <item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" /> <item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
<item index="6" class="java.lang.String" itemvalue="android.annotation.NonNull" />
<item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
<item index="10" class="java.lang.String" itemvalue="com.android.annotations.NonNull" />
</list> </list>
</value> </value>
</option> </option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

View File

@@ -1,5 +1,17 @@
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'
// kotlin kapt
apply plugin: 'kotlin-kapt'
// Android navigation
apply plugin: 'androidx.navigation.safeargs'
repositories {
mavenCentral()
}
android { android {
compileSdkVersion 28 compileSdkVersion 28
@@ -7,9 +19,9 @@ android {
applicationId "h_mal.appttude.com.driver" applicationId "h_mal.appttude.com.driver"
minSdkVersion 24 minSdkVersion 24
targetSdkVersion 28 targetSdkVersion 28
versionCode 5 versionCode 6
versionName "1.5" versionName "1.6"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
} }
buildTypes { buildTypes {
release { release {
@@ -17,30 +29,39 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} }
} }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
} }
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.android.support:design:28.0.0' implementation 'com.google.android.material:material:1.0.0'
implementation 'com.android.support:cardview-v7:28.0.0' implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.android.support:support-v4:28.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.android.support:exifinterface:28.0.0' implementation 'androidx.exifinterface:exifinterface:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
// Google play services
implementation 'com.google.android.gms:play-services-auth:15.0.1' implementation 'com.google.android.gms:play-services-auth:15.0.1'
// Google firebase
implementation 'com.google.firebase:firebase-core:16.0.1' implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-auth:16.0.1' implementation 'com.google.firebase:firebase-auth:16.0.1'
implementation 'com.google.firebase:firebase-storage:16.0.1' implementation 'com.google.firebase:firebase-storage:16.0.1'
implementation 'com.google.firebase:firebase-database:16.0.1' implementation 'com.google.firebase:firebase-database:16.0.1'
// Photoviewer
implementation 'com.github.chrisbanes:PhotoView:2.1.0' implementation 'com.github.chrisbanes:PhotoView:2.1.0'
// Picasso photo loader
implementation 'com.squareup.picasso:picasso:2.71828' implementation 'com.squareup.picasso:picasso:2.71828'
// Gson
implementation 'com.google.code.gson:gson:2.3.1' implementation 'com.google.code.gson:gson:2.3.1'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
androidTestImplementation 'com.android.support.test:rules:1.0.2' androidTestImplementation 'androidx.test:rules:1.1.1'
}
apply plugin: 'com.google.gms.google-services'
repositories {
mavenCentral()
} }

View File

@@ -3,14 +3,11 @@ package h_mal.appttude.com.driver;
import android.content.Context; import android.content.Context;
import android.support.test.InstrumentationRegistry; import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4; import android.support.test.runner.AndroidJUnit4;
import android.view.View;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import static org.junit.Assert.*; import static org.junit.Assert.assertEquals;
/** /**
* Instrumented test, which will execute on an Android device. * Instrumented test, which will execute on an Android device.

View File

@@ -19,7 +19,7 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity <activity
android:name=".User.LoginActivity" android:name=".user.LoginActivity"
android:label="@string/app_name" android:label="@string/app_name"
android:theme="@style/Theme.Design.NoActionBar"> android:theme="@style/Theme.Design.NoActionBar">
<intent-filter> <intent-filter>
@@ -35,12 +35,12 @@
android:theme="@style/AppTheme.NoActionBar"> android:theme="@style/AppTheme.NoActionBar">
</activity> </activity>
<activity android:name=".User.RegisterActivity"> <activity android:name=".user.RegisterActivity">
</activity> </activity>
<provider <provider
android:name="android.support.v4.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="h_mal.appttude.com.driver" android:authorities="h_mal.appttude.com.driver"
android:exported="false" android:exported="false"
android:grantUriPermissions="true"> android:grantUriPermissions="true">
@@ -49,7 +49,7 @@
android:resource="@xml/file_paths" /> android:resource="@xml/file_paths" />
</provider> </provider>
<activity android:name=".User.forgotPasswordActivity"></activity> <activity android:name=".user.forgotPasswordActivity"></activity>
</application> </application>
</manifest> </manifest>

View File

@@ -1,293 +1,221 @@
package h_mal.appttude.com.driver.Archive; package h_mal.appttude.com.driver.Archive
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import h_mal.appttude.com.driver.Global.ImageSwiperClass;
import h_mal.appttude.com.driver.Objects.ArchiveObject;
import h_mal.appttude.com.driver.Objects.DriverProfileObject;
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
import h_mal.appttude.com.driver.Objects.InsuranceObject;
import h_mal.appttude.com.driver.Objects.LogbookObject;
import h_mal.appttude.com.driver.Objects.MotObject;
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
import h_mal.appttude.com.driver.Objects.PrivateHireVehicleObject;
import h_mal.appttude.com.driver.Objects.VehicleProfileObject;
import h_mal.appttude.com.driver.Objects.WholeObject.VehicleProfile;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.FirebaseClass.*;
import static h_mal.appttude.com.driver.MainActivity.loadImage;
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson;
import static h_mal.appttude.com.driver.MainActivity.setAsDateTime;
public class ArchiveObjectListAdapter extends BaseAdapter {
private static String TAG = "ArchiveObjectListAdapte";
ArchiveObject archiveObject;
Context context;
String archiveString;
int size;
String[] mKeys;
private TextView dateArchivedText;
public ArchiveObjectListAdapter(ArchiveObject archiveObject, Context context, String archiveString) {
this.archiveObject = archiveObject;
this.context = context;
this.archiveString = archiveString;
switch (archiveString){
case PRIVATE_HIRE_FIREBASE:
size = archiveObject.getPrivate_hire().size();
mKeys = archiveObject.getPrivate_hire().keySet().toArray(new String[archiveObject.getPrivate_hire().size()]);
break;
case DRIVERS_LICENSE_FIREBASE:
size = archiveObject.getDriver_license().size();
mKeys = archiveObject.getDriver_license().keySet().toArray(new String[archiveObject.getDriver_license().size()]);
break;
case VEHICLE_DETAILS_FIREBASE:
size = archiveObject.getVehicle_details().size();
mKeys = archiveObject.getVehicle_details().keySet().toArray(new String[archiveObject.getVehicle_details().size()]);
break;
case MOT_FIREBASE:
size = archiveObject.getMot_details().size();
mKeys = archiveObject.getMot_details().keySet().toArray(new String[archiveObject.getMot_details().size()]);
break;
case INSURANCE_FIREBASE:
size = archiveObject.getInsurance_details().size();
mKeys = archiveObject.getInsurance_details().keySet().toArray(new String[archiveObject.getInsurance_details().size()]);
break;
case LOG_BOOK_FIREBASE:
size = archiveObject.getLog_book().size();
mKeys = archiveObject.getLog_book().keySet().toArray(new String[archiveObject.getLog_book().size()]);
break;
case PRIVATE_HIRE_VEHICLE_LICENSE:
size = archiveObject.getPh_car().size();
mKeys = archiveObject.getPh_car().keySet().toArray(new String[archiveObject.getPh_car().size()]);
break;
}
import android.content.Context
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import com.squareup.picasso.Picasso
import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.Global.ImageSwiperClass
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.*
import h_mal.appttude.com.driver.R
import java.text.ParseException
class ArchiveObjectListAdapter(
var archiveObject: ArchiveObject?,
var context: Context?,
var archiveString: String?
) : BaseAdapter() {
var size: Int = 0
lateinit var mKeys: Array<String>
private var dateArchivedText: TextView? = null
override fun getCount(): Int {
return size
} }
@Override override fun getItem(position: Int): Any? {
public int getCount() { when (archiveString) {
return size; FirebaseClass.PRIVATE_HIRE_FIREBASE -> return archiveObject?.private_hire
} ?.get(mKeys[position])
FirebaseClass.DRIVERS_LICENSE_FIREBASE -> return archiveObject?.driver_license
@Override ?.get(mKeys[position])
public Object getItem(int position) { FirebaseClass.VEHICLE_DETAILS_FIREBASE -> return archiveObject?.vehicle_details
switch (archiveString){ ?.get(mKeys[position])
case PRIVATE_HIRE_FIREBASE: FirebaseClass.MOT_FIREBASE -> return archiveObject?.mot_details?.get(mKeys[position])
return archiveObject.getPrivate_hire().get(mKeys[position]); FirebaseClass.INSURANCE_FIREBASE -> return archiveObject?.insurance_details?.get(
case DRIVERS_LICENSE_FIREBASE: mKeys[position]
return archiveObject.getDriver_license().get(mKeys[position]); )
case VEHICLE_DETAILS_FIREBASE: FirebaseClass.LOG_BOOK_FIREBASE -> return archiveObject?.log_book
return archiveObject.getVehicle_details().get(mKeys[position]); ?.get(mKeys.get(position))
case MOT_FIREBASE: FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE -> return archiveObject?.ph_car?.get(mKeys[position])
return archiveObject.getMot_details().get(mKeys[position]); else -> return mKeys[position]
case INSURANCE_FIREBASE:
return archiveObject.getInsurance_details().get(mKeys[position]);
case LOG_BOOK_FIREBASE:
return archiveObject.getLog_book().get(mKeys[position]);
case PRIVATE_HIRE_VEHICLE_LICENSE:
return archiveObject.getPh_car().get(mKeys[position]);
default:
return mKeys[position];
} }
} }
@Override override fun getItemId(position: Int): Long {
public long getItemId(int position) { return position.toLong()
return position;
} }
@Override override fun getView(position: Int, convertView: View, parent: ViewGroup): View {
public View getView(int position, View convertView, ViewGroup parent) { var listItemView: View = convertView
View listItemView = convertView;
if (listItemView == null) { if (listItemView == null) {
if (archiveString.equals(PRIVATE_HIRE_FIREBASE) || if (((archiveString == FirebaseClass.PRIVATE_HIRE_FIREBASE) || (archiveString == FirebaseClass.DRIVERS_LICENSE_FIREBASE) || (archiveString == FirebaseClass.MOT_FIREBASE) || (archiveString == FirebaseClass.LOG_BOOK_FIREBASE) || (archiveString == FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE))) {
archiveString.equals(DRIVERS_LICENSE_FIREBASE) ||
archiveString.equals(MOT_FIREBASE) ||
archiveString.equals(LOG_BOOK_FIREBASE) ||
archiveString.equals(PRIVATE_HIRE_VEHICLE_LICENSE)){
listItemView = LayoutInflater.from(context).inflate( listItemView = LayoutInflater.from(context).inflate(
R.layout.archive_license_item, parent, false); R.layout.archive_license_item, parent, false
)
ImageView imageView = listItemView.findViewById(R.id.image_archive); val imageView: ImageView = listItemView.findViewById(R.id.image_archive)
ProgressBar progressBar = listItemView.findViewById(R.id.prog_archive); dateArchivedText = listItemView.findViewById(R.id.date_archived)
dateArchivedText = listItemView.findViewById(R.id.date_archived); val expiryHolder: LinearLayout = listItemView.findViewById(R.id.expiry_view)
val fieldTwo: LinearLayout = listItemView.findViewById(R.id.field_two_view)
LinearLayout expiryHolder = listItemView.findViewById(R.id.expiry_view); val expiryText: TextView = listItemView.findViewById(R.id.exp_text)
LinearLayout fieldTwo = listItemView.findViewById(R.id.field_two_view); val fiewTwoLable: TextView = listItemView.findViewById(R.id.field_two)
val fieldTwoText: TextView = listItemView.findViewById(R.id.field_two_text)
TextView expiryText = listItemView.findViewById(R.id.exp_text); when (archiveString) {
TextView fiewTwoLable = listItemView.findViewById(R.id.field_two); FirebaseClass.PRIVATE_HIRE_FIREBASE -> {
TextView fieldTwoText = listItemView.findViewById(R.id.field_two_text); expiryHolder.visibility = View.VISIBLE
fieldTwo.visibility = View.VISIBLE
switch (archiveString){ val privateHireObject: PrivateHireObject =
case PRIVATE_HIRE_FIREBASE: getItem(position) as PrivateHireObject
expiryHolder.setVisibility(View.VISIBLE); Picasso.get().load(privateHireObject.phImageString)
fieldTwo.setVisibility(View.VISIBLE); .placeholder(R.drawable.choice_img)
.into(imageView)
PrivateHireObject privateHireObject = (PrivateHireObject) getItem(position); dateString(position)
expiryText.text = privateHireObject.phExpiry
Picasso.get().load(privateHireObject.getPhImageString()) fiewTwoLable.text = "Private Hire License No.:"
.into(loadImage(progressBar,imageView)); fieldTwoText.text = privateHireObject.phNumber
dateString(position); }
FirebaseClass.DRIVERS_LICENSE_FIREBASE -> {
expiryText.setText(privateHireObject.getPhExpiry()); expiryHolder.visibility = View.VISIBLE
fiewTwoLable.setText("Private Hire License No.:"); fieldTwo.visibility = View.VISIBLE
fieldTwoText.setText(privateHireObject.getPhNumber()); val driversLicenseObject: DriversLicenseObject =
break; getItem(position) as DriversLicenseObject
case DRIVERS_LICENSE_FIREBASE: Picasso.get().load(driversLicenseObject.licenseImageString)
expiryHolder.setVisibility(View.VISIBLE); .placeholder(R.drawable.choice_img)
fieldTwo.setVisibility(View.VISIBLE); .into(imageView)
dateString(position)
DriversLicenseObject driversLicenseObject = (DriversLicenseObject) getItem(position); expiryText.text = driversLicenseObject.licenseExpiry
fiewTwoLable.text = "License No.:"
Picasso.get().load(driversLicenseObject.getLicenseImageString()) fieldTwoText.text = driversLicenseObject.licenseNumber
.into(loadImage(progressBar,imageView)); }
dateString(position); FirebaseClass.MOT_FIREBASE -> {
Log.i(TAG, "getView: MOT OBJECT")
expiryText.setText(driversLicenseObject.getLicenseExpiry()); expiryHolder.visibility = View.VISIBLE
fiewTwoLable.setText("License No.:"); fieldTwo.visibility = View.GONE
fieldTwoText.setText(driversLicenseObject.getLicenseNumber()); val motObject: MotObject = getItem(position) as MotObject
break; Picasso.get().load(motObject.motImageString)
case MOT_FIREBASE: .placeholder(R.drawable.choice_img)
Log.i(TAG, "getView: MOT OBJECT"); .into(imageView)
expiryHolder.setVisibility(View.VISIBLE); dateString(position)
fieldTwo.setVisibility(View.GONE); expiryText.text = motObject.motExpiry
}
MotObject motObject = (MotObject) getItem(position); FirebaseClass.LOG_BOOK_FIREBASE -> {
expiryHolder.visibility = View.GONE
Picasso.get().load(motObject.getMotImageString()) fieldTwo.visibility = View.VISIBLE
.into(loadImage(progressBar,imageView)); val logbookObject: LogbookObject = getItem(position) as LogbookObject
dateString(position); Picasso.get().load(logbookObject.photoString)
expiryText.setText(motObject.getMotExpiry()); .into(MainActivity.loadImage(imageView))
break; dateString(position)
case LOG_BOOK_FIREBASE: fiewTwoLable.text = "V5C No.:"
expiryHolder.setVisibility(View.GONE); fieldTwoText.text = logbookObject.v5cnumber
fieldTwo.setVisibility(View.VISIBLE); }
FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE -> {
LogbookObject logbookObject = (LogbookObject) getItem(position); expiryHolder.visibility = View.VISIBLE
fieldTwo.visibility = View.VISIBLE
Picasso.get().load(logbookObject.getPhotoString()) val privateHireVehicleObject: PrivateHireVehicleObject =
.into(loadImage(progressBar,imageView)); getItem(position) as PrivateHireVehicleObject
dateString(position); Picasso.get().load(privateHireVehicleObject.phCarImageString)
.into(MainActivity.loadImage(imageView))
fiewTwoLable.setText("V5C No.:"); dateString(position)
fieldTwoText.setText(logbookObject.getV5cnumber()); expiryText.text = privateHireVehicleObject.phCarExpiry
break; fiewTwoLable.text = "Private Hire Vehicle License No.:"
case PRIVATE_HIRE_VEHICLE_LICENSE: fieldTwoText.text = privateHireVehicleObject.phCarNumber
expiryHolder.setVisibility(View.VISIBLE); }
fieldTwo.setVisibility(View.VISIBLE);
PrivateHireVehicleObject privateHireVehicleObject = (PrivateHireVehicleObject) getItem(position);
Picasso.get().load(privateHireVehicleObject.getPhCarImageString())
.into(loadImage(progressBar,imageView));
dateString(position);
expiryText.setText(privateHireVehicleObject.getPhCarExpiry());
fiewTwoLable.setText("Private Hire Vehicle License No.:");
fieldTwoText.setText(privateHireVehicleObject.getPhCarNumber());
break;
} }
} else if ((archiveString == FirebaseClass.INSURANCE_FIREBASE)) {
}else if (archiveString.equals(INSURANCE_FIREBASE)){
listItemView = LayoutInflater.from(context).inflate( listItemView = LayoutInflater.from(context).inflate(
R.layout.archive_insurance_item, parent, false); R.layout.archive_insurance_item, parent, false
)
View holder = listItemView.findViewById(R.id.image_pager); val holder: View = listItemView.findViewById(R.id.image_pager)
ImageSwiperClass swiperClass = new ImageSwiperClass(context,holder); val swiperClass: ImageSwiperClass = ImageSwiperClass(context, holder)
// swiperClass.hideDelete(); // swiperClass.hideDelete();
listItemView.findViewById(R.id.delete).setVisibility(View.GONE); listItemView.findViewById<View>(R.id.delete).visibility = View.GONE
// holder.findViewById(R.id.delete).setVisibility(View.INVISIBLE); // holder.findViewById(R.id.delete).setVisibility(View.INVISIBLE);
dateArchivedText = listItemView.findViewById(R.id.date_archived)
dateArchivedText = listItemView.findViewById(R.id.date_archived); dateString(position)
dateString(position); val expiryText: TextView = listItemView.findViewById(R.id.exp_text)
val fieldTwoText: TextView = listItemView.findViewById(R.id.archive_insurer)
TextView expiryText = listItemView.findViewById(R.id.exp_text); val insuranceObject: InsuranceObject = getItem(position) as InsuranceObject
TextView fieldTwoText = listItemView.findViewById(R.id.archive_insurer); swiperClass.reinstantiateList(insuranceObject.photoStrings)
expiryText.text = insuranceObject.expiryDate
InsuranceObject insuranceObject = (InsuranceObject) getItem(position); fieldTwoText.text = insuranceObject.insurerName
swiperClass.reinstantiateList(insuranceObject.getPhotoStrings()); } else if ((archiveString == FirebaseClass.VEHICLE_DETAILS_FIREBASE)) {
expiryText.setText(insuranceObject.getExpiryDate());
fieldTwoText.setText(insuranceObject.getInsurerName());
}else if(archiveString.equals(VEHICLE_DETAILS_FIREBASE)){
listItemView = LayoutInflater.from(context).inflate( listItemView = LayoutInflater.from(context).inflate(
R.layout.archive_vehicle_item, parent, false); R.layout.archive_vehicle_item, parent, false
)
dateArchivedText = listItemView.findViewById(R.id.date_archived); dateArchivedText = listItemView.findViewById(R.id.date_archived)
dateString(position); dateString(position)
val numberPlate: TextView = listItemView.findViewById(R.id.number_plate)
TextView numberPlate = listItemView.findViewById(R.id.number_plate); val keeperName: TextView = listItemView.findViewById(R.id.keeper_name)
TextView keeperName = listItemView.findViewById(R.id.keeper_name); val keeperAddress: TextView = listItemView.findViewById(R.id.keeper_address)
TextView keeperAddress = listItemView.findViewById(R.id.keeper_address); val carText: TextView = listItemView.findViewById(R.id.car_text_arch)
TextView carText = listItemView.findViewById(R.id.car_text_arch); val carColour: TextView = listItemView.findViewById(R.id.car_colour)
TextView carColour = listItemView.findViewById(R.id.car_colour); val carSeized: TextView = listItemView.findViewById(R.id.seized)
TextView carSeized = listItemView.findViewById(R.id.seized); val startDate: TextView = listItemView.findViewById(R.id.first_date)
TextView startDate = listItemView.findViewById(R.id.first_date); val vehicleProfileObject: VehicleProfileObject =
getItem(position) as VehicleProfileObject
VehicleProfileObject vehicleProfileObject = (VehicleProfileObject) getItem(position); numberPlate.text = vehicleProfileObject.reg
keeperName.text = vehicleProfileObject.keeperName
numberPlate.setText(vehicleProfileObject.getReg()); keeperAddress.text = vehicleProfileObject.keeperAddress + "\n" + vehicleProfileObject.keeperPostCode
keeperName.setText(vehicleProfileObject.getKeeperName()); carText.text = vehicleProfileObject.make + " " + vehicleProfileObject.model
keeperAddress.setText(vehicleProfileObject.getKeeperAddress() + "\n" +vehicleProfileObject.getKeeperPostCode()); carColour.text = vehicleProfileObject.colour
carText.setText(vehicleProfileObject.getMake() + " " + vehicleProfileObject.getModel()); val s: String
carColour.setText(vehicleProfileObject.getColour()); if (vehicleProfileObject.isSeized) {
s = "Yes"
String s; } else {
if (vehicleProfileObject.isSeized()){ s = "No"
s = "Yes";
}else {
s = "No";
} }
carSeized.setText(s); carSeized.text = s
startDate.text = vehicleProfileObject.startDate
startDate.setText(vehicleProfileObject.getStartDate());
} }
} }
return listItemView
return listItemView;
} }
private void dateString(int position){ private fun dateString(position: Int) {
boolean success = true; var success: Boolean = true
try { try {
dateArchivedText.setText(setAsDateTime(mKeys[position])); dateArchivedText!!.text = MainActivity.setAsDateTime(mKeys.get(position))
} catch (ParseException e) { } catch (e: ParseException) {
e.printStackTrace(); e.printStackTrace()
success = false; success = false
}finally { } finally {
if (!success){ if (!success) {
dateArchivedText.setText(mKeys[position].substring(0,8)); dateArchivedText!!.text = mKeys.get(position).substring(0, 8)
} }
} }
} }
}
companion object {
private val TAG: String = "ArchiveObjectListAdapte"
}
init {
archiveObject?.apply {
val map = when (archiveString) {
FirebaseClass.PRIVATE_HIRE_FIREBASE -> private_hire
FirebaseClass.DRIVERS_LICENSE_FIREBASE -> driver_license
FirebaseClass.VEHICLE_DETAILS_FIREBASE -> vehicle_details
FirebaseClass.MOT_FIREBASE -> mot_details
FirebaseClass.INSURANCE_FIREBASE -> insurance_details
FirebaseClass.LOG_BOOK_FIREBASE -> log_book
FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE -> ph_car
else -> null
}
setUp(map)
}
}
private fun setUp(map: HashMap<String,*>?){
size = map?.size ?: 0
map?.keys?.toTypedArray()?.let{
mKeys = it
}
}
}

View File

@@ -1,290 +1,241 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.app.DatePickerDialog; import android.content.Intent
import android.content.Intent; import android.content.pm.PackageManager
import android.content.pm.PackageManager; import android.net.Uri
import android.net.Uri; import android.os.Bundle
import android.os.Build; import android.provider.MediaStore
import android.os.Bundle; import android.text.TextUtils
import android.support.annotation.NonNull; import android.util.Log
import android.support.v4.app.Fragment; import android.view.LayoutInflater
import android.text.TextUtils; import android.view.View
import android.util.Log; import android.view.ViewGroup
import android.view.LayoutInflater; import android.widget.*
import android.view.View; import androidx.fragment.app.Fragment
import android.view.ViewGroup; import com.google.android.gms.tasks.OnCompleteListener
import android.widget.Button; import com.google.android.gms.tasks.Task
import android.widget.EditText; import com.google.firebase.database.DataSnapshot
import android.widget.ImageView; import com.google.firebase.database.DatabaseError
import android.widget.ProgressBar; import com.google.firebase.database.DatabaseReference
import android.widget.TextView; import com.google.firebase.database.ValueEventListener
import android.widget.Toast; import com.squareup.picasso.Picasso
import h_mal.appttude.com.driver.Global.*
import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.DriversLicenseObject
import h_mal.appttude.com.driver.R
import kotlinx.android.synthetic.main.fragment_driver_license.*
import com.google.android.gms.tasks.OnCompleteListener; class DriverLicenseFragment : Fragment() {
import com.google.android.gms.tasks.Task; private val TAG: String = this.javaClass.simpleName
import com.google.firebase.database.DataSnapshot; private var imageView: ImageView? = null
import com.google.firebase.database.DatabaseError; var licenseNo: EditText? = null
import com.google.firebase.database.DatabaseReference; var expiry: EditText? = null
import com.google.firebase.database.ValueEventListener; var filePath: Uri? = null
import com.squareup.picasso.Picasso; var picUri: Uri? = null
var li_numberString: String? = null
import java.util.Calendar; var li_exprString: String? = null
var reference: DatabaseReference? = null
import h_mal.appttude.com.driver.Global.DateDialog; var driversLicenseObject: DriversLicenseObject? = null
import h_mal.appttude.com.driver.Global.FirebaseClass; var uploadNew: Boolean? = null
import h_mal.appttude.com.driver.Global.ImageSelectorDialog; var UID: String? = null
import h_mal.appttude.com.driver.Global.ImageSelectorResults; override fun onCreate(savedInstanceState: Bundle?) {
import h_mal.appttude.com.driver.Objects.DriversLicenseObject; super.onCreate(savedInstanceState)
import h_mal.appttude.com.driver.R; uploadNew = false
if (arguments != null) {
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW; Log.i(TAG, "onCreate: args = args exist")
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT; if (arguments!!.containsKey("user_id")) {
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING; UID = arguments!!.getString("user_id")
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
import static h_mal.appttude.com.driver.MainActivity.auth;
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
import static h_mal.appttude.com.driver.MainActivity.loadImage;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
import static h_mal.appttude.com.driver.MainActivity.viewController;
public class DriverLicenseFragment extends Fragment {
private String TAG = this.getClass().getSimpleName();
private ImageView imageView;
private ProgressBar progressBar;
EditText licenseNo;
EditText expiry;
public Uri filePath;
public Uri picUri;
String li_numberString;
String li_exprString;
DatabaseReference reference;
DriversLicenseObject driversLicenseObject;
Boolean uploadNew;
String UID;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
uploadNew = false;
if (getArguments() != null){
Log.i(TAG, "onCreate: args = args exist");
if (getArguments().containsKey("user_id")){
UID = getArguments().getString("user_id");
}else {
UID = auth.getCurrentUser().getUid();
}
if (getArguments().containsKey(UPLOAD_NEW)){
uploadNew = true;
}
}else{
UID = auth.getCurrentUser().getUid();
}
reference = mDatabase.child(USER_FIREBASE).child(UID)
.child(DRIVER_FIREBASE).child(DRIVERS_LICENSE_FIREBASE);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_driver_license, container, false);
imageView = view.findViewById(R.id.driversli_img);
progressBar = view.findViewById(R.id.pb_dl);
viewController.progress(View.VISIBLE);
reference.addListenerForSingleValueEvent(valueEventListener);
TextView uploadLic = view.findViewById(R.id.upload_lic);
licenseNo = view.findViewById(R.id.lic_no);
expiry = view.findViewById(R.id.lic_expiry);
expiry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DateDialog dateDialog = new DateDialog(getContext());
dateDialog.init(expiry);
}
});
Button submit = view.findViewById(R.id.submit);
submit.setOnClickListener(submitOnClickListener);
uploadLic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
imageSelectorDialog.setImageName("drivers_license");
imageSelectorDialog.show();
}
});
return view;
}
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
li_numberString = licenseNo.getText().toString().trim();
li_exprString = expiry.getText().toString().trim();
if (!TextUtils.isEmpty(li_numberString) &&
!TextUtils.isEmpty(li_exprString)){
viewController.progress(View.VISIBLE);
if (filePath == null && picUri == null){
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
viewController.progress(View.GONE);
}else {
if (filePath != null){
Log.i(TAG, "onClick: new Image uploaded");
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
@Override
public void processFinish(Uri output) {
Log.i(TAG, "processFinish: ");
if (output != null){
picUri = output;
publishObject();
}else {
Toast.makeText(getContext(), getString(R.string.failed_upload), Toast.LENGTH_SHORT).show();
viewController.progress(View.GONE);
}
}
}).uploadImage(DRIVERS_LICENSE_FIREBASE,DRIVERS_LICENSE_FIREBASE + getDateStamp());
}else{
Log.i(TAG, "onClick: pushing with same image");
publishObject();
}
}
}else {
if (TextUtils.isEmpty(li_numberString)){
licenseNo.setError("Field required");
}
if (TextUtils.isEmpty(li_exprString)){
expiry.setError("Field required");
}
if (picUri == null && filePath == null){
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
}
}
}
};
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
viewController.progress(View.GONE);
try{
driversLicenseObject = dataSnapshot.getValue(DriversLicenseObject.class);
}catch (Exception e){
Log.e(TAG, "onDataChange: ", e);
}finally {
if (driversLicenseObject != null){
picUri = Uri.parse(driversLicenseObject.getLicenseImageString());
li_numberString = driversLicenseObject.getLicenseNumber();
li_exprString = driversLicenseObject.getLicenseExpiry();
if(!uploadNew){
licenseNo.setText(li_numberString);
expiry.setText(li_exprString);
Picasso.get()
.load(picUri)
.into(loadImage(progressBar,imageView));
}
}else{
Toast.makeText(getContext(), getString(R.string.failed_retrieve), Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
viewController.progress(View.GONE);
Toast.makeText(getContext(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
Log.e(TAG, "onCancelled: " + databaseError.getMessage());
}
};
private void publishObject(){
if (uploadNew){
archiveClass.archiveRecord(UID,DRIVERS_LICENSE_FIREBASE,driversLicenseObject);
}
DriversLicenseObject driversLicenseObjectNew = new DriversLicenseObject(picUri.toString(),li_numberString,li_exprString);
reference.setValue(driversLicenseObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
approvalsClass.setStatusCode(UID,DRIVERS_LICENSE_FIREBASE+APPROVAL_CONSTANT,APPROVAL_PENDING);
fragmentManager.popBackStack();
}else {
Toast.makeText(getContext(),R.string.unsuccessful, Toast.LENGTH_SHORT).show();
}
viewController.progress(View.GONE);
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
Intent cameraIntent = new
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
} else { } else {
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show(); UID = MainActivity.auth!!.currentUser!!.uid
} }
if (arguments!!.containsKey(ExecuteFragment.UPLOAD_NEW)) {
uploadNew = true
}
} else {
UID = MainActivity.auth!!.currentUser!!.uid
}
reference =
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
(UID)!!
)
.child(FirebaseClass.DRIVER_FIREBASE)
.child(FirebaseClass.DRIVERS_LICENSE_FIREBASE)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view: View = inflater.inflate(R.layout.fragment_driver_license, container, false)
imageView = view.findViewById(R.id.driversli_img)
MainActivity.viewController!!.progress(View.VISIBLE)
reference!!.addListenerForSingleValueEvent(valueEventListener)
val uploadLic: TextView = view.findViewById(R.id.upload_lic)
licenseNo = view.findViewById(R.id.lic_no)
lic_expiry.setOnClickListener {
val dateDialog = DateDialog((context)!!)
dateDialog.init(lic_expiry)
}
val submit: Button = view.findViewById(R.id.submit)
submit.setOnClickListener(submitOnClickListener)
uploadLic.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
val imageSelectorDialog: ImageSelectorDialog = ImageSelectorDialog((context)!!)
imageSelectorDialog.setImageName("drivers_license")
imageSelectorDialog.show()
}
})
return view
}
var submitOnClickListener: View.OnClickListener = View.OnClickListener {
li_numberString = licenseNo!!.text.toString().trim { it <= ' ' }
li_exprString = lic_expiry!!.text.toString().trim { it <= ' ' }
if (!TextUtils.isEmpty(li_numberString) &&
!TextUtils.isEmpty(li_exprString)
) {
MainActivity.viewController!!.progress(View.VISIBLE)
if (filePath == null && picUri == null) {
Toast.makeText(context, "No Driver image", Toast.LENGTH_SHORT).show()
MainActivity.viewController!!.progress(View.GONE)
} else {
if (filePath != null) {
Log.i(TAG, "onClick: new Image uploaded")
FirebaseClass(context, filePath, object : FirebaseClass.Response {
override fun processFinish(output: Uri?) {
Log.i(TAG, "processFinish: ")
if (output != null) {
picUri = output
publishObject()
} else {
Toast.makeText(
context,
getString(R.string.failed_upload),
Toast.LENGTH_SHORT
).show()
MainActivity.viewController!!.progress(View.GONE)
}
}
}).uploadImage(
FirebaseClass.DRIVERS_LICENSE_FIREBASE,
FirebaseClass.DRIVERS_LICENSE_FIREBASE + MainActivity.dateStamp
)
} else {
Log.i(TAG, "onClick: pushing with same image")
publishObject()
}
}
} else {
if (TextUtils.isEmpty(li_numberString)) {
licenseNo!!.error = "Field required"
}
if (TextUtils.isEmpty(li_exprString)) {
lic_expiry!!.error = "Field required"
}
if (picUri == null && filePath == null) {
Toast.makeText(
context,
getString(R.string.image_required),
Toast.LENGTH_SHORT
).show()
}
}
}
var valueEventListener: ValueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
MainActivity.viewController!!.progress(View.GONE)
try {
driversLicenseObject = dataSnapshot.getValue(
DriversLicenseObject::class.java
)
} catch (e: Exception) {
Log.e(TAG, "onDataChange: ", e)
} finally {
if (driversLicenseObject != null) {
picUri = Uri.parse(driversLicenseObject!!.licenseImageString)
li_numberString = driversLicenseObject!!.licenseNumber
li_exprString = driversLicenseObject!!.licenseExpiry
if (!uploadNew!!) {
licenseNo!!.setText(li_numberString)
lic_expiry!!.setText(li_exprString)
Picasso.get()
.load(picUri)
.into(MainActivity.loadImage(imageView))
}
} else {
Toast.makeText(
context,
getString(R.string.failed_retrieve),
Toast.LENGTH_SHORT
).show()
}
}
}
override fun onCancelled(databaseError: DatabaseError) {
MainActivity.viewController!!.progress(View.GONE)
Toast.makeText(context, databaseError.message, Toast.LENGTH_SHORT).show()
Log.e(TAG, "onCancelled: " + databaseError.message)
} }
} }
@Override private fun publishObject() {
public void onActivityResult(int requestCode, int resultCode, Intent data) { if ((uploadNew)!!) {
super.onActivityResult(requestCode, resultCode, data); MainActivity.archiveClass!!.archiveRecord(
UID,
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data, FirebaseClass.DRIVERS_LICENSE_FIREBASE,
filePath,imageView,new ImageSelectorResults.FilepathResponse() { driversLicenseObject
@Override )
public void processFinish(Uri output) { }
filePath = output; val driversLicenseObjectNew: DriversLicenseObject =
DriversLicenseObject(picUri.toString(), li_numberString, li_exprString)
reference!!.setValue(driversLicenseObjectNew)
.addOnCompleteListener(object : OnCompleteListener<Void?> {
override fun onComplete(task: Task<Void?>) {
if (task.isSuccessful) {
Log.i(TAG, "onComplete: publish = " + task.isSuccessful)
MainActivity.approvalsClass!!.setStatusCode(
UID,
FirebaseClass.DRIVERS_LICENSE_FIREBASE + FirebaseClass.APPROVAL_CONSTANT,
FirebaseClass.APPROVAL_PENDING
)
MainActivity.fragmentManager!!.popBackStack()
} else {
Toast.makeText(context, R.string.unsuccessful, Toast.LENGTH_SHORT)
.show()
} }
}); MainActivity.viewController!!.progress(View.GONE)
}
})
} }
} override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE) {
if (grantResults.get(0) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(context, "camera permission granted", Toast.LENGTH_LONG).show()
val cameraIntent: Intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(cameraIntent, ImageSelectorDialog.CAMERA_REQUEST)
} else {
Toast.makeText(context, "camera permission denied", Toast.LENGTH_LONG).show()
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
super.onActivityResult(requestCode, resultCode, data)
ImageSelectorResults().Results(
activity, requestCode, resultCode, data,
filePath, imageView, object : FilepathResponse {
override fun processFinish(output: Uri?) {
filePath = output
}
})
}
}

View File

@@ -1,147 +1,110 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.view.LayoutInflater
import android.support.v4.app.Fragment; import android.view.View
import android.support.v7.widget.CardView; import android.view.ViewGroup
import android.view.LayoutInflater; import androidx.fragment.app.Fragment
import android.view.View; import com.google.firebase.database.DataSnapshot
import android.view.ViewGroup; import com.google.firebase.database.DatabaseError
import android.widget.ImageView; import com.google.firebase.database.DatabaseReference
import android.widget.TextView; import com.google.firebase.database.ValueEventListener
import h_mal.appttude.com.driver.Global.ExecuteFragment
import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.ApprovalsObject
import h_mal.appttude.com.driver.Objects.WholeDriverObject
import h_mal.appttude.com.driver.R
import kotlinx.android.synthetic.main.fragment_driver_overall.*
import com.google.firebase.database.DataSnapshot; class DriverOverallFragment : Fragment() {
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.ValueEventListener;
import h_mal.appttude.com.driver.Objects.ApprovalsObject; var reference: DatabaseReference? = null
import h_mal.appttude.com.driver.Objects.WholeDriverObject; var driver_profObject: WholeDriverObject? = null
import h_mal.appttude.com.driver.R; override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment; reference =
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE; MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
import static h_mal.appttude.com.driver.MainActivity.approvalsClass; MainActivity.auth!!.currentUser!!.uid
import static h_mal.appttude.com.driver.MainActivity.archiveClass; )
import static h_mal.appttude.com.driver.MainActivity.auth;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
import static h_mal.appttude.com.driver.MainActivity.viewController;
public class DriverOverallFragment extends Fragment {
CardView driverProfile;
CardView privateHire;
CardView driversLicense;
ImageView driverApr;
ImageView privateApr ;
ImageView driversLiApr;
TextView privExp;
TextView drivLiExp;
DatabaseReference reference;
WholeDriverObject driverProfileObject;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
reference = mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid());
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_driver_overall, container, false); val view: View = inflater.inflate(R.layout.fragment_driver_overall, container, false)
ph_button_exp.visibility = View.GONE
driverProfile = view.findViewById(R.id.driver_prof); dl_button_exp.visibility = View.GONE
privateHire = view.findViewById(R.id.private_hire); MainActivity.viewController!!.progress(View.VISIBLE)
driversLicense = view.findViewById(R.id.drivers_license); reference!!.addListenerForSingleValueEvent(valueEventListener)
return view
driverApr = view.findViewById(R.id.approval_dp);
privateApr = view.findViewById(R.id.approval_ph);
driversLiApr = view.findViewById(R.id.approval_dl);
privExp = view.findViewById(R.id.ph_button_exp);
drivLiExp = view.findViewById(R.id.dl_button_exp);
privExp.setVisibility(View.GONE);
drivLiExp.setVisibility(View.GONE);
viewController.progress(View.VISIBLE);
reference.addListenerForSingleValueEvent(valueEventListener);
return view;
} }
ValueEventListener valueEventListener = new ValueEventListener() { var valueEventListener: ValueEventListener = object : ValueEventListener {
@Override override fun onDataChange(dataSnapshot: DataSnapshot) {
public void onDataChange(@NonNull DataSnapshot dataSnapshot) { driver_profObject = dataSnapshot.getValue(WholeDriverObject::class.java)
driverProfileObject = dataSnapshot.getValue(WholeDriverObject.class); if (driver_profObject!!.approvalsObject != null) {
val approvalsObject: ApprovalsObject? = driver_profObject!!.approvalsObject
if (driverProfileObject.approvalsObject != null){ approval_dp.setImageResource(
ApprovalsObject approvalsObject = driverProfileObject.getApprovalsObject(); MainActivity.approvalsClass!!.setImageResource(
approvalsObject!!.driver_details_approval
driverApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getDriver_details_approval())); )
privateApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getPrivate_hire_approval())); )
driversLiApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getDriver_license_approval())); approval_dp!!.setImageResource(
MainActivity.approvalsClass!!.setImageResource(
approvalsObject.private_hire_approval
)
)
approval_dl!!.setImageResource(
MainActivity.approvalsClass!!.setImageResource(
approvalsObject.driver_license_approval
)
)
} }
if (driver_profObject!!.driver_profile != null) {
if (driverProfileObject.driver_profile != null){ if (driver_profObject!!.driver_profile?.private_hire != null) {
if (driverProfileObject.getDriver_profile().private_hire != null){ ph_button_exp!!.visibility = View.VISIBLE
privExp.setVisibility(View.VISIBLE); ph_button_exp!!.text = "Expiry: " + driver_profObject!!.driver_profile?.private_hire!!.phExpiry
privExp.setText("Expiry: " + driverProfileObject.getDriver_profile().getPrivate_hire().getPhExpiry());
} }
if (driverProfileObject.getDriver_profile().driver_license != null){ if (driver_profObject!!.driver_profile!!.driver_license != null) {
drivLiExp.setVisibility(View.VISIBLE); dl_button_exp!!.visibility = View.VISIBLE
drivLiExp.setText("Expiry: " + driverProfileObject.getDriver_profile().getDriver_license().getLicenseExpiry()); dl_button_exp!!.text = "Expiry: " + driver_profObject!!.driver_profile!!.driver_license!!.licenseExpiry
} }
} }
driver_prof.setOnClickListener {
driverProfile.setOnClickListener(new View.OnClickListener() { ExecuteFragment.executeFragment(
@Override DriverProfileFragment()
public void onClick(View v) { )
executeFragment(new DriverProfileFragment()); }
private_hire.setOnClickListener {
if (driver_profObject!!.driver_profile == null) {
ExecuteFragment.executeFragment(PrivateHireLicenseFragment())
} else {
MainActivity.archiveClass!!.openDialogArchive(
context,
driver_profObject!!.driver_profile?.private_hire,
PrivateHireLicenseFragment()
)
} }
}); }
drivers_license!!.setOnClickListener {
privateHire.setOnClickListener(new View.OnClickListener() { if (driver_profObject!!.driver_profile == null) {
@Override ExecuteFragment.executeFragment(DriverLicenseFragment())
public void onClick(View v) { } else {
if (driverProfileObject.driver_profile == null){ MainActivity.archiveClass!!.openDialogArchive(
executeFragment(new PrivateHireLicenseFragment()); context,
}else { driver_profObject!!.driver_profile?.driver_license,
archiveClass.openDialogArchive(getContext(),driverProfileObject.getDriver_profile().getPrivate_hire() DriverLicenseFragment()
,new PrivateHireLicenseFragment()); )
}
} }
}); }
MainActivity.viewController!!.progress(View.GONE)
driversLicense.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (driverProfileObject.driver_profile == null){
executeFragment(new DriverLicenseFragment());
}else {
archiveClass.openDialogArchive(getContext(),driverProfileObject.getDriver_profile().getDriver_license()
,new DriverLicenseFragment());
}
}
});
viewController.progress(View.GONE);
} }
@Override override fun onCancelled(databaseError: DatabaseError) {
public void onCancelled(@NonNull DatabaseError databaseError) { MainActivity.viewController!!.progress(View.GONE)
viewController.progress(View.GONE);
} }
}; }
}
}

View File

@@ -1,310 +1,263 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.content.Intent; import android.content.Intent
import android.net.Uri; import android.net.Uri
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.text.TextUtils
import android.support.v4.app.Fragment; import android.util.Log
import android.text.TextUtils; import android.view.LayoutInflater
import android.util.Log; import android.view.View
import android.view.LayoutInflater; import android.view.ViewGroup
import android.view.View; import android.widget.*
import android.view.ViewGroup; import androidx.fragment.app.Fragment
import android.widget.Button; import com.google.android.gms.tasks.OnCompleteListener
import android.widget.EditText; import com.google.android.gms.tasks.OnFailureListener
import android.widget.ImageView; import com.google.android.gms.tasks.Task
import android.widget.ProgressBar; import com.google.firebase.auth.UserProfileChangeRequest
import android.widget.TextView; import com.google.firebase.database.DataSnapshot
import android.widget.Toast; import com.google.firebase.database.DatabaseError
import com.google.firebase.database.DatabaseReference
import com.google.android.gms.tasks.OnCompleteListener; import com.google.firebase.database.ValueEventListener
import com.google.android.gms.tasks.OnFailureListener; import com.squareup.picasso.Picasso
import com.google.android.gms.tasks.Task; import h_mal.appttude.com.driver.Global.DateDialog
import com.google.firebase.auth.UserProfileChangeRequest; import h_mal.appttude.com.driver.Global.FirebaseClass
import com.google.firebase.database.DataSnapshot; import h_mal.appttude.com.driver.Global.ImageSelectorDialog
import com.google.firebase.database.DatabaseError; import h_mal.appttude.com.driver.Global.ImageSelectorResults
import com.google.firebase.database.DatabaseReference; import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
import com.google.firebase.database.ValueEventListener; import h_mal.appttude.com.driver.MainActivity
import com.squareup.picasso.Picasso; import h_mal.appttude.com.driver.Objects.DriverProfileObject
import h_mal.appttude.com.driver.Objects.UserObject
import h_mal.appttude.com.driver.Global.DateDialog; import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.Global.FirebaseClass;
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
import h_mal.appttude.com.driver.Global.ViewController;
import h_mal.appttude.com.driver.Objects.DriverProfileObject;
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
import h_mal.appttude.com.driver.Objects.UserObject;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
import static h_mal.appttude.com.driver.Global.FirebaseClass.*;
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
import static h_mal.appttude.com.driver.MainActivity.auth;
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
import static h_mal.appttude.com.driver.MainActivity.loadImage;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
import static h_mal.appttude.com.driver.MainActivity.viewController;
public class DriverProfileFragment extends Fragment { class DriverProfileFragment : Fragment() {
private val TAG: String = this.javaClass.simpleName
private String TAG = this.getClass().getSimpleName(); var driverPic: ImageView? = null
var addPic: TextView? = null
ImageView driverPic; var forenames: EditText? = null
ProgressBar pb; var address: EditText? = null
TextView addPic; var postcode: EditText? = null
EditText forenames; var dob: EditText? = null
EditText address; var ni: EditText? = null
EditText postcode; var dateFirst: EditText? = null
EditText dob; var submit_driver: Button? = null
EditText ni; var filePath: Uri? = null
EditText dateFirst; var picUri: Uri? = null
Button submit_driver; var driverProfileReference: DatabaseReference? = null
var UID: String? = null
Uri filePath; var driverProfileObject: DriverProfileObject? = null
Uri picUri; override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
DatabaseReference driverProfileReference; if (arguments != null) {
String UID; UID = arguments!!.getString("user_id")
DriverProfileObject driverProfileObject; } else {
UID = MainActivity.auth!!.currentUser!!.uid
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null){
UID = getArguments().getString("user_id");
}else{
UID = auth.getCurrentUser().getUid();
} }
driverProfileReference =
driverProfileReference = mDatabase.child(USER_FIREBASE).child(UID) MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
.child(DRIVER_FIREBASE); (UID)!!
)
.child(FirebaseClass.DRIVER_FIREBASE)
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_driver_profile, container, false); val view: View = inflater.inflate(R.layout.fragment_driver_profile, container, false)
driverPic = view.findViewById(R.id.driver_pic)
driverPic = view.findViewById(R.id.driver_pic); addPic = view.findViewById(R.id.add_driver_pic)
pb = view.findViewById(R.id.pb_dp); forenames = view.findViewById(R.id.names)
addPic = view.findViewById(R.id.add_driver_pic); address = view.findViewById(R.id.address)
forenames = view.findViewById(R.id.names); postcode = view.findViewById(R.id.postcode)
address = view.findViewById(R.id.address); dob = view.findViewById(R.id.dob)
postcode = view.findViewById(R.id.postcode); ni = view.findViewById(R.id.ni_number)
dob = view.findViewById(R.id.dob); dateFirst = view.findViewById(R.id.date_first)
ni = view.findViewById(R.id.ni_number); submit_driver = view.findViewById(R.id.submit_driver)
dateFirst = view.findViewById(R.id.date_first); MainActivity.viewController!!.progress(View.VISIBLE)
submit_driver = view.findViewById(R.id.submit_driver); driverProfileReference!!.addListenerForSingleValueEvent(valueEventListener)
addPic.setOnClickListener(object : View.OnClickListener {
viewController.progress(View.VISIBLE); override fun onClick(v: View) {
driverProfileReference.addListenerForSingleValueEvent(valueEventListener); val imageSelectorDialog: ImageSelectorDialog = ImageSelectorDialog((context)!!)
imageSelectorDialog.setImageName("driver_pic" + MainActivity.Companion.dateStamp)
addPic.setOnClickListener(new View.OnClickListener() { imageSelectorDialog.show()
@Override
public void onClick(View v) {
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
imageSelectorDialog.setImageName("driver_pic"+getDateStamp());
imageSelectorDialog.show();
} }
}); })
dob.setOnClickListener(View.OnClickListener {
dob.setOnClickListener(new View.OnClickListener() { val dateDialog: DateDialog = DateDialog((context)!!)
@Override dateDialog.init(dob)
public void onClick(View v) { })
DateDialog dateDialog = new DateDialog(getContext()); dateFirst.setOnClickListener(View.OnClickListener {
dateDialog.init(dob); val dateDialog: DateDialog = DateDialog((context)!!)
} dateDialog.init(dateFirst)
}); })
submit_driver.setOnClickListener(submitOnClickListener)
dateFirst.setOnClickListener(new View.OnClickListener() { return view
@Override
public void onClick(View v) {
DateDialog dateDialog = new DateDialog(getContext());
dateDialog.init(dateFirst);
}
});
submit_driver.setOnClickListener(submitOnClickListener);
return view;
} }
ValueEventListener valueEventListener = new ValueEventListener(){ var valueEventListener: ValueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
@Override MainActivity.viewController!!.progress(View.GONE)
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
viewController.progress(View.GONE);
try { try {
driverProfileObject = dataSnapshot.child(DRIVER_DETAILS_FIREBASE).getValue(DriverProfileObject.class); driverProfileObject =
}catch (Exception e){ dataSnapshot.child(FirebaseClass.DRIVER_DETAILS_FIREBASE).getValue(
Log.e(TAG, "onDataChange: ", e); DriverProfileObject::class.java
}finally { )
if (driverProfileObject != null){ } catch (e: Exception) {
forenames.setText(driverProfileObject.getForenames()); Log.e(TAG, "onDataChange: ", e)
address.setText(driverProfileObject.getAddress()); } finally {
postcode.setText(driverProfileObject.getPostcode()); if (driverProfileObject != null) {
dob.setText(driverProfileObject.getDob()); driverProfileObject?.apply {
dateFirst.setText(driverProfileObject.getDateFirst()); forenames.setText(forenames)
ni.setText(driverProfileObject.getNi()); address.setText(address)
postcode.setText(postcode)
dob.setText(dob)
dateFirst.setText(dateFirst)
ni.setText(ni)
Picasso.get().load(driverPic)
.into(MainActivity.loadImage(driverPic))
picUri = Uri.parse(driverPic)
}
Picasso.get().load(driverProfileObject.getDriverPic())
.into(loadImage(pb,driverPic));
picUri = Uri.parse(driverProfileObject.getDriverPic());
} }
} }
} }
@Override override fun onCancelled(databaseError: DatabaseError) {
public void onCancelled(@NonNull DatabaseError databaseError) { MainActivity.viewController!!.progress(View.GONE)
viewController.progress(View.GONE);
} }
}; }
var submitOnClickListener: View.OnClickListener = View.OnClickListener {
View.OnClickListener submitOnClickListener = new View.OnClickListener() { val driverForename: String = forenames!!.text.toString().trim { it <= ' ' }
@Override val AddressString: String = address!!.text.toString().trim { it <= ' ' }
public void onClick(View v) { val postCodeString: String = postcode!!.text.toString().trim { it <= ' ' }
val dobString: String = dob!!.text.toString().trim { it <= ' ' }
String driverForename = forenames.getText().toString().trim(); val niString: String = ni!!.text.toString().trim { it <= ' ' }
String AddressString = address.getText().toString().trim(); val dateFirstString: String = dateFirst!!.text.toString().trim { it <= ' ' }
String postCodeString = postcode.getText().toString().trim(); if ((!TextUtils.isEmpty(driverForename) &&
String dobString = dob.getText().toString().trim();
String niString = ni.getText().toString().trim();
String dateFirstString = dateFirst.getText().toString().trim();
if ( !TextUtils.isEmpty(driverForename) &&
!TextUtils.isEmpty(AddressString) && !TextUtils.isEmpty(AddressString) &&
!TextUtils.isEmpty(postCodeString) && !TextUtils.isEmpty(postCodeString) &&
!TextUtils.isEmpty(dobString) && !TextUtils.isEmpty(dobString) &&
!TextUtils.isEmpty(niString) && !TextUtils.isEmpty(niString) &&
!TextUtils.isEmpty(dateFirstString)){ !TextUtils.isEmpty(dateFirstString))
) {
if (filePath == null && picUri == null){ if (filePath == null && picUri == null) {
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show(); Toast.makeText(context, "No Driver image", Toast.LENGTH_SHORT).show()
viewController.progress(View.GONE); MainActivity.viewController!!.progress(View.GONE)
}else { } else {
viewController.progress(View.VISIBLE); MainActivity.viewController!!.progress(View.VISIBLE)
if (filePath != null){ if (filePath != null) {
FirebaseClass(context, filePath, object : FirebaseClass.Response {
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){ override fun processFinish(output: Uri?) {
@Override Log.i(TAG, "processFinish: ")
public void processFinish(Uri output) { if (output != null) {
Log.i(TAG, "processFinish: "); picUri = output
if (output != null){ writeDriverToDb()
picUri = output; } else {
writeDriverToDb(); MainActivity.viewController!!.progress(View.GONE)
}else {
viewController.progress(View.GONE);
}
} }
}).uploadImage(DRIVERS_LICENSE_FIREBASE,DRIVERS_LICENSE_FIREBASE + getDateStamp()); }
}else{ }).uploadImage(
Log.i(TAG, "onClick: pushing with same image"); FirebaseClass.DRIVERS_LICENSE_FIREBASE,
writeDriverToDb(); FirebaseClass.DRIVERS_LICENSE_FIREBASE + MainActivity.Companion.dateStamp
} )
} } else {
Log.i(TAG, "onClick: pushing with same image")
}else { writeDriverToDb()
if (TextUtils.isEmpty(driverForename)){
forenames.setError("Field required");
}
if (TextUtils.isEmpty(AddressString)){
address.setError("Field required");
}
if (TextUtils.isEmpty(postCodeString)){
postcode.setError("Field required");
}
if (TextUtils.isEmpty(dobString)){
dob.setError("Field required");
}
if (TextUtils.isEmpty(niString)){
ni.setError("Field required");
}
if (TextUtils.isEmpty(dateFirstString)){
dateFirst.setError("Field required");
} }
} }
} else {
if (TextUtils.isEmpty(driverForename)) {
forenames!!.error = "Field required"
}
if (TextUtils.isEmpty(AddressString)) {
address!!.error = "Field required"
}
if (TextUtils.isEmpty(postCodeString)) {
postcode!!.error = "Field required"
}
if (TextUtils.isEmpty(dobString)) {
dob!!.error = "Field required"
}
if (TextUtils.isEmpty(niString)) {
ni!!.error = "Field required"
}
if (TextUtils.isEmpty(dateFirstString)) {
dateFirst!!.error = "Field required"
}
} }
};
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
filePath,driverPic,new ImageSelectorResults.FilepathResponse() {
@Override
public void processFinish(Uri output) {
filePath = output;
}
});
} }
private void writeDriverToDb(){ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
super.onActivityResult(requestCode, resultCode, data)
String forenameText = forenames.getText().toString().trim(); ImageSelectorResults().Results(
String addressText = address.getText().toString().trim(); activity, requestCode, resultCode, data,
String postcodeText = postcode.getText().toString().trim(); filePath, driverPic, object : FilepathResponse {
String dobText = dob.getText().toString().trim(); override fun processFinish(output: Uri?) {
String niText = ni.getText().toString().trim(); filePath = output
String datefirstText = dateFirst.getText().toString().trim();
DriverProfileObject driverProfileObject = new DriverProfileObject(picUri.toString(),forenameText,
addressText,postcodeText,dobText,niText,datefirstText);
if (UID.equals(auth.getCurrentUser().getUid())){
UserProfileChangeRequest.Builder profileUpdatesBuilder = new UserProfileChangeRequest.Builder();
profileUpdatesBuilder.setPhotoUri(picUri);
UserProfileChangeRequest profileUpdates = profileUpdatesBuilder.build();
auth.getCurrentUser().updateProfile(profileUpdates)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "User profile updated.");
viewController.reloadDrawer();
mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child("user_details")
.setValue(new UserObject(auth.getCurrentUser().getDisplayName(),auth.getCurrentUser().getEmail(),picUri.toString()));
}
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "onFailure: ", e);
}
});
}
driverProfileReference.child(DRIVER_DETAILS_FIREBASE).setValue(driverProfileObject)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
approvalsClass.setStatusCode(UID,DRIVER_DETAILS_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
}
viewController.progress(View.GONE);
fragmentManager.popBackStack();
} }
}); })
} }
}
private fun writeDriverToDb() {
val forenameText: String = forenames!!.text.toString().trim({ it <= ' ' })
val addressText: String = address!!.text.toString().trim({ it <= ' ' })
val postcodeText: String = postcode!!.text.toString().trim({ it <= ' ' })
val dobText: String = dob!!.text.toString().trim({ it <= ' ' })
val niText: String = ni!!.text.toString().trim({ it <= ' ' })
val datefirstText: String = dateFirst!!.text.toString().trim({ it <= ' ' })
val driverProfileObject: DriverProfileObject = DriverProfileObject(
picUri.toString(), forenameText,
addressText, postcodeText, dobText, niText, datefirstText
)
if ((UID == MainActivity.auth!!.currentUser!!.uid)) {
val profileUpdatesBuilder: UserProfileChangeRequest.Builder =
UserProfileChangeRequest.Builder()
profileUpdatesBuilder.setPhotoUri(picUri)
val profileUpdates: UserProfileChangeRequest = profileUpdatesBuilder.build()
MainActivity.auth!!.currentUser!!.updateProfile(profileUpdates)
.addOnCompleteListener(object : OnCompleteListener<Void?> {
override fun onComplete(task: Task<Void?>) {
if (task.isSuccessful) {
Log.d(TAG, "User profile updated.")
MainActivity.viewController!!.reloadDrawer()
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE)
.child(
MainActivity.auth!!.currentUser!!.uid
).child("user_details")
.setValue(
UserObject(
MainActivity.auth!!.currentUser!!
.displayName,
MainActivity.auth!!.currentUser!!
.email,
picUri.toString()
)
)
}
}
})
.addOnFailureListener(object : OnFailureListener {
override fun onFailure(e: Exception) {
Log.e(TAG, "onFailure: ", e)
}
})
}
driverProfileReference!!.child(FirebaseClass.DRIVER_DETAILS_FIREBASE)
.setValue(driverProfileObject)
.addOnCompleteListener(object : OnCompleteListener<Void?> {
override fun onComplete(task: Task<Void?>) {
if (task.isSuccessful) {
MainActivity.approvalsClass!!.setStatusCode(
UID,
FirebaseClass.DRIVER_DETAILS_FIREBASE + FirebaseClass.APPROVAL_CONSTANT,
FirebaseClass.APPROVAL_PENDING
)
}
MainActivity.viewController!!.progress(View.GONE)
MainActivity.fragmentManager!!.popBackStack()
}
})
}
}

View File

@@ -1,300 +1,263 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.content.Intent; import android.content.Intent
import android.content.pm.PackageManager; import android.content.pm.PackageManager
import android.net.Uri; import android.net.Uri
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.provider.MediaStore
import android.support.v4.app.Fragment; import android.text.TextUtils
import android.text.Layout; import android.util.Log
import android.text.TextUtils; import android.view.LayoutInflater
import android.util.Log; import android.view.View
import android.view.LayoutInflater; import android.view.ViewGroup
import android.view.View; import android.widget.Button
import android.view.ViewGroup; import android.widget.EditText
import android.widget.Button; import android.widget.TextView
import android.widget.EditText; import android.widget.Toast
import android.widget.ImageView; import androidx.fragment.app.Fragment
import android.widget.TextView; import com.google.android.gms.tasks.OnCompleteListener
import android.widget.Toast; import com.google.android.gms.tasks.Task
import com.google.firebase.database.DataSnapshot
import com.google.android.gms.tasks.OnCompleteListener; import com.google.firebase.database.DatabaseError
import com.google.android.gms.tasks.Task; import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.ValueEventListener
import com.google.firebase.database.DatabaseError; import h_mal.appttude.com.driver.Global.*
import com.google.firebase.database.DatabaseReference; import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
import com.google.firebase.database.ValueEventListener; import h_mal.appttude.com.driver.MainActivity
import com.squareup.picasso.Picasso; import h_mal.appttude.com.driver.Objects.InsuranceObject
import h_mal.appttude.com.driver.R
import java.util.ArrayList; import java.util.*
import java.util.List;
import h_mal.appttude.com.driver.Global.DateDialog;
import h_mal.appttude.com.driver.Global.FirebaseClass;
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
import h_mal.appttude.com.driver.Global.ImageSwiperClass;
import h_mal.appttude.com.driver.Objects.InsuranceObject;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
import static h_mal.appttude.com.driver.MainActivity.auth;
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson;
import static h_mal.appttude.com.driver.MainActivity.viewController;
public class InsuranceFragment extends Fragment { class InsuranceFragment : Fragment() {
private val TAG: String = this.javaClass.simpleName
private String TAG = this.getClass().getSimpleName(); var reference: DatabaseReference? = null
DatabaseReference reference; var uploadIns: TextView? = null
var insName: EditText? = null
TextView uploadIns; var insExpiry: EditText? = null
EditText insName; var holder: View? = null
EditText insExpiry; var filePath: Uri? = null
View holder; var picUri: Uri? = null
var photoStrings: MutableList<String?>? = null
public Uri filePath; var insNameString: String? = null
public Uri picUri; var insExpiryString: String? = null
var insuranceObject: InsuranceObject? = null
public List<String> photoStrings; var swiperClass: ImageSwiperClass? = null
var uploadNew: Boolean? = null
String insNameString; var UID: String? = null
String insExpiryString; override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
InsuranceObject insuranceObject; uploadNew = false
ImageSwiperClass swiperClass; photoStrings = ArrayList()
if (arguments != null) {
Boolean uploadNew; Log.i(TAG, "onCreate: args = args exist")
String UID; if (arguments!!.containsKey("user_id")) {
UID = arguments!!.getString("user_id")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
uploadNew = false;
photoStrings = new ArrayList<>();
if (getArguments() != null){
Log.i(TAG, "onCreate: args = args exist");
if (getArguments().containsKey("user_id")){
UID = getArguments().getString("user_id");
}else {
UID = auth.getCurrentUser().getUid();
}
if (getArguments().containsKey(UPLOAD_NEW)){
uploadNew = true;
}
}else{
UID = auth.getCurrentUser().getUid();
}
reference = mDatabase.child(USER_FIREBASE).child(UID).child(VEHICLE_FIREBASE).child(INSURANCE_FIREBASE);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_insurance, container, false);
uploadIns = view.findViewById(R.id.uploadInsurance);
insName = view.findViewById(R.id.insurer);
insExpiry = view.findViewById(R.id.insurance_exp);
Button submit = view.findViewById(R.id.submit_ins);
holder = view.findViewById(R.id.image_pager);
swiperClass = new ImageSwiperClass(getContext(),holder);
viewController.progress(View.VISIBLE);
reference.addListenerForSingleValueEvent(valueEventListener);
uploadIns.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
imageSelectorDialog.setImageName("insurance"+getDateStamp());
imageSelectorDialog.show();
}
});
insExpiry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DateDialog dateDialog = new DateDialog(getContext());
dateDialog.init(insExpiry);
}
});
submit.setOnClickListener(submitOnClickListener);
return view;
}
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
viewController.progress(View.GONE);
try{
insuranceObject = dataSnapshot.getValue(InsuranceObject.class);
}catch (Exception e){
Log.e(TAG, "onDataChange: ", e);
}finally {
if (insuranceObject != null){
if (!uploadNew){
photoStrings = insuranceObject.getPhotoStrings();
swiperClass.reinstantiateList(photoStrings);
if (insuranceObject.insurerName != null){
insNameString = insuranceObject.getInsurerName();
insName.setText(insNameString);
}
if (insuranceObject.expiryDate != null){
insExpiryString = insuranceObject.getExpiryDate();
insExpiry.setText(insExpiryString);
}
}
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
viewController.progress(View.GONE);
}
};
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
insNameString = insName.getText().toString().trim();
insExpiryString = insExpiry.getText().toString().trim();
if (!TextUtils.isEmpty(insNameString)
&& !TextUtils.isEmpty(insExpiryString)){
viewController.progress(View.VISIBLE);
if (filePath == null && picUri == null){
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
viewController.progress(View.GONE);
}else {
if (filePath != null){
Log.i(TAG, "onClick: new Image uploaded");
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
@Override
public void processFinish(Uri output) {
Log.i(TAG, "processFinish: ");
if (output != null){
picUri = output;
publishObject();
}else {
Toast.makeText(getContext(), "Could not upload", Toast.LENGTH_SHORT).show();
viewController.progress(View.GONE);
}
}
}).uploadImage(INSURANCE_FIREBASE,INSURANCE_FIREBASE + getDateStamp());
}else{
Log.i(TAG, "onClick: pushing with same image");
publishObject();
}
}
}else {
if (TextUtils.isEmpty(insNameString)){
insName.setError("Field required");
}
if (TextUtils.isEmpty(insExpiryString)){
insExpiry.setError("Field required");
}
if (picUri == null){
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
}
}
}
};
private void publishObject(){
if (uploadNew){
archiveClass.archiveRecord(UID,INSURANCE_FIREBASE,insuranceObject);
}
photoStrings = swiperClass.getImageStrings();
InsuranceObject insuranceObject = new InsuranceObject(photoStrings, insNameString, insExpiryString);
reference.setValue(insuranceObject).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
approvalsClass.setStatusCode(UID,INSURANCE_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
fragmentManager.popBackStack();
}else{
Toast.makeText(getContext(), "Upload Unsuccessful", Toast.LENGTH_SHORT).show();
}
viewController.progress(View.GONE);
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
Intent cameraIntent = new
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
} else { } else {
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show(); UID = MainActivity.auth!!.currentUser!!.uid
} }
if (arguments!!.containsKey(ExecuteFragment.UPLOAD_NEW)) {
uploadNew = true
}
} else {
UID = MainActivity.auth!!.currentUser!!.uid
}
reference =
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
(UID)!!
).child(FirebaseClass.VEHICLE_FIREBASE)
.child(FirebaseClass.INSURANCE_FIREBASE)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view: View = inflater.inflate(R.layout.fragment_insurance, container, false)
uploadIns = view.findViewById(R.id.uploadInsurance)
insName = view.findViewById(R.id.insurer)
insExpiry = view.findViewById(R.id.insurance_exp)
val submit: Button = view.findViewById(R.id.submit_ins)
holder = view.findViewById(R.id.image_pager)
swiperClass = ImageSwiperClass(context, holder)
MainActivity.viewController!!.progress(View.VISIBLE)
reference!!.addListenerForSingleValueEvent(valueEventListener)
uploadIns.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
val imageSelectorDialog: ImageSelectorDialog = ImageSelectorDialog((context)!!)
imageSelectorDialog.setImageName("insurance" + MainActivity.Companion.dateStamp)
imageSelectorDialog.show()
}
})
insExpiry.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
val dateDialog: DateDialog = DateDialog((context)!!)
dateDialog.init(insExpiry)
}
})
submit.setOnClickListener(submitOnClickListener)
return view
}
var valueEventListener: ValueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
MainActivity.viewController!!.progress(View.GONE)
try {
insuranceObject = dataSnapshot.getValue(InsuranceObject::class.java)
} catch (e: Exception) {
Log.e(TAG, "onDataChange: ", e)
} finally {
if (insuranceObject != null) {
if (!uploadNew!!) {
photoStrings = insuranceObject.getPhotoStrings()
swiperClass!!.reinstantiateList(photoStrings)
if (insuranceObject!!.insurerName != null) {
insNameString = insuranceObject.getInsurerName()
insName!!.setText(insNameString)
}
if (insuranceObject!!.expiryDate != null) {
insExpiryString = insuranceObject.getExpiryDate()
insExpiry!!.setText(insExpiryString)
}
}
}
}
}
override fun onCancelled(databaseError: DatabaseError) {
MainActivity.viewController!!.progress(View.GONE)
}
}
var submitOnClickListener: View.OnClickListener = object : View.OnClickListener {
override fun onClick(v: View) {
insNameString = insName!!.text.toString().trim({ it <= ' ' })
insExpiryString = insExpiry!!.text.toString().trim({ it <= ' ' })
if ((!TextUtils.isEmpty(insNameString)
&& !TextUtils.isEmpty(insExpiryString))
) {
MainActivity.viewController!!.progress(View.VISIBLE)
if (filePath == null && picUri == null) {
Toast.makeText(context, "No Driver image", Toast.LENGTH_SHORT).show()
MainActivity.viewController!!.progress(View.GONE)
} else {
if (filePath != null) {
Log.i(TAG, "onClick: new Image uploaded")
FirebaseClass(context, filePath, object : FirebaseClass.Response {
override fun processFinish(output: Uri?) {
Log.i(TAG, "processFinish: ")
if (output != null) {
picUri = output
publishObject()
} else {
Toast.makeText(
context,
"Could not upload",
Toast.LENGTH_SHORT
).show()
MainActivity.viewController!!.progress(View.GONE)
}
}
}).uploadImage(
FirebaseClass.INSURANCE_FIREBASE,
FirebaseClass.INSURANCE_FIREBASE + MainActivity.Companion.dateStamp
)
} else {
Log.i(TAG, "onClick: pushing with same image")
publishObject()
}
}
} else {
if (TextUtils.isEmpty(insNameString)) {
insName!!.error = "Field required"
}
if (TextUtils.isEmpty(insExpiryString)) {
insExpiry!!.error = "Field required"
}
if (picUri == null) {
Toast.makeText(
context,
getString(R.string.image_required),
Toast.LENGTH_SHORT
).show()
}
}
} }
} }
@Override private fun publishObject() {
public void onActivityResult(int requestCode, int resultCode, Intent data) { if ((uploadNew)!!) {
super.onActivityResult(requestCode, resultCode, data); MainActivity.archiveClass!!.archiveRecord(
UID,
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data, FirebaseClass.INSURANCE_FIREBASE,
filePath,new ImageSelectorResults.FilepathResponse() { insuranceObject
@Override )
public void processFinish(Uri output) { }
filePath = output; photoStrings = swiperClass.getImageStrings()
new FirebaseClass(getContext(), output, new FirebaseClass.Response() { val insuranceObject: InsuranceObject =
@Override InsuranceObject(photoStrings, insNameString, insExpiryString)
public void processFinish(Uri output) { reference!!.setValue(insuranceObject)
if (output != null){ .addOnCompleteListener(object : OnCompleteListener<Void?> {
photoStrings.add(output.toString()); override fun onComplete(task: Task<Void?>) {
swiperClass.addPhotoString(output.toString()); if (task.isSuccessful) {
//notify data change MainActivity.approvalsClass!!.setStatusCode(
reference.setValue(new InsuranceObject(photoStrings,null,null)); UID,
} FirebaseClass.INSURANCE_FIREBASE + FirebaseClass.APPROVAL_CONSTANT,
} FirebaseClass.APPROVAL_PENDING
}).uploadImage(INSURANCE_FIREBASE,INSURANCE_FIREBASE + getDateStamp()); )
MainActivity.fragmentManager!!.popBackStack()
} else {
Toast.makeText(context, "Upload Unsuccessful", Toast.LENGTH_SHORT)
.show()
} }
}); MainActivity.viewController!!.progress(View.GONE)
}
})
} }
@Override override fun onRequestPermissionsResult(
public void onResume() { requestCode: Int,
super.onResume(); permissions: Array<String>,
printObjectAsJson(TAG,photoStrings); grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE) {
if (grantResults.get(0) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(context, "camera permission granted", Toast.LENGTH_LONG).show()
val cameraIntent: Intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(cameraIntent, ImageSelectorDialog.CAMERA_REQUEST)
} else {
Toast.makeText(context, "camera permission denied", Toast.LENGTH_LONG).show()
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
super.onActivityResult(requestCode, resultCode, data)
ImageSelectorResults().Results(
activity, requestCode, resultCode, data,
filePath, object : FilepathResponse {
override fun processFinish(output: Uri?) {
filePath = output
FirebaseClass(context, output, object : FirebaseClass.Response {
override fun processFinish(output: Uri?) {
if (output != null) {
photoStrings!!.add(output.toString())
swiperClass!!.addPhotoString(output.toString())
//notify data change
reference!!.setValue(InsuranceObject(photoStrings, null, null))
}
}
}).uploadImage(
FirebaseClass.INSURANCE_FIREBASE,
FirebaseClass.INSURANCE_FIREBASE + MainActivity.Companion.dateStamp
)
}
})
}
override fun onResume() {
super.onResume()
MainActivity.printObjectAsJson(TAG, photoStrings)
} }
} }

View File

@@ -1,262 +1,222 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.content.Intent; import android.content.Intent
import android.content.pm.PackageManager; import android.content.pm.PackageManager
import android.net.Uri; import android.net.Uri
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.provider.MediaStore
import android.support.v4.app.Fragment; import android.text.TextUtils
import android.text.TextUtils; import android.util.Log
import android.util.Log; 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.*
import android.widget.Button; import androidx.fragment.app.Fragment
import android.widget.EditText; import com.google.android.gms.tasks.OnCompleteListener
import android.widget.ImageView; import com.google.android.gms.tasks.Task
import android.widget.ProgressBar; import com.google.firebase.database.DataSnapshot
import android.widget.TextView; import com.google.firebase.database.DatabaseError
import android.widget.Toast; import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.ValueEventListener
import com.google.android.gms.tasks.OnCompleteListener; import com.squareup.picasso.Picasso
import com.google.android.gms.tasks.Task; import h_mal.appttude.com.driver.Global.*
import com.google.firebase.database.DataSnapshot; import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
import com.google.firebase.database.DatabaseError; import h_mal.appttude.com.driver.MainActivity
import com.google.firebase.database.DatabaseReference; import h_mal.appttude.com.driver.Objects.MotObject
import com.google.firebase.database.ValueEventListener; import h_mal.appttude.com.driver.R
import com.squareup.picasso.Picasso;
import h_mal.appttude.com.driver.Global.DateDialog;
import h_mal.appttude.com.driver.Global.FirebaseClass;
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
import h_mal.appttude.com.driver.Objects.MotObject;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
import static h_mal.appttude.com.driver.MainActivity.auth;
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
import static h_mal.appttude.com.driver.MainActivity.loadImage;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
import static h_mal.appttude.com.driver.MainActivity.viewController;
public class MotFragment extends Fragment { class MotFragment : Fragment() {
private val TAG: String = this.javaClass.simpleName
private String TAG = this.getClass().getSimpleName(); var reference: DatabaseReference? = null
DatabaseReference reference; var uploadMot: TextView? = null
var motImage: ImageView? = null
TextView uploadMot; var motExpiryEditText: EditText? = null
ImageView motImage; var filePath: Uri? = null
ProgressBar progressBar; var picUri: Uri? = null
EditText motExpiryEditText; var motObject: MotObject? = null
var motExpText: String? = null
public Uri filePath; var uploadNew: Boolean? = null
public Uri picUri; var UID: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
MotObject motObject; super.onCreate(savedInstanceState)
String motExpText; uploadNew = false
Boolean uploadNew; if (arguments != null) {
String UID; Log.i(TAG, "onCreate: args = args exist")
if (arguments!!.containsKey("user_id")) {
@Override UID = arguments!!.getString("user_id")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
uploadNew = false;
if (getArguments() != null){
Log.i(TAG, "onCreate: args = args exist");
if (getArguments().containsKey("user_id")){
UID = getArguments().getString("user_id");
}else {
UID = auth.getCurrentUser().getUid();
}
if (getArguments().containsKey(UPLOAD_NEW)){
uploadNew = true;
}
}else{
UID = auth.getCurrentUser().getUid();
}
reference = mDatabase.child(USER_FIREBASE).child(UID)
.child(VEHICLE_FIREBASE).child(MOT_FIREBASE);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_mot, container, false);
motImage = view.findViewById(R.id.mot_img);
progressBar = view.findViewById(R.id.pb_mot);
uploadMot = view.findViewById(R.id.uploadmot);
motExpiryEditText = view.findViewById(R.id.mot_expiry);
Button submit = view.findViewById(R.id.submit_mot);
viewController.progress(View.VISIBLE);
reference.addListenerForSingleValueEvent(valueEventListener);
uploadMot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
imageSelectorDialog.setImageName("mot_certificate");
imageSelectorDialog.show();
}
});
motExpiryEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DateDialog dateDialog = new DateDialog(getContext());
dateDialog.init(motExpiryEditText);
}
});
submit.setOnClickListener(submitOnClickListener);
return view;
}
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
viewController.progress(View.GONE);
try{
motObject = dataSnapshot.getValue(MotObject.class);
}catch (Exception e){
Log.e(TAG, "onDataChange: ", e);
}finally {
if (motObject != null){
if (!uploadNew){
picUri = Uri.parse(motObject.getMotImageString());
motExpText = motObject.getMotExpiry();
motExpiryEditText.setText(motExpText);
Picasso.get()
.load(picUri)
.into(loadImage(progressBar,motImage));
}
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
viewController.progress(View.GONE);
}
};
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
motExpText = motExpiryEditText.getText().toString().trim();
if (!TextUtils.isEmpty(motExpText)){
viewController.progress(View.VISIBLE);
if (filePath == null && picUri == null){
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
viewController.progress(View.GONE);
}else {
if (filePath != null){
Log.i(TAG, "onClick: new Image uploaded");
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
@Override
public void processFinish(Uri output) {
Log.i(TAG, "processFinish: ");
if (output != null){
picUri = output;
publishObject();
}else {
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
}
}
}).uploadImage(MOT_FIREBASE,MOT_FIREBASE + getDateStamp());
}else{
Log.i(TAG, "onClick: pushing with same image");
publishObject();
}
}
}else {
if (TextUtils.isEmpty(motExpText)){
motExpiryEditText.setError("Field required");
}
if (picUri == null){
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
}
}
}
};
private void publishObject(){
if (uploadNew){
archiveClass.archiveRecord(UID,MOT_FIREBASE,motObject);
}
MotObject motObject = new MotObject(picUri.toString(), motExpText);
reference.setValue(motObject).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
approvalsClass.setStatusCode(UID,MOT_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
fragmentManager.popBackStack();
}else {
Toast.makeText(getContext(), "Unable to upload", Toast.LENGTH_SHORT).show();
}
viewController.progress(View.GONE);
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
Intent cameraIntent = new
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
} else { } else {
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show(); UID = MainActivity.auth!!.currentUser!!.uid
} }
if (arguments!!.containsKey(ExecuteFragment.UPLOAD_NEW)) {
uploadNew = true
}
} else {
UID = MainActivity.auth!!.currentUser!!.uid
}
reference =
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
(UID)!!
)
.child(FirebaseClass.VEHICLE_FIREBASE)
.child(FirebaseClass.MOT_FIREBASE)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view: View = inflater.inflate(R.layout.fragment_mot, container, false)
motImage = view.findViewById(R.id.mot_img)
uploadMot = view.findViewById(R.id.uploadmot)
motExpiryEditText = view.findViewById(R.id.mot_expiry)
val submit: Button = view.findViewById(R.id.submit_mot)
MainActivity.viewController!!.progress(View.VISIBLE)
reference!!.addListenerForSingleValueEvent(valueEventListener)
uploadMot.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
val imageSelectorDialog: ImageSelectorDialog = ImageSelectorDialog((context)!!)
imageSelectorDialog.setImageName("mot_certificate")
imageSelectorDialog.show()
}
})
motExpiryEditText.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
val dateDialog: DateDialog = DateDialog((context)!!)
dateDialog.init(motExpiryEditText)
}
})
submit.setOnClickListener(submitOnClickListener)
return view
}
var valueEventListener: ValueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
MainActivity.viewController!!.progress(View.GONE)
try {
motObject = dataSnapshot.getValue(MotObject::class.java)
} catch (e: Exception) {
Log.e(TAG, "onDataChange: ", e)
} finally {
if (motObject != null) {
if (!uploadNew!!) {
picUri = Uri.parse(motObject.getMotImageString())
motExpText = motObject.getMotExpiry()
motExpiryEditText!!.setText(motExpText)
Picasso.get()
.load(picUri)
.into(MainActivity.loadImage(motImage))
}
}
}
}
override fun onCancelled(databaseError: DatabaseError) {
MainActivity.viewController!!.progress(View.GONE)
}
}
var submitOnClickListener: View.OnClickListener = object : View.OnClickListener {
override fun onClick(v: View) {
motExpText = motExpiryEditText!!.text.toString().trim({ it <= ' ' })
if (!TextUtils.isEmpty(motExpText)) {
MainActivity.viewController!!.progress(View.VISIBLE)
if (filePath == null && picUri == null) {
Toast.makeText(context, "No Driver image", Toast.LENGTH_SHORT).show()
MainActivity.viewController!!.progress(View.GONE)
} else {
if (filePath != null) {
Log.i(TAG, "onClick: new Image uploaded")
FirebaseClass(context, filePath, object : FirebaseClass.Response {
override fun processFinish(output: Uri?) {
Log.i(TAG, "processFinish: ")
if (output != null) {
picUri = output
publishObject()
} else {
Toast.makeText(
context,
R.string.unsuccessful,
Toast.LENGTH_SHORT
).show()
}
}
}).uploadImage(
FirebaseClass.MOT_FIREBASE,
FirebaseClass.MOT_FIREBASE + MainActivity.Companion.dateStamp
)
} else {
Log.i(TAG, "onClick: pushing with same image")
publishObject()
}
}
} else {
if (TextUtils.isEmpty(motExpText)) {
motExpiryEditText!!.error = "Field required"
}
if (picUri == null) {
Toast.makeText(
context,
getString(R.string.image_required),
Toast.LENGTH_SHORT
).show()
}
}
} }
} }
@Override private fun publishObject() {
public void onActivityResult(int requestCode, int resultCode, Intent data) { if ((uploadNew)!!) {
super.onActivityResult(requestCode, resultCode, data); MainActivity.archiveClass!!.archiveRecord(
UID,
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data, FirebaseClass.MOT_FIREBASE,
filePath,motImage,new ImageSelectorResults.FilepathResponse() { motObject
@Override )
public void processFinish(Uri output) { }
filePath = output; val motObject: MotObject = MotObject(picUri.toString(), motExpText)
} reference!!.setValue(motObject).addOnCompleteListener(object : OnCompleteListener<Void?> {
}); override fun onComplete(task: Task<Void?>) {
if (task.isSuccessful) {
Log.i(TAG, "onComplete: publish = " + task.isSuccessful)
MainActivity.approvalsClass!!.setStatusCode(
UID,
FirebaseClass.MOT_FIREBASE + FirebaseClass.APPROVAL_CONSTANT,
FirebaseClass.APPROVAL_PENDING
)
MainActivity.fragmentManager!!.popBackStack()
} else {
Toast.makeText(context, "Unable to upload", Toast.LENGTH_SHORT).show()
}
MainActivity.viewController!!.progress(View.GONE)
}
})
} }
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE) {
if (grantResults.get(0) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(context, "camera permission granted", Toast.LENGTH_LONG).show()
val cameraIntent: Intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(cameraIntent, ImageSelectorDialog.CAMERA_REQUEST)
} else {
Toast.makeText(context, "camera permission denied", Toast.LENGTH_LONG).show()
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
super.onActivityResult(requestCode, resultCode, data)
ImageSelectorResults().Results(
activity, requestCode, resultCode, data,
filePath, motImage, object : FilepathResponse {
override fun processFinish(output: Uri?) {
filePath = output
}
})
}
}

View File

@@ -1,278 +1,240 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.content.Intent; import android.content.Intent
import android.content.pm.PackageManager; import android.content.pm.PackageManager
import android.net.Uri; import android.net.Uri
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.provider.MediaStore
import android.support.annotation.Nullable; import android.text.TextUtils
import android.support.v4.app.Fragment; import android.util.Log
import android.text.TextUtils; import android.view.LayoutInflater
import android.util.Log; import android.view.View
import android.view.LayoutInflater; import android.view.ViewGroup
import android.view.View; import android.widget.*
import android.view.ViewGroup; import androidx.fragment.app.Fragment
import android.widget.Button; import com.google.android.gms.tasks.OnCompleteListener
import android.widget.EditText; import com.google.android.gms.tasks.Task
import android.widget.ImageView; import com.google.firebase.database.DataSnapshot
import android.widget.ProgressBar; import com.google.firebase.database.DatabaseError
import android.widget.TextView; import com.google.firebase.database.DatabaseReference
import android.widget.Toast; import com.google.firebase.database.ValueEventListener
import com.squareup.picasso.Picasso
import h_mal.appttude.com.driver.Global.*
import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.PrivateHireObject
import h_mal.appttude.com.driver.R
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.FirebaseError;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.ValueEventListener;
import com.squareup.picasso.Picasso;
import java.util.UUID; class PrivateHireLicenseFragment : Fragment() {
private val TAG: String = this.javaClass.simpleName
import h_mal.appttude.com.driver.Global.DateDialog; private var imageView: ImageView? = null
import h_mal.appttude.com.driver.Global.FirebaseClass; var phNo: EditText? = null
import h_mal.appttude.com.driver.Global.ImageSelectorDialog; var phExpiry: EditText? = null
import h_mal.appttude.com.driver.Global.ImageSelectorResults; var filePath: Uri? = null
import h_mal.appttude.com.driver.Objects.PrivateHireObject; var picUri: Uri? = null
import h_mal.appttude.com.driver.R; var Ph_numberString: String? = null
var Ph_exprString: String? = null
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW; var reference: DatabaseReference? = null
import static h_mal.appttude.com.driver.Global.FirebaseClass.*; var privateHireObject: PrivateHireObject? = null
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST; var uploadNew: Boolean? = null
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE; var UID: String? = null
import static h_mal.appttude.com.driver.MainActivity.approvalsClass; override fun onCreate(savedInstanceState: Bundle?) {
import static h_mal.appttude.com.driver.MainActivity.archiveClass; super.onCreate(savedInstanceState)
import static h_mal.appttude.com.driver.MainActivity.fragmentManager; uploadNew = false
import static h_mal.appttude.com.driver.MainActivity.getDateStamp; if (arguments != null) {
import static h_mal.appttude.com.driver.MainActivity.loadImage; Log.i(TAG, "onCreate: args = args exist")
import static h_mal.appttude.com.driver.MainActivity.mDatabase; if (arguments!!.containsKey("user_id")) {
import static h_mal.appttude.com.driver.MainActivity.auth; UID = arguments!!.getString("user_id")
import static h_mal.appttude.com.driver.MainActivity.viewController; } else {
UID = MainActivity.auth!!.currentUser!!.uid
public class PrivateHireLicenseFragment extends Fragment {
private String TAG = this.getClass().getSimpleName();
private ImageView imageView;
ProgressBar pb;
EditText phNo;
EditText phExpiry;
public Uri filePath;
public Uri picUri;
String Ph_numberString;
String Ph_exprString;
DatabaseReference reference;
PrivateHireObject privateHireObject;
Boolean uploadNew;
String UID;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
uploadNew = false;
if (getArguments() != null){
Log.i(TAG, "onCreate: args = args exist");
if (getArguments().containsKey("user_id")){
UID = getArguments().getString("user_id");
}else {
UID = auth.getCurrentUser().getUid();
} }
if (getArguments().containsKey(UPLOAD_NEW)){ if (arguments!!.containsKey(ExecuteFragment.UPLOAD_NEW)) {
uploadNew = true; uploadNew = true
} }
}else{ } else {
UID = auth.getCurrentUser().getUid(); UID = MainActivity.auth!!.currentUser!!.uid
} }
reference =
reference = mDatabase.child(USER_FIREBASE).child(UID) MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
.child(DRIVER_FIREBASE).child(PRIVATE_HIRE_FIREBASE); (UID)!!
)
.child(FirebaseClass.DRIVER_FIREBASE)
.child(FirebaseClass.PRIVATE_HIRE_FIREBASE)
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_private_hire_license, container, false); val view: View = inflater.inflate(R.layout.fragment_private_hire_license, container, false)
MainActivity.viewController!!.progress(View.VISIBLE)
viewController.progress(View.VISIBLE); reference!!.addListenerForSingleValueEvent(object : ValueEventListener {
reference.addListenerForSingleValueEvent(new ValueEventListener() { override fun onDataChange(dataSnapshot: DataSnapshot) {
@Override MainActivity.viewController!!.progress(View.GONE)
public void onDataChange(@NonNull DataSnapshot dataSnapshot) { try {
viewController.progress(View.GONE); privateHireObject = dataSnapshot.getValue(PrivateHireObject::class.java)
} catch (e: Exception) {
try{ Log.e(TAG, "onDataChange: ", e)
privateHireObject = dataSnapshot.getValue(PrivateHireObject.class); } finally {
}catch (Exception e){ if (privateHireObject != null) {
Log.e(TAG, "onDataChange: ", e); picUri = Uri.parse(privateHireObject.getPhImageString())
}finally { Ph_numberString = privateHireObject.getPhNumber()
if (privateHireObject != null){ Ph_exprString = privateHireObject.phExpiry
picUri = Uri.parse(privateHireObject.getPhImageString()); Log.i(TAG, "onDataChange: uploadNew = " + uploadNew)
Ph_numberString = privateHireObject.getPhNumber(); if (!uploadNew!!) {
Ph_exprString = privateHireObject.getPhExpiry(); phNo!!.setText(Ph_numberString)
phExpiry!!.setText(Ph_exprString)
Log.i(TAG, "onDataChange: uploadNew = " + uploadNew);
if (!uploadNew){
phNo.setText(Ph_numberString);
phExpiry.setText(Ph_exprString);
Picasso.get() Picasso.get()
.load(picUri) .load(picUri)
.into(loadImage(pb,imageView)); .into(MainActivity.loadImage(imageView))
} }
} }
} }
} }
@Override override fun onCancelled(databaseError: DatabaseError) {
public void onCancelled(@NonNull DatabaseError databaseError) { MainActivity.viewController!!.progress(View.GONE)
viewController.progress(View.GONE);
} }
}); })
val uploadPH: TextView = view.findViewById(R.id.uploadphlic)
TextView uploadPH = view.findViewById(R.id.uploadphlic); imageView = view.findViewById(R.id.imageView2)
imageView = view.findViewById(R.id.imageView2); phNo = view.findViewById(R.id.ph_no)
pb = view.findViewById(R.id.pb_priv); phExpiry = view.findViewById(R.id.ph_expiry)
phExpiry.setOnClickListener(object : View.OnClickListener {
phNo = view.findViewById(R.id.ph_no); override fun onClick(v: View) {
phExpiry = view.findViewById(R.id.ph_expiry); val dateDialog: DateDialog = DateDialog((context)!!)
dateDialog.init(phExpiry)
phExpiry.setOnClickListener(new View.OnClickListener() { dateDialog.show()
@Override
public void onClick(View v) {
DateDialog dateDialog = new DateDialog(getContext());
dateDialog.init(phExpiry);
dateDialog.show();
} }
}); })
val submit: Button = view.findViewById(R.id.submit)
Button submit = view.findViewById(R.id.submit); uploadPH.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
uploadPH.setOnClickListener(new View.OnClickListener() { val imageSelectorDialog: ImageSelectorDialog = ImageSelectorDialog((context)!!)
@Override imageSelectorDialog.setImageName("private_hire")
public void onClick(View v) { imageSelectorDialog.show()
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
imageSelectorDialog.setImageName("private_hire");
imageSelectorDialog.show();
} }
}); })
submit.setOnClickListener(object : View.OnClickListener {
submit.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override Ph_numberString = phNo.getText().toString().trim({ it <= ' ' })
public void onClick(View v) { Ph_exprString = phExpiry.getText().toString().trim({ it <= ' ' })
Ph_numberString = phNo.getText().toString().trim();
Ph_exprString = phExpiry.getText().toString().trim();
//validation for data then submit //validation for data then submit
if (!TextUtils.isEmpty(Ph_numberString) && if (!TextUtils.isEmpty(Ph_numberString) &&
!TextUtils.isEmpty(Ph_exprString)){ !TextUtils.isEmpty(Ph_exprString)
viewController.progress(View.VISIBLE); ) {
if (filePath == null && picUri == null){ MainActivity.viewController!!.progress(View.VISIBLE)
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show(); if (filePath == null && picUri == null) {
viewController.progress(View.GONE); Toast.makeText(context, "No Driver image", Toast.LENGTH_SHORT).show()
}else { MainActivity.viewController!!.progress(View.GONE)
if (filePath != null){ } else {
Log.i(TAG, "onClick: new Image uploaded"); if (filePath != null) {
new FirebaseClass(getContext(),filePath,new Response(){ Log.i(TAG, "onClick: new Image uploaded")
@Override FirebaseClass(context, filePath, object : FirebaseClass.Response {
public void processFinish(Uri output) { override fun processFinish(output: Uri?) {
Log.i(TAG, "processFinish: "); Log.i(TAG, "processFinish: ")
if (output != null){ if (output != null) {
picUri = output; picUri = output
publishObject(); publishObject()
} else {
}else { Toast.makeText(
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show(); context,
viewController.progress(View.GONE); R.string.unsuccessful,
Toast.LENGTH_SHORT
).show()
MainActivity.viewController!!.progress(View.GONE)
} }
} }
}).uploadImage(PRIVATE_HIRE_FIREBASE,PRIVATE_HIRE_FIREBASE + getDateStamp()); }).uploadImage(
}else{ FirebaseClass.PRIVATE_HIRE_FIREBASE,
Log.i(TAG, "onClick: pushing with same image"); FirebaseClass.PRIVATE_HIRE_FIREBASE + MainActivity.Companion.dateStamp
publishObject(); )
} else {
Log.i(TAG, "onClick: pushing with same image")
publishObject()
} }
} }
}else { } else {
if (TextUtils.isEmpty(Ph_numberString)){ if (TextUtils.isEmpty(Ph_numberString)) {
phNo.setError("Field required"); phNo.setError("Field required")
} }
if (TextUtils.isEmpty(Ph_exprString)){ if (TextUtils.isEmpty(Ph_exprString)) {
phExpiry.setError("Field required"); phExpiry.setError("Field required")
} }
if (picUri == null){ if (picUri == null) {
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show(); Toast.makeText(
context,
getString(R.string.image_required),
Toast.LENGTH_SHORT
).show()
} }
} }
} }
}); })
return view
return view;
} }
private void publishObject(){ private fun publishObject() {
if ((uploadNew)!!) {
if (uploadNew){ MainActivity.archiveClass!!.archiveRecord(
archiveClass.archiveRecord(UID,PRIVATE_HIRE_FIREBASE,privateHireObject); UID,
FirebaseClass.PRIVATE_HIRE_FIREBASE,
privateHireObject
)
} }
val privateHireObjectNew: PrivateHireObject =
PrivateHireObject privateHireObjectNew = new PrivateHireObject(picUri.toString(),Ph_numberString,Ph_exprString); PrivateHireObject(picUri.toString(), Ph_numberString, Ph_exprString)
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE)
mDatabase.child(USER_FIREBASE).child(UID).child(DRIVER_FIREBASE).child(PRIVATE_HIRE_FIREBASE) .child((UID)!!).child(FirebaseClass.DRIVER_FIREBASE)
.setValue(privateHireObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() { .child(FirebaseClass.PRIVATE_HIRE_FIREBASE)
@Override .setValue(privateHireObjectNew)
public void onComplete(@NonNull Task<Void> task) { .addOnCompleteListener(object : OnCompleteListener<Void?> {
if (task.isSuccessful()){ override fun onComplete(task: Task<Void?>) {
Log.i(TAG, "onComplete: publish = " + task.isSuccessful()); if (task.isSuccessful) {
approvalsClass.setStatusCode(UID,PRIVATE_HIRE_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING); Log.i(TAG, "onComplete: publish = " + task.isSuccessful)
fragmentManager.popBackStack(); MainActivity.approvalsClass!!.setStatusCode(
}else { UID,
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show(); FirebaseClass.PRIVATE_HIRE_FIREBASE + FirebaseClass.APPROVAL_CONSTANT,
FirebaseClass.APPROVAL_PENDING
)
MainActivity.fragmentManager!!.popBackStack()
} else {
Toast.makeText(context, R.string.unsuccessful, Toast.LENGTH_SHORT)
.show()
}
MainActivity.viewController!!.progress(View.GONE)
} }
viewController.progress(View.GONE); })
}
});
} }
@Override override fun onRequestPermissionsResult(
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { requestCode: Int,
super.onRequestPermissionsResult(requestCode, permissions, grantResults); permissions: Array<String>,
if (requestCode == MY_CAMERA_PERMISSION_CODE) { grantResults: IntArray
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { ) {
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show(); super.onRequestPermissionsResult(requestCode, permissions, grantResults)
Intent cameraIntent = new if (requestCode == ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE) {
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); if (grantResults.get(0) == PackageManager.PERMISSION_GRANTED) {
startActivityForResult(cameraIntent, CAMERA_REQUEST); Toast.makeText(context, "camera permission granted", Toast.LENGTH_LONG).show()
val cameraIntent: Intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(cameraIntent, ImageSelectorDialog.CAMERA_REQUEST)
} else { } else {
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show(); Toast.makeText(context, "camera permission denied", Toast.LENGTH_LONG).show()
} }
} }
} }
@Override override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data)
super.onActivityResult(requestCode, resultCode, data); ImageSelectorResults().Results(
activity, requestCode, resultCode, data,
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data, filePath, imageView, object : FilepathResponse {
filePath,imageView,new ImageSelectorResults.FilepathResponse() { override fun processFinish(output: Uri?) {
@Override filePath = output
public void processFinish(Uri output) { }
filePath = output; })
}
});
} }
}
}

View File

@@ -1,285 +1,242 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.content.Context; import android.content.Intent
import android.content.Intent; import android.content.pm.PackageManager
import android.content.pm.PackageManager; import android.net.Uri
import android.net.Uri; import android.os.Bundle
import android.os.Bundle; import android.provider.MediaStore
import android.support.annotation.NonNull; import android.text.TextUtils
import android.support.v4.app.Fragment; import android.util.Log
import android.text.TextUtils; import android.view.LayoutInflater
import android.util.Log; import android.view.View
import android.view.LayoutInflater; import android.view.ViewGroup
import android.view.View; import android.widget.*
import android.view.ViewGroup; import androidx.fragment.app.Fragment
import android.widget.Button; import com.google.android.gms.tasks.OnCompleteListener
import android.widget.EditText; import com.google.android.gms.tasks.Task
import android.widget.ImageView; import com.google.firebase.database.DataSnapshot
import android.widget.ProgressBar; import com.google.firebase.database.DatabaseError
import android.widget.TextView; import com.google.firebase.database.DatabaseReference
import android.widget.Toast; import com.google.firebase.database.ValueEventListener
import com.squareup.picasso.Picasso
import com.google.android.gms.tasks.OnCompleteListener; import h_mal.appttude.com.driver.Global.*
import com.google.android.gms.tasks.Task; import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
import com.google.firebase.database.DataSnapshot; import h_mal.appttude.com.driver.MainActivity
import com.google.firebase.database.DatabaseError; import h_mal.appttude.com.driver.Objects.PrivateHireVehicleObject
import com.google.firebase.database.DatabaseReference; import h_mal.appttude.com.driver.R
import com.google.firebase.database.ValueEventListener;
import com.squareup.picasso.Picasso;
import h_mal.appttude.com.driver.Global.DateDialog;
import h_mal.appttude.com.driver.Global.FirebaseClass;
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
import h_mal.appttude.com.driver.Objects.PrivateHireVehicleObject;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
import static h_mal.appttude.com.driver.MainActivity.auth;
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
import static h_mal.appttude.com.driver.MainActivity.loadImage;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
import static h_mal.appttude.com.driver.MainActivity.viewController;
public class PrivateHireVehicleFragment extends Fragment { class PrivateHireVehicleFragment : Fragment() {
private val TAG: String = this.javaClass.simpleName
private String TAG = this.getClass().getSimpleName(); private var imageView: ImageView? = null
var phNo: EditText? = null
private ImageView imageView; var phExpiry: EditText? = null
ProgressBar pb; var filePath: Uri? = null
var picUri: Uri? = null
EditText phNo; var Ph_numberString: String? = null
EditText phExpiry; var Ph_exprString: String? = null
var reference: DatabaseReference? = null
public Uri filePath; var privateHireObject: PrivateHireVehicleObject? = null
var uploadNew: Boolean? = null
public Uri picUri; var UID: String? = null
String Ph_numberString; override fun onCreate(savedInstanceState: Bundle?) {
String Ph_exprString; super.onCreate(savedInstanceState)
uploadNew = false
DatabaseReference reference; if (arguments != null) {
Log.i(TAG, "onCreate: args = args exist")
PrivateHireVehicleObject privateHireObject; if (arguments!!.containsKey("user_id")) {
Boolean uploadNew; UID = arguments!!.getString("user_id")
String UID; } else {
UID = MainActivity.auth!!.currentUser!!.uid
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
uploadNew = false;
if (getArguments() != null){
Log.i(TAG, "onCreate: args = args exist");
if (getArguments().containsKey("user_id")){
UID = getArguments().getString("user_id");
}else {
UID = auth.getCurrentUser().getUid();
} }
if (getArguments().containsKey(UPLOAD_NEW)){ if (arguments!!.containsKey(ExecuteFragment.UPLOAD_NEW)) {
uploadNew = true; uploadNew = true
} }
}else{ } else {
UID = auth.getCurrentUser().getUid(); UID = MainActivity.auth!!.currentUser!!.uid
} }
reference =
reference = mDatabase.child(USER_FIREBASE).child(UID) MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
.child(VEHICLE_FIREBASE).child(PRIVATE_HIRE_VEHICLE_LICENSE); (UID)!!
)
.child(FirebaseClass.VEHICLE_FIREBASE)
.child(FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE)
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_private_hire_vehicle, container, false); val view: View = inflater.inflate(R.layout.fragment_private_hire_vehicle, container, false)
MainActivity.viewController!!.progress(View.VISIBLE)
viewController.progress(View.VISIBLE); reference!!.addListenerForSingleValueEvent(valueEventListener)
reference.addListenerForSingleValueEvent(valueEventListener); val uploadPH: TextView = view.findViewById(R.id.uploadphlic)
imageView = view.findViewById(R.id.imageView2)
TextView uploadPH = view.findViewById(R.id.uploadphlic); phNo = view.findViewById(R.id.ph_no)
imageView = view.findViewById(R.id.imageView2); phExpiry = view.findViewById(R.id.ph_expiry)
pb = view.findViewById(R.id.pb_priv); phExpiry.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
phNo = view.findViewById(R.id.ph_no); val dateDialog: DateDialog = DateDialog((context)!!)
phExpiry = view.findViewById(R.id.ph_expiry); dateDialog.init(phExpiry)
dateDialog.show()
phExpiry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DateDialog dateDialog = new DateDialog(getContext());
dateDialog.init(phExpiry);
dateDialog.show();
} }
}); })
val submit: Button = view.findViewById(R.id.submit)
Button submit = view.findViewById(R.id.submit); submit.setOnClickListener(submitClick)
submit.setOnClickListener(submitClick); uploadPH.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
uploadPH.setOnClickListener(new View.OnClickListener() { val imageSelectorDialog: ImageSelectorDialog = ImageSelectorDialog((context)!!)
@Override imageSelectorDialog.setImageName("private_hire")
public void onClick(View v) { imageSelectorDialog.show()
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
imageSelectorDialog.setImageName("private_hire");
imageSelectorDialog.show();
} }
}); })
return view
return view;
} }
private View.OnClickListener submitClick = new View.OnClickListener() { private val submitClick: View.OnClickListener = object : View.OnClickListener {
@Override override fun onClick(v: View) {
public void onClick(View v) { Ph_numberString = phNo!!.text.toString().trim({ it <= ' ' })
Ph_numberString = phNo.getText().toString().trim(); Ph_exprString = phExpiry!!.text.toString().trim({ it <= ' ' })
Ph_exprString = phExpiry.getText().toString().trim();
//validation for data then submit //validation for data then submit
if (!TextUtils.isEmpty(Ph_numberString) && if (!TextUtils.isEmpty(Ph_numberString) &&
!TextUtils.isEmpty(Ph_exprString)){ !TextUtils.isEmpty(Ph_exprString)
viewController.progress(View.VISIBLE); ) {
if (filePath == null && picUri == null){ MainActivity.viewController!!.progress(View.VISIBLE)
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show(); if (filePath == null && picUri == null) {
viewController.progress(View.GONE); Toast.makeText(context, "No Driver image", Toast.LENGTH_SHORT).show()
}else { MainActivity.viewController!!.progress(View.GONE)
if (filePath != null){ } else {
Log.i(TAG, "onClick: new Image uploaded"); if (filePath != null) {
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){ Log.i(TAG, "onClick: new Image uploaded")
@Override FirebaseClass(context, filePath, object : FirebaseClass.Response {
public void processFinish(Uri output) { override fun processFinish(output: Uri?) {
Log.i(TAG, "processFinish: "); Log.i(TAG, "processFinish: ")
if (output != null){ if (output != null) {
picUri = output; picUri = output
publishObject(); publishObject()
} else {
}else { Toast.makeText(
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show(); context,
viewController.progress(View.GONE); R.string.unsuccessful,
Toast.LENGTH_SHORT
).show()
MainActivity.viewController!!.progress(View.GONE)
} }
} }
}).uploadImage(PRIVATE_HIRE_FIREBASE,PRIVATE_HIRE_FIREBASE + getDateStamp()); }).uploadImage(
}else{ FirebaseClass.PRIVATE_HIRE_FIREBASE,
Log.i(TAG, "onClick: pushing with same image"); FirebaseClass.PRIVATE_HIRE_FIREBASE + MainActivity.Companion.dateStamp
publishObject(); )
} else {
Log.i(TAG, "onClick: pushing with same image")
publishObject()
} }
} }
}else {
if (TextUtils.isEmpty(Ph_numberString)){
phNo.setError("Field required");
}
if (TextUtils.isEmpty(Ph_exprString)){
phExpiry.setError("Field required");
}
if (picUri == null){
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
}
}
}
};
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
viewController.progress(View.GONE);
try{
privateHireObject = dataSnapshot.getValue(PrivateHireVehicleObject.class);
}catch (Exception e){
Log.e(TAG, "onDataChange: ", e);
}finally {
if (privateHireObject != null){
picUri = Uri.parse(privateHireObject.getPhCarImageString());
Ph_numberString = privateHireObject.getPhCarNumber();
Ph_exprString = privateHireObject.getPhCarExpiry();
Log.i(TAG, "onDataChange: uploadNew = " + uploadNew);
if (!uploadNew){
phNo.setText(Ph_numberString);
phExpiry.setText(Ph_exprString);
Picasso.get()
.load(picUri)
.into(loadImage(pb,imageView));
}
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
viewController.progress(View.GONE);
}
};
private void publishObject(){
if (uploadNew){
archiveClass.archiveRecord(UID,PRIVATE_HIRE_VEHICLE_LICENSE,privateHireObject);
}
PrivateHireVehicleObject privateHireObjectNew = new PrivateHireVehicleObject(picUri.toString(),Ph_numberString,Ph_exprString);
reference.setValue(privateHireObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
approvalsClass.setStatusCode(UID,PRIVATE_HIRE_VEHICLE_LICENSE + APPROVAL_CONSTANT,APPROVAL_PENDING);
fragmentManager.popBackStack();
}else {
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
}
viewController.progress(View.GONE);
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
Intent cameraIntent = new
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
} else { } else {
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show(); if (TextUtils.isEmpty(Ph_numberString)) {
phNo!!.error = "Field required"
}
if (TextUtils.isEmpty(Ph_exprString)) {
phExpiry!!.error = "Field required"
}
if (picUri == null) {
Toast.makeText(
context,
getString(R.string.image_required),
Toast.LENGTH_SHORT
).show()
}
} }
}
}
var valueEventListener: ValueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
MainActivity.viewController!!.progress(View.GONE)
try {
privateHireObject = dataSnapshot.getValue(
PrivateHireVehicleObject::class.java
)
} catch (e: Exception) {
Log.e(TAG, "onDataChange: ", e)
} finally {
if (privateHireObject != null) {
picUri = Uri.parse(privateHireObject.getPhCarImageString())
Ph_numberString = privateHireObject.getPhCarNumber()
Ph_exprString = privateHireObject.getPhCarExpiry()
Log.i(TAG, "onDataChange: uploadNew = " + uploadNew)
if (!uploadNew!!) {
phNo!!.setText(Ph_numberString)
phExpiry!!.setText(Ph_exprString)
Picasso.get()
.load(picUri)
.into(MainActivity.loadImage(imageView))
}
}
}
}
override fun onCancelled(databaseError: DatabaseError) {
MainActivity.viewController!!.progress(View.GONE)
} }
} }
@Override private fun publishObject() {
public void onActivityResult(int requestCode, int resultCode, Intent data) { if ((uploadNew)!!) {
super.onActivityResult(requestCode, resultCode, data); MainActivity.archiveClass!!.archiveRecord(
UID,
new ImageSelectorResults().Results(getActivity(), requestCode, resultCode, data, FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE,
filePath, imageView, new ImageSelectorResults.FilepathResponse() { privateHireObject
@Override )
public void processFinish(Uri output) { }
filePath = output; val privateHireObjectNew: PrivateHireVehicleObject =
PrivateHireVehicleObject(picUri.toString(), Ph_numberString, Ph_exprString)
reference!!.setValue(privateHireObjectNew)
.addOnCompleteListener(object : OnCompleteListener<Void?> {
override fun onComplete(task: Task<Void?>) {
if (task.isSuccessful) {
Log.i(TAG, "onComplete: publish = " + task.isSuccessful)
MainActivity.approvalsClass!!.setStatusCode(
UID,
FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE + FirebaseClass.APPROVAL_CONSTANT,
FirebaseClass.APPROVAL_PENDING
)
MainActivity.fragmentManager!!.popBackStack()
} else {
Toast.makeText(context, R.string.unsuccessful, Toast.LENGTH_SHORT)
.show()
} }
}); MainActivity.viewController!!.progress(View.GONE)
}
})
} }
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE) {
if (grantResults.get(0) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(context, "camera permission granted", Toast.LENGTH_LONG).show()
val cameraIntent: Intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(cameraIntent, ImageSelectorDialog.CAMERA_REQUEST)
} else {
Toast.makeText(context, "camera permission denied", Toast.LENGTH_LONG).show()
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
super.onActivityResult(requestCode, resultCode, data)
ImageSelectorResults().Results(
activity, requestCode, resultCode, data,
filePath, imageView, object : FilepathResponse {
override fun processFinish(output: Uri?) {
filePath = output
}
})
}
}

View File

@@ -1,188 +1,194 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.view.LayoutInflater
import android.support.v4.app.Fragment; import android.view.View
import android.support.v7.widget.CardView; import android.view.ViewGroup
import android.view.LayoutInflater; import android.widget.ImageView
import android.view.View; import android.widget.TextView
import android.view.ViewGroup; import androidx.cardview.widget.CardView
import android.widget.ImageView; import androidx.fragment.app.Fragment
import android.widget.TextView; import com.google.firebase.database.DataSnapshot
import com.google.firebase.database.DatabaseError
import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.ValueEventListener
import h_mal.appttude.com.driver.Global.ExecuteFragment
import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.ApprovalsObject
import h_mal.appttude.com.driver.Objects.WholeDriverObject
import h_mal.appttude.com.driver.R
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.ValueEventListener;
import h_mal.appttude.com.driver.Objects.ApprovalsObject; class VehicleOverallFragment : Fragment() {
import h_mal.appttude.com.driver.Objects.WholeDriverObject; var vehicleApr: ImageView? = null
import h_mal.appttude.com.driver.R; var insuranceApr: ImageView? = null
var motApr: ImageView? = null
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment; var logbookApr: ImageView? = null
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE; private var privateHireCarApr: ImageView? = null
import static h_mal.appttude.com.driver.MainActivity.approvalsClass; var insuranceExp: TextView? = null
import static h_mal.appttude.com.driver.MainActivity.archiveClass; var motExp: TextView? = null
import static h_mal.appttude.com.driver.MainActivity.auth; private var privateHireExp: TextView? = null
import static h_mal.appttude.com.driver.MainActivity.mDatabase; private var vehicleProfile: CardView? = null
import static h_mal.appttude.com.driver.MainActivity.viewController; private var insurance: CardView? = null
private var mot: CardView? = null
public class VehicleOverallFragment extends Fragment { private var logbook: CardView? = null
private var privateHireCar: CardView? = null
ImageView vehicleApr; private var reference: DatabaseReference? = null
ImageView insuranceApr; private var wholeDriverObject: WholeDriverObject? = null
ImageView motApr; override fun onCreate(savedInstanceState: Bundle?) {
ImageView logbookApr; super.onCreate(savedInstanceState)
private ImageView privateHireCarApr; reference =
TextView insuranceExp; MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
TextView motExp; MainActivity.auth!!.currentUser!!.uid
private TextView privateHireExp; )
private CardView vehicleProfile;
private CardView insurance;
private CardView mot;
private CardView logbook;
private CardView privateHireCar;
private DatabaseReference reference;
private WholeDriverObject wholeDriverObject;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
reference = mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid());
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_vehicle_overall, container, false); val view: View = inflater.inflate(R.layout.fragment_vehicle_overall, container, false)
vehicleProfile = view.findViewById(R.id.vehicle_prof)
vehicleProfile = view.findViewById(R.id.vehicle_prof); insurance = view.findViewById(R.id.insurance)
insurance = view.findViewById(R.id.insurance); mot = view.findViewById(R.id.mot)
mot = view.findViewById(R.id.mot); logbook = view.findViewById(R.id.logbook)
logbook = view.findViewById(R.id.logbook); privateHireCar = view.findViewById(R.id.private_hire_vehicle_license)
privateHireCar = view.findViewById(R.id.private_hire_vehicle_license); vehicleApr = view.findViewById(R.id.approval_vehicle)
insuranceApr = view.findViewById(R.id.approval_insurance)
vehicleApr = view.findViewById(R.id.approval_vehicle); motApr = view.findViewById(R.id.approval_mot)
insuranceApr = view.findViewById(R.id.approval_insurance); logbookApr = view.findViewById(R.id.approval_lb)
motApr = view.findViewById(R.id.approval_mot); privateHireCarApr = view.findViewById(R.id.approval_ph_car)
logbookApr = view.findViewById(R.id.approval_lb); insuranceExp = view.findViewById(R.id.ins_exp)
privateHireCarApr = view.findViewById(R.id.approval_ph_car); motExp = view.findViewById(R.id.mot_exp)
privateHireExp = view.findViewById(R.id.ph_car_exp)
insuranceExp = view.findViewById(R.id.ins_exp); insuranceExp.setVisibility(View.GONE)
motExp = view.findViewById(R.id.mot_exp); motExp.setVisibility(View.GONE)
privateHireExp = view.findViewById(R.id.ph_car_exp); privateHireExp.setVisibility(View.GONE)
MainActivity.viewController!!.progress(View.VISIBLE)
insuranceExp.setVisibility(View.GONE); reference!!.addListenerForSingleValueEvent(valueEventListener)
motExp.setVisibility(View.GONE); return view
privateHireExp.setVisibility(View.GONE);
viewController.progress(View.VISIBLE);
reference.addListenerForSingleValueEvent(valueEventListener);
return view;
} }
ValueEventListener valueEventListener = new ValueEventListener() { var valueEventListener: ValueEventListener = object : ValueEventListener {
@Override override fun onDataChange(dataSnapshot: DataSnapshot) {
public void onDataChange(@NonNull DataSnapshot dataSnapshot) { wholeDriverObject = dataSnapshot.getValue(WholeDriverObject::class.java)
wholeDriverObject = dataSnapshot.getValue(WholeDriverObject.class); if (wholeDriverObject!!.approvalsObject != null) {
val approvalsObject: ApprovalsObject? = wholeDriverObject.approvalsObject
if (wholeDriverObject.approvalsObject != null) { vehicleApr!!.setImageResource(
ApprovalsObject approvalsObject = wholeDriverObject.getApprovalsObject(); MainActivity.approvalsClass!!.setImageResource(
approvalsObject.vehicle_details_approval
vehicleApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getVehicle_details_approval())); )
insuranceApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getInsurance_details_approval())); )
motApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getMot_details_approval())); insuranceApr!!.setImageResource(
logbookApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getLog_book_approval())); MainActivity.approvalsClass!!.setImageResource(
privateHireCarApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getPh_car_approval())); approvalsObject.insurance_details_approval
)
)
motApr!!.setImageResource(
MainActivity.approvalsClass!!.setImageResource(
approvalsObject.getMot_details_approval()
)
)
logbookApr!!.setImageResource(
MainActivity.approvalsClass!!.setImageResource(
approvalsObject.getLog_book_approval()
)
)
privateHireCarApr!!.setImageResource(
MainActivity.approvalsClass!!.setImageResource(
approvalsObject.getPh_car_approval()
)
)
} }
if (wholeDriverObject!!.vehicle_profile != null) {
if (wholeDriverObject.vehicle_profile != null){ if (wholeDriverObject.getVehicle_profile().insurance_details != null) {
if (wholeDriverObject.getVehicle_profile().insurance_details != null){ insuranceExp!!.visibility = View.VISIBLE
insuranceExp.setVisibility(View.VISIBLE); insuranceExp!!.text = "Expiry: " + wholeDriverObject.getVehicle_profile().getInsurance_details()
insuranceExp.setText("Expiry: " + wholeDriverObject.getVehicle_profile().getInsurance_details().getExpiryDate()); .getExpiryDate()
} }
if (wholeDriverObject.getVehicle_profile().mot_details != null){ if (wholeDriverObject.getVehicle_profile().mot_details != null) {
motExp.setVisibility(View.VISIBLE); motExp!!.visibility = View.VISIBLE
motExp.setText("Expiry: " + wholeDriverObject.getVehicle_profile().getMot_details().getMotExpiry()); motExp!!.text = "Expiry: " + wholeDriverObject.getVehicle_profile().getMot_details()
.getMotExpiry()
} }
if (wholeDriverObject.getVehicle_profile().private_hire_vehicle != null){ if (wholeDriverObject.getVehicle_profile().private_hire_vehicle != null) {
privateHireExp.setVisibility(View.VISIBLE); privateHireExp!!.visibility = View.VISIBLE
privateHireExp.setText("Expiry: " + wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject().getPhCarExpiry()); privateHireExp!!.text = "Expiry: " + wholeDriverObject.getVehicle_profile()
.getPrivateHireVehicleObject().getPhCarExpiry()
} }
} }
vehicleProfile!!.setOnClickListener(object : View.OnClickListener {
vehicleProfile.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override if (wholeDriverObject!!.vehicle_profile == null) {
public void onClick(View v) { ExecuteFragment.executeFragment(VehicleSetupFragment())
if (wholeDriverObject.vehicle_profile == null){ } else {
executeFragment(new VehicleSetupFragment()); MainActivity.archiveClass!!.openDialogArchive(
}else { context,
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getVehicle_details() wholeDriverObject.getVehicle_profile().getVehicle_details(),
,new VehicleSetupFragment()); VehicleSetupFragment()
)
} }
} }
}); })
insurance!!.setOnClickListener(object : View.OnClickListener {
insurance.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override if (wholeDriverObject!!.vehicle_profile == null) {
public void onClick(View v) { ExecuteFragment.executeFragment(InsuranceFragment())
if (wholeDriverObject.vehicle_profile == null){ } else {
executeFragment(new InsuranceFragment()); MainActivity.archiveClass!!.openDialogArchive(
}else { context,
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getInsurance_details() wholeDriverObject.getVehicle_profile().getInsurance_details(),
,new InsuranceFragment()); InsuranceFragment()
)
} }
} }
}); })
mot!!.setOnClickListener(object : View.OnClickListener {
mot.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override if (wholeDriverObject!!.vehicle_profile == null) {
public void onClick(View v) { ExecuteFragment.executeFragment(MotFragment())
if (wholeDriverObject.vehicle_profile == null){ } else {
executeFragment(new MotFragment()); MainActivity.archiveClass!!.openDialogArchive(
}else { context,
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getMot_details() wholeDriverObject.getVehicle_profile().getMot_details(),
,new MotFragment()); MotFragment()
)
} }
} }
}); })
logbook!!.setOnClickListener(object : View.OnClickListener {
logbook.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override if (wholeDriverObject!!.vehicle_profile == null) {
public void onClick(View v) { ExecuteFragment.executeFragment(logbookFragment())
if (wholeDriverObject.vehicle_profile == null){ } else {
executeFragment(new logbookFragment()); MainActivity.archiveClass!!.openDialogArchive(
}else { context,
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getLog_book() wholeDriverObject.getVehicle_profile().getLog_book(),
,new logbookFragment()); logbookFragment()
)
} }
} }
}); })
privateHireCar!!.setOnClickListener(object : View.OnClickListener {
privateHireCar.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override if (wholeDriverObject!!.vehicle_profile == null) {
public void onClick(View v) { ExecuteFragment.executeFragment(PrivateHireVehicleFragment())
if (wholeDriverObject.vehicle_profile == null){ } else {
executeFragment(new PrivateHireVehicleFragment()); MainActivity.archiveClass!!.openDialogArchive(
}else { context,
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject() wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject(),
,new PrivateHireVehicleFragment()); PrivateHireVehicleFragment()
)
} }
} }
}); })
MainActivity.viewController!!.progress(View.GONE)
viewController.progress(View.GONE);
} }
@Override override fun onCancelled(databaseError: DatabaseError) {
public void onCancelled(@NonNull DatabaseError databaseError) { MainActivity.viewController!!.progress(View.GONE)
viewController.progress(View.GONE);
} }
}; }
}
}

View File

@@ -1,223 +1,226 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.text.TextUtils
import android.support.v4.app.Fragment; import android.util.Log
import android.text.TextUtils; import android.view.LayoutInflater
import android.util.Log; import android.view.View
import android.view.LayoutInflater; import android.view.ViewGroup
import android.view.View; import android.widget.Button
import android.view.ViewGroup; import android.widget.CheckBox
import android.widget.Button; import android.widget.EditText
import android.widget.CheckBox; import android.widget.Toast
import android.widget.EditText; import androidx.fragment.app.Fragment
import android.widget.TextView; import com.google.android.gms.tasks.OnCompleteListener
import android.widget.Toast; import com.google.android.gms.tasks.Task
import com.google.firebase.database.DataSnapshot
import com.google.android.gms.tasks.OnCompleteListener; import com.google.firebase.database.DatabaseError
import com.google.android.gms.tasks.Task; import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.ValueEventListener
import com.google.firebase.database.DatabaseError; import h_mal.appttude.com.driver.Global.DateDialog
import com.google.firebase.database.DatabaseReference; import h_mal.appttude.com.driver.Global.ExecuteFragment
import com.google.firebase.database.ValueEventListener; import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Global.DateDialog; import h_mal.appttude.com.driver.Objects.VehicleProfileObject
import h_mal.appttude.com.driver.Objects.DriversLicenseObject; import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.Objects.InsuranceObject;
import h_mal.appttude.com.driver.Objects.LogbookObject;
import h_mal.appttude.com.driver.Objects.MotObject;
import h_mal.appttude.com.driver.Objects.VehicleProfileObject;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_DETAILS_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
import static h_mal.appttude.com.driver.MainActivity.auth;
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
import static h_mal.appttude.com.driver.MainActivity.viewController;
public class VehicleSetupFragment extends Fragment { class VehicleSetupFragment : Fragment() {
private val TAG: String = this.javaClass.simpleName
private String TAG = this.getClass().getSimpleName(); var reg: EditText? = null
var make: EditText? = null
EditText reg; var model: EditText? = null
EditText make; var color: EditText? = null
EditText model; var keeperName: EditText? = null
EditText color; var address: EditText? = null
EditText keeperName; var postcode: EditText? = null
EditText address; var startDate: EditText? = null
EditText postcode; var seized: CheckBox? = null
EditText startDate; var Submit: Button? = null
CheckBox seized; var ref: DatabaseReference? = null
Button Submit; var vehicleProfileObject: VehicleProfileObject? = null
var uploadNew: Boolean? = null
DatabaseReference ref; var UID: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
VehicleProfileObject vehicleProfileObject; super.onCreate(savedInstanceState)
Boolean uploadNew; uploadNew = false
String UID; if (arguments != null) {
Log.i(TAG, "onCreate: args = args exist")
@Override if (arguments!!.containsKey("user_id")) {
public void onCreate(Bundle savedInstanceState) { UID = arguments!!.getString("user_id")
super.onCreate(savedInstanceState); } else {
uploadNew = false; UID = MainActivity.auth!!.currentUser!!.uid
if (getArguments() != null){
Log.i(TAG, "onCreate: args = args exist");
if (getArguments().containsKey("user_id")){
UID = getArguments().getString("user_id");
}else {
UID = auth.getCurrentUser().getUid();
} }
if (getArguments().containsKey(UPLOAD_NEW)){ if (arguments!!.containsKey(ExecuteFragment.UPLOAD_NEW)) {
uploadNew = true; uploadNew = true
} }
}else{ } else {
UID = auth.getCurrentUser().getUid(); UID = MainActivity.auth!!.currentUser!!.uid
} }
ref = MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
ref = mDatabase.child(USER_FIREBASE).child(UID).child(VEHICLE_FIREBASE); (UID)!!
).child(FirebaseClass.VEHICLE_FIREBASE)
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_vehicle_setup, container, false); val view: View = inflater.inflate(R.layout.fragment_vehicle_setup, container, false)
reg = view.findViewById(R.id.reg)
reg = view.findViewById(R.id.reg); make = view.findViewById(R.id.make)
make = view.findViewById(R.id.make); model = view.findViewById(R.id.model)
model = view.findViewById(R.id.model); color = view.findViewById(R.id.colour)
color = view.findViewById(R.id.colour); keeperName = view.findViewById(R.id.keeper_name)
keeperName = view.findViewById(R.id.keeper_name); address = view.findViewById(R.id.address)
address = view.findViewById(R.id.address); postcode = view.findViewById(R.id.postcode)
postcode = view.findViewById(R.id.postcode); startDate = view.findViewById(R.id.start_date)
startDate = view.findViewById(R.id.start_date); seized = view.findViewById(R.id.seized)
seized = view.findViewById(R.id.seized); Submit = view.findViewById(R.id.submit_vehicle)
Submit = view.findViewById(R.id.submit_vehicle); startDate.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
startDate.setOnClickListener(new View.OnClickListener() { val dateDialog: DateDialog = DateDialog((context)!!)
@Override dateDialog.init(startDate)
public void onClick(View v) {
DateDialog dateDialog = new DateDialog(getContext());
dateDialog.init(startDate);
} }
}); })
MainActivity.viewController!!.progress(View.VISIBLE)
viewController.progress(View.VISIBLE); ref!!.addListenerForSingleValueEvent(valueEventListener)
ref.addListenerForSingleValueEvent(valueEventListener); Submit.setOnClickListener(submitOnClickListener)
return view
Submit.setOnClickListener(submitOnClickListener);
return view;
} }
ValueEventListener valueEventListener = new ValueEventListener(){ var valueEventListener: ValueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
@Override MainActivity.viewController!!.progress(View.GONE)
public void onDataChange(@NonNull DataSnapshot dataSnapshot) { try {
viewController.progress(View.GONE); vehicleProfileObject =
try{ dataSnapshot.child(FirebaseClass.VEHICLE_DETAILS_FIREBASE).getValue(
vehicleProfileObject = dataSnapshot.child(VEHICLE_DETAILS_FIREBASE).getValue(VehicleProfileObject.class); VehicleProfileObject::class.java
}catch (Exception e){ )
Log.e(TAG, "onDataChange: ", e); } catch (e: Exception) {
}finally { Log.e(TAG, "onDataChange: ", e)
if (vehicleProfileObject != null){ } finally {
if(!uploadNew) { if (vehicleProfileObject != null) {
reg.setText(vehicleProfileObject.getReg()); if (!uploadNew!!) {
make.setText(vehicleProfileObject.getMake()); reg.setText(vehicleProfileObject.getReg())
model.setText(vehicleProfileObject.getModel()); make.setText(vehicleProfileObject.getMake())
color.setText(vehicleProfileObject.getColour()); model.setText(vehicleProfileObject.getModel())
keeperName.setText(vehicleProfileObject.getKeeperName()); color.setText(vehicleProfileObject.getColour())
address.setText(vehicleProfileObject.getKeeperAddress()); keeperName.setText(vehicleProfileObject.getKeeperName())
postcode.setText(vehicleProfileObject.getKeeperPostCode()); address.setText(vehicleProfileObject.getKeeperAddress())
startDate.setText(vehicleProfileObject.getStartDate()); postcode.setText(vehicleProfileObject.getKeeperPostCode())
seized.setChecked(vehicleProfileObject.isSeized()); startDate.setText(vehicleProfileObject.getStartDate())
seized!!.isChecked = vehicleProfileObject!!.isSeized()
} }
} }
} }
} }
@Override override fun onCancelled(databaseError: DatabaseError) {
public void onCancelled(@NonNull DatabaseError databaseError) { MainActivity.viewController!!.progress(View.GONE)
viewController.progress(View.GONE);
} }
}; }
var submitOnClickListener: View.OnClickListener = object : View.OnClickListener {
View.OnClickListener submitOnClickListener = new View.OnClickListener() { override fun onClick(v: View) {
@Override val regString: String = reg!!.text.toString().trim({ it <= ' ' })
public void onClick(View v) { val makeString: String = make!!.text.toString().trim({ it <= ' ' })
String regString = reg.getText().toString().trim(); val modelString: String = model!!.text.toString().trim({ it <= ' ' })
String makeString = make.getText().toString().trim(); val colourString: String = color!!.text.toString().trim({ it <= ' ' })
String modelString = model.getText().toString().trim(); val keeperNameStrin: String = keeperName!!.text.toString().trim({ it <= ' ' })
String colourString = color.getText().toString().trim(); val addressString: String = address!!.text.toString().trim({ it <= ' ' })
String keeperNameStrin = keeperName.getText().toString().trim(); val postcodeString: String = postcode!!.text.toString().trim({ it <= ' ' })
String addressString = address.getText().toString().trim(); val driverForename: String = startDate!!.text.toString().trim({ it <= ' ' })
String postcodeString = postcode.getText().toString().trim(); if ((!TextUtils.isEmpty(regString)
String driverForename = startDate.getText().toString().trim(); && !TextUtils.isEmpty(makeString)
&& !TextUtils.isEmpty(modelString)
if (!TextUtils.isEmpty(regString) && !TextUtils.isEmpty(colourString)
&&!TextUtils.isEmpty(makeString) && !TextUtils.isEmpty(keeperNameStrin)
&&!TextUtils.isEmpty(modelString) && !TextUtils.isEmpty(addressString)
&&!TextUtils.isEmpty(colourString) && !TextUtils.isEmpty(postcodeString)
&&!TextUtils.isEmpty(keeperNameStrin) && !TextUtils.isEmpty(driverForename))
&&!TextUtils.isEmpty(addressString) ) {
&&!TextUtils.isEmpty(postcodeString) if ((uploadNew)!!) {
&&!TextUtils.isEmpty(driverForename)) { MainActivity.archiveClass!!.archiveRecord(
UID,
if (uploadNew){ FirebaseClass.VEHICLE_DETAILS_FIREBASE,
archiveClass.archiveRecord(UID,VEHICLE_DETAILS_FIREBASE,vehicleProfileObject); vehicleProfileObject
)
} }
val vehicleProfileObject: VehicleProfileObject = VehicleProfileObject(
VehicleProfileObject vehicleProfileObject = new VehicleProfileObject( regString,
regString ,makeString ,modelString ,colourString ,keeperNameStrin ,addressString ,postcodeString ,driverForename, makeString,
seized.isChecked() modelString,
); colourString,
keeperNameStrin,
viewController.progress(View.VISIBLE); addressString,
ref.child(VEHICLE_DETAILS_FIREBASE).setValue(vehicleProfileObject).addOnCompleteListener(new OnCompleteListener<Void>() { postcodeString,
@Override driverForename,
public void onComplete(@NonNull Task<Void> task) { seized!!.isChecked
if (task.isSuccessful()){ )
approvalsClass.setStatusCode(UID,VEHICLE_DETAILS_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING); MainActivity.viewController!!.progress(View.VISIBLE)
approvalsClass.setStatusCode(UID,MOT_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING); ref!!.child(FirebaseClass.VEHICLE_DETAILS_FIREBASE)
approvalsClass.setStatusCode(UID,INSURANCE_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING); .setValue(vehicleProfileObject)
approvalsClass.setStatusCode(UID,LOG_BOOK_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING); .addOnCompleteListener(object : OnCompleteListener<Void?> {
fragmentManager.popBackStack(); override fun onComplete(task: Task<Void?>) {
}else{ if (task.isSuccessful) {
Toast.makeText(getContext(), "Upload Unsuccessful", Toast.LENGTH_SHORT).show(); MainActivity.approvalsClass!!.setStatusCode(
UID,
FirebaseClass.VEHICLE_DETAILS_FIREBASE + FirebaseClass.APPROVAL_CONSTANT,
FirebaseClass.APPROVAL_PENDING
)
MainActivity.approvalsClass!!.setStatusCode(
UID,
FirebaseClass.MOT_FIREBASE + FirebaseClass.APPROVAL_CONSTANT,
FirebaseClass.APPROVAL_PENDING
)
MainActivity.approvalsClass!!.setStatusCode(
UID,
FirebaseClass.INSURANCE_FIREBASE + FirebaseClass.APPROVAL_CONSTANT,
FirebaseClass.APPROVAL_PENDING
)
MainActivity.approvalsClass!!.setStatusCode(
UID,
FirebaseClass.LOG_BOOK_FIREBASE + FirebaseClass.APPROVAL_CONSTANT,
FirebaseClass.APPROVAL_PENDING
)
MainActivity.fragmentManager!!.popBackStack()
} else {
Toast.makeText(
context,
"Upload Unsuccessful",
Toast.LENGTH_SHORT
).show()
}
MainActivity.viewController!!.progress(View.GONE)
} }
viewController.progress(View.GONE); })
} } else {
}); if (TextUtils.isEmpty(regString)) {
reg!!.error = "Field required"
}else { }
if (TextUtils.isEmpty(regString)){reg.setError("Field required");} if (TextUtils.isEmpty(makeString)) {
if (TextUtils.isEmpty(makeString)){make.setError("Field required");} make!!.error = "Field required"
if (TextUtils.isEmpty(modelString)){model.setError("Field required");} }
if (TextUtils.isEmpty(colourString)){color.setError("Field required");} if (TextUtils.isEmpty(modelString)) {
if (TextUtils.isEmpty(keeperNameStrin)){keeperName.setError("Field required");} model!!.error = "Field required"
if (TextUtils.isEmpty(addressString)){address.setError("Field required");} }
if (TextUtils.isEmpty(postcodeString)){postcode.setError("Field required");} if (TextUtils.isEmpty(colourString)) {
if (TextUtils.isEmpty(driverForename)){startDate.setError("Field required");} color!!.error = "Field required"
}
if (TextUtils.isEmpty(keeperNameStrin)) {
keeperName!!.error = "Field required"
}
if (TextUtils.isEmpty(addressString)) {
address!!.error = "Field required"
}
if (TextUtils.isEmpty(postcodeString)) {
postcode!!.error = "Field required"
}
if (TextUtils.isEmpty(driverForename)) {
startDate!!.error = "Field required"
}
} }
} }
}
}; }
}

View File

@@ -1,53 +1,39 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.os.Bundle; import android.os.Bundle
import android.support.v4.app.Fragment; import android.view.LayoutInflater
import android.support.v7.widget.CardView; import android.view.View
import android.view.LayoutInflater; import android.view.ViewGroup
import android.view.View; import android.widget.Button
import android.view.ViewGroup; import androidx.cardview.widget.CardView
import android.widget.Button; import androidx.fragment.app.Fragment
import h_mal.appttude.com.driver.Global.ExecuteFragment
import h_mal.appttude.com.driver.Global.ExecuteFragment; import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
public class homeDriverFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
class homeDriverFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_home, container, false); val view: View = inflater.inflate(R.layout.fragment_home, container, false)
val button: Button = view.findViewById(R.id.driver)
Button button = view.findViewById(R.id.driver); button.setOnClickListener(object : View.OnClickListener {
button.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override ExecuteFragment.executeFragment(DriverOverallFragment())
public void onClick(View v) {
executeFragment(new DriverOverallFragment());
} }
}); })
val second: CardView = view.findViewById(R.id.car)
CardView second= view.findViewById(R.id.car); second.setOnClickListener(object : View.OnClickListener {
second.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override ExecuteFragment.executeFragment(VehicleOverallFragment())
public void onClick(View v) {
executeFragment(new VehicleOverallFragment());
} }
}); })
return view
return view;
} }
}
}

View File

@@ -1,255 +1,220 @@
package h_mal.appttude.com.driver.Driver; package h_mal.appttude.com.driver.Driver
import android.content.Intent; import android.content.Intent
import android.content.pm.PackageManager; import android.content.pm.PackageManager
import android.net.Uri; import android.net.Uri
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.provider.MediaStore
import android.support.v4.app.Fragment; import android.text.TextUtils
import android.text.TextUtils; import android.util.Log
import android.util.Log; 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.*
import android.widget.Button; import androidx.fragment.app.Fragment
import android.widget.EditText; import com.google.android.gms.tasks.OnCompleteListener
import android.widget.ImageView; import com.google.android.gms.tasks.Task
import android.widget.ProgressBar; import com.google.firebase.database.DataSnapshot
import android.widget.TextView; import com.google.firebase.database.DatabaseError
import android.widget.Toast; import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.ValueEventListener
import com.google.android.gms.tasks.OnCompleteListener; import com.squareup.picasso.Picasso
import com.google.android.gms.tasks.Task; import h_mal.appttude.com.driver.Global.ExecuteFragment
import com.google.firebase.database.DataSnapshot; import h_mal.appttude.com.driver.Global.FirebaseClass
import com.google.firebase.database.DatabaseError; import h_mal.appttude.com.driver.Global.ImageSelectorDialog
import com.google.firebase.database.DatabaseReference; import h_mal.appttude.com.driver.Global.ImageSelectorResults
import com.google.firebase.database.ValueEventListener; import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
import com.squareup.picasso.Picasso; import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.LogbookObject
import h_mal.appttude.com.driver.Global.FirebaseClass; import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
import h_mal.appttude.com.driver.Objects.LogbookObject;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
import static h_mal.appttude.com.driver.MainActivity.auth;
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
import static h_mal.appttude.com.driver.MainActivity.loadImage;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
import static h_mal.appttude.com.driver.MainActivity.viewController;
public class logbookFragment extends Fragment { class logbookFragment : Fragment() {
private val TAG: String = this.javaClass.simpleName
private String TAG = this.getClass().getSimpleName(); var reference: DatabaseReference? = null
DatabaseReference reference; var uploadlb: TextView? = null
var lbImage: ImageView? = null
TextView uploadlb; var v5cNumber: EditText? = null
ImageView lbImage; var filePath: Uri? = null
ProgressBar progressBar; var picUri: Uri? = null
EditText v5cNumber; var v5cString: String? = null
var logbookObject: LogbookObject? = null
public Uri filePath; var uploadNew: Boolean? = null
public Uri picUri; var UID: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
String v5cString; super.onCreate(savedInstanceState)
uploadNew = false
LogbookObject logbookObject; if (arguments != null) {
Boolean uploadNew; Log.i(TAG, "onCreate: args = args exist")
String UID; if (arguments!!.containsKey("user_id")) {
UID = arguments!!.getString("user_id")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
uploadNew = false;
if (getArguments() != null){
Log.i(TAG, "onCreate: args = args exist");
if (getArguments().containsKey("user_id")){
UID = getArguments().getString("user_id");
}else {
UID = auth.getCurrentUser().getUid();
}
if (getArguments().containsKey(UPLOAD_NEW)){
uploadNew = true;
}
}else{
UID = auth.getCurrentUser().getUid();
}
reference = mDatabase.child(USER_FIREBASE).child(UID).child(VEHICLE_FIREBASE).child(LOG_BOOK_FIREBASE);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_logbook, container, false);
uploadlb = view.findViewById(R.id.upload_lb);
lbImage = view.findViewById(R.id.log_book_img);
progressBar = view.findViewById(R.id.pb_lb);
v5cNumber = view.findViewById(R.id.v5c_no);
Button submit = view.findViewById(R.id.submit_lb);
viewController.progress(View.VISIBLE);
reference.addListenerForSingleValueEvent(valueEventListener);
uploadlb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
imageSelectorDialog.setImageName("logbook_pic"+getDateStamp());
imageSelectorDialog.show();
}
});
submit.setOnClickListener(submitOnClickListener);
return view;
}
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
viewController.progress(View.GONE);
try{
logbookObject = dataSnapshot.getValue(LogbookObject.class);
}catch (Exception e){
Log.e(TAG, "onDataChange: ", e);
}finally {
if (logbookObject != null){
picUri = Uri.parse(logbookObject.getPhotoString());
v5cString = logbookObject.getV5cnumber();
if(!uploadNew) {
v5cNumber.setText(v5cString);
Picasso.get()
.load(picUri)
.into(loadImage(progressBar, lbImage));
}
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
viewController.progress(View.GONE);
}
};
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
v5cString = v5cNumber.getText().toString().trim();
if (!TextUtils.isEmpty(v5cString)){
viewController.progress(View.VISIBLE);
if (filePath == null && picUri == null){
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
viewController.progress(View.GONE);
}else {
if (filePath != null){
Log.i(TAG, "onClick: new Image uploaded");
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
@Override
public void processFinish(Uri output) {
Log.i(TAG, "processFinish: ");
if (output != null){
picUri = output;
publishObject();
}else {
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
viewController.progress(View.GONE);
}
}
}).uploadImage(LOG_BOOK_FIREBASE,LOG_BOOK_FIREBASE + getDateStamp());
}else{
Log.i(TAG, "onClick: pushing with same image");
publishObject();
}
}
}else {
if (TextUtils.isEmpty(v5cString)){
v5cNumber.setError("Field required");
}
if (picUri == null){
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
}
}
}
};
private void publishObject(){
if (uploadNew){
archiveClass.archiveRecord(UID,LOG_BOOK_FIREBASE,logbookObject);
}
LogbookObject logbookObjectNew = new LogbookObject(picUri.toString(), v5cString);
reference.setValue(logbookObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
approvalsClass.setStatusCode(UID,LOG_BOOK_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
fragmentManager.popBackStack();
}else{
Toast.makeText(getContext(), "Upload Unsuccessful", Toast.LENGTH_SHORT).show();
}
viewController.progress(View.VISIBLE);
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
Intent cameraIntent = new
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
} else { } else {
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show(); UID = MainActivity.auth!!.currentUser!!.uid
} }
if (arguments!!.containsKey(ExecuteFragment.UPLOAD_NEW)) {
uploadNew = true
}
} else {
UID = MainActivity.auth!!.currentUser!!.uid
}
reference =
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
(UID)!!
).child(FirebaseClass.VEHICLE_FIREBASE)
.child(FirebaseClass.LOG_BOOK_FIREBASE)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view: View = inflater.inflate(R.layout.fragment_logbook, container, false)
uploadlb = view.findViewById(R.id.upload_lb)
lbImage = view.findViewById(R.id.log_book_img)
v5cNumber = view.findViewById(R.id.v5c_no)
val submit: Button = view.findViewById(R.id.submit_lb)
MainActivity.viewController!!.progress(View.VISIBLE)
reference!!.addListenerForSingleValueEvent(valueEventListener)
uploadlb.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
val imageSelectorDialog: ImageSelectorDialog = ImageSelectorDialog((context)!!)
imageSelectorDialog.setImageName("logbook_pic" + MainActivity.Companion.dateStamp)
imageSelectorDialog.show()
}
})
submit.setOnClickListener(submitOnClickListener)
return view
}
var valueEventListener: ValueEventListener = object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
MainActivity.viewController!!.progress(View.GONE)
try {
logbookObject = dataSnapshot.getValue(LogbookObject::class.java)
} catch (e: Exception) {
Log.e(TAG, "onDataChange: ", e)
} finally {
if (logbookObject != null) {
picUri = Uri.parse(logbookObject.getPhotoString())
v5cString = logbookObject.getV5cnumber()
if (!uploadNew!!) {
v5cNumber!!.setText(v5cString)
Picasso.get()
.load(picUri)
.into(MainActivity.loadImage(lbImage))
}
}
}
}
override fun onCancelled(databaseError: DatabaseError) {
MainActivity.viewController!!.progress(View.GONE)
}
}
var submitOnClickListener: View.OnClickListener = object : View.OnClickListener {
override fun onClick(v: View) {
v5cString = v5cNumber!!.text.toString().trim({ it <= ' ' })
if (!TextUtils.isEmpty(v5cString)) {
MainActivity.viewController!!.progress(View.VISIBLE)
if (filePath == null && picUri == null) {
Toast.makeText(context, "No Driver image", Toast.LENGTH_SHORT).show()
MainActivity.viewController!!.progress(View.GONE)
} else {
if (filePath != null) {
Log.i(TAG, "onClick: new Image uploaded")
FirebaseClass(context, filePath, object : FirebaseClass.Response {
override fun processFinish(output: Uri?) {
Log.i(TAG, "processFinish: ")
if (output != null) {
picUri = output
publishObject()
} else {
Toast.makeText(
context,
R.string.unsuccessful,
Toast.LENGTH_SHORT
).show()
MainActivity.viewController!!.progress(View.GONE)
}
}
}).uploadImage(
FirebaseClass.LOG_BOOK_FIREBASE,
FirebaseClass.LOG_BOOK_FIREBASE + MainActivity.Companion.dateStamp
)
} else {
Log.i(TAG, "onClick: pushing with same image")
publishObject()
}
}
} else {
if (TextUtils.isEmpty(v5cString)) {
v5cNumber!!.error = "Field required"
}
if (picUri == null) {
Toast.makeText(
context,
getString(R.string.image_required),
Toast.LENGTH_SHORT
).show()
}
}
} }
} }
@Override private fun publishObject() {
public void onActivityResult(int requestCode, int resultCode, Intent data) { if ((uploadNew)!!) {
super.onActivityResult(requestCode, resultCode, data); MainActivity.archiveClass!!.archiveRecord(
UID,
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data, FirebaseClass.LOG_BOOK_FIREBASE,
filePath,lbImage,new ImageSelectorResults.FilepathResponse() { logbookObject
@Override )
public void processFinish(Uri output) { }
filePath = output; val logbookObjectNew: LogbookObject = LogbookObject(picUri.toString(), v5cString)
reference!!.setValue(logbookObjectNew)
.addOnCompleteListener(object : OnCompleteListener<Void?> {
override fun onComplete(task: Task<Void?>) {
if (task.isSuccessful) {
MainActivity.approvalsClass!!.setStatusCode(
UID,
FirebaseClass.LOG_BOOK_FIREBASE + FirebaseClass.APPROVAL_CONSTANT,
FirebaseClass.APPROVAL_PENDING
)
MainActivity.fragmentManager!!.popBackStack()
} else {
Toast.makeText(context, "Upload Unsuccessful", Toast.LENGTH_SHORT)
.show()
} }
}); MainActivity.viewController!!.progress(View.VISIBLE)
}
})
} }
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE) {
if (grantResults.get(0) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(context, "camera permission granted", Toast.LENGTH_LONG).show()
val cameraIntent: Intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(cameraIntent, ImageSelectorDialog.CAMERA_REQUEST)
} else {
Toast.makeText(context, "camera permission denied", Toast.LENGTH_LONG).show()
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
super.onActivityResult(requestCode, resultCode, data)
ImageSelectorResults().Results(
activity, requestCode, resultCode, data,
filePath, lbImage, object : FilepathResponse {
override fun processFinish(output: Uri?) {
filePath = output
}
})
}
}

View File

@@ -1,123 +1,93 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.support.annotation.NonNull; import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.ApprovalsObject
import h_mal.appttude.com.driver.Objects.WholeDriverObject
import h_mal.appttude.com.driver.R
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import h_mal.appttude.com.driver.Objects.ApprovalsObject; class ApprovalsClass {
import h_mal.appttude.com.driver.Objects.WholeDriverObject; fun getOverApprovalStatusCode(wholeDriverObject: WholeDriverObject?): Int {
import h_mal.appttude.com.driver.R; if (wholeDriverObject!!.approvalsObject != null) {
val approvalsObject: ApprovalsObject? = wholeDriverObject.approvalsObject
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_DENIED; val ints: IntArray = intArrayOf(
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING; approvalsObject.getDriver_details_approval(),
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVED; approvalsObject.driver_license_approval,
import static h_mal.appttude.com.driver.Global.FirebaseClass.NO_DATE_PRESENT; approvalsObject.private_hire_approval,
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_APPROVALS; approvalsObject.vehicle_details_approval,
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE; approvalsObject.insurance_details_approval,
import static h_mal.appttude.com.driver.MainActivity.mDatabase; approvalsObject.getMot_details_approval(),
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson; approvalsObject.getLog_book_approval(),
approvalsObject.getPh_car_approval()
public class ApprovalsClass { )
return setImageResource(mode(ints))
public ApprovalsClass() {
}
public static int mode(int[] array) {
printObjectAsJson("modeArrays",array);
int mode = array[0];
int maxCount = 0;
if (matchedArray(array,3)){
return 3;
}else if (matchedArray(array,0)){
return 0;
}else {
for (int i = 0; i < array.length; i++) {
int value = array[i];
int count = 1;
for (int j = 0; j < array.length; j++) {
if (array[j] == value) count++;
if (count > maxCount) {
mode = value;
maxCount = count;
}
}
}
if (mode == 3){
return 1;
}
} }
return mode; return setImageResource(FirebaseClass.NO_DATE_PRESENT)
} }
private static boolean matchedArray (int [] array, int match){ fun setStatusCode(userId: String?, approvalNameString: String, status: Int) {
for (int i : array){ if (!(approvalNameString == "")) {
if (i != match){ MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE)
return false; .child((userId)!!).child(FirebaseClass.USER_APPROVALS)
} .child(approvalNameString)
} .setValue(status).addOnCompleteListener(object : OnCompleteListener<Void?> {
override fun onComplete(task: Task<Void?>) {
return true; if (task.isSuccessful) {
}
public int getOverApprovalStatusCode(WholeDriverObject wholeDriverObject){
if (wholeDriverObject.approvalsObject != null){
ApprovalsObject approvalsObject = wholeDriverObject.getApprovalsObject();
int[] ints = new int[]{approvalsObject.getDriver_details_approval(),
approvalsObject.getDriver_license_approval(),
approvalsObject.getPrivate_hire_approval(),
approvalsObject.getVehicle_details_approval(),
approvalsObject.getInsurance_details_approval(),
approvalsObject.getMot_details_approval(),
approvalsObject.getLog_book_approval(),
approvalsObject.getPh_car_approval()};
return setImageResource(mode(ints));
}
return setImageResource(NO_DATE_PRESENT);
}
public void setStatusCode(String userId,String approvalNameString,int status){
if (!approvalNameString.equals("")) {
mDatabase.child(USER_FIREBASE).child(userId).child(USER_APPROVALS).child(approvalNameString)
.setValue(status).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
} else { } else {
} }
} }
}); })
} }
} }
public int setImageResource(int statusCode){ fun setImageResource(statusCode: Int): Int {
int imageResource; val imageResource: Int
when (statusCode) {
FirebaseClass.APPROVAL_PENDING -> imageResource = R.drawable.pending
FirebaseClass.APPROVAL_DENIED -> imageResource = R.drawable.denied
FirebaseClass.APPROVED -> imageResource = R.drawable.approved
else -> imageResource = R.drawable.zero
}
return imageResource
}
switch (statusCode){ companion object {
case APPROVAL_PENDING: fun mode(array: IntArray): Int {
imageResource = R.drawable.pending; MainActivity.printObjectAsJson("modeArrays", array)
break; var mode: Int = array.get(0)
case APPROVAL_DENIED: var maxCount: Int = 0
imageResource = R.drawable.denied; if (matchedArray(array, 3)) {
break; return 3
case APPROVED: } else if (matchedArray(array, 0)) {
imageResource = R.drawable.approved; return 0
break; } else {
default: for (i in array.indices) {
imageResource = R.drawable.zero; val value: Int = array.get(i)
break; var count: Int = 1
for (j in array.indices) {
if (array.get(j) == value) count++
if (count > maxCount) {
mode = value
maxCount = count
}
}
}
if (mode == 3) {
return 1
}
}
return mode
} }
return imageResource; private fun matchedArray(array: IntArray, match: Int): Boolean {
for (i: Int in array) {
if (i != match) {
return false
}
}
return true
}
} }
} }

View File

@@ -1,99 +1,84 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.app.AlertDialog; import android.app.AlertDialog
import android.content.Context; import android.content.Context
import android.content.DialogInterface; import android.content.DialogInterface
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.util.Log
import android.support.v4.app.Fragment; import androidx.fragment.app.Fragment
import android.util.Log; import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task
import com.google.firebase.database.DatabaseReference
import h_mal.appttude.com.driver.MainActivity
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;
import java.util.UUID; class ArchiveClass {
fun archiveRecord(UID: String?, item: String?, `object`: Any?) {
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW; val toPath: DatabaseReference =
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment; MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
import static h_mal.appttude.com.driver.Global.FirebaseClass.ARCHIVE_FIREBASE; (UID)!!
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE; )
import static h_mal.appttude.com.driver.MainActivity.getDateTimeStamp; .child(FirebaseClass.ARCHIVE_FIREBASE).child((item)!!)
import static h_mal.appttude.com.driver.MainActivity.mDatabase; toPath.child(MainActivity.Companion.getDateTimeStamp()).setValue(`object`)
.addOnCompleteListener(object : OnCompleteListener<Void?> {
public class ArchiveClass { override fun onComplete(task: Task<Void?>) {
private static final String TAG = "ArchiveClass"; if (task.isSuccessful) {
Log.i(TAG, "onComplete: archive successful")
public ArchiveClass() { } else {
} Log.i(TAG, "onComplete: archive unsuccessful")
}
public void archiveRecord(String UID, String item, Object object) {
final DatabaseReference toPath = mDatabase.child(USER_FIREBASE).child(UID)
.child(ARCHIVE_FIREBASE).child(item);
toPath.child(getDateTimeStamp()).setValue(object).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Log.i(TAG, "onComplete: archive successful");
}else {
Log.i(TAG, "onComplete: archive unsuccessful");
} }
} })
});
} }
public void openDialogArchive(Context context,Object object, final Fragment fragment){ fun openDialogArchive(context: Context?, `object`: Any?, fragment: Fragment) {
if (object == null){ if (`object` == null) {
executeFragment(fragment); ExecuteFragment.executeFragment(fragment)
}else { } else {
AlertDialog.Builder builder = new AlertDialog.Builder(context); val builder: AlertDialog.Builder = AlertDialog.Builder(context)
builder.setMessage("Do you want to View/Edit or Upload new?") builder.setMessage("Do you want to View/Edit or Upload new?")
.setPositiveButton("View/Edit", new DialogInterface.OnClickListener() { .setPositiveButton("View/Edit", object : DialogInterface.OnClickListener {
@Override override fun onClick(dialog: DialogInterface, which: Int) {
public void onClick(DialogInterface dialog, int which) { ExecuteFragment.executeFragment(fragment)
executeFragment(fragment); }
} })
}) .setNegativeButton("Upload New", object : DialogInterface.OnClickListener {
.setNegativeButton("Upload New", new DialogInterface.OnClickListener() { override fun onClick(dialog: DialogInterface, which: Int) {
@Override val bundle: Bundle = Bundle()
public void onClick(DialogInterface dialog, int which) { bundle.putString(ExecuteFragment.UPLOAD_NEW, "Yes")
Bundle bundle = new Bundle(); fragment.arguments = bundle
bundle.putString(UPLOAD_NEW,"Yes"); ExecuteFragment.executeFragment(fragment)
fragment.setArguments(bundle); }
executeFragment(fragment); })
} .create().show()
})
.create().show();
} }
} }
public void openDialogArchive(Context context,Object object, String user,final Fragment fragment){ fun openDialogArchive(context: Context?, `object`: Any?, user: String?, fragment: Fragment?) {
final Bundle bundle = new Bundle(); val bundle: Bundle = Bundle()
bundle.putString("user_id",user); bundle.putString("user_id", user)
fragment.setArguments(bundle); fragment!!.arguments = bundle
if (`object` == null) {
if (object == null){ ExecuteFragment.executeFragment(fragment)
executeFragment(fragment); } else {
}else { val builder: AlertDialog.Builder = AlertDialog.Builder(context)
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Do you want to View/Edit or Upload new?") builder.setMessage("Do you want to View/Edit or Upload new?")
.setPositiveButton("View/Edit", new DialogInterface.OnClickListener() { .setPositiveButton("View/Edit", object : DialogInterface.OnClickListener {
@Override override fun onClick(dialog: DialogInterface, which: Int) {
public void onClick(DialogInterface dialog, int which) { ExecuteFragment.executeFragment(fragment)
executeFragment(fragment); }
} })
}) .setNegativeButton("Upload New", object : DialogInterface.OnClickListener {
.setNegativeButton("Upload New", new DialogInterface.OnClickListener() { override fun onClick(dialog: DialogInterface, which: Int) {
@Override bundle.putString(ExecuteFragment.UPLOAD_NEW, "Yes")
public void onClick(DialogInterface dialog, int which) { ExecuteFragment.executeFragment(fragment)
bundle.putString(UPLOAD_NEW,"Yes"); }
executeFragment(fragment); })
} .create().show()
})
.create().show();
} }
} }
}
companion object {
private val TAG: String = "ArchiveClass"
}
}

View File

@@ -1,127 +1,103 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.app.DatePickerDialog; import android.app.DatePickerDialog
import android.content.Context; import android.content.Context
import android.content.Intent; import android.os.Build
import android.os.Build; import android.text.TextUtils
import android.support.annotation.NonNull; import android.util.Log
import android.support.annotation.Nullable; import android.widget.DatePicker
import android.support.annotation.RequiresApi; import android.widget.EditText
import android.text.TextUtils; import androidx.annotation.RequiresApi
import android.util.Log; import h_mal.appttude.com.driver.R
import android.widget.DatePicker; import java.text.ParseException
import android.widget.EditText; import java.text.SimpleDateFormat
import android.widget.TextView; import java.util.*
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import h_mal.appttude.com.driver.R; class DateDialog : DatePickerDialog {
var mYear: Int = 0
public class DateDialog extends DatePickerDialog { var mMonth: Int = 0
var mDay: Int = 0
int mYear; var editText: EditText? = null
int mMonth;
int mDay;
EditText editText;
@RequiresApi(api = Build.VERSION_CODES.N) @RequiresApi(api = Build.VERSION_CODES.N)
public DateDialog(@NonNull Context context) { constructor(context: Context) : super(context)
super(context);
}
@RequiresApi(api = Build.VERSION_CODES.N) @RequiresApi(api = Build.VERSION_CODES.N)
public DateDialog(@NonNull Context context, int themeResId) { constructor(context: Context, themeResId: Int) : super(context, themeResId)
super(context, themeResId);
constructor(
context: Context,
listener: OnDateSetListener?,
year: Int, month: Int, dayOfMonth: Int
) : super(context, listener, year, month, dayOfMonth)
constructor(
context: Context,
themeResId: Int,
listener: OnDateSetListener?,
year: Int,
monthOfYear: Int,
dayOfMonth: Int
) : super(context, themeResId, listener, year, monthOfYear, dayOfMonth)
override fun setTitle(title: CharSequence) {
super.setTitle(title)
} }
public DateDialog(@NonNull Context context, override fun setOnDateSetListener(listener: OnDateSetListener?) {
@Nullable DatePickerDialog.OnDateSetListener listener, super.setOnDateSetListener(dateSetListener)
int year, int month, int dayOfMonth) {
super(context, listener, year, month, dayOfMonth);
} }
public DateDialog(@NonNull Context context, int themeResId, @Nullable DatePickerDialog.OnDateSetListener listener, int year, int monthOfYear, int dayOfMonth) { fun init(editText: EditText?) {
super(context, themeResId, listener, year, monthOfYear, dayOfMonth); this.editText = editText
val dateString: String = editText!!.text.toString()
var javaDate: Date? = null
} if (TextUtils.isEmpty(dateString)) {
val calendar: Calendar = Calendar.getInstance()
@Override mYear = calendar.get(Calendar.YEAR)
public void setTitle(CharSequence title) { mMonth = calendar.get(Calendar.MONTH)
super.setTitle(title); mDay = calendar.get(Calendar.DAY_OF_MONTH)
} } else {
@Override
public void setOnDateSetListener(@Nullable DatePickerDialog.OnDateSetListener listener) {
super.setOnDateSetListener(dateSetListener);
}
public void init(EditText editText){
this.editText = editText;
String dateString = editText.getText().toString();
Date javaDate = null;
if(TextUtils.isEmpty(dateString)){
Calendar calendar = Calendar.getInstance();
mYear = calendar.get(Calendar.YEAR);
mMonth = calendar.get(Calendar.MONTH);
mDay = calendar.get(Calendar.DAY_OF_MONTH);
}else {
try { try {
SimpleDateFormat sdfrmt = new SimpleDateFormat("dd/MM/yyyy"); val sdfrmt: SimpleDateFormat = SimpleDateFormat("dd/MM/yyyy")
sdfrmt.setLenient(false); sdfrmt.isLenient = false
javaDate = sdfrmt.parse(dateString); javaDate = sdfrmt.parse(dateString)
} catch (ParseException e) { } catch (e: ParseException) {
e.printStackTrace(); e.printStackTrace()
}finally { } finally {
if (javaDate != null) { if (javaDate != null) {
mYear = Integer.parseInt(dateString.substring(6, dateString.length())); mYear = dateString.substring(6, dateString.length).toInt()
mMonth = Integer.parseInt(dateString.substring(3, 5))-1; mMonth = dateString.substring(3, 5).toInt() - 1
mDay = Integer.parseInt(dateString.substring(0, 2)); mDay = dateString.substring(0, 2).toInt()
}else { } else {
Calendar calendar = Calendar.getInstance(); val calendar: Calendar = Calendar.getInstance()
mYear = calendar.get(Calendar.YEAR); mYear = calendar.get(Calendar.YEAR)
mMonth = calendar.get(Calendar.MONTH); mMonth = calendar.get(Calendar.MONTH)
mDay = calendar.get(Calendar.DAY_OF_MONTH); mDay = calendar.get(Calendar.DAY_OF_MONTH)
} }
} }
} }
Log.i(
Log.i(this.getClass().getSimpleName(), "init: year =" + mYear + this.javaClass.simpleName, ("init: year =" + mYear +
"month = " + mMonth + "month = " + mMonth +
"day = " + mDay); "day = " + mDay)
)
updateDate(mYear, mMonth, mDay)
updateDate(mYear,mMonth,mDay); setOnDateSetListener(null)
this.setTitle(context.getString(R.string.set_date))
setOnDateSetListener(null); show()
this.setTitle(getContext().getString(R.string.set_date));
this.show();
} }
DatePickerDialog.OnDateSetListener dateSetListener = new OnDateSetListener() { var dateSetListener: OnDateSetListener = object : OnDateSetListener {
@Override override fun onDateSet(view: DatePicker, year: Int, month: Int, dayOfMonth: Int) {
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { mYear = year
mYear = year; mMonth = month + 1
mMonth = month + 1; mDay = dayOfMonth
mDay = dayOfMonth; editText!!.setText(
(String.format("%02d", mDay) + "/" + String.format("%02d", (mMonth)) + "/" +
editText.setText(String.format("%02d", mDay) + "/" + mYear)
String.format("%02d", (mMonth)) +"/" + )
mYear
);
} }
}; }
}
}

View File

@@ -1,65 +1,68 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.Nullable; import androidx.fragment.app.Fragment
import android.support.v4.app.Fragment; import androidx.fragment.app.FragmentTransaction
import android.support.v4.app.FragmentTransaction; import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.R; object ExecuteFragment {
val UPLOAD_NEW: String = "upload_new"
import static h_mal.appttude.com.driver.MainActivity.fragmentManager; fun executeFragment(fragment: Fragment, bundle: Bundle?) {
executeFragmentMethod(fragment, bundle)
public class ExecuteFragment {
public static final String UPLOAD_NEW = "upload_new";
public static void executeFragment(Fragment fragment, Bundle bundle) {
executeFragmentMethod(fragment,bundle);
} }
public static void executeFragment(Fragment fragment) { fun executeFragment(fragment: Fragment?) {
executeFragmentMethod(fragment); executeFragmentMethod(fragment)
} }
public static void executeFragment(Fragment fragment, String userId) { fun executeFragment(fragment: Fragment?, userId: String?) {
executeFragmentMethod(fragment,userId); executeFragmentMethod(fragment, userId)
} }
public static void executeFragment(Fragment fragment, String userId, String archive) { fun executeFragment(fragment: Fragment, userId: String?, archive: String?) {
executeFragmentMethod(fragment,userId,archive); executeFragmentMethod(fragment, userId, archive)
} }
private static void executeFragmentMethod(Fragment f){ private fun executeFragmentMethod(f: Fragment?) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); val fragmentTransaction: FragmentTransaction =
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit(); MainActivity.fragmentManager!!.beginTransaction()
fragmentTransaction.replace(R.id.container, (f)!!)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.addToBackStack(f.javaClass.simpleName).commit()
} }
private static void executeFragmentMethod(Fragment f,String user_id){ private fun executeFragmentMethod(f: Fragment?, user_id: String?) {
Bundle bundle = new Bundle(); val bundle: Bundle = Bundle()
bundle.putString("user_id",user_id); bundle.putString("user_id", user_id)
f!!.arguments = bundle
f.setArguments(bundle); val fragmentTransaction: FragmentTransaction =
MainActivity.fragmentManager!!.beginTransaction()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.container, (f))
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit(); .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.addToBackStack(f.javaClass.simpleName).commit()
} }
private static void executeFragmentMethod(Fragment f,String user_id,String archive){ private fun executeFragmentMethod(f: Fragment, user_id: String?, archive: String?) {
Bundle bundle = new Bundle(); val bundle: Bundle = Bundle()
bundle.putString("user_id",user_id); bundle.putString("user_id", user_id)
bundle.putString("archive",archive); bundle.putString("archive", archive)
f.arguments = bundle
f.setArguments(bundle); val fragmentTransaction: FragmentTransaction =
MainActivity.fragmentManager!!.beginTransaction()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.container, f)
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit(); .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.addToBackStack(f.javaClass.simpleName).commit()
} }
private static void executeFragmentMethod(Fragment f, Bundle b){ private fun executeFragmentMethod(f: Fragment, b: Bundle?) {
if (b != null){ if (b != null) {
f.setArguments(b); f.arguments = b
} }
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); val fragmentTransaction: FragmentTransaction =
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit(); MainActivity.fragmentManager!!.beginTransaction()
fragmentTransaction.replace(R.id.container, f)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.addToBackStack(f.javaClass.simpleName).commit()
} }
} }

View File

@@ -1,111 +1,84 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.app.ProgressDialog; import android.app.ProgressDialog
import android.content.Context; import android.content.Context
import android.net.Uri; import android.net.Uri
import android.support.annotation.NonNull; import com.google.android.gms.tasks.Continuation
import android.util.Log; import com.google.android.gms.tasks.Task
import android.widget.Toast; import com.google.firebase.storage.OnProgressListener
import com.google.firebase.storage.StorageReference
import com.google.firebase.storage.UploadTask
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.utils.displayToast
import com.google.android.gms.tasks.Continuation; class FirebaseClass constructor(var context: Context?, var filePath: Uri?, var delegate: Response) {
import com.google.android.gms.tasks.OnCompleteListener; open interface Response {
import com.google.android.gms.tasks.Task; fun processFinish(output: Uri?)
import com.google.firebase.storage.OnProgressListener;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import static h_mal.appttude.com.driver.MainActivity.auth;
import static h_mal.appttude.com.driver.MainActivity.storageReference;
public class FirebaseClass {
public static final String USER_FIREBASE = "user";
public static final String DRIVER_FIREBASE = "driver_profile";
public static final String DRIVER_DETAILS_FIREBASE = "driver_details";
public static final String PRIVATE_HIRE_FIREBASE = "private_hire";
public static final String DRIVERS_LICENSE_FIREBASE = "driver_license";
public static final String USER_APPROVALS = "approvalsObject";
public static final String APPROVAL_CONSTANT = "_approval";
public static final String ARCHIVE_FIREBASE = "archive";
public static final String DRIVER_NUMBER = "driver_number";
public static final String VEHICLE_FIREBASE = "vehicle_profile";
public static final String MOT_FIREBASE = "mot_details";
public static final String VEHICLE_DETAILS_FIREBASE = "vehicle_details";
public static final String INSURANCE_FIREBASE = "insurance_details";
public static final String LOG_BOOK_FIREBASE = "log_book";
public static final String PRIVATE_HIRE_VEHICLE_LICENSE = "private_hire_vehicle";
public static final int NO_DATE_PRESENT = 0;
public static final int APPROVAL_PENDING = 1;
public static final int APPROVAL_DENIED = 2;
public static final int APPROVED = 3;
Context context;
Uri filePath;
public interface Response {
void processFinish(Uri output);
} }
public Response delegate; fun uploadImage(path: String, name: String) {
if (filePath != null) {
public FirebaseClass(Context context, Uri filePath, Response delegate) { val progressDialog: ProgressDialog = ProgressDialog(context)
this.context = context; progressDialog.setTitle("Uploading...")
this.filePath = filePath; progressDialog.show()
this.delegate = delegate; val ref: StorageReference = MainActivity.storageReference!!.child(
} ("images/" + MainActivity.auth!!.currentUser!!
.uid + "/" + path
public void uploadImage(String path, String name) { + "/" + name)
)
if(filePath != null) { val uploadTask: UploadTask = ref.putFile(filePath!!)
final ProgressDialog progressDialog = new ProgressDialog(context); uploadTask.addOnProgressListener(object : OnProgressListener<UploadTask.TaskSnapshot> {
progressDialog.setTitle("Uploading..."); override fun onProgress(taskSnapshot: UploadTask.TaskSnapshot) {
progressDialog.show(); val progress: Double =
(100.0 * taskSnapshot.bytesTransferred / taskSnapshot
final StorageReference ref = storageReference.child("images/"+ auth.getCurrentUser().getUid() + "/" + path .totalByteCount)
+ "/" + name); progressDialog.setMessage("Uploaded " + progress.toInt() + "%")
UploadTask uploadTask = ref.putFile(filePath);
uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot
.getTotalByteCount());
progressDialog.setMessage("Uploaded "+(int)progress+"%");
} }
}).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() { }).continueWithTask(object : Continuation<UploadTask.TaskSnapshot?, Task<Uri>> {
@Override @Throws(Exception::class)
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception { override fun then(task: Task<UploadTask.TaskSnapshot?>): Task<Uri> {
if (!task.isSuccessful()) { if (!task.isSuccessful) {
throw task.getException(); throw (task.exception)!!
} }
// Continue with the task to get the download URL // Continue with the task to get the download URL
return ref.getDownloadUrl(); return ref.downloadUrl
} }
}).addOnCompleteListener(new OnCompleteListener<Uri>() { }).addOnCompleteListener { task ->
@Override if (task.isSuccessful) {
public void onComplete(@NonNull Task<Uri> task) { delegate.processFinish(task.result)
if (task.isSuccessful()) { progressDialog.dismiss()
delegate.processFinish(task.getResult()); context?.displayToast("Uploaded Successfully")
progressDialog.dismiss(); println("onComplete: uploaded Successful uri: " + task.result)
Toast.makeText(context, "Uploaded Successfully", Toast.LENGTH_SHORT).show(); } else {
Log.i(context.getClass().getSimpleName(), "onComplete: uploaded Successful uri: " + task.getResult()); delegate.processFinish(null)
} else { progressDialog.dismiss()
delegate.processFinish(null); context?.displayToast("Uploaded Successfully")
progressDialog.dismiss();
Toast.makeText(context, "Failed to upload", Toast.LENGTH_SHORT).show();
Log.i(context.getClass().getSimpleName(), "onComplete: failed to get url");
}
} }
}); }
} }
} }
} companion object {
val USER_FIREBASE: String = "user"
val DRIVER_FIREBASE: String = "driver_profile"
val DRIVER_DETAILS_FIREBASE: String = "driver_details"
val PRIVATE_HIRE_FIREBASE: String = "private_hire"
val DRIVERS_LICENSE_FIREBASE: String = "driver_license"
val DRIVER_STATUS: String = "driver_status"
val USER_APPROVALS: String = "approvalsObject"
val APPROVAL_CONSTANT: String = "_approval"
val ARCHIVE_FIREBASE: String = "archive"
val DRIVER_NUMBER: String = "driver_number"
val VEHICLE_FIREBASE: String = "vehicle_profile"
val MOT_FIREBASE: String = "mot_details"
val VEHICLE_DETAILS_FIREBASE: String = "vehicle_details"
val INSURANCE_FIREBASE: String = "insurance_details"
val LOG_BOOK_FIREBASE: String = "log_book"
val PRIVATE_HIRE_VEHICLE_LICENSE: String = "private_hire_vehicle"
val NO_DATE_PRESENT: Int = 0
val APPROVAL_PENDING: Int = 1
val APPROVAL_DENIED: Int = 2
val APPROVED: Int = 3
}
}

View File

@@ -1,154 +1,135 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.Manifest; import android.Manifest
import android.app.Activity; import android.app.Dialog
import android.app.Dialog; import android.content.Context
import android.content.Context; import android.content.DialogInterface
import android.content.DialogInterface; import android.content.Intent
import android.content.Intent; import android.content.pm.PackageManager
import android.content.pm.PackageManager; import android.icu.text.SimpleDateFormat
import android.graphics.Bitmap; import android.net.Uri
import android.net.Uri; import android.os.Bundle
import android.os.Bundle; import android.os.Environment
import android.os.Environment; import android.provider.MediaStore
import android.provider.MediaStore; import android.view.View
import android.support.annotation.NonNull; import android.widget.Button
import android.support.annotation.Nullable; import android.widget.Toast
import android.support.v4.app.ActivityCompat; import androidx.core.app.ActivityCompat
import android.support.v4.app.Fragment; import androidx.core.content.FileProvider
import android.support.v4.content.FileProvider; import androidx.fragment.app.Fragment
import android.support.v7.app.AppCompatActivity; import h_mal.appttude.com.driver.MainActivity
import android.view.View; import h_mal.appttude.com.driver.R
import android.view.Window; import java.io.File
import android.view.WindowManager; import java.util.*
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import java.io.File; class ImageSelectorDialog : Dialog {
import java.io.FileOutputStream; private val TAG: String = this.javaClass.simpleName
import java.io.IOException; private var saveFileName: String
import java.text.SimpleDateFormat; var fragment: Fragment? = null
import java.util.Date;
import h_mal.appttude.com.driver.R; constructor(context: Context) : super(context) {
saveFileName = "default_name"
import static android.support.v4.app.ActivityCompat.getPermissionCompatDelegate;
import static android.support.v4.app.ActivityCompat.requestPermissions;
import static android.support.v4.app.ActivityCompat.startActivityForResult;
import static android.support.v4.content.PermissionChecker.checkSelfPermission;
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
import static h_mal.appttude.com.driver.MainActivity.verifyStoragePermissions;
public class ImageSelectorDialog extends Dialog{
private String TAG = this.getClass().getSimpleName();
public static final int PICK_IMAGE_REQUEST = 71;
public static final int CAMERA_REQUEST = 1888;
public static final int MY_CAMERA_PERMISSION_CODE = 100;
public static final int STORAGE_PERMISSION_CODE = 101;
private String saveFileName;
public static Uri photoURI;
Fragment fragment;
public ImageSelectorDialog(@NonNull Context context) {
super(context);
this.saveFileName = "default_name";
} }
public ImageSelectorDialog(@NonNull Context context, int themeResId) { constructor(context: Context, themeResId: Int) : super(context, themeResId) {
super(context, themeResId); saveFileName = "default_name"
this.saveFileName = "default_name";
} }
protected ImageSelectorDialog(@NonNull Context context, boolean cancelable, @Nullable DialogInterface.OnCancelListener cancelListener) { protected constructor(
super(context, cancelable, cancelListener); context: Context,
this.saveFileName = "default_name"; cancelable: Boolean,
cancelListener: DialogInterface.OnCancelListener?
) : super(context, cancelable, cancelListener) {
saveFileName = "default_name"
} }
@Override override fun onCreate(savedInstanceState: Bundle) {
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState)
super.onCreate(savedInstanceState); setContentView(R.layout.address_dialog)
setContentView(R.layout.address_dialog);
//check if we have we have storage rights //check if we have we have storage rights
final int permissionPic = ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE); val permissionPic: Int = ActivityCompat.checkSelfPermission(
final int permissionCam = ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.CAMERA); context,
Manifest.permission.WRITE_EXTERNAL_STORAGE
fragment = fragmentManager.getFragments().get(0); )
val permissionCam: Int =
Button upload = findViewById(R.id.upload); ActivityCompat.checkSelfPermission(context, Manifest.permission.CAMERA)
Button takePic = findViewById(R.id.take_pic); fragment = MainActivity.fragmentManager!!.fragments.get(0)
val upload: Button = findViewById(R.id.upload)
upload.setOnClickListener(new View.OnClickListener() { val takePic: Button = findViewById(R.id.take_pic)
@Override upload.setOnClickListener(object : View.OnClickListener {
public void onClick(View v) { override fun onClick(v: View) {
if (permissionPic == PackageManager.PERMISSION_GRANTED){ if (permissionPic == PackageManager.PERMISSION_GRANTED) {
chooseImage(); chooseImage()
} else {
}else { Toast.makeText(context, "Storage permissions required", Toast.LENGTH_SHORT)
Toast.makeText(getContext(), "Storage permissions required", Toast.LENGTH_SHORT).show(); .show()
requestPermissions(fragment.getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, ActivityCompat.requestPermissions(
STORAGE_PERMISSION_CODE); (fragment.getActivity())!!,
} arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
dismiss(); STORAGE_PERMISSION_CODE
)
} }
}); dismiss()
}
takePic.setOnClickListener(new View.OnClickListener() { })
@Override takePic.setOnClickListener(object : View.OnClickListener {
public void onClick(View v) { override fun onClick(v: View) {
if (permissionCam == PackageManager.PERMISSION_GRANTED){ if (permissionCam == PackageManager.PERMISSION_GRANTED) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); val cameraIntent: Intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
File file = createFile(); val file: File = createFile()
photoURI = Uri.fromFile(file); photoURI = Uri.fromFile(file)
Uri imageUri = FileProvider.getUriForFile( val imageUri: Uri = FileProvider.getUriForFile(
getContext(), context,
"h_mal.appttude.com.driver", "h_mal.appttude.com.driver",
file); file
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); )
fragment.startActivityForResult(cameraIntent, CAMERA_REQUEST); cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri)
}else { fragment.startActivityForResult(cameraIntent, CAMERA_REQUEST)
Toast.makeText(getContext(), "Camera Permissions required", Toast.LENGTH_SHORT).show(); } else {
requestPermissions(fragment.getActivity(), new String[]{Manifest.permission.CAMERA}, Toast.makeText(context, "Camera Permissions required", Toast.LENGTH_SHORT)
MY_CAMERA_PERMISSION_CODE); .show()
} ActivityCompat.requestPermissions(
dismiss(); (fragment.getActivity())!!, arrayOf(Manifest.permission.CAMERA),
MY_CAMERA_PERMISSION_CODE
)
} }
}); dismiss()
}
})
} }
public void setImageName(String saveFileName){ fun setImageName(saveFileName: String) {
this.saveFileName = saveFileName; this.saveFileName = saveFileName
} }
private File createFile(){ private fun createFile(): File {
//create directory //create directory
File root = getContext().getExternalFilesDir(Environment.DIRECTORY_PICTURES); val root: File = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)
//create file //create file
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmm"); val sdf: SimpleDateFormat = SimpleDateFormat("yyyyMMdd_HHmm")
String currentDateandTime = sdf.format(new Date()); val currentDateandTime: String = sdf.format(Date())
String fname = saveFileName+ currentDateandTime; val fname: String = saveFileName + currentDateandTime
File image = new File(root,fname); val image: File = File(root, fname)
return image
return image;
} }
private void chooseImage() { private fun chooseImage() {
Intent intent = new Intent(); val intent: Intent = Intent()
intent.setType("image/*"); intent.type = "image/*"
intent.setAction(Intent.ACTION_GET_CONTENT); intent.action = Intent.ACTION_GET_CONTENT
fragment!!.startActivityForResult(
fragment.startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST); Intent.createChooser(intent, "Select Picture"),
PICK_IMAGE_REQUEST
)
} }
} companion object {
val PICK_IMAGE_REQUEST: Int = 71
val CAMERA_REQUEST: Int = 1888
val MY_CAMERA_PERMISSION_CODE: Int = 100
val STORAGE_PERMISSION_CODE: Int = 101
var photoURI: Uri? = null
}
}

View File

@@ -1,182 +1,163 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.Manifest; import android.Manifest
import android.app.Activity; import android.app.Activity
import android.content.Intent; import android.content.Intent
import android.content.pm.PackageManager; import android.content.pm.PackageManager
import android.graphics.Bitmap; import android.graphics.Bitmap
import android.net.Uri; import android.net.Uri
import android.os.Environment; import android.os.Environment
import android.provider.MediaStore; import android.provider.MediaStore
import android.support.v4.app.ActivityCompat; import android.util.Log
import android.util.Log; import android.view.View
import android.view.View; import android.widget.ImageView
import android.widget.ImageView; import android.widget.Toast
import android.widget.Toast; import androidx.core.app.ActivityCompat
import h_mal.appttude.com.driver.MainActivity
import java.io.File
import java.io.FileOutputStream
import java.io.IOException
import java.io.File; class ImageSelectorResults // public FilepathResponse delegate;
import java.io.FileOutputStream; {
import java.io.IOException; var activity: Activity? = null
import static android.app.Activity.RESULT_OK; open interface FilepathResponse {
import static android.os.Environment.DIRECTORY_PICTURES; fun processFinish(output: Uri?)
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.PICK_IMAGE_REQUEST;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.photoURI;
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
public class ImageSelectorResults {
Activity activity;
public interface FilepathResponse {
void processFinish(Uri output);
} }
// public FilepathResponse delegate; fun Results(
activity: Activity?, requestCode: Int, resultCode: Int, data: Intent?, filePath: Uri?,
public ImageSelectorResults() { imageView: ImageView?, delegate: FilepathResponse
} ) {
var filePath: Uri? = filePath
public void Results(Activity activity, int requestCode, int resultCode, Intent data, Uri filePath, this.activity = activity
ImageView imageView,FilepathResponse delegate){ if ((requestCode == ImageSelectorDialog.PICK_IMAGE_REQUEST) && (resultCode == Activity.RESULT_OK
) && (data != null) && (data.data != null)
this.activity = activity; ) {
filePath = data.data
if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK var bitmap: Bitmap? = null
&& data != null && data.getData() != null )
{
filePath = data.getData();
Bitmap bitmap = null;
try { try {
bitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), filePath); bitmap =
if (imageView.getVisibility() != View.VISIBLE) { MediaStore.Images.Media.getBitmap(activity!!.contentResolver, filePath)
imageView.setVisibility(View.VISIBLE); if (imageView!!.visibility != View.VISIBLE) {
imageView.visibility = View.VISIBLE
} }
imageView.setImageBitmap(bitmap); imageView.setImageBitmap(bitmap)
} } catch (e: IOException) {
catch (IOException e) e.printStackTrace()
{ } finally {
e.printStackTrace(); if (bitmap != null) {
} delegate.processFinish(filePath)
finally { Log.i(javaClass.simpleName, "Results: " + filePath)
if (bitmap != null){
delegate.processFinish(filePath);
Log.i(getClass().getSimpleName(), "Results: " + filePath);
} }
} }
} }
if (requestCode == ImageSelectorDialog.CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
//check if we have we have storage rights //check if we have we have storage rights
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); val permission: Int = ActivityCompat.checkSelfPermission(
(activity)!!,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
if (permission != PackageManager.PERMISSION_GRANTED) { if (permission != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(activity, "Storage permissions not granted", Toast.LENGTH_SHORT).show(); Toast.makeText(activity, "Storage permissions not granted", Toast.LENGTH_SHORT)
return; .show()
}else { return
} else {
try { try {
File f = Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES); val f: File =
String fname = "driver"+ getDateStamp() + ".jpg"; Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
File image = new File(f,fname); val fname: String = "driver" + MainActivity.dateStamp + ".jpg"
FileOutputStream fileOutputStream = new FileOutputStream(image); val image: File = File(f, fname)
val fileOutputStream: FileOutputStream = FileOutputStream(image)
filePath = photoURI; filePath = ImageSelectorDialog.photoURI
val bitmap: Bitmap = MediaStore.Images.Media
Bitmap bitmap = MediaStore.Images.Media .getBitmap(
.getBitmap(activity.getContentResolver(), photoURI); activity.contentResolver,
ImageSelectorDialog.photoURI
imageView.setImageBitmap(bitmap); )
imageView!!.setImageBitmap(bitmap)
bitmap.compress(Bitmap.CompressFormat.JPEG, 90,fileOutputStream); bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fileOutputStream)
fileOutputStream.flush(); fileOutputStream.flush()
fileOutputStream.close(); fileOutputStream.close()
galleryAddPic(); galleryAddPic()
} catch (e: Exception) {
} catch (Exception e) { e.printStackTrace()
e.printStackTrace();
} }
} }
delegate.processFinish(filePath)
delegate.processFinish(filePath); Log.i(javaClass.simpleName, "Results: " + filePath)
Log.i(getClass().getSimpleName(), "Results: " + filePath);
} }
} }
public void Results(Activity activity, int requestCode, int resultCode, Intent data, Uri filePath,FilepathResponse delegate){ fun Results(
activity: Activity?,
this.activity = activity; requestCode: Int,
resultCode: Int,
if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK data: Intent?,
&& data != null && data.getData() != null ) filePath: Uri?,
{ delegate: FilepathResponse
filePath = data.getData(); ) {
Bitmap bitmap = null; var filePath: Uri? = filePath
this.activity = activity
if ((requestCode == ImageSelectorDialog.PICK_IMAGE_REQUEST) && (resultCode == Activity.RESULT_OK
) && (data != null) && (data.data != null)
) {
filePath = data.data
var bitmap: Bitmap? = null
try { try {
bitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), filePath); bitmap =
} MediaStore.Images.Media.getBitmap(activity!!.contentResolver, filePath)
catch (IOException e) } catch (e: IOException) {
{ e.printStackTrace()
e.printStackTrace(); } finally {
} if (bitmap != null) {
finally { delegate.processFinish(filePath)
if (bitmap != null){ Log.i(javaClass.simpleName, "Results: " + filePath)
delegate.processFinish(filePath);
Log.i(getClass().getSimpleName(), "Results: " + filePath);
} }
} }
} }
if (requestCode == ImageSelectorDialog.CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
//check if we have we have storage rights //check if we have we have storage rights
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); val permission: Int = ActivityCompat.checkSelfPermission(
(activity)!!,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
if (permission != PackageManager.PERMISSION_GRANTED) { if (permission != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(activity, "Storage permissions not granted", Toast.LENGTH_SHORT).show(); Toast.makeText(activity, "Storage permissions not granted", Toast.LENGTH_SHORT)
return; .show()
}else { return
} else {
try { try {
File f = Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES); val f: File =
String fname = "driver"+ getDateStamp() + ".jpg"; Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
File image = new File(f,fname); val fname: String = "driver" + MainActivity.dateStamp + ".jpg"
FileOutputStream fileOutputStream = new FileOutputStream(image); val image: File = File(f, fname)
val fileOutputStream: FileOutputStream = FileOutputStream(image)
filePath = photoURI; filePath = ImageSelectorDialog.photoURI
val bitmap: Bitmap = MediaStore.Images.Media
Bitmap bitmap = MediaStore.Images.Media .getBitmap(
.getBitmap(activity.getContentResolver(), photoURI); activity.contentResolver,
ImageSelectorDialog.photoURI
)
bitmap.compress(Bitmap.CompressFormat.JPEG, 90,fileOutputStream); bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fileOutputStream)
fileOutputStream.flush(); fileOutputStream.flush()
fileOutputStream.close(); fileOutputStream.close()
galleryAddPic(); galleryAddPic()
} catch (e: Exception) {
} catch (Exception e) { e.printStackTrace()
e.printStackTrace();
} }
} }
delegate.processFinish(filePath)
delegate.processFinish(filePath); Log.i(javaClass.simpleName, "Results: " + filePath)
Log.i(getClass().getSimpleName(), "Results: " + filePath);
} }
} }
private void galleryAddPic() { private fun galleryAddPic() {
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); val mediaScanIntent: Intent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)
File f = new File(photoURI.getPath()); val f: File = File(ImageSelectorDialog.photoURI!!.path)
Uri contentUri = Uri.fromFile(f); val contentUri: Uri = Uri.fromFile(f)
mediaScanIntent.setData(contentUri); mediaScanIntent.data = contentUri
activity.sendBroadcast(mediaScanIntent); activity!!.sendBroadcast(mediaScanIntent)
} }
}
}

View File

@@ -1,245 +1,195 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.app.AlertDialog; import android.app.AlertDialog
import android.content.Context; import android.content.Context
import android.content.DialogInterface; import android.content.DialogInterface
import android.graphics.Bitmap; import android.util.Log
import android.graphics.Color; import android.view.LayoutInflater
import android.graphics.drawable.Drawable; import android.view.View
import android.provider.ContactsContract; import android.view.ViewGroup
import android.support.annotation.NonNull; import android.view.animation.AlphaAnimation
import android.support.v4.view.PagerAdapter; import android.widget.ImageView
import android.support.v4.view.ViewPager; import androidx.viewpager.widget.PagerAdapter
import android.util.Log; import androidx.viewpager.widget.ViewPager
import android.view.LayoutInflater; import androidx.viewpager.widget.ViewPager.OnPageChangeListener
import android.view.View; import com.squareup.picasso.Picasso
import android.view.ViewGroup; import h_mal.appttude.com.driver.MainActivity
import android.view.animation.AlphaAnimation; import h_mal.appttude.com.driver.R
import android.widget.ImageView; import java.util.*
import android.widget.ProgressBar;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.Target;
import java.util.ArrayList; class ImageSwiperClass constructor(private val context: Context?, wholeView: View?) {
import java.util.List; private val left: ImageView
private var mainImage: ImageView? = null
import h_mal.appttude.com.driver.R; private val right: ImageView
var imageStrings: MutableList<String?>? = null
import static h_mal.appttude.com.driver.MainActivity.imageViewClass; private set
import static h_mal.appttude.com.driver.MainActivity.loadImage; private var adapter: SlidingImageViewAdapter? = null
var viewPager: ViewPager
public class ImageSwiperClass{ var delete: ImageView
fun addPhotoString(s: String?) {
private static final String TAG = "ImageSwiperClass"; if (imageStrings == null) {
imageStrings = ArrayList()
private ImageView left;
private ImageView mainImage;
private ImageView right;
private List<String> imageStrings;
private Context context;
private SlidingImageViewAdapter adapter;
ViewPager viewPager;
public ImageView delete;
public ImageSwiperClass(Context context, View wholeView) {
this.context = context;
left = wholeView.findViewById(R.id.left);
right = wholeView.findViewById(R.id.right);
left.setOnClickListener(leftClick);
right.setOnClickListener(rightClick);
viewPager = wholeView.findViewById(R.id.view_pager);
delete = wholeView.findViewById(R.id.delete);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
AlphaAnimation animation1 = new AlphaAnimation(0.2f, 1.0f);
animation1.setDuration(200);
animation1.setFillAfter(true);
delete.startAnimation(animation1);
}
@Override
public void onPageSelected(final int i) {
Log.i(TAG, "onPageSelected: position = " + i);
setArrows();
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deleteDialog(i);
}
});
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
Log.i(TAG, "ImageSwiperClass: viewpager = " + viewPager.getId());
}
public List<String> getImageStrings() {
return imageStrings;
}
public void addPhotoString(String s){
if (imageStrings == null){
imageStrings = new ArrayList<>();
} }
imageStrings.add(s); imageStrings!!.add(s)
adapter = SlidingImageViewAdapter()
adapter = new SlidingImageViewAdapter(); viewPager.adapter = adapter
viewPager.setAdapter(adapter);
} }
public void reinstantiateList(List<String> imageStrings){ fun reinstantiateList(imageStrings: MutableList<String?>?) {
this.imageStrings = imageStrings; this.imageStrings = imageStrings
adapter = SlidingImageViewAdapter()
adapter = new SlidingImageViewAdapter(); viewPager.adapter = adapter
viewPager.setAdapter(adapter); setArrows()
setArrows();
} }
public void hideDelete(){ fun hideDelete() {
delete.setVisibility(View.INVISIBLE); delete.visibility = View.INVISIBLE
Log.i(TAG, "hideDelete: hides deleete?"); Log.i(TAG, "hideDelete: hides deleete?")
} }
private View.OnClickListener leftClick = new View.OnClickListener() { private val leftClick: View.OnClickListener = object : View.OnClickListener {
@Override override fun onClick(v: View) {
public void onClick(View v) { viewPager.currentItem = viewPager.currentItem - 1
viewPager.setCurrentItem(viewPager.getCurrentItem() - 1); setArrows()
setArrows();
} }
}; }
private val rightClick: View.OnClickListener = object : View.OnClickListener {
private View.OnClickListener rightClick = new View.OnClickListener() { override fun onClick(v: View) {
@Override viewPager.currentItem = viewPager.currentItem + 1
public void onClick(View v) { setArrows()
viewPager.setCurrentItem(viewPager.getCurrentItem() +1);
setArrows();
} }
}; }
private void deleteDialog(final int position){ private fun deleteDialog(position: Int) {
AlertDialog.Builder builder = new AlertDialog.Builder(context); val builder: AlertDialog.Builder = AlertDialog.Builder(context)
builder.setMessage("Are you sure you want to delete?") builder.setMessage("Are you sure you want to delete?")
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { .setPositiveButton(android.R.string.ok, object : DialogInterface.OnClickListener {
@Override override fun onClick(dialog: DialogInterface, which: Int) {
public void onClick(DialogInterface dialog, int which) { imageStrings!!.removeAt(position)
imageStrings.remove(position); viewPager.adapter = adapter
viewPager.setAdapter(adapter); // adapter.notifyDataSetChanged();
// adapter.notifyDataSetChanged(); }
} })
}) .setNegativeButton(android.R.string.cancel, null)
.setNegativeButton(android.R.string.cancel, null) .create()
.create() .show()
.show();
} }
private void setArrows(){ private fun setArrows() {
if (imageStrings != null && imageStrings.size() > 0){ if (imageStrings != null && imageStrings!!.size > 0) {
//left arrow //left arrow
if (viewPager.getCurrentItem() > 0){ if (viewPager.currentItem > 0) {
setAnimation(left,true); setAnimation(left, true)
}else{ } else {
setAnimation(left,false); setAnimation(left, false)
} }
//right //right
if (viewPager.getCurrentItem() == imageStrings.size() -1){ if (viewPager.currentItem == imageStrings!!.size - 1) {
setAnimation(right,false); setAnimation(right, false)
}else{ } else {
setAnimation(right,true); setAnimation(right, true)
} }
} }
if (imageStrings == null){ if (imageStrings == null) {
setAnimation(left,false); setAnimation(left, false)
setAnimation(right,false); setAnimation(right, false)
} }
} }
private void setAnimation(ImageView view,boolean up){ private fun setAnimation(view: ImageView, up: Boolean) {
float start; val start: Float
float finish; val finish: Float
if(up){ if (up) {
start = 0.2f; start = 0.2f
finish = 1.0f; finish = 1.0f
}else { } else {
start = 1.0f; start = 1.0f
finish = 0.2f; finish = 0.2f
} }
// if (view.getAlpha() != start){ // if (view.getAlpha() != start){
AlphaAnimation animation1 = new AlphaAnimation(start, finish); val animation1: AlphaAnimation = AlphaAnimation(start, finish)
animation1.setDuration(500); animation1.duration = 500
animation1.setFillAfter(true); animation1.fillAfter = true
// view.startAnimation(animation1); // view.startAnimation(animation1);
view.setAlpha(finish); view.alpha = finish
// } // }
} }
class SlidingImageViewAdapter extends PagerAdapter{ internal inner class SlidingImageViewAdapter : PagerAdapter() {
override fun getCount(): Int {
@Override if (imageStrings == null || imageStrings!!.size < 1) {
public int getCount() { delete.visibility = View.GONE
if (imageStrings == null || imageStrings.size() < 1){ return 0
delete.setVisibility(View.GONE); } else {
return 0; delete.visibility = View.VISIBLE
}else { return imageStrings!!.size
delete.setVisibility(View.VISIBLE);
return imageStrings.size();
}
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position,Object object) {
if (object != null){
container.removeView((View) object);
}else {
container.removeViewAt(position);
} }
} }
@Override override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) { if (`object` != null) {
return view.equals(o); container.removeView(`object` as View?)
} } else {
container.removeViewAt(position)
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, final int position) {
View pagerPic = LayoutInflater.from(context).inflate(R.layout.insurance_item,container,false);
setArrows();
if(imageStrings != null && imageStrings.size() >0){
mainImage = pagerPic.getRootView().findViewById(R.id.main_image);
final ProgressBar pb = pagerPic.findViewById(R.id.pb_ins);
Picasso.get().load(imageStrings.get(position)).into(loadImage(pb,mainImage));
} }
container.addView(pagerPic, 0);
return pagerPic;
} }
@Override override fun isViewFromObject(view: View, o: Any): Boolean {
public void notifyDataSetChanged() { return (view == o)
super.notifyDataSetChanged(); }
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val pagerPic: View =
LayoutInflater.from(context).inflate(R.layout.insurance_item, container, false)
setArrows()
if (imageStrings != null && imageStrings!!.size > 0) {
mainImage = pagerPic.rootView.findViewById(R.id.main_image)
Picasso.get().load(imageStrings!!.get(position))
.placeholder(R.drawable.choice_img)
.into(MainActivity.loadImage(mainImage))
}
container.addView(pagerPic, 0)
return pagerPic
}
override fun notifyDataSetChanged() {
super.notifyDataSetChanged()
} }
} }
}
companion object {
private val TAG: String = "ImageSwiperClass"
}
init {
left = wholeView!!.findViewById(R.id.left)
right = wholeView.findViewById(R.id.right)
left.setOnClickListener(leftClick)
right.setOnClickListener(rightClick)
viewPager = wholeView.findViewById(R.id.view_pager)
delete = wholeView.findViewById(R.id.delete)
viewPager.addOnPageChangeListener(object : OnPageChangeListener {
override fun onPageScrolled(i: Int, v: Float, i1: Int) {
val animation1: AlphaAnimation = AlphaAnimation(0.2f, 1.0f)
animation1.duration = 200
animation1.fillAfter = true
delete.startAnimation(animation1)
}
override fun onPageSelected(i: Int) {
Log.i(TAG, "onPageSelected: position = " + i)
setArrows()
delete.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
deleteDialog(i)
}
})
}
override fun onPageScrollStateChanged(i: Int) {}
})
Log.i(TAG, "ImageSwiperClass: viewpager = " + viewPager.id)
}
}

View File

@@ -1,121 +1,96 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.content.Intent; import android.content.Intent
import android.graphics.Bitmap; import android.graphics.Bitmap
import android.graphics.Color; import android.net.Uri
import android.net.Uri; import android.os.Bundle
import android.os.Bundle; import android.os.Environment
import android.os.Environment; import android.view.LayoutInflater
import android.provider.MediaStore; import android.view.View
import android.support.design.widget.FloatingActionButton; import android.view.ViewGroup
import android.support.v4.app.Fragment; import android.view.WindowManager
import android.support.v4.content.ContextCompat; import androidx.appcompat.app.AppCompatActivity
import android.support.v7.app.AppCompatActivity; import androidx.fragment.app.Fragment
import android.view.LayoutInflater; import com.github.chrisbanes.photoview.PhotoView
import android.view.View; import com.google.android.material.floatingactionbutton.FloatingActionButton
import android.view.ViewGroup; import h_mal.appttude.com.driver.MainActivity
import android.view.Window; import h_mal.appttude.com.driver.R
import android.view.WindowManager; import java.io.File
import android.widget.ImageView; import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import com.github.chrisbanes.photoview.PhotoView;
import java.io.ByteArrayOutputStream; class ImageViewClass {
import java.io.File; fun open(bitmap: Bitmap?) {
import java.io.FileNotFoundException; Companion.bitmap = bitmap
import java.io.FileOutputStream; ExecuteFragment.executeFragment(ImageViewerFragment())
import java.io.IOException;
import h_mal.appttude.com.driver.R;
import static android.os.Environment.DIRECTORY_PICTURES;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.photoURI;
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
public class ImageViewClass {
public static final String IMAGE_VALUE = "image";
private static Bitmap bitmap;
public ImageViewClass() {
} }
public void open(Bitmap bitmap){ class ImageViewerFragment : Fragment() {
ImageViewClass.bitmap = bitmap; private var view: View? = null
executeFragment(new ImageViewerFragment()); override fun onCreate(savedInstanceState: Bundle?) {
} super.onCreate(savedInstanceState)
public static class ImageViewerFragment extends Fragment {
private View view;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_image_viewer, container, false); view = inflater.inflate(R.layout.fragment_image_viewer, container, false)
val fab: FloatingActionButton = view.findViewById(R.id.download_pic)
FloatingActionButton fab = view.findViewById(R.id.download_pic); if (bitmap != null) {
val photoView: PhotoView = view.findViewById(R.id.photo_view)
if (bitmap != null){ photoView.setImageBitmap(bitmap)
PhotoView photoView = view.findViewById(R.id.photo_view); fab.setOnClickListener(object : View.OnClickListener {
photoView.setImageBitmap(bitmap); override fun onClick(v: View) {
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try { try {
downloadPic(); downloadPic()
} catch (FileNotFoundException e) { } catch (e: FileNotFoundException) {
e.printStackTrace(); e.printStackTrace()
} }
} }
}); })
} }
return view
return view;
} }
@Override override fun onResume() {
public void onResume() { super.onResume()
super.onResume(); (activity as AppCompatActivity?)!!.supportActionBar!!.hide()
((AppCompatActivity)getActivity()).getSupportActionBar().hide(); activity!!.window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
@Override
public void onStop() {
super.onStop();
((AppCompatActivity)getActivity()).getSupportActionBar().show();
getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
} }
private void downloadPic() throws FileNotFoundException { override fun onStop() {
File f = Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES); super.onStop()
String fname = "driver"+ getDateStamp() + ".jpg"; (activity as AppCompatActivity?)!!.supportActionBar!!.show()
File image = new File(f,fname); activity!!.window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
FileOutputStream fileOutputStream = new FileOutputStream(image); }
bitmap.compress(Bitmap.CompressFormat.JPEG, 100,fileOutputStream); @Throws(FileNotFoundException::class)
private fun downloadPic() {
val f: File =
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
val fname: String = "driver" + MainActivity.Companion.dateStamp + ".jpg"
val image: File = File(f, fname)
val fileOutputStream: FileOutputStream = FileOutputStream(image)
bitmap!!.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream)
try { try {
fileOutputStream.flush(); fileOutputStream.flush()
fileOutputStream.close(); fileOutputStream.close()
val mediaScanIntent: Intent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); val contentUri: Uri = Uri.fromFile(image)
Uri contentUri = Uri.fromFile(image); mediaScanIntent.data = contentUri
mediaScanIntent.setData(contentUri); activity!!.sendBroadcast(mediaScanIntent)
getActivity().sendBroadcast(mediaScanIntent); } catch (e: IOException) {
} catch (IOException e) { e.printStackTrace()
e.printStackTrace();
} }
} }
} }
}
companion object {
val IMAGE_VALUE: String = "image"
private var bitmap: Bitmap? = null
}
}

View File

@@ -1,155 +1,122 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.app.Activity; import android.app.Activity
import android.app.AlertDialog; import android.app.AlertDialog
import android.content.DialogInterface; import android.content.DialogInterface
import android.support.annotation.NonNull; import android.view.View
import android.view.View; import android.widget.ImageView
import android.widget.ImageView; import android.widget.Toast
import android.widget.Toast; import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task
import h_mal.appttude.com.driver.MainActivity
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import h_mal.appttude.com.driver.R; class SetApprovalDialog constructor(
var statusCode: Int,
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment; private val activity: Activity,
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT; private val userId: String?,
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_DENIED; position: Int,
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING; private val imageView: ImageView
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVED; ) {
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE; private val groupNames: Array<String> = arrayOf("Pending", "Denied", "Approved")
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_DETAILS_FIREBASE; private val approvalNameString: String
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE; fun init() {
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE; val checkedItem: Int
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE; when (statusCode) {
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE; FirebaseClass.APPROVAL_PENDING -> checkedItem = 0
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE; FirebaseClass.APPROVAL_DENIED -> checkedItem = 1
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_APPROVALS; FirebaseClass.APPROVED -> checkedItem = 2
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE; else -> checkedItem = -1
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_DETAILS_FIREBASE;
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
import static h_mal.appttude.com.driver.MainActivity.viewController;
public class SetApprovalDialog{
private final String[] groupNames = {"Pending","Denied","Approved"};
private String approvalNameString;
public int statusCode;
private Activity activity;
private String userId;
private ImageView imageView;
public SetApprovalDialog(int statusCode, Activity activity, String userId, int position, ImageView imageView) {
this.statusCode = statusCode;
this.activity = activity;
this.userId = userId;
this.imageView = imageView;
this.approvalNameString = getElement(position);
init();
}
public void init(){
int checkedItem;
switch (statusCode){
case APPROVAL_PENDING:
checkedItem = 0;
break;
case APPROVAL_DENIED:
checkedItem = 1;
break;
case APPROVED:
checkedItem = 2;
break;
default:
checkedItem = -1;
break;
} }
val alertBuilder: AlertDialog.Builder = AlertDialog.Builder(
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(activity); activity
alertBuilder.setSingleChoiceItems(groupNames, checkedItem, singleChoiceListener); )
// .setPositiveButton(android.R.string.ok, submit); alertBuilder.setSingleChoiceItems(groupNames, checkedItem, singleChoiceListener)
alertBuilder.create().getOwnerActivity(); // .setPositiveButton(android.R.string.ok, submit);
alertBuilder.show(); alertBuilder.create().ownerActivity
alertBuilder.show()
} }
DialogInterface.OnClickListener singleChoiceListener = new DialogInterface.OnClickListener() { var singleChoiceListener: DialogInterface.OnClickListener =
@Override object : DialogInterface.OnClickListener {
public void onClick(DialogInterface dialog, int which) { override fun onClick(dialog: DialogInterface, which: Int) {
switch (which) { when (which) {
case 0: 0 -> {
statusCode = APPROVAL_PENDING; statusCode = FirebaseClass.APPROVAL_PENDING
publishStatuscode(statusCode, dialog); publishStatuscode(statusCode, dialog)
return; return
case 1: }
statusCode = APPROVAL_DENIED; 1 -> {
publishStatuscode(statusCode, dialog); statusCode = FirebaseClass.APPROVAL_DENIED
return; publishStatuscode(statusCode, dialog)
case 2: return
statusCode = APPROVED; }
publishStatuscode(statusCode, dialog); 2 -> {
return; statusCode = FirebaseClass.APPROVED
publishStatuscode(statusCode, dialog)
return
}
}
} }
} }
};
private void publishStatuscode(final int status, final DialogInterface dialog){ private fun publishStatuscode(status: Int, dialog: DialogInterface) {
viewController.progress(View.VISIBLE); MainActivity.viewController!!.progress(View.VISIBLE)
if (!(approvalNameString == "")) {
if (!approvalNameString.equals("")){ MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
mDatabase.child(USER_FIREBASE).child(userId).child(USER_APPROVALS).child(approvalNameString) (userId)!!
.setValue(status).addOnCompleteListener(new OnCompleteListener<Void>() { ).child(FirebaseClass.USER_APPROVALS).child(approvalNameString)
@Override .setValue(status).addOnCompleteListener(object : OnCompleteListener<Void?> {
public void onComplete(@NonNull Task<Void> task) { override fun onComplete(task: Task<Void?>) {
if (task.isSuccessful()){ if (task.isSuccessful) {
Toast.makeText(activity, "Status change successful", Toast.LENGTH_SHORT).show(); Toast.makeText(activity, "Status change successful", Toast.LENGTH_SHORT)
imageView.setImageResource(approvalsClass.setImageResource(status)); .show()
dialog.dismiss(); imageView.setImageResource(
}else{ MainActivity.approvalsClass!!.setImageResource(
Toast.makeText(activity, "Status change unsuccessful", Toast.LENGTH_SHORT).show(); status
)
)
dialog.dismiss()
} else {
Toast.makeText(
activity,
"Status change unsuccessful",
Toast.LENGTH_SHORT
).show()
}
MainActivity.viewController!!.progress(View.GONE)
} }
viewController.progress(View.GONE); })
} } else {
}); Toast.makeText(activity, "Could not push status", Toast.LENGTH_SHORT).show()
}else {
Toast.makeText(activity, "Could not push status", Toast.LENGTH_SHORT).show();
} }
} }
private String getElement(int i){ private fun getElement(i: Int): String {
String element = ""; var element: String = ""
when (i) {
switch (i){ 0 -> element =
case 0: FirebaseClass.DRIVER_DETAILS_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
element = DRIVER_DETAILS_FIREBASE + APPROVAL_CONSTANT; 1 -> element =
break; FirebaseClass.DRIVERS_LICENSE_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
case 1: 2 -> element =
element = DRIVERS_LICENSE_FIREBASE + APPROVAL_CONSTANT; FirebaseClass.PRIVATE_HIRE_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
break; 3 -> element =
case 2: FirebaseClass.VEHICLE_DETAILS_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
element = PRIVATE_HIRE_FIREBASE + APPROVAL_CONSTANT; 4 -> element =
break; FirebaseClass.INSURANCE_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
case 3: 5 -> element =
element = VEHICLE_DETAILS_FIREBASE + APPROVAL_CONSTANT; FirebaseClass.MOT_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
break; 6 -> element =
case 4: FirebaseClass.LOG_BOOK_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
element = INSURANCE_FIREBASE + APPROVAL_CONSTANT; 7 -> element =
break; FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE + FirebaseClass.APPROVAL_CONSTANT
case 5:
element = MOT_FIREBASE + APPROVAL_CONSTANT;
break;
case 6:
element = LOG_BOOK_FIREBASE + APPROVAL_CONSTANT;
break;
case 7:
element = PRIVATE_HIRE_VEHICLE_LICENSE + APPROVAL_CONSTANT;
} }
return element
return element;
} }
}
init {
approvalNameString = getElement(position)
init()
}
}

View File

@@ -1,32 +1,23 @@
package h_mal.appttude.com.driver.Global; package h_mal.appttude.com.driver.Global
import android.app.Activity; import android.app.Activity
import android.view.View;
public class ViewController {
private Activity activity; class ViewController constructor(private val activity: Activity?) {
fun progress(vis: Int) {
public ViewController(Activity activity) { if (activity is ViewControllerInterface) {
this.activity = activity; (activity as ViewControllerInterface).progressVisibility(vis)
}
public void progress(int vis){
if (activity instanceof ViewControllerInterface){
((ViewControllerInterface) activity).progressVisibility(vis);
} }
} }
public void reloadDrawer(){ fun reloadDrawer() {
if (activity instanceof ViewControllerInterface){ if (activity is ViewControllerInterface) {
((ViewControllerInterface) activity).updateDrawer(); (activity as ViewControllerInterface).updateDrawer()
} }
} }
public interface ViewControllerInterface { open interface ViewControllerInterface {
fun progressVisibility(vis: Int)
void progressVisibility(int vis); fun updateDrawer()
void updateDrawer();
} }
} }

View File

@@ -1,397 +1,318 @@
package h_mal.appttude.com.driver; package h_mal.appttude.com.driver
import android.Manifest; import android.Manifest
import android.app.Activity; import android.app.Activity
import android.app.Dialog; import android.app.AlertDialog
import android.content.DialogInterface; import android.content.DialogInterface
import android.content.Intent; import android.content.Intent
import android.content.pm.PackageManager; import android.content.pm.PackageManager
import android.graphics.Bitmap; import android.graphics.Bitmap
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.util.Log
import android.support.v4.app.ActivityCompat; import android.view.Menu
import android.support.v4.app.FragmentManager; import android.view.MenuItem
import android.support.v7.app.AlertDialog; import android.view.View
import android.util.Log; import android.widget.ImageView
import android.view.View; import android.widget.ProgressBar
import android.support.design.widget.NavigationView; import android.widget.TextView
import android.support.v4.view.GravityCompat; import androidx.appcompat.app.ActionBarDrawerToggle
import android.support.v4.widget.DrawerLayout; import androidx.appcompat.app.AppCompatActivity
import android.support.v7.app.ActionBarDrawerToggle; import androidx.appcompat.widget.Toolbar
import android.support.v7.app.AppCompatActivity; import androidx.core.app.ActivityCompat
import android.support.v7.widget.Toolbar; import androidx.core.view.GravityCompat
import android.view.Menu; import androidx.drawerlayout.widget.DrawerLayout
import android.view.MenuItem; import androidx.fragment.app.FragmentManager
import android.view.WindowManager; import com.google.android.material.navigation.NavigationView
import android.widget.ImageView; import com.google.firebase.auth.FirebaseAuth
import android.widget.ProgressBar; import com.google.firebase.auth.FirebaseUser
import android.widget.TextView; import com.google.firebase.database.*
import com.google.firebase.storage.FirebaseStorage
import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.storage.StorageReference
import com.google.firebase.auth.FirebaseUser; import com.google.gson.Gson
import com.google.firebase.database.DataSnapshot; import com.google.gson.GsonBuilder
import com.google.firebase.database.DatabaseError; import com.google.gson.JsonElement
import com.google.firebase.database.DatabaseReference; import com.google.gson.JsonParser
import com.google.firebase.database.FirebaseDatabase; import com.squareup.picasso.Picasso
import com.google.firebase.database.ValueEventListener; import com.squareup.picasso.Picasso.LoadedFrom
import com.google.firebase.storage.FirebaseStorage; import com.squareup.picasso.Target
import com.google.firebase.storage.StorageReference; import h_mal.appttude.com.driver.Driver.DriverOverallFragment
import com.google.gson.Gson; import h_mal.appttude.com.driver.Driver.VehicleOverallFragment
import com.google.gson.GsonBuilder; import h_mal.appttude.com.driver.Driver.homeDriverFragment
import com.google.gson.JsonElement; import h_mal.appttude.com.driver.Global.*
import com.google.gson.JsonParser; import h_mal.appttude.com.driver.Global.ViewController.ViewControllerInterface
import com.squareup.picasso.Picasso; import h_mal.appttude.com.driver.SuperUser.homeSuperUserFragment
import com.squareup.picasso.Target; import h_mal.appttude.com.driver.user.LoginActivity
import h_mal.appttude.com.driver.user.profileFragment
import java.text.ParseException; import java.text.ParseException
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat
import java.util.Date; import java.util.*
import h_mal.appttude.com.driver.Driver.DriverOverallFragment;
import h_mal.appttude.com.driver.Driver.VehicleOverallFragment;
import h_mal.appttude.com.driver.Driver.VehicleSetupFragment;
import h_mal.appttude.com.driver.Driver.DriverProfileFragment;
import h_mal.appttude.com.driver.Driver.homeDriverFragment;
import h_mal.appttude.com.driver.Global.ApprovalsClass;
import h_mal.appttude.com.driver.Global.ArchiveClass;
import h_mal.appttude.com.driver.Global.ImageViewClass;
import h_mal.appttude.com.driver.Global.ViewController;
import h_mal.appttude.com.driver.SuperUser.homeSuperUserFragment;
import h_mal.appttude.com.driver.User.LoginActivity;
import h_mal.appttude.com.driver.User.profileFragment;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener, ViewController.ViewControllerInterface {
private static String TAG = MainActivity.class.getSimpleName();
public static FragmentManager fragmentManager;
public static FirebaseAuth auth;
public static FirebaseStorage storage;
public static StorageReference storageReference;
public static DatabaseReference mDatabase;
public NavigationView navigationView;
ProgressBar progressBar;
public Toolbar toolbar;
public static ViewController viewController;
public static ImageViewClass imageViewClass;
public static ApprovalsClass approvalsClass;
public static ArchiveClass archiveClass;
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewController = new ViewController(this);
imageViewClass = new ImageViewClass();
approvalsClass = new ApprovalsClass();
archiveClass = new ArchiveClass();
auth = FirebaseAuth.getInstance();
storage = FirebaseStorage.getInstance();
storageReference = storage.getReference();
mDatabase = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = mDatabase.child(USER_FIREBASE)
.child(auth.getCurrentUser().getUid())
.child("role");
toolbar = (Toolbar) findViewById(R.id.toolbar); class MainActivity : AppCompatActivity(),
setSupportActionBar(toolbar); NavigationView.OnNavigationItemSelectedListener, ViewControllerInterface {
var navigationView: NavigationView? = null
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); var progressBar: ProgressBar? = null
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( var toolbar: Toolbar? = null
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); override fun onCreate(savedInstanceState: Bundle?) {
drawer.addDrawerListener(toggle); super.onCreate(savedInstanceState)
toggle.syncState(); setContentView(R.layout.activity_main)
viewController = ViewController(this)
navigationView = (NavigationView) findViewById(R.id.nav_view); imageViewClass = ImageViewClass()
navigationView.setNavigationItemSelectedListener(this); approvalsClass = ApprovalsClass()
setupDrawer(); archiveClass = ArchiveClass()
auth = FirebaseAuth.getInstance()
fragmentManager = getSupportFragmentManager(); storage = FirebaseStorage.getInstance()
fragmentManager.addOnBackStackChangedListener(backStackChangedListener); storageReference = storage!!.reference
mDatabase = FirebaseDatabase.getInstance().reference
progressBar = findViewById(R.id.progress_bar); val ref: DatabaseReference = mDatabase!!.child(FirebaseClass.USER_FIREBASE)
progressBar.setVisibility(View.VISIBLE); .child(auth.getCurrentUser()!!.uid)
.child("role")
ref.addListenerForSingleValueEvent(new ValueEventListener() { toolbar = findViewById<View>(R.id.toolbar) as Toolbar?
@Override setSupportActionBar(toolbar)
public void onDataChange(@NonNull DataSnapshot dataSnapshot) { val drawer: DrawerLayout = findViewById<View>(R.id.drawer_layout) as DrawerLayout
String role = (String) dataSnapshot.getValue(); val toggle: ActionBarDrawerToggle = ActionBarDrawerToggle(
Log.i(TAG, "onDataChange: " + role); this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close
if (role.equals("driver")){ )
executeFragment(new homeDriverFragment()); drawer.addDrawerListener(toggle)
toggle.syncState()
}else if(role.equals("super_user")){ navigationView = findViewById<View>(R.id.nav_view) as NavigationView?
executeFragment(new homeSuperUserFragment()); navigationView!!.setNavigationItemSelectedListener(this)
setupDrawer()
fragmentManager = supportFragmentManager
fragmentManager.addOnBackStackChangedListener(backStackChangedListener)
progressBar = findViewById(R.id.progress_bar)
progressBar.setVisibility(View.VISIBLE)
ref.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
val role: String? = dataSnapshot.value as String?
Log.i(TAG, "onDataChange: " + role)
if ((role == "driver")) {
ExecuteFragment.executeFragment(homeDriverFragment())
} else if ((role == "super_user")) {
ExecuteFragment.executeFragment(homeSuperUserFragment())
} }
drawerMenuItems(role); drawerMenuItems(role)
progressBar.setVisibility(View.GONE); progressBar.setVisibility(View.GONE)
} }
@Override override fun onCancelled(databaseError: DatabaseError) {
public void onCancelled(@NonNull DatabaseError databaseError) { progressBar.setVisibility(View.GONE)
progressBar.setVisibility(View.GONE);
} }
}); })
} }
public FragmentManager.OnBackStackChangedListener backStackChangedListener= new FragmentManager.OnBackStackChangedListener() { var backStackChangedListener: FragmentManager.OnBackStackChangedListener =
@Override object : FragmentManager.OnBackStackChangedListener {
public void onBackStackChanged() { override fun onBackStackChanged() {
String fragmentString = fragmentManager.getFragments().get(0).getClass().getSimpleName(); val fragmentString: String =
String title; fragmentManager!!.fragments.get(0).javaClass.simpleName
val title: String
switch (fragmentString){ when (fragmentString) {
case "DriverProfileFragment": "DriverProfileFragment" -> title = "Driver Profile"
title = "Driver Profile"; "DriverLicenseFragment" -> title = "Drivers License"
break; "InsuranceFragment" -> title = "Insurance"
case "DriverLicenseFragment": "logbookFragment" -> title = "Logbook"
title = "Drivers License"; "MotFragment" -> title = "M.O.T"
break; "PrivateHireLicenseFragment" -> title = "Private Hire License"
case "InsuranceFragment": "VehicleSetupFragment" -> title = "Vehicle Profile"
title = "Insurance"; "UserMainFragment" -> return
break; "ArchiveFragment" -> return
case "logbookFragment": else -> title = resources.getString(R.string.app_name)
title = "Logbook"; }
break; setTitle(title)
case "MotFragment":
title = "M.O.T";
break;
case "PrivateHireLicenseFragment":
title = "Private Hire License";
break;
case "VehicleSetupFragment":
title = "Vehicle Profile";
break;
case "UserMainFragment":
return;
case "ArchiveFragment":
return;
default:
title = getResources().getString(R.string.app_name);
} }
setTitle(title);
} }
};
@Override override fun setTitle(title: CharSequence) {
public void setTitle(CharSequence title) { toolbar!!.title = title
// super.setTitle(title);
toolbar.setTitle(title);
} }
public void drawerMenuItems(String s){ fun drawerMenuItems(s: String?) {
if (s.equals("super_user")){ if ((s == "super_user")) {
Menu menu = navigationView.getMenu(); val menu: Menu = navigationView!!.menu
menu.removeGroup(R.id.menu_group); menu.removeGroup(R.id.menu_group)
} }
} }
public void setupDrawer(){ fun setupDrawer() {
View header = navigationView.getHeaderView(0); val header: View = navigationView!!.getHeaderView(0)
val driverEmail: TextView = header.findViewById(R.id.driver_email)
TextView driverEmail = header.findViewById(R.id.driver_email); val driverName: TextView = header.findViewById(R.id.driver_name)
TextView driverName = header.findViewById(R.id.driver_name); val driverImage: ImageView = header.findViewById(R.id.profileImage)
ImageView driverImage = header.findViewById(R.id.profileImage); if (auth != null) {
val user: FirebaseUser? = auth!!.currentUser
if (auth != null){ if (user!!.email != null) {
FirebaseUser user = auth.getCurrentUser(); driverEmail.text = user.email
if (user.getEmail() != null){
driverEmail.setText(user.getEmail());
} }
if (user.getDisplayName() != null){ if (user.displayName != null) {
driverName.setText(user.getDisplayName()); driverName.text = user.displayName
} }
Picasso.get() Picasso.get()
.load(user.getPhotoUrl()) .load(user.photoUrl)
.placeholder(R.drawable.choice_img_round) .placeholder(R.drawable.choice_img_round)
.into(driverImage); .into(driverImage)
} }
val textView: TextView = findViewById(R.id.logout)
TextView textView = findViewById(R.id.logout); textView.setOnClickListener(object : View.OnClickListener {
textView.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override auth!!.signOut()
public void onClick(View v) { val intent: Intent = Intent(applicationContext, LoginActivity::class.java)
auth.signOut(); startActivity(intent)
Intent intent = new Intent(getApplicationContext(),LoginActivity.class); finish()
startActivity(intent);
finish();
} }
}); })
} }
@Override override fun onBackPressed() {
public void onBackPressed() { val drawer: DrawerLayout = findViewById<View>(R.id.drawer_layout) as DrawerLayout
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) { if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START); drawer.closeDrawer(GravityCompat.START)
} else { } else {
if (fragmentManager.getBackStackEntryCount() > 1) { if (fragmentManager!!.backStackEntryCount > 1) {
if (fragmentManager.getFragments().get(0).getClass() if ((fragmentManager!!.fragments.get(0).javaClass
.getSimpleName().equals("InsuranceFragment")){ .simpleName == "InsuranceFragment")
new AlertDialog.Builder(this) ) {
.setTitle("Return to previous?") AlertDialog.Builder(this)
.setMessage("Progress unsaved. Are you sure?") .setTitle("Return to previous?")
.setNegativeButton(android.R.string.no, null) .setMessage("Progress unsaved. Are you sure?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
fragmentManager.popBackStack();
}
}).create().show();
}else{
fragmentManager.popBackStack();
}
}else{
new AlertDialog.Builder(this)
.setTitle("Leave?")
.setMessage("Are you sure you want to exit?")
.setNegativeButton(android.R.string.no, null) .setNegativeButton(android.R.string.no, null)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { .setPositiveButton(
public void onClick(DialogInterface arg0, int arg1) { android.R.string.yes,
finish(); object : DialogInterface.OnClickListener {
System.exit(0); override fun onClick(arg0: DialogInterface, arg1: Int) {
fragmentManager!!.popBackStack()
}
}).create().show()
} else {
fragmentManager!!.popBackStack()
}
} else {
AlertDialog.Builder(this)
.setTitle("Leave?")
.setMessage("Are you sure you want to exit?")
.setNegativeButton(android.R.string.no, null)
.setPositiveButton(
android.R.string.yes,
object : DialogInterface.OnClickListener {
override fun onClick(arg0: DialogInterface, arg1: Int) {
finish()
System.exit(0)
} }
}).create().show(); }).create().show()
} }
} }
} }
@Override override fun onOptionsItemSelected(item: MenuItem): Boolean {
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will // Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long // automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml. // as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId(); val id: Int = item.itemId
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) { if (id == R.id.action_settings) {
return true; return true
} }
return super.onOptionsItemSelected(item)
return super.onOptionsItemSelected(item);
} }
@SuppressWarnings("StatementWithEmptyBody") override fun onNavigationItemSelected(item: MenuItem): Boolean {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here. // Handle navigation view item clicks here.
int id = item.getItemId(); val id: Int = item.itemId
if (id == R.id.nav_camera) { if (id == R.id.nav_camera) {
// Handle the camera action // Handle the camera action
executeFragment(new profileFragment()); ExecuteFragment.executeFragment(profileFragment())
} else if (id == R.id.nav_gallery) { } else if (id == R.id.nav_gallery) {
executeFragment(new DriverOverallFragment()); ExecuteFragment.executeFragment(DriverOverallFragment())
} else if (id == R.id.nav_slideshow) { } else if (id == R.id.nav_slideshow) {
executeFragment(new VehicleOverallFragment()); ExecuteFragment.executeFragment(VehicleOverallFragment())
} }
val drawer: DrawerLayout = findViewById<View>(R.id.drawer_layout) as DrawerLayout
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START)
drawer.closeDrawer(GravityCompat.START); return true
return true;
} }
public static void verifyStoragePermissions(Activity activity) { override fun progressVisibility(vis: Int) {
// Check if we have write permission progressBar!!.visibility = vis
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); }
if (permission != PackageManager.PERMISSION_GRANTED) { override fun updateDrawer() {
// We don't have permission so prompt the user setupDrawer()
ActivityCompat.requestPermissions( }
activity,
companion object {
private val TAG: String = MainActivity::class.java.simpleName
var fragmentManager: FragmentManager? = null
var auth: FirebaseAuth? = null
var storage: FirebaseStorage? = null
var storageReference: StorageReference? = null
var mDatabase: DatabaseReference? = null
var viewController: ViewController? = null
var imageViewClass: ImageViewClass? = null
var approvalsClass: ApprovalsClass? = null
var archiveClass: ArchiveClass? = null
private val REQUEST_EXTERNAL_STORAGE: Int = 1
private val PERMISSIONS_STORAGE: Array<String> = arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
fun verifyStoragePermissions(activity: Activity?) {
// Check if we have write permission
val permission: Int = ActivityCompat.checkSelfPermission(
(activity)!!,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
if (permission != PackageManager.PERMISSION_GRANTED) {
// We don't have permission so prompt the user
ActivityCompat.requestPermissions(
(activity),
PERMISSIONS_STORAGE, PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE REQUEST_EXTERNAL_STORAGE
); )
}
}
fun loadImage(mainImage: ImageView?): Target {
val target: Target = object : Target {
override fun onBitmapLoaded(bitmap: Bitmap, from: LoadedFrom) {
mainImage!!.setImageBitmap(bitmap)
mainImage.setOnClickListener(View.OnClickListener { imageViewClass!!.open(bitmap) })
}
override fun onBitmapFailed(e: Exception, errorDrawable: Drawable) {}
override fun onPrepareLoad(placeHolderDrawable: Drawable) {
mainImage!!.setImageResource(R.drawable.choice_img)
}
}
mainImage!!.tag = target
return target
}
val dateStamp: String
get() {
val sdf: SimpleDateFormat = SimpleDateFormat("yyyyMMdd_HHmm")
return sdf.format(Date())
}
val dateTimeStamp: String
get() {
val sdf: SimpleDateFormat = SimpleDateFormat("yyyyMMdd_HHmmss")
return sdf.format(Date())
}
@Throws(ParseException::class)
fun setAsDateTime(strCurrentDate: String?): String {
var format: SimpleDateFormat = SimpleDateFormat("yyyyMMdd_HHmmss")
val newDate: Date = format.parse(strCurrentDate)
format = SimpleDateFormat("dd/MM/yyyy")
return format.format(newDate)
}
fun printObjectAsJson(TAG: String?, o: Any?) {
val gson: Gson = GsonBuilder().setPrettyPrinting().create()
val jp: JsonParser = JsonParser()
val je: JsonElement = jp.parse(Gson().toJson(o))
val prettyJsonString: String = gson.toJson(je)
Log.i(TAG, "onBindViewHolder: object" + prettyJsonString)
} }
} }
}
public static Target loadImage (final ProgressBar pb, final ImageView mainImage){
Target target = new Target() {
@Override
public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
pb.setVisibility(View.GONE);
mainImage.setImageBitmap(bitmap);
mainImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imageViewClass.open(bitmap);
}
});
}
@Override
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
pb.setVisibility(View.GONE);
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
pb.setVisibility(View.VISIBLE);
}
};
mainImage.setTag(target);
return target;
}
public static String getDateStamp(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmm");
return sdf.format(new Date());
}
public static String getDateTimeStamp(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
return sdf.format(new Date());
}
public static String setAsDateTime(String strCurrentDate) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss");
Date newDate = format.parse(strCurrentDate);
format = new SimpleDateFormat("dd/MM/yyyy");
return format.format(newDate);
}
public static void printObjectAsJson(String TAG, Object o){
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(new Gson().toJson(o));
String prettyJsonString = gson.toJson(je);
Log.i(TAG, "onBindViewHolder: object" + prettyJsonString);
}
@Override
public void progressVisibility(int vis) {
progressBar.setVisibility(vis);
}
@Override
public void updateDrawer() {
setupDrawer();
}
}

View File

@@ -1,59 +1,35 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
public class ApprovalsObject {
public int driver_details_approval;
public int driver_license_approval;
public int private_hire_approval;
public int vehicle_details_approval;
public int mot_details_approval;
public int insurance_details_approval;
public int log_book_approval;
public int private_hire_vehicle_approval;
public ApprovalsObject() { class ApprovalsObject {
var driver_details_approval: Int = 0
var driver_license_approval: Int = 0
var private_hire_approval: Int = 0
var vehicle_details_approval: Int = 0
var mot_details_approval: Int = 0
var insurance_details_approval: Int = 0
var log_book_approval: Int = 0
var ph_car_approval: Int = 0
constructor()
constructor(
driver_details_approval: Int,
driver_license_approval: Int,
private_hire_approval: Int,
vehicle_details_approval: Int,
mot_details_approval: Int,
insurance_details_approval: Int,
log_book_approval: Int,
private_hire_vehicle_approval: Int
) {
this.driver_details_approval = driver_details_approval
this.driver_license_approval = driver_license_approval
this.private_hire_approval = private_hire_approval
this.vehicle_details_approval = vehicle_details_approval
this.mot_details_approval = mot_details_approval
this.insurance_details_approval = insurance_details_approval
this.log_book_approval = log_book_approval
ph_car_approval = private_hire_vehicle_approval
} }
}
public ApprovalsObject(int driver_details_approval, int driver_license_approval, int private_hire_approval, int vehicle_details_approval, int mot_details_approval, int insurance_details_approval, int log_book_approval, int private_hire_vehicle_approval) {
this.driver_details_approval = driver_details_approval;
this.driver_license_approval = driver_license_approval;
this.private_hire_approval = private_hire_approval;
this.vehicle_details_approval = vehicle_details_approval;
this.mot_details_approval = mot_details_approval;
this.insurance_details_approval = insurance_details_approval;
this.log_book_approval = log_book_approval;
this.private_hire_vehicle_approval = private_hire_vehicle_approval;
}
public int getPh_car_approval() {
return private_hire_vehicle_approval;
}
public int getDriver_details_approval() {
return driver_details_approval;
}
public int getDriver_license_approval() {
return driver_license_approval;
}
public int getPrivate_hire_approval() {
return private_hire_approval;
}
public int getVehicle_details_approval() {
return vehicle_details_approval;
}
public int getMot_details_approval() {
return mot_details_approval;
}
public int getInsurance_details_approval() {
return insurance_details_approval;
}
public int getLog_book_approval() {
return log_book_approval;
}
}

View File

@@ -1,56 +1,32 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
import java.util.HashMap; import java.util.*
import java.util.List;
public class ArchiveObject { 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
public HashMap<String,DriversLicenseObject> driver_license; constructor()
public HashMap<String,PrivateHireObject> private_hire; constructor(
public HashMap<String,VehicleProfileObject> vehicle_details; driver_license: HashMap<String, DriversLicenseObject>?,
public HashMap<String,InsuranceObject> insurance_details; private_hire: HashMap<String, PrivateHireObject>?,
public HashMap<String,MotObject> mot_details; vehicle_details: HashMap<String, VehicleProfileObject>?,
public HashMap<String,LogbookObject> log_book; insurance_details: HashMap<String, InsuranceObject>?,
public HashMap<String,PrivateHireVehicleObject> private_hire_vehicle; mot_details: HashMap<String, MotObject>?,
log_book: HashMap<String, LogbookObject>?,
public ArchiveObject() { 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
ph_car = private_hire_vehicle
} }
}
public ArchiveObject(HashMap<String, DriversLicenseObject> driver_license, HashMap<String, PrivateHireObject> private_hire, HashMap<String, VehicleProfileObject> vehicle_details, HashMap<String, InsuranceObject> insurance_details, HashMap<String, MotObject> mot_details, HashMap<String, LogbookObject> log_book, HashMap<String, PrivateHireVehicleObject> private_hire_vehicle) {
this.driver_license = driver_license;
this.private_hire = private_hire;
this.vehicle_details = vehicle_details;
this.insurance_details = insurance_details;
this.mot_details = mot_details;
this.log_book = log_book;
this.private_hire_vehicle = private_hire_vehicle;
}
public HashMap<String, PrivateHireVehicleObject> getPh_car() {
return private_hire_vehicle;
}
public HashMap<String, DriversLicenseObject> getDriver_license() {
return driver_license;
}
public HashMap<String, PrivateHireObject> getPrivate_hire() {
return private_hire;
}
public HashMap<String, VehicleProfileObject> getVehicle_details() {
return vehicle_details;
}
public HashMap<String, InsuranceObject> getInsurance_details() {
return insurance_details;
}
public HashMap<String, MotObject> getMot_details() {
return mot_details;
}
public HashMap<String, LogbookObject> getLog_book() {
return log_book;
}
}

View File

@@ -1,55 +1,27 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
public class DriverProfileObject {
public String driverPic;
public String forenames;
public String address;
public String postcode;
public String dob;
public String ni;
public String dateFirst;
public DriverProfileObject() { class DriverProfileObject {
var driverPic: String? = null
var forenames: String? = null
var address: String? = null
var postcode: String? = null
var dob: String? = null
var ni: String? = null
var dateFirst: String? = null
constructor()
constructor(
driverPic: String?, forenames: String?, address: String?,
postcode: String?, dob: String?, ni: String?, dateFirst: String?
) {
this.driverPic = driverPic
this.forenames = forenames
this.address = address
this.postcode = postcode
this.dob = dob
this.ni = ni
this.dateFirst = dateFirst
} }
}
public DriverProfileObject(String driverPic, String forenames, String address,
String postcode, String dob, String ni, String dateFirst) {
this.driverPic = driverPic;
this.forenames = forenames;
this.address = address;
this.postcode = postcode;
this.dob = dob;
this.ni = ni;
this.dateFirst = dateFirst;
}
public String getDriverPic() {
return driverPic;
}
public String getForenames() {
return forenames;
}
public String getAddress() {
return address;
}
public String getPostcode() {
return postcode;
}
public String getDob() {
return dob;
}
public String getNi() {
return ni;
}
public String getDateFirst() {
return dateFirst;
}
}

View File

@@ -1,29 +1,16 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
public class DriversLicenseObject {
public String licenseImageString;
public String licenseNumber;
public String licenseExpiry;
public DriversLicenseObject() { class DriversLicenseObject {
var licenseImageString: String? = null
var licenseNumber: String? = null
var licenseExpiry: String? = null
constructor()
constructor(licenseImageString: String?, licenseNumber: String?, licenseExpiry: String?) {
this.licenseImageString = licenseImageString
this.licenseNumber = licenseNumber
this.licenseExpiry = licenseExpiry
} }
}
public DriversLicenseObject(String licenseImageString, String licenseNumber, String licenseExpiry) {
this.licenseImageString = licenseImageString;
this.licenseNumber = licenseNumber;
this.licenseExpiry = licenseExpiry;
}
public String getLicenseImageString() {
return licenseImageString;
}
public String getLicenseNumber() {
return licenseNumber;
}
public String getLicenseExpiry() {
return licenseExpiry;
}
}

View File

@@ -1,31 +1,16 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
import java.util.List;
public class InsuranceObject {
public List<String> photoStrings; class InsuranceObject {
public String insurerName; var photoStrings: MutableList<String?>? = null
public String expiryDate; var insurerName: String? = null
var expiryDate: String? = null
public InsuranceObject() { constructor()
constructor(photoStrings: MutableList<String?>?, insurerName: String?, expiryDate: String?) {
this.photoStrings = photoStrings
this.insurerName = insurerName
this.expiryDate = expiryDate
} }
}
public InsuranceObject(List<String> photoStrings, String insurerName, String expiryDate) {
this.photoStrings = photoStrings;
this.insurerName = insurerName;
this.expiryDate = expiryDate;
}
public List<String> getPhotoStrings() {
return photoStrings;
}
public String getInsurerName() {
return insurerName;
}
public String getExpiryDate() {
return expiryDate;
}
}

View File

@@ -1,23 +1,15 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
public class LogbookObject {
public String photoString;
public String v5cnumber;
public LogbookObject(String photoString, String v5cnumber) { class LogbookObject {
this.photoString = photoString; var photoString: String? = null
this.v5cnumber = v5cnumber; var v5cnumber: String? = null
constructor(photoString: String?, v5cnumber: String?) {
this.photoString = photoString
this.v5cnumber = v5cnumber
} }
public LogbookObject() { constructor()
} }
public String getPhotoString() {
return photoString;
}
public String getV5cnumber() {
return v5cnumber;
}
}

View File

@@ -1,23 +1,14 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
public class MotObject {
public String motImageString;
public String motExpiry;
public MotObject() { class MotObject {
var motImageString: String? = null
var motExpiry: String? = null
constructor()
constructor(motImageString: String?, motExpiry: String?) {
this.motImageString = motImageString
this.motExpiry = motExpiry
} }
}
public MotObject(String motImageString, String motExpiry) {
this.motImageString = motImageString;
this.motExpiry = motExpiry;
}
public String getMotImageString() {
return motImageString;
}
public String getMotExpiry() {
return motExpiry;
}
}

View File

@@ -1,29 +1,16 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
public class PrivateHireObject {
public String phImageString;
public String phNumber;
public String phExpiry;
public PrivateHireObject() { class PrivateHireObject {
var phImageString: String? = null
var phNumber: String? = null
var phExpiry: String? = null
constructor()
constructor(phImageString: String?, phNumber: String?, phExpiry: String?) {
this.phImageString = phImageString
this.phNumber = phNumber
this.phExpiry = phExpiry
} }
}
public PrivateHireObject(String phImageString, String phNumber, String phExpiry) {
this.phImageString = phImageString;
this.phNumber = phNumber;
this.phExpiry = phExpiry;
}
public String getPhImageString() {
return phImageString;
}
public String getPhNumber() {
return phNumber;
}
public String getPhExpiry() {
return phExpiry;
}
}

View File

@@ -1,29 +1,17 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
public class PrivateHireVehicleObject {
public String phCarImageString;
public String phCarNumber;
public String phCarExpiry;
public PrivateHireVehicleObject(String phCarImageString, String phCarNumber, String phCarExpiry) { class PrivateHireVehicleObject {
this.phCarImageString = phCarImageString; var phCarImageString: String? = null
this.phCarNumber = phCarNumber; var phCarNumber: String? = null
this.phCarExpiry = phCarExpiry; var phCarExpiry: String? = null
constructor(phCarImageString: String?, phCarNumber: String?, phCarExpiry: String?) {
this.phCarImageString = phCarImageString
this.phCarNumber = phCarNumber
this.phCarExpiry = phCarExpiry
} }
public PrivateHireVehicleObject() { constructor()
} }
public String getPhCarImageString() {
return phCarImageString;
}
public String getPhCarNumber() {
return phCarNumber;
}
public String getPhCarExpiry() {
return phCarExpiry;
}
}

View File

@@ -1,29 +1,16 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
public class UserObject {
public String profileName;
public String profileEmail;
public String profilePicString;
public UserObject() { class UserObject {
var profileName: String? = null
var profileEmail: String? = null
var profilePicString: String? = null
constructor()
constructor(profileName: String?, profileEmail: String?, profilePicString: String?) {
this.profileName = profileName
this.profileEmail = profileEmail
this.profilePicString = profilePicString
} }
}
public UserObject(String profileName, String profileEmail, String profilePicString) {
this.profileName = profileName;
this.profileEmail = profileEmail;
this.profilePicString = profilePicString;
}
public String getProfileName() {
return profileName;
}
public String getProfileEmail() {
return profileEmail;
}
public String getProfilePicString() {
return profilePicString;
}
}

View File

@@ -1,67 +1,31 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
public class VehicleProfileObject {
public String reg;
public String make;
public String model;
public String colour;
public String keeperName;
public String keeperAddress;
public String keeperPostCode;
public String startDate;
public boolean seized;
public VehicleProfileObject() { class VehicleProfileObject {
var reg: String? = null
var make: String? = null
var model: String? = null
var colour: String? = null
var keeperName: String? = null
var keeperAddress: String? = null
var keeperPostCode: String? = null
var startDate: String? = null
var isSeized: Boolean = false
constructor()
constructor(
reg: String?, make: String?, model: String?, colour: String?, keeperName: String?,
keeperAddress: String?, keeperPostCode: String?, startDate: String?, seized: Boolean
) {
this.reg = reg
this.make = make
this.model = model
this.colour = colour
this.keeperName = keeperName
this.keeperAddress = keeperAddress
this.keeperPostCode = keeperPostCode
this.startDate = startDate
isSeized = seized
} }
}
public VehicleProfileObject(String reg, String make, String model, String colour, String keeperName,
String keeperAddress, String keeperPostCode, String startDate, boolean seized) {
this.reg = reg;
this.make = make;
this.model = model;
this.colour = colour;
this.keeperName = keeperName;
this.keeperAddress = keeperAddress;
this.keeperPostCode = keeperPostCode;
this.startDate = startDate;
this.seized = seized;
}
public String getReg() {
return reg;
}
public String getMake() {
return make;
}
public String getModel() {
return model;
}
public String getColour() {
return colour;
}
public String getKeeperName() {
return keeperName;
}
public String getKeeperAddress() {
return keeperAddress;
}
public String getKeeperPostCode() {
return keeperPostCode;
}
public String getStartDate() {
return startDate;
}
public boolean isSeized() {
return seized;
}
}

View File

@@ -1,59 +1,35 @@
package h_mal.appttude.com.driver.Objects; package h_mal.appttude.com.driver.Objects
import h_mal.appttude.com.driver.Objects.ApprovalsObject; import h_mal.appttude.com.driver.Objects.WholeObject.DriverProfile
import h_mal.appttude.com.driver.Objects.ArchiveObject; import h_mal.appttude.com.driver.Objects.WholeObject.VehicleProfile
import h_mal.appttude.com.driver.Objects.UserObject;
import h_mal.appttude.com.driver.Objects.WholeObject.DriverProfile;
import h_mal.appttude.com.driver.Objects.WholeObject.VehicleProfile;
public class WholeDriverObject {
public DriverProfile driver_profile; class WholeDriverObject {
public String role; var driver_profile: DriverProfile? = null
public ArchiveObject archive; var role: String? = null
public UserObject user_details; var archive: ArchiveObject? = null
public VehicleProfile vehicle_profile; var user_details: UserObject? = null
public ApprovalsObject approvalsObject; var vehicle_profile: VehicleProfile? = null
public String driver_number; var approvalsObject: ApprovalsObject? = null
var driver_number: String? = null
public WholeDriverObject(DriverProfile driver_profile, String role, ArchiveObject archive, UserObject user_details, VehicleProfile vehicle_profile, ApprovalsObject approvalsObject, String driver_number) { constructor(
this.driver_profile = driver_profile; driver_profile: DriverProfile?,
this.role = role; role: String?,
this.archive = archive; archive: ArchiveObject?,
this.user_details = user_details; user_details: UserObject?,
this.vehicle_profile = vehicle_profile; vehicle_profile: VehicleProfile?,
this.approvalsObject = approvalsObject; approvalsObject: ApprovalsObject?,
this.driver_number = driver_number; driver_number: String?
) {
this.driver_profile = driver_profile
this.role = role
this.archive = archive
this.user_details = user_details
this.vehicle_profile = vehicle_profile
this.approvalsObject = approvalsObject
this.driver_number = driver_number
} }
public WholeDriverObject() { constructor()
} }
public String getDriver_number() {
return driver_number;
}
public ArchiveObject getArchive() {
return archive;
}
public DriverProfile getDriver_profile() {
return driver_profile;
}
public String getRole() {
return role;
}
public UserObject getUser_details() {
return user_details;
}
public VehicleProfile getVehicle_profile() {
return vehicle_profile;
}
public ApprovalsObject getApprovalsObject() {
return approvalsObject;
}
}

View File

@@ -1,33 +1,24 @@
package h_mal.appttude.com.driver.Objects.WholeObject; package h_mal.appttude.com.driver.Objects.WholeObject
import h_mal.appttude.com.driver.Objects.DriverProfileObject; import h_mal.appttude.com.driver.Objects.DriverProfileObject
import h_mal.appttude.com.driver.Objects.DriversLicenseObject; import h_mal.appttude.com.driver.Objects.DriversLicenseObject
import h_mal.appttude.com.driver.Objects.PrivateHireObject; import h_mal.appttude.com.driver.Objects.PrivateHireObject
public class DriverProfile {
public DriverProfileObject driver_profile; class DriverProfile {
public DriversLicenseObject driver_license; var driver_profile: DriverProfileObject? = null
public PrivateHireObject private_hire; var driver_license: DriversLicenseObject? = null
var private_hire: PrivateHireObject? = null
public DriverProfile(DriverProfileObject driver_profile, DriversLicenseObject driver_license, PrivateHireObject private_hire) { constructor(
this.driver_profile = driver_profile; driver_profile: DriverProfileObject?,
this.driver_license = driver_license; driver_license: DriversLicenseObject?,
this.private_hire = private_hire; private_hire: PrivateHireObject?
) {
this.driver_profile = driver_profile
this.driver_license = driver_license
this.private_hire = private_hire
} }
public DriverProfile() { constructor()
} }
public DriverProfileObject getDriver_profile() {
return driver_profile;
}
public DriversLicenseObject getDriver_license() {
return driver_license;
}
public PrivateHireObject getPrivate_hire() {
return private_hire;
}
}

View File

@@ -1,56 +1,41 @@
package h_mal.appttude.com.driver.Objects.WholeObject; package h_mal.appttude.com.driver.Objects.WholeObject
import android.os.Parcel; import android.os.Parcel
import android.os.Parcelable; import android.os.Parcelable
import h_mal.appttude.com.driver.Objects.WholeDriverObject
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
public class MappedObject implements Parcelable { class MappedObject : Parcelable {
var userId: String? = null
var wholeDriverObject: WholeDriverObject? = null
public String userId; constructor(userId: String?, wholeDriverObject: WholeDriverObject?) {
public WholeDriverObject wholeDriverObject; this.userId = userId
this.wholeDriverObject = wholeDriverObject
public MappedObject(String userId, WholeDriverObject wholeDriverObject) {
this.userId = userId;
this.wholeDriverObject = wholeDriverObject;
} }
public MappedObject() { constructor()
protected constructor(`in`: Parcel) {
userId = `in`.readString()
} }
protected MappedObject(Parcel in) { override fun describeContents(): Int {
userId = in.readString(); return 0
} }
public static final Creator<MappedObject> CREATOR = new Creator<MappedObject>() { override fun writeToParcel(dest: Parcel, flags: Int) {
@Override dest.writeString(userId)
public MappedObject createFromParcel(Parcel in) { }
return new MappedObject(in);
companion object {
val CREATOR: Parcelable.Creator<MappedObject> = object : Parcelable.Creator<MappedObject?> {
override fun createFromParcel(`in`: Parcel): MappedObject? {
return MappedObject(`in`)
}
override fun newArray(size: Int): Array<MappedObject?> {
return arrayOfNulls(size)
}
} }
@Override
public MappedObject[] newArray(int size) {
return new MappedObject[size];
}
};
public String getUserId() {
return userId;
} }
}
public WholeDriverObject getWholeDriverObject() {
return wholeDriverObject;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(userId);
}
}

View File

@@ -1,55 +1,34 @@
package h_mal.appttude.com.driver.Objects.WholeObject; package h_mal.appttude.com.driver.Objects.WholeObject
import h_mal.appttude.com.driver.Objects.InsuranceObject; import h_mal.appttude.com.driver.Objects.*
import h_mal.appttude.com.driver.Objects.LogbookObject;
import h_mal.appttude.com.driver.Objects.MotObject;
import h_mal.appttude.com.driver.Objects.PrivateHireVehicleObject;
import h_mal.appttude.com.driver.Objects.VehicleProfileObject;
public class VehicleProfile {
public InsuranceObject insurance_details; class VehicleProfile {
public LogbookObject log_book; var insurance_details: InsuranceObject? = null
public MotObject mot_details; var log_book: LogbookObject? = null
public VehicleProfileObject vehicle_details; var mot_details: MotObject? = null
public PrivateHireVehicleObject private_hire_vehicle; var vehicle_details: VehicleProfileObject? = null
var privateHireVehicleObject: PrivateHireVehicleObject? = null
public VehicleProfile() { 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
} }
}
// public VehicleProfile(InsuranceObject insurance_details, LogbookObject log_book, MotObject mot_details, VehicleProfileObject vehicle_details) {
// this.insurance_details = insurance_details;
// this.log_book = log_book;
// this.mot_details = mot_details;
// this.vehicle_details = vehicle_details;
// }
public VehicleProfile(InsuranceObject insurance_details, LogbookObject log_book, MotObject mot_details, VehicleProfileObject vehicle_details, PrivateHireVehicleObject private_hire_vehicle) {
this.insurance_details = insurance_details;
this.log_book = log_book;
this.mot_details = mot_details;
this.vehicle_details = vehicle_details;
this.private_hire_vehicle = private_hire_vehicle;
}
public PrivateHireVehicleObject getPrivateHireVehicleObject() {
return private_hire_vehicle;
}
public InsuranceObject getInsurance_details() {
return insurance_details;
}
public LogbookObject getLog_book() {
return log_book;
}
public MotObject getMot_details() {
return mot_details;
}
public VehicleProfileObject getVehicle_details() {
return vehicle_details;
}
}

View File

@@ -1,305 +1,249 @@
package h_mal.appttude.com.driver.SuperUser; package h_mal.appttude.com.driver.SuperUser
import android.app.Activity; import android.app.Activity
import android.content.Context; import android.content.Context
import android.support.annotation.NonNull; import android.util.DisplayMetrics
import android.support.annotation.Nullable; import android.util.Log
import android.support.v4.app.Fragment; import android.view.LayoutInflater
import android.util.DisplayMetrics; import android.view.View
import android.util.Log; import android.view.ViewGroup
import android.view.LayoutInflater; import android.widget.ArrayAdapter
import android.view.View; import android.widget.ImageView
import android.view.ViewGroup; import android.widget.TextView
import android.widget.ArrayAdapter; import androidx.fragment.app.Fragment
import android.widget.ImageView; import h_mal.appttude.com.driver.Archive.ArchiveFragment
import android.widget.TextView; import h_mal.appttude.com.driver.Driver.*
import h_mal.appttude.com.driver.Global.ExecuteFragment
import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.Global.SetApprovalDialog
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.ApprovalsObject
import h_mal.appttude.com.driver.Objects.ArchiveObject
import h_mal.appttude.com.driver.Objects.WholeDriverObject
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject
import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.Archive.ArchiveFragment;
import h_mal.appttude.com.driver.Driver.DriverLicenseFragment;
import h_mal.appttude.com.driver.Driver.InsuranceFragment;
import h_mal.appttude.com.driver.Driver.MotFragment;
import h_mal.appttude.com.driver.Driver.PrivateHireLicenseFragment;
import h_mal.appttude.com.driver.Driver.PrivateHireVehicleFragment;
import h_mal.appttude.com.driver.Driver.VehicleSetupFragment;
import h_mal.appttude.com.driver.Driver.DriverProfileFragment;
import h_mal.appttude.com.driver.Driver.logbookFragment;
import h_mal.appttude.com.driver.Global.SetApprovalDialog;
import h_mal.appttude.com.driver.Objects.ApprovalsObject;
import h_mal.appttude.com.driver.Objects.ArchiveObject;
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment; class ApprovalListAdapter constructor(activity: Activity, objects: Array<MappedObject>) :
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE; ArrayAdapter<MappedObject?>(activity, 0, objects) {
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE; private val TAG: String = "ApprovalListAdapter"
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE; var names: Array<String> = arrayOf(
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE; "Driver Profile",
import static h_mal.appttude.com.driver.Global.FirebaseClass.NO_DATE_PRESENT; "Driver License",
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE; "Private Hire",
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE; "Vehicle Profile",
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_DETAILS_FIREBASE; "Insurance",
import static h_mal.appttude.com.driver.MainActivity.approvalsClass; "MOT",
import static h_mal.appttude.com.driver.MainActivity.archiveClass; "Logbook",
"P/H Vehicle"
public class ApprovalListAdapter extends ArrayAdapter<MappedObject> { )
var mappedObject: MappedObject
private String TAG = "ApprovalListAdapter"; var activity: Activity
var approvalCode: Int = 0
String [] names = {"Driver Profile","Driver License","Private Hire","Vehicle Profile","Insurance","MOT","Logbook","P/H Vehicle"}; override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
var listItemView: View? = convertView
MappedObject mappedObject;
Activity activity;
int approvalCode;
public ApprovalListAdapter(@NonNull Activity activity, @NonNull MappedObject[] objects) {
super(activity, 0, objects);
this.mappedObject = objects[0];
this.activity = activity;
}
@NonNull
@Override
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View listItemView = convertView;
if (listItemView == null) { if (listItemView == null) {
listItemView = LayoutInflater.from(activity).inflate( listItemView = LayoutInflater.from(activity).inflate(
R.layout.approval_list_grid_item, parent, false); R.layout.approval_list_grid_item, parent, false
)
} }
approvalCode = getApprovalStatusCode(position)
approvalCode = getApprovalStatusCode(position); val textView: TextView = listItemView!!.findViewById(R.id.approval_text)
textView.text = names.get(position)
TextView textView = listItemView.findViewById(R.id.approval_text); val imageView: ImageView = listItemView.findViewById(R.id.approval_iv)
textView.setText(names[position]); imageView.setImageResource(
MainActivity.approvalsClass!!.setImageResource(
final ImageView imageView = listItemView.findViewById(R.id.approval_iv); approvalCode
imageView.setImageResource(approvalsClass.setImageResource(approvalCode)); )
)
imageView.setOnClickListener(new View.OnClickListener() { imageView.setOnClickListener(object : View.OnClickListener {
@Override override fun onClick(v: View) {
public void onClick(View v) { SetApprovalDialog(
new SetApprovalDialog(approvalCode,activity,mappedObject.getUserId(),position,imageView); approvalCode,
activity,
mappedObject.getUserId(),
position,
imageView
)
} }
}); })
val archiveImage: ImageView = listItemView.findViewById(R.id.archive_icon)
ImageView archiveImage = listItemView.findViewById(R.id.archive_icon); if (mappedObject.getWholeDriverObject().archive != null) {
if (mappedObject.getWholeDriverObject().archive != null){ Log.i(
Log.i(TAG, "getView: archive = " + getArchive(position,mappedObject.getWholeDriverObject().getArchive())); TAG,
archiveImage.setVisibility(getArchive(position,mappedObject.getWholeDriverObject().getArchive())); "getView: archive = " + getArchive(
archiveImage.setOnClickListener(new View.OnClickListener() { position,
@Override mappedObject.getWholeDriverObject().getArchive()
public void onClick(View v) { )
String s = null; )
switch (position){ archiveImage.visibility = getArchive(
case 1: position,
s = DRIVERS_LICENSE_FIREBASE; mappedObject.getWholeDriverObject().getArchive()
break; )
case 2: archiveImage.setOnClickListener(object : View.OnClickListener {
s = PRIVATE_HIRE_FIREBASE; override fun onClick(v: View) {
break; var s: String? = null
case 3: when (position) {
s = VEHICLE_DETAILS_FIREBASE; 1 -> s = FirebaseClass.DRIVERS_LICENSE_FIREBASE
break; 2 -> s = FirebaseClass.PRIVATE_HIRE_FIREBASE
case 4: 3 -> s = FirebaseClass.VEHICLE_DETAILS_FIREBASE
s = INSURANCE_FIREBASE; 4 -> s = FirebaseClass.INSURANCE_FIREBASE
break; 5 -> s = FirebaseClass.MOT_FIREBASE
case 5: 6 -> s = FirebaseClass.LOG_BOOK_FIREBASE
s = MOT_FIREBASE; 7 -> s = FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE
break;
case 6:
s = LOG_BOOK_FIREBASE;
break;
case 7:
s = PRIVATE_HIRE_VEHICLE_LICENSE;
break;
} }
executeFragment(new ArchiveFragment(),mappedObject.getUserId(),s); ExecuteFragment.executeFragment(ArchiveFragment(), mappedObject.getUserId(), s)
} }
}); })
} }
listItemView.setOnClickListener(object : View.OnClickListener {
listItemView.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override getFragment(position)
public void onClick(View v) {
getFragment(position);
} }
}); })
listItemView.minimumHeight = parent.height / 4
listItemView.setMinimumHeight(parent.getHeight()/4); listItemView.setPadding(
listItemView.setPadding((int)convertDpToPixel(9,getContext()), convertDpToPixel(9f, context).toInt(),
(int)convertDpToPixel(9,getContext()), convertDpToPixel(9f, context).toInt(),
(int)convertDpToPixel(9,getContext()), convertDpToPixel(9f, context).toInt(),
(int)convertDpToPixel(9,getContext())); convertDpToPixel(9f, context).toInt()
)
return listItemView; return (listItemView)
} }
@Override override fun getCount(): Int {
public int getCount() { return 8
return 8;
} }
private int getArchive(int i, ArchiveObject archiveObject){ private fun getArchive(i: Int, archiveObject: ArchiveObject?): Int {
Object o = null; var o: Any? = null
int visible; val visible: Int
when (i) {
switch (i){ 0 -> {
case 0:
break;
case 1:
o = archiveObject.driver_license;
break;
case 2:
o = archiveObject.private_hire;
break;
case 3:
o = archiveObject.vehicle_details;
break;
case 4:
o = archiveObject.insurance_details;
break;
case 5:
o = archiveObject.mot_details;
break;
case 6:
o = archiveObject.log_book;
break;
case 7:
o = archiveObject.private_hire_vehicle;
}
if (o != null){
visible = View.VISIBLE;
}else{
visible = View.GONE;
}
return visible;
}
private void getFragment(int i){
Fragment f = null;
WholeDriverObject wholeDriverObject = mappedObject.getWholeDriverObject();
Object o = null;
switch (i) {
case 0:
f = new DriverProfileFragment();
if (wholeDriverObject.driver_profile != null && wholeDriverObject.getDriver_profile().driver_profile != null) {
o = wholeDriverObject.getDriver_profile().getDriver_profile();
}
break;
case 1:
f = new DriverLicenseFragment();
if (wholeDriverObject.driver_profile != null && wholeDriverObject.getDriver_profile().driver_license != null) {
o = wholeDriverObject.getDriver_profile().getDriver_license();
}
break;
case 2:
f = new PrivateHireLicenseFragment();
if (wholeDriverObject.driver_profile != null && wholeDriverObject.getDriver_profile().private_hire != null) {
o = wholeDriverObject.getDriver_profile().getPrivate_hire();
}
break;
case 3:
f = new VehicleSetupFragment();
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().vehicle_details != null){
o = wholeDriverObject.getVehicle_profile().getVehicle_details();
}
break;
case 4:
f = new InsuranceFragment();
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().insurance_details != null){
o = wholeDriverObject.getVehicle_profile().getInsurance_details();
}
break;
case 5:
f = new MotFragment();
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().mot_details != null){
o = wholeDriverObject.getVehicle_profile().getMot_details();
}
break;
case 6:
f = new logbookFragment();
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().log_book != null){
o = wholeDriverObject.getVehicle_profile().getLog_book();
}
break;
case 7:
f = new PrivateHireVehicleFragment();
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().private_hire_vehicle != null){
o = wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject();
}
break;
} }
1 -> o = archiveObject!!.driver_license
if (o == null){ 2 -> o = archiveObject!!.private_hire
executeFragment(f,mappedObject.getUserId()); 3 -> o = archiveObject!!.vehicle_details
}else { 4 -> o = archiveObject!!.insurance_details
archiveClass.openDialogArchive(getContext(),o 5 -> o = archiveObject!!.mot_details
,mappedObject.getUserId(),f); 6 -> o = archiveObject!!.log_book
} 7 -> o = archiveObject.private_hire_vehicle
}
if (o != null) {
visible = View.VISIBLE
} else {
visible = View.GONE
}
return visible
} }
private int getApprovalStatusCode(int i){ private fun getFragment(i: Int) {
int statusCode = NO_DATE_PRESENT; var f: Fragment? = null
val wholeDriverObject: WholeDriverObject? = mappedObject.getWholeDriverObject()
if (mappedObject.getWholeDriverObject().approvalsObject != null){ var o: Any? = null
ApprovalsObject approvalsObject = mappedObject.getWholeDriverObject().getApprovalsObject(); when (i) {
0 -> {
switch (i) { f = DriverProfileFragment()
case 0: if (wholeDriverObject!!.driver_profile != null && wholeDriverObject.getDriver_profile().driver_profile != null) {
if (approvalsObject.driver_details_approval != 0) { o = wholeDriverObject.getDriver_profile().getDriver_profile()
statusCode = approvalsObject.getDriver_details_approval();
} }
break; }
case 1: 1 -> {
if (approvalsObject.driver_license_approval != 0) { f = DriverLicenseFragment()
statusCode = approvalsObject.getDriver_license_approval(); if (wholeDriverObject!!.driver_profile != null && wholeDriverObject.getDriver_profile().driver_license != null) {
o = wholeDriverObject.getDriver_profile().driver_license
} }
break; }
case 2: 2 -> {
if (approvalsObject.private_hire_approval != 0) { f = PrivateHireLicenseFragment()
statusCode = approvalsObject.getPrivate_hire_approval(); if (wholeDriverObject!!.driver_profile != null && wholeDriverObject.getDriver_profile().private_hire != null) {
o = wholeDriverObject.getDriver_profile().private_hire
} }
break; }
case 3: 3 -> {
if (approvalsObject.vehicle_details_approval != 0) { f = VehicleSetupFragment()
statusCode = approvalsObject.getVehicle_details_approval(); if (wholeDriverObject!!.vehicle_profile != null && wholeDriverObject.getVehicle_profile().vehicle_details != null) {
o = wholeDriverObject.getVehicle_profile().getVehicle_details()
} }
break; }
case 4: 4 -> {
if (approvalsObject.insurance_details_approval != 0) { f = InsuranceFragment()
statusCode = approvalsObject.getInsurance_details_approval(); if (wholeDriverObject!!.vehicle_profile != null && wholeDriverObject.getVehicle_profile().insurance_details != null) {
o = wholeDriverObject.getVehicle_profile().getInsurance_details()
} }
break; }
case 5: 5 -> {
if (approvalsObject.mot_details_approval != 0) { f = MotFragment()
statusCode = approvalsObject.getMot_details_approval(); if (wholeDriverObject!!.vehicle_profile != null && wholeDriverObject.getVehicle_profile().mot_details != null) {
o = wholeDriverObject.getVehicle_profile().getMot_details()
} }
break; }
case 6: 6 -> {
if (approvalsObject.log_book_approval != 0) { f = logbookFragment()
statusCode = approvalsObject.getLog_book_approval(); if (wholeDriverObject!!.vehicle_profile != null && wholeDriverObject.getVehicle_profile().log_book != null) {
o = wholeDriverObject.getVehicle_profile().getLog_book()
} }
break; }
case 7: 7 -> {
if (approvalsObject.private_hire_vehicle_approval != 0) { f = PrivateHireVehicleFragment()
statusCode = approvalsObject.getPh_car_approval(); if (wholeDriverObject!!.vehicle_profile != null && wholeDriverObject.getVehicle_profile().private_hire_vehicle != null) {
o = wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject()
} }
break;
} }
} }
if (o == null) {
return statusCode; ExecuteFragment.executeFragment(f, mappedObject.getUserId())
} else {
MainActivity.archiveClass!!.openDialogArchive(
context, o, mappedObject.getUserId(), f
)
}
} }
public static float convertDpToPixel(float dp, Context context){ private fun getApprovalStatusCode(i: Int): Int {
return dp * ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT); var statusCode: Int = FirebaseClass.NO_DATE_PRESENT
if (mappedObject.getWholeDriverObject().approvalsObject != null) {
val approvalsObject: ApprovalsObject? =
mappedObject.getWholeDriverObject().approvalsObject
when (i) {
0 -> if (approvalsObject!!.driver_details_approval != 0) {
statusCode = approvalsObject.getDriver_details_approval()
}
1 -> if (approvalsObject!!.driver_license_approval != 0) {
statusCode = approvalsObject.driver_license_approval
}
2 -> if (approvalsObject!!.private_hire_approval != 0) {
statusCode = approvalsObject.private_hire_approval
}
3 -> if (approvalsObject!!.vehicle_details_approval != 0) {
statusCode = approvalsObject.vehicle_details_approval
}
4 -> if (approvalsObject!!.insurance_details_approval != 0) {
statusCode = approvalsObject.insurance_details_approval
}
5 -> if (approvalsObject!!.mot_details_approval != 0) {
statusCode = approvalsObject.getMot_details_approval()
}
6 -> if (approvalsObject!!.log_book_approval != 0) {
statusCode = approvalsObject.getLog_book_approval()
}
7 -> if (approvalsObject.private_hire_vehicle_approval != 0) {
statusCode = approvalsObject.getPh_car_approval()
}
}
}
return statusCode
} }
} companion object {
fun convertDpToPixel(dp: Float, context: Context): Float {
return dp * (context.resources
.displayMetrics.densityDpi.toFloat() / DisplayMetrics.DENSITY_DEFAULT)
}
}
init {
mappedObject = objects.get(0)
this.activity = activity
}
}

View File

@@ -0,0 +1,116 @@
package h_mal.appttude.com.driver.SuperUser
import android.app.AlertDialog
import android.content.Context
import android.content.DialogInterface
import android.view.View
import androidx.cardview.widget.CardView
import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task
import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.MainActivity
class DriverStatusClass : View.OnClickListener {
var userId: String? = null
var cardView: CardView? = null
var context: Context? = null
var currentSelection: Boolean = false
override fun onClick(v: View) {
val choices: Array<String> = arrayOf("Active", "Inactive")
val alertDialog: AlertDialog.Builder = AlertDialog.Builder(context)
var selection: Int = -1
if (currentSelection) {
selection = 0
} else if (!currentSelection) {
selection = 1
}
alertDialog.setSingleChoiceItems(
choices,
selection,
object : DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface, which: Int) {}
})
alertDialog.create().show()
}
private fun SetStatus(status: Boolean) {
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE)
.child((userId)!!).child(FirebaseClass.DRIVER_STATUS).setValue(status)
.addOnCompleteListener(object : OnCompleteListener<Void?> {
override fun onComplete(task: Task<Void?>) {
if (task.isSuccessful) {
cardView!!.setBackgroundColor(setStatusColour(status))
} else {
}
}
})
}
private fun setStatusColour(b: Boolean): Int {
if (b) {
return android.R.color.holo_green_dark
} else {
return android.R.color.holo_red_dark
}
} // public int getOverApprovalStatusCode(WholeDriverObject wholeDriverObject){
//
// if (wholeDriverObject.approvalsObject != null){
// ApprovalsObject approvalsObject = wholeDriverObject.approvalsObject;
//
// int[] ints = new int[]{approvalsObject.getDriver_details_approval(),
// approvalsObject.driver_license_approval,
// approvalsObject.private_hire_approval,
// approvalsObject.vehicle_details_approval,
// approvalsObject.insurance_details_approval,
// approvalsObject.getMot_details_approval(),
// approvalsObject.getLog_book_approval(),
// approvalsObject.getPh_car_approval()};
//
//
// return setImageResource(mode(ints));
// }
//
// return setImageResource(NO_DATE_PRESENT);
// }
//
// public void setStatusCode(String userId,String approvalNameString,int status){
//
// if (!approvalNameString.equals("")) {
// mDatabase.child(USER_FIREBASE).child(userId).child(USER_APPROVALS).child(approvalNameString)
// .setValue(status).addOnCompleteListener(new OnCompleteListener<Void>() {
// @Override
// public void onComplete(@NonNull Task<Void> task) {
// if (task.isSuccessful()) {
//
// } else {
//
// }
// }
// });
// }
//
//
// }
//
// public int setImageResource(int statusCode){
// int imageResource;
//
// switch (statusCode){
// case APPROVAL_PENDING:
// imageResource = R.drawable.pending;
// break;
// case APPROVAL_DENIED:
// imageResource = R.drawable.denied;
// break;
// case APPROVED:
// imageResource = R.drawable.approved;
// break;
// default:
// imageResource = R.drawable.zero;
// break;
// }
//
// return imageResource;
// }
}

View File

@@ -1,182 +1,149 @@
package h_mal.appttude.com.driver.SuperUser; package h_mal.appttude.com.driver.SuperUser
import android.app.AlertDialog; import android.app.AlertDialog
import android.content.Context; import android.content.Context
import android.content.DialogInterface; import android.content.DialogInterface
import android.graphics.Bitmap; import android.graphics.Bitmap
import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable
import android.graphics.drawable.Drawable; import android.os.Bundle
import android.os.Bundle; import android.util.Log
import android.support.annotation.NonNull; import android.view.LayoutInflater
import android.support.annotation.Nullable; import android.view.View
import android.util.Log; import android.view.ViewGroup
import android.view.LayoutInflater; import android.widget.*
import android.view.View; import com.google.android.gms.tasks.OnCompleteListener
import android.view.ViewGroup; import com.google.android.gms.tasks.Task
import android.widget.ArrayAdapter; import com.google.firebase.database.DatabaseReference
import android.widget.EditText; import com.squareup.picasso.Picasso
import android.widget.ImageView; import com.squareup.picasso.Picasso.LoadedFrom
import android.widget.LinearLayout; import com.squareup.picasso.Target
import android.widget.ProgressBar; import h_mal.appttude.com.driver.Global.ExecuteFragment
import android.widget.TextView; import h_mal.appttude.com.driver.Global.FirebaseClass
import android.widget.Toast; import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.UserObject
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject
import h_mal.appttude.com.driver.R
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.Target;
import java.io.ByteArrayOutputStream; class ListViewSuperAdapter constructor(context: Context, objects: List<MappedObject?>) :
import java.io.FileInputStream; ArrayAdapter<MappedObject?>(context, 0, objects) {
import java.util.List; override fun getView(i: Int, convertView: View?, parent: ViewGroup): View {
var listItemView: View? = convertView
import h_mal.appttude.com.driver.Objects.UserObject;
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_NUMBER;
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
import static h_mal.appttude.com.driver.MainActivity.imageViewClass;
import static h_mal.appttude.com.driver.MainActivity.loadImage;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
public class ListViewSuperAdapter extends ArrayAdapter<MappedObject> {
public ListViewSuperAdapter(@NonNull Context context, @NonNull List<MappedObject> objects) {
super(context, 0, objects);
}
@NonNull
@Override
public View getView(int i, @Nullable View convertView, @NonNull ViewGroup parent) {
View listItemView = convertView;
if (listItemView == null) { if (listItemView == null) {
listItemView = LayoutInflater.from(getContext()).inflate( listItemView = LayoutInflater.from(context).inflate(
R.layout.list_item_layout, parent, false); R.layout.list_item_layout, parent, false
)
} }
Log.i("getviewposition", "getView: pos = " + i)
Log.i("getviewposition", "getView: pos = " + i); val profilePicImage: ImageView = listItemView!!.findViewById(R.id.driverPic)
// final ProgressBar progressBar = listItemView.findViewById(R.id.pb_su_list);
final ImageView profilePicImage = listItemView.findViewById(R.id.driverPic); val userNameTextView: TextView = listItemView.findViewById(R.id.username_text)
final ProgressBar progressBar = listItemView.findViewById(R.id.pb_su_list); val userEmailTextView: TextView = listItemView.findViewById(R.id.emailaddress_text)
TextView userNameTextView = listItemView.findViewById(R.id.username_text); val profileApprovalImage: ImageView = listItemView.findViewById(R.id.approval_iv)
TextView userEmailTextView = listItemView.findViewById(R.id.emailaddress_text); val driverNo: TextView = listItemView.findViewById(R.id.driver_no)
ImageView profileApprovalImage = listItemView.findViewById(R.id.approval_iv); val mappedObject: MappedObject? = getItem(i)
final TextView driverNo = listItemView.findViewById(R.id.driver_no); val `object`: UserObject? = mappedObject.getWholeDriverObject().getUser_details()
final MappedObject mappedObject = getItem(i); if (profilePicImage.drawable == null) {
if (`object`!!.profilePicString != null) {
final UserObject object = mappedObject.getWholeDriverObject().getUser_details();
if (object.profilePicString != null){
Picasso.get() Picasso.get()
.load(object.getProfilePicString()) .load(`object`.getProfilePicString())
.resize(128,128) .resize(128, 128)
.placeholder(R.drawable.choice_img_round) .placeholder(R.drawable.choice_img_round)
.into(new Target() { .into(object : Target {
@Override override fun onBitmapLoaded(bitmap: Bitmap, from: LoadedFrom) {
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { // progressBar.setVisibility(View.GONE);
progressBar.setVisibility(View.GONE); profilePicImage.setImageBitmap(bitmap)
profilePicImage.setImageBitmap(bitmap); }
} override fun onBitmapFailed(e: Exception, errorDrawable: Drawable) {
// progressBar.setVisibility(View.GONE);
}
@Override override fun onPrepareLoad(placeHolderDrawable: Drawable) {
public void onBitmapFailed(Exception e, Drawable errorDrawable) { // progressBar.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE); }
} })
} else {
@Override profilePicImage.setImageResource(R.drawable.choice_img_round)
public void onPrepareLoad(Drawable placeHolderDrawable) { }
progressBar.setVisibility(View.VISIBLE);
}
});
}else {
profilePicImage.setImageResource(R.drawable.choice_img_round);
} }
userNameTextView.setText(`object`.getProfileName())
userNameTextView.setText(object.getProfileName()); userEmailTextView.setText(`object`.getProfileEmail())
userEmailTextView.setText(object.getProfileEmail()); if (mappedObject.getWholeDriverObject().driver_number == null) {
if (mappedObject.getWholeDriverObject().driver_number == null){ driverNo.text = "0"
driverNo.setText("0"); } else {
}else { val s: String = mappedObject.getWholeDriverObject().getDriver_number().toString()
String s = String.valueOf(mappedObject.getWholeDriverObject().getDriver_number()); driverNo.text = s
driverNo.setText(s);
} }
driverNo.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
driverNo.setOnClickListener(new View.OnClickListener() { val builder: AlertDialog.Builder = AlertDialog.Builder(context)
@Override val input: EditText = EditText(context)
public void onClick(View v) { val layout: LinearLayout = LinearLayout(context)
AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); layout.orientation = LinearLayout.VERTICAL
final EditText input = new EditText(getContext()); layout.setPadding(28, 0, 56, 0)
LinearLayout layout = new LinearLayout(getContext()); input.setText(driverNo.text.toString())
layout.setOrientation(LinearLayout.VERTICAL); input.setSelectAllOnFocus(true)
layout.setPadding(28,0,56,0); layout.addView(input)
input.setText(driverNo.getText().toString());
input.setSelectAllOnFocus(true);
layout.addView(input);
builder.setTitle("Change Driver Number") builder.setTitle("Change Driver Number")
.setView(layout) .setView(layout)
.setPositiveButton("Submit", new DialogInterface.OnClickListener() { .setPositiveButton("Submit", object : DialogInterface.OnClickListener {
@Override override fun onClick(dialog: DialogInterface, which: Int) {
public void onClick(final DialogInterface dialog, int which) { val reference: DatabaseReference =
DatabaseReference reference = mDatabase.child(USER_FIREBASE).child(mappedObject.getUserId()) MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE)
.child(DRIVER_NUMBER); .child(mappedObject.getUserId())
Log.i("Dialog Driver no", "onClick: " + reference.toString()); .child(FirebaseClass.DRIVER_NUMBER)
Log.i("Dialog Driver no", "onClick: " + reference.toString())
reference.setValue(input.getText().toString()).addOnCompleteListener(new OnCompleteListener<Void>() { reference.setValue(input.text.toString())
@Override .addOnCompleteListener(object : OnCompleteListener<Void> {
public void onComplete(@NonNull Task<Void> task) { override fun onComplete(task: Task<Void>) {
if (task.isSuccessful()){ if (task.isSuccessful) {
Toast.makeText(getContext(), "Driver Number Changed", Toast.LENGTH_SHORT).show(); Toast.makeText(
dialog.dismiss(); context,
notifyDataSetChanged(); "Driver Number Changed",
Log.i("Dialog Driver no", "onComplete: " + task.getResult()); Toast.LENGTH_SHORT
}else { ).show()
Log.e("Dialog Driver no", "onComplete: ", task.getException()); dialog.dismiss()
} notifyDataSetChanged()
Log.i(
} "Dialog Driver no",
}); "onComplete: " + task.result
)
} else {
Log.e(
"Dialog Driver no",
"onComplete: ",
task.exception
)
}
} }
} })
).create() }
.show(); }
).create()
.show()
} }
}); })
profileApprovalImage.setImageResource( profileApprovalImage.setImageResource(
approvalsClass.getOverApprovalStatusCode(mappedObject.getWholeDriverObject())); MainActivity.approvalsClass!!.getOverApprovalStatusCode(mappedObject.getWholeDriverObject())
)
listItemView.setOnClickListener(object : View.OnClickListener {
listItemView.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override val bundle: Bundle = Bundle()
public void onClick(View v) { bundle.putParcelable("mapped", mappedObject)
Bundle bundle = new Bundle(); ExecuteFragment.executeFragment(UserMainFragment(), bundle)
bundle.putParcelable("mapped",mappedObject);
executeFragment(new UserMainFragment(),bundle);
} }
}); })
return (listItemView)
return listItemView;
} }
private boolean hasImage(@NonNull ImageView view) { private fun hasImage(view: ImageView): Boolean {
Drawable drawable = view.getDrawable(); val drawable: Drawable? = view.drawable
boolean hasImage = (drawable != null); var hasImage: Boolean = (drawable != null)
if (hasImage && (drawable is BitmapDrawable)) {
if (hasImage && (drawable instanceof BitmapDrawable)) { hasImage = drawable.bitmap != null
hasImage = ((BitmapDrawable)drawable).getBitmap() != null;
} }
return hasImage
return hasImage;
} }
} }

View File

@@ -1,49 +1,36 @@
package h_mal.appttude.com.driver.SuperUser; package h_mal.appttude.com.driver.SuperUser
import android.os.Bundle; import android.os.Bundle
import android.support.v4.app.Fragment; import android.util.Log
import android.util.Log; import android.view.LayoutInflater
import android.view.LayoutInflater; import android.view.View
import android.view.Menu; import android.view.ViewGroup
import android.view.MenuInflater; import android.widget.GridView
import android.view.MenuItem; import androidx.fragment.app.Fragment
import android.view.View; import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject
import android.view.ViewGroup; import h_mal.appttude.com.driver.R
import android.widget.GridView;
import android.widget.ListView;
import h_mal.appttude.com.driver.Archive.ArchiveFragment;
import h_mal.appttude.com.driver.Global.ExecuteFragment;
import h_mal.appttude.com.driver.MainActivity;
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
import h_mal.appttude.com.driver.R;
public class UserMainFragment extends Fragment {
@Override class UserMainFragment : Fragment() {
public void onCreate(Bundle savedInstanceState) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState)
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_user_main, container, false); val view: View = inflater.inflate(R.layout.fragment_user_main, container, false)
Log.i("UserMain", "onCreateView: height = " + view.height)
Log.i("UserMain", "onCreateView: height = " + view.getHeight()); val mappedObject: MappedObject = arguments!!.getParcelable("mapped")
activity.setTitle(
MappedObject mappedObject = getArguments().getParcelable("mapped"); mappedObject.getWholeDriverObject().getUser_details().getProfileName()
)
getActivity().setTitle(mappedObject.getWholeDriverObject().getUser_details().getProfileName());
// ListView listView = view.findViewById(R.id.approvals_list); // ListView listView = view.findViewById(R.id.approvals_list);
GridView listView = view.findViewById(R.id.approvals_list); val listView: GridView = view.findViewById(R.id.approvals_list)
listView.setAdapter(new ApprovalListAdapter(getActivity(), new MappedObject[]{mappedObject})); listView.adapter = ApprovalListAdapter((activity)!!, arrayOf(mappedObject))
return view
return view;
} }
}
}

View File

@@ -1,186 +1,181 @@
package h_mal.appttude.com.driver.SuperUser; package h_mal.appttude.com.driver.SuperUser
import android.app.AlertDialog; import android.app.AlertDialog
import android.content.DialogInterface; import android.content.DialogInterface
import android.content.SharedPreferences; import android.content.SharedPreferences
import android.os.Bundle; import android.os.Bundle
import android.support.annotation.NonNull; import android.util.Log
import android.support.v4.app.Fragment; import android.view.*
import android.util.Log; import androidx.fragment.app.Fragment
import android.view.LayoutInflater; import androidx.recyclerview.widget.LinearLayoutManager
import android.view.Menu; import androidx.recyclerview.widget.RecyclerView
import android.view.MenuInflater; import com.google.firebase.database.DataSnapshot
import android.view.MenuItem; import com.google.firebase.database.DatabaseError
import android.view.View; import com.google.firebase.database.DatabaseReference
import android.view.ViewGroup; import com.google.firebase.database.ValueEventListener
import android.widget.ListView; import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.MainActivity
import com.google.firebase.database.DataSnapshot; import h_mal.appttude.com.driver.Objects.WholeDriverObject
import com.google.firebase.database.DatabaseError; import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject
import com.google.firebase.database.DatabaseReference; import h_mal.appttude.com.driver.R
import com.google.firebase.database.ValueEventListener; import java.util.*
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson;
import static h_mal.appttude.com.driver.MainActivity.viewController;
public class homeSuperUserFragment extends Fragment { class homeSuperUserFragment : Fragment() {
var users: DatabaseReference? = null
DatabaseReference users; var listViewSuperAdapter: ListViewSuperAdapter? = null
ListViewSuperAdapter listViewSuperAdapter; var mappedObjectList: MutableList<MappedObject>? = null
private var sharedPreferences: SharedPreferences? = null
List<MappedObject> mappedObjectList; private var sortOrder: Int = 0
private SharedPreferences sharedPreferences; private val sortDesc: Boolean = false
private int sortOrder; private var recyclerView: RecyclerView? = null
private boolean sortDesc; private var recyclerViewAdapter: RecyclerViewAdapter? = null
private static final String SORT = "SORT"; override fun onCreate(savedInstanceState: Bundle?) {
private static final String REVERSED = "REVERSED"; super.onCreate(savedInstanceState)
private static final String TAG = "homeSuperUserFragment"; setHasOptionsMenu(true)
users = MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE)
@Override mappedObjectList = ArrayList()
public void onCreate(Bundle savedInstanceState) { MainActivity.viewController!!.progress(View.VISIBLE)
super.onCreate(savedInstanceState); users!!.addValueEventListener(valueEventListener)
sharedPreferences = activity!!.getSharedPreferences("PREFS", 0)
setHasOptionsMenu(true);
users = mDatabase.child(USER_FIREBASE);
mappedObjectList = new ArrayList<>();
viewController.progress(View.VISIBLE);
users.addValueEventListener(valueEventListener);
sharedPreferences = getActivity().getSharedPreferences("PREFS", 0);
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
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)
final ListView list = view.findViewById(R.id.list_view_super); // final ListView list = view.findViewById(R.id.list_view_super);
listViewSuperAdapter = new ListViewSuperAdapter(getContext(),mappedObjectList); // listViewSuperAdapter = new ListViewSuperAdapter(getContext(),mappedObjectList);
list.setAdapter(listViewSuperAdapter); // list.setAdapter(listViewSuperAdapter);
recyclerView = view.findViewById(R.id.recycler_view)
return view; recyclerView.setLayoutManager(LinearLayoutManager(context))
recyclerViewAdapter = RecyclerViewAdapter(context, mappedObjectList)
recyclerView.setAdapter(recyclerViewAdapter)
return view
} }
ValueEventListener valueEventListener = new ValueEventListener() { var valueEventListener: ValueEventListener = object : ValueEventListener {
@Override override fun onDataChange(snapshot: DataSnapshot) {
public void onDataChange(@NonNull DataSnapshot snapshot) { mappedObjectList!!.clear()
mappedObjectList.clear(); Log.i("Count ", "" + snapshot.childrenCount)
Log.i("Count " ,""+snapshot.getChildrenCount()); for (postSnapshot: DataSnapshot in snapshot.children) {
for (DataSnapshot postSnapshot: snapshot.getChildren()) { if ((postSnapshot.child("role").value.toString() == "driver")) {
if (postSnapshot.child("role").getValue().toString().equals("driver")){ MainActivity.printObjectAsJson("object", postSnapshot.toString())
printObjectAsJson("object",postSnapshot.toString()); mappedObjectList!!.add(
mappedObjectList.add(new MappedObject(postSnapshot.getKey(),postSnapshot.getValue(WholeDriverObject.class))); MappedObject(
postSnapshot.key, postSnapshot.getValue(
WholeDriverObject::class.java
)
)
)
} }
} }
sortDate(sortOrder,sortDesc); sortDate(sortOrder, sortDesc)
viewController.progress(View.GONE); MainActivity.viewController!!.progress(View.GONE)
} }
@Override override fun onCancelled(databaseError: DatabaseError) {
public void onCancelled(@NonNull DatabaseError databaseError) { MainActivity.viewController!!.progress(View.GONE)
viewController.progress(View.GONE);
} }
};
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_calls_fragment, menu);
super.onCreateOptionsMenu(menu, inflater);
} }
@Override override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
public boolean onOptionsItemSelected(MenuItem item) { inflater.inflate(R.menu.menu_calls_fragment, menu)
if (item.getItemId() == R.id.archive){ super.onCreateOptionsMenu(menu, inflater)
final String[] grpname = {"Driver Name","Driver Number","Approval"}; }
sortOrder = sharedPreferences.getInt(SORT,0);
int checkedItem = sortOrder;
final int[] compareInt = {0};
final AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == R.id.archive) {
val grpname: Array<String> = arrayOf("Driver Name", "Driver Number", "Approval")
sortOrder = sharedPreferences!!.getInt(SORT, 0)
val checkedItem: Int = sortOrder
val compareInt: IntArray = intArrayOf(0)
val builder: AlertDialog.Builder = AlertDialog.Builder(context)
builder.setTitle("Sort by:") builder.setTitle("Sort by:")
.setSingleChoiceItems(grpname, checkedItem, new DialogInterface .setSingleChoiceItems(
.OnClickListener() { grpname,
public void onClick(DialogInterface dialog, int item) { checkedItem,
switch (item) { object : DialogInterface.OnClickListener {
case 0: override fun onClick(dialog: DialogInterface, item: Int) {
compareInt[0] = 0; when (item) {
return; 0 -> {
case 1: compareInt.get(0) = 0
compareInt[0] = 1; return
return; }
case 2: 1 -> {
compareInt[0] = 2; compareInt.get(0) = 1
return
}
2 -> compareInt.get(0) = 2
}
}
}).setPositiveButton("Ascending", object : DialogInterface.OnClickListener {
override fun onClick(dialog: DialogInterface, id: Int) {
sortDate(compareInt.get(0), false)
dialog.dismiss()
} }
} }).setNegativeButton("Descending", object : DialogInterface.OnClickListener {
}).setPositiveButton("Ascending", new DialogInterface.OnClickListener() { override fun onClick(dialog: DialogInterface, id: Int) {
@Override sortDate(compareInt.get(0), true)
public void onClick(DialogInterface dialog, int id) { dialog.dismiss()
sortDate(compareInt[0],false); }
dialog.dismiss(); })
} .create().show()
}).setNegativeButton("Descending", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
sortDate(compareInt[0],true);
dialog.dismiss();
}
})
.create().show();
} }
return super.onOptionsItemSelected(item)
return super.onOptionsItemSelected(item);
} }
private void sortDate(final int compareInt, boolean reversed){ private fun sortDate(compareInt: Int, reversed: Boolean) {
Log.i(TAG, "sortDate: " + compareInt + " - " + reversed); Log.i(TAG, "sortDate: " + compareInt + " - " + reversed)
Comparator<MappedObject> comparator = new Comparator<MappedObject>() { val comparator: Comparator<MappedObject> = object : Comparator<MappedObject> {
@Override override fun compare(o1: MappedObject, o2: MappedObject): Int {
public int compare(MappedObject o1, MappedObject o2) { when (compareInt) {
switch (compareInt){ 0 -> return o1.getWholeDriverObject().getUser_details().getProfileName()
case 0: .compareTo(
return o1.getWholeDriverObject().getUser_details().getProfileName().compareTo( o2.getWholeDriverObject().getUser_details().getProfileName()
o2.getWholeDriverObject().getUser_details().getProfileName()); )
case 1: 1 -> {
return o1.getWholeDriverObject().getDriver_number() var s1: String? = o1.getWholeDriverObject().getDriver_number()
.compareTo(o2.getWholeDriverObject().getDriver_number()); var s2: String? = o2.getWholeDriverObject().getDriver_number()
case 2: if (o1.getWholeDriverObject().driver_number == null || (o1.getWholeDriverObject()
return approvalsClass.getOverApprovalStatusCode(o1.wholeDriverObject) - .getDriver_number() == "0")
approvalsClass.getOverApprovalStatusCode(o2.wholeDriverObject); ) {
default: s1 = ";"
return approvalsClass.getOverApprovalStatusCode(o1.wholeDriverObject) - }
approvalsClass.getOverApprovalStatusCode(o2.wholeDriverObject); if (o2.getWholeDriverObject().driver_number == null || (o2.getWholeDriverObject()
.getDriver_number() == "0")
) {
s2 = ";"
}
return s1!!.compareTo((s2)!!)
} }
2 -> return MainActivity.approvalsClass!!.getOverApprovalStatusCode(o1.wholeDriverObject) -
MainActivity.approvalsClass!!.getOverApprovalStatusCode(o2.wholeDriverObject)
else -> return MainActivity.approvalsClass!!.getOverApprovalStatusCode(
o1.wholeDriverObject
) -
MainActivity.approvalsClass!!.getOverApprovalStatusCode(o2.wholeDriverObject)
} }
}; }
sharedPreferences.edit().putInt(SORT,compareInt).apply();
sharedPreferences.edit().putBoolean(REVERSED,reversed).apply();
if (reversed){
Collections.sort(mappedObjectList,comparator.reversed());
}else {
Collections.sort(mappedObjectList,comparator);
} }
sharedPreferences!!.edit().putInt(SORT, compareInt).apply()
listViewSuperAdapter.notifyDataSetChanged(); sharedPreferences!!.edit().putBoolean(REVERSED, reversed).apply()
if (reversed) {
Collections.sort(mappedObjectList, comparator.reversed())
} else {
Collections.sort(mappedObjectList, comparator)
}
recyclerViewAdapter!!.notifyDataSetChanged()
// listViewSuperAdapter.notifyDataSetChanged();
} }
}
companion object {
private val SORT: String = "SORT"
private val REVERSED: String = "REVERSED"
private val TAG: String = "homeSuperUserFragment"
}
}

View File

@@ -1,98 +1,67 @@
package h_mal.appttude.com.driver.User; package h_mal.appttude.com.driver.user
import android.animation.Animator; import android.animation.Animator
import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorListenerAdapter
import android.annotation.TargetApi; import android.annotation.TargetApi
import android.content.Intent; import android.content.Intent
import android.support.annotation.NonNull; import android.os.Build
import android.support.v7.app.AppCompatActivity; import android.os.Bundle
import android.text.TextUtils
import android.os.Build; import android.view.View
import android.os.Bundle; import android.view.inputmethod.EditorInfo
import android.text.TextUtils; import android.widget.Button
import android.view.KeyEvent; import android.widget.EditText
import android.view.View; import android.widget.TextView
import android.view.View.OnClickListener; import android.widget.TextView.OnEditorActionListener
import android.view.inputmethod.EditorInfo; import androidx.appcompat.app.AppCompatActivity
import android.widget.Button; import com.google.android.gms.tasks.Task
import android.widget.EditText; import com.google.firebase.auth.AuthResult
import android.widget.TextView; import com.google.firebase.auth.FirebaseAuth
import android.widget.Toast; import h_mal.appttude.com.driver.R
import h_mal.appttude.com.driver.utils.Navigations
import com.google.android.gms.tasks.OnCompleteListener; import h_mal.appttude.com.driver.utils.displayToast
import com.google.android.gms.tasks.OnFailureListener; import h_mal.appttude.com.driver.utils.navigateToActivity
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import h_mal.appttude.com.driver.MainActivity;
import h_mal.appttude.com.driver.R;
/** /**
* A login screen that offers login via email/password. * A login screen that offers login via email/password.
*/ */
public class LoginActivity extends AppCompatActivity{ class LoginActivity : AppCompatActivity() {
private var auth: FirebaseAuth? = null
private String TAG = "LoginActivity";
private FirebaseAuth auth;
// UI references. // UI references.
private EditText mEmailView; private var mEmailView: EditText? = null
private EditText mPasswordView; private var mPasswordView: EditText? = null
private View mProgressView; private var mProgressView: View? = null
private View mLoginView; private var mLoginView: View? = null
override fun onCreate(savedInstanceState: Bundle?) {
@Override super.onCreate(savedInstanceState)
protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_login)
super.onCreate(savedInstanceState); auth = FirebaseAuth.getInstance()
setContentView(R.layout.activity_login);
auth = FirebaseAuth.getInstance();
// Set up the login form. // Set up the login form.
mEmailView = findViewById(R.id.email); mEmailView = findViewById(R.id.email)
mPasswordView = findViewById<View>(R.id.password) as EditText
mPasswordView = (EditText) findViewById(R.id.password); mPasswordView!!.setOnEditorActionListener(OnEditorActionListener { textView, id, keyEvent ->
mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() { if (id == EditorInfo.IME_ACTION_DONE || id == EditorInfo.IME_NULL) {
@Override attemptLogin()
public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) { return@OnEditorActionListener true
if (id == EditorInfo.IME_ACTION_DONE || id == EditorInfo.IME_NULL) {
attemptLogin();
return true;
}
return false;
} }
}); false
})
val mEmailSignInButton = findViewById<Button>(R.id.email_sign_in_button)
Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button); mEmailSignInButton.setOnClickListener { view: View? -> attemptLogin() }
mEmailSignInButton.setOnClickListener(new OnClickListener() { mProgressView = findViewById(R.id.login_progress)
@Override mLoginView = findViewById(R.id.email_login_form)
public void onClick(View view) { val register = findViewById<TextView>(R.id.register_button)
attemptLogin(); register.setOnClickListener { v: View? ->
} val intent = Intent(application, RegisterActivity::class.java)
}); startActivity(intent)
}
mProgressView = findViewById(R.id.login_progress); val forgotPw = findViewById<TextView>(R.id.forgot)
mLoginView = findViewById(R.id.email_login_form); forgotPw.setOnClickListener { v: View? ->
val intent = Intent(application, forgotPasswordActivity::class.java)
TextView register = findViewById(R.id.register_button); startActivity(intent)
register.setOnClickListener(new OnClickListener() { }
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplication(),RegisterActivity.class);
startActivity(intent);
}
});
TextView forgotPw = findViewById(R.id.forgot);
forgotPw.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplication(),forgotPasswordActivity.class);
startActivity(intent);
}
});
} }
/** /**
@@ -100,109 +69,97 @@ public class LoginActivity extends AppCompatActivity{
* If there are form errors (invalid email, missing fields, etc.), the * If there are form errors (invalid email, missing fields, etc.), the
* errors are presented and no actual login attempt is made. * errors are presented and no actual login attempt is made.
*/ */
private void attemptLogin() { private fun attemptLogin() {
if (auth == null) { if (auth == null) {
Toast.makeText(this, "Login invalid", Toast.LENGTH_SHORT).show(); displayToast("Login invalid")
return; return
} }
// Reset errors. // Reset errors
mEmailView.setError(null); mEmailView!!.error = null
mPasswordView.setError(null); mPasswordView!!.error = null
// Store values at the time of the login attempt. // Store values at the time of the login attempt.
String email = mEmailView.getText().toString(); val email = mEmailView!!.text.toString()
String password = mPasswordView.getText().toString(); val password = mPasswordView!!.text.toString()
var cancel = false
boolean cancel = false; var focusView: View? = null
View focusView = null;
// Check for a valid password, if the user entered one. // Check for a valid password, if the user entered one.
if (!TextUtils.isEmpty(password) && !isPasswordValid(password)) { if (!TextUtils.isEmpty(password) && !isPasswordValid(password)) {
mPasswordView.setError(getString(R.string.error_invalid_password)); mPasswordView!!.error = getString(R.string.error_invalid_password)
focusView = mPasswordView; focusView = mPasswordView
cancel = true; cancel = true
} }
// Check for a valid email address. // Check for a valid email address.
if (TextUtils.isEmpty(email)) { if (TextUtils.isEmpty(email)) {
mEmailView.setError(getString(R.string.error_field_required)); mEmailView!!.error = getString(R.string.error_field_required)
focusView = mEmailView; focusView = mEmailView
cancel = true; cancel = true
} else if (!isEmailValid(email)) { } else if (!isEmailValid(email)) {
mEmailView.setError(getString(R.string.error_invalid_email)); mEmailView!!.error = getString(R.string.error_invalid_email)
focusView = mEmailView; focusView = mEmailView
cancel = true; cancel = true
} }
if (cancel) { if (cancel) {
// There was an error; don't attempt login and focus the first // There was an error; don't attempt login and focus the first
// form field with an error. // form field with an error.
focusView.requestFocus(); focusView!!.requestFocus()
} else { } else {
// Show a progress spinner, and kick off a background task to // Show a progress spinner, and kick off a background task to
// perform the user login attempt. // perform the user login attempt.
showProgress(true)
showProgress(true); auth!!.signInWithEmailAndPassword(email, password)
auth.signInWithEmailAndPassword(email,password) .addOnCompleteListener { task: Task<AuthResult?> ->
.addOnCompleteListener(new OnCompleteListener<AuthResult>() { showProgress(false)
@Override if (task.isSuccessful) {
public void onComplete(@NonNull Task<AuthResult> task) { navigateToActivity(
showProgress(false); this@LoginActivity,
if (task.isSuccessful()){ Navigations.Main
Intent intent = new Intent(LoginActivity.this,MainActivity.class); )
startActivity(intent); finish()
finish(); } else {
}else { displayToast(getString(R.string.login_failed))
Toast.makeText(LoginActivity.this, getString(R.string.login_failed), Toast.LENGTH_SHORT).show();
}
} }
} }
);
} }
} }
private boolean isEmailValid(String email) { private fun isEmailValid(email: String): Boolean {
//TODO: Replace this with your own logic //TODO: Replace this with your own logic
return email.contains("@"); return email.contains("@")
} }
private boolean isPasswordValid(String password) { private fun isPasswordValid(password: String): Boolean {
//TODO: Replace this with your own logic //TODO: Replace this with your own logic
return password.length() > 6; return password.length > 6
} }
/** /**
* Shows the progress UI and hides the login form. * Shows the progress UI and hides the login form.
*/ */
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
private void showProgress(final boolean show) { private fun showProgress(show: Boolean) {
// On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow // On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
// for very easy animations. If available, use these APIs to fade-in // for very easy animations. If available, use these APIs to fade-in
// the progress spinner. // the progress spinner.
val shortAnimTime = resources.getInteger(android.R.integer.config_shortAnimTime)
int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime); mLoginView!!.visibility = if (show) View.GONE else View.VISIBLE
mLoginView!!.animate().setDuration(shortAnimTime.toLong()).alpha(
mLoginView.setVisibility(show ? View.GONE : View.VISIBLE); if (show) 0F else 1.toFloat()
mLoginView.animate().setDuration(shortAnimTime).alpha( ).setListener(object : AnimatorListenerAdapter() {
show ? 0 : 1).setListener(new AnimatorListenerAdapter() { override fun onAnimationEnd(animation: Animator) {
@Override mLoginView!!.visibility = if (show) View.GONE else View.VISIBLE
public void onAnimationEnd(Animator animation) { }
mLoginView.setVisibility(show ? View.GONE : View.VISIBLE); })
} mProgressView!!.visibility = if (show) View.VISIBLE else View.GONE
}); mProgressView!!.animate().setDuration(shortAnimTime.toLong()).alpha(
if (show) 1F else 0.toFloat()
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE); ).setListener(object : AnimatorListenerAdapter() {
mProgressView.animate().setDuration(shortAnimTime).alpha( override fun onAnimationEnd(animation: Animator) {
show ? 1 : 0).setListener(new AnimatorListenerAdapter() { mProgressView!!.visibility = if (show) View.VISIBLE else View.GONE
@Override }
public void onAnimationEnd(Animator animation) { })
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
}
});
} }
}
}

View File

@@ -1,161 +1,161 @@
package h_mal.appttude.com.driver.User; package h_mal.appttude.com.driver.user
import android.content.Intent; import android.content.Intent
import android.support.annotation.NonNull; import android.os.Bundle
import android.support.v7.app.AppCompatActivity; import android.text.TextUtils
import android.os.Bundle; import android.util.Log
import android.text.TextUtils; import android.view.View
import android.util.Log; import android.widget.Button
import android.view.View; import android.widget.EditText
import android.widget.Button; import android.widget.ProgressBar
import android.widget.EditText; import android.widget.Toast
import android.widget.ProgressBar; import androidx.appcompat.app.AppCompatActivity
import android.widget.Toast; import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task
import com.google.firebase.auth.AuthResult
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.UserProfileChangeRequest
import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.FirebaseDatabase
import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.UserObject
import h_mal.appttude.com.driver.R
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.UserProfileChangeRequest;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import h_mal.appttude.com.driver.MainActivity;
import h_mal.appttude.com.driver.Objects.UserObject;
import h_mal.appttude.com.driver.R;
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
public class RegisterActivity extends AppCompatActivity {
private FirebaseAuth auth;
private EditText name;
private EditText email;
private EditText passwordTop;
private EditText passwordBottom;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
auth = FirebaseAuth.getInstance();
name = findViewById(R.id.name_register);
email = findViewById(R.id.email_register);
passwordTop = findViewById(R.id.password_top);
passwordBottom = findViewById(R.id.password_bottom);
progressBar = findViewById(R.id.pb);
Button submit = findViewById(R.id.email_sign_up);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String nameString = name.getText().toString().trim();
String emailText = email.getText().toString().trim();
String passwordText = passwordTop.getText().toString().trim();
String passwordTextBottom = passwordBottom.getText().toString().trim();
boolean cancel = false;
View focusView = null;
class RegisterActivity : AppCompatActivity() {
private var auth: FirebaseAuth? = null
private var name: EditText? = null
private var email: EditText? = null
private var passwordTop: EditText? = null
private var passwordBottom: EditText? = null
private var progressBar: ProgressBar? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_register)
auth = FirebaseAuth.getInstance()
name = findViewById(R.id.name_register)
email = findViewById(R.id.email_register)
passwordTop = findViewById(R.id.password_top)
passwordBottom = findViewById(R.id.password_bottom)
progressBar = findViewById(R.id.pb)
val submit: Button = findViewById(R.id.email_sign_up)
submit.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
val nameString: String = name.getText().toString().trim({ it <= ' ' })
val emailText: String = email.getText().toString().trim({ it <= ' ' })
val passwordText: String = passwordTop.getText().toString().trim({ it <= ' ' })
val passwordTextBottom: String =
passwordBottom.getText().toString().trim({ it <= ' ' })
var cancel: Boolean = false
var focusView: View? = null
if (TextUtils.isEmpty(nameString)) { if (TextUtils.isEmpty(nameString)) {
name.setError(getString(R.string.error_field_required)); name.setError(getString(R.string.error_field_required))
focusView = name; focusView = name
cancel = true; cancel = true
} }
if (TextUtils.isEmpty(emailText)) { if (TextUtils.isEmpty(emailText)) {
email.setError(getString(R.string.error_field_required)); email.setError(getString(R.string.error_field_required))
focusView = email; focusView = email
cancel = true; cancel = true
} }
if (TextUtils.isEmpty(passwordText)) { if (TextUtils.isEmpty(passwordText)) {
passwordTop.setError(getString(R.string.error_field_required)); passwordTop.setError(getString(R.string.error_field_required))
focusView = passwordTop; focusView = passwordTop
cancel = true; cancel = true
} }
if (TextUtils.isEmpty(passwordTextBottom)) { if (TextUtils.isEmpty(passwordTextBottom)) {
passwordBottom.setError(getString(R.string.error_field_required)); passwordBottom.setError(getString(R.string.error_field_required))
focusView = passwordBottom; focusView = passwordBottom
cancel = true; cancel = true
} }
if (!TextUtils.isEmpty(passwordText) && !isPasswordValid(passwordText)) { if (!TextUtils.isEmpty(passwordText) && !isPasswordValid(passwordText)) {
passwordTop.setError(getString(R.string.error_invalid_password)); passwordTop.setError(getString(R.string.error_invalid_password))
focusView = passwordTop; focusView = passwordTop
cancel = true; cancel = true
} }
if (!(passwordText == passwordTextBottom)) {
if (!passwordText.equals(passwordTextBottom)){ passwordBottom.setError(getString(R.string.no_match_password))
passwordBottom.setError(getString(R.string.no_match_password)); focusView = passwordBottom
focusView = passwordBottom; cancel = true
cancel = true;
} }
if (cancel) { if (cancel) {
// There was an error; don't attempt login and focus the first // There was an error; don't attempt login and focus the first
// form field with an error. // form field with an error.
focusView.requestFocus(); focusView!!.requestFocus()
} else { } else {
progressBar.setVisibility(View.VISIBLE); progressBar.setVisibility(View.VISIBLE)
//create user //create user
auth.createUserWithEmailAndPassword(emailText, passwordText) auth.createUserWithEmailAndPassword(emailText, passwordText)
.addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() { .addOnCompleteListener(
@Override this@RegisterActivity,
public void onComplete(@NonNull Task<AuthResult> task) { object : OnCompleteListener<AuthResult?> {
progressBar.setVisibility(View.GONE); override fun onComplete(task: Task<AuthResult?>) {
if (!task.isSuccessful()) { progressBar.setVisibility(View.GONE)
Toast.makeText(RegisterActivity.this, "Authentication failed." + task.getException(), if (!task.isSuccessful) {
Toast.LENGTH_SHORT).show(); Toast.makeText(
} else { this@RegisterActivity,
"Authentication failed." + task.exception,
UserProfileChangeRequest.Builder profileUpdatesBuilder = new UserProfileChangeRequest.Builder(); Toast.LENGTH_SHORT
).show()
if (!TextUtils.isEmpty(nameString)){ } else {
profileUpdatesBuilder.setDisplayName(nameString); val profileUpdatesBuilder: UserProfileChangeRequest.Builder =
} UserProfileChangeRequest.Builder()
if (!TextUtils.isEmpty(nameString)) {
UserProfileChangeRequest profileUpdates = profileUpdatesBuilder.build(); profileUpdatesBuilder.setDisplayName(nameString)
auth.getCurrentUser().updateProfile(profileUpdates).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Log.i("RegisterActivity", "onComplete: " + task.isSuccessful());
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child("role")
.setValue("driver");
mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child("user_details")
.setValue(new UserObject(auth.getCurrentUser().getDisplayName(),auth.getCurrentUser().getEmail(),null));
Intent intent = new Intent(RegisterActivity.this,MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
} }
}); val profileUpdates: UserProfileChangeRequest =
profileUpdatesBuilder.build()
auth.getCurrentUser()!!.updateProfile(profileUpdates)
.addOnCompleteListener(object :
OnCompleteListener<Void?> {
override fun onComplete(task: Task<Void?>) {
if (task.isSuccessful) {
Log.i(
"RegisterActivity",
"onComplete: " + task.isSuccessful
)
val mDatabase: DatabaseReference =
FirebaseDatabase.getInstance()
.reference
mDatabase.child(FirebaseClass.USER_FIREBASE)
.child(
auth.getCurrentUser()!!.uid
).child("role")
.setValue("driver")
mDatabase.child(FirebaseClass.USER_FIREBASE)
.child(
auth.getCurrentUser()!!.uid
).child("user_details")
.setValue(
UserObject(
auth.getCurrentUser()!!
.displayName,
auth.getCurrentUser()!!
.email,
null
)
)
val intent: Intent = Intent(
this@RegisterActivity,
MainActivity::class.java
)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
finish()
}
}
})
}
} }
} })
}); }
}
} }
}); })
} }
private boolean isPasswordValid(String password) { private fun isPasswordValid(password: String): Boolean {
//TODO: Replace this with your own logic //TODO: Replace this with your own logic
return password.length() > 6; return password.length > 6
} }
} }

View File

@@ -1,59 +1,50 @@
package h_mal.appttude.com.driver.User; package h_mal.appttude.com.driver.user
import android.support.annotation.NonNull; import android.os.Bundle
import android.support.v4.app.NavUtils; import android.util.Log
import android.support.v7.app.AppCompatActivity; import android.view.View
import android.os.Bundle; import android.widget.Button
import android.util.Log; import android.widget.EditText
import android.view.View; import android.widget.Toast
import android.widget.Button; import androidx.appcompat.app.AppCompatActivity
import android.widget.EditText; import androidx.core.app.NavUtils
import android.widget.Toast; import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task
import com.google.firebase.auth.FirebaseAuth
import h_mal.appttude.com.driver.R
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import h_mal.appttude.com.driver.R; class forgotPasswordActivity : AppCompatActivity() {
var TAG: String = "forgotPasswordActivity"
public class forgotPasswordActivity extends AppCompatActivity { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
String TAG = "forgotPasswordActivity"; setContentView(R.layout.activity_forgot_password)
val editText: EditText = findViewById(R.id.reset_pw)
@Override val resetPw: Button = findViewById(R.id.reset_pw_sign_up)
protected void onCreate(Bundle savedInstanceState) { resetPw.setOnClickListener(object : View.OnClickListener {
super.onCreate(savedInstanceState); override fun onClick(v: View) {
setContentView(R.layout.activity_forgot_password); resetPassword(editText.text.toString().trim({ it <= ' ' }))
final EditText editText = findViewById(R.id.reset_pw);
final Button resetPw = findViewById(R.id.reset_pw_sign_up);
resetPw.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resetPassword(editText.getText().toString().trim());
} }
}); })
} }
private fun resetPassword(emailAddress: String) {
private void resetPassword(String emailAddress){ val auth: FirebaseAuth = FirebaseAuth.getInstance()
FirebaseAuth auth = FirebaseAuth.getInstance();
auth.sendPasswordResetEmail(emailAddress) auth.sendPasswordResetEmail(emailAddress)
.addOnCompleteListener(new OnCompleteListener<Void>() { .addOnCompleteListener(object : OnCompleteListener<Void?> {
@Override override fun onComplete(task: Task<Void?>) {
public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful) {
if (task.isSuccessful()) { Log.d(TAG, "Email sent.")
Log.d(TAG, "Email sent."); NavUtils.navigateUpFromSameTask(this@forgotPasswordActivity)
finish()
NavUtils.navigateUpFromSameTask(forgotPasswordActivity.this); } else {
finish(); Toast.makeText(
}else { this@forgotPasswordActivity,
Toast.makeText(forgotPasswordActivity.this, "Could not reset Password", Toast.LENGTH_SHORT).show(); "Could not reset Password",
} Toast.LENGTH_SHORT
).show()
} }
}); }
})
} }
} }

View File

@@ -1,251 +1,201 @@
package h_mal.appttude.com.driver.User; package h_mal.appttude.com.driver.user
import android.app.AlertDialog; import android.app.AlertDialog
import android.content.DialogInterface; import android.content.DialogInterface
import android.content.Intent; import android.os.Bundle
import android.content.pm.PackageManager; import android.text.InputType
import android.net.Uri; import android.text.TextUtils
import android.os.Bundle; import android.util.Log
import android.support.annotation.NonNull; import android.view.LayoutInflater
import android.support.v4.app.Fragment; import android.view.View
import android.text.InputType; import android.view.ViewGroup
import android.text.TextUtils; import android.widget.*
import android.util.Log; import androidx.fragment.app.Fragment
import android.view.LayoutInflater; import com.google.android.gms.tasks.OnCompleteListener
import android.view.View; import com.google.android.gms.tasks.OnFailureListener
import android.view.ViewGroup; import com.google.android.gms.tasks.Task
import android.widget.Button; import com.google.firebase.auth.EmailAuthProvider
import android.widget.EditText; import com.google.firebase.auth.FirebaseAuth
import android.widget.ImageView; import com.google.firebase.auth.FirebaseUser
import android.widget.LinearLayout; import com.google.firebase.auth.UserProfileChangeRequest
import android.widget.TextView; import com.google.firebase.database.DatabaseReference
import android.widget.Toast; import h_mal.appttude.com.driver.Global.FirebaseClass
import h_mal.appttude.com.driver.Global.ViewController
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.R
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthCredential;
import com.google.firebase.auth.EmailAuthProvider;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.auth.UserProfileChangeRequest;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.squareup.picasso.Picasso;
import h_mal.appttude.com.driver.Global.ImageSelectorDialog; class profileFragment : Fragment() {
import h_mal.appttude.com.driver.Global.ImageSelectorResults; private val TAG = this.javaClass.simpleName
import h_mal.appttude.com.driver.Global.ViewController; private var email: TextView? = null
import h_mal.appttude.com.driver.Objects.UserObject; private var name: TextView? = null
import h_mal.appttude.com.driver.R; private var changePw: TextView? = null
private var user: FirebaseUser? = null
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_DETAILS_FIREBASE; private var databaseReference: DatabaseReference? = null
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_FIREBASE; var viewController: ViewController? = null
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE; override fun onCreate(savedInstanceState: Bundle?) {
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST; super.onCreate(savedInstanceState)
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE; viewController = ViewController(activity)
import static h_mal.appttude.com.driver.MainActivity.auth; user = MainActivity.auth!!.currentUser
import static h_mal.appttude.com.driver.MainActivity.fragmentManager; databaseReference =
import static h_mal.appttude.com.driver.MainActivity.mDatabase; MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
user!!.uid
public class profileFragment extends Fragment { )
.child(FirebaseClass.DRIVER_FIREBASE)
private String TAG = this.getClass().getSimpleName(); .child(FirebaseClass.DRIVER_DETAILS_FIREBASE)
.child("driverPic")
private TextView email;
private TextView name;
private TextView changePw;
private FirebaseUser user;
private DatabaseReference databaseReference;
private static final String EMAIL_CONSTANT = "Email Address";
private static final String PW_CONSTANT = "Password";
ViewController viewController;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
viewController = new ViewController(getActivity());
user = auth.getCurrentUser();
databaseReference = mDatabase.child(USER_FIREBASE).child(user.getUid())
.child(DRIVER_FIREBASE).child(DRIVER_DETAILS_FIREBASE)
.child("driverPic");
} }
@Override override fun onCreateView(
public View onCreateView(LayoutInflater inflater, ViewGroup container, inflater: LayoutInflater, container: ViewGroup?,
Bundle savedInstanceState) { savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment // Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_profile, container, false); val view = inflater.inflate(R.layout.fragment_profile, container, false)
email = view.findViewById(R.id.change_email)
email = view.findViewById(R.id.change_email); name = view.findViewById(R.id.change_profile_name)
name = view.findViewById(R.id.change_profile_name); changePw = view.findViewById(R.id.change_pw)
changePw = view.findViewById(R.id.change_pw); val button = view.findViewById<Button>(R.id.submit_profile)
button.setOnClickListener(View.OnClickListener { MainActivity.fragmentManager!!.popBackStack() })
Button button = view.findViewById(R.id.submit_profile); name.setOnClickListener(object : View.OnClickListener {
button.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override val dialog = AlertDialog.Builder(context)
public void onClick(View v) { dialog.setTitle("Update Username")
fragmentManager.popBackStack(); val titleBox = EditText(context)
} titleBox.setText(user!!.displayName)
}); dialog.setView(titleBox)
dialog.setPositiveButton("Update", object : DialogInterface.OnClickListener {
name.setOnClickListener(new View.OnClickListener() { override fun onClick(dialog: DialogInterface, which: Int) {
@Override updateProfile(titleBox.text.toString().trim { it <= ' ' })
public void onClick(View v) {
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
dialog.setTitle("Update Username");
final EditText titleBox = new EditText(getContext());
titleBox.setText(user.getDisplayName());
dialog.setView(titleBox);
dialog.setPositiveButton("Update", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
updateProfile(titleBox.getText().toString().trim());
} }
}); })
dialog.show(); dialog.show()
} }
}); })
email.setOnClickListener(object : View.OnClickListener {
email.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override showDialog(EMAIL_CONSTANT)
public void onClick(View v) {
showDialog(EMAIL_CONSTANT);
} }
}); })
changePw.setOnClickListener(object : View.OnClickListener {
changePw.setOnClickListener(new View.OnClickListener() { override fun onClick(v: View) {
@Override showDialog(PW_CONSTANT)
public void onClick(View v) {
showDialog(PW_CONSTANT);
} }
}); })
return view
return view;
} }
private void updateProfile(String profileName){ private fun updateProfile(profileName: String) {
UserProfileChangeRequest.Builder profileUpdatesBuilder = new UserProfileChangeRequest.Builder(); val profileUpdatesBuilder = UserProfileChangeRequest.Builder()
if (!TextUtils.isEmpty(profileName)) {
if (!TextUtils.isEmpty(profileName)){ profileUpdatesBuilder.setDisplayName(profileName)
profileUpdatesBuilder.setDisplayName(profileName);
} }
val profileUpdates = profileUpdatesBuilder.build()
UserProfileChangeRequest profileUpdates = profileUpdatesBuilder.build(); user!!.updateProfile(profileUpdates)
.addOnCompleteListener(object : OnCompleteListener<Void?> {
user.updateProfile(profileUpdates) override fun onComplete(task: Task<Void?>) {
.addOnCompleteListener(new OnCompleteListener<Void>() { if (task.isSuccessful) {
@Override Log.d(TAG, "User profile updated.")
public void onComplete(@NonNull Task<Void> task) { viewController!!.reloadDrawer()
if (task.isSuccessful()) {
Log.d(TAG, "User profile updated.");
viewController.reloadDrawer();
} }
} }
}) })
.addOnFailureListener(new OnFailureListener() { .addOnFailureListener(object : OnFailureListener {
@Override override fun onFailure(e: Exception) {
public void onFailure(@NonNull Exception e) { Toast.makeText(context, "Update Failed", Toast.LENGTH_SHORT).show()
Toast.makeText(getContext(), "Update Failed", Toast.LENGTH_SHORT).show();
} }
}); })
} }
private void changeCredentials(String email, String password, final String changeText, final String selector){ private fun changeCredentials(
email: String,
password: String,
changeText: String,
selector: String
) {
// Get auth credentials from the user for re-authentication // Get auth credentials from the user for re-authentication
AuthCredential credential = EmailAuthProvider val credential = EmailAuthProvider
.getCredential(email, password); // Current Login Credentials \\ .getCredential(email, password) // Current Login Credentials \\
// Prompt the user to re-provide their sign-in credentials // Prompt the user to re-provide their sign-in credentials
user.reauthenticate(credential) user!!.reauthenticate(credential)
.addOnCompleteListener(new OnCompleteListener<Void>() { .addOnCompleteListener(object : OnCompleteListener<Void?> {
@Override override fun onComplete(task: Task<Void?>) {
public void onComplete(@NonNull Task<Void> task) { Log.d(TAG, "User re-authenticated.")
Log.d(TAG, "User re-authenticated."); user = FirebaseAuth.getInstance().currentUser
if ((selector == EMAIL_CONSTANT)) {
user = FirebaseAuth.getInstance().getCurrentUser(); user!!.updateEmail(changeText)
if (selector.equals(EMAIL_CONSTANT)){ .addOnCompleteListener(object : OnCompleteListener<Void?> {
user.updateEmail(changeText) override fun onComplete(task: Task<Void?>) {
.addOnCompleteListener(new OnCompleteListener<Void>() { if (task.isSuccessful) {
@Override Log.d(TAG, "User email address updated.")
public void onComplete(@NonNull Task<Void> task) { Toast.makeText(
if (task.isSuccessful()) { context,
Log.d(TAG, "User email address updated."); "Update Successful",
Toast.makeText(getContext(), "Update Successful", Toast.LENGTH_SHORT).show(); Toast.LENGTH_SHORT
viewController.reloadDrawer(); ).show()
} viewController!!.reloadDrawer()
} }
}); }
} })
if (selector.equals(PW_CONSTANT)){
user.updatePassword(changeText)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "User email address updated.");
Toast.makeText(getContext(), "Update Successful", Toast.LENGTH_SHORT).show();
}
}
});
}
} }
}); if ((selector == PW_CONSTANT)) {
user!!.updatePassword(changeText)
.addOnCompleteListener(object : OnCompleteListener<Void?> {
override fun onComplete(task: Task<Void?>) {
if (task.isSuccessful) {
Log.d(TAG, "User email address updated.")
Toast.makeText(
context,
"Update Successful",
Toast.LENGTH_SHORT
).show()
}
}
})
}
}
})
} }
private void showDialog(final String update){ private fun showDialog(update: String) {
//Make new Dialog //Make new Dialog
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext()); val dialog = AlertDialog.Builder(context)
dialog.setTitle("Update " + update); dialog.setTitle("Update $update")
val layout = LinearLayout(context)
LinearLayout layout = new LinearLayout(getContext()); layout.orientation = LinearLayout.VERTICAL
layout.setOrientation(LinearLayout.VERTICAL); layout.setPadding(28, 0, 56, 0)
layout.setPadding(28,0,56,0); val box1 = EditText(context)
box1.hint = "Current Email Address"
final EditText box1 = new EditText(getContext()); box1.inputType = InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS
box1.setHint("Current Email Address"); layout.addView(box1) // Notice this is an add method
box1.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); val box2 = EditText(context)
layout.addView(box1); // Notice this is an add method box2.hint = "Current Password"
box2.inputType = InputType.TYPE_CLASS_TEXT or
final EditText box2 = new EditText(getContext()); InputType.TYPE_TEXT_VARIATION_PASSWORD
box2.setHint("Current Password"); layout.addView(box2) // Another add method
box2.setInputType(InputType.TYPE_CLASS_TEXT | val box3 = EditText(context)
InputType.TYPE_TEXT_VARIATION_PASSWORD); if ((update == PW_CONSTANT)) {
layout.addView(box2); // Another add method box3.inputType = InputType.TYPE_CLASS_TEXT or
InputType.TYPE_TEXT_VARIATION_PASSWORD
final EditText box3 = new EditText(getContext()); } else {
if (update.equals(PW_CONSTANT)){ box3.inputType = InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS
box3.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_PASSWORD);
}else {
box3.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
} }
box3.setHint("New " + update); box3.hint = "New $update"
layout.addView(box3); // Another add method layout.addView(box3) // Another add method
dialog.setView(layout)
dialog.setView(layout); dialog.setPositiveButton("Update", object : DialogInterface.OnClickListener {
dialog.setPositiveButton("Update", new DialogInterface.OnClickListener() { override fun onClick(dialog: DialogInterface, which: Int) {
@Override val email = box1.text.toString().trim { it <= ' ' }
public void onClick(DialogInterface dialog, int which) { val password = box2.text.toString().trim { it <= ' ' }
String email = box1.getText().toString().trim(); val textThree = box3.text.toString().trim { it <= ' ' }
String password = box2.getText().toString().trim(); changeCredentials(email, password, textThree, update)
String textThree = box3.getText().toString().trim();
changeCredentials(email,password,textThree,update);
} }
}); })
dialog.show(); dialog.show()
} }
}
companion object {
private val EMAIL_CONSTANT = "Email Address"
private val PW_CONSTANT = "Password"
}
}

View File

@@ -0,0 +1,80 @@
package h_mal.appttude.com.driver.utils
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.R
fun navigateToActivity(context: Context, navigationActivity: Navigations) {
try {
val ourClass: Class<*> =
Class.forName("h_mal.appttude.com.driver." + navigationActivity.value)
val intent = Intent(context, ourClass)
context.startActivity(intent)
} catch (e: Exception) {
e.printStackTrace()
}
}
fun executeFragment(fragment: Fragment, bundle: Bundle?) {
executeFragmentMethod(fragment, bundle)
}
fun executeFragment(fragment: Fragment) {
executeFragmentMethod(fragment)
}
fun executeFragment(fragment: Fragment, userId: String?) {
executeFragmentMethod(fragment, userId)
}
fun executeFragment(fragment: Fragment, userId: String?, archive: String?) {
`executeFragmentMethod`(fragment, userId, archive)
}
private fun executeFragmentMethod(f: Fragment?) {
val fragmentTransaction: FragmentTransaction =
MainActivity.fragmentManager!!.beginTransaction()
fragmentTransaction.replace(R.id.container, (f)!!)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.addToBackStack(f.javaClass.simpleName).commit()
}
private fun executeFragmentMethod(f: Fragment?, user_id: String?) {
val bundle: Bundle = Bundle()
bundle.putString("user_id", user_id)
f!!.arguments = bundle
val fragmentTransaction: FragmentTransaction =
MainActivity.fragmentManager!!.beginTransaction()
fragmentTransaction.replace(R.id.container, (f))
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.addToBackStack(f.javaClass.simpleName).commit()
}
private fun executeFragmentMethod(f: Fragment, user_id: String?, archive: String?) {
val bundle: Bundle = Bundle()
bundle.putString("user_id", user_id)
bundle.putString("archive", archive)
f.arguments = bundle
val fragmentTransaction: FragmentTransaction =
MainActivity.fragmentManager!!.beginTransaction()
fragmentTransaction.replace(R.id.container, f)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.addToBackStack(f.javaClass.simpleName).commit()
}
private fun executeFragmentMethod(f: Fragment, b: Bundle?) {
if (b != null) {
f.arguments = b
}
val fragmentTransaction: FragmentTransaction =
MainActivity.fragmentManager!!.beginTransaction()
fragmentTransaction.replace(R.id.container, f)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.addToBackStack(f.javaClass.simpleName).commit()
}

View File

@@ -0,0 +1,6 @@
package h_mal.appttude.com.driver.utils
enum class Navigations(val value: String) {
Main("MainActivity");
}

View File

@@ -0,0 +1,13 @@
package h_mal.appttude.com.driver.utils
import android.app.Activity
import android.content.Context
import android.widget.Toast
fun Activity.displayToast(message: String?) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
}
fun Context.displayToast(message: String?) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
}

View File

@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".User.RegisterActivity"> tools:context=".user.RegisterActivity">
<ProgressBar <ProgressBar
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@@ -11,7 +11,7 @@
android:paddingBottom="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"
android:background="@drawable/cars" android:background="@drawable/cars"
android:importantForAutofill="yes" android:importantForAutofill="yes"
tools:context=".User.LoginActivity"> tools:context=".user.LoginActivity">
<!-- Login progress --> <!-- Login progress -->
@@ -27,7 +27,7 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:orientation="vertical"> android:orientation="vertical">
<android.support.v7.widget.CardView <androidx.cardview.widget.CardView
style="@style/cardview_theme" style="@style/cardview_theme"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -53,9 +53,9 @@
android:textColorHighlight="#03a9f4" /> android:textColorHighlight="#03a9f4" />
<!--</android.support.design.widget.TextInputLayout>--> <!--</android.support.design.widget.TextInputLayout>-->
</android.support.v7.widget.CardView> </androidx.cardview.widget.CardView>
<android.support.v7.widget.CardView <androidx.cardview.widget.CardView
style="@style/cardview_theme" style="@style/cardview_theme"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -85,7 +85,7 @@
android:textColorHighlight="#608d91" /> android:textColorHighlight="#608d91" />
<!--</android.support.design.widget.TextInputLayout>--> <!--</android.support.design.widget.TextInputLayout>-->
</android.support.v7.widget.CardView> </androidx.cardview.widget.CardView>
<LinearLayout <LinearLayout
android:id="@+id/register" android:id="@+id/register"

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.core.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout" android:id="@+id/drawer_layout"
@@ -40,4 +40,4 @@
</LinearLayout> </LinearLayout>
</android.support.design.widget.NavigationView> </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout> </androidx.core.widget.DrawerLayout>

View File

@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".User.RegisterActivity"> tools:context=".user.RegisterActivity">
<ProgressBar <ProgressBar
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@@ -35,12 +35,6 @@
android:scaleType="centerCrop" android:scaleType="centerCrop"
tools:src="@drawable/choice_img_round" /> tools:src="@drawable/choice_img_round" />
<ProgressBar
android:id="@+id/pb_dl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
</android.support.v7.widget.CardView> </android.support.v7.widget.CardView>
<TextView <TextView

View File

@@ -29,13 +29,6 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerCrop" android:scaleType="centerCrop"
tools:src="@drawable/choice_img_round" /> tools:src="@drawable/choice_img_round" />
<ProgressBar
android:id="@+id/pb_dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_gravity="center" />
</android.support.v7.widget.CardView> </android.support.v7.widget.CardView>
<TextView <TextView

View File

@@ -5,12 +5,19 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".SuperUser.homeSuperUserFragment"> tools:context=".SuperUser.homeSuperUserFragment">
<ListView <!--<ListView-->
android:layout_width="match_parent" <!--android:layout_width="match_parent"-->
android:layout_height="match_parent" <!--android:layout_height="match_parent"-->
android:id="@+id/list_view_super" <!--android:id="@+id/list_view_super"-->
tools:listitem="@layout/list_item_layout"> <!--tools:listitem="@layout/list_item_layout">-->
</ListView> <!--</ListView>-->
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</RelativeLayout> </RelativeLayout>

View File

@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">

View File

@@ -30,13 +30,6 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerCrop" android:scaleType="centerCrop"
tools:src="@drawable/choice_img_round" /> tools:src="@drawable/choice_img_round" />
<ProgressBar
android:id="@+id/pb_lb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_gravity="center" />
</android.support.v7.widget.CardView> </android.support.v7.widget.CardView>
<TextView <TextView

View File

@@ -31,13 +31,6 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerCrop" android:scaleType="centerCrop"
tools:src="@drawable/choice_img_round" /> tools:src="@drawable/choice_img_round" />
<ProgressBar
android:id="@+id/pb_mot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_gravity="center" />
</android.support.v7.widget.CardView> </android.support.v7.widget.CardView>
<TextView <TextView

View File

@@ -33,13 +33,6 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerCrop" android:scaleType="centerCrop"
tools:src="@drawable/choice_img_round" /> tools:src="@drawable/choice_img_round" />
<ProgressBar
android:id="@+id/pb_priv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
</android.support.v7.widget.CardView> </android.support.v7.widget.CardView>
<TextView <TextView

View File

@@ -33,13 +33,6 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerCrop" android:scaleType="centerCrop"
tools:src="@drawable/choice_img_round" /> tools:src="@drawable/choice_img_round" />
<ProgressBar
android:id="@+id/pb_priv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
</android.support.v7.widget.CardView> </android.support.v7.widget.CardView>
<TextView <TextView

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">

View File

@@ -27,13 +27,6 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerCrop" android:scaleType="centerCrop"
tools:src="@drawable/choice_img_round" /> tools:src="@drawable/choice_img_round" />
<ProgressBar
android:id="@+id/pb_ins"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_gravity="center" />
</android.support.v7.widget.CardView> </android.support.v7.widget.CardView>
</FrameLayout> </FrameLayout>

View File

@@ -38,12 +38,14 @@
android:scaleType="centerCrop" android:scaleType="centerCrop"
tools:srcCompat="@mipmap/ic_launcher_round" /> tools:srcCompat="@mipmap/ic_launcher_round" />
<ProgressBar <!--<android.support.v7.widget.CardView-->
android:id="@+id/pb_su_list" <!--android:id="@+id/status_icon"-->
android:layout_width="wrap_content" <!--android:layout_width="20dp"-->
android:layout_height="wrap_content" <!--android:layout_height="20dp"-->
android:layout_gravity="center" <!--android:layout_gravity="bottom|right"-->
android:visibility="gone" /> <!--android:layout_margin="3dp"-->
<!--tools:cardBackgroundColor="@android:color/holo_red_dark"-->
<!--app:cardCornerRadius="12dp" />-->
</android.support.v7.widget.CardView> </android.support.v7.widget.CardView>
</FrameLayout> </FrameLayout>

View File

@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -21,12 +20,12 @@
<android.support.v4.view.ViewPager <androidx.core.view.ViewPager
android:id="@+id/view_pager" android:id="@+id/view_pager"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
</android.support.v4.view.ViewPager> </androidx.core.view.ViewPager>
<ImageView <ImageView
android:id="@+id/delete" android:id="@+id/delete"

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android"> <paths>
<external-path name="my_images" path="Android/data/h_mal.appttude.com.driver/files/Pictures" /> <external-path name="my_images" path="Android/data/h_mal.appttude.com.driver/files/Pictures" />
</paths> </paths>

View File

@@ -2,7 +2,7 @@ package h_mal.appttude.com.driver;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.*; import static org.junit.Assert.assertEquals;
/** /**
* Example local unit test, which will execute on the development machine (host). * Example local unit test, which will execute on the development machine (host).

View File

@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.2.71' ext.kotlin_version = "1.3.72"
repositories { repositories {
google() google()
@@ -9,10 +9,13 @@ buildscript {
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.2.1' classpath 'com.android.tools.build:gradle:4.0.0'
classpath 'com.google.gms:google-services:4.0.1' classpath 'com.google.gms:google-services:4.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
def nav_version = "2.1.0-alpha06"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files
} }

View File

@@ -7,6 +7,9 @@
# Specifies the JVM arguments used for the daemon process. # Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings. # The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true
android.enableJetifier=true
kotlin.code.style=official
# When configured, Gradle will run in incubating parallel mode. # When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit # This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects

View File

@@ -1,5 +1,6 @@
#Sun Oct 11 00:29:59 BST 2020
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip