Migrated to kotlin on the app folder. Broken build

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

View File

@@ -1,29 +1,138 @@
<component name="ProjectCodeStyleConfiguration">
<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
View File

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

2
.idea/gradle.xml generated
View File

@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<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
View File

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

16
.idea/misc.xml generated
View File

@@ -5,7 +5,7 @@
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="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">

View File

@@ -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'
}

View File

@@ -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.

View File

@@ -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>

View File

@@ -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
}
}
}

View File

@@ -1,290 +1,241 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.app.DatePickerDialog;
import android.content.Intent;
import android.content.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
}
})
}
}

View File

@@ -1,147 +1,110 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.os.Bundle;
import android.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)
}
};
}
}
}

View File

@@ -1,310 +1,263 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.content.Intent;
import android.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()
}
})
}
}

View File

@@ -1,300 +1,263 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.content.Intent;
import android.content.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)
}
}

View File

@@ -1,262 +1,222 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.content.Intent;
import android.content.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
}
})
}
}

View File

@@ -1,278 +1,240 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.content.Intent;
import android.content.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
}
})
}
}
}

View File

@@ -1,285 +1,242 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.content.Context;
import android.content.Intent;
import android.content.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
}
})
}
}

View File

@@ -1,188 +1,194 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.os.Bundle;
import android.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)
}
};
}
}
}

View File

@@ -1,223 +1,226 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.os.Bundle;
import android.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"
}
}
}
};
}
}
}

View File

@@ -1,53 +1,39 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.os.Bundle;
import android.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
}
}
}

View File

@@ -1,255 +1,220 @@
package h_mal.appttude.com.driver.Driver;
package h_mal.appttude.com.driver.Driver
import android.content.Intent;
import android.content.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
}
})
}
}

View File

@@ -1,123 +1,93 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.support.annotation.NonNull;
import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task
import h_mal.appttude.com.driver.MainActivity
import h_mal.appttude.com.driver.Objects.ApprovalsObject
import h_mal.appttude.com.driver.Objects.WholeDriverObject
import h_mal.appttude.com.driver.R
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import h_mal.appttude.com.driver.Objects.ApprovalsObject;
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
}
}
}
}

View File

@@ -1,99 +1,84 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.app.AlertDialog;
import android.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"
}
}

View File

@@ -1,127 +1,103 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.app.DatePickerDialog;
import android.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)
)
}
};
}
}
}

View File

@@ -1,65 +1,68 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.os.Bundle;
import android.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()
}
}
}

View File

@@ -1,111 +1,84 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.app.ProgressDialog;
import android.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
}
}

View File

@@ -1,154 +1,135 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.Manifest;
import android.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
}
}

View File

@@ -1,182 +1,163 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.Manifest;
import android.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)
}
}
}

View File

@@ -1,245 +1,195 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.app.AlertDialog;
import android.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)
}
}

View File

@@ -1,121 +1,96 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.content.Intent;
import android.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
}
}

View File

@@ -1,155 +1,122 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.app.Activity;
import android.app.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()
}
}

View File

@@ -1,32 +1,23 @@
package h_mal.appttude.com.driver.Global;
package h_mal.appttude.com.driver.Global
import android.app.Activity;
import android.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()
}
}
}

View File

@@ -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();
}
}
}

View File

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

View File

@@ -1,56 +1,32 @@
package h_mal.appttude.com.driver.Objects;
package h_mal.appttude.com.driver.Objects
import java.util.HashMap;
import java.util.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;
}
}
}

View File

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

View File

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

View File

@@ -1,31 +1,16 @@
package h_mal.appttude.com.driver.Objects;
package h_mal.appttude.com.driver.Objects
import java.util.List;
public class InsuranceObject {
public List<String> photoStrings;
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;
}
}
}

View File

@@ -1,23 +1,15 @@
package h_mal.appttude.com.driver.Objects;
package h_mal.appttude.com.driver.Objects
public class LogbookObject {
public String photoString;
public String v5cnumber;
public LogbookObject(String photoString, String v5cnumber) {
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()
}

View File

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

View File

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

View File

@@ -1,29 +1,17 @@
package h_mal.appttude.com.driver.Objects;
package h_mal.appttude.com.driver.Objects
public class PrivateHireVehicleObject {
public String phCarImageString;
public String phCarNumber;
public String phCarExpiry;
public PrivateHireVehicleObject(String phCarImageString, String phCarNumber, String phCarExpiry) {
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()
}

View File

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

View File

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

View File

@@ -1,59 +1,35 @@
package h_mal.appttude.com.driver.Objects;
package h_mal.appttude.com.driver.Objects
import h_mal.appttude.com.driver.Objects.ApprovalsObject;
import h_mal.appttude.com.driver.Objects.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()
}

View File

@@ -1,33 +1,24 @@
package h_mal.appttude.com.driver.Objects.WholeObject;
package h_mal.appttude.com.driver.Objects.WholeObject
import h_mal.appttude.com.driver.Objects.DriverProfileObject;
import h_mal.appttude.com.driver.Objects.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()
}

View File

@@ -1,56 +1,41 @@
package h_mal.appttude.com.driver.Objects.WholeObject;
package h_mal.appttude.com.driver.Objects.WholeObject
import android.os.Parcel;
import android.os.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);
}
}
}

View File

@@ -1,55 +1,34 @@
package h_mal.appttude.com.driver.Objects.WholeObject;
package h_mal.appttude.com.driver.Objects.WholeObject
import h_mal.appttude.com.driver.Objects.InsuranceObject;
import h_mal.appttude.com.driver.Objects.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;
}
}
}

View File

@@ -1,305 +1,249 @@
package h_mal.appttude.com.driver.SuperUser;
package h_mal.appttude.com.driver.SuperUser
import android.app.Activity;
import android.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
}
}

View File

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

View File

@@ -1,182 +1,149 @@
package h_mal.appttude.com.driver.SuperUser;
package h_mal.appttude.com.driver.SuperUser
import android.app.AlertDialog;
import android.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
}
}
}

View File

@@ -1,49 +1,36 @@
package h_mal.appttude.com.driver.SuperUser;
package h_mal.appttude.com.driver.SuperUser
import android.os.Bundle;
import android.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
}
}
}

View File

@@ -1,186 +1,181 @@
package h_mal.appttude.com.driver.SuperUser;
package h_mal.appttude.com.driver.SuperUser
import android.app.AlertDialog;
import android.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"
}
}

View File

@@ -1,98 +1,67 @@
package h_mal.appttude.com.driver.User;
package h_mal.appttude.com.driver.user
import android.animation.Animator;
import android.animation.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
}
})
}
}
}

View File

@@ -1,161 +1,161 @@
package h_mal.appttude.com.driver.User;
package h_mal.appttude.com.driver.user
import android.content.Intent;
import android.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
}
}
}

View File

@@ -1,59 +1,50 @@
package h_mal.appttude.com.driver.User;
package h_mal.appttude.com.driver.user
import android.support.annotation.NonNull;
import android.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()
}
});
}
})
}
}
}

View File

@@ -1,251 +1,201 @@
package h_mal.appttude.com.driver.User;
package h_mal.appttude.com.driver.user
import android.app.AlertDialog;
import android.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"
}
}

View File

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

View File

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

View File

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

View File

@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<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"

View File

@@ -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"

View File

@@ -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>

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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>

View File

@@ -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">

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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">

View File

@@ -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>

View File

@@ -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>

View File

@@ -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"

View File

@@ -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>

View File

@@ -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).

View File

@@ -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
}

View File

@@ -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

View File

@@ -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