mirror of
https://github.com/hmalik144/Driver.git
synced 2025-12-10 02:45:20 +00:00
Migrated to kotlin on the app folder. Broken build
This commit is contained in:
159
.idea/codeStyles/Project.xml
generated
159
.idea/codeStyles/Project.xml
generated
@@ -1,29 +1,138 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<Objective-C-extensions>
|
||||
<file>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
|
||||
</file>
|
||||
<class>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
|
||||
</class>
|
||||
<extensions>
|
||||
<pair source="cpp" header="h" fileNamingConvention="NONE" />
|
||||
<pair source="c" header="h" fileNamingConvention="NONE" />
|
||||
</extensions>
|
||||
</Objective-C-extensions>
|
||||
<JetCodeStyleSettings>
|
||||
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
|
||||
<value>
|
||||
<package name="java.util" alias="false" withSubpackages="false" />
|
||||
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
|
||||
<package name="io.ktor" alias="false" withSubpackages="true" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PACKAGES_IMPORT_LAYOUT">
|
||||
<value>
|
||||
<package name="" alias="false" withSubpackages="true" />
|
||||
<package name="java" alias="false" withSubpackages="true" />
|
||||
<package name="javax" alias="false" withSubpackages="true" />
|
||||
<package name="kotlin" alias="false" withSubpackages="true" />
|
||||
<package name="" alias="true" withSubpackages="true" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
||||
</JetCodeStyleSettings>
|
||||
<codeStyleSettings language="XML">
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</indentOptions>
|
||||
<arrangement>
|
||||
<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>
|
||||
</component>
|
||||
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||
</state>
|
||||
</component>
|
||||
2
.idea/gradle.xml
generated
2
.idea/gradle.xml
generated
@@ -1,8 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="testRunner" value="PLATFORM" />
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="modules">
|
||||
|
||||
50
.idea/jarRepositories.xml
generated
Normal file
50
.idea/jarRepositories.xml
generated
Normal 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
16
.idea/misc.xml
generated
@@ -5,7 +5,7 @@
|
||||
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
|
||||
<option name="myNullables">
|
||||
<value>
|
||||
<list size="7">
|
||||
<list size="12">
|
||||
<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="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="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
|
||||
<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>
|
||||
</value>
|
||||
</option>
|
||||
<option name="myNotNulls">
|
||||
<value>
|
||||
<list size="6">
|
||||
<list size="11">
|
||||
<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="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="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
|
||||
<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>
|
||||
</value>
|
||||
</option>
|
||||
</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" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
apply plugin: 'com.android.application'
|
||||
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 {
|
||||
compileSdkVersion 28
|
||||
@@ -7,9 +19,9 @@ android {
|
||||
applicationId "h_mal.appttude.com.driver"
|
||||
minSdkVersion 24
|
||||
targetSdkVersion 28
|
||||
versionCode 5
|
||||
versionName "1.5"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
versionCode 6
|
||||
versionName "1.6"
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
@@ -17,30 +29,39 @@ android {
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = "1.8"
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
implementation 'com.android.support:design:28.0.0'
|
||||
implementation 'com.android.support:cardview-v7:28.0.0'
|
||||
implementation 'com.android.support:support-v4:28.0.0'
|
||||
implementation 'com.android.support:exifinterface:28.0.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.0.0'
|
||||
implementation 'com.google.android.material:material:1.0.0'
|
||||
implementation 'androidx.cardview:cardview:1.0.0'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.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'
|
||||
// Google firebase
|
||||
implementation 'com.google.firebase:firebase-core:16.0.1'
|
||||
implementation 'com.google.firebase:firebase-auth:16.0.1'
|
||||
implementation 'com.google.firebase:firebase-storage:16.0.1'
|
||||
implementation 'com.google.firebase:firebase-database:16.0.1'
|
||||
// Photoviewer
|
||||
implementation 'com.github.chrisbanes:PhotoView:2.1.0'
|
||||
// Picasso photo loader
|
||||
implementation 'com.squareup.picasso:picasso:2.71828'
|
||||
// Gson
|
||||
implementation 'com.google.code.gson:gson:2.3.1'
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
||||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
||||
androidTestImplementation 'com.android.support.test:rules:1.0.2'
|
||||
}
|
||||
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
repositories {
|
||||
mavenCentral()
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
|
||||
androidTestImplementation 'androidx.test:rules:1.1.1'
|
||||
}
|
||||
|
||||
@@ -3,14 +3,11 @@ package h_mal.appttude.com.driver;
|
||||
import android.content.Context;
|
||||
import android.support.test.InstrumentationRegistry;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
import android.view.View;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity
|
||||
android:name=".User.LoginActivity"
|
||||
android:name=".user.LoginActivity"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/Theme.Design.NoActionBar">
|
||||
<intent-filter>
|
||||
@@ -35,12 +35,12 @@
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
|
||||
</activity>
|
||||
<activity android:name=".User.RegisterActivity">
|
||||
<activity android:name=".user.RegisterActivity">
|
||||
|
||||
</activity>
|
||||
|
||||
<provider
|
||||
android:name="android.support.v4.content.FileProvider"
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="h_mal.appttude.com.driver"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
@@ -49,7 +49,7 @@
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
|
||||
<activity android:name=".User.forgotPasswordActivity"></activity>
|
||||
<activity android:name=".user.forgotPasswordActivity"></activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -1,293 +1,221 @@
|
||||
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;
|
||||
}
|
||||
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.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
|
||||
public int getCount() {
|
||||
return size;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getItem(int position) {
|
||||
switch (archiveString){
|
||||
case PRIVATE_HIRE_FIREBASE:
|
||||
return archiveObject.getPrivate_hire().get(mKeys[position]);
|
||||
case DRIVERS_LICENSE_FIREBASE:
|
||||
return archiveObject.getDriver_license().get(mKeys[position]);
|
||||
case VEHICLE_DETAILS_FIREBASE:
|
||||
return archiveObject.getVehicle_details().get(mKeys[position]);
|
||||
case MOT_FIREBASE:
|
||||
return archiveObject.getMot_details().get(mKeys[position]);
|
||||
case INSURANCE_FIREBASE:
|
||||
return archiveObject.getInsurance_details().get(mKeys[position]);
|
||||
case LOG_BOOK_FIREBASE:
|
||||
return archiveObject.getLog_book().get(mKeys[position]);
|
||||
case PRIVATE_HIRE_VEHICLE_LICENSE:
|
||||
return archiveObject.getPh_car().get(mKeys[position]);
|
||||
default:
|
||||
return mKeys[position];
|
||||
override fun getItem(position: Int): Any? {
|
||||
when (archiveString) {
|
||||
FirebaseClass.PRIVATE_HIRE_FIREBASE -> return archiveObject?.private_hire
|
||||
?.get(mKeys[position])
|
||||
FirebaseClass.DRIVERS_LICENSE_FIREBASE -> return archiveObject?.driver_license
|
||||
?.get(mKeys[position])
|
||||
FirebaseClass.VEHICLE_DETAILS_FIREBASE -> return archiveObject?.vehicle_details
|
||||
?.get(mKeys[position])
|
||||
FirebaseClass.MOT_FIREBASE -> return archiveObject?.mot_details?.get(mKeys[position])
|
||||
FirebaseClass.INSURANCE_FIREBASE -> return archiveObject?.insurance_details?.get(
|
||||
mKeys[position]
|
||||
)
|
||||
FirebaseClass.LOG_BOOK_FIREBASE -> return archiveObject?.log_book
|
||||
?.get(mKeys.get(position))
|
||||
FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE -> return archiveObject?.ph_car?.get(mKeys[position])
|
||||
else -> return mKeys[position]
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
return position;
|
||||
override fun getItemId(position: Int): Long {
|
||||
return position.toLong()
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View listItemView = convertView;
|
||||
override fun getView(position: Int, convertView: View, parent: ViewGroup): View {
|
||||
var listItemView: View = convertView
|
||||
if (listItemView == null) {
|
||||
if (archiveString.equals(PRIVATE_HIRE_FIREBASE) ||
|
||||
archiveString.equals(DRIVERS_LICENSE_FIREBASE) ||
|
||||
archiveString.equals(MOT_FIREBASE) ||
|
||||
archiveString.equals(LOG_BOOK_FIREBASE) ||
|
||||
archiveString.equals(PRIVATE_HIRE_VEHICLE_LICENSE)){
|
||||
|
||||
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))) {
|
||||
listItemView = LayoutInflater.from(context).inflate(
|
||||
R.layout.archive_license_item, parent, false);
|
||||
|
||||
ImageView imageView = listItemView.findViewById(R.id.image_archive);
|
||||
ProgressBar progressBar = listItemView.findViewById(R.id.prog_archive);
|
||||
dateArchivedText = listItemView.findViewById(R.id.date_archived);
|
||||
|
||||
LinearLayout expiryHolder = listItemView.findViewById(R.id.expiry_view);
|
||||
LinearLayout fieldTwo = listItemView.findViewById(R.id.field_two_view);
|
||||
|
||||
TextView expiryText = listItemView.findViewById(R.id.exp_text);
|
||||
TextView fiewTwoLable = listItemView.findViewById(R.id.field_two);
|
||||
TextView fieldTwoText = listItemView.findViewById(R.id.field_two_text);
|
||||
|
||||
switch (archiveString){
|
||||
case PRIVATE_HIRE_FIREBASE:
|
||||
expiryHolder.setVisibility(View.VISIBLE);
|
||||
fieldTwo.setVisibility(View.VISIBLE);
|
||||
|
||||
PrivateHireObject privateHireObject = (PrivateHireObject) getItem(position);
|
||||
|
||||
Picasso.get().load(privateHireObject.getPhImageString())
|
||||
.into(loadImage(progressBar,imageView));
|
||||
dateString(position);
|
||||
|
||||
expiryText.setText(privateHireObject.getPhExpiry());
|
||||
fiewTwoLable.setText("Private Hire License No.:");
|
||||
fieldTwoText.setText(privateHireObject.getPhNumber());
|
||||
break;
|
||||
case DRIVERS_LICENSE_FIREBASE:
|
||||
expiryHolder.setVisibility(View.VISIBLE);
|
||||
fieldTwo.setVisibility(View.VISIBLE);
|
||||
|
||||
DriversLicenseObject driversLicenseObject = (DriversLicenseObject) getItem(position);
|
||||
|
||||
Picasso.get().load(driversLicenseObject.getLicenseImageString())
|
||||
.into(loadImage(progressBar,imageView));
|
||||
dateString(position);
|
||||
|
||||
expiryText.setText(driversLicenseObject.getLicenseExpiry());
|
||||
fiewTwoLable.setText("License No.:");
|
||||
fieldTwoText.setText(driversLicenseObject.getLicenseNumber());
|
||||
break;
|
||||
case MOT_FIREBASE:
|
||||
Log.i(TAG, "getView: MOT OBJECT");
|
||||
expiryHolder.setVisibility(View.VISIBLE);
|
||||
fieldTwo.setVisibility(View.GONE);
|
||||
|
||||
MotObject motObject = (MotObject) getItem(position);
|
||||
|
||||
Picasso.get().load(motObject.getMotImageString())
|
||||
.into(loadImage(progressBar,imageView));
|
||||
dateString(position);
|
||||
expiryText.setText(motObject.getMotExpiry());
|
||||
break;
|
||||
case LOG_BOOK_FIREBASE:
|
||||
expiryHolder.setVisibility(View.GONE);
|
||||
fieldTwo.setVisibility(View.VISIBLE);
|
||||
|
||||
LogbookObject logbookObject = (LogbookObject) getItem(position);
|
||||
|
||||
Picasso.get().load(logbookObject.getPhotoString())
|
||||
.into(loadImage(progressBar,imageView));
|
||||
dateString(position);
|
||||
|
||||
fiewTwoLable.setText("V5C No.:");
|
||||
fieldTwoText.setText(logbookObject.getV5cnumber());
|
||||
break;
|
||||
case PRIVATE_HIRE_VEHICLE_LICENSE:
|
||||
expiryHolder.setVisibility(View.VISIBLE);
|
||||
fieldTwo.setVisibility(View.VISIBLE);
|
||||
|
||||
PrivateHireVehicleObject privateHireVehicleObject = (PrivateHireVehicleObject) getItem(position);
|
||||
|
||||
Picasso.get().load(privateHireVehicleObject.getPhCarImageString())
|
||||
.into(loadImage(progressBar,imageView));
|
||||
dateString(position);
|
||||
|
||||
expiryText.setText(privateHireVehicleObject.getPhCarExpiry());
|
||||
fiewTwoLable.setText("Private Hire Vehicle License No.:");
|
||||
fieldTwoText.setText(privateHireVehicleObject.getPhCarNumber());
|
||||
break;
|
||||
R.layout.archive_license_item, parent, false
|
||||
)
|
||||
val imageView: ImageView = listItemView.findViewById(R.id.image_archive)
|
||||
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)
|
||||
val expiryText: TextView = listItemView.findViewById(R.id.exp_text)
|
||||
val fiewTwoLable: TextView = listItemView.findViewById(R.id.field_two)
|
||||
val fieldTwoText: TextView = listItemView.findViewById(R.id.field_two_text)
|
||||
when (archiveString) {
|
||||
FirebaseClass.PRIVATE_HIRE_FIREBASE -> {
|
||||
expiryHolder.visibility = View.VISIBLE
|
||||
fieldTwo.visibility = View.VISIBLE
|
||||
val privateHireObject: PrivateHireObject =
|
||||
getItem(position) as PrivateHireObject
|
||||
Picasso.get().load(privateHireObject.phImageString)
|
||||
.placeholder(R.drawable.choice_img)
|
||||
.into(imageView)
|
||||
dateString(position)
|
||||
expiryText.text = privateHireObject.phExpiry
|
||||
fiewTwoLable.text = "Private Hire License No.:"
|
||||
fieldTwoText.text = privateHireObject.phNumber
|
||||
}
|
||||
FirebaseClass.DRIVERS_LICENSE_FIREBASE -> {
|
||||
expiryHolder.visibility = View.VISIBLE
|
||||
fieldTwo.visibility = View.VISIBLE
|
||||
val driversLicenseObject: DriversLicenseObject =
|
||||
getItem(position) as DriversLicenseObject
|
||||
Picasso.get().load(driversLicenseObject.licenseImageString)
|
||||
.placeholder(R.drawable.choice_img)
|
||||
.into(imageView)
|
||||
dateString(position)
|
||||
expiryText.text = driversLicenseObject.licenseExpiry
|
||||
fiewTwoLable.text = "License No.:"
|
||||
fieldTwoText.text = driversLicenseObject.licenseNumber
|
||||
}
|
||||
FirebaseClass.MOT_FIREBASE -> {
|
||||
Log.i(TAG, "getView: MOT OBJECT")
|
||||
expiryHolder.visibility = View.VISIBLE
|
||||
fieldTwo.visibility = View.GONE
|
||||
val motObject: MotObject = getItem(position) as MotObject
|
||||
Picasso.get().load(motObject.motImageString)
|
||||
.placeholder(R.drawable.choice_img)
|
||||
.into(imageView)
|
||||
dateString(position)
|
||||
expiryText.text = motObject.motExpiry
|
||||
}
|
||||
FirebaseClass.LOG_BOOK_FIREBASE -> {
|
||||
expiryHolder.visibility = View.GONE
|
||||
fieldTwo.visibility = View.VISIBLE
|
||||
val logbookObject: LogbookObject = getItem(position) as LogbookObject
|
||||
Picasso.get().load(logbookObject.photoString)
|
||||
.into(MainActivity.loadImage(imageView))
|
||||
dateString(position)
|
||||
fiewTwoLable.text = "V5C No.:"
|
||||
fieldTwoText.text = logbookObject.v5cnumber
|
||||
}
|
||||
FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE -> {
|
||||
expiryHolder.visibility = View.VISIBLE
|
||||
fieldTwo.visibility = View.VISIBLE
|
||||
val privateHireVehicleObject: PrivateHireVehicleObject =
|
||||
getItem(position) as PrivateHireVehicleObject
|
||||
Picasso.get().load(privateHireVehicleObject.phCarImageString)
|
||||
.into(MainActivity.loadImage(imageView))
|
||||
dateString(position)
|
||||
expiryText.text = privateHireVehicleObject.phCarExpiry
|
||||
fiewTwoLable.text = "Private Hire Vehicle License No.:"
|
||||
fieldTwoText.text = privateHireVehicleObject.phCarNumber
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}else if (archiveString.equals(INSURANCE_FIREBASE)){
|
||||
} else if ((archiveString == FirebaseClass.INSURANCE_FIREBASE)) {
|
||||
listItemView = LayoutInflater.from(context).inflate(
|
||||
R.layout.archive_insurance_item, parent, false);
|
||||
|
||||
View holder = listItemView.findViewById(R.id.image_pager);
|
||||
ImageSwiperClass swiperClass = new ImageSwiperClass(context,holder);
|
||||
// swiperClass.hideDelete();
|
||||
listItemView.findViewById(R.id.delete).setVisibility(View.GONE);
|
||||
// holder.findViewById(R.id.delete).setVisibility(View.INVISIBLE);
|
||||
|
||||
dateArchivedText = listItemView.findViewById(R.id.date_archived);
|
||||
dateString(position);
|
||||
|
||||
TextView expiryText = listItemView.findViewById(R.id.exp_text);
|
||||
TextView fieldTwoText = listItemView.findViewById(R.id.archive_insurer);
|
||||
|
||||
InsuranceObject insuranceObject = (InsuranceObject) getItem(position);
|
||||
swiperClass.reinstantiateList(insuranceObject.getPhotoStrings());
|
||||
|
||||
expiryText.setText(insuranceObject.getExpiryDate());
|
||||
fieldTwoText.setText(insuranceObject.getInsurerName());
|
||||
|
||||
}else if(archiveString.equals(VEHICLE_DETAILS_FIREBASE)){
|
||||
R.layout.archive_insurance_item, parent, false
|
||||
)
|
||||
val holder: View = listItemView.findViewById(R.id.image_pager)
|
||||
val swiperClass: ImageSwiperClass = ImageSwiperClass(context, holder)
|
||||
// swiperClass.hideDelete();
|
||||
listItemView.findViewById<View>(R.id.delete).visibility = View.GONE
|
||||
// holder.findViewById(R.id.delete).setVisibility(View.INVISIBLE);
|
||||
dateArchivedText = listItemView.findViewById(R.id.date_archived)
|
||||
dateString(position)
|
||||
val expiryText: TextView = listItemView.findViewById(R.id.exp_text)
|
||||
val fieldTwoText: TextView = listItemView.findViewById(R.id.archive_insurer)
|
||||
val insuranceObject: InsuranceObject = getItem(position) as InsuranceObject
|
||||
swiperClass.reinstantiateList(insuranceObject.photoStrings)
|
||||
expiryText.text = insuranceObject.expiryDate
|
||||
fieldTwoText.text = insuranceObject.insurerName
|
||||
} else if ((archiveString == FirebaseClass.VEHICLE_DETAILS_FIREBASE)) {
|
||||
listItemView = LayoutInflater.from(context).inflate(
|
||||
R.layout.archive_vehicle_item, parent, false);
|
||||
|
||||
dateArchivedText = listItemView.findViewById(R.id.date_archived);
|
||||
dateString(position);
|
||||
|
||||
TextView numberPlate = listItemView.findViewById(R.id.number_plate);
|
||||
TextView keeperName = listItemView.findViewById(R.id.keeper_name);
|
||||
TextView keeperAddress = listItemView.findViewById(R.id.keeper_address);
|
||||
TextView carText = listItemView.findViewById(R.id.car_text_arch);
|
||||
TextView carColour = listItemView.findViewById(R.id.car_colour);
|
||||
TextView carSeized = listItemView.findViewById(R.id.seized);
|
||||
TextView startDate = listItemView.findViewById(R.id.first_date);
|
||||
|
||||
VehicleProfileObject vehicleProfileObject = (VehicleProfileObject) getItem(position);
|
||||
|
||||
numberPlate.setText(vehicleProfileObject.getReg());
|
||||
keeperName.setText(vehicleProfileObject.getKeeperName());
|
||||
keeperAddress.setText(vehicleProfileObject.getKeeperAddress() + "\n" +vehicleProfileObject.getKeeperPostCode());
|
||||
carText.setText(vehicleProfileObject.getMake() + " " + vehicleProfileObject.getModel());
|
||||
carColour.setText(vehicleProfileObject.getColour());
|
||||
|
||||
String s;
|
||||
if (vehicleProfileObject.isSeized()){
|
||||
s = "Yes";
|
||||
}else {
|
||||
s = "No";
|
||||
R.layout.archive_vehicle_item, parent, false
|
||||
)
|
||||
dateArchivedText = listItemView.findViewById(R.id.date_archived)
|
||||
dateString(position)
|
||||
val numberPlate: TextView = listItemView.findViewById(R.id.number_plate)
|
||||
val keeperName: TextView = listItemView.findViewById(R.id.keeper_name)
|
||||
val keeperAddress: TextView = listItemView.findViewById(R.id.keeper_address)
|
||||
val carText: TextView = listItemView.findViewById(R.id.car_text_arch)
|
||||
val carColour: TextView = listItemView.findViewById(R.id.car_colour)
|
||||
val carSeized: TextView = listItemView.findViewById(R.id.seized)
|
||||
val startDate: TextView = listItemView.findViewById(R.id.first_date)
|
||||
val vehicleProfileObject: VehicleProfileObject =
|
||||
getItem(position) as VehicleProfileObject
|
||||
numberPlate.text = vehicleProfileObject.reg
|
||||
keeperName.text = vehicleProfileObject.keeperName
|
||||
keeperAddress.text = vehicleProfileObject.keeperAddress + "\n" + vehicleProfileObject.keeperPostCode
|
||||
carText.text = vehicleProfileObject.make + " " + vehicleProfileObject.model
|
||||
carColour.text = vehicleProfileObject.colour
|
||||
val s: String
|
||||
if (vehicleProfileObject.isSeized) {
|
||||
s = "Yes"
|
||||
} else {
|
||||
s = "No"
|
||||
}
|
||||
carSeized.setText(s);
|
||||
|
||||
startDate.setText(vehicleProfileObject.getStartDate());
|
||||
carSeized.text = s
|
||||
startDate.text = vehicleProfileObject.startDate
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return listItemView;
|
||||
return listItemView
|
||||
}
|
||||
|
||||
private void dateString(int position){
|
||||
boolean success = true;
|
||||
private fun dateString(position: Int) {
|
||||
var success: Boolean = true
|
||||
try {
|
||||
dateArchivedText.setText(setAsDateTime(mKeys[position]));
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
success = false;
|
||||
}finally {
|
||||
if (!success){
|
||||
dateArchivedText.setText(mKeys[position].substring(0,8));
|
||||
dateArchivedText!!.text = MainActivity.setAsDateTime(mKeys.get(position))
|
||||
} catch (e: ParseException) {
|
||||
e.printStackTrace()
|
||||
success = false
|
||||
} finally {
|
||||
if (!success) {
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.provider.MediaStore
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.*
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.google.android.gms.tasks.OnCompleteListener
|
||||
import com.google.android.gms.tasks.Task
|
||||
import com.google.firebase.database.DataSnapshot
|
||||
import com.google.firebase.database.DatabaseError
|
||||
import com.google.firebase.database.DatabaseReference
|
||||
import com.google.firebase.database.ValueEventListener
|
||||
import com.squareup.picasso.Picasso
|
||||
import h_mal.appttude.com.driver.Global.*
|
||||
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;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
public class DriverLicenseFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
private ImageView imageView;
|
||||
private ProgressBar progressBar;
|
||||
|
||||
EditText licenseNo;
|
||||
EditText expiry;
|
||||
|
||||
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);
|
||||
class DriverLicenseFragment : Fragment() {
|
||||
private val TAG: String = this.javaClass.simpleName
|
||||
private var imageView: ImageView? = null
|
||||
var licenseNo: EditText? = null
|
||||
var expiry: EditText? = null
|
||||
var filePath: Uri? = null
|
||||
var picUri: Uri? = null
|
||||
var li_numberString: String? = null
|
||||
var li_exprString: String? = null
|
||||
var reference: DatabaseReference? = null
|
||||
var driversLicenseObject: DriversLicenseObject? = null
|
||||
var uploadNew: Boolean? = null
|
||||
var UID: String? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
uploadNew = false
|
||||
if (arguments != null) {
|
||||
Log.i(TAG, "onCreate: args = args exist")
|
||||
if (arguments!!.containsKey("user_id")) {
|
||||
UID = arguments!!.getString("user_id")
|
||||
} 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
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,imageView,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
private fun publishObject() {
|
||||
if ((uploadNew)!!) {
|
||||
MainActivity.archiveClass!!.archiveRecord(
|
||||
UID,
|
||||
FirebaseClass.DRIVERS_LICENSE_FIREBASE,
|
||||
driversLicenseObject
|
||||
)
|
||||
}
|
||||
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
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,147 +1,110 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
package h_mal.appttude.com.driver.Driver
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.widget.CardView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
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 kotlinx.android.synthetic.main.fragment_driver_overall.*
|
||||
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
class DriverOverallFragment : Fragment() {
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.ApprovalsObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
|
||||
public class DriverOverallFragment extends Fragment {
|
||||
|
||||
CardView driverProfile;
|
||||
CardView privateHire;
|
||||
CardView driversLicense;
|
||||
|
||||
ImageView driverApr;
|
||||
ImageView privateApr ;
|
||||
ImageView driversLiApr;
|
||||
TextView privExp;
|
||||
TextView drivLiExp;
|
||||
|
||||
DatabaseReference reference;
|
||||
|
||||
WholeDriverObject driverProfileObject;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid());
|
||||
var reference: DatabaseReference? = null
|
||||
var driver_profObject: WholeDriverObject? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
reference =
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
|
||||
MainActivity.auth!!.currentUser!!.uid
|
||||
)
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_driver_overall, container, false);
|
||||
|
||||
driverProfile = view.findViewById(R.id.driver_prof);
|
||||
privateHire = view.findViewById(R.id.private_hire);
|
||||
driversLicense = view.findViewById(R.id.drivers_license);
|
||||
|
||||
driverApr = view.findViewById(R.id.approval_dp);
|
||||
privateApr = view.findViewById(R.id.approval_ph);
|
||||
driversLiApr = view.findViewById(R.id.approval_dl);
|
||||
|
||||
privExp = view.findViewById(R.id.ph_button_exp);
|
||||
drivLiExp = view.findViewById(R.id.dl_button_exp);
|
||||
|
||||
privExp.setVisibility(View.GONE);
|
||||
drivLiExp.setVisibility(View.GONE);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
return view;
|
||||
val view: View = inflater.inflate(R.layout.fragment_driver_overall, container, false)
|
||||
ph_button_exp.visibility = View.GONE
|
||||
dl_button_exp.visibility = View.GONE
|
||||
MainActivity.viewController!!.progress(View.VISIBLE)
|
||||
reference!!.addListenerForSingleValueEvent(valueEventListener)
|
||||
return view
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
driverProfileObject = dataSnapshot.getValue(WholeDriverObject.class);
|
||||
|
||||
if (driverProfileObject.approvalsObject != null){
|
||||
ApprovalsObject approvalsObject = driverProfileObject.getApprovalsObject();
|
||||
|
||||
driverApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getDriver_details_approval()));
|
||||
privateApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getPrivate_hire_approval()));
|
||||
driversLiApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getDriver_license_approval()));
|
||||
var valueEventListener: ValueEventListener = object : ValueEventListener {
|
||||
override fun onDataChange(dataSnapshot: DataSnapshot) {
|
||||
driver_profObject = dataSnapshot.getValue(WholeDriverObject::class.java)
|
||||
if (driver_profObject!!.approvalsObject != null) {
|
||||
val approvalsObject: ApprovalsObject? = driver_profObject!!.approvalsObject
|
||||
approval_dp.setImageResource(
|
||||
MainActivity.approvalsClass!!.setImageResource(
|
||||
approvalsObject!!.driver_details_approval
|
||||
)
|
||||
)
|
||||
approval_dp!!.setImageResource(
|
||||
MainActivity.approvalsClass!!.setImageResource(
|
||||
approvalsObject.private_hire_approval
|
||||
)
|
||||
)
|
||||
approval_dl!!.setImageResource(
|
||||
MainActivity.approvalsClass!!.setImageResource(
|
||||
approvalsObject.driver_license_approval
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
if (driverProfileObject.driver_profile != null){
|
||||
if (driverProfileObject.getDriver_profile().private_hire != null){
|
||||
privExp.setVisibility(View.VISIBLE);
|
||||
privExp.setText("Expiry: " + driverProfileObject.getDriver_profile().getPrivate_hire().getPhExpiry());
|
||||
if (driver_profObject!!.driver_profile != null) {
|
||||
if (driver_profObject!!.driver_profile?.private_hire != null) {
|
||||
ph_button_exp!!.visibility = View.VISIBLE
|
||||
ph_button_exp!!.text = "Expiry: " + driver_profObject!!.driver_profile?.private_hire!!.phExpiry
|
||||
}
|
||||
if (driverProfileObject.getDriver_profile().driver_license != null){
|
||||
drivLiExp.setVisibility(View.VISIBLE);
|
||||
drivLiExp.setText("Expiry: " + driverProfileObject.getDriver_profile().getDriver_license().getLicenseExpiry());
|
||||
if (driver_profObject!!.driver_profile!!.driver_license != null) {
|
||||
dl_button_exp!!.visibility = View.VISIBLE
|
||||
dl_button_exp!!.text = "Expiry: " + driver_profObject!!.driver_profile!!.driver_license!!.licenseExpiry
|
||||
}
|
||||
}
|
||||
|
||||
driverProfile.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new DriverProfileFragment());
|
||||
driver_prof.setOnClickListener {
|
||||
ExecuteFragment.executeFragment(
|
||||
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()
|
||||
)
|
||||
}
|
||||
});
|
||||
|
||||
privateHire.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (driverProfileObject.driver_profile == null){
|
||||
executeFragment(new PrivateHireLicenseFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),driverProfileObject.getDriver_profile().getPrivate_hire()
|
||||
,new PrivateHireLicenseFragment());
|
||||
}
|
||||
|
||||
}
|
||||
drivers_license!!.setOnClickListener {
|
||||
if (driver_profObject!!.driver_profile == null) {
|
||||
ExecuteFragment.executeFragment(DriverLicenseFragment())
|
||||
} else {
|
||||
MainActivity.archiveClass!!.openDialogArchive(
|
||||
context,
|
||||
driver_profObject!!.driver_profile?.driver_license,
|
||||
DriverLicenseFragment()
|
||||
)
|
||||
}
|
||||
});
|
||||
|
||||
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);
|
||||
}
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
override fun onCancelled(databaseError: DatabaseError) {
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,310 +1,263 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
package h_mal.appttude.com.driver.Driver
|
||||
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.OnFailureListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.auth.UserProfileChangeRequest;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Global.ViewController;
|
||||
import h_mal.appttude.com.driver.Objects.DriverProfileObject;
|
||||
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
import h_mal.appttude.com.driver.Objects.UserObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.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;
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.*
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.google.android.gms.tasks.OnCompleteListener
|
||||
import com.google.android.gms.tasks.OnFailureListener
|
||||
import com.google.android.gms.tasks.Task
|
||||
import com.google.firebase.auth.UserProfileChangeRequest
|
||||
import com.google.firebase.database.DataSnapshot
|
||||
import com.google.firebase.database.DatabaseError
|
||||
import com.google.firebase.database.DatabaseReference
|
||||
import com.google.firebase.database.ValueEventListener
|
||||
import com.squareup.picasso.Picasso
|
||||
import h_mal.appttude.com.driver.Global.DateDialog
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
import h_mal.appttude.com.driver.Objects.DriverProfileObject
|
||||
import h_mal.appttude.com.driver.Objects.UserObject
|
||||
import h_mal.appttude.com.driver.R
|
||||
|
||||
|
||||
public class DriverProfileFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
ImageView driverPic;
|
||||
ProgressBar pb;
|
||||
TextView addPic;
|
||||
EditText forenames;
|
||||
EditText address;
|
||||
EditText postcode;
|
||||
EditText dob;
|
||||
EditText ni;
|
||||
EditText dateFirst;
|
||||
Button submit_driver;
|
||||
|
||||
Uri filePath;
|
||||
Uri picUri;
|
||||
|
||||
DatabaseReference driverProfileReference;
|
||||
String UID;
|
||||
DriverProfileObject driverProfileObject;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
|
||||
if (getArguments() != null){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
class DriverProfileFragment : Fragment() {
|
||||
private val TAG: String = this.javaClass.simpleName
|
||||
var driverPic: ImageView? = null
|
||||
var addPic: TextView? = null
|
||||
var forenames: EditText? = null
|
||||
var address: EditText? = null
|
||||
var postcode: EditText? = null
|
||||
var dob: EditText? = null
|
||||
var ni: EditText? = null
|
||||
var dateFirst: EditText? = null
|
||||
var submit_driver: Button? = null
|
||||
var filePath: Uri? = null
|
||||
var picUri: Uri? = null
|
||||
var driverProfileReference: DatabaseReference? = null
|
||||
var UID: String? = null
|
||||
var driverProfileObject: DriverProfileObject? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
if (arguments != null) {
|
||||
UID = arguments!!.getString("user_id")
|
||||
} else {
|
||||
UID = MainActivity.auth!!.currentUser!!.uid
|
||||
}
|
||||
|
||||
driverProfileReference = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(DRIVER_FIREBASE);
|
||||
|
||||
driverProfileReference =
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
|
||||
(UID)!!
|
||||
)
|
||||
.child(FirebaseClass.DRIVER_FIREBASE)
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_driver_profile, container, false);
|
||||
|
||||
driverPic = view.findViewById(R.id.driver_pic);
|
||||
pb = view.findViewById(R.id.pb_dp);
|
||||
addPic = view.findViewById(R.id.add_driver_pic);
|
||||
forenames = view.findViewById(R.id.names);
|
||||
address = view.findViewById(R.id.address);
|
||||
postcode = view.findViewById(R.id.postcode);
|
||||
dob = view.findViewById(R.id.dob);
|
||||
ni = view.findViewById(R.id.ni_number);
|
||||
dateFirst = view.findViewById(R.id.date_first);
|
||||
submit_driver = view.findViewById(R.id.submit_driver);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
driverProfileReference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
addPic.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
|
||||
imageSelectorDialog.setImageName("driver_pic"+getDateStamp());
|
||||
imageSelectorDialog.show();
|
||||
val view: View = inflater.inflate(R.layout.fragment_driver_profile, container, false)
|
||||
driverPic = view.findViewById(R.id.driver_pic)
|
||||
addPic = view.findViewById(R.id.add_driver_pic)
|
||||
forenames = view.findViewById(R.id.names)
|
||||
address = view.findViewById(R.id.address)
|
||||
postcode = view.findViewById(R.id.postcode)
|
||||
dob = view.findViewById(R.id.dob)
|
||||
ni = view.findViewById(R.id.ni_number)
|
||||
dateFirst = view.findViewById(R.id.date_first)
|
||||
submit_driver = view.findViewById(R.id.submit_driver)
|
||||
MainActivity.viewController!!.progress(View.VISIBLE)
|
||||
driverProfileReference!!.addListenerForSingleValueEvent(valueEventListener)
|
||||
addPic.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
val imageSelectorDialog: ImageSelectorDialog = ImageSelectorDialog((context)!!)
|
||||
imageSelectorDialog.setImageName("driver_pic" + MainActivity.Companion.dateStamp)
|
||||
imageSelectorDialog.show()
|
||||
}
|
||||
});
|
||||
|
||||
dob.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(dob);
|
||||
}
|
||||
});
|
||||
|
||||
dateFirst.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(dateFirst);
|
||||
}
|
||||
});
|
||||
|
||||
submit_driver.setOnClickListener(submitOnClickListener);
|
||||
|
||||
|
||||
return view;
|
||||
})
|
||||
dob.setOnClickListener(View.OnClickListener {
|
||||
val dateDialog: DateDialog = DateDialog((context)!!)
|
||||
dateDialog.init(dob)
|
||||
})
|
||||
dateFirst.setOnClickListener(View.OnClickListener {
|
||||
val dateDialog: DateDialog = DateDialog((context)!!)
|
||||
dateDialog.init(dateFirst)
|
||||
})
|
||||
submit_driver.setOnClickListener(submitOnClickListener)
|
||||
return view
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener(){
|
||||
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
var valueEventListener: ValueEventListener = object : ValueEventListener {
|
||||
override fun onDataChange(dataSnapshot: DataSnapshot) {
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
try {
|
||||
driverProfileObject = dataSnapshot.child(DRIVER_DETAILS_FIREBASE).getValue(DriverProfileObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (driverProfileObject != null){
|
||||
forenames.setText(driverProfileObject.getForenames());
|
||||
address.setText(driverProfileObject.getAddress());
|
||||
postcode.setText(driverProfileObject.getPostcode());
|
||||
dob.setText(driverProfileObject.getDob());
|
||||
dateFirst.setText(driverProfileObject.getDateFirst());
|
||||
ni.setText(driverProfileObject.getNi());
|
||||
driverProfileObject =
|
||||
dataSnapshot.child(FirebaseClass.DRIVER_DETAILS_FIREBASE).getValue(
|
||||
DriverProfileObject::class.java
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "onDataChange: ", e)
|
||||
} finally {
|
||||
if (driverProfileObject != null) {
|
||||
driverProfileObject?.apply {
|
||||
forenames.setText(forenames)
|
||||
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
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
override fun onCancelled(databaseError: DatabaseError) {
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
};
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
String driverForename = forenames.getText().toString().trim();
|
||||
String AddressString = address.getText().toString().trim();
|
||||
String postCodeString = postcode.getText().toString().trim();
|
||||
String dobString = dob.getText().toString().trim();
|
||||
String niString = ni.getText().toString().trim();
|
||||
String dateFirstString = dateFirst.getText().toString().trim();
|
||||
|
||||
if ( !TextUtils.isEmpty(driverForename) &&
|
||||
}
|
||||
var submitOnClickListener: View.OnClickListener = View.OnClickListener {
|
||||
val driverForename: String = forenames!!.text.toString().trim { it <= ' ' }
|
||||
val AddressString: String = address!!.text.toString().trim { it <= ' ' }
|
||||
val postCodeString: String = postcode!!.text.toString().trim { it <= ' ' }
|
||||
val dobString: String = dob!!.text.toString().trim { it <= ' ' }
|
||||
val niString: String = ni!!.text.toString().trim { it <= ' ' }
|
||||
val dateFirstString: String = dateFirst!!.text.toString().trim { it <= ' ' }
|
||||
if ((!TextUtils.isEmpty(driverForename) &&
|
||||
!TextUtils.isEmpty(AddressString) &&
|
||||
!TextUtils.isEmpty(postCodeString) &&
|
||||
!TextUtils.isEmpty(dobString) &&
|
||||
!TextUtils.isEmpty(niString) &&
|
||||
!TextUtils.isEmpty(dateFirstString)){
|
||||
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath != null){
|
||||
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
Log.i(TAG, "processFinish: ");
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
writeDriverToDb();
|
||||
|
||||
}else {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
!TextUtils.isEmpty(dateFirstString))
|
||||
) {
|
||||
if (filePath == null && picUri == null) {
|
||||
Toast.makeText(context, "No Driver image", Toast.LENGTH_SHORT).show()
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
} else {
|
||||
MainActivity.viewController!!.progress(View.VISIBLE)
|
||||
if (filePath != null) {
|
||||
FirebaseClass(context, filePath, object : FirebaseClass.Response {
|
||||
override fun processFinish(output: Uri?) {
|
||||
Log.i(TAG, "processFinish: ")
|
||||
if (output != null) {
|
||||
picUri = output
|
||||
writeDriverToDb()
|
||||
} else {
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
}).uploadImage(DRIVERS_LICENSE_FIREBASE,DRIVERS_LICENSE_FIREBASE + getDateStamp());
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
writeDriverToDb();
|
||||
}
|
||||
}
|
||||
|
||||
}else {
|
||||
if (TextUtils.isEmpty(driverForename)){
|
||||
forenames.setError("Field required");
|
||||
}
|
||||
if (TextUtils.isEmpty(AddressString)){
|
||||
address.setError("Field required");
|
||||
}
|
||||
if (TextUtils.isEmpty(postCodeString)){
|
||||
postcode.setError("Field required");
|
||||
}
|
||||
if (TextUtils.isEmpty(dobString)){
|
||||
dob.setError("Field required");
|
||||
}
|
||||
if (TextUtils.isEmpty(niString)){
|
||||
ni.setError("Field required");
|
||||
}
|
||||
if (TextUtils.isEmpty(dateFirstString)){
|
||||
dateFirst.setError("Field required");
|
||||
}
|
||||
}).uploadImage(
|
||||
FirebaseClass.DRIVERS_LICENSE_FIREBASE,
|
||||
FirebaseClass.DRIVERS_LICENSE_FIREBASE + MainActivity.Companion.dateStamp
|
||||
)
|
||||
} else {
|
||||
Log.i(TAG, "onClick: pushing with same image")
|
||||
writeDriverToDb()
|
||||
}
|
||||
}
|
||||
|
||||
} 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(){
|
||||
|
||||
String forenameText = forenames.getText().toString().trim();
|
||||
String addressText = address.getText().toString().trim();
|
||||
String postcodeText = postcode.getText().toString().trim();
|
||||
String dobText = dob.getText().toString().trim();
|
||||
String niText = ni.getText().toString().trim();
|
||||
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();
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
|
||||
super.onActivityResult(requestCode, resultCode, data)
|
||||
ImageSelectorResults().Results(
|
||||
activity, requestCode, resultCode, data,
|
||||
filePath, driverPic, object : FilepathResponse {
|
||||
override fun processFinish(output: Uri?) {
|
||||
filePath = output
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
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()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -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.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.Layout;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Global.ImageSwiperClass;
|
||||
import h_mal.appttude.com.driver.Objects.InsuranceObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.provider.MediaStore
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import android.widget.EditText
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.google.android.gms.tasks.OnCompleteListener
|
||||
import com.google.android.gms.tasks.Task
|
||||
import com.google.firebase.database.DataSnapshot
|
||||
import com.google.firebase.database.DatabaseError
|
||||
import com.google.firebase.database.DatabaseReference
|
||||
import com.google.firebase.database.ValueEventListener
|
||||
import h_mal.appttude.com.driver.Global.*
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
import h_mal.appttude.com.driver.Objects.InsuranceObject
|
||||
import h_mal.appttude.com.driver.R
|
||||
import java.util.*
|
||||
|
||||
|
||||
public class InsuranceFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
DatabaseReference reference;
|
||||
|
||||
TextView uploadIns;
|
||||
EditText insName;
|
||||
EditText insExpiry;
|
||||
View holder;
|
||||
|
||||
public Uri filePath;
|
||||
public Uri picUri;
|
||||
|
||||
public List<String> photoStrings;
|
||||
|
||||
String insNameString;
|
||||
String insExpiryString;
|
||||
|
||||
InsuranceObject insuranceObject;
|
||||
ImageSwiperClass swiperClass;
|
||||
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uploadNew = false;
|
||||
|
||||
photoStrings = new ArrayList<>();
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID).child(VEHICLE_FIREBASE).child(INSURANCE_FIREBASE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_insurance, container, false);
|
||||
|
||||
uploadIns = view.findViewById(R.id.uploadInsurance);
|
||||
insName = view.findViewById(R.id.insurer);
|
||||
insExpiry = view.findViewById(R.id.insurance_exp);
|
||||
Button submit = view.findViewById(R.id.submit_ins);
|
||||
|
||||
holder = view.findViewById(R.id.image_pager);
|
||||
swiperClass = new ImageSwiperClass(getContext(),holder);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
uploadIns.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
|
||||
imageSelectorDialog.setImageName("insurance"+getDateStamp());
|
||||
imageSelectorDialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
insExpiry.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(insExpiry);
|
||||
}
|
||||
});
|
||||
|
||||
submit.setOnClickListener(submitOnClickListener);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
try{
|
||||
insuranceObject = dataSnapshot.getValue(InsuranceObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (insuranceObject != null){
|
||||
if (!uploadNew){
|
||||
photoStrings = insuranceObject.getPhotoStrings();
|
||||
swiperClass.reinstantiateList(photoStrings);
|
||||
if (insuranceObject.insurerName != null){
|
||||
insNameString = insuranceObject.getInsurerName();
|
||||
insName.setText(insNameString);
|
||||
}
|
||||
if (insuranceObject.expiryDate != null){
|
||||
insExpiryString = insuranceObject.getExpiryDate();
|
||||
insExpiry.setText(insExpiryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
insNameString = insName.getText().toString().trim();
|
||||
insExpiryString = insExpiry.getText().toString().trim();
|
||||
|
||||
if (!TextUtils.isEmpty(insNameString)
|
||||
&& !TextUtils.isEmpty(insExpiryString)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
Log.i(TAG, "processFinish: ");
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
publishObject();
|
||||
}else {
|
||||
Toast.makeText(getContext(), "Could not upload", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
}).uploadImage(INSURANCE_FIREBASE,INSURANCE_FIREBASE + getDateStamp());
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if (TextUtils.isEmpty(insNameString)){
|
||||
insName.setError("Field required");
|
||||
}
|
||||
if (TextUtils.isEmpty(insExpiryString)){
|
||||
insExpiry.setError("Field required");
|
||||
}
|
||||
if (picUri == null){
|
||||
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,INSURANCE_FIREBASE,insuranceObject);
|
||||
}
|
||||
|
||||
photoStrings = swiperClass.getImageStrings();
|
||||
|
||||
InsuranceObject insuranceObject = new InsuranceObject(photoStrings, insNameString, insExpiryString);
|
||||
|
||||
reference.setValue(insuranceObject).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
approvalsClass.setStatusCode(UID,INSURANCE_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else{
|
||||
Toast.makeText(getContext(), "Upload Unsuccessful", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
|
||||
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
|
||||
Intent cameraIntent = new
|
||||
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
startActivityForResult(cameraIntent, CAMERA_REQUEST);
|
||||
class InsuranceFragment : Fragment() {
|
||||
private val TAG: String = this.javaClass.simpleName
|
||||
var reference: DatabaseReference? = null
|
||||
var uploadIns: TextView? = null
|
||||
var insName: EditText? = null
|
||||
var insExpiry: EditText? = null
|
||||
var holder: View? = null
|
||||
var filePath: Uri? = null
|
||||
var picUri: Uri? = null
|
||||
var photoStrings: MutableList<String?>? = null
|
||||
var insNameString: String? = null
|
||||
var insExpiryString: String? = null
|
||||
var insuranceObject: InsuranceObject? = null
|
||||
var swiperClass: ImageSwiperClass? = null
|
||||
var uploadNew: Boolean? = null
|
||||
var UID: String? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
uploadNew = false
|
||||
photoStrings = ArrayList()
|
||||
if (arguments != null) {
|
||||
Log.i(TAG, "onCreate: args = args exist")
|
||||
if (arguments!!.containsKey("user_id")) {
|
||||
UID = arguments!!.getString("user_id")
|
||||
} 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
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
new FirebaseClass(getContext(), output, new FirebaseClass.Response() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
if (output != null){
|
||||
photoStrings.add(output.toString());
|
||||
swiperClass.addPhotoString(output.toString());
|
||||
//notify data change
|
||||
reference.setValue(new InsuranceObject(photoStrings,null,null));
|
||||
}
|
||||
}
|
||||
}).uploadImage(INSURANCE_FIREBASE,INSURANCE_FIREBASE + getDateStamp());
|
||||
private fun publishObject() {
|
||||
if ((uploadNew)!!) {
|
||||
MainActivity.archiveClass!!.archiveRecord(
|
||||
UID,
|
||||
FirebaseClass.INSURANCE_FIREBASE,
|
||||
insuranceObject
|
||||
)
|
||||
}
|
||||
photoStrings = swiperClass.getImageStrings()
|
||||
val insuranceObject: InsuranceObject =
|
||||
InsuranceObject(photoStrings, insNameString, insExpiryString)
|
||||
reference!!.setValue(insuranceObject)
|
||||
.addOnCompleteListener(object : OnCompleteListener<Void?> {
|
||||
override fun onComplete(task: Task<Void?>) {
|
||||
if (task.isSuccessful) {
|
||||
MainActivity.approvalsClass!!.setStatusCode(
|
||||
UID,
|
||||
FirebaseClass.INSURANCE_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)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
printObjectAsJson(TAG,photoStrings);
|
||||
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, 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)
|
||||
}
|
||||
}
|
||||
@@ -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.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Objects.MotObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.provider.MediaStore
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.*
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.google.android.gms.tasks.OnCompleteListener
|
||||
import com.google.android.gms.tasks.Task
|
||||
import com.google.firebase.database.DataSnapshot
|
||||
import com.google.firebase.database.DatabaseError
|
||||
import com.google.firebase.database.DatabaseReference
|
||||
import com.google.firebase.database.ValueEventListener
|
||||
import com.squareup.picasso.Picasso
|
||||
import h_mal.appttude.com.driver.Global.*
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
import h_mal.appttude.com.driver.Objects.MotObject
|
||||
import h_mal.appttude.com.driver.R
|
||||
|
||||
|
||||
public class MotFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
DatabaseReference reference;
|
||||
|
||||
TextView uploadMot;
|
||||
ImageView motImage;
|
||||
ProgressBar progressBar;
|
||||
EditText motExpiryEditText;
|
||||
|
||||
public Uri filePath;
|
||||
public Uri picUri;
|
||||
|
||||
MotObject motObject;
|
||||
String motExpText;
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uploadNew = false;
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(VEHICLE_FIREBASE).child(MOT_FIREBASE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_mot, container, false);
|
||||
|
||||
motImage = view.findViewById(R.id.mot_img);
|
||||
progressBar = view.findViewById(R.id.pb_mot);
|
||||
uploadMot = view.findViewById(R.id.uploadmot);
|
||||
motExpiryEditText = view.findViewById(R.id.mot_expiry);
|
||||
Button submit = view.findViewById(R.id.submit_mot);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
uploadMot.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
|
||||
imageSelectorDialog.setImageName("mot_certificate");
|
||||
imageSelectorDialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
motExpiryEditText.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(motExpiryEditText);
|
||||
}
|
||||
});
|
||||
|
||||
submit.setOnClickListener(submitOnClickListener);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
try{
|
||||
motObject = dataSnapshot.getValue(MotObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (motObject != null){
|
||||
if (!uploadNew){
|
||||
picUri = Uri.parse(motObject.getMotImageString());
|
||||
motExpText = motObject.getMotExpiry();
|
||||
|
||||
motExpiryEditText.setText(motExpText);
|
||||
Picasso.get()
|
||||
.load(picUri)
|
||||
.into(loadImage(progressBar,motImage));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
motExpText = motExpiryEditText.getText().toString().trim();
|
||||
|
||||
if (!TextUtils.isEmpty(motExpText)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
Log.i(TAG, "processFinish: ");
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
publishObject();
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
}
|
||||
}).uploadImage(MOT_FIREBASE,MOT_FIREBASE + getDateStamp());
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if (TextUtils.isEmpty(motExpText)){
|
||||
motExpiryEditText.setError("Field required");
|
||||
}
|
||||
if (picUri == null){
|
||||
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,MOT_FIREBASE,motObject);
|
||||
}
|
||||
MotObject motObject = new MotObject(picUri.toString(), motExpText);
|
||||
|
||||
reference.setValue(motObject).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
|
||||
approvalsClass.setStatusCode(UID,MOT_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else {
|
||||
Toast.makeText(getContext(), "Unable to upload", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
|
||||
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
|
||||
Intent cameraIntent = new
|
||||
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
startActivityForResult(cameraIntent, CAMERA_REQUEST);
|
||||
class MotFragment : Fragment() {
|
||||
private val TAG: String = this.javaClass.simpleName
|
||||
var reference: DatabaseReference? = null
|
||||
var uploadMot: TextView? = null
|
||||
var motImage: ImageView? = null
|
||||
var motExpiryEditText: EditText? = null
|
||||
var filePath: Uri? = null
|
||||
var picUri: Uri? = null
|
||||
var motObject: MotObject? = null
|
||||
var motExpText: String? = null
|
||||
var uploadNew: Boolean? = null
|
||||
var UID: String? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
uploadNew = false
|
||||
if (arguments != null) {
|
||||
Log.i(TAG, "onCreate: args = args exist")
|
||||
if (arguments!!.containsKey("user_id")) {
|
||||
UID = arguments!!.getString("user_id")
|
||||
} 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
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,motImage,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
}
|
||||
});
|
||||
|
||||
private fun publishObject() {
|
||||
if ((uploadNew)!!) {
|
||||
MainActivity.archiveClass!!.archiveRecord(
|
||||
UID,
|
||||
FirebaseClass.MOT_FIREBASE,
|
||||
motObject
|
||||
)
|
||||
}
|
||||
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
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -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.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.provider.MediaStore
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.*
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.google.android.gms.tasks.OnCompleteListener
|
||||
import com.google.android.gms.tasks.Task
|
||||
import com.google.firebase.database.DataSnapshot
|
||||
import com.google.firebase.database.DatabaseError
|
||||
import com.google.firebase.database.DatabaseReference
|
||||
import com.google.firebase.database.ValueEventListener
|
||||
import com.squareup.picasso.Picasso
|
||||
import h_mal.appttude.com.driver.Global.*
|
||||
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;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.*;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
public class PrivateHireLicenseFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
private ImageView imageView;
|
||||
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();
|
||||
class PrivateHireLicenseFragment : Fragment() {
|
||||
private val TAG: String = this.javaClass.simpleName
|
||||
private var imageView: ImageView? = null
|
||||
var phNo: EditText? = null
|
||||
var phExpiry: EditText? = null
|
||||
var filePath: Uri? = null
|
||||
var picUri: Uri? = null
|
||||
var Ph_numberString: String? = null
|
||||
var Ph_exprString: String? = null
|
||||
var reference: DatabaseReference? = null
|
||||
var privateHireObject: PrivateHireObject? = null
|
||||
var uploadNew: Boolean? = null
|
||||
var UID: String? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
uploadNew = false
|
||||
if (arguments != null) {
|
||||
Log.i(TAG, "onCreate: args = args exist")
|
||||
if (arguments!!.containsKey("user_id")) {
|
||||
UID = arguments!!.getString("user_id")
|
||||
} else {
|
||||
UID = MainActivity.auth!!.currentUser!!.uid
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
if (arguments!!.containsKey(ExecuteFragment.UPLOAD_NEW)) {
|
||||
uploadNew = true
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
} else {
|
||||
UID = MainActivity.auth!!.currentUser!!.uid
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(DRIVER_FIREBASE).child(PRIVATE_HIRE_FIREBASE);
|
||||
reference =
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
|
||||
(UID)!!
|
||||
)
|
||||
.child(FirebaseClass.DRIVER_FIREBASE)
|
||||
.child(FirebaseClass.PRIVATE_HIRE_FIREBASE)
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_private_hire_license, container, false);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
try{
|
||||
privateHireObject = dataSnapshot.getValue(PrivateHireObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (privateHireObject != null){
|
||||
picUri = Uri.parse(privateHireObject.getPhImageString());
|
||||
Ph_numberString = privateHireObject.getPhNumber();
|
||||
Ph_exprString = privateHireObject.getPhExpiry();
|
||||
|
||||
Log.i(TAG, "onDataChange: uploadNew = " + uploadNew);
|
||||
if (!uploadNew){
|
||||
phNo.setText(Ph_numberString);
|
||||
phExpiry.setText(Ph_exprString);
|
||||
val view: View = inflater.inflate(R.layout.fragment_private_hire_license, container, false)
|
||||
MainActivity.viewController!!.progress(View.VISIBLE)
|
||||
reference!!.addListenerForSingleValueEvent(object : ValueEventListener {
|
||||
override fun onDataChange(dataSnapshot: DataSnapshot) {
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
try {
|
||||
privateHireObject = dataSnapshot.getValue(PrivateHireObject::class.java)
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "onDataChange: ", e)
|
||||
} finally {
|
||||
if (privateHireObject != null) {
|
||||
picUri = Uri.parse(privateHireObject.getPhImageString())
|
||||
Ph_numberString = privateHireObject.getPhNumber()
|
||||
Ph_exprString = privateHireObject.phExpiry
|
||||
Log.i(TAG, "onDataChange: uploadNew = " + uploadNew)
|
||||
if (!uploadNew!!) {
|
||||
phNo!!.setText(Ph_numberString)
|
||||
phExpiry!!.setText(Ph_exprString)
|
||||
Picasso.get()
|
||||
.load(picUri)
|
||||
.into(loadImage(pb,imageView));
|
||||
.load(picUri)
|
||||
.into(MainActivity.loadImage(imageView))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
override fun onCancelled(databaseError: DatabaseError) {
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
});
|
||||
|
||||
TextView uploadPH = view.findViewById(R.id.uploadphlic);
|
||||
imageView = view.findViewById(R.id.imageView2);
|
||||
pb = view.findViewById(R.id.pb_priv);
|
||||
|
||||
phNo = view.findViewById(R.id.ph_no);
|
||||
phExpiry = view.findViewById(R.id.ph_expiry);
|
||||
|
||||
phExpiry.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(phExpiry);
|
||||
dateDialog.show();
|
||||
})
|
||||
val uploadPH: TextView = view.findViewById(R.id.uploadphlic)
|
||||
imageView = view.findViewById(R.id.imageView2)
|
||||
phNo = view.findViewById(R.id.ph_no)
|
||||
phExpiry = view.findViewById(R.id.ph_expiry)
|
||||
phExpiry.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
val dateDialog: DateDialog = DateDialog((context)!!)
|
||||
dateDialog.init(phExpiry)
|
||||
dateDialog.show()
|
||||
}
|
||||
});
|
||||
|
||||
Button submit = view.findViewById(R.id.submit);
|
||||
|
||||
uploadPH.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
|
||||
imageSelectorDialog.setImageName("private_hire");
|
||||
imageSelectorDialog.show();
|
||||
|
||||
})
|
||||
val submit: Button = view.findViewById(R.id.submit)
|
||||
uploadPH.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
val imageSelectorDialog: ImageSelectorDialog = ImageSelectorDialog((context)!!)
|
||||
imageSelectorDialog.setImageName("private_hire")
|
||||
imageSelectorDialog.show()
|
||||
}
|
||||
});
|
||||
|
||||
submit.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Ph_numberString = phNo.getText().toString().trim();
|
||||
Ph_exprString = phExpiry.getText().toString().trim();
|
||||
})
|
||||
submit.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
Ph_numberString = phNo.getText().toString().trim({ it <= ' ' })
|
||||
Ph_exprString = phExpiry.getText().toString().trim({ it <= ' ' })
|
||||
|
||||
//validation for data then submit
|
||||
|
||||
if (!TextUtils.isEmpty(Ph_numberString) &&
|
||||
!TextUtils.isEmpty(Ph_exprString)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new 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);
|
||||
!TextUtils.isEmpty(Ph_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,
|
||||
R.string.unsuccessful,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
|
||||
}
|
||||
}).uploadImage(PRIVATE_HIRE_FIREBASE,PRIVATE_HIRE_FIREBASE + getDateStamp());
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
}).uploadImage(
|
||||
FirebaseClass.PRIVATE_HIRE_FIREBASE,
|
||||
FirebaseClass.PRIVATE_HIRE_FIREBASE + MainActivity.Companion.dateStamp
|
||||
)
|
||||
} else {
|
||||
Log.i(TAG, "onClick: pushing with same image")
|
||||
publishObject()
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if (TextUtils.isEmpty(Ph_numberString)){
|
||||
phNo.setError("Field required");
|
||||
} else {
|
||||
if (TextUtils.isEmpty(Ph_numberString)) {
|
||||
phNo.setError("Field required")
|
||||
}
|
||||
if (TextUtils.isEmpty(Ph_exprString)){
|
||||
phExpiry.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();
|
||||
if (picUri == null) {
|
||||
Toast.makeText(
|
||||
context,
|
||||
getString(R.string.image_required),
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
})
|
||||
return view
|
||||
}
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,PRIVATE_HIRE_FIREBASE,privateHireObject);
|
||||
private fun publishObject() {
|
||||
if ((uploadNew)!!) {
|
||||
MainActivity.archiveClass!!.archiveRecord(
|
||||
UID,
|
||||
FirebaseClass.PRIVATE_HIRE_FIREBASE,
|
||||
privateHireObject
|
||||
)
|
||||
}
|
||||
|
||||
PrivateHireObject privateHireObjectNew = new PrivateHireObject(picUri.toString(),Ph_numberString,Ph_exprString);
|
||||
|
||||
mDatabase.child(USER_FIREBASE).child(UID).child(DRIVER_FIREBASE).child(PRIVATE_HIRE_FIREBASE)
|
||||
.setValue(privateHireObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
|
||||
approvalsClass.setStatusCode(UID,PRIVATE_HIRE_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
val privateHireObjectNew: PrivateHireObject =
|
||||
PrivateHireObject(picUri.toString(), Ph_numberString, Ph_exprString)
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE)
|
||||
.child((UID)!!).child(FirebaseClass.DRIVER_FIREBASE)
|
||||
.child(FirebaseClass.PRIVATE_HIRE_FIREBASE)
|
||||
.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_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
|
||||
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);
|
||||
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(getContext(), "camera permission denied", Toast.LENGTH_LONG).show();
|
||||
Toast.makeText(context, "camera permission denied", Toast.LENGTH_LONG).show()
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,imageView,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
}
|
||||
});
|
||||
|
||||
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
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireVehicleObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.provider.MediaStore
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.*
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.google.android.gms.tasks.OnCompleteListener
|
||||
import com.google.android.gms.tasks.Task
|
||||
import com.google.firebase.database.DataSnapshot
|
||||
import com.google.firebase.database.DatabaseError
|
||||
import com.google.firebase.database.DatabaseReference
|
||||
import com.google.firebase.database.ValueEventListener
|
||||
import com.squareup.picasso.Picasso
|
||||
import h_mal.appttude.com.driver.Global.*
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults.FilepathResponse
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireVehicleObject
|
||||
import h_mal.appttude.com.driver.R
|
||||
|
||||
|
||||
public class PrivateHireVehicleFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
private ImageView imageView;
|
||||
ProgressBar pb;
|
||||
|
||||
EditText phNo;
|
||||
EditText phExpiry;
|
||||
|
||||
public Uri filePath;
|
||||
|
||||
public Uri picUri;
|
||||
String Ph_numberString;
|
||||
String Ph_exprString;
|
||||
|
||||
DatabaseReference reference;
|
||||
|
||||
PrivateHireVehicleObject privateHireObject;
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
uploadNew = false;
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
class PrivateHireVehicleFragment : Fragment() {
|
||||
private val TAG: String = this.javaClass.simpleName
|
||||
private var imageView: ImageView? = null
|
||||
var phNo: EditText? = null
|
||||
var phExpiry: EditText? = null
|
||||
var filePath: Uri? = null
|
||||
var picUri: Uri? = null
|
||||
var Ph_numberString: String? = null
|
||||
var Ph_exprString: String? = null
|
||||
var reference: DatabaseReference? = null
|
||||
var privateHireObject: PrivateHireVehicleObject? = null
|
||||
var uploadNew: Boolean? = null
|
||||
var UID: String? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
uploadNew = false
|
||||
if (arguments != null) {
|
||||
Log.i(TAG, "onCreate: args = args exist")
|
||||
if (arguments!!.containsKey("user_id")) {
|
||||
UID = arguments!!.getString("user_id")
|
||||
} else {
|
||||
UID = MainActivity.auth!!.currentUser!!.uid
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
if (arguments!!.containsKey(ExecuteFragment.UPLOAD_NEW)) {
|
||||
uploadNew = true
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
} else {
|
||||
UID = MainActivity.auth!!.currentUser!!.uid
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(VEHICLE_FIREBASE).child(PRIVATE_HIRE_VEHICLE_LICENSE);
|
||||
|
||||
reference =
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
|
||||
(UID)!!
|
||||
)
|
||||
.child(FirebaseClass.VEHICLE_FIREBASE)
|
||||
.child(FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE)
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_private_hire_vehicle, container, false);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
TextView uploadPH = view.findViewById(R.id.uploadphlic);
|
||||
imageView = view.findViewById(R.id.imageView2);
|
||||
pb = view.findViewById(R.id.pb_priv);
|
||||
|
||||
phNo = view.findViewById(R.id.ph_no);
|
||||
phExpiry = view.findViewById(R.id.ph_expiry);
|
||||
|
||||
phExpiry.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(phExpiry);
|
||||
dateDialog.show();
|
||||
val view: View = inflater.inflate(R.layout.fragment_private_hire_vehicle, container, false)
|
||||
MainActivity.viewController!!.progress(View.VISIBLE)
|
||||
reference!!.addListenerForSingleValueEvent(valueEventListener)
|
||||
val uploadPH: TextView = view.findViewById(R.id.uploadphlic)
|
||||
imageView = view.findViewById(R.id.imageView2)
|
||||
phNo = view.findViewById(R.id.ph_no)
|
||||
phExpiry = view.findViewById(R.id.ph_expiry)
|
||||
phExpiry.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
val dateDialog: DateDialog = DateDialog((context)!!)
|
||||
dateDialog.init(phExpiry)
|
||||
dateDialog.show()
|
||||
}
|
||||
});
|
||||
|
||||
Button submit = view.findViewById(R.id.submit);
|
||||
submit.setOnClickListener(submitClick);
|
||||
|
||||
uploadPH.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
|
||||
imageSelectorDialog.setImageName("private_hire");
|
||||
imageSelectorDialog.show();
|
||||
})
|
||||
val submit: Button = view.findViewById(R.id.submit)
|
||||
submit.setOnClickListener(submitClick)
|
||||
uploadPH.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
val imageSelectorDialog: ImageSelectorDialog = ImageSelectorDialog((context)!!)
|
||||
imageSelectorDialog.setImageName("private_hire")
|
||||
imageSelectorDialog.show()
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
return view;
|
||||
})
|
||||
return view
|
||||
}
|
||||
|
||||
private View.OnClickListener submitClick = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Ph_numberString = phNo.getText().toString().trim();
|
||||
Ph_exprString = phExpiry.getText().toString().trim();
|
||||
private val submitClick: View.OnClickListener = object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
Ph_numberString = phNo!!.text.toString().trim({ it <= ' ' })
|
||||
Ph_exprString = phExpiry!!.text.toString().trim({ it <= ' ' })
|
||||
|
||||
//validation for data then submit
|
||||
|
||||
if (!TextUtils.isEmpty(Ph_numberString) &&
|
||||
!TextUtils.isEmpty(Ph_exprString)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
Log.i(TAG, "processFinish: ");
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
publishObject();
|
||||
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
!TextUtils.isEmpty(Ph_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,
|
||||
R.string.unsuccessful,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
|
||||
}
|
||||
}).uploadImage(PRIVATE_HIRE_FIREBASE,PRIVATE_HIRE_FIREBASE + getDateStamp());
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
}).uploadImage(
|
||||
FirebaseClass.PRIVATE_HIRE_FIREBASE,
|
||||
FirebaseClass.PRIVATE_HIRE_FIREBASE + MainActivity.Companion.dateStamp
|
||||
)
|
||||
} else {
|
||||
Log.i(TAG, "onClick: pushing with same image")
|
||||
publishObject()
|
||||
}
|
||||
}
|
||||
}else {
|
||||
if (TextUtils.isEmpty(Ph_numberString)){
|
||||
phNo.setError("Field required");
|
||||
}
|
||||
if (TextUtils.isEmpty(Ph_exprString)){
|
||||
phExpiry.setError("Field required");
|
||||
}
|
||||
if (picUri == null){
|
||||
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
try{
|
||||
privateHireObject = dataSnapshot.getValue(PrivateHireVehicleObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (privateHireObject != null){
|
||||
picUri = Uri.parse(privateHireObject.getPhCarImageString());
|
||||
Ph_numberString = privateHireObject.getPhCarNumber();
|
||||
Ph_exprString = privateHireObject.getPhCarExpiry();
|
||||
|
||||
Log.i(TAG, "onDataChange: uploadNew = " + uploadNew);
|
||||
if (!uploadNew){
|
||||
phNo.setText(Ph_numberString);
|
||||
phExpiry.setText(Ph_exprString);
|
||||
Picasso.get()
|
||||
.load(picUri)
|
||||
.into(loadImage(pb,imageView));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,PRIVATE_HIRE_VEHICLE_LICENSE,privateHireObject);
|
||||
}
|
||||
|
||||
PrivateHireVehicleObject privateHireObjectNew = new PrivateHireVehicleObject(picUri.toString(),Ph_numberString,Ph_exprString);
|
||||
|
||||
reference.setValue(privateHireObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Log.i(TAG, "onComplete: publish = " + task.isSuccessful());
|
||||
approvalsClass.setStatusCode(UID,PRIVATE_HIRE_VEHICLE_LICENSE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.GONE);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
|
||||
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
|
||||
Intent cameraIntent = new
|
||||
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
startActivityForResult(cameraIntent, CAMERA_REQUEST);
|
||||
} else {
|
||||
Toast.makeText(getContext(), "camera permission denied", Toast.LENGTH_LONG).show();
|
||||
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
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults().Results(getActivity(), requestCode, resultCode, data,
|
||||
filePath, imageView, new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
private fun publishObject() {
|
||||
if ((uploadNew)!!) {
|
||||
MainActivity.archiveClass!!.archiveRecord(
|
||||
UID,
|
||||
FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE,
|
||||
privateHireObject
|
||||
)
|
||||
}
|
||||
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
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,188 +1,194 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
package h_mal.appttude.com.driver.Driver
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.widget.CardView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.cardview.widget.CardView
|
||||
import androidx.fragment.app.Fragment
|
||||
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;
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
public class VehicleOverallFragment extends Fragment {
|
||||
|
||||
ImageView vehicleApr;
|
||||
ImageView insuranceApr;
|
||||
ImageView motApr;
|
||||
ImageView logbookApr;
|
||||
private ImageView privateHireCarApr;
|
||||
TextView insuranceExp;
|
||||
TextView motExp;
|
||||
private TextView privateHireExp;
|
||||
private CardView vehicleProfile;
|
||||
private CardView insurance;
|
||||
private CardView mot;
|
||||
private CardView logbook;
|
||||
private CardView privateHireCar;
|
||||
|
||||
private DatabaseReference reference;
|
||||
private WholeDriverObject wholeDriverObject;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid());
|
||||
class VehicleOverallFragment : Fragment() {
|
||||
var vehicleApr: ImageView? = null
|
||||
var insuranceApr: ImageView? = null
|
||||
var motApr: ImageView? = null
|
||||
var logbookApr: ImageView? = null
|
||||
private var privateHireCarApr: ImageView? = null
|
||||
var insuranceExp: TextView? = null
|
||||
var motExp: TextView? = null
|
||||
private var privateHireExp: TextView? = null
|
||||
private var vehicleProfile: CardView? = null
|
||||
private var insurance: CardView? = null
|
||||
private var mot: CardView? = null
|
||||
private var logbook: CardView? = null
|
||||
private var privateHireCar: CardView? = null
|
||||
private var reference: DatabaseReference? = null
|
||||
private var wholeDriverObject: WholeDriverObject? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
reference =
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
|
||||
MainActivity.auth!!.currentUser!!.uid
|
||||
)
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_vehicle_overall, container, false);
|
||||
|
||||
vehicleProfile = view.findViewById(R.id.vehicle_prof);
|
||||
insurance = view.findViewById(R.id.insurance);
|
||||
mot = view.findViewById(R.id.mot);
|
||||
logbook = view.findViewById(R.id.logbook);
|
||||
privateHireCar = view.findViewById(R.id.private_hire_vehicle_license);
|
||||
|
||||
vehicleApr = view.findViewById(R.id.approval_vehicle);
|
||||
insuranceApr = view.findViewById(R.id.approval_insurance);
|
||||
motApr = view.findViewById(R.id.approval_mot);
|
||||
logbookApr = view.findViewById(R.id.approval_lb);
|
||||
privateHireCarApr = view.findViewById(R.id.approval_ph_car);
|
||||
|
||||
insuranceExp = view.findViewById(R.id.ins_exp);
|
||||
motExp = view.findViewById(R.id.mot_exp);
|
||||
privateHireExp = view.findViewById(R.id.ph_car_exp);
|
||||
|
||||
insuranceExp.setVisibility(View.GONE);
|
||||
motExp.setVisibility(View.GONE);
|
||||
privateHireExp.setVisibility(View.GONE);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
return view;
|
||||
val view: View = inflater.inflate(R.layout.fragment_vehicle_overall, container, false)
|
||||
vehicleProfile = view.findViewById(R.id.vehicle_prof)
|
||||
insurance = view.findViewById(R.id.insurance)
|
||||
mot = view.findViewById(R.id.mot)
|
||||
logbook = view.findViewById(R.id.logbook)
|
||||
privateHireCar = view.findViewById(R.id.private_hire_vehicle_license)
|
||||
vehicleApr = view.findViewById(R.id.approval_vehicle)
|
||||
insuranceApr = view.findViewById(R.id.approval_insurance)
|
||||
motApr = view.findViewById(R.id.approval_mot)
|
||||
logbookApr = view.findViewById(R.id.approval_lb)
|
||||
privateHireCarApr = view.findViewById(R.id.approval_ph_car)
|
||||
insuranceExp = view.findViewById(R.id.ins_exp)
|
||||
motExp = view.findViewById(R.id.mot_exp)
|
||||
privateHireExp = view.findViewById(R.id.ph_car_exp)
|
||||
insuranceExp.setVisibility(View.GONE)
|
||||
motExp.setVisibility(View.GONE)
|
||||
privateHireExp.setVisibility(View.GONE)
|
||||
MainActivity.viewController!!.progress(View.VISIBLE)
|
||||
reference!!.addListenerForSingleValueEvent(valueEventListener)
|
||||
return view
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
wholeDriverObject = dataSnapshot.getValue(WholeDriverObject.class);
|
||||
|
||||
if (wholeDriverObject.approvalsObject != null) {
|
||||
ApprovalsObject approvalsObject = wholeDriverObject.getApprovalsObject();
|
||||
|
||||
vehicleApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getVehicle_details_approval()));
|
||||
insuranceApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getInsurance_details_approval()));
|
||||
motApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getMot_details_approval()));
|
||||
logbookApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getLog_book_approval()));
|
||||
privateHireCarApr.setImageResource(approvalsClass.setImageResource(approvalsObject.getPh_car_approval()));
|
||||
var valueEventListener: ValueEventListener = object : ValueEventListener {
|
||||
override fun onDataChange(dataSnapshot: DataSnapshot) {
|
||||
wholeDriverObject = dataSnapshot.getValue(WholeDriverObject::class.java)
|
||||
if (wholeDriverObject!!.approvalsObject != null) {
|
||||
val approvalsObject: ApprovalsObject? = wholeDriverObject.approvalsObject
|
||||
vehicleApr!!.setImageResource(
|
||||
MainActivity.approvalsClass!!.setImageResource(
|
||||
approvalsObject.vehicle_details_approval
|
||||
)
|
||||
)
|
||||
insuranceApr!!.setImageResource(
|
||||
MainActivity.approvalsClass!!.setImageResource(
|
||||
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.getVehicle_profile().insurance_details != null){
|
||||
insuranceExp.setVisibility(View.VISIBLE);
|
||||
insuranceExp.setText("Expiry: " + wholeDriverObject.getVehicle_profile().getInsurance_details().getExpiryDate());
|
||||
if (wholeDriverObject!!.vehicle_profile != null) {
|
||||
if (wholeDriverObject.getVehicle_profile().insurance_details != null) {
|
||||
insuranceExp!!.visibility = View.VISIBLE
|
||||
insuranceExp!!.text = "Expiry: " + wholeDriverObject.getVehicle_profile().getInsurance_details()
|
||||
.getExpiryDate()
|
||||
}
|
||||
if (wholeDriverObject.getVehicle_profile().mot_details != null){
|
||||
motExp.setVisibility(View.VISIBLE);
|
||||
motExp.setText("Expiry: " + wholeDriverObject.getVehicle_profile().getMot_details().getMotExpiry());
|
||||
if (wholeDriverObject.getVehicle_profile().mot_details != null) {
|
||||
motExp!!.visibility = View.VISIBLE
|
||||
motExp!!.text = "Expiry: " + wholeDriverObject.getVehicle_profile().getMot_details()
|
||||
.getMotExpiry()
|
||||
}
|
||||
if (wholeDriverObject.getVehicle_profile().private_hire_vehicle != null){
|
||||
privateHireExp.setVisibility(View.VISIBLE);
|
||||
privateHireExp.setText("Expiry: " + wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject().getPhCarExpiry());
|
||||
if (wholeDriverObject.getVehicle_profile().private_hire_vehicle != null) {
|
||||
privateHireExp!!.visibility = View.VISIBLE
|
||||
privateHireExp!!.text = "Expiry: " + wholeDriverObject.getVehicle_profile()
|
||||
.getPrivateHireVehicleObject().getPhCarExpiry()
|
||||
}
|
||||
}
|
||||
|
||||
vehicleProfile.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wholeDriverObject.vehicle_profile == null){
|
||||
executeFragment(new VehicleSetupFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getVehicle_details()
|
||||
,new VehicleSetupFragment());
|
||||
vehicleProfile!!.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
if (wholeDriverObject!!.vehicle_profile == null) {
|
||||
ExecuteFragment.executeFragment(VehicleSetupFragment())
|
||||
} else {
|
||||
MainActivity.archiveClass!!.openDialogArchive(
|
||||
context,
|
||||
wholeDriverObject.getVehicle_profile().getVehicle_details(),
|
||||
VehicleSetupFragment()
|
||||
)
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
insurance.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wholeDriverObject.vehicle_profile == null){
|
||||
executeFragment(new InsuranceFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getInsurance_details()
|
||||
,new InsuranceFragment());
|
||||
})
|
||||
insurance!!.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
if (wholeDriverObject!!.vehicle_profile == null) {
|
||||
ExecuteFragment.executeFragment(InsuranceFragment())
|
||||
} else {
|
||||
MainActivity.archiveClass!!.openDialogArchive(
|
||||
context,
|
||||
wholeDriverObject.getVehicle_profile().getInsurance_details(),
|
||||
InsuranceFragment()
|
||||
)
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
mot.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wholeDriverObject.vehicle_profile == null){
|
||||
executeFragment(new MotFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getMot_details()
|
||||
,new MotFragment());
|
||||
})
|
||||
mot!!.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
if (wholeDriverObject!!.vehicle_profile == null) {
|
||||
ExecuteFragment.executeFragment(MotFragment())
|
||||
} else {
|
||||
MainActivity.archiveClass!!.openDialogArchive(
|
||||
context,
|
||||
wholeDriverObject.getVehicle_profile().getMot_details(),
|
||||
MotFragment()
|
||||
)
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
logbook.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wholeDriverObject.vehicle_profile == null){
|
||||
executeFragment(new logbookFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getLog_book()
|
||||
,new logbookFragment());
|
||||
})
|
||||
logbook!!.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
if (wholeDriverObject!!.vehicle_profile == null) {
|
||||
ExecuteFragment.executeFragment(logbookFragment())
|
||||
} else {
|
||||
MainActivity.archiveClass!!.openDialogArchive(
|
||||
context,
|
||||
wholeDriverObject.getVehicle_profile().getLog_book(),
|
||||
logbookFragment()
|
||||
)
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
privateHireCar.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wholeDriverObject.vehicle_profile == null){
|
||||
executeFragment(new PrivateHireVehicleFragment());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject()
|
||||
,new PrivateHireVehicleFragment());
|
||||
})
|
||||
privateHireCar!!.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
if (wholeDriverObject!!.vehicle_profile == null) {
|
||||
ExecuteFragment.executeFragment(PrivateHireVehicleFragment())
|
||||
} else {
|
||||
MainActivity.archiveClass!!.openDialogArchive(
|
||||
context,
|
||||
wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject(),
|
||||
PrivateHireVehicleFragment()
|
||||
)
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
viewController.progress(View.GONE);
|
||||
})
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
override fun onCancelled(databaseError: DatabaseError) {
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,223 +1,226 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
package h_mal.appttude.com.driver.Driver
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.DateDialog;
|
||||
import h_mal.appttude.com.driver.Objects.DriversLicenseObject;
|
||||
import h_mal.appttude.com.driver.Objects.InsuranceObject;
|
||||
import h_mal.appttude.com.driver.Objects.LogbookObject;
|
||||
import h_mal.appttude.com.driver.Objects.MotObject;
|
||||
import h_mal.appttude.com.driver.Objects.VehicleProfileObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_DETAILS_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import android.widget.CheckBox
|
||||
import android.widget.EditText
|
||||
import android.widget.Toast
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.google.android.gms.tasks.OnCompleteListener
|
||||
import com.google.android.gms.tasks.Task
|
||||
import com.google.firebase.database.DataSnapshot
|
||||
import com.google.firebase.database.DatabaseError
|
||||
import com.google.firebase.database.DatabaseReference
|
||||
import com.google.firebase.database.ValueEventListener
|
||||
import h_mal.appttude.com.driver.Global.DateDialog
|
||||
import h_mal.appttude.com.driver.Global.ExecuteFragment
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
import h_mal.appttude.com.driver.Objects.VehicleProfileObject
|
||||
import h_mal.appttude.com.driver.R
|
||||
|
||||
|
||||
public class VehicleSetupFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
EditText reg;
|
||||
EditText make;
|
||||
EditText model;
|
||||
EditText color;
|
||||
EditText keeperName;
|
||||
EditText address;
|
||||
EditText postcode;
|
||||
EditText startDate;
|
||||
CheckBox seized;
|
||||
Button Submit;
|
||||
|
||||
DatabaseReference ref;
|
||||
|
||||
VehicleProfileObject vehicleProfileObject;
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uploadNew = false;
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
class VehicleSetupFragment : Fragment() {
|
||||
private val TAG: String = this.javaClass.simpleName
|
||||
var reg: EditText? = null
|
||||
var make: EditText? = null
|
||||
var model: EditText? = null
|
||||
var color: EditText? = null
|
||||
var keeperName: EditText? = null
|
||||
var address: EditText? = null
|
||||
var postcode: EditText? = null
|
||||
var startDate: EditText? = null
|
||||
var seized: CheckBox? = null
|
||||
var Submit: Button? = null
|
||||
var ref: DatabaseReference? = null
|
||||
var vehicleProfileObject: VehicleProfileObject? = null
|
||||
var uploadNew: Boolean? = null
|
||||
var UID: String? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
uploadNew = false
|
||||
if (arguments != null) {
|
||||
Log.i(TAG, "onCreate: args = args exist")
|
||||
if (arguments!!.containsKey("user_id")) {
|
||||
UID = arguments!!.getString("user_id")
|
||||
} else {
|
||||
UID = MainActivity.auth!!.currentUser!!.uid
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
if (arguments!!.containsKey(ExecuteFragment.UPLOAD_NEW)) {
|
||||
uploadNew = true
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
} else {
|
||||
UID = MainActivity.auth!!.currentUser!!.uid
|
||||
}
|
||||
|
||||
ref = mDatabase.child(USER_FIREBASE).child(UID).child(VEHICLE_FIREBASE);
|
||||
ref = MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
|
||||
(UID)!!
|
||||
).child(FirebaseClass.VEHICLE_FIREBASE)
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_vehicle_setup, container, false);
|
||||
|
||||
reg = view.findViewById(R.id.reg);
|
||||
make = view.findViewById(R.id.make);
|
||||
model = view.findViewById(R.id.model);
|
||||
color = view.findViewById(R.id.colour);
|
||||
keeperName = view.findViewById(R.id.keeper_name);
|
||||
address = view.findViewById(R.id.address);
|
||||
postcode = view.findViewById(R.id.postcode);
|
||||
startDate = view.findViewById(R.id.start_date);
|
||||
seized = view.findViewById(R.id.seized);
|
||||
Submit = view.findViewById(R.id.submit_vehicle);
|
||||
|
||||
startDate.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
DateDialog dateDialog = new DateDialog(getContext());
|
||||
dateDialog.init(startDate);
|
||||
val view: View = inflater.inflate(R.layout.fragment_vehicle_setup, container, false)
|
||||
reg = view.findViewById(R.id.reg)
|
||||
make = view.findViewById(R.id.make)
|
||||
model = view.findViewById(R.id.model)
|
||||
color = view.findViewById(R.id.colour)
|
||||
keeperName = view.findViewById(R.id.keeper_name)
|
||||
address = view.findViewById(R.id.address)
|
||||
postcode = view.findViewById(R.id.postcode)
|
||||
startDate = view.findViewById(R.id.start_date)
|
||||
seized = view.findViewById(R.id.seized)
|
||||
Submit = view.findViewById(R.id.submit_vehicle)
|
||||
startDate.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
val dateDialog: DateDialog = DateDialog((context)!!)
|
||||
dateDialog.init(startDate)
|
||||
}
|
||||
});
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
ref.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
Submit.setOnClickListener(submitOnClickListener);
|
||||
|
||||
return view;
|
||||
})
|
||||
MainActivity.viewController!!.progress(View.VISIBLE)
|
||||
ref!!.addListenerForSingleValueEvent(valueEventListener)
|
||||
Submit.setOnClickListener(submitOnClickListener)
|
||||
return view
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener(){
|
||||
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
try{
|
||||
vehicleProfileObject = dataSnapshot.child(VEHICLE_DETAILS_FIREBASE).getValue(VehicleProfileObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (vehicleProfileObject != null){
|
||||
if(!uploadNew) {
|
||||
reg.setText(vehicleProfileObject.getReg());
|
||||
make.setText(vehicleProfileObject.getMake());
|
||||
model.setText(vehicleProfileObject.getModel());
|
||||
color.setText(vehicleProfileObject.getColour());
|
||||
keeperName.setText(vehicleProfileObject.getKeeperName());
|
||||
address.setText(vehicleProfileObject.getKeeperAddress());
|
||||
postcode.setText(vehicleProfileObject.getKeeperPostCode());
|
||||
startDate.setText(vehicleProfileObject.getStartDate());
|
||||
seized.setChecked(vehicleProfileObject.isSeized());
|
||||
var valueEventListener: ValueEventListener = object : ValueEventListener {
|
||||
override fun onDataChange(dataSnapshot: DataSnapshot) {
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
try {
|
||||
vehicleProfileObject =
|
||||
dataSnapshot.child(FirebaseClass.VEHICLE_DETAILS_FIREBASE).getValue(
|
||||
VehicleProfileObject::class.java
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "onDataChange: ", e)
|
||||
} finally {
|
||||
if (vehicleProfileObject != null) {
|
||||
if (!uploadNew!!) {
|
||||
reg.setText(vehicleProfileObject.getReg())
|
||||
make.setText(vehicleProfileObject.getMake())
|
||||
model.setText(vehicleProfileObject.getModel())
|
||||
color.setText(vehicleProfileObject.getColour())
|
||||
keeperName.setText(vehicleProfileObject.getKeeperName())
|
||||
address.setText(vehicleProfileObject.getKeeperAddress())
|
||||
postcode.setText(vehicleProfileObject.getKeeperPostCode())
|
||||
startDate.setText(vehicleProfileObject.getStartDate())
|
||||
seized!!.isChecked = vehicleProfileObject!!.isSeized()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
override fun onCancelled(databaseError: DatabaseError) {
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
};
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
String regString = reg.getText().toString().trim();
|
||||
String makeString = make.getText().toString().trim();
|
||||
String modelString = model.getText().toString().trim();
|
||||
String colourString = color.getText().toString().trim();
|
||||
String keeperNameStrin = keeperName.getText().toString().trim();
|
||||
String addressString = address.getText().toString().trim();
|
||||
String postcodeString = postcode.getText().toString().trim();
|
||||
String driverForename = startDate.getText().toString().trim();
|
||||
|
||||
if (!TextUtils.isEmpty(regString)
|
||||
&&!TextUtils.isEmpty(makeString)
|
||||
&&!TextUtils.isEmpty(modelString)
|
||||
&&!TextUtils.isEmpty(colourString)
|
||||
&&!TextUtils.isEmpty(keeperNameStrin)
|
||||
&&!TextUtils.isEmpty(addressString)
|
||||
&&!TextUtils.isEmpty(postcodeString)
|
||||
&&!TextUtils.isEmpty(driverForename)) {
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,VEHICLE_DETAILS_FIREBASE,vehicleProfileObject);
|
||||
}
|
||||
var submitOnClickListener: View.OnClickListener = object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
val regString: String = reg!!.text.toString().trim({ it <= ' ' })
|
||||
val makeString: String = make!!.text.toString().trim({ it <= ' ' })
|
||||
val modelString: String = model!!.text.toString().trim({ it <= ' ' })
|
||||
val colourString: String = color!!.text.toString().trim({ it <= ' ' })
|
||||
val keeperNameStrin: String = keeperName!!.text.toString().trim({ it <= ' ' })
|
||||
val addressString: String = address!!.text.toString().trim({ it <= ' ' })
|
||||
val postcodeString: String = postcode!!.text.toString().trim({ it <= ' ' })
|
||||
val driverForename: String = startDate!!.text.toString().trim({ it <= ' ' })
|
||||
if ((!TextUtils.isEmpty(regString)
|
||||
&& !TextUtils.isEmpty(makeString)
|
||||
&& !TextUtils.isEmpty(modelString)
|
||||
&& !TextUtils.isEmpty(colourString)
|
||||
&& !TextUtils.isEmpty(keeperNameStrin)
|
||||
&& !TextUtils.isEmpty(addressString)
|
||||
&& !TextUtils.isEmpty(postcodeString)
|
||||
&& !TextUtils.isEmpty(driverForename))
|
||||
) {
|
||||
if ((uploadNew)!!) {
|
||||
MainActivity.archiveClass!!.archiveRecord(
|
||||
UID,
|
||||
FirebaseClass.VEHICLE_DETAILS_FIREBASE,
|
||||
vehicleProfileObject
|
||||
)
|
||||
}
|
||||
|
||||
VehicleProfileObject vehicleProfileObject = new VehicleProfileObject(
|
||||
regString ,makeString ,modelString ,colourString ,keeperNameStrin ,addressString ,postcodeString ,driverForename,
|
||||
seized.isChecked()
|
||||
);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
ref.child(VEHICLE_DETAILS_FIREBASE).setValue(vehicleProfileObject).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
approvalsClass.setStatusCode(UID,VEHICLE_DETAILS_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
approvalsClass.setStatusCode(UID,MOT_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
approvalsClass.setStatusCode(UID,INSURANCE_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
approvalsClass.setStatusCode(UID,LOG_BOOK_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else{
|
||||
Toast.makeText(getContext(), "Upload Unsuccessful", Toast.LENGTH_SHORT).show();
|
||||
val vehicleProfileObject: VehicleProfileObject = VehicleProfileObject(
|
||||
regString,
|
||||
makeString,
|
||||
modelString,
|
||||
colourString,
|
||||
keeperNameStrin,
|
||||
addressString,
|
||||
postcodeString,
|
||||
driverForename,
|
||||
seized!!.isChecked
|
||||
)
|
||||
MainActivity.viewController!!.progress(View.VISIBLE)
|
||||
ref!!.child(FirebaseClass.VEHICLE_DETAILS_FIREBASE)
|
||||
.setValue(vehicleProfileObject)
|
||||
.addOnCompleteListener(object : OnCompleteListener<Void?> {
|
||||
override fun onComplete(task: Task<Void?>) {
|
||||
if (task.isSuccessful) {
|
||||
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.setError("Field required");}
|
||||
if (TextUtils.isEmpty(makeString)){make.setError("Field required");}
|
||||
if (TextUtils.isEmpty(modelString)){model.setError("Field required");}
|
||||
if (TextUtils.isEmpty(colourString)){color.setError("Field required");}
|
||||
if (TextUtils.isEmpty(keeperNameStrin)){keeperName.setError("Field required");}
|
||||
if (TextUtils.isEmpty(addressString)){address.setError("Field required");}
|
||||
if (TextUtils.isEmpty(postcodeString)){postcode.setError("Field required");}
|
||||
if (TextUtils.isEmpty(driverForename)){startDate.setError("Field required");}
|
||||
|
||||
})
|
||||
} else {
|
||||
if (TextUtils.isEmpty(regString)) {
|
||||
reg!!.error = "Field required"
|
||||
}
|
||||
if (TextUtils.isEmpty(makeString)) {
|
||||
make!!.error = "Field required"
|
||||
}
|
||||
if (TextUtils.isEmpty(modelString)) {
|
||||
model!!.error = "Field required"
|
||||
}
|
||||
if (TextUtils.isEmpty(colourString)) {
|
||||
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"
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,53 +1,39 @@
|
||||
package h_mal.appttude.com.driver.Driver;
|
||||
package h_mal.appttude.com.driver.Driver
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.widget.CardView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.ExecuteFragment;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
|
||||
|
||||
public class homeDriverFragment extends Fragment {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import androidx.cardview.widget.CardView
|
||||
import androidx.fragment.app.Fragment
|
||||
import h_mal.appttude.com.driver.Global.ExecuteFragment
|
||||
import h_mal.appttude.com.driver.R
|
||||
|
||||
|
||||
class homeDriverFragment : Fragment() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_home, container, false);
|
||||
|
||||
Button button = view.findViewById(R.id.driver);
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new DriverOverallFragment());
|
||||
val view: View = inflater.inflate(R.layout.fragment_home, container, false)
|
||||
val button: Button = view.findViewById(R.id.driver)
|
||||
button.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
ExecuteFragment.executeFragment(DriverOverallFragment())
|
||||
}
|
||||
});
|
||||
|
||||
CardView second= view.findViewById(R.id.car);
|
||||
second.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
executeFragment(new VehicleOverallFragment());
|
||||
})
|
||||
val second: CardView = view.findViewById(R.id.car)
|
||||
second.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
ExecuteFragment.executeFragment(VehicleOverallFragment())
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
})
|
||||
return view
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import h_mal.appttude.com.driver.Global.FirebaseClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorDialog;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Objects.LogbookObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.provider.MediaStore
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.*
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.google.android.gms.tasks.OnCompleteListener
|
||||
import com.google.android.gms.tasks.Task
|
||||
import com.google.firebase.database.DataSnapshot
|
||||
import com.google.firebase.database.DatabaseError
|
||||
import com.google.firebase.database.DatabaseReference
|
||||
import com.google.firebase.database.ValueEventListener
|
||||
import com.squareup.picasso.Picasso
|
||||
import h_mal.appttude.com.driver.Global.ExecuteFragment
|
||||
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.ImageSelectorResults.FilepathResponse
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
import h_mal.appttude.com.driver.Objects.LogbookObject
|
||||
import h_mal.appttude.com.driver.R
|
||||
|
||||
|
||||
public class logbookFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
DatabaseReference reference;
|
||||
|
||||
TextView uploadlb;
|
||||
ImageView lbImage;
|
||||
ProgressBar progressBar;
|
||||
EditText v5cNumber;
|
||||
|
||||
public Uri filePath;
|
||||
public Uri picUri;
|
||||
|
||||
String v5cString;
|
||||
|
||||
LogbookObject logbookObject;
|
||||
Boolean uploadNew;
|
||||
String UID;
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uploadNew = false;
|
||||
|
||||
if (getArguments() != null){
|
||||
Log.i(TAG, "onCreate: args = args exist");
|
||||
if (getArguments().containsKey("user_id")){
|
||||
UID = getArguments().getString("user_id");
|
||||
}else {
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
if (getArguments().containsKey(UPLOAD_NEW)){
|
||||
uploadNew = true;
|
||||
}
|
||||
}else{
|
||||
UID = auth.getCurrentUser().getUid();
|
||||
}
|
||||
|
||||
reference = mDatabase.child(USER_FIREBASE).child(UID).child(VEHICLE_FIREBASE).child(LOG_BOOK_FIREBASE);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_logbook, container, false);
|
||||
|
||||
uploadlb = view.findViewById(R.id.upload_lb);
|
||||
lbImage = view.findViewById(R.id.log_book_img);
|
||||
progressBar = view.findViewById(R.id.pb_lb);
|
||||
v5cNumber = view.findViewById(R.id.v5c_no);
|
||||
Button submit = view.findViewById(R.id.submit_lb);
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
reference.addListenerForSingleValueEvent(valueEventListener);
|
||||
|
||||
uploadlb.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(getContext());
|
||||
imageSelectorDialog.setImageName("logbook_pic"+getDateStamp());
|
||||
imageSelectorDialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
submit.setOnClickListener(submitOnClickListener);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
viewController.progress(View.GONE);
|
||||
try{
|
||||
logbookObject = dataSnapshot.getValue(LogbookObject.class);
|
||||
}catch (Exception e){
|
||||
Log.e(TAG, "onDataChange: ", e);
|
||||
}finally {
|
||||
if (logbookObject != null){
|
||||
picUri = Uri.parse(logbookObject.getPhotoString());
|
||||
v5cString = logbookObject.getV5cnumber();
|
||||
|
||||
if(!uploadNew) {
|
||||
v5cNumber.setText(v5cString);
|
||||
Picasso.get()
|
||||
.load(picUri)
|
||||
.into(loadImage(progressBar, lbImage));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
};
|
||||
|
||||
View.OnClickListener submitOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
v5cString = v5cNumber.getText().toString().trim();
|
||||
|
||||
if (!TextUtils.isEmpty(v5cString)){
|
||||
viewController.progress(View.VISIBLE);
|
||||
if (filePath == null && picUri == null){
|
||||
Toast.makeText(getContext(), "No Driver image", Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}else {
|
||||
if (filePath != null){
|
||||
Log.i(TAG, "onClick: new Image uploaded");
|
||||
new FirebaseClass(getContext(),filePath,new FirebaseClass.Response(){
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
Log.i(TAG, "processFinish: ");
|
||||
if (output != null){
|
||||
picUri = output;
|
||||
publishObject();
|
||||
}else {
|
||||
Toast.makeText(getContext(), R.string.unsuccessful, Toast.LENGTH_SHORT).show();
|
||||
viewController.progress(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
}).uploadImage(LOG_BOOK_FIREBASE,LOG_BOOK_FIREBASE + getDateStamp());
|
||||
}else{
|
||||
Log.i(TAG, "onClick: pushing with same image");
|
||||
publishObject();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}else {
|
||||
if (TextUtils.isEmpty(v5cString)){
|
||||
v5cNumber.setError("Field required");
|
||||
}
|
||||
if (picUri == null){
|
||||
Toast.makeText(getContext(), getString(R.string.image_required), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private void publishObject(){
|
||||
|
||||
if (uploadNew){
|
||||
archiveClass.archiveRecord(UID,LOG_BOOK_FIREBASE,logbookObject);
|
||||
}
|
||||
|
||||
LogbookObject logbookObjectNew = new LogbookObject(picUri.toString(), v5cString);
|
||||
|
||||
reference.setValue(logbookObjectNew).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
approvalsClass.setStatusCode(UID,LOG_BOOK_FIREBASE + APPROVAL_CONSTANT,APPROVAL_PENDING);
|
||||
fragmentManager.popBackStack();
|
||||
}else{
|
||||
Toast.makeText(getContext(), "Upload Unsuccessful", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
viewController.progress(View.VISIBLE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == MY_CAMERA_PERMISSION_CODE) {
|
||||
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Toast.makeText(getContext(), "camera permission granted", Toast.LENGTH_LONG).show();
|
||||
Intent cameraIntent = new
|
||||
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
startActivityForResult(cameraIntent, CAMERA_REQUEST);
|
||||
class logbookFragment : Fragment() {
|
||||
private val TAG: String = this.javaClass.simpleName
|
||||
var reference: DatabaseReference? = null
|
||||
var uploadlb: TextView? = null
|
||||
var lbImage: ImageView? = null
|
||||
var v5cNumber: EditText? = null
|
||||
var filePath: Uri? = null
|
||||
var picUri: Uri? = null
|
||||
var v5cString: String? = null
|
||||
var logbookObject: LogbookObject? = null
|
||||
var uploadNew: Boolean? = null
|
||||
var UID: String? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
uploadNew = false
|
||||
if (arguments != null) {
|
||||
Log.i(TAG, "onCreate: args = args exist")
|
||||
if (arguments!!.containsKey("user_id")) {
|
||||
UID = arguments!!.getString("user_id")
|
||||
} 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
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
new ImageSelectorResults().Results(getActivity(),requestCode, resultCode, data,
|
||||
filePath,lbImage,new ImageSelectorResults.FilepathResponse() {
|
||||
@Override
|
||||
public void processFinish(Uri output) {
|
||||
filePath = output;
|
||||
private fun publishObject() {
|
||||
if ((uploadNew)!!) {
|
||||
MainActivity.archiveClass!!.archiveRecord(
|
||||
UID,
|
||||
FirebaseClass.LOG_BOOK_FIREBASE,
|
||||
logbookObject
|
||||
)
|
||||
}
|
||||
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
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_DENIED;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVED;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.NO_DATE_PRESENT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_APPROVALS;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson;
|
||||
|
||||
public class ApprovalsClass {
|
||||
|
||||
public ApprovalsClass() {
|
||||
}
|
||||
|
||||
public static int mode(int[] array) {
|
||||
printObjectAsJson("modeArrays",array);
|
||||
int mode = array[0];
|
||||
int maxCount = 0;
|
||||
if (matchedArray(array,3)){
|
||||
return 3;
|
||||
}else if (matchedArray(array,0)){
|
||||
return 0;
|
||||
}else {
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
int value = array[i];
|
||||
int count = 1;
|
||||
for (int j = 0; j < array.length; j++) {
|
||||
if (array[j] == value) count++;
|
||||
if (count > maxCount) {
|
||||
mode = value;
|
||||
maxCount = count;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mode == 3){
|
||||
return 1;
|
||||
}
|
||||
class ApprovalsClass {
|
||||
fun getOverApprovalStatusCode(wholeDriverObject: WholeDriverObject?): Int {
|
||||
if (wholeDriverObject!!.approvalsObject != null) {
|
||||
val approvalsObject: ApprovalsObject? = wholeDriverObject.approvalsObject
|
||||
val ints: IntArray = intArrayOf(
|
||||
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 mode;
|
||||
return setImageResource(FirebaseClass.NO_DATE_PRESENT)
|
||||
}
|
||||
|
||||
private static boolean matchedArray (int [] array, int match){
|
||||
for (int i : array){
|
||||
if (i != match){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getOverApprovalStatusCode(WholeDriverObject wholeDriverObject){
|
||||
|
||||
if (wholeDriverObject.approvalsObject != null){
|
||||
ApprovalsObject approvalsObject = wholeDriverObject.getApprovalsObject();
|
||||
|
||||
int[] ints = new int[]{approvalsObject.getDriver_details_approval(),
|
||||
approvalsObject.getDriver_license_approval(),
|
||||
approvalsObject.getPrivate_hire_approval(),
|
||||
approvalsObject.getVehicle_details_approval(),
|
||||
approvalsObject.getInsurance_details_approval(),
|
||||
approvalsObject.getMot_details_approval(),
|
||||
approvalsObject.getLog_book_approval(),
|
||||
approvalsObject.getPh_car_approval()};
|
||||
|
||||
|
||||
return setImageResource(mode(ints));
|
||||
}
|
||||
|
||||
return setImageResource(NO_DATE_PRESENT);
|
||||
}
|
||||
|
||||
public void setStatusCode(String userId,String approvalNameString,int status){
|
||||
|
||||
if (!approvalNameString.equals("")) {
|
||||
mDatabase.child(USER_FIREBASE).child(userId).child(USER_APPROVALS).child(approvalNameString)
|
||||
.setValue(status).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
|
||||
fun setStatusCode(userId: String?, approvalNameString: String, status: Int) {
|
||||
if (!(approvalNameString == "")) {
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE)
|
||||
.child((userId)!!).child(FirebaseClass.USER_APPROVALS)
|
||||
.child(approvalNameString)
|
||||
.setValue(status).addOnCompleteListener(object : OnCompleteListener<Void?> {
|
||||
override fun onComplete(task: Task<Void?>) {
|
||||
if (task.isSuccessful) {
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
public int setImageResource(int statusCode){
|
||||
int imageResource;
|
||||
fun setImageResource(statusCode: Int): Int {
|
||||
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){
|
||||
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;
|
||||
companion object {
|
||||
fun mode(array: IntArray): Int {
|
||||
MainActivity.printObjectAsJson("modeArrays", array)
|
||||
var mode: Int = array.get(0)
|
||||
var maxCount: Int = 0
|
||||
if (matchedArray(array, 3)) {
|
||||
return 3
|
||||
} else if (matchedArray(array, 0)) {
|
||||
return 0
|
||||
} else {
|
||||
for (i in array.indices) {
|
||||
val value: Int = array.get(i)
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,99 +1,84 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
package h_mal.appttude.com.driver.Global
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.util.Log;
|
||||
import android.app.AlertDialog
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import androidx.fragment.app.Fragment
|
||||
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;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.UPLOAD_NEW;
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.ARCHIVE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateTimeStamp;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
|
||||
public class ArchiveClass {
|
||||
private static final String TAG = "ArchiveClass";
|
||||
|
||||
public ArchiveClass() {
|
||||
}
|
||||
|
||||
public void archiveRecord(String UID, String item, Object object) {
|
||||
final DatabaseReference toPath = mDatabase.child(USER_FIREBASE).child(UID)
|
||||
.child(ARCHIVE_FIREBASE).child(item);
|
||||
|
||||
toPath.child(getDateTimeStamp()).setValue(object).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Log.i(TAG, "onComplete: archive successful");
|
||||
}else {
|
||||
Log.i(TAG, "onComplete: archive unsuccessful");
|
||||
class ArchiveClass {
|
||||
fun archiveRecord(UID: String?, item: String?, `object`: Any?) {
|
||||
val toPath: DatabaseReference =
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
|
||||
(UID)!!
|
||||
)
|
||||
.child(FirebaseClass.ARCHIVE_FIREBASE).child((item)!!)
|
||||
toPath.child(MainActivity.Companion.getDateTimeStamp()).setValue(`object`)
|
||||
.addOnCompleteListener(object : OnCompleteListener<Void?> {
|
||||
override fun onComplete(task: Task<Void?>) {
|
||||
if (task.isSuccessful) {
|
||||
Log.i(TAG, "onComplete: archive successful")
|
||||
} else {
|
||||
Log.i(TAG, "onComplete: archive unsuccessful")
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
public void openDialogArchive(Context context,Object object, final Fragment fragment){
|
||||
if (object == null){
|
||||
executeFragment(fragment);
|
||||
}else {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
fun openDialogArchive(context: Context?, `object`: Any?, fragment: Fragment) {
|
||||
if (`object` == null) {
|
||||
ExecuteFragment.executeFragment(fragment)
|
||||
} else {
|
||||
val builder: AlertDialog.Builder = AlertDialog.Builder(context)
|
||||
builder.setMessage("Do you want to View/Edit or Upload new?")
|
||||
.setPositiveButton("View/Edit", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
executeFragment(fragment);
|
||||
}
|
||||
})
|
||||
.setNegativeButton("Upload New", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(UPLOAD_NEW,"Yes");
|
||||
fragment.setArguments(bundle);
|
||||
executeFragment(fragment);
|
||||
}
|
||||
})
|
||||
.create().show();
|
||||
.setPositiveButton("View/Edit", object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, which: Int) {
|
||||
ExecuteFragment.executeFragment(fragment)
|
||||
}
|
||||
})
|
||||
.setNegativeButton("Upload New", object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, which: Int) {
|
||||
val bundle: Bundle = Bundle()
|
||||
bundle.putString(ExecuteFragment.UPLOAD_NEW, "Yes")
|
||||
fragment.arguments = bundle
|
||||
ExecuteFragment.executeFragment(fragment)
|
||||
}
|
||||
})
|
||||
.create().show()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void openDialogArchive(Context context,Object object, String user,final Fragment fragment){
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putString("user_id",user);
|
||||
fragment.setArguments(bundle);
|
||||
|
||||
if (object == null){
|
||||
executeFragment(fragment);
|
||||
}else {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
fun openDialogArchive(context: Context?, `object`: Any?, user: String?, fragment: Fragment?) {
|
||||
val bundle: Bundle = Bundle()
|
||||
bundle.putString("user_id", user)
|
||||
fragment!!.arguments = bundle
|
||||
if (`object` == null) {
|
||||
ExecuteFragment.executeFragment(fragment)
|
||||
} else {
|
||||
val builder: AlertDialog.Builder = AlertDialog.Builder(context)
|
||||
builder.setMessage("Do you want to View/Edit or Upload new?")
|
||||
.setPositiveButton("View/Edit", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
executeFragment(fragment);
|
||||
}
|
||||
})
|
||||
.setNegativeButton("Upload New", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
bundle.putString(UPLOAD_NEW,"Yes");
|
||||
executeFragment(fragment);
|
||||
}
|
||||
})
|
||||
.create().show();
|
||||
.setPositiveButton("View/Edit", object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, which: Int) {
|
||||
ExecuteFragment.executeFragment(fragment)
|
||||
}
|
||||
})
|
||||
.setNegativeButton("Upload New", object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, which: Int) {
|
||||
bundle.putString(ExecuteFragment.UPLOAD_NEW, "Yes")
|
||||
ExecuteFragment.executeFragment(fragment)
|
||||
}
|
||||
})
|
||||
.create().show()
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val TAG: String = "ArchiveClass"
|
||||
}
|
||||
}
|
||||
@@ -1,127 +1,103 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
package h_mal.appttude.com.driver.Global
|
||||
|
||||
import android.app.DatePickerDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.widget.DatePicker;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.app.DatePickerDialog
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.widget.DatePicker
|
||||
import android.widget.EditText
|
||||
import androidx.annotation.RequiresApi
|
||||
import h_mal.appttude.com.driver.R
|
||||
import java.text.ParseException
|
||||
import java.text.SimpleDateFormat
|
||||
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;
|
||||
|
||||
public class DateDialog extends DatePickerDialog {
|
||||
|
||||
int mYear;
|
||||
int mMonth;
|
||||
int mDay;
|
||||
|
||||
EditText editText;
|
||||
class DateDialog : DatePickerDialog {
|
||||
var mYear: Int = 0
|
||||
var mMonth: Int = 0
|
||||
var mDay: Int = 0
|
||||
var editText: EditText? = null
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
public DateDialog(@NonNull Context context) {
|
||||
super(context);
|
||||
}
|
||||
constructor(context: Context) : super(context)
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
public DateDialog(@NonNull Context context, int themeResId) {
|
||||
super(context, themeResId);
|
||||
constructor(context: Context, themeResId: Int) : 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,
|
||||
@Nullable DatePickerDialog.OnDateSetListener listener,
|
||||
int year, int month, int dayOfMonth) {
|
||||
super(context, listener, year, month, dayOfMonth);
|
||||
|
||||
|
||||
override fun setOnDateSetListener(listener: OnDateSetListener?) {
|
||||
super.setOnDateSetListener(dateSetListener)
|
||||
}
|
||||
|
||||
public DateDialog(@NonNull Context context, int themeResId, @Nullable DatePickerDialog.OnDateSetListener listener, int year, int monthOfYear, int dayOfMonth) {
|
||||
super(context, themeResId, listener, year, monthOfYear, dayOfMonth);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTitle(CharSequence title) {
|
||||
super.setTitle(title);
|
||||
}
|
||||
|
||||
@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 {
|
||||
fun init(editText: EditText?) {
|
||||
this.editText = editText
|
||||
val dateString: String = editText!!.text.toString()
|
||||
var javaDate: Date? = null
|
||||
if (TextUtils.isEmpty(dateString)) {
|
||||
val calendar: Calendar = Calendar.getInstance()
|
||||
mYear = calendar.get(Calendar.YEAR)
|
||||
mMonth = calendar.get(Calendar.MONTH)
|
||||
mDay = calendar.get(Calendar.DAY_OF_MONTH)
|
||||
} else {
|
||||
try {
|
||||
SimpleDateFormat sdfrmt = new SimpleDateFormat("dd/MM/yyyy");
|
||||
sdfrmt.setLenient(false);
|
||||
javaDate = sdfrmt.parse(dateString);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}finally {
|
||||
val sdfrmt: SimpleDateFormat = SimpleDateFormat("dd/MM/yyyy")
|
||||
sdfrmt.isLenient = false
|
||||
javaDate = sdfrmt.parse(dateString)
|
||||
} catch (e: ParseException) {
|
||||
e.printStackTrace()
|
||||
} finally {
|
||||
if (javaDate != null) {
|
||||
mYear = Integer.parseInt(dateString.substring(6, dateString.length()));
|
||||
mMonth = Integer.parseInt(dateString.substring(3, 5))-1;
|
||||
mDay = Integer.parseInt(dateString.substring(0, 2));
|
||||
}else {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
mYear = calendar.get(Calendar.YEAR);
|
||||
mMonth = calendar.get(Calendar.MONTH);
|
||||
mDay = calendar.get(Calendar.DAY_OF_MONTH);
|
||||
mYear = dateString.substring(6, dateString.length).toInt()
|
||||
mMonth = dateString.substring(3, 5).toInt() - 1
|
||||
mDay = dateString.substring(0, 2).toInt()
|
||||
} else {
|
||||
val calendar: Calendar = Calendar.getInstance()
|
||||
mYear = calendar.get(Calendar.YEAR)
|
||||
mMonth = calendar.get(Calendar.MONTH)
|
||||
mDay = calendar.get(Calendar.DAY_OF_MONTH)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Log.i(this.getClass().getSimpleName(), "init: year =" + mYear +
|
||||
"month = " + mMonth +
|
||||
"day = " + mDay);
|
||||
|
||||
|
||||
updateDate(mYear,mMonth,mDay);
|
||||
|
||||
setOnDateSetListener(null);
|
||||
|
||||
this.setTitle(getContext().getString(R.string.set_date));
|
||||
this.show();
|
||||
Log.i(
|
||||
this.javaClass.simpleName, ("init: year =" + mYear +
|
||||
"month = " + mMonth +
|
||||
"day = " + mDay)
|
||||
)
|
||||
updateDate(mYear, mMonth, mDay)
|
||||
setOnDateSetListener(null)
|
||||
this.setTitle(context.getString(R.string.set_date))
|
||||
show()
|
||||
}
|
||||
|
||||
DatePickerDialog.OnDateSetListener dateSetListener = new OnDateSetListener() {
|
||||
@Override
|
||||
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
|
||||
mYear = year;
|
||||
mMonth = month + 1;
|
||||
mDay = dayOfMonth;
|
||||
|
||||
editText.setText(String.format("%02d", mDay) + "/" +
|
||||
String.format("%02d", (mMonth)) +"/" +
|
||||
mYear
|
||||
);
|
||||
|
||||
var dateSetListener: OnDateSetListener = object : OnDateSetListener {
|
||||
override fun onDateSet(view: DatePicker, year: Int, month: Int, dayOfMonth: Int) {
|
||||
mYear = year
|
||||
mMonth = month + 1
|
||||
mDay = dayOfMonth
|
||||
editText!!.setText(
|
||||
(String.format("%02d", mDay) + "/" + String.format("%02d", (mMonth)) + "/" +
|
||||
mYear)
|
||||
)
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,65 +1,68 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
package h_mal.appttude.com.driver.Global
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import 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
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
|
||||
public class ExecuteFragment {
|
||||
|
||||
public static final String UPLOAD_NEW = "upload_new";
|
||||
|
||||
public static void executeFragment(Fragment fragment, Bundle bundle) {
|
||||
executeFragmentMethod(fragment,bundle);
|
||||
object ExecuteFragment {
|
||||
val UPLOAD_NEW: String = "upload_new"
|
||||
fun executeFragment(fragment: Fragment, bundle: Bundle?) {
|
||||
executeFragmentMethod(fragment, bundle)
|
||||
}
|
||||
|
||||
public static void executeFragment(Fragment fragment) {
|
||||
executeFragmentMethod(fragment);
|
||||
fun executeFragment(fragment: Fragment?) {
|
||||
executeFragmentMethod(fragment)
|
||||
}
|
||||
|
||||
public static void executeFragment(Fragment fragment, String userId) {
|
||||
executeFragmentMethod(fragment,userId);
|
||||
fun executeFragment(fragment: Fragment?, userId: String?) {
|
||||
executeFragmentMethod(fragment, userId)
|
||||
}
|
||||
|
||||
public static void executeFragment(Fragment fragment, String userId, String archive) {
|
||||
executeFragmentMethod(fragment,userId,archive);
|
||||
fun executeFragment(fragment: Fragment, userId: String?, archive: String?) {
|
||||
executeFragmentMethod(fragment, userId, archive)
|
||||
}
|
||||
|
||||
private static void executeFragmentMethod(Fragment f){
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit();
|
||||
private 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 static void executeFragmentMethod(Fragment f,String user_id){
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("user_id",user_id);
|
||||
|
||||
f.setArguments(bundle);
|
||||
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit();
|
||||
private 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 static void executeFragmentMethod(Fragment f,String user_id,String archive){
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("user_id",user_id);
|
||||
bundle.putString("archive",archive);
|
||||
|
||||
f.setArguments(bundle);
|
||||
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit();
|
||||
private 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 static void executeFragmentMethod(Fragment f, Bundle b){
|
||||
if (b != null){
|
||||
f.setArguments(b);
|
||||
private fun executeFragmentMethod(f: Fragment, b: Bundle?) {
|
||||
if (b != null) {
|
||||
f.arguments = b
|
||||
}
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
fragmentTransaction.replace(R.id.container,f).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).addToBackStack(f.getClass().getSimpleName()).commit();
|
||||
val fragmentTransaction: FragmentTransaction =
|
||||
MainActivity.fragmentManager!!.beginTransaction()
|
||||
fragmentTransaction.replace(R.id.container, f)
|
||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
|
||||
.addToBackStack(f.javaClass.simpleName).commit()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,111 +1,84 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
package h_mal.appttude.com.driver.Global
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
import android.app.ProgressDialog
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import com.google.android.gms.tasks.Continuation
|
||||
import com.google.android.gms.tasks.Task
|
||||
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;
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
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);
|
||||
class FirebaseClass constructor(var context: Context?, var filePath: Uri?, var delegate: Response) {
|
||||
open interface Response {
|
||||
fun processFinish(output: Uri?)
|
||||
}
|
||||
|
||||
public Response delegate;
|
||||
|
||||
public FirebaseClass(Context context, Uri filePath, Response delegate) {
|
||||
this.context = context;
|
||||
this.filePath = filePath;
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
public void uploadImage(String path, String name) {
|
||||
|
||||
if(filePath != null) {
|
||||
final ProgressDialog progressDialog = new ProgressDialog(context);
|
||||
progressDialog.setTitle("Uploading...");
|
||||
progressDialog.show();
|
||||
|
||||
final StorageReference ref = storageReference.child("images/"+ auth.getCurrentUser().getUid() + "/" + path
|
||||
+ "/" + name);
|
||||
|
||||
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+"%");
|
||||
fun uploadImage(path: String, name: String) {
|
||||
if (filePath != null) {
|
||||
val progressDialog: ProgressDialog = ProgressDialog(context)
|
||||
progressDialog.setTitle("Uploading...")
|
||||
progressDialog.show()
|
||||
val ref: StorageReference = MainActivity.storageReference!!.child(
|
||||
("images/" + MainActivity.auth!!.currentUser!!
|
||||
.uid + "/" + path
|
||||
+ "/" + name)
|
||||
)
|
||||
val uploadTask: UploadTask = ref.putFile(filePath!!)
|
||||
uploadTask.addOnProgressListener(object : OnProgressListener<UploadTask.TaskSnapshot> {
|
||||
override fun onProgress(taskSnapshot: UploadTask.TaskSnapshot) {
|
||||
val progress: Double =
|
||||
(100.0 * taskSnapshot.bytesTransferred / taskSnapshot
|
||||
.totalByteCount)
|
||||
progressDialog.setMessage("Uploaded " + progress.toInt() + "%")
|
||||
}
|
||||
}).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
|
||||
@Override
|
||||
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
|
||||
if (!task.isSuccessful()) {
|
||||
throw task.getException();
|
||||
}).continueWithTask(object : Continuation<UploadTask.TaskSnapshot?, Task<Uri>> {
|
||||
@Throws(Exception::class)
|
||||
override fun then(task: Task<UploadTask.TaskSnapshot?>): Task<Uri> {
|
||||
if (!task.isSuccessful) {
|
||||
throw (task.exception)!!
|
||||
}
|
||||
|
||||
// Continue with the task to get the download URL
|
||||
return ref.getDownloadUrl();
|
||||
return ref.downloadUrl
|
||||
}
|
||||
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Uri> task) {
|
||||
if (task.isSuccessful()) {
|
||||
delegate.processFinish(task.getResult());
|
||||
progressDialog.dismiss();
|
||||
Toast.makeText(context, "Uploaded Successfully", Toast.LENGTH_SHORT).show();
|
||||
Log.i(context.getClass().getSimpleName(), "onComplete: uploaded Successful uri: " + task.getResult());
|
||||
} else {
|
||||
delegate.processFinish(null);
|
||||
progressDialog.dismiss();
|
||||
Toast.makeText(context, "Failed to upload", Toast.LENGTH_SHORT).show();
|
||||
Log.i(context.getClass().getSimpleName(), "onComplete: failed to get url");
|
||||
}
|
||||
}).addOnCompleteListener { task ->
|
||||
if (task.isSuccessful) {
|
||||
delegate.processFinish(task.result)
|
||||
progressDialog.dismiss()
|
||||
context?.displayToast("Uploaded Successfully")
|
||||
println("onComplete: uploaded Successful uri: " + task.result)
|
||||
} else {
|
||||
delegate.processFinish(null)
|
||||
progressDialog.dismiss()
|
||||
context?.displayToast("Uploaded Successfully")
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
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
|
||||
}
|
||||
}
|
||||
@@ -1,154 +1,135 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
package h_mal.appttude.com.driver.Global
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.content.FileProvider;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Toast;
|
||||
import android.Manifest
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.icu.text.SimpleDateFormat
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.os.Environment
|
||||
import android.provider.MediaStore
|
||||
import android.view.View
|
||||
import android.widget.Button
|
||||
import android.widget.Toast
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.FileProvider
|
||||
import androidx.fragment.app.Fragment
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
import h_mal.appttude.com.driver.R
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
|
||||
import com.google.firebase.storage.FirebaseStorage;
|
||||
import com.google.firebase.storage.StorageReference;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
class ImageSelectorDialog : Dialog {
|
||||
private val TAG: String = this.javaClass.simpleName
|
||||
private var saveFileName: String
|
||||
var fragment: Fragment? = null
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static android.support.v4.app.ActivityCompat.getPermissionCompatDelegate;
|
||||
import static android.support.v4.app.ActivityCompat.requestPermissions;
|
||||
import static android.support.v4.app.ActivityCompat.startActivityForResult;
|
||||
import static android.support.v4.content.PermissionChecker.checkSelfPermission;
|
||||
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";
|
||||
constructor(context: Context) : super(context) {
|
||||
saveFileName = "default_name"
|
||||
}
|
||||
|
||||
public ImageSelectorDialog(@NonNull Context context, int themeResId) {
|
||||
super(context, themeResId);
|
||||
this.saveFileName = "default_name";
|
||||
constructor(context: Context, themeResId: Int) : super(context, themeResId) {
|
||||
saveFileName = "default_name"
|
||||
}
|
||||
|
||||
protected ImageSelectorDialog(@NonNull Context context, boolean cancelable, @Nullable DialogInterface.OnCancelListener cancelListener) {
|
||||
super(context, cancelable, cancelListener);
|
||||
this.saveFileName = "default_name";
|
||||
protected constructor(
|
||||
context: Context,
|
||||
cancelable: Boolean,
|
||||
cancelListener: DialogInterface.OnCancelListener?
|
||||
) : super(context, cancelable, cancelListener) {
|
||||
saveFileName = "default_name"
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.address_dialog);
|
||||
override fun onCreate(savedInstanceState: Bundle) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.address_dialog)
|
||||
|
||||
//check if we have we have storage rights
|
||||
final int permissionPic = ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
final int permissionCam = ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.CAMERA);
|
||||
|
||||
fragment = fragmentManager.getFragments().get(0);
|
||||
|
||||
Button upload = findViewById(R.id.upload);
|
||||
Button takePic = findViewById(R.id.take_pic);
|
||||
|
||||
upload.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (permissionPic == PackageManager.PERMISSION_GRANTED){
|
||||
chooseImage();
|
||||
|
||||
}else {
|
||||
Toast.makeText(getContext(), "Storage permissions required", Toast.LENGTH_SHORT).show();
|
||||
requestPermissions(fragment.getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
||||
STORAGE_PERMISSION_CODE);
|
||||
}
|
||||
dismiss();
|
||||
val permissionPic: Int = ActivityCompat.checkSelfPermission(
|
||||
context,
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||
)
|
||||
val permissionCam: Int =
|
||||
ActivityCompat.checkSelfPermission(context, Manifest.permission.CAMERA)
|
||||
fragment = MainActivity.fragmentManager!!.fragments.get(0)
|
||||
val upload: Button = findViewById(R.id.upload)
|
||||
val takePic: Button = findViewById(R.id.take_pic)
|
||||
upload.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
if (permissionPic == PackageManager.PERMISSION_GRANTED) {
|
||||
chooseImage()
|
||||
} else {
|
||||
Toast.makeText(context, "Storage permissions required", Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
ActivityCompat.requestPermissions(
|
||||
(fragment.getActivity())!!,
|
||||
arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
|
||||
STORAGE_PERMISSION_CODE
|
||||
)
|
||||
}
|
||||
});
|
||||
|
||||
takePic.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (permissionCam == PackageManager.PERMISSION_GRANTED){
|
||||
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
File file = createFile();
|
||||
photoURI = Uri.fromFile(file);
|
||||
Uri imageUri = FileProvider.getUriForFile(
|
||||
getContext(),
|
||||
"h_mal.appttude.com.driver",
|
||||
file);
|
||||
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
|
||||
fragment.startActivityForResult(cameraIntent, CAMERA_REQUEST);
|
||||
}else {
|
||||
Toast.makeText(getContext(), "Camera Permissions required", Toast.LENGTH_SHORT).show();
|
||||
requestPermissions(fragment.getActivity(), new String[]{Manifest.permission.CAMERA},
|
||||
MY_CAMERA_PERMISSION_CODE);
|
||||
}
|
||||
dismiss();
|
||||
dismiss()
|
||||
}
|
||||
})
|
||||
takePic.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
if (permissionCam == PackageManager.PERMISSION_GRANTED) {
|
||||
val cameraIntent: Intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
|
||||
val file: File = createFile()
|
||||
photoURI = Uri.fromFile(file)
|
||||
val imageUri: Uri = FileProvider.getUriForFile(
|
||||
context,
|
||||
"h_mal.appttude.com.driver",
|
||||
file
|
||||
)
|
||||
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri)
|
||||
fragment.startActivityForResult(cameraIntent, CAMERA_REQUEST)
|
||||
} else {
|
||||
Toast.makeText(context, "Camera Permissions required", Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
ActivityCompat.requestPermissions(
|
||||
(fragment.getActivity())!!, arrayOf(Manifest.permission.CAMERA),
|
||||
MY_CAMERA_PERMISSION_CODE
|
||||
)
|
||||
}
|
||||
});
|
||||
|
||||
dismiss()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
public void setImageName(String saveFileName){
|
||||
this.saveFileName = saveFileName;
|
||||
fun setImageName(saveFileName: String) {
|
||||
this.saveFileName = saveFileName
|
||||
}
|
||||
|
||||
private File createFile(){
|
||||
private fun createFile(): File {
|
||||
//create directory
|
||||
File root = getContext().getExternalFilesDir(Environment.DIRECTORY_PICTURES);
|
||||
val root: File = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)
|
||||
//create file
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmm");
|
||||
String currentDateandTime = sdf.format(new Date());
|
||||
String fname = saveFileName+ currentDateandTime;
|
||||
File image = new File(root,fname);
|
||||
|
||||
return image;
|
||||
|
||||
val sdf: SimpleDateFormat = SimpleDateFormat("yyyyMMdd_HHmm")
|
||||
val currentDateandTime: String = sdf.format(Date())
|
||||
val fname: String = saveFileName + currentDateandTime
|
||||
val image: File = File(root, fname)
|
||||
return image
|
||||
}
|
||||
|
||||
private void chooseImage() {
|
||||
Intent intent = new Intent();
|
||||
intent.setType("image/*");
|
||||
intent.setAction(Intent.ACTION_GET_CONTENT);
|
||||
|
||||
fragment.startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
|
||||
|
||||
private fun chooseImage() {
|
||||
val intent: Intent = Intent()
|
||||
intent.type = "image/*"
|
||||
intent.action = Intent.ACTION_GET_CONTENT
|
||||
fragment!!.startActivityForResult(
|
||||
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
|
||||
}
|
||||
}
|
||||
@@ -1,182 +1,163 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
package h_mal.appttude.com.driver.Global
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.net.Uri;
|
||||
import android.os.Environment;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Toast;
|
||||
import android.Manifest
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.Bitmap
|
||||
import android.net.Uri
|
||||
import android.os.Environment
|
||||
import android.provider.MediaStore
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
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;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
class ImageSelectorResults // public FilepathResponse delegate;
|
||||
{
|
||||
var activity: Activity? = null
|
||||
|
||||
import static android.app.Activity.RESULT_OK;
|
||||
import static android.os.Environment.DIRECTORY_PICTURES;
|
||||
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);
|
||||
open interface FilepathResponse {
|
||||
fun processFinish(output: Uri?)
|
||||
}
|
||||
|
||||
// public FilepathResponse delegate;
|
||||
|
||||
public ImageSelectorResults() {
|
||||
}
|
||||
|
||||
public void Results(Activity activity, int requestCode, int resultCode, Intent data, Uri filePath,
|
||||
ImageView imageView,FilepathResponse delegate){
|
||||
|
||||
this.activity = activity;
|
||||
|
||||
if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
|
||||
&& data != null && data.getData() != null )
|
||||
{
|
||||
filePath = data.getData();
|
||||
Bitmap bitmap = null;
|
||||
fun Results(
|
||||
activity: Activity?, requestCode: Int, resultCode: Int, data: Intent?, filePath: Uri?,
|
||||
imageView: ImageView?, delegate: FilepathResponse
|
||||
) {
|
||||
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 {
|
||||
bitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), filePath);
|
||||
if (imageView.getVisibility() != View.VISIBLE) {
|
||||
imageView.setVisibility(View.VISIBLE);
|
||||
bitmap =
|
||||
MediaStore.Images.Media.getBitmap(activity!!.contentResolver, filePath)
|
||||
if (imageView!!.visibility != View.VISIBLE) {
|
||||
imageView.visibility = View.VISIBLE
|
||||
}
|
||||
imageView.setImageBitmap(bitmap);
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
finally {
|
||||
if (bitmap != null){
|
||||
delegate.processFinish(filePath);
|
||||
Log.i(getClass().getSimpleName(), "Results: " + filePath);
|
||||
imageView.setImageBitmap(bitmap)
|
||||
} catch (e: IOException) {
|
||||
e.printStackTrace()
|
||||
} finally {
|
||||
if (bitmap != null) {
|
||||
delegate.processFinish(filePath)
|
||||
Log.i(javaClass.simpleName, "Results: " + filePath)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
|
||||
if (requestCode == ImageSelectorDialog.CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
|
||||
//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) {
|
||||
Toast.makeText(activity, "Storage permissions not granted", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}else {
|
||||
|
||||
Toast.makeText(activity, "Storage permissions not granted", Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
return
|
||||
} else {
|
||||
try {
|
||||
File f = Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES);
|
||||
String fname = "driver"+ getDateStamp() + ".jpg";
|
||||
File image = new File(f,fname);
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(image);
|
||||
|
||||
filePath = photoURI;
|
||||
|
||||
Bitmap bitmap = MediaStore.Images.Media
|
||||
.getBitmap(activity.getContentResolver(), photoURI);
|
||||
|
||||
imageView.setImageBitmap(bitmap);
|
||||
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, 90,fileOutputStream);
|
||||
fileOutputStream.flush();
|
||||
fileOutputStream.close();
|
||||
galleryAddPic();
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
val f: File =
|
||||
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
|
||||
val fname: String = "driver" + MainActivity.dateStamp + ".jpg"
|
||||
val image: File = File(f, fname)
|
||||
val fileOutputStream: FileOutputStream = FileOutputStream(image)
|
||||
filePath = ImageSelectorDialog.photoURI
|
||||
val bitmap: Bitmap = MediaStore.Images.Media
|
||||
.getBitmap(
|
||||
activity.contentResolver,
|
||||
ImageSelectorDialog.photoURI
|
||||
)
|
||||
imageView!!.setImageBitmap(bitmap)
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fileOutputStream)
|
||||
fileOutputStream.flush()
|
||||
fileOutputStream.close()
|
||||
galleryAddPic()
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
delegate.processFinish(filePath);
|
||||
Log.i(getClass().getSimpleName(), "Results: " + filePath);
|
||||
delegate.processFinish(filePath)
|
||||
Log.i(javaClass.simpleName, "Results: " + filePath)
|
||||
}
|
||||
}
|
||||
|
||||
public void Results(Activity activity, int requestCode, int resultCode, Intent data, Uri filePath,FilepathResponse delegate){
|
||||
|
||||
this.activity = activity;
|
||||
|
||||
if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
|
||||
&& data != null && data.getData() != null )
|
||||
{
|
||||
filePath = data.getData();
|
||||
Bitmap bitmap = null;
|
||||
fun Results(
|
||||
activity: Activity?,
|
||||
requestCode: Int,
|
||||
resultCode: Int,
|
||||
data: Intent?,
|
||||
filePath: Uri?,
|
||||
delegate: FilepathResponse
|
||||
) {
|
||||
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 {
|
||||
bitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), filePath);
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
finally {
|
||||
if (bitmap != null){
|
||||
delegate.processFinish(filePath);
|
||||
Log.i(getClass().getSimpleName(), "Results: " + filePath);
|
||||
bitmap =
|
||||
MediaStore.Images.Media.getBitmap(activity!!.contentResolver, filePath)
|
||||
} catch (e: IOException) {
|
||||
e.printStackTrace()
|
||||
} finally {
|
||||
if (bitmap != null) {
|
||||
delegate.processFinish(filePath)
|
||||
Log.i(javaClass.simpleName, "Results: " + filePath)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
|
||||
if (requestCode == ImageSelectorDialog.CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
|
||||
//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) {
|
||||
Toast.makeText(activity, "Storage permissions not granted", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}else {
|
||||
|
||||
Toast.makeText(activity, "Storage permissions not granted", Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
return
|
||||
} else {
|
||||
try {
|
||||
File f = Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES);
|
||||
String fname = "driver"+ getDateStamp() + ".jpg";
|
||||
File image = new File(f,fname);
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(image);
|
||||
|
||||
filePath = photoURI;
|
||||
|
||||
Bitmap bitmap = MediaStore.Images.Media
|
||||
.getBitmap(activity.getContentResolver(), photoURI);
|
||||
|
||||
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, 90,fileOutputStream);
|
||||
fileOutputStream.flush();
|
||||
fileOutputStream.close();
|
||||
galleryAddPic();
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
val f: File =
|
||||
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
|
||||
val fname: String = "driver" + MainActivity.dateStamp + ".jpg"
|
||||
val image: File = File(f, fname)
|
||||
val fileOutputStream: FileOutputStream = FileOutputStream(image)
|
||||
filePath = ImageSelectorDialog.photoURI
|
||||
val bitmap: Bitmap = MediaStore.Images.Media
|
||||
.getBitmap(
|
||||
activity.contentResolver,
|
||||
ImageSelectorDialog.photoURI
|
||||
)
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fileOutputStream)
|
||||
fileOutputStream.flush()
|
||||
fileOutputStream.close()
|
||||
galleryAddPic()
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
delegate.processFinish(filePath);
|
||||
Log.i(getClass().getSimpleName(), "Results: " + filePath);
|
||||
|
||||
delegate.processFinish(filePath)
|
||||
Log.i(javaClass.simpleName, "Results: " + filePath)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void galleryAddPic() {
|
||||
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
|
||||
File f = new File(photoURI.getPath());
|
||||
Uri contentUri = Uri.fromFile(f);
|
||||
mediaScanIntent.setData(contentUri);
|
||||
activity.sendBroadcast(mediaScanIntent);
|
||||
private fun galleryAddPic() {
|
||||
val mediaScanIntent: Intent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)
|
||||
val f: File = File(ImageSelectorDialog.photoURI!!.path)
|
||||
val contentUri: Uri = Uri.fromFile(f)
|
||||
mediaScanIntent.data = contentUri
|
||||
activity!!.sendBroadcast(mediaScanIntent)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,245 +1,195 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
package h_mal.appttude.com.driver.Global
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.provider.ContactsContract;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.view.PagerAdapter;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.AlphaAnimation;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.app.AlertDialog
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.animation.AlphaAnimation
|
||||
import android.widget.ImageView
|
||||
import androidx.viewpager.widget.PagerAdapter
|
||||
import androidx.viewpager.widget.ViewPager
|
||||
import androidx.viewpager.widget.ViewPager.OnPageChangeListener
|
||||
import com.squareup.picasso.Picasso
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
import h_mal.appttude.com.driver.R
|
||||
import java.util.*
|
||||
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.squareup.picasso.Target;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.MainActivity.imageViewClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
|
||||
public class ImageSwiperClass{
|
||||
|
||||
private static final String TAG = "ImageSwiperClass";
|
||||
|
||||
private ImageView left;
|
||||
private ImageView mainImage;
|
||||
private ImageView right;
|
||||
|
||||
private List<String> imageStrings;
|
||||
private Context context;
|
||||
|
||||
private SlidingImageViewAdapter adapter;
|
||||
|
||||
ViewPager viewPager;
|
||||
public ImageView delete;
|
||||
|
||||
public ImageSwiperClass(Context context, View wholeView) {
|
||||
this.context = context;
|
||||
|
||||
left = wholeView.findViewById(R.id.left);
|
||||
right = wholeView.findViewById(R.id.right);
|
||||
|
||||
left.setOnClickListener(leftClick);
|
||||
right.setOnClickListener(rightClick);
|
||||
|
||||
viewPager = wholeView.findViewById(R.id.view_pager);
|
||||
|
||||
delete = wholeView.findViewById(R.id.delete);
|
||||
|
||||
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageScrolled(int i, float v, int i1) {
|
||||
AlphaAnimation animation1 = new AlphaAnimation(0.2f, 1.0f);
|
||||
animation1.setDuration(200);
|
||||
animation1.setFillAfter(true);
|
||||
delete.startAnimation(animation1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(final int i) {
|
||||
Log.i(TAG, "onPageSelected: position = " + i);
|
||||
setArrows();
|
||||
delete.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
deleteDialog(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int i) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
Log.i(TAG, "ImageSwiperClass: viewpager = " + viewPager.getId());
|
||||
}
|
||||
|
||||
public List<String> getImageStrings() {
|
||||
return imageStrings;
|
||||
}
|
||||
|
||||
public void addPhotoString(String s){
|
||||
if (imageStrings == null){
|
||||
imageStrings = new ArrayList<>();
|
||||
class ImageSwiperClass constructor(private val context: Context?, wholeView: View?) {
|
||||
private val left: ImageView
|
||||
private var mainImage: ImageView? = null
|
||||
private val right: ImageView
|
||||
var imageStrings: MutableList<String?>? = null
|
||||
private set
|
||||
private var adapter: SlidingImageViewAdapter? = null
|
||||
var viewPager: ViewPager
|
||||
var delete: ImageView
|
||||
fun addPhotoString(s: String?) {
|
||||
if (imageStrings == null) {
|
||||
imageStrings = ArrayList()
|
||||
}
|
||||
imageStrings.add(s);
|
||||
|
||||
adapter = new SlidingImageViewAdapter();
|
||||
viewPager.setAdapter(adapter);
|
||||
imageStrings!!.add(s)
|
||||
adapter = SlidingImageViewAdapter()
|
||||
viewPager.adapter = adapter
|
||||
}
|
||||
|
||||
public void reinstantiateList(List<String> imageStrings){
|
||||
this.imageStrings = imageStrings;
|
||||
|
||||
adapter = new SlidingImageViewAdapter();
|
||||
viewPager.setAdapter(adapter);
|
||||
|
||||
setArrows();
|
||||
fun reinstantiateList(imageStrings: MutableList<String?>?) {
|
||||
this.imageStrings = imageStrings
|
||||
adapter = SlidingImageViewAdapter()
|
||||
viewPager.adapter = adapter
|
||||
setArrows()
|
||||
}
|
||||
|
||||
public void hideDelete(){
|
||||
delete.setVisibility(View.INVISIBLE);
|
||||
Log.i(TAG, "hideDelete: hides deleete?");
|
||||
fun hideDelete() {
|
||||
delete.visibility = View.INVISIBLE
|
||||
Log.i(TAG, "hideDelete: hides deleete?")
|
||||
}
|
||||
|
||||
private View.OnClickListener leftClick = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
|
||||
setArrows();
|
||||
private val leftClick: View.OnClickListener = object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
viewPager.currentItem = viewPager.currentItem - 1
|
||||
setArrows()
|
||||
}
|
||||
};
|
||||
|
||||
private View.OnClickListener rightClick = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
viewPager.setCurrentItem(viewPager.getCurrentItem() +1);
|
||||
setArrows();
|
||||
}
|
||||
private val rightClick: View.OnClickListener = object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
viewPager.currentItem = viewPager.currentItem + 1
|
||||
setArrows()
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void deleteDialog(final int position){
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
private fun deleteDialog(position: Int) {
|
||||
val builder: AlertDialog.Builder = AlertDialog.Builder(context)
|
||||
builder.setMessage("Are you sure you want to delete?")
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
imageStrings.remove(position);
|
||||
viewPager.setAdapter(adapter);
|
||||
// adapter.notifyDataSetChanged();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.create()
|
||||
.show();
|
||||
.setPositiveButton(android.R.string.ok, object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, which: Int) {
|
||||
imageStrings!!.removeAt(position)
|
||||
viewPager.adapter = adapter
|
||||
// adapter.notifyDataSetChanged();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.create()
|
||||
.show()
|
||||
}
|
||||
|
||||
private void setArrows(){
|
||||
if (imageStrings != null && imageStrings.size() > 0){
|
||||
private fun setArrows() {
|
||||
if (imageStrings != null && imageStrings!!.size > 0) {
|
||||
//left arrow
|
||||
if (viewPager.getCurrentItem() > 0){
|
||||
setAnimation(left,true);
|
||||
}else{
|
||||
setAnimation(left,false);
|
||||
if (viewPager.currentItem > 0) {
|
||||
setAnimation(left, true)
|
||||
} else {
|
||||
setAnimation(left, false)
|
||||
}
|
||||
|
||||
//right
|
||||
if (viewPager.getCurrentItem() == imageStrings.size() -1){
|
||||
setAnimation(right,false);
|
||||
}else{
|
||||
setAnimation(right,true);
|
||||
if (viewPager.currentItem == imageStrings!!.size - 1) {
|
||||
setAnimation(right, false)
|
||||
} else {
|
||||
setAnimation(right, true)
|
||||
}
|
||||
}
|
||||
if (imageStrings == null){
|
||||
setAnimation(left,false);
|
||||
setAnimation(right,false);
|
||||
if (imageStrings == null) {
|
||||
setAnimation(left, false)
|
||||
setAnimation(right, false)
|
||||
}
|
||||
}
|
||||
|
||||
private void setAnimation(ImageView view,boolean up){
|
||||
float start;
|
||||
float finish;
|
||||
if(up){
|
||||
start = 0.2f;
|
||||
finish = 1.0f;
|
||||
}else {
|
||||
start = 1.0f;
|
||||
finish = 0.2f;
|
||||
private fun setAnimation(view: ImageView, up: Boolean) {
|
||||
val start: Float
|
||||
val finish: Float
|
||||
if (up) {
|
||||
start = 0.2f
|
||||
finish = 1.0f
|
||||
} else {
|
||||
start = 1.0f
|
||||
finish = 0.2f
|
||||
}
|
||||
// if (view.getAlpha() != start){
|
||||
AlphaAnimation animation1 = new AlphaAnimation(start, finish);
|
||||
animation1.setDuration(500);
|
||||
animation1.setFillAfter(true);
|
||||
// view.startAnimation(animation1);
|
||||
view.setAlpha(finish);
|
||||
// }
|
||||
|
||||
// if (view.getAlpha() != start){
|
||||
val animation1: AlphaAnimation = AlphaAnimation(start, finish)
|
||||
animation1.duration = 500
|
||||
animation1.fillAfter = true
|
||||
// view.startAnimation(animation1);
|
||||
view.alpha = finish
|
||||
// }
|
||||
}
|
||||
|
||||
class SlidingImageViewAdapter extends PagerAdapter{
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
if (imageStrings == null || imageStrings.size() < 1){
|
||||
delete.setVisibility(View.GONE);
|
||||
return 0;
|
||||
}else {
|
||||
delete.setVisibility(View.VISIBLE);
|
||||
return imageStrings.size();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroyItem(@NonNull ViewGroup container, int position,Object object) {
|
||||
if (object != null){
|
||||
container.removeView((View) object);
|
||||
}else {
|
||||
container.removeViewAt(position);
|
||||
internal inner class SlidingImageViewAdapter : PagerAdapter() {
|
||||
override fun getCount(): Int {
|
||||
if (imageStrings == null || imageStrings!!.size < 1) {
|
||||
delete.visibility = View.GONE
|
||||
return 0
|
||||
} else {
|
||||
delete.visibility = View.VISIBLE
|
||||
return imageStrings!!.size
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
|
||||
return view.equals(o);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Object instantiateItem(@NonNull ViewGroup container, final int position) {
|
||||
View pagerPic = LayoutInflater.from(context).inflate(R.layout.insurance_item,container,false);
|
||||
setArrows();
|
||||
|
||||
if(imageStrings != null && imageStrings.size() >0){
|
||||
mainImage = pagerPic.getRootView().findViewById(R.id.main_image);
|
||||
final ProgressBar pb = pagerPic.findViewById(R.id.pb_ins);
|
||||
|
||||
Picasso.get().load(imageStrings.get(position)).into(loadImage(pb,mainImage));
|
||||
|
||||
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
|
||||
if (`object` != null) {
|
||||
container.removeView(`object` as View?)
|
||||
} else {
|
||||
container.removeViewAt(position)
|
||||
}
|
||||
|
||||
container.addView(pagerPic, 0);
|
||||
|
||||
return pagerPic;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyDataSetChanged() {
|
||||
super.notifyDataSetChanged();
|
||||
override fun isViewFromObject(view: View, o: Any): Boolean {
|
||||
return (view == o)
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
@@ -1,121 +1,96 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
package h_mal.appttude.com.driver.Global
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.design.widget.FloatingActionButton;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageView;
|
||||
import android.content.Intent
|
||||
import android.graphics.Bitmap
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.os.Environment
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.github.chrisbanes.photoview.PhotoView
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
import h_mal.appttude.com.driver.R
|
||||
import java.io.File
|
||||
import java.io.FileNotFoundException
|
||||
import java.io.FileOutputStream
|
||||
import java.io.IOException
|
||||
|
||||
import com.github.chrisbanes.photoview.PhotoView;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static android.os.Environment.DIRECTORY_PICTURES;
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.photoURI;
|
||||
import static h_mal.appttude.com.driver.MainActivity.getDateStamp;
|
||||
|
||||
public class ImageViewClass {
|
||||
|
||||
public static final String IMAGE_VALUE = "image";
|
||||
private static Bitmap bitmap;
|
||||
|
||||
public ImageViewClass() {
|
||||
class ImageViewClass {
|
||||
fun open(bitmap: Bitmap?) {
|
||||
Companion.bitmap = bitmap
|
||||
ExecuteFragment.executeFragment(ImageViewerFragment())
|
||||
}
|
||||
|
||||
public void open(Bitmap bitmap){
|
||||
ImageViewClass.bitmap = bitmap;
|
||||
executeFragment(new ImageViewerFragment());
|
||||
}
|
||||
|
||||
public static class ImageViewerFragment extends Fragment {
|
||||
|
||||
private View view;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
class ImageViewerFragment : Fragment() {
|
||||
private var view: View? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
view = inflater.inflate(R.layout.fragment_image_viewer, container, false);
|
||||
|
||||
FloatingActionButton fab = view.findViewById(R.id.download_pic);
|
||||
|
||||
if (bitmap != null){
|
||||
PhotoView photoView = view.findViewById(R.id.photo_view);
|
||||
photoView.setImageBitmap(bitmap);
|
||||
|
||||
fab.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
view = inflater.inflate(R.layout.fragment_image_viewer, container, false)
|
||||
val fab: FloatingActionButton = view.findViewById(R.id.download_pic)
|
||||
if (bitmap != null) {
|
||||
val photoView: PhotoView = view.findViewById(R.id.photo_view)
|
||||
photoView.setImageBitmap(bitmap)
|
||||
fab.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
try {
|
||||
downloadPic();
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
downloadPic()
|
||||
} catch (e: FileNotFoundException) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
return view;
|
||||
return view
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
|
||||
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
}
|
||||
@Override
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
((AppCompatActivity)getActivity()).getSupportActionBar().show();
|
||||
getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
(activity as AppCompatActivity?)!!.supportActionBar!!.hide()
|
||||
activity!!.window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
||||
}
|
||||
|
||||
private void downloadPic() throws FileNotFoundException {
|
||||
File f = Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES);
|
||||
String fname = "driver"+ getDateStamp() + ".jpg";
|
||||
File image = new File(f,fname);
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(image);
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
(activity as AppCompatActivity?)!!.supportActionBar!!.show()
|
||||
activity!!.window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
||||
}
|
||||
|
||||
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 {
|
||||
fileOutputStream.flush();
|
||||
fileOutputStream.close();
|
||||
|
||||
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
|
||||
Uri contentUri = Uri.fromFile(image);
|
||||
mediaScanIntent.setData(contentUri);
|
||||
getActivity().sendBroadcast(mediaScanIntent);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
fileOutputStream.flush()
|
||||
fileOutputStream.close()
|
||||
val mediaScanIntent: Intent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)
|
||||
val contentUri: Uri = Uri.fromFile(image)
|
||||
mediaScanIntent.data = contentUri
|
||||
activity!!.sendBroadcast(mediaScanIntent)
|
||||
} catch (e: IOException) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
val IMAGE_VALUE: String = "image"
|
||||
private var bitmap: Bitmap? = null
|
||||
}
|
||||
}
|
||||
@@ -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.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Toast;
|
||||
import android.app.Activity
|
||||
import android.app.AlertDialog
|
||||
import android.content.DialogInterface
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import android.widget.Toast
|
||||
import com.google.android.gms.tasks.OnCompleteListener
|
||||
import com.google.android.gms.tasks.Task
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_CONSTANT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_DENIED;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVAL_PENDING;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.APPROVED;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_DETAILS_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_APPROVALS;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_DETAILS_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
|
||||
public class SetApprovalDialog{
|
||||
|
||||
private final String[] groupNames = {"Pending","Denied","Approved"};
|
||||
private String approvalNameString;
|
||||
|
||||
public int statusCode;
|
||||
private Activity activity;
|
||||
private String userId;
|
||||
private ImageView imageView;
|
||||
|
||||
public SetApprovalDialog(int statusCode, Activity activity, String userId, int position, ImageView imageView) {
|
||||
this.statusCode = statusCode;
|
||||
this.activity = activity;
|
||||
this.userId = userId;
|
||||
this.imageView = imageView;
|
||||
this.approvalNameString = getElement(position);
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
public void init(){
|
||||
int checkedItem;
|
||||
switch (statusCode){
|
||||
case APPROVAL_PENDING:
|
||||
checkedItem = 0;
|
||||
break;
|
||||
case APPROVAL_DENIED:
|
||||
checkedItem = 1;
|
||||
break;
|
||||
case APPROVED:
|
||||
checkedItem = 2;
|
||||
break;
|
||||
default:
|
||||
checkedItem = -1;
|
||||
break;
|
||||
class SetApprovalDialog constructor(
|
||||
var statusCode: Int,
|
||||
private val activity: Activity,
|
||||
private val userId: String?,
|
||||
position: Int,
|
||||
private val imageView: ImageView
|
||||
) {
|
||||
private val groupNames: Array<String> = arrayOf("Pending", "Denied", "Approved")
|
||||
private val approvalNameString: String
|
||||
fun init() {
|
||||
val checkedItem: Int
|
||||
when (statusCode) {
|
||||
FirebaseClass.APPROVAL_PENDING -> checkedItem = 0
|
||||
FirebaseClass.APPROVAL_DENIED -> checkedItem = 1
|
||||
FirebaseClass.APPROVED -> checkedItem = 2
|
||||
else -> checkedItem = -1
|
||||
}
|
||||
|
||||
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(activity);
|
||||
alertBuilder.setSingleChoiceItems(groupNames, checkedItem, singleChoiceListener);
|
||||
// .setPositiveButton(android.R.string.ok, submit);
|
||||
alertBuilder.create().getOwnerActivity();
|
||||
alertBuilder.show();
|
||||
val alertBuilder: AlertDialog.Builder = AlertDialog.Builder(
|
||||
activity
|
||||
)
|
||||
alertBuilder.setSingleChoiceItems(groupNames, checkedItem, singleChoiceListener)
|
||||
// .setPositiveButton(android.R.string.ok, submit);
|
||||
alertBuilder.create().ownerActivity
|
||||
alertBuilder.show()
|
||||
}
|
||||
|
||||
DialogInterface.OnClickListener singleChoiceListener = new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
switch (which) {
|
||||
case 0:
|
||||
statusCode = APPROVAL_PENDING;
|
||||
publishStatuscode(statusCode, dialog);
|
||||
return;
|
||||
case 1:
|
||||
statusCode = APPROVAL_DENIED;
|
||||
publishStatuscode(statusCode, dialog);
|
||||
return;
|
||||
case 2:
|
||||
statusCode = APPROVED;
|
||||
publishStatuscode(statusCode, dialog);
|
||||
return;
|
||||
var singleChoiceListener: DialogInterface.OnClickListener =
|
||||
object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, which: Int) {
|
||||
when (which) {
|
||||
0 -> {
|
||||
statusCode = FirebaseClass.APPROVAL_PENDING
|
||||
publishStatuscode(statusCode, dialog)
|
||||
return
|
||||
}
|
||||
1 -> {
|
||||
statusCode = FirebaseClass.APPROVAL_DENIED
|
||||
publishStatuscode(statusCode, dialog)
|
||||
return
|
||||
}
|
||||
2 -> {
|
||||
statusCode = FirebaseClass.APPROVED
|
||||
publishStatuscode(statusCode, dialog)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private void publishStatuscode(final int status, final DialogInterface dialog){
|
||||
viewController.progress(View.VISIBLE);
|
||||
|
||||
if (!approvalNameString.equals("")){
|
||||
mDatabase.child(USER_FIREBASE).child(userId).child(USER_APPROVALS).child(approvalNameString)
|
||||
.setValue(status).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Toast.makeText(activity, "Status change successful", Toast.LENGTH_SHORT).show();
|
||||
imageView.setImageResource(approvalsClass.setImageResource(status));
|
||||
dialog.dismiss();
|
||||
}else{
|
||||
Toast.makeText(activity, "Status change unsuccessful", Toast.LENGTH_SHORT).show();
|
||||
private fun publishStatuscode(status: Int, dialog: DialogInterface) {
|
||||
MainActivity.viewController!!.progress(View.VISIBLE)
|
||||
if (!(approvalNameString == "")) {
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
|
||||
(userId)!!
|
||||
).child(FirebaseClass.USER_APPROVALS).child(approvalNameString)
|
||||
.setValue(status).addOnCompleteListener(object : OnCompleteListener<Void?> {
|
||||
override fun onComplete(task: Task<Void?>) {
|
||||
if (task.isSuccessful) {
|
||||
Toast.makeText(activity, "Status change successful", Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
imageView.setImageResource(
|
||||
MainActivity.approvalsClass!!.setImageResource(
|
||||
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){
|
||||
String element = "";
|
||||
|
||||
switch (i){
|
||||
case 0:
|
||||
element = DRIVER_DETAILS_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 1:
|
||||
element = DRIVERS_LICENSE_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 2:
|
||||
element = PRIVATE_HIRE_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 3:
|
||||
element = VEHICLE_DETAILS_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 4:
|
||||
element = INSURANCE_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 5:
|
||||
element = MOT_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 6:
|
||||
element = LOG_BOOK_FIREBASE + APPROVAL_CONSTANT;
|
||||
break;
|
||||
case 7:
|
||||
element = PRIVATE_HIRE_VEHICLE_LICENSE + APPROVAL_CONSTANT;
|
||||
|
||||
private fun getElement(i: Int): String {
|
||||
var element: String = ""
|
||||
when (i) {
|
||||
0 -> element =
|
||||
FirebaseClass.DRIVER_DETAILS_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
|
||||
1 -> element =
|
||||
FirebaseClass.DRIVERS_LICENSE_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
|
||||
2 -> element =
|
||||
FirebaseClass.PRIVATE_HIRE_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
|
||||
3 -> element =
|
||||
FirebaseClass.VEHICLE_DETAILS_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
|
||||
4 -> element =
|
||||
FirebaseClass.INSURANCE_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
|
||||
5 -> element =
|
||||
FirebaseClass.MOT_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
|
||||
6 -> element =
|
||||
FirebaseClass.LOG_BOOK_FIREBASE + FirebaseClass.APPROVAL_CONSTANT
|
||||
7 -> element =
|
||||
FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE + FirebaseClass.APPROVAL_CONSTANT
|
||||
}
|
||||
|
||||
return element;
|
||||
return element
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
approvalNameString = getElement(position)
|
||||
init()
|
||||
}
|
||||
}
|
||||
@@ -1,32 +1,23 @@
|
||||
package h_mal.appttude.com.driver.Global;
|
||||
package h_mal.appttude.com.driver.Global
|
||||
|
||||
import android.app.Activity;
|
||||
import android.view.View;
|
||||
import android.app.Activity
|
||||
|
||||
public class ViewController {
|
||||
|
||||
private Activity activity;
|
||||
|
||||
public ViewController(Activity activity) {
|
||||
this.activity = activity;
|
||||
}
|
||||
|
||||
public void progress(int vis){
|
||||
if (activity instanceof ViewControllerInterface){
|
||||
((ViewControllerInterface) activity).progressVisibility(vis);
|
||||
class ViewController constructor(private val activity: Activity?) {
|
||||
fun progress(vis: Int) {
|
||||
if (activity is ViewControllerInterface) {
|
||||
(activity as ViewControllerInterface).progressVisibility(vis)
|
||||
}
|
||||
}
|
||||
|
||||
public void reloadDrawer(){
|
||||
if (activity instanceof ViewControllerInterface){
|
||||
((ViewControllerInterface) activity).updateDrawer();
|
||||
fun reloadDrawer() {
|
||||
if (activity is ViewControllerInterface) {
|
||||
(activity as ViewControllerInterface).updateDrawer()
|
||||
}
|
||||
}
|
||||
|
||||
public interface ViewControllerInterface {
|
||||
|
||||
void progressVisibility(int vis);
|
||||
|
||||
void updateDrawer();
|
||||
open interface ViewControllerInterface {
|
||||
fun progressVisibility(vis: Int)
|
||||
fun updateDrawer()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,397 +1,318 @@
|
||||
package h_mal.appttude.com.driver;
|
||||
package h_mal.appttude.com.driver
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.support.design.widget.NavigationView;
|
||||
import android.support.v4.view.GravityCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.support.v7.app.ActionBarDrawerToggle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.auth.FirebaseUser;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.FirebaseDatabase;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.google.firebase.storage.FirebaseStorage;
|
||||
import com.google.firebase.storage.StorageReference;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.squareup.picasso.Target;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import h_mal.appttude.com.driver.Driver.DriverOverallFragment;
|
||||
import h_mal.appttude.com.driver.Driver.VehicleOverallFragment;
|
||||
import h_mal.appttude.com.driver.Driver.VehicleSetupFragment;
|
||||
import h_mal.appttude.com.driver.Driver.DriverProfileFragment;
|
||||
import h_mal.appttude.com.driver.Driver.homeDriverFragment;
|
||||
import h_mal.appttude.com.driver.Global.ApprovalsClass;
|
||||
import h_mal.appttude.com.driver.Global.ArchiveClass;
|
||||
import h_mal.appttude.com.driver.Global.ImageViewClass;
|
||||
import h_mal.appttude.com.driver.Global.ViewController;
|
||||
import h_mal.appttude.com.driver.SuperUser.homeSuperUserFragment;
|
||||
import h_mal.appttude.com.driver.User.LoginActivity;
|
||||
import h_mal.appttude.com.driver.User.profileFragment;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
|
||||
public class MainActivity extends AppCompatActivity
|
||||
implements NavigationView.OnNavigationItemSelectedListener, 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");
|
||||
import android.Manifest
|
||||
import android.app.Activity
|
||||
import android.app.AlertDialog
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import android.widget.ProgressBar
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.ActionBarDrawerToggle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.view.GravityCompat
|
||||
import androidx.drawerlayout.widget.DrawerLayout
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import com.google.android.material.navigation.NavigationView
|
||||
import com.google.firebase.auth.FirebaseAuth
|
||||
import com.google.firebase.auth.FirebaseUser
|
||||
import com.google.firebase.database.*
|
||||
import com.google.firebase.storage.FirebaseStorage
|
||||
import com.google.firebase.storage.StorageReference
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.GsonBuilder
|
||||
import com.google.gson.JsonElement
|
||||
import com.google.gson.JsonParser
|
||||
import com.squareup.picasso.Picasso
|
||||
import com.squareup.picasso.Picasso.LoadedFrom
|
||||
import com.squareup.picasso.Target
|
||||
import h_mal.appttude.com.driver.Driver.DriverOverallFragment
|
||||
import h_mal.appttude.com.driver.Driver.VehicleOverallFragment
|
||||
import h_mal.appttude.com.driver.Driver.homeDriverFragment
|
||||
import h_mal.appttude.com.driver.Global.*
|
||||
import h_mal.appttude.com.driver.Global.ViewController.ViewControllerInterface
|
||||
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 java.text.ParseException
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
||||
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
|
||||
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
|
||||
drawer.addDrawerListener(toggle);
|
||||
toggle.syncState();
|
||||
|
||||
navigationView = (NavigationView) findViewById(R.id.nav_view);
|
||||
navigationView.setNavigationItemSelectedListener(this);
|
||||
setupDrawer();
|
||||
|
||||
fragmentManager = getSupportFragmentManager();
|
||||
fragmentManager.addOnBackStackChangedListener(backStackChangedListener);
|
||||
|
||||
progressBar = findViewById(R.id.progress_bar);
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
|
||||
ref.addListenerForSingleValueEvent(new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
|
||||
String role = (String) dataSnapshot.getValue();
|
||||
Log.i(TAG, "onDataChange: " + role);
|
||||
if (role.equals("driver")){
|
||||
executeFragment(new homeDriverFragment());
|
||||
|
||||
}else if(role.equals("super_user")){
|
||||
executeFragment(new homeSuperUserFragment());
|
||||
class MainActivity : AppCompatActivity(),
|
||||
NavigationView.OnNavigationItemSelectedListener, ViewControllerInterface {
|
||||
var navigationView: NavigationView? = null
|
||||
var progressBar: ProgressBar? = null
|
||||
var toolbar: Toolbar? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
viewController = ViewController(this)
|
||||
imageViewClass = ImageViewClass()
|
||||
approvalsClass = ApprovalsClass()
|
||||
archiveClass = ArchiveClass()
|
||||
auth = FirebaseAuth.getInstance()
|
||||
storage = FirebaseStorage.getInstance()
|
||||
storageReference = storage!!.reference
|
||||
mDatabase = FirebaseDatabase.getInstance().reference
|
||||
val ref: DatabaseReference = mDatabase!!.child(FirebaseClass.USER_FIREBASE)
|
||||
.child(auth.getCurrentUser()!!.uid)
|
||||
.child("role")
|
||||
toolbar = findViewById<View>(R.id.toolbar) as Toolbar?
|
||||
setSupportActionBar(toolbar)
|
||||
val drawer: DrawerLayout = findViewById<View>(R.id.drawer_layout) as DrawerLayout
|
||||
val toggle: ActionBarDrawerToggle = ActionBarDrawerToggle(
|
||||
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close
|
||||
)
|
||||
drawer.addDrawerListener(toggle)
|
||||
toggle.syncState()
|
||||
navigationView = findViewById<View>(R.id.nav_view) as NavigationView?
|
||||
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);
|
||||
progressBar.setVisibility(View.GONE);
|
||||
drawerMenuItems(role)
|
||||
progressBar.setVisibility(View.GONE)
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
override fun onCancelled(databaseError: DatabaseError) {
|
||||
progressBar.setVisibility(View.GONE)
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
public FragmentManager.OnBackStackChangedListener backStackChangedListener= new FragmentManager.OnBackStackChangedListener() {
|
||||
@Override
|
||||
public void onBackStackChanged() {
|
||||
String fragmentString = fragmentManager.getFragments().get(0).getClass().getSimpleName();
|
||||
String title;
|
||||
|
||||
switch (fragmentString){
|
||||
case "DriverProfileFragment":
|
||||
title = "Driver Profile";
|
||||
break;
|
||||
case "DriverLicenseFragment":
|
||||
title = "Drivers License";
|
||||
break;
|
||||
case "InsuranceFragment":
|
||||
title = "Insurance";
|
||||
break;
|
||||
case "logbookFragment":
|
||||
title = "Logbook";
|
||||
break;
|
||||
case "MotFragment":
|
||||
title = "M.O.T";
|
||||
break;
|
||||
case "PrivateHireLicenseFragment":
|
||||
title = "Private Hire License";
|
||||
break;
|
||||
case "VehicleSetupFragment":
|
||||
title = "Vehicle Profile";
|
||||
break;
|
||||
case "UserMainFragment":
|
||||
return;
|
||||
case "ArchiveFragment":
|
||||
return;
|
||||
default:
|
||||
title = getResources().getString(R.string.app_name);
|
||||
var backStackChangedListener: FragmentManager.OnBackStackChangedListener =
|
||||
object : FragmentManager.OnBackStackChangedListener {
|
||||
override fun onBackStackChanged() {
|
||||
val fragmentString: String =
|
||||
fragmentManager!!.fragments.get(0).javaClass.simpleName
|
||||
val title: String
|
||||
when (fragmentString) {
|
||||
"DriverProfileFragment" -> title = "Driver Profile"
|
||||
"DriverLicenseFragment" -> title = "Drivers License"
|
||||
"InsuranceFragment" -> title = "Insurance"
|
||||
"logbookFragment" -> title = "Logbook"
|
||||
"MotFragment" -> title = "M.O.T"
|
||||
"PrivateHireLicenseFragment" -> title = "Private Hire License"
|
||||
"VehicleSetupFragment" -> title = "Vehicle Profile"
|
||||
"UserMainFragment" -> return
|
||||
"ArchiveFragment" -> return
|
||||
else -> title = resources.getString(R.string.app_name)
|
||||
}
|
||||
setTitle(title)
|
||||
}
|
||||
|
||||
setTitle(title);
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void setTitle(CharSequence title) {
|
||||
// super.setTitle(title);
|
||||
|
||||
toolbar.setTitle(title);
|
||||
override fun setTitle(title: CharSequence) {
|
||||
toolbar!!.title = title
|
||||
}
|
||||
|
||||
public void drawerMenuItems(String s){
|
||||
if (s.equals("super_user")){
|
||||
Menu menu = navigationView.getMenu();
|
||||
menu.removeGroup(R.id.menu_group);
|
||||
fun drawerMenuItems(s: String?) {
|
||||
if ((s == "super_user")) {
|
||||
val menu: Menu = navigationView!!.menu
|
||||
menu.removeGroup(R.id.menu_group)
|
||||
}
|
||||
}
|
||||
|
||||
public void setupDrawer(){
|
||||
View header = navigationView.getHeaderView(0);
|
||||
|
||||
TextView driverEmail = header.findViewById(R.id.driver_email);
|
||||
TextView driverName = header.findViewById(R.id.driver_name);
|
||||
ImageView driverImage = header.findViewById(R.id.profileImage);
|
||||
|
||||
if (auth != null){
|
||||
FirebaseUser user = auth.getCurrentUser();
|
||||
if (user.getEmail() != null){
|
||||
driverEmail.setText(user.getEmail());
|
||||
fun setupDrawer() {
|
||||
val header: View = navigationView!!.getHeaderView(0)
|
||||
val driverEmail: TextView = header.findViewById(R.id.driver_email)
|
||||
val driverName: TextView = header.findViewById(R.id.driver_name)
|
||||
val driverImage: ImageView = header.findViewById(R.id.profileImage)
|
||||
if (auth != null) {
|
||||
val user: FirebaseUser? = auth!!.currentUser
|
||||
if (user!!.email != null) {
|
||||
driverEmail.text = user.email
|
||||
}
|
||||
if (user.getDisplayName() != null){
|
||||
driverName.setText(user.getDisplayName());
|
||||
if (user.displayName != null) {
|
||||
driverName.text = user.displayName
|
||||
}
|
||||
|
||||
Picasso.get()
|
||||
.load(user.getPhotoUrl())
|
||||
.placeholder(R.drawable.choice_img_round)
|
||||
.into(driverImage);
|
||||
.load(user.photoUrl)
|
||||
.placeholder(R.drawable.choice_img_round)
|
||||
.into(driverImage)
|
||||
}
|
||||
|
||||
TextView textView = findViewById(R.id.logout);
|
||||
textView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
auth.signOut();
|
||||
Intent intent = new Intent(getApplicationContext(),LoginActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
val textView: TextView = findViewById(R.id.logout)
|
||||
textView.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
auth!!.signOut()
|
||||
val intent: Intent = Intent(applicationContext, LoginActivity::class.java)
|
||||
startActivity(intent)
|
||||
finish()
|
||||
}
|
||||
});
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||
override fun onBackPressed() {
|
||||
val drawer: DrawerLayout = findViewById<View>(R.id.drawer_layout) as DrawerLayout
|
||||
if (drawer.isDrawerOpen(GravityCompat.START)) {
|
||||
drawer.closeDrawer(GravityCompat.START);
|
||||
drawer.closeDrawer(GravityCompat.START)
|
||||
} else {
|
||||
if (fragmentManager.getBackStackEntryCount() > 1) {
|
||||
if (fragmentManager.getFragments().get(0).getClass()
|
||||
.getSimpleName().equals("InsuranceFragment")){
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle("Return to previous?")
|
||||
.setMessage("Progress unsaved. Are you sure?")
|
||||
.setNegativeButton(android.R.string.no, null)
|
||||
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface arg0, int arg1) {
|
||||
fragmentManager.popBackStack();
|
||||
}
|
||||
}).create().show();
|
||||
}else{
|
||||
fragmentManager.popBackStack();
|
||||
}
|
||||
|
||||
}else{
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle("Leave?")
|
||||
.setMessage("Are you sure you want to exit?")
|
||||
if (fragmentManager!!.backStackEntryCount > 1) {
|
||||
if ((fragmentManager!!.fragments.get(0).javaClass
|
||||
.simpleName == "InsuranceFragment")
|
||||
) {
|
||||
AlertDialog.Builder(this)
|
||||
.setTitle("Return to previous?")
|
||||
.setMessage("Progress unsaved. Are you sure?")
|
||||
.setNegativeButton(android.R.string.no, null)
|
||||
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface arg0, int arg1) {
|
||||
finish();
|
||||
System.exit(0);
|
||||
.setPositiveButton(
|
||||
android.R.string.yes,
|
||||
object : DialogInterface.OnClickListener {
|
||||
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
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
// Handle action bar item clicks here. The action bar will
|
||||
// automatically handle clicks on the Home/Up button, so long
|
||||
// as you specify a parent activity in AndroidManifest.xml.
|
||||
int id = item.getItemId();
|
||||
|
||||
//noinspection SimplifiableIfStatement
|
||||
val id: Int = item.itemId
|
||||
if (id == R.id.action_settings) {
|
||||
return true;
|
||||
return true
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
@SuppressWarnings("StatementWithEmptyBody")
|
||||
@Override
|
||||
public boolean onNavigationItemSelected(MenuItem item) {
|
||||
override fun onNavigationItemSelected(item: MenuItem): Boolean {
|
||||
// Handle navigation view item clicks here.
|
||||
int id = item.getItemId();
|
||||
|
||||
val id: Int = item.itemId
|
||||
if (id == R.id.nav_camera) {
|
||||
// Handle the camera action
|
||||
executeFragment(new profileFragment());
|
||||
ExecuteFragment.executeFragment(profileFragment())
|
||||
} else if (id == R.id.nav_gallery) {
|
||||
executeFragment(new DriverOverallFragment());
|
||||
ExecuteFragment.executeFragment(DriverOverallFragment())
|
||||
} else if (id == R.id.nav_slideshow) {
|
||||
executeFragment(new VehicleOverallFragment());
|
||||
ExecuteFragment.executeFragment(VehicleOverallFragment())
|
||||
}
|
||||
|
||||
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||
drawer.closeDrawer(GravityCompat.START);
|
||||
return true;
|
||||
val drawer: DrawerLayout = findViewById<View>(R.id.drawer_layout) as DrawerLayout
|
||||
drawer.closeDrawer(GravityCompat.START)
|
||||
return true
|
||||
}
|
||||
|
||||
public static void verifyStoragePermissions(Activity activity) {
|
||||
// Check if we have write permission
|
||||
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
override fun progressVisibility(vis: Int) {
|
||||
progressBar!!.visibility = vis
|
||||
}
|
||||
|
||||
if (permission != PackageManager.PERMISSION_GRANTED) {
|
||||
// We don't have permission so prompt the user
|
||||
ActivityCompat.requestPermissions(
|
||||
activity,
|
||||
override fun updateDrawer() {
|
||||
setupDrawer()
|
||||
}
|
||||
|
||||
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,
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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.List;
|
||||
import java.util.*
|
||||
|
||||
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;
|
||||
public HashMap<String,PrivateHireObject> private_hire;
|
||||
public HashMap<String,VehicleProfileObject> vehicle_details;
|
||||
public HashMap<String,InsuranceObject> insurance_details;
|
||||
public HashMap<String,MotObject> mot_details;
|
||||
public HashMap<String,LogbookObject> log_book;
|
||||
public HashMap<String,PrivateHireVehicleObject> private_hire_vehicle;
|
||||
|
||||
public ArchiveObject() {
|
||||
constructor()
|
||||
constructor(
|
||||
driver_license: HashMap<String, DriversLicenseObject>?,
|
||||
private_hire: HashMap<String, PrivateHireObject>?,
|
||||
vehicle_details: HashMap<String, VehicleProfileObject>?,
|
||||
insurance_details: HashMap<String, InsuranceObject>?,
|
||||
mot_details: HashMap<String, MotObject>?,
|
||||
log_book: HashMap<String, LogbookObject>?,
|
||||
private_hire_vehicle: HashMap<String, PrivateHireVehicleObject>?
|
||||
) {
|
||||
this.driver_license = driver_license
|
||||
this.private_hire = private_hire
|
||||
this.vehicle_details = vehicle_details
|
||||
this.insurance_details = insurance_details
|
||||
this.mot_details = mot_details
|
||||
this.log_book = log_book
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
public String insurerName;
|
||||
public String expiryDate;
|
||||
class InsuranceObject {
|
||||
var photoStrings: MutableList<String?>? = null
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
this.photoString = photoString;
|
||||
this.v5cnumber = v5cnumber;
|
||||
class LogbookObject {
|
||||
var photoString: String? = null
|
||||
var v5cnumber: String? = null
|
||||
|
||||
constructor(photoString: String?, v5cnumber: String?) {
|
||||
this.photoString = photoString
|
||||
this.v5cnumber = v5cnumber
|
||||
}
|
||||
|
||||
public LogbookObject() {
|
||||
}
|
||||
|
||||
public String getPhotoString() {
|
||||
return photoString;
|
||||
}
|
||||
|
||||
public String getV5cnumber() {
|
||||
return v5cnumber;
|
||||
}
|
||||
}
|
||||
constructor()
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
this.phCarImageString = phCarImageString;
|
||||
this.phCarNumber = phCarNumber;
|
||||
this.phCarExpiry = phCarExpiry;
|
||||
class PrivateHireVehicleObject {
|
||||
var phCarImageString: String? = null
|
||||
var phCarNumber: String? = null
|
||||
var phCarExpiry: String? = null
|
||||
|
||||
constructor(phCarImageString: String?, phCarNumber: String?, phCarExpiry: String?) {
|
||||
this.phCarImageString = phCarImageString
|
||||
this.phCarNumber = phCarNumber
|
||||
this.phCarExpiry = phCarExpiry
|
||||
}
|
||||
|
||||
public PrivateHireVehicleObject() {
|
||||
}
|
||||
|
||||
public String getPhCarImageString() {
|
||||
return phCarImageString;
|
||||
}
|
||||
|
||||
public String getPhCarNumber() {
|
||||
return phCarNumber;
|
||||
}
|
||||
|
||||
public String getPhCarExpiry() {
|
||||
return phCarExpiry;
|
||||
}
|
||||
}
|
||||
constructor()
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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.ArchiveObject;
|
||||
import h_mal.appttude.com.driver.Objects.UserObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.DriverProfile;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.VehicleProfile;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.DriverProfile
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.VehicleProfile
|
||||
|
||||
public class WholeDriverObject {
|
||||
|
||||
public DriverProfile driver_profile;
|
||||
public String role;
|
||||
public ArchiveObject archive;
|
||||
public UserObject user_details;
|
||||
public VehicleProfile vehicle_profile;
|
||||
public ApprovalsObject approvalsObject;
|
||||
public String driver_number;
|
||||
class WholeDriverObject {
|
||||
var driver_profile: DriverProfile? = null
|
||||
var role: String? = null
|
||||
var archive: ArchiveObject? = null
|
||||
var user_details: UserObject? = null
|
||||
var vehicle_profile: VehicleProfile? = null
|
||||
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) {
|
||||
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;
|
||||
constructor(
|
||||
driver_profile: DriverProfile?,
|
||||
role: String?,
|
||||
archive: ArchiveObject?,
|
||||
user_details: UserObject?,
|
||||
vehicle_profile: VehicleProfile?,
|
||||
approvalsObject: ApprovalsObject?,
|
||||
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() {
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
constructor()
|
||||
}
|
||||
@@ -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.DriversLicenseObject;
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject;
|
||||
import h_mal.appttude.com.driver.Objects.DriverProfileObject
|
||||
import h_mal.appttude.com.driver.Objects.DriversLicenseObject
|
||||
import h_mal.appttude.com.driver.Objects.PrivateHireObject
|
||||
|
||||
public class DriverProfile {
|
||||
|
||||
public DriverProfileObject driver_profile;
|
||||
public DriversLicenseObject driver_license;
|
||||
public PrivateHireObject private_hire;
|
||||
class DriverProfile {
|
||||
var driver_profile: DriverProfileObject? = null
|
||||
var driver_license: DriversLicenseObject? = null
|
||||
var private_hire: PrivateHireObject? = null
|
||||
|
||||
public DriverProfile(DriverProfileObject driver_profile, DriversLicenseObject driver_license, PrivateHireObject private_hire) {
|
||||
this.driver_profile = driver_profile;
|
||||
this.driver_license = driver_license;
|
||||
this.private_hire = private_hire;
|
||||
constructor(
|
||||
driver_profile: DriverProfileObject?,
|
||||
driver_license: DriversLicenseObject?,
|
||||
private_hire: PrivateHireObject?
|
||||
) {
|
||||
this.driver_profile = driver_profile
|
||||
this.driver_license = driver_license
|
||||
this.private_hire = private_hire
|
||||
}
|
||||
|
||||
public DriverProfile() {
|
||||
}
|
||||
|
||||
public DriverProfileObject getDriver_profile() {
|
||||
return driver_profile;
|
||||
}
|
||||
|
||||
public DriversLicenseObject getDriver_license() {
|
||||
return driver_license;
|
||||
}
|
||||
|
||||
public PrivateHireObject getPrivate_hire() {
|
||||
return private_hire;
|
||||
}
|
||||
}
|
||||
constructor()
|
||||
}
|
||||
@@ -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.Parcelable;
|
||||
import android.os.Parcel
|
||||
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;
|
||||
public WholeDriverObject wholeDriverObject;
|
||||
|
||||
public MappedObject(String userId, WholeDriverObject wholeDriverObject) {
|
||||
this.userId = userId;
|
||||
this.wholeDriverObject = wholeDriverObject;
|
||||
constructor(userId: String?, wholeDriverObject: WholeDriverObject?) {
|
||||
this.userId = userId
|
||||
this.wholeDriverObject = wholeDriverObject
|
||||
}
|
||||
|
||||
public MappedObject() {
|
||||
constructor()
|
||||
protected constructor(`in`: Parcel) {
|
||||
userId = `in`.readString()
|
||||
}
|
||||
|
||||
protected MappedObject(Parcel in) {
|
||||
userId = in.readString();
|
||||
override fun describeContents(): Int {
|
||||
return 0
|
||||
}
|
||||
|
||||
public static final Creator<MappedObject> CREATOR = new Creator<MappedObject>() {
|
||||
@Override
|
||||
public MappedObject createFromParcel(Parcel in) {
|
||||
return new MappedObject(in);
|
||||
override fun writeToParcel(dest: Parcel, flags: Int) {
|
||||
dest.writeString(userId)
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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.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;
|
||||
import h_mal.appttude.com.driver.Objects.*
|
||||
|
||||
public class VehicleProfile {
|
||||
|
||||
public InsuranceObject insurance_details;
|
||||
public LogbookObject log_book;
|
||||
public MotObject mot_details;
|
||||
public VehicleProfileObject vehicle_details;
|
||||
public PrivateHireVehicleObject private_hire_vehicle;
|
||||
class VehicleProfile {
|
||||
var insurance_details: InsuranceObject? = null
|
||||
var log_book: LogbookObject? = null
|
||||
var mot_details: MotObject? = null
|
||||
var vehicle_details: VehicleProfileObject? = null
|
||||
var privateHireVehicleObject: PrivateHireVehicleObject? = null
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,305 +1,249 @@
|
||||
package h_mal.appttude.com.driver.SuperUser;
|
||||
package h_mal.appttude.com.driver.SuperUser
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.util.DisplayMetrics
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ArrayAdapter
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import h_mal.appttude.com.driver.Archive.ArchiveFragment
|
||||
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;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVERS_LICENSE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.INSURANCE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.LOG_BOOK_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.MOT_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.NO_DATE_PRESENT;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.VEHICLE_DETAILS_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.archiveClass;
|
||||
|
||||
public class ApprovalListAdapter extends ArrayAdapter<MappedObject> {
|
||||
|
||||
private String TAG = "ApprovalListAdapter";
|
||||
|
||||
String [] names = {"Driver Profile","Driver License","Private Hire","Vehicle Profile","Insurance","MOT","Logbook","P/H Vehicle"};
|
||||
|
||||
MappedObject mappedObject;
|
||||
Activity activity;
|
||||
int approvalCode;
|
||||
|
||||
public ApprovalListAdapter(@NonNull Activity activity, @NonNull MappedObject[] objects) {
|
||||
super(activity, 0, objects);
|
||||
this.mappedObject = objects[0];
|
||||
this.activity = activity;
|
||||
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||
View listItemView = convertView;
|
||||
class ApprovalListAdapter constructor(activity: Activity, objects: Array<MappedObject>) :
|
||||
ArrayAdapter<MappedObject?>(activity, 0, objects) {
|
||||
private val TAG: String = "ApprovalListAdapter"
|
||||
var names: Array<String> = arrayOf(
|
||||
"Driver Profile",
|
||||
"Driver License",
|
||||
"Private Hire",
|
||||
"Vehicle Profile",
|
||||
"Insurance",
|
||||
"MOT",
|
||||
"Logbook",
|
||||
"P/H Vehicle"
|
||||
)
|
||||
var mappedObject: MappedObject
|
||||
var activity: Activity
|
||||
var approvalCode: Int = 0
|
||||
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
|
||||
var listItemView: View? = convertView
|
||||
if (listItemView == null) {
|
||||
listItemView = LayoutInflater.from(activity).inflate(
|
||||
R.layout.approval_list_grid_item, parent, false);
|
||||
R.layout.approval_list_grid_item, parent, false
|
||||
)
|
||||
}
|
||||
|
||||
approvalCode = getApprovalStatusCode(position);
|
||||
|
||||
TextView textView = listItemView.findViewById(R.id.approval_text);
|
||||
textView.setText(names[position]);
|
||||
|
||||
final ImageView imageView = listItemView.findViewById(R.id.approval_iv);
|
||||
imageView.setImageResource(approvalsClass.setImageResource(approvalCode));
|
||||
|
||||
imageView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
new SetApprovalDialog(approvalCode,activity,mappedObject.getUserId(),position,imageView);
|
||||
approvalCode = getApprovalStatusCode(position)
|
||||
val textView: TextView = listItemView!!.findViewById(R.id.approval_text)
|
||||
textView.text = names.get(position)
|
||||
val imageView: ImageView = listItemView.findViewById(R.id.approval_iv)
|
||||
imageView.setImageResource(
|
||||
MainActivity.approvalsClass!!.setImageResource(
|
||||
approvalCode
|
||||
)
|
||||
)
|
||||
imageView.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
SetApprovalDialog(
|
||||
approvalCode,
|
||||
activity,
|
||||
mappedObject.getUserId(),
|
||||
position,
|
||||
imageView
|
||||
)
|
||||
}
|
||||
});
|
||||
|
||||
ImageView archiveImage = listItemView.findViewById(R.id.archive_icon);
|
||||
if (mappedObject.getWholeDriverObject().archive != null){
|
||||
Log.i(TAG, "getView: archive = " + getArchive(position,mappedObject.getWholeDriverObject().getArchive()));
|
||||
archiveImage.setVisibility(getArchive(position,mappedObject.getWholeDriverObject().getArchive()));
|
||||
archiveImage.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
String s = null;
|
||||
switch (position){
|
||||
case 1:
|
||||
s = DRIVERS_LICENSE_FIREBASE;
|
||||
break;
|
||||
case 2:
|
||||
s = PRIVATE_HIRE_FIREBASE;
|
||||
break;
|
||||
case 3:
|
||||
s = VEHICLE_DETAILS_FIREBASE;
|
||||
break;
|
||||
case 4:
|
||||
s = INSURANCE_FIREBASE;
|
||||
break;
|
||||
case 5:
|
||||
s = MOT_FIREBASE;
|
||||
break;
|
||||
case 6:
|
||||
s = LOG_BOOK_FIREBASE;
|
||||
break;
|
||||
case 7:
|
||||
s = PRIVATE_HIRE_VEHICLE_LICENSE;
|
||||
break;
|
||||
|
||||
})
|
||||
val archiveImage: ImageView = listItemView.findViewById(R.id.archive_icon)
|
||||
if (mappedObject.getWholeDriverObject().archive != null) {
|
||||
Log.i(
|
||||
TAG,
|
||||
"getView: archive = " + getArchive(
|
||||
position,
|
||||
mappedObject.getWholeDriverObject().getArchive()
|
||||
)
|
||||
)
|
||||
archiveImage.visibility = getArchive(
|
||||
position,
|
||||
mappedObject.getWholeDriverObject().getArchive()
|
||||
)
|
||||
archiveImage.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
var s: String? = null
|
||||
when (position) {
|
||||
1 -> s = FirebaseClass.DRIVERS_LICENSE_FIREBASE
|
||||
2 -> s = FirebaseClass.PRIVATE_HIRE_FIREBASE
|
||||
3 -> s = FirebaseClass.VEHICLE_DETAILS_FIREBASE
|
||||
4 -> s = FirebaseClass.INSURANCE_FIREBASE
|
||||
5 -> s = FirebaseClass.MOT_FIREBASE
|
||||
6 -> s = FirebaseClass.LOG_BOOK_FIREBASE
|
||||
7 -> s = FirebaseClass.PRIVATE_HIRE_VEHICLE_LICENSE
|
||||
}
|
||||
executeFragment(new ArchiveFragment(),mappedObject.getUserId(),s);
|
||||
ExecuteFragment.executeFragment(ArchiveFragment(), mappedObject.getUserId(), s)
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
listItemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
getFragment(position);
|
||||
listItemView.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
getFragment(position)
|
||||
}
|
||||
});
|
||||
|
||||
listItemView.setMinimumHeight(parent.getHeight()/4);
|
||||
listItemView.setPadding((int)convertDpToPixel(9,getContext()),
|
||||
(int)convertDpToPixel(9,getContext()),
|
||||
(int)convertDpToPixel(9,getContext()),
|
||||
(int)convertDpToPixel(9,getContext()));
|
||||
|
||||
return listItemView;
|
||||
|
||||
})
|
||||
listItemView.minimumHeight = parent.height / 4
|
||||
listItemView.setPadding(
|
||||
convertDpToPixel(9f, context).toInt(),
|
||||
convertDpToPixel(9f, context).toInt(),
|
||||
convertDpToPixel(9f, context).toInt(),
|
||||
convertDpToPixel(9f, context).toInt()
|
||||
)
|
||||
return (listItemView)
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return 8;
|
||||
override fun getCount(): Int {
|
||||
return 8
|
||||
}
|
||||
|
||||
private int getArchive(int i, ArchiveObject archiveObject){
|
||||
Object o = null;
|
||||
int visible;
|
||||
|
||||
switch (i){
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
o = archiveObject.driver_license;
|
||||
break;
|
||||
case 2:
|
||||
o = archiveObject.private_hire;
|
||||
break;
|
||||
case 3:
|
||||
o = archiveObject.vehicle_details;
|
||||
break;
|
||||
case 4:
|
||||
o = archiveObject.insurance_details;
|
||||
break;
|
||||
case 5:
|
||||
o = archiveObject.mot_details;
|
||||
break;
|
||||
case 6:
|
||||
o = archiveObject.log_book;
|
||||
break;
|
||||
case 7:
|
||||
o = archiveObject.private_hire_vehicle;
|
||||
|
||||
}
|
||||
|
||||
if (o != null){
|
||||
visible = View.VISIBLE;
|
||||
}else{
|
||||
visible = View.GONE;
|
||||
}
|
||||
|
||||
return visible;
|
||||
}
|
||||
|
||||
private void getFragment(int i){
|
||||
Fragment f = null;
|
||||
WholeDriverObject wholeDriverObject = mappedObject.getWholeDriverObject();
|
||||
Object o = null;
|
||||
switch (i) {
|
||||
case 0:
|
||||
f = new DriverProfileFragment();
|
||||
if (wholeDriverObject.driver_profile != null && wholeDriverObject.getDriver_profile().driver_profile != null) {
|
||||
o = wholeDriverObject.getDriver_profile().getDriver_profile();
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
f = new DriverLicenseFragment();
|
||||
if (wholeDriverObject.driver_profile != null && wholeDriverObject.getDriver_profile().driver_license != null) {
|
||||
o = wholeDriverObject.getDriver_profile().getDriver_license();
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
f = new PrivateHireLicenseFragment();
|
||||
if (wholeDriverObject.driver_profile != null && wholeDriverObject.getDriver_profile().private_hire != null) {
|
||||
o = wholeDriverObject.getDriver_profile().getPrivate_hire();
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
f = new VehicleSetupFragment();
|
||||
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().vehicle_details != null){
|
||||
o = wholeDriverObject.getVehicle_profile().getVehicle_details();
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
f = new InsuranceFragment();
|
||||
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().insurance_details != null){
|
||||
o = wholeDriverObject.getVehicle_profile().getInsurance_details();
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
f = new MotFragment();
|
||||
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().mot_details != null){
|
||||
o = wholeDriverObject.getVehicle_profile().getMot_details();
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
f = new logbookFragment();
|
||||
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().log_book != null){
|
||||
o = wholeDriverObject.getVehicle_profile().getLog_book();
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
f = new PrivateHireVehicleFragment();
|
||||
if (wholeDriverObject.vehicle_profile != null && wholeDriverObject.getVehicle_profile().private_hire_vehicle != null){
|
||||
o = wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject();
|
||||
}
|
||||
break;
|
||||
private fun getArchive(i: Int, archiveObject: ArchiveObject?): Int {
|
||||
var o: Any? = null
|
||||
val visible: Int
|
||||
when (i) {
|
||||
0 -> {
|
||||
}
|
||||
|
||||
if (o == null){
|
||||
executeFragment(f,mappedObject.getUserId());
|
||||
}else {
|
||||
archiveClass.openDialogArchive(getContext(),o
|
||||
,mappedObject.getUserId(),f);
|
||||
}
|
||||
|
||||
1 -> o = archiveObject!!.driver_license
|
||||
2 -> o = archiveObject!!.private_hire
|
||||
3 -> o = archiveObject!!.vehicle_details
|
||||
4 -> o = archiveObject!!.insurance_details
|
||||
5 -> o = archiveObject!!.mot_details
|
||||
6 -> o = archiveObject!!.log_book
|
||||
7 -> o = archiveObject.private_hire_vehicle
|
||||
}
|
||||
if (o != null) {
|
||||
visible = View.VISIBLE
|
||||
} else {
|
||||
visible = View.GONE
|
||||
}
|
||||
return visible
|
||||
}
|
||||
|
||||
private int getApprovalStatusCode(int i){
|
||||
int statusCode = NO_DATE_PRESENT;
|
||||
|
||||
if (mappedObject.getWholeDriverObject().approvalsObject != null){
|
||||
ApprovalsObject approvalsObject = mappedObject.getWholeDriverObject().getApprovalsObject();
|
||||
|
||||
switch (i) {
|
||||
case 0:
|
||||
if (approvalsObject.driver_details_approval != 0) {
|
||||
statusCode = approvalsObject.getDriver_details_approval();
|
||||
private fun getFragment(i: Int) {
|
||||
var f: Fragment? = null
|
||||
val wholeDriverObject: WholeDriverObject? = mappedObject.getWholeDriverObject()
|
||||
var o: Any? = null
|
||||
when (i) {
|
||||
0 -> {
|
||||
f = DriverProfileFragment()
|
||||
if (wholeDriverObject!!.driver_profile != null && wholeDriverObject.getDriver_profile().driver_profile != null) {
|
||||
o = wholeDriverObject.getDriver_profile().getDriver_profile()
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (approvalsObject.driver_license_approval != 0) {
|
||||
statusCode = approvalsObject.getDriver_license_approval();
|
||||
}
|
||||
1 -> {
|
||||
f = DriverLicenseFragment()
|
||||
if (wholeDriverObject!!.driver_profile != null && wholeDriverObject.getDriver_profile().driver_license != null) {
|
||||
o = wholeDriverObject.getDriver_profile().driver_license
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (approvalsObject.private_hire_approval != 0) {
|
||||
statusCode = approvalsObject.getPrivate_hire_approval();
|
||||
}
|
||||
2 -> {
|
||||
f = PrivateHireLicenseFragment()
|
||||
if (wholeDriverObject!!.driver_profile != null && wholeDriverObject.getDriver_profile().private_hire != null) {
|
||||
o = wholeDriverObject.getDriver_profile().private_hire
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (approvalsObject.vehicle_details_approval != 0) {
|
||||
statusCode = approvalsObject.getVehicle_details_approval();
|
||||
}
|
||||
3 -> {
|
||||
f = VehicleSetupFragment()
|
||||
if (wholeDriverObject!!.vehicle_profile != null && wholeDriverObject.getVehicle_profile().vehicle_details != null) {
|
||||
o = wholeDriverObject.getVehicle_profile().getVehicle_details()
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (approvalsObject.insurance_details_approval != 0) {
|
||||
statusCode = approvalsObject.getInsurance_details_approval();
|
||||
}
|
||||
4 -> {
|
||||
f = InsuranceFragment()
|
||||
if (wholeDriverObject!!.vehicle_profile != null && wholeDriverObject.getVehicle_profile().insurance_details != null) {
|
||||
o = wholeDriverObject.getVehicle_profile().getInsurance_details()
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (approvalsObject.mot_details_approval != 0) {
|
||||
statusCode = approvalsObject.getMot_details_approval();
|
||||
}
|
||||
5 -> {
|
||||
f = MotFragment()
|
||||
if (wholeDriverObject!!.vehicle_profile != null && wholeDriverObject.getVehicle_profile().mot_details != null) {
|
||||
o = wholeDriverObject.getVehicle_profile().getMot_details()
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (approvalsObject.log_book_approval != 0) {
|
||||
statusCode = approvalsObject.getLog_book_approval();
|
||||
}
|
||||
6 -> {
|
||||
f = logbookFragment()
|
||||
if (wholeDriverObject!!.vehicle_profile != null && wholeDriverObject.getVehicle_profile().log_book != null) {
|
||||
o = wholeDriverObject.getVehicle_profile().getLog_book()
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (approvalsObject.private_hire_vehicle_approval != 0) {
|
||||
statusCode = approvalsObject.getPh_car_approval();
|
||||
}
|
||||
7 -> {
|
||||
f = PrivateHireVehicleFragment()
|
||||
if (wholeDriverObject!!.vehicle_profile != null && wholeDriverObject.getVehicle_profile().private_hire_vehicle != null) {
|
||||
o = wholeDriverObject.getVehicle_profile().getPrivateHireVehicleObject()
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return statusCode;
|
||||
if (o == null) {
|
||||
ExecuteFragment.executeFragment(f, mappedObject.getUserId())
|
||||
} else {
|
||||
MainActivity.archiveClass!!.openDialogArchive(
|
||||
context, o, mappedObject.getUserId(), f
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
public static float convertDpToPixel(float dp, Context context){
|
||||
return dp * ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT);
|
||||
private fun getApprovalStatusCode(i: Int): Int {
|
||||
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
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
// }
|
||||
}
|
||||
@@ -1,182 +1,149 @@
|
||||
package h_mal.appttude.com.driver.SuperUser;
|
||||
package h_mal.appttude.com.driver.SuperUser
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.app.AlertDialog
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.*
|
||||
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.Picasso.LoadedFrom
|
||||
import com.squareup.picasso.Target
|
||||
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.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;
|
||||
import java.io.FileInputStream;
|
||||
import java.util.List;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.UserObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.ExecuteFragment.executeFragment;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_NUMBER;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.imageViewClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.loadImage;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
|
||||
public class ListViewSuperAdapter extends ArrayAdapter<MappedObject> {
|
||||
|
||||
public ListViewSuperAdapter(@NonNull Context context, @NonNull List<MappedObject> objects) {
|
||||
super(context, 0, objects);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View getView(int i, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||
View listItemView = convertView;
|
||||
class ListViewSuperAdapter constructor(context: Context, objects: List<MappedObject?>) :
|
||||
ArrayAdapter<MappedObject?>(context, 0, objects) {
|
||||
override fun getView(i: Int, convertView: View?, parent: ViewGroup): View {
|
||||
var listItemView: View? = convertView
|
||||
if (listItemView == null) {
|
||||
listItemView = LayoutInflater.from(getContext()).inflate(
|
||||
R.layout.list_item_layout, parent, false);
|
||||
|
||||
|
||||
listItemView = LayoutInflater.from(context).inflate(
|
||||
R.layout.list_item_layout, parent, false
|
||||
)
|
||||
}
|
||||
|
||||
Log.i("getviewposition", "getView: pos = " + i);
|
||||
|
||||
final ImageView profilePicImage = listItemView.findViewById(R.id.driverPic);
|
||||
final ProgressBar progressBar = listItemView.findViewById(R.id.pb_su_list);
|
||||
TextView userNameTextView = listItemView.findViewById(R.id.username_text);
|
||||
TextView userEmailTextView = listItemView.findViewById(R.id.emailaddress_text);
|
||||
ImageView profileApprovalImage = listItemView.findViewById(R.id.approval_iv);
|
||||
final TextView driverNo = listItemView.findViewById(R.id.driver_no);
|
||||
final MappedObject mappedObject = getItem(i);
|
||||
|
||||
final UserObject object = mappedObject.getWholeDriverObject().getUser_details();
|
||||
|
||||
if (object.profilePicString != null){
|
||||
Log.i("getviewposition", "getView: pos = " + i)
|
||||
val profilePicImage: ImageView = listItemView!!.findViewById(R.id.driverPic)
|
||||
// final ProgressBar progressBar = listItemView.findViewById(R.id.pb_su_list);
|
||||
val userNameTextView: TextView = listItemView.findViewById(R.id.username_text)
|
||||
val userEmailTextView: TextView = listItemView.findViewById(R.id.emailaddress_text)
|
||||
val profileApprovalImage: ImageView = listItemView.findViewById(R.id.approval_iv)
|
||||
val driverNo: TextView = listItemView.findViewById(R.id.driver_no)
|
||||
val mappedObject: MappedObject? = getItem(i)
|
||||
val `object`: UserObject? = mappedObject.getWholeDriverObject().getUser_details()
|
||||
if (profilePicImage.drawable == null) {
|
||||
if (`object`!!.profilePicString != null) {
|
||||
Picasso.get()
|
||||
.load(object.getProfilePicString())
|
||||
.resize(128,128)
|
||||
.placeholder(R.drawable.choice_img_round)
|
||||
.into(new Target() {
|
||||
@Override
|
||||
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
profilePicImage.setImageBitmap(bitmap);
|
||||
.load(`object`.getProfilePicString())
|
||||
.resize(128, 128)
|
||||
.placeholder(R.drawable.choice_img_round)
|
||||
.into(object : Target {
|
||||
override fun onBitmapLoaded(bitmap: Bitmap, from: LoadedFrom) {
|
||||
// progressBar.setVisibility(View.GONE);
|
||||
profilePicImage.setImageBitmap(bitmap)
|
||||
}
|
||||
|
||||
}
|
||||
override fun onBitmapFailed(e: Exception, errorDrawable: Drawable) {
|
||||
// progressBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareLoad(Drawable placeHolderDrawable) {
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
}
|
||||
});
|
||||
|
||||
}else {
|
||||
profilePicImage.setImageResource(R.drawable.choice_img_round);
|
||||
override fun onPrepareLoad(placeHolderDrawable: Drawable) {
|
||||
// progressBar.setVisibility(View.VISIBLE);
|
||||
}
|
||||
})
|
||||
} else {
|
||||
profilePicImage.setImageResource(R.drawable.choice_img_round)
|
||||
}
|
||||
}
|
||||
|
||||
userNameTextView.setText(object.getProfileName());
|
||||
userEmailTextView.setText(object.getProfileEmail());
|
||||
if (mappedObject.getWholeDriverObject().driver_number == null){
|
||||
driverNo.setText("0");
|
||||
}else {
|
||||
String s = String.valueOf(mappedObject.getWholeDriverObject().getDriver_number());
|
||||
driverNo.setText(s);
|
||||
userNameTextView.setText(`object`.getProfileName())
|
||||
userEmailTextView.setText(`object`.getProfileEmail())
|
||||
if (mappedObject.getWholeDriverObject().driver_number == null) {
|
||||
driverNo.text = "0"
|
||||
} else {
|
||||
val s: String = mappedObject.getWholeDriverObject().getDriver_number().toString()
|
||||
driverNo.text = s
|
||||
}
|
||||
|
||||
|
||||
driverNo.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
|
||||
final EditText input = new EditText(getContext());
|
||||
LinearLayout layout = new LinearLayout(getContext());
|
||||
layout.setOrientation(LinearLayout.VERTICAL);
|
||||
layout.setPadding(28,0,56,0);
|
||||
input.setText(driverNo.getText().toString());
|
||||
input.setSelectAllOnFocus(true);
|
||||
layout.addView(input);
|
||||
driverNo.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
val builder: AlertDialog.Builder = AlertDialog.Builder(context)
|
||||
val input: EditText = EditText(context)
|
||||
val layout: LinearLayout = LinearLayout(context)
|
||||
layout.orientation = LinearLayout.VERTICAL
|
||||
layout.setPadding(28, 0, 56, 0)
|
||||
input.setText(driverNo.text.toString())
|
||||
input.setSelectAllOnFocus(true)
|
||||
layout.addView(input)
|
||||
builder.setTitle("Change Driver Number")
|
||||
.setView(layout)
|
||||
.setPositiveButton("Submit", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(final DialogInterface dialog, int which) {
|
||||
DatabaseReference reference = mDatabase.child(USER_FIREBASE).child(mappedObject.getUserId())
|
||||
.child(DRIVER_NUMBER);
|
||||
Log.i("Dialog Driver no", "onClick: " + reference.toString());
|
||||
|
||||
reference.setValue(input.getText().toString()).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Toast.makeText(getContext(), "Driver Number Changed", Toast.LENGTH_SHORT).show();
|
||||
dialog.dismiss();
|
||||
notifyDataSetChanged();
|
||||
Log.i("Dialog Driver no", "onComplete: " + task.getResult());
|
||||
}else {
|
||||
Log.e("Dialog Driver no", "onComplete: ", task.getException());
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
.setView(layout)
|
||||
.setPositiveButton("Submit", object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, which: Int) {
|
||||
val reference: DatabaseReference =
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE)
|
||||
.child(mappedObject.getUserId())
|
||||
.child(FirebaseClass.DRIVER_NUMBER)
|
||||
Log.i("Dialog Driver no", "onClick: " + reference.toString())
|
||||
reference.setValue(input.text.toString())
|
||||
.addOnCompleteListener(object : OnCompleteListener<Void> {
|
||||
override fun onComplete(task: Task<Void>) {
|
||||
if (task.isSuccessful) {
|
||||
Toast.makeText(
|
||||
context,
|
||||
"Driver Number Changed",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
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(
|
||||
approvalsClass.getOverApprovalStatusCode(mappedObject.getWholeDriverObject()));
|
||||
|
||||
|
||||
listItemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("mapped",mappedObject);
|
||||
|
||||
executeFragment(new UserMainFragment(),bundle);
|
||||
MainActivity.approvalsClass!!.getOverApprovalStatusCode(mappedObject.getWholeDriverObject())
|
||||
)
|
||||
listItemView.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
val bundle: Bundle = Bundle()
|
||||
bundle.putParcelable("mapped", mappedObject)
|
||||
ExecuteFragment.executeFragment(UserMainFragment(), bundle)
|
||||
}
|
||||
});
|
||||
|
||||
return listItemView;
|
||||
})
|
||||
return (listItemView)
|
||||
}
|
||||
|
||||
private boolean hasImage(@NonNull ImageView view) {
|
||||
Drawable drawable = view.getDrawable();
|
||||
boolean hasImage = (drawable != null);
|
||||
|
||||
if (hasImage && (drawable instanceof BitmapDrawable)) {
|
||||
hasImage = ((BitmapDrawable)drawable).getBitmap() != null;
|
||||
private fun hasImage(view: ImageView): Boolean {
|
||||
val drawable: Drawable? = view.drawable
|
||||
var hasImage: Boolean = (drawable != null)
|
||||
if (hasImage && (drawable is BitmapDrawable)) {
|
||||
hasImage = drawable.bitmap != null
|
||||
}
|
||||
|
||||
return hasImage;
|
||||
return hasImage
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,49 +1,36 @@
|
||||
package h_mal.appttude.com.driver.SuperUser;
|
||||
package h_mal.appttude.com.driver.SuperUser
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.GridView;
|
||||
import android.widget.ListView;
|
||||
|
||||
import h_mal.appttude.com.driver.Archive.ArchiveFragment;
|
||||
import h_mal.appttude.com.driver.Global.ExecuteFragment;
|
||||
import h_mal.appttude.com.driver.MainActivity;
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
public class UserMainFragment extends Fragment {
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.GridView
|
||||
import androidx.fragment.app.Fragment
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject
|
||||
import h_mal.appttude.com.driver.R
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
class UserMainFragment : Fragment() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_user_main, container, false);
|
||||
|
||||
Log.i("UserMain", "onCreateView: height = " + view.getHeight());
|
||||
|
||||
MappedObject mappedObject = getArguments().getParcelable("mapped");
|
||||
|
||||
getActivity().setTitle(mappedObject.getWholeDriverObject().getUser_details().getProfileName());
|
||||
val view: View = inflater.inflate(R.layout.fragment_user_main, container, false)
|
||||
Log.i("UserMain", "onCreateView: height = " + view.height)
|
||||
val mappedObject: MappedObject = arguments!!.getParcelable("mapped")
|
||||
activity.setTitle(
|
||||
mappedObject.getWholeDriverObject().getUser_details().getProfileName()
|
||||
)
|
||||
|
||||
// ListView listView = view.findViewById(R.id.approvals_list);
|
||||
GridView listView = view.findViewById(R.id.approvals_list);
|
||||
listView.setAdapter(new ApprovalListAdapter(getActivity(), new MappedObject[]{mappedObject}));
|
||||
|
||||
return view;
|
||||
val listView: GridView = view.findViewById(R.id.approvals_list)
|
||||
listView.adapter = ApprovalListAdapter((activity)!!, arrayOf(mappedObject))
|
||||
return view
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,186 +1,181 @@
|
||||
package h_mal.appttude.com.driver.SuperUser;
|
||||
package h_mal.appttude.com.driver.SuperUser
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject;
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.approvalsClass;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
import static h_mal.appttude.com.driver.MainActivity.printObjectAsJson;
|
||||
import static h_mal.appttude.com.driver.MainActivity.viewController;
|
||||
import android.app.AlertDialog
|
||||
import android.content.DialogInterface
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.*
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
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.FirebaseClass
|
||||
import h_mal.appttude.com.driver.MainActivity
|
||||
import h_mal.appttude.com.driver.Objects.WholeDriverObject
|
||||
import h_mal.appttude.com.driver.Objects.WholeObject.MappedObject
|
||||
import h_mal.appttude.com.driver.R
|
||||
import java.util.*
|
||||
|
||||
|
||||
public class homeSuperUserFragment extends Fragment {
|
||||
|
||||
DatabaseReference users;
|
||||
ListViewSuperAdapter listViewSuperAdapter;
|
||||
|
||||
List<MappedObject> mappedObjectList;
|
||||
private SharedPreferences sharedPreferences;
|
||||
private int sortOrder;
|
||||
private boolean sortDesc;
|
||||
private static final String SORT = "SORT";
|
||||
private static final String REVERSED = "REVERSED";
|
||||
private static final String TAG = "homeSuperUserFragment";
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
users = mDatabase.child(USER_FIREBASE);
|
||||
mappedObjectList = new ArrayList<>();
|
||||
|
||||
viewController.progress(View.VISIBLE);
|
||||
users.addValueEventListener(valueEventListener);
|
||||
|
||||
sharedPreferences = getActivity().getSharedPreferences("PREFS", 0);
|
||||
class homeSuperUserFragment : Fragment() {
|
||||
var users: DatabaseReference? = null
|
||||
var listViewSuperAdapter: ListViewSuperAdapter? = null
|
||||
var mappedObjectList: MutableList<MappedObject>? = null
|
||||
private var sharedPreferences: SharedPreferences? = null
|
||||
private var sortOrder: Int = 0
|
||||
private val sortDesc: Boolean = false
|
||||
private var recyclerView: RecyclerView? = null
|
||||
private var recyclerViewAdapter: RecyclerViewAdapter? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setHasOptionsMenu(true)
|
||||
users = MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE)
|
||||
mappedObjectList = ArrayList()
|
||||
MainActivity.viewController!!.progress(View.VISIBLE)
|
||||
users!!.addValueEventListener(valueEventListener)
|
||||
sharedPreferences = activity!!.getSharedPreferences("PREFS", 0)
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// 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);
|
||||
list.setAdapter(listViewSuperAdapter);
|
||||
|
||||
return view;
|
||||
// listViewSuperAdapter = new ListViewSuperAdapter(getContext(),mappedObjectList);
|
||||
// list.setAdapter(listViewSuperAdapter);
|
||||
recyclerView = view.findViewById(R.id.recycler_view)
|
||||
recyclerView.setLayoutManager(LinearLayoutManager(context))
|
||||
recyclerViewAdapter = RecyclerViewAdapter(context, mappedObjectList)
|
||||
recyclerView.setAdapter(recyclerViewAdapter)
|
||||
return view
|
||||
}
|
||||
|
||||
ValueEventListener valueEventListener = new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(@NonNull DataSnapshot snapshot) {
|
||||
mappedObjectList.clear();
|
||||
Log.i("Count " ,""+snapshot.getChildrenCount());
|
||||
for (DataSnapshot postSnapshot: snapshot.getChildren()) {
|
||||
if (postSnapshot.child("role").getValue().toString().equals("driver")){
|
||||
printObjectAsJson("object",postSnapshot.toString());
|
||||
mappedObjectList.add(new MappedObject(postSnapshot.getKey(),postSnapshot.getValue(WholeDriverObject.class)));
|
||||
var valueEventListener: ValueEventListener = object : ValueEventListener {
|
||||
override fun onDataChange(snapshot: DataSnapshot) {
|
||||
mappedObjectList!!.clear()
|
||||
Log.i("Count ", "" + snapshot.childrenCount)
|
||||
for (postSnapshot: DataSnapshot in snapshot.children) {
|
||||
if ((postSnapshot.child("role").value.toString() == "driver")) {
|
||||
MainActivity.printObjectAsJson("object", postSnapshot.toString())
|
||||
mappedObjectList!!.add(
|
||||
MappedObject(
|
||||
postSnapshot.key, postSnapshot.getValue(
|
||||
WholeDriverObject::class.java
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
sortDate(sortOrder,sortDesc);
|
||||
viewController.progress(View.GONE);
|
||||
sortDate(sortOrder, sortDesc)
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(@NonNull DatabaseError databaseError) {
|
||||
viewController.progress(View.GONE);
|
||||
override fun onCancelled(databaseError: DatabaseError) {
|
||||
MainActivity.viewController!!.progress(View.GONE)
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
inflater.inflate(R.menu.menu_calls_fragment, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == R.id.archive){
|
||||
final String[] grpname = {"Driver Name","Driver Number","Approval"};
|
||||
sortOrder = sharedPreferences.getInt(SORT,0);
|
||||
int checkedItem = sortOrder;
|
||||
final int[] compareInt = {0};
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
inflater.inflate(R.menu.menu_calls_fragment, menu)
|
||||
super.onCreateOptionsMenu(menu, inflater)
|
||||
}
|
||||
|
||||
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:")
|
||||
.setSingleChoiceItems(grpname, checkedItem, new DialogInterface
|
||||
.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int item) {
|
||||
switch (item) {
|
||||
case 0:
|
||||
compareInt[0] = 0;
|
||||
return;
|
||||
case 1:
|
||||
compareInt[0] = 1;
|
||||
return;
|
||||
case 2:
|
||||
compareInt[0] = 2;
|
||||
.setSingleChoiceItems(
|
||||
grpname,
|
||||
checkedItem,
|
||||
object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, item: Int) {
|
||||
when (item) {
|
||||
0 -> {
|
||||
compareInt.get(0) = 0
|
||||
return
|
||||
}
|
||||
1 -> {
|
||||
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()
|
||||
}
|
||||
}
|
||||
}).setPositiveButton("Ascending", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
sortDate(compareInt[0],false);
|
||||
dialog.dismiss();
|
||||
}
|
||||
}).setNegativeButton("Descending", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
sortDate(compareInt[0],true);
|
||||
dialog.dismiss();
|
||||
}
|
||||
})
|
||||
.create().show();
|
||||
}).setNegativeButton("Descending", object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, id: Int) {
|
||||
sortDate(compareInt.get(0), true)
|
||||
dialog.dismiss()
|
||||
}
|
||||
})
|
||||
.create().show()
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
private void sortDate(final int compareInt, boolean reversed){
|
||||
Log.i(TAG, "sortDate: " + compareInt + " - " + reversed);
|
||||
Comparator<MappedObject> comparator = new Comparator<MappedObject>() {
|
||||
@Override
|
||||
public int compare(MappedObject o1, MappedObject o2) {
|
||||
switch (compareInt){
|
||||
case 0:
|
||||
return o1.getWholeDriverObject().getUser_details().getProfileName().compareTo(
|
||||
o2.getWholeDriverObject().getUser_details().getProfileName());
|
||||
case 1:
|
||||
return o1.getWholeDriverObject().getDriver_number()
|
||||
.compareTo(o2.getWholeDriverObject().getDriver_number());
|
||||
case 2:
|
||||
return approvalsClass.getOverApprovalStatusCode(o1.wholeDriverObject) -
|
||||
approvalsClass.getOverApprovalStatusCode(o2.wholeDriverObject);
|
||||
default:
|
||||
return approvalsClass.getOverApprovalStatusCode(o1.wholeDriverObject) -
|
||||
approvalsClass.getOverApprovalStatusCode(o2.wholeDriverObject);
|
||||
private fun sortDate(compareInt: Int, reversed: Boolean) {
|
||||
Log.i(TAG, "sortDate: " + compareInt + " - " + reversed)
|
||||
val comparator: Comparator<MappedObject> = object : Comparator<MappedObject> {
|
||||
override fun compare(o1: MappedObject, o2: MappedObject): Int {
|
||||
when (compareInt) {
|
||||
0 -> return o1.getWholeDriverObject().getUser_details().getProfileName()
|
||||
.compareTo(
|
||||
o2.getWholeDriverObject().getUser_details().getProfileName()
|
||||
)
|
||||
1 -> {
|
||||
var s1: String? = o1.getWholeDriverObject().getDriver_number()
|
||||
var s2: String? = o2.getWholeDriverObject().getDriver_number()
|
||||
if (o1.getWholeDriverObject().driver_number == null || (o1.getWholeDriverObject()
|
||||
.getDriver_number() == "0")
|
||||
) {
|
||||
s1 = ";"
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
listViewSuperAdapter.notifyDataSetChanged();
|
||||
sharedPreferences!!.edit().putInt(SORT, compareInt).apply()
|
||||
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"
|
||||
}
|
||||
}
|
||||
@@ -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.AnimatorListenerAdapter;
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Intent;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.OnFailureListener;
|
||||
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;
|
||||
import android.animation.Animator
|
||||
import android.animation.AnimatorListenerAdapter
|
||||
import android.annotation.TargetApi
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.widget.Button
|
||||
import android.widget.EditText
|
||||
import android.widget.TextView
|
||||
import android.widget.TextView.OnEditorActionListener
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
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.R
|
||||
import h_mal.appttude.com.driver.utils.Navigations
|
||||
import h_mal.appttude.com.driver.utils.displayToast
|
||||
import h_mal.appttude.com.driver.utils.navigateToActivity
|
||||
|
||||
/**
|
||||
* A login screen that offers login via email/password.
|
||||
*/
|
||||
public class LoginActivity extends AppCompatActivity{
|
||||
|
||||
private String TAG = "LoginActivity";
|
||||
private FirebaseAuth auth;
|
||||
class LoginActivity : AppCompatActivity() {
|
||||
private var auth: FirebaseAuth? = null
|
||||
|
||||
// UI references.
|
||||
private EditText mEmailView;
|
||||
private EditText mPasswordView;
|
||||
private View mProgressView;
|
||||
private View mLoginView;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_login);
|
||||
|
||||
auth = FirebaseAuth.getInstance();
|
||||
private var mEmailView: EditText? = null
|
||||
private var mPasswordView: EditText? = null
|
||||
private var mProgressView: View? = null
|
||||
private var mLoginView: View? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_login)
|
||||
auth = FirebaseAuth.getInstance()
|
||||
|
||||
// Set up the login form.
|
||||
mEmailView = findViewById(R.id.email);
|
||||
|
||||
mPasswordView = (EditText) findViewById(R.id.password);
|
||||
mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
||||
@Override
|
||||
public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
|
||||
if (id == EditorInfo.IME_ACTION_DONE || id == EditorInfo.IME_NULL) {
|
||||
attemptLogin();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
mEmailView = findViewById(R.id.email)
|
||||
mPasswordView = findViewById<View>(R.id.password) as EditText
|
||||
mPasswordView!!.setOnEditorActionListener(OnEditorActionListener { textView, id, keyEvent ->
|
||||
if (id == EditorInfo.IME_ACTION_DONE || id == EditorInfo.IME_NULL) {
|
||||
attemptLogin()
|
||||
return@OnEditorActionListener true
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);
|
||||
mEmailSignInButton.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
attemptLogin();
|
||||
}
|
||||
});
|
||||
|
||||
mProgressView = findViewById(R.id.login_progress);
|
||||
mLoginView = findViewById(R.id.email_login_form);
|
||||
|
||||
TextView register = findViewById(R.id.register_button);
|
||||
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);
|
||||
}
|
||||
});
|
||||
false
|
||||
})
|
||||
val mEmailSignInButton = findViewById<Button>(R.id.email_sign_in_button)
|
||||
mEmailSignInButton.setOnClickListener { view: View? -> attemptLogin() }
|
||||
mProgressView = findViewById(R.id.login_progress)
|
||||
mLoginView = findViewById(R.id.email_login_form)
|
||||
val register = findViewById<TextView>(R.id.register_button)
|
||||
register.setOnClickListener { v: View? ->
|
||||
val intent = Intent(application, RegisterActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
val forgotPw = findViewById<TextView>(R.id.forgot)
|
||||
forgotPw.setOnClickListener { v: View? ->
|
||||
val intent = Intent(application, forgotPasswordActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -100,109 +69,97 @@ public class LoginActivity extends AppCompatActivity{
|
||||
* If there are form errors (invalid email, missing fields, etc.), the
|
||||
* errors are presented and no actual login attempt is made.
|
||||
*/
|
||||
private void attemptLogin() {
|
||||
private fun attemptLogin() {
|
||||
if (auth == null) {
|
||||
Toast.makeText(this, "Login invalid", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
displayToast("Login invalid")
|
||||
return
|
||||
}
|
||||
|
||||
// Reset errors.
|
||||
mEmailView.setError(null);
|
||||
mPasswordView.setError(null);
|
||||
// Reset errors
|
||||
mEmailView!!.error = null
|
||||
mPasswordView!!.error = null
|
||||
|
||||
// Store values at the time of the login attempt.
|
||||
String email = mEmailView.getText().toString();
|
||||
String password = mPasswordView.getText().toString();
|
||||
|
||||
boolean cancel = false;
|
||||
View focusView = null;
|
||||
val email = mEmailView!!.text.toString()
|
||||
val password = mPasswordView!!.text.toString()
|
||||
var cancel = false
|
||||
var focusView: View? = null
|
||||
|
||||
// Check for a valid password, if the user entered one.
|
||||
if (!TextUtils.isEmpty(password) && !isPasswordValid(password)) {
|
||||
mPasswordView.setError(getString(R.string.error_invalid_password));
|
||||
focusView = mPasswordView;
|
||||
cancel = true;
|
||||
mPasswordView!!.error = getString(R.string.error_invalid_password)
|
||||
focusView = mPasswordView
|
||||
cancel = true
|
||||
}
|
||||
|
||||
// Check for a valid email address.
|
||||
if (TextUtils.isEmpty(email)) {
|
||||
mEmailView.setError(getString(R.string.error_field_required));
|
||||
focusView = mEmailView;
|
||||
cancel = true;
|
||||
mEmailView!!.error = getString(R.string.error_field_required)
|
||||
focusView = mEmailView
|
||||
cancel = true
|
||||
} else if (!isEmailValid(email)) {
|
||||
mEmailView.setError(getString(R.string.error_invalid_email));
|
||||
focusView = mEmailView;
|
||||
cancel = true;
|
||||
mEmailView!!.error = getString(R.string.error_invalid_email)
|
||||
focusView = mEmailView
|
||||
cancel = true
|
||||
}
|
||||
|
||||
if (cancel) {
|
||||
// There was an error; don't attempt login and focus the first
|
||||
// form field with an error.
|
||||
focusView.requestFocus();
|
||||
focusView!!.requestFocus()
|
||||
} else {
|
||||
// Show a progress spinner, and kick off a background task to
|
||||
// perform the user login attempt.
|
||||
|
||||
showProgress(true);
|
||||
auth.signInWithEmailAndPassword(email,password)
|
||||
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<AuthResult> task) {
|
||||
showProgress(false);
|
||||
if (task.isSuccessful()){
|
||||
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}else {
|
||||
Toast.makeText(LoginActivity.this, getString(R.string.login_failed), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
showProgress(true)
|
||||
auth!!.signInWithEmailAndPassword(email, password)
|
||||
.addOnCompleteListener { task: Task<AuthResult?> ->
|
||||
showProgress(false)
|
||||
if (task.isSuccessful) {
|
||||
navigateToActivity(
|
||||
this@LoginActivity,
|
||||
Navigations.Main
|
||||
)
|
||||
finish()
|
||||
} else {
|
||||
displayToast(getString(R.string.login_failed))
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isEmailValid(String email) {
|
||||
private fun isEmailValid(email: String): Boolean {
|
||||
//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
|
||||
return password.length() > 6;
|
||||
return password.length > 6
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the progress UI and hides the login form.
|
||||
*/
|
||||
@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
|
||||
// for very easy animations. If available, use these APIs to fade-in
|
||||
// the progress spinner.
|
||||
|
||||
int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
|
||||
|
||||
mLoginView.setVisibility(show ? View.GONE : View.VISIBLE);
|
||||
mLoginView.animate().setDuration(shortAnimTime).alpha(
|
||||
show ? 0 : 1).setListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
mLoginView.setVisibility(show ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
});
|
||||
|
||||
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
mProgressView.animate().setDuration(shortAnimTime).alpha(
|
||||
show ? 1 : 0).setListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
});
|
||||
val shortAnimTime = resources.getInteger(android.R.integer.config_shortAnimTime)
|
||||
mLoginView!!.visibility = if (show) View.GONE else View.VISIBLE
|
||||
mLoginView!!.animate().setDuration(shortAnimTime.toLong()).alpha(
|
||||
if (show) 0F else 1.toFloat()
|
||||
).setListener(object : AnimatorListenerAdapter() {
|
||||
override fun onAnimationEnd(animation: Animator) {
|
||||
mLoginView!!.visibility = if (show) View.GONE else View.VISIBLE
|
||||
}
|
||||
})
|
||||
mProgressView!!.visibility = if (show) View.VISIBLE else View.GONE
|
||||
mProgressView!!.animate().setDuration(shortAnimTime.toLong()).alpha(
|
||||
if (show) 1F else 0.toFloat()
|
||||
).setListener(object : AnimatorListenerAdapter() {
|
||||
override fun onAnimationEnd(animation: Animator) {
|
||||
mProgressView!!.visibility = if (show) View.VISIBLE else View.GONE
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,161 +1,161 @@
|
||||
package h_mal.appttude.com.driver.User;
|
||||
package h_mal.appttude.com.driver.user
|
||||
|
||||
import android.content.Intent;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.Toast;
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.Button
|
||||
import android.widget.EditText
|
||||
import android.widget.ProgressBar
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
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)) {
|
||||
name.setError(getString(R.string.error_field_required));
|
||||
focusView = name;
|
||||
cancel = true;
|
||||
name.setError(getString(R.string.error_field_required))
|
||||
focusView = name
|
||||
cancel = true
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(emailText)) {
|
||||
email.setError(getString(R.string.error_field_required));
|
||||
focusView = email;
|
||||
cancel = true;
|
||||
email.setError(getString(R.string.error_field_required))
|
||||
focusView = email
|
||||
cancel = true
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(passwordText)) {
|
||||
passwordTop.setError(getString(R.string.error_field_required));
|
||||
focusView = passwordTop;
|
||||
cancel = true;
|
||||
passwordTop.setError(getString(R.string.error_field_required))
|
||||
focusView = passwordTop
|
||||
cancel = true
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(passwordTextBottom)) {
|
||||
passwordBottom.setError(getString(R.string.error_field_required));
|
||||
focusView = passwordBottom;
|
||||
cancel = true;
|
||||
passwordBottom.setError(getString(R.string.error_field_required))
|
||||
focusView = passwordBottom
|
||||
cancel = true
|
||||
}
|
||||
|
||||
if (!TextUtils.isEmpty(passwordText) && !isPasswordValid(passwordText)) {
|
||||
passwordTop.setError(getString(R.string.error_invalid_password));
|
||||
focusView = passwordTop;
|
||||
cancel = true;
|
||||
passwordTop.setError(getString(R.string.error_invalid_password))
|
||||
focusView = passwordTop
|
||||
cancel = true
|
||||
}
|
||||
|
||||
if (!passwordText.equals(passwordTextBottom)){
|
||||
passwordBottom.setError(getString(R.string.no_match_password));
|
||||
focusView = passwordBottom;
|
||||
cancel = true;
|
||||
if (!(passwordText == passwordTextBottom)) {
|
||||
passwordBottom.setError(getString(R.string.no_match_password))
|
||||
focusView = passwordBottom
|
||||
cancel = true
|
||||
}
|
||||
|
||||
if (cancel) {
|
||||
// There was an error; don't attempt login and focus the first
|
||||
// form field with an error.
|
||||
focusView.requestFocus();
|
||||
focusView!!.requestFocus()
|
||||
} else {
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
progressBar.setVisibility(View.VISIBLE)
|
||||
//create user
|
||||
auth.createUserWithEmailAndPassword(emailText, passwordText)
|
||||
.addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<AuthResult> task) {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
if (!task.isSuccessful()) {
|
||||
Toast.makeText(RegisterActivity.this, "Authentication failed." + task.getException(),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
|
||||
UserProfileChangeRequest.Builder profileUpdatesBuilder = new UserProfileChangeRequest.Builder();
|
||||
|
||||
if (!TextUtils.isEmpty(nameString)){
|
||||
profileUpdatesBuilder.setDisplayName(nameString);
|
||||
}
|
||||
|
||||
UserProfileChangeRequest profileUpdates = profileUpdatesBuilder.build();
|
||||
|
||||
auth.getCurrentUser().updateProfile(profileUpdates).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()){
|
||||
Log.i("RegisterActivity", "onComplete: " + task.isSuccessful());
|
||||
|
||||
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
|
||||
|
||||
mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child("role")
|
||||
.setValue("driver");
|
||||
mDatabase.child(USER_FIREBASE).child(auth.getCurrentUser().getUid()).child("user_details")
|
||||
.setValue(new UserObject(auth.getCurrentUser().getDisplayName(),auth.getCurrentUser().getEmail(),null));
|
||||
|
||||
Intent intent = new Intent(RegisterActivity.this,MainActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
|
||||
.addOnCompleteListener(
|
||||
this@RegisterActivity,
|
||||
object : OnCompleteListener<AuthResult?> {
|
||||
override fun onComplete(task: Task<AuthResult?>) {
|
||||
progressBar.setVisibility(View.GONE)
|
||||
if (!task.isSuccessful) {
|
||||
Toast.makeText(
|
||||
this@RegisterActivity,
|
||||
"Authentication failed." + task.exception,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
} else {
|
||||
val profileUpdatesBuilder: UserProfileChangeRequest.Builder =
|
||||
UserProfileChangeRequest.Builder()
|
||||
if (!TextUtils.isEmpty(nameString)) {
|
||||
profileUpdatesBuilder.setDisplayName(nameString)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
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
|
||||
return password.length() > 6;
|
||||
return password.length > 6
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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.support.v4.app.NavUtils;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Toast;
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.Button
|
||||
import android.widget.EditText
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.app.NavUtils
|
||||
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;
|
||||
|
||||
public class forgotPasswordActivity extends AppCompatActivity {
|
||||
|
||||
String TAG = "forgotPasswordActivity";
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_forgot_password);
|
||||
|
||||
final EditText editText = findViewById(R.id.reset_pw);
|
||||
|
||||
final Button resetPw = findViewById(R.id.reset_pw_sign_up);
|
||||
resetPw.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
resetPassword(editText.getText().toString().trim());
|
||||
class forgotPasswordActivity : AppCompatActivity() {
|
||||
var TAG: String = "forgotPasswordActivity"
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_forgot_password)
|
||||
val editText: EditText = findViewById(R.id.reset_pw)
|
||||
val resetPw: Button = findViewById(R.id.reset_pw_sign_up)
|
||||
resetPw.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
resetPassword(editText.text.toString().trim({ it <= ' ' }))
|
||||
}
|
||||
});
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
private void resetPassword(String emailAddress){
|
||||
FirebaseAuth auth = FirebaseAuth.getInstance();
|
||||
|
||||
private fun resetPassword(emailAddress: String) {
|
||||
val auth: FirebaseAuth = FirebaseAuth.getInstance()
|
||||
auth.sendPasswordResetEmail(emailAddress)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
Log.d(TAG, "Email sent.");
|
||||
|
||||
NavUtils.navigateUpFromSameTask(forgotPasswordActivity.this);
|
||||
finish();
|
||||
}else {
|
||||
Toast.makeText(forgotPasswordActivity.this, "Could not reset Password", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
.addOnCompleteListener(object : OnCompleteListener<Void?> {
|
||||
override fun onComplete(task: Task<Void?>) {
|
||||
if (task.isSuccessful) {
|
||||
Log.d(TAG, "Email sent.")
|
||||
NavUtils.navigateUpFromSameTask(this@forgotPasswordActivity)
|
||||
finish()
|
||||
} else {
|
||||
Toast.makeText(
|
||||
this@forgotPasswordActivity,
|
||||
"Could not reset Password",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,251 +1,201 @@
|
||||
package h_mal.appttude.com.driver.User;
|
||||
package h_mal.appttude.com.driver.user
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.InputType;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.app.AlertDialog
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.text.InputType
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.*
|
||||
import androidx.fragment.app.Fragment
|
||||
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.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 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;
|
||||
import h_mal.appttude.com.driver.Global.ImageSelectorResults;
|
||||
import h_mal.appttude.com.driver.Global.ViewController;
|
||||
import h_mal.appttude.com.driver.Objects.UserObject;
|
||||
import h_mal.appttude.com.driver.R;
|
||||
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_DETAILS_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.DRIVER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.FirebaseClass.USER_FIREBASE;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.CAMERA_REQUEST;
|
||||
import static h_mal.appttude.com.driver.Global.ImageSelectorDialog.MY_CAMERA_PERMISSION_CODE;
|
||||
import static h_mal.appttude.com.driver.MainActivity.auth;
|
||||
import static h_mal.appttude.com.driver.MainActivity.fragmentManager;
|
||||
import static h_mal.appttude.com.driver.MainActivity.mDatabase;
|
||||
|
||||
public class profileFragment extends Fragment {
|
||||
|
||||
private String TAG = this.getClass().getSimpleName();
|
||||
|
||||
private TextView email;
|
||||
private TextView name;
|
||||
private TextView changePw;
|
||||
|
||||
private FirebaseUser user;
|
||||
private DatabaseReference databaseReference;
|
||||
|
||||
private static final String EMAIL_CONSTANT = "Email Address";
|
||||
private static final String PW_CONSTANT = "Password";
|
||||
|
||||
ViewController viewController;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
viewController = new ViewController(getActivity());
|
||||
|
||||
user = auth.getCurrentUser();
|
||||
databaseReference = mDatabase.child(USER_FIREBASE).child(user.getUid())
|
||||
.child(DRIVER_FIREBASE).child(DRIVER_DETAILS_FIREBASE)
|
||||
.child("driverPic");
|
||||
class profileFragment : Fragment() {
|
||||
private val TAG = this.javaClass.simpleName
|
||||
private var email: TextView? = null
|
||||
private var name: TextView? = null
|
||||
private var changePw: TextView? = null
|
||||
private var user: FirebaseUser? = null
|
||||
private var databaseReference: DatabaseReference? = null
|
||||
var viewController: ViewController? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
viewController = ViewController(activity)
|
||||
user = MainActivity.auth!!.currentUser
|
||||
databaseReference =
|
||||
MainActivity.mDatabase!!.child(FirebaseClass.USER_FIREBASE).child(
|
||||
user!!.uid
|
||||
)
|
||||
.child(FirebaseClass.DRIVER_FIREBASE)
|
||||
.child(FirebaseClass.DRIVER_DETAILS_FIREBASE)
|
||||
.child("driverPic")
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_profile, container, false);
|
||||
|
||||
email = view.findViewById(R.id.change_email);
|
||||
name = view.findViewById(R.id.change_profile_name);
|
||||
changePw = view.findViewById(R.id.change_pw);
|
||||
|
||||
Button button = view.findViewById(R.id.submit_profile);
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
fragmentManager.popBackStack();
|
||||
}
|
||||
});
|
||||
|
||||
name.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
|
||||
dialog.setTitle("Update Username");
|
||||
|
||||
final EditText titleBox = new EditText(getContext());
|
||||
titleBox.setText(user.getDisplayName());
|
||||
dialog.setView(titleBox);
|
||||
dialog.setPositiveButton("Update", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
updateProfile(titleBox.getText().toString().trim());
|
||||
val view = inflater.inflate(R.layout.fragment_profile, container, false)
|
||||
email = view.findViewById(R.id.change_email)
|
||||
name = view.findViewById(R.id.change_profile_name)
|
||||
changePw = view.findViewById(R.id.change_pw)
|
||||
val button = view.findViewById<Button>(R.id.submit_profile)
|
||||
button.setOnClickListener(View.OnClickListener { MainActivity.fragmentManager!!.popBackStack() })
|
||||
name.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
val dialog = AlertDialog.Builder(context)
|
||||
dialog.setTitle("Update Username")
|
||||
val titleBox = EditText(context)
|
||||
titleBox.setText(user!!.displayName)
|
||||
dialog.setView(titleBox)
|
||||
dialog.setPositiveButton("Update", object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, which: Int) {
|
||||
updateProfile(titleBox.text.toString().trim { it <= ' ' })
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
|
||||
})
|
||||
dialog.show()
|
||||
}
|
||||
});
|
||||
|
||||
email.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
showDialog(EMAIL_CONSTANT);
|
||||
})
|
||||
email.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
showDialog(EMAIL_CONSTANT)
|
||||
}
|
||||
});
|
||||
|
||||
changePw.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
showDialog(PW_CONSTANT);
|
||||
})
|
||||
changePw.setOnClickListener(object : View.OnClickListener {
|
||||
override fun onClick(v: View) {
|
||||
showDialog(PW_CONSTANT)
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
})
|
||||
return view
|
||||
}
|
||||
|
||||
private void updateProfile(String profileName){
|
||||
UserProfileChangeRequest.Builder profileUpdatesBuilder = new UserProfileChangeRequest.Builder();
|
||||
|
||||
if (!TextUtils.isEmpty(profileName)){
|
||||
profileUpdatesBuilder.setDisplayName(profileName);
|
||||
private fun updateProfile(profileName: String) {
|
||||
val profileUpdatesBuilder = UserProfileChangeRequest.Builder()
|
||||
if (!TextUtils.isEmpty(profileName)) {
|
||||
profileUpdatesBuilder.setDisplayName(profileName)
|
||||
}
|
||||
|
||||
UserProfileChangeRequest profileUpdates = profileUpdatesBuilder.build();
|
||||
|
||||
user.updateProfile(profileUpdates)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
Log.d(TAG, "User profile updated.");
|
||||
viewController.reloadDrawer();
|
||||
val profileUpdates = profileUpdatesBuilder.build()
|
||||
user!!.updateProfile(profileUpdates)
|
||||
.addOnCompleteListener(object : OnCompleteListener<Void?> {
|
||||
override fun onComplete(task: Task<Void?>) {
|
||||
if (task.isSuccessful) {
|
||||
Log.d(TAG, "User profile updated.")
|
||||
viewController!!.reloadDrawer()
|
||||
}
|
||||
}
|
||||
})
|
||||
.addOnFailureListener(new OnFailureListener() {
|
||||
@Override
|
||||
public void onFailure(@NonNull Exception e) {
|
||||
Toast.makeText(getContext(), "Update Failed", Toast.LENGTH_SHORT).show();
|
||||
.addOnFailureListener(object : OnFailureListener {
|
||||
override fun onFailure(e: Exception) {
|
||||
Toast.makeText(context, "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
|
||||
AuthCredential credential = EmailAuthProvider
|
||||
.getCredential(email, password); // Current Login Credentials \\
|
||||
val credential = EmailAuthProvider
|
||||
.getCredential(email, password) // Current Login Credentials \\
|
||||
// Prompt the user to re-provide their sign-in credentials
|
||||
user.reauthenticate(credential)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
Log.d(TAG, "User re-authenticated.");
|
||||
|
||||
user = FirebaseAuth.getInstance().getCurrentUser();
|
||||
if (selector.equals(EMAIL_CONSTANT)){
|
||||
user.updateEmail(changeText)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
Log.d(TAG, "User email address updated.");
|
||||
Toast.makeText(getContext(), "Update Successful", Toast.LENGTH_SHORT).show();
|
||||
viewController.reloadDrawer();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (selector.equals(PW_CONSTANT)){
|
||||
user.updatePassword(changeText)
|
||||
.addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if (task.isSuccessful()) {
|
||||
Log.d(TAG, "User email address updated.");
|
||||
Toast.makeText(getContext(), "Update Successful", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
user!!.reauthenticate(credential)
|
||||
.addOnCompleteListener(object : OnCompleteListener<Void?> {
|
||||
override fun onComplete(task: Task<Void?>) {
|
||||
Log.d(TAG, "User re-authenticated.")
|
||||
user = FirebaseAuth.getInstance().currentUser
|
||||
if ((selector == EMAIL_CONSTANT)) {
|
||||
user!!.updateEmail(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()
|
||||
viewController!!.reloadDrawer()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
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
|
||||
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
|
||||
dialog.setTitle("Update " + update);
|
||||
|
||||
LinearLayout layout = new LinearLayout(getContext());
|
||||
layout.setOrientation(LinearLayout.VERTICAL);
|
||||
layout.setPadding(28,0,56,0);
|
||||
|
||||
final EditText box1 = new EditText(getContext());
|
||||
box1.setHint("Current Email Address");
|
||||
box1.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
||||
layout.addView(box1); // Notice this is an add method
|
||||
|
||||
final EditText box2 = new EditText(getContext());
|
||||
box2.setHint("Current Password");
|
||||
box2.setInputType(InputType.TYPE_CLASS_TEXT |
|
||||
InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
layout.addView(box2); // Another add method
|
||||
|
||||
final EditText box3 = new EditText(getContext());
|
||||
if (update.equals(PW_CONSTANT)){
|
||||
box3.setInputType(InputType.TYPE_CLASS_TEXT |
|
||||
InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||
}else {
|
||||
box3.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
||||
val dialog = AlertDialog.Builder(context)
|
||||
dialog.setTitle("Update $update")
|
||||
val layout = LinearLayout(context)
|
||||
layout.orientation = LinearLayout.VERTICAL
|
||||
layout.setPadding(28, 0, 56, 0)
|
||||
val box1 = EditText(context)
|
||||
box1.hint = "Current Email Address"
|
||||
box1.inputType = InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS
|
||||
layout.addView(box1) // Notice this is an add method
|
||||
val box2 = EditText(context)
|
||||
box2.hint = "Current Password"
|
||||
box2.inputType = InputType.TYPE_CLASS_TEXT or
|
||||
InputType.TYPE_TEXT_VARIATION_PASSWORD
|
||||
layout.addView(box2) // Another add method
|
||||
val box3 = EditText(context)
|
||||
if ((update == PW_CONSTANT)) {
|
||||
box3.inputType = InputType.TYPE_CLASS_TEXT or
|
||||
InputType.TYPE_TEXT_VARIATION_PASSWORD
|
||||
} else {
|
||||
box3.inputType = InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS
|
||||
}
|
||||
box3.setHint("New " + update);
|
||||
layout.addView(box3); // Another add method
|
||||
|
||||
dialog.setView(layout);
|
||||
dialog.setPositiveButton("Update", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
String email = box1.getText().toString().trim();
|
||||
String password = box2.getText().toString().trim();
|
||||
String textThree = box3.getText().toString().trim();
|
||||
|
||||
changeCredentials(email,password,textThree,update);
|
||||
box3.hint = "New $update"
|
||||
layout.addView(box3) // Another add method
|
||||
dialog.setView(layout)
|
||||
dialog.setPositiveButton("Update", object : DialogInterface.OnClickListener {
|
||||
override fun onClick(dialog: DialogInterface, which: Int) {
|
||||
val email = box1.text.toString().trim { it <= ' ' }
|
||||
val password = box2.text.toString().trim { it <= ' ' }
|
||||
val textThree = box3.text.toString().trim { it <= ' ' }
|
||||
changeCredentials(email, password, textThree, update)
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
})
|
||||
dialog.show()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val EMAIL_CONSTANT = "Email Address"
|
||||
private val PW_CONSTANT = "Password"
|
||||
}
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
package h_mal.appttude.com.driver.utils
|
||||
|
||||
enum class Navigations(val value: String) {
|
||||
Main("MainActivity");
|
||||
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
@@ -1,10 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".User.RegisterActivity">
|
||||
tools:context=".user.RegisterActivity">
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
||||
android:background="@drawable/cars"
|
||||
android:importantForAutofill="yes"
|
||||
tools:context=".User.LoginActivity">
|
||||
tools:context=".user.LoginActivity">
|
||||
|
||||
<!-- Login progress -->
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
android:layout_centerVertical="true"
|
||||
android:orientation="vertical">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
<androidx.cardview.widget.CardView
|
||||
style="@style/cardview_theme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -53,9 +53,9 @@
|
||||
android:textColorHighlight="#03a9f4" />
|
||||
|
||||
<!--</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"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -85,7 +85,7 @@
|
||||
android:textColorHighlight="#608d91" />
|
||||
|
||||
<!--</android.support.design.widget.TextInputLayout>-->
|
||||
</android.support.v7.widget.CardView>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/register"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?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:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/drawer_layout"
|
||||
@@ -40,4 +40,4 @@
|
||||
</LinearLayout>
|
||||
</android.support.design.widget.NavigationView>
|
||||
|
||||
</android.support.v4.widget.DrawerLayout>
|
||||
</androidx.core.widget.DrawerLayout>
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".User.RegisterActivity">
|
||||
tools:context=".user.RegisterActivity">
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -35,12 +35,6 @@
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_dl"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -29,13 +29,6 @@
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="center" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -5,12 +5,19 @@
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".SuperUser.homeSuperUserFragment">
|
||||
|
||||
<ListView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/list_view_super"
|
||||
tools:listitem="@layout/list_item_layout">
|
||||
<!--<ListView-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="match_parent"-->
|
||||
<!--android:id="@+id/list_view_super"-->
|
||||
<!--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>
|
||||
@@ -1,7 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
@@ -30,13 +30,6 @@
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_lb"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="center" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -31,13 +31,6 @@
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_mot"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="center" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -33,13 +33,6 @@
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_priv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -33,13 +33,6 @@
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_priv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
@@ -27,13 +27,6 @@
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/choice_img_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_ins"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="center" />
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
@@ -38,12 +38,14 @@
|
||||
android:scaleType="centerCrop"
|
||||
tools:srcCompat="@mipmap/ic_launcher_round" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/pb_su_list"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:visibility="gone" />
|
||||
<!--<android.support.v7.widget.CardView-->
|
||||
<!--android:id="@+id/status_icon"-->
|
||||
<!--android:layout_width="20dp"-->
|
||||
<!--android:layout_height="20dp"-->
|
||||
<!--android:layout_gravity="bottom|right"-->
|
||||
<!--android:layout_margin="3dp"-->
|
||||
<!--tools:cardBackgroundColor="@android:color/holo_red_dark"-->
|
||||
<!--app:cardCornerRadius="12dp" />-->
|
||||
</android.support.v7.widget.CardView>
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
@@ -21,12 +20,12 @@
|
||||
|
||||
|
||||
|
||||
<android.support.v4.view.ViewPager
|
||||
<androidx.core.view.ViewPager
|
||||
android:id="@+id/view_pager"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
</android.support.v4.view.ViewPager>
|
||||
</androidx.core.view.ViewPager>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/delete"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?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" />
|
||||
</paths>
|
||||
@@ -2,7 +2,7 @@ package h_mal.appttude.com.driver;
|
||||
|
||||
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).
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.2.71'
|
||||
ext.kotlin_version = "1.3.72"
|
||||
|
||||
repositories {
|
||||
google()
|
||||
@@ -9,10 +9,13 @@ buildscript {
|
||||
|
||||
}
|
||||
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 "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
|
||||
// in the individual module build.gradle files
|
||||
}
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
org.gradle.jvmargs=-Xmx1536m
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
kotlin.code.style=official
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
# 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
|
||||
|
||||
3
gradle/wrapper/gradle-wrapper.properties
vendored
3
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,5 +1,6 @@
|
||||
#Sun Oct 11 00:29:59 BST 2020
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
|
||||
|
||||
Reference in New Issue
Block a user