add project adins

This commit is contained in:
Alfrid Sanjaya Leo Putra 2024-07-25 14:44:22 +07:00
commit f8f85d679d
5299 changed files with 625430 additions and 0 deletions

View file

@ -0,0 +1 @@
/build

View file

@ -0,0 +1,147 @@
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.crashlytics'
android {
lintOptions {
disable 'MissingTranslation'
checkReleaseBuilds false
abortOnError false
}
// change with your msmkey storeFile
signingConfigs {
msmkey {
keyAlias 'aitmsskey'
keyPassword 'AdIns2020'
storeFile file('keystore2020.jks')
storePassword 'AdIns2020'
}
}
compileSdkVersion 30
buildToolsVersion '29.0.2'
defaultConfig {
applicationId "com.adins.survey"
minSdkVersion 19
targetSdkVersion 30
versionCode 7910
versionName "3.2.0.2-$versionCode"
multiDexEnabled true
useLibrary 'org.apache.http.legacy'
archivesBaseName = "MSSSVY-$versionName"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
dexOptions {
javaMaxHeapSize "5g"
}
dataBinding {
enabled = true
}
buildTypes {
release {
shrinkResources false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.msmkey
}
debug {
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions{
exclude 'META-INF/proguard/androidx-annotations.pro'
}
flavorDimensions "default"
productFlavors {
developer {
applicationId "com.adins.mss.svy.dev"
versionCode 7898
dimension "default"
versionName "3.2.0.0-$versionCode-D"
buildConfigField "boolean", "IS_DEV", "true"
buildConfigField "boolean", "IS_DBENCRYPT", "false"
buildConfigField "boolean", "IS_BYPASSROOT", "true"
buildConfigField "String", "IS_FLAVORS", "\"DEVELOPER\""
}
product {
applicationId "com.adins.mss.svy"
versionCode 7898
dimension "default"
versionName "3.2.0.0-$versionCode-P"
buildConfigField "boolean", "IS_DEV", "false"
buildConfigField "boolean", "IS_DBENCRYPT", "true"
buildConfigField "boolean", "IS_BYPASSROOT", "false"
buildConfigField "String", "IS_FLAVORS", "\"PRODUCT\""
}
trial {
applicationId "com.adins.mss.svy.trial"
versionCode 7898
dimension "default"
versionName "3.2.0.0-$versionCode-P"
buildConfigField "boolean", "IS_DEV", "false"
buildConfigField "boolean", "IS_DBENCRYPT", "true"
buildConfigField "boolean", "IS_BYPASSROOT", "false"
buildConfigField "String", "IS_FLAVORS", "\"TRIAL\""
}
cloud {
applicationId "com.adins.survey"
versionCode 7910
dimension "default"
versionName "3.2.0.2-$versionCode-P"
buildConfigField "boolean", "IS_DEV", "false"
buildConfigField "boolean", "IS_DBENCRYPT", "true"
buildConfigField "boolean", "IS_BYPASSROOT", "false"
buildConfigField "String", "IS_FLAVORS", "\"PRODUCT\""
}
clouddev {
applicationId "com.adins.mss.svy.cloud.dev"
versionCode 5294
dimension "default"
versionName "3.2.0.0-$versionCode-D"
buildConfigField "boolean", "IS_DEV", "true"
buildConfigField "boolean", "IS_DBENCRYPT", "false"
buildConfigField "boolean", "IS_BYPASSROOT", "true"
buildConfigField "String", "IS_FLAVORS", "\"DEVELOPER\""
}
}
}
configurations.all {
resolutionStrategy {
force 'com.android.support:support-annotations:28.0.0'
}
}
dependencies {
implementation project(':mssbase')
implementation 'com.google.firebase:firebase-messaging:20.2.4'
implementation 'androidx.annotation:annotation:1.0.0'
implementation 'com.google.firebase:firebase-perf:19.0.8'
implementation 'com.google.firebase:firebase-core:17.5.0'
implementation 'com.google.firebase:firebase-analytics:17.5.0'
implementation 'com.google.firebase:firebase-crashlytics:17.2.1'
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.github.vihtarb:tooltip:0.2.0'
testImplementation 'junit:junit:4.12'
// Espresso UI Testing
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
androidTestImplementation 'androidx.test:rules:1.1.0'
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'org.powermock:powermock-core:1.7.0RC2'
androidTestImplementation 'org.powermock:powermock-module-junit4:1.7.0RC2'
androidTestImplementation 'org.powermock:powermock-api-mockito2:1.7.0RC2'
}
//dependencies {
// debugimplementation 'com.squareup.leakcanary:leakcanary-android:1.5.1'
//// releaseimplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
// testimplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
//}
apply plugin: 'com.google.firebase.firebase-perf'
apply plugin: 'com.google.gms.google-services'

View file

@ -0,0 +1,585 @@
{
"project_info": {
"project_number": "814888014770",
"firebase_url": "https://aitmss-1fd04.firebaseio.com",
"project_id": "aitmss-1fd04",
"storage_bucket": "aitmss-1fd04.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:30c443717ea63b1d",
"android_client_info": {
"package_name": "com.adins.mss.coll"
}
},
"oauth_client": [
{
"client_id": "814888014770-3mnsl7ja8ddiuv5sl5gqfvij9cm973na.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.coll",
"certificate_hash": "b07630f358413826df1dceeff13dec3cc7642e36"
}
},
{
"client_id": "814888014770-o9drphjl20de1nbt9bd1tbuj08musiis.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.coll",
"certificate_hash": "edf00b52879e51d97f85961fd196240bbd316220"
}
},
{
"client_id": "814888014770-1crpacj0ttvkjeimakn6qe6pmhu3qeq7.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.coll",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "814888014770-lqni1uhtl2omhj2ghl8ennrlpdtgchgi.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.coll",
"certificate_hash": "781f237f99355c079785379c9bb39d0c6f036fba"
}
},
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:5c334278ae3d4dbd",
"android_client_info": {
"package_name": "com.adins.mss.coll.dev"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:62ea46ede52e350b",
"android_client_info": {
"package_name": "com.adins.mss.coll.trial"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:6168d59a3ce39f25",
"android_client_info": {
"package_name": "com.adins.mss.svy"
}
},
"oauth_client": [
{
"client_id": "814888014770-5f1768ika3hs4ttrek8jmkmf5rahfi1l.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.svy",
"certificate_hash": "b07630f358413826df1dceeff13dec3cc7642e36"
}
},
{
"client_id": "814888014770-6jbu06k8ntt610ah06be2q8fmf8g49u6.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.svy",
"certificate_hash": "edf00b52879e51d97f85961fd196240bbd316220"
}
},
{
"client_id": "814888014770-nr69qi0ku9cgok5co187apdpgs0at6ie.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.svy",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "814888014770-34mdd9bo2goldi5a5hoeh4iup8nvcdvk.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.svy",
"certificate_hash": "781f237f99355c079785379c9bb39d0c6f036fba"
}
},
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:4c9a50b93d56ebef",
"android_client_info": {
"package_name": "com.adins.mss.svy.dev"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:48590bba4365ec2d",
"android_client_info": {
"package_name": "com.adins.mss.odr"
}
},
"oauth_client": [
{
"client_id": "814888014770-itt09df2ovn47an5rearlf1kh8ljp5tt.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.odr",
"certificate_hash": "b07630f358413826df1dceeff13dec3cc7642e36"
}
},
{
"client_id": "814888014770-09lnve4i7o6ml5436v128stk0jfu5vug.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.odr",
"certificate_hash": "edf00b52879e51d97f85961fd196240bbd316220"
}
},
{
"client_id": "814888014770-52el593n7dc31cgu431kiqes2qijklie.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.odr",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "814888014770-76sm9sf0veuhc96gtiqkdinju9b4al6d.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.odr",
"certificate_hash": "781f237f99355c079785379c9bb39d0c6f036fba"
}
},
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:75bff1874bc58298",
"android_client_info": {
"package_name": "com.adins.mss.odr.dev"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:41ac49e3a1067b63",
"android_client_info": {
"package_name": "com.adins.mss.svy.trial"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:0056a18df222e269",
"android_client_info": {
"package_name": "com.adins.mss.odr.trial"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:2ce43e2402f184a7",
"android_client_info": {
"package_name": "com.adins.mss.mma"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:81af48a318e62233",
"android_client_info": {
"package_name": "com.adins.mss.mma.dev"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:4394bdce086fcfcc",
"android_client_info": {
"package_name": "com.adins.mss.mma.trial"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:7314503471868713",
"android_client_info": {
"package_name": "com.adins.mss.base"
}
},
"oauth_client": [
{
"client_id": "814888014770-51c5dehkiu9o90j7rdq9ke6fvlvaomtc.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.base",
"certificate_hash": "781f237f99355c079785379c9bb39d0c6f036fba"
}
},
{
"client_id": "814888014770-aqe9bq2rc57suvnangenhpfai77f4j2u.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.base",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
}
],
"configuration_version": "1"
}

View file

@ -0,0 +1,245 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in C:\Users\gigin.ginanjar\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
-optimizationpasses 5
#When not preverifing in a case-insensitive filing system, such as Windows. Because this tool unpacks your processed jars, you should then use:
-dontusemixedcaseclassnames
#Specifies not to ignore non-public library classes. As of version 4.5, this is the default setting
-dontskipnonpubliclibraryclasses
#Preverification is irrelevant for the dex compiler and the Dalvik VM, so we can switch it off with the -dontpreverify option.
-dontpreverify
#Specifies to write out some more information during processing. If the program terminates with an exception, this option will print out the entire stack trace, instead of just the exception message.
-verbose
#The -optimizations option disables some arithmetic simplifications that Dalvik 1.0 and 1.5 can't handle. Note that the Dalvik VM also can't handle aggressive overloading (of static fields).
#To understand or change this check http://proguard.sourceforge.net/index.html#/manual/optimizations.html
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#To repackage classes on a single package
-repackageclasses ''
#Uncomment if using annotations to keep them.
-keepattributes *Annotation*, Override
-keepattributes Signature
-keepattributes EnclosingMethod
-keepattributes InnerClasses
#-keep public class !com.adins.mss.** {*;}
#Keep classes that are referenced on the AndroidManifest
#-keep public class * extends androidx.fragment.app.Fragment
-keep public class * extends androidx.appcompat.app.AppCompatActivity
-keep public class * extends com.adins.mss.base.MssFragmentActivity
-keep public class * extends androidx.fragment.app.Fragment
-keep public class * extends androidx.fragment.app.FragmentActivity
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends com.adins.mss.foundation.http.MssRequestType
-keep public class * extends com.adins.mss.foundation.http.MssResponseType
-keep public class com.android.vending.licensing.ILicensingService
-keep class com.adins.**.*Request
-keep class com.adins.**.*Response
-keep class android.** { *; }
-keep class com.google.** { *; }
-keep class net.sqlcipher.** {*;}
#To remove debug logs:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** e(...);
public static *** i(...);
}
#To avoid changing names of methods invoked on layout's onClick.
# Uncomment and add specific method names if using onClick on layouts
-keepclassmembers class * {
public void onClickButton(android.view.View);
}
#Maintain java native methods
-keepclasseswithmembernames class * {
native <methods>;
}
#To maintain custom components names that are used on layouts XML.
#Uncomment if having any problem with the approach below
#-keep public class custom.components.package.and.name.**
#To maintain custom components names that are used on layouts XML:
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
#Maintain enums
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
#To keep parcelable classes (to serialize - deserialize objects to sent through Intents)
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#Keep the R
-keepclassmembers class **.R$* {
public static <fields>;
}
#Keep Interface
-keep interface * {*;}
-keep class sun.misc.Unsafe { *; }
###### ADDITIONAL OPTIONS NOT USED NORMALLY
#To keep callback calls. Uncomment if using any
#http://proguard.sourceforge.net/index.html#/manual/examples.html#callback
#-keep class mypackage.MyCallbackClass {
# void myCallbackMethod(java.lang.String);
#}
#Uncomment if using Serializable
-keepclassmembers class * implements java.io.Serializable {
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
-keep class * implements java.io.Serializable {
public protected <fields>;
}
#Keep fields for Gson transactions
-keep public class * extends com.adins.mss.foundation.http.MssRequestType{
<fields>;
}
-keep public class * extends com.adins.mss.foundation.http.MssResponseType{
<fields>;
}
-keep public class * extends com.adins.mss.foundation.http.KeyValue{
<fields>;
}
-ignorewarnings
#Keep Class For MSS
-keep class com.adins.mss.dao.** {*;}
#-keep class com.adins.mss.svy.MSLoginActivity
-keep class com.adins.mss.base.login.DefaultLoginModel
-keep public class com.adins.mss.foundation.formatter.DateFormatter{
public <methods>;
}
#-keep public class com.adins.mss.base.authentication.AuthenticationResultBean{
# <fields>;
#}
#-keep class com.adins.mss.base.GlobalData{
# public <methods>;
# <fields>;
#}
#-keep class com.adins.mss.constant.Global
#-keep class com.adins.mss.svy.login.MSDefaultLoginModel
-keepclassmembers class *{
static <fields>;
public <methods>;
}
#Keep for Timeline
#-keep class com.adins.mss.base.timeline.activity.Timeline_Activity{
# public void outstandingTask(android.view.View);
# public void tmCheckIn(android.view.View);
# public void changeHeader(android.view.View);
# public void changeProfile(android.view.View);
# public void searchContent(android.view.View);
# public void tmSubmitted(android.view.View);
# public void tmTask(android.view.View);
# public void tmMessage(android.view.View);
#}
#-keepclassmembers class *{
# public void ***(android.view.View);
#}
-keep class com.adins.mss.base.dialogfragments.NewTaskDialog {
public void itemClick(android.widget.AdapterView,android.view.View,int,long);
}
-dontwarn javax.script.**
-dontwarn org.apache.commons.logging.**
-dontwarn java.beans.**
-dontwarn okio.**
-dontwarn com.androidquery.auth.TwitterHandle
-dontwarn org.bouncycastle.**
-dontwarn oauth.**
-dontwarn com.android.auth.TwitterHandle.**
-keep class javax.** {*;}
-keep class org.apache.commons.logging.** {*;}
-keep class java.beans.** {*;}
-keep class org.apache.commons.jexl2.** {*;}
-keep class org.bouncycastle.** {*;}
-keep class okio.** {*;}
-keep class oauth.signpost.** {*;}
-keep class org.apache.log4j.Logger {*;}
-keep class java.nio.** {*;}
-keep class junit..** {*;}
-keep class oauth.signpost.commonshttp.** {*;}
-keep public class com.gadberry.** {*;}
-keep class oauth.** { *; }
-keep class com.android.auth.TwitterHandle.** { *; }
-keepclassmembers class **.R$* { public static <fields>; }
-keep class net.sqlcipher.** { *; }
-keep class net.sqlcipher.database.** { *; }
-keep public class com.adins.mss.logger.Logger{
public <methods>;
}
-keep class com.androidquery.AQuery {
public protected <methods>;
public protected <fields>;
}
-keep class com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences {*;}
-keep public class com.adins.mss.foundation.UserHelp.** {*;}

View file

@ -0,0 +1,47 @@
package com.adins.mss.svy;
import android.content.Context;
import android.os.Build;
import android.support.test.InstrumentationRegistry;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import com.adins.mss.foundation.http.AuditDataType;
import com.adins.mss.foundation.http.AuditDataTypeGenerator;
import com.adins.mss.foundation.http.MssRequestType;
import com.adins.mss.foundation.phone.TelephonyInfo;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import static org.junit.Assert.assertEquals;
import java.util.Map;
@RunWith(AndroidJUnit4.class)
public class AndroidQIMEITest {
@Rule
public ActivityTestRule activityTestRule = new ActivityTestRule(MSLoginActivity.class);
@Mock
Context context;
@Before
public void setUp() {
context = InstrumentationRegistry.getTargetContext().getApplicationContext();
}
@Test
public void LoginActivityTest(){
Map<String, String> imeiMap = AuditDataTypeGenerator.getListImeiFromDevice(context);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
assertEquals(AuditDataTypeGenerator.getAndroidId(), imeiMap.get(MssRequestType.UN_KEY_IMEI));
} else{
TelephonyInfo tm = TelephonyInfo.getInstance(context);
assertEquals(tm.getImeiSIM1(), imeiMap.get(MssRequestType.UN_KEY_IMEI));
}
}
}

View file

@ -0,0 +1,13 @@
package com.adins.mss.svy;
import android.app.Application;
//import android.test.ApplicationTestCase;
/**
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
*/
public class ApplicationTest {
/*public ApplicationTest() {
super(Application.class);
}*/
}

View file

@ -0,0 +1,57 @@
package com.adins.mss.svy;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import com.adins.mss.base.GlobalData;
import com.adins.mss.dao.User;
import com.adins.mss.foundation.config.ConfigFileReader;
import org.acra.ACRA;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.Properties;
import static org.acra.ACRA.PREF_DISABLE_ACRA;
import static org.acra.ACRA.PREF_ENABLE_ACRA;
@RunWith(AndroidJUnit4.class)
public class DisableAcraTest {
Context context;
@Before
public void setUpContext(){
context = InstrumentationRegistry.getTargetContext().getApplicationContext();
}
@Test
public void testDisableAcra(){
//used for acra log
User a = null;
try {
String id = a.getBranch_id();
}
catch (NullPointerException e){
ACRA.getErrorReporter().putCustomData("User Null Exception",e.getMessage());
ACRA.getErrorReporter().handleSilentException(new Exception("Null Pointer User"));
}
//this code is taken from ACRA code to check acra disable
//check disable from acra preference
SharedPreferences acraPref = ACRA.getACRASharedPreferences();
final boolean enableAcra = acraPref.getBoolean(PREF_ENABLE_ACRA, true);
boolean disableAcra = acraPref.getBoolean(PREF_DISABLE_ACRA, !enableAcra);
//test if pref disable acra is true
Assert.assertTrue(disableAcra);
}
}

View file

@ -0,0 +1,434 @@
{
"project_info": {
"project_number": "446222152141",
"firebase_url": "https://aitmss-cloud.firebaseio.com",
"project_id": "aitmss-cloud",
"storage_bucket": "aitmss-cloud.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:7314503471868713",
"android_client_info": {
"package_name": "com.adins.mss.base"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:82ba9047a008c046",
"android_client_info": {
"package_name": "com.adins.mss.coll.cloud"
}
},
"oauth_client": [
{
"client_id": "446222152141-buravk7m2l0j6o2tosr7mn717ukam7lo.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.coll.cloud",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:cecbb11fe64bc4f1",
"android_client_info": {
"package_name": "com.adins.mss.coll.cloud.dev"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:d9573a5a957ef4f0",
"android_client_info": {
"package_name": "com.adins.mss.coll.cloud.trial"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:b65468a6c10b3f97",
"android_client_info": {
"package_name": "com.adins.mss.odr.cloud"
}
},
"oauth_client": [
{
"client_id": "446222152141-r44n3f9ci2g7cveohplqgt5hi3gri0b5.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.odr.cloud",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:d722cab582795d44",
"android_client_info": {
"package_name": "com.adins.mss.odr.cloud.dev"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:338f8c2ea2872c21",
"android_client_info": {
"package_name": "com.adins.mss.svy.cloud"
}
},
"oauth_client": [
{
"client_id": "446222152141-ikq3or8fefog8m9uiqboih3uc7r23epo.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.svy.cloud",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:0b9842b47415ffc9",
"android_client_info": {
"package_name": "com.adins.mss.svy.cloud.dev"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:c40e5d0f9a417228",
"android_client_info": {
"package_name": "com.adins.collection"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
},
{
"current_key": "AIzaSyA2V50uQBKw5_w2f3BEEbcNkmwofZyt-Io"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:bb9385b95e120d4c",
"android_client_info": {
"package_name": "com.adins.collection.dev"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
},
{
"current_key": "AIzaSyA2V50uQBKw5_w2f3BEEbcNkmwofZyt-Io"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:95299b5f05d78e63",
"android_client_info": {
"package_name": "com.adins.survey"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
},
{
"current_key": "AIzaSyA2V50uQBKw5_w2f3BEEbcNkmwofZyt-Io"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:a841b661c5c9d7d5",
"android_client_info": {
"package_name": "com.adins.survey.dev"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
},
{
"current_key": "AIzaSyA2V50uQBKw5_w2f3BEEbcNkmwofZyt-Io"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
}
],
"configuration_version": "1"
}

View file

@ -0,0 +1,298 @@
{
"project_info": {
"project_number": "446222152141",
"firebase_url": "https://aitmss-cloud.firebaseio.com",
"project_id": "aitmss-cloud",
"storage_bucket": "aitmss-cloud.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:7314503471868713",
"android_client_info": {
"package_name": "com.adins.mss.base"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:82ba9047a008c046",
"android_client_info": {
"package_name": "com.adins.mss.coll.cloud"
}
},
"oauth_client": [
{
"client_id": "446222152141-buravk7m2l0j6o2tosr7mn717ukam7lo.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.coll.cloud",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:cecbb11fe64bc4f1",
"android_client_info": {
"package_name": "com.adins.mss.coll.cloud.dev"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:d9573a5a957ef4f0",
"android_client_info": {
"package_name": "com.adins.mss.coll.cloud.trial"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:b65468a6c10b3f97",
"android_client_info": {
"package_name": "com.adins.mss.odr.cloud"
}
},
"oauth_client": [
{
"client_id": "446222152141-r44n3f9ci2g7cveohplqgt5hi3gri0b5.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.odr.cloud",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:d722cab582795d44",
"android_client_info": {
"package_name": "com.adins.mss.odr.cloud.dev"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:338f8c2ea2872c21",
"android_client_info": {
"package_name": "com.adins.mss.svy.cloud"
}
},
"oauth_client": [
{
"client_id": "446222152141-ikq3or8fefog8m9uiqboih3uc7r23epo.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.svy.cloud",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:446222152141:android:0b9842b47415ffc9",
"android_client_info": {
"package_name": "com.adins.mss.svy.cloud.dev"
}
},
"oauth_client": [
{
"client_id": "446222152141-llmcc27vignp2jas7f71rb1sva69e62j.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC3a4yfB1rBSHTlMlGarmHKkoeRj9f44MY"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
}
],
"configuration_version": "1"
}

View file

@ -0,0 +1,585 @@
{
"project_info": {
"project_number": "814888014770",
"firebase_url": "https://aitmss-1fd04.firebaseio.com",
"project_id": "aitmss-1fd04",
"storage_bucket": "aitmss-1fd04.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:30c443717ea63b1d",
"android_client_info": {
"package_name": "com.adins.mss.coll"
}
},
"oauth_client": [
{
"client_id": "814888014770-3mnsl7ja8ddiuv5sl5gqfvij9cm973na.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.coll",
"certificate_hash": "b07630f358413826df1dceeff13dec3cc7642e36"
}
},
{
"client_id": "814888014770-o9drphjl20de1nbt9bd1tbuj08musiis.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.coll",
"certificate_hash": "edf00b52879e51d97f85961fd196240bbd316220"
}
},
{
"client_id": "814888014770-1crpacj0ttvkjeimakn6qe6pmhu3qeq7.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.coll",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "814888014770-lqni1uhtl2omhj2ghl8ennrlpdtgchgi.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.coll",
"certificate_hash": "781f237f99355c079785379c9bb39d0c6f036fba"
}
},
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:5c334278ae3d4dbd",
"android_client_info": {
"package_name": "com.adins.mss.coll.dev"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:62ea46ede52e350b",
"android_client_info": {
"package_name": "com.adins.mss.coll.trial"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:6168d59a3ce39f25",
"android_client_info": {
"package_name": "com.adins.mss.svy"
}
},
"oauth_client": [
{
"client_id": "814888014770-5f1768ika3hs4ttrek8jmkmf5rahfi1l.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.svy",
"certificate_hash": "b07630f358413826df1dceeff13dec3cc7642e36"
}
},
{
"client_id": "814888014770-6jbu06k8ntt610ah06be2q8fmf8g49u6.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.svy",
"certificate_hash": "edf00b52879e51d97f85961fd196240bbd316220"
}
},
{
"client_id": "814888014770-nr69qi0ku9cgok5co187apdpgs0at6ie.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.svy",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "814888014770-34mdd9bo2goldi5a5hoeh4iup8nvcdvk.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.svy",
"certificate_hash": "781f237f99355c079785379c9bb39d0c6f036fba"
}
},
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:4c9a50b93d56ebef",
"android_client_info": {
"package_name": "com.adins.mss.svy.dev"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:48590bba4365ec2d",
"android_client_info": {
"package_name": "com.adins.mss.odr"
}
},
"oauth_client": [
{
"client_id": "814888014770-itt09df2ovn47an5rearlf1kh8ljp5tt.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.odr",
"certificate_hash": "b07630f358413826df1dceeff13dec3cc7642e36"
}
},
{
"client_id": "814888014770-09lnve4i7o6ml5436v128stk0jfu5vug.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.odr",
"certificate_hash": "edf00b52879e51d97f85961fd196240bbd316220"
}
},
{
"client_id": "814888014770-52el593n7dc31cgu431kiqes2qijklie.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.odr",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "814888014770-76sm9sf0veuhc96gtiqkdinju9b4al6d.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.odr",
"certificate_hash": "781f237f99355c079785379c9bb39d0c6f036fba"
}
},
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:75bff1874bc58298",
"android_client_info": {
"package_name": "com.adins.mss.odr.dev"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:41ac49e3a1067b63",
"android_client_info": {
"package_name": "com.adins.mss.svy.trial"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:0056a18df222e269",
"android_client_info": {
"package_name": "com.adins.mss.odr.trial"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:2ce43e2402f184a7",
"android_client_info": {
"package_name": "com.adins.mss.mma"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:81af48a318e62233",
"android_client_info": {
"package_name": "com.adins.mss.mma.dev"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:4394bdce086fcfcc",
"android_client_info": {
"package_name": "com.adins.mss.mma.trial"
}
},
"oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:814888014770:android:7314503471868713",
"android_client_info": {
"package_name": "com.adins.mss.base"
}
},
"oauth_client": [
{
"client_id": "814888014770-51c5dehkiu9o90j7rdq9ke6fvlvaomtc.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.base",
"certificate_hash": "781f237f99355c079785379c9bb39d0c6f036fba"
}
},
{
"client_id": "814888014770-aqe9bq2rc57suvnangenhpfai77f4j2u.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.adins.mss.base",
"certificate_hash": "e831f754571d0287b1577c64c2f9da80dca8a28d"
}
},
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC6ybt31nRknv-l0dzR69vZZGPoSeHkAm8"
},
{
"current_key": "AIzaSyDmV5RbC4xQFgzhTUAQMHUSbtFdl8wduII"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "814888014770-qgllsrlpktvi162r6uqae4on3qtg0ap2.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
}
],
"configuration_version": "1"
}

View file

@ -0,0 +1,235 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.adins.mss.svy"
android:installLocation="internalOnly">
<!--<uses-permission android:name="android.permission.RECORD_AUDIO" />-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature
android:name="android.hardware.camera.front"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.flash"
android:required="false" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <!-- External storage for caching. -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- My Location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- <uses-permission android:name="android.permission.CALL_PHONE" /> -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- Maps API needs OpenGL ES 2.0. -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:name="com.adins.mss.main.MSMApplication"
android:allowBackup="false"
android:fullBackupContent="false"
android:icon="@drawable/icon_launcher_check_id"
android:label="@string/app_name"
android:logo="@drawable/logo_mss"
android:supportsRtl="true"
android:theme="@style/CustomTheme"
android:usesCleartextTraffic="true">
<receiver
android:name="com.services.RestartAutoSendLocationReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="com.adins.intent.action_RESTART_AUTOSEND_LOCATION" />
</intent-filter>
</receiver>
<service
android:name="com.services.MSLocationTrackingService"
android:foregroundServiceType="location"
android:enabled="true"
android:exported="false" />
<receiver android:name="com.services.MSLocationTrackingService$UserLogoutReceiver">
<intent-filter>
<action android:name="com.adins.mss.action_USER_LOGOUT" />
</intent-filter>
</receiver>
<activity
android:name=".MSLoginActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:excludeFromRecents="true"
android:screenOrientation="portrait"
android:theme="@style/CustomTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".NewMSMainActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/CustomTheme" />
<activity
android:name="com.adins.mss.base.ServerLinkActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/title_server_link"
android:screenOrientation="portrait"
android:theme="@style/CustomTheme" />
<activity
android:name=".MSSynchronizeActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/app_name"
android:theme="@style/CustomTheme" />
<activity
android:name=".MSMainMenuActivity"
android:configChanges="locale|orientation|screenSize"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/CustomTheme.TranslucentActionBar" />
<activity
android:name="com.adins.mss.base.dynamicform.VoiceNotePage"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:excludeFromRecents="true"
android:screenOrientation="portrait" />
<activity
android:name="com.adins.mss.foundation.image.ViewImageActivity"
android:launchMode="singleTop" />
<activity android:name="com.soundcloud.android.crop.CropImageActivity" />
<activity
android:name="com.adins.mss.base.timeline.comment.activity.CommentActivity"
android:launchMode="singleTop" />
<activity
android:name="com.adins.mss.base.dynamicform.DynamicFormActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:parentActivityName=".NewMSMainActivity"
android:screenOrientation="portrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".NewMSMainActivity" />
</activity>
<activity
android:name="com.adins.mss.base.dynamicform.SendResultActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:launchMode="singleTop" />
<activity
android:name=".reassignment.OrderReassignmentResult"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:launchMode="singleTop" />
<activity
android:name=".assignment.LookupAssignment"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:launchMode="singleTop" />
<activity
android:name=".assignment.OrderAssignmentResult"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:launchMode="singleTop"
android:windowSoftInputMode="adjustResize" />
<activity
android:name="com.adins.mss.base.timeline.MapsViewer"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:launchMode="singleTop" />
<activity
android:name="com.adins.mss.base.ChangePasswordActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:launchMode="singleTop" />
<activity
android:name="com.adins.mss.foundation.image.CroppingImageActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
<activity android:name="com.adins.mss.base.PrintActivity" />
<activity
android:name="com.adins.mss.base.todolist.form.ViewMapActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
<activity
android:name="com.adins.mss.foundation.questiongenerator.form.LocationTagingView"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
<activity
android:name="com.adins.mss.foundation.questiongenerator.form.FingerDrawingActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
<activity
android:name="com.adins.mss.base.todolist.form.AllHeaderViewerActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
<activity
android:name="com.adins.mss.foundation.camera2.Camera2BasicRealActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoTitle" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyA2V50uQBKw5_w2f3BEEbcNkmwofZyt-Io" /> <!-- android:value="AIzaSyDEK_F1pp8MEVvkCLtVs4R9spdm_JColds" /> -->
<!-- android:value="AIzaSyDbW6WbmyOF7-QtIPPja1xFT6VNvpBNEC0" /> -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
<service android:name="com.tracking.LocationTrackingService" />
<service android:name="com.services.AutoSendImageService" />
<service android:name="com.services.AutoSendTaskService" />
<service android:name="com.services.NotificationService" />
<service android:name="com.services.SurveyVerificationService" />
<service android:name="com.services.SurveyApprovalService" />
<activity
android:name=".SurveyVerificationActionActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/title_activity_survey_verification_action" />
<activity
android:name="com.adins.mss.base.DeveloperOptionActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/title_developer_option"
android:screenOrientation="portrait"
android:theme="@style/CustomTheme" />
<activity
android:name="com.adins.mss.base.mainmenu.settings.SettingActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize" />
<activity
android:name="com.adins.mss.foundation.camerainapp.CameraActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoTitle" />
<service android:name="com.services.FirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name="com.services.RefreshToken">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
</application>
</manifest>

View file

@ -0,0 +1,123 @@
# Target URL
#url_main=http://app.ad-ins.com/adimobile/msswebservicessit/services/m/
#url_main=http://app.ad-ins.com/adimobile/msswebservicesdemo/services/m/
url_main=http://mss-sit-svr.ad-ins.com:8080/msswebservicessit/services/m/
#url_serv_login=user/login
#url_serv_attendance=
url_serv_sync=user/sync
url_upload_avatar=user/updateavatar
url_serv_tracking=tracking
#url_serv_submit=submit
url_serv_personalization=person
url_serv_location_history=user/updatelocationhistory
#url_serv_refresh_task=task/refreshtask
#url_serv_retrieve_task_list=task/retrievetasklist
#------------------------
url_login=user/login
url_update_fcm=user/updatefcm
url_changepassword=user/changepassword
url_get_absensi=user/absensi
url_syncparam=sync/syncParam
url_sync_file=sync/datafiles
url_submitlastsync=sync/submitLastSync
url_syncparam_constraint=sync/syncParamConstraint
url_get_tasklist=task/retrievetasklist
url_refreshtask=task/refreshtask
url_submittask=task/submittask
url_submitopenreadtask=task/updatereadopentask
url_get_questionset=form/questionset
url_get_verification=form/retrieveVerificationForm
url_get_image=form/getimages
url_get_scheme=form/retrieveForm
#url_get_collectionlist
#url_submit
#url_inquiry
#url_updatelocationhistory
#url_ordertracking
#url_sync
#url_updatetaskread
#url_presubmit
#url_error_logger
url_get_svyperformance=task/surveyperformance
url_get_lookup=task/getUserAssign
url_get_list_reassignment=task/getHeaderTaskList
url_get_detail_reassignment=task/getDetailTask
url_get_list_assignment=task/getHeaderTaskList
url_get_detail_assignment=task/getDetailTask
url_get_detail_order=task/getDetailTask
url_submit_assign=task/submitTaskChange
url_get_list_verification=task/getverificationtasklist
url_get_list_approval=task/getapprovaltasklist
url_senddepositreport=task/depositreport
url_get_paymenthistory=paymenthistory/retrievepaymenthistory
url_get_installmentschedule=installschedule/retrieveinsschedule
url_get_collectionhistory=getCollectionHistory
url_submitverificationtask=task/submitverificationtask
url_submitapprovaltask=task/submitappprovaltask
url_get_contentnews=getContentNews
url_checkorder=task/checkorder
url_get_task=gettask
url_get_newsheader=task/contentnews
url_get_newscontent=task/contentnews
url_get_list_cancelorder=task/cancelorder
url_get_detail_cancelorder=task/cancelorder
url_get_cancelorder=task/cancelorder
url_submit_track=user/updatelocationhistory
url_submit_reschedule=task/submitpts
url_get_list_user=task/getlistuser
url_check_update=user/checkupdate
url_get_lookup_answer=task/luOnline
url_submit_dkcp=task/submitDkcp
#Loyalti
url_get_detailkompetisi=user/getdetailcompetition
url_get_logo=user/geticoncompetition
url_loyalty_detail_point=user/detailpoint
#------------------------
#CR external db
save_path=/aitmss/data/
use_external_storage=true
#------------------------
encrypt=false
decrypt=false
is_developer=true
is_developer_mode=false
is_bypass_developer=false
is_secure_connection=false
can_access_developer_mode=true
is_required_access_token=true
client_id=android
use_own_camera=true
is_bypassroot = false
enable_user_help = true
enable_loc_permission_ui = true
disable_acra = true
application=MS
max_log=10
log_age=0
default_max_lenght=100
thumb_width=240
thumb_height=360
camera_quality=1
interval_tracking=6000
interval_autosend=6000
interval_gps_timeout=6000
change_uuid=false
divider_uuid=-

View file

@ -0,0 +1,119 @@
package com.adins.mss.main;
import android.content.Context;
import android.content.SharedPreferences;
import com.adins.mss.base.AppContext;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.config.ConfigFileReader;
import com.adins.mss.svy.BuildConfig;
import com.adins.mss.svy.NewMSMainActivity;
import com.adins.mss.svy.R;
import com.google.firebase.FirebaseApp;
import com.google.firebase.crashlytics.FirebaseCrashlytics;
import org.acra.ACRA;
import org.acra.ACRAConfiguration;
import org.acra.ACRAConfigurationException;
import org.acra.ReportField;
import org.acra.ReportingInteractionMode;
import java.util.Properties;
/**
* Created by dian.ina on 04/06/2015.
*/
//@ReportsCrashes(
// formUri = "http://app.ad-ins.com:5984/acra-demotest/_design/acra-storage/_update/report",
// reportType = org.acra.sender.HttpSender.Type.JSON,
// httpMethod = org.acra.sender.HttpSender.Method.PUT,
// formUriBasicAuthLogin="admin",
// formUriBasicAuthPassword="12345",
// customReportContent = {
// ReportField.APP_VERSION_CODE,
// ReportField.APP_VERSION_NAME,
// ReportField.ANDROID_VERSION,
// ReportField.INSTALLATION_ID,
// ReportField.PACKAGE_NAME,
// ReportField.REPORT_ID,
// ReportField.BUILD,
// ReportField.STACK_TRACE,
// ReportField.AVAILABLE_MEM_SIZE,
// ReportField.TOTAL_MEM_SIZE,
// ReportField.SETTINGS_SECURE,
// ReportField.DISPLAY,
// ReportField.CUSTOM_DATA
// },
// mode = ReportingInteractionMode.TOAST,
// resToastText = R.string.toast_crash
//)
public class MSMApplication extends AppContext {
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
final ACRAConfiguration config = new ACRAConfiguration();
if(BuildConfig.FLAVOR.contains("prod")){
config.setFormUri("http://app.ad-ins.com:5984/acra-aitmss-prod/_design/acra-storage/_update/report");
}else{
config.setFormUri("http://app.ad-ins.com:5984/acra-aitmss-dev/_design/acra-storage/_update/report");
}
config.setReportType(org.acra.sender.HttpSender.Type.JSON);
config.setHttpMethod(org.acra.sender.HttpSender.Method.PUT);
config.setFormUriBasicAuthLogin("admin");
config.setFormUriBasicAuthPassword("12345");
ReportField[] customReportContent = {
ReportField.APP_VERSION_CODE,
ReportField.APP_VERSION_NAME,
ReportField.ANDROID_VERSION,
ReportField.INSTALLATION_ID,
ReportField.PACKAGE_NAME,
ReportField.REPORT_ID,
ReportField.BUILD,
ReportField.STACK_TRACE,
ReportField.AVAILABLE_MEM_SIZE,
ReportField.TOTAL_MEM_SIZE,
ReportField.SETTINGS_SECURE,
ReportField.DISPLAY,
ReportField.CUSTOM_DATA,
ReportField.SHARED_PREFERENCES
};
config.setCustomReportContent(customReportContent);
//disable acra => set acra custom preference sesuai app.properties
Properties properties = ConfigFileReader.propertiesFromFile(this, GlobalData.PROPERTY_FILENAME);
boolean disableAcra = Boolean.parseBoolean(properties.getProperty(GlobalData.PROP_DISABLE_ACRA));
Global.ACRA_DISABLED = disableAcra;
String acraCustomPrefName = "ACRACUSTOMPREF";
SharedPreferences acracustompref = getSharedPreferences(acraCustomPrefName, Context.MODE_PRIVATE);
acracustompref.edit().putBoolean(ACRA.PREF_DISABLE_ACRA,disableAcra).commit();
config.setSharedPreferenceName(acraCustomPrefName);
config.setSharedPreferenceMode(Context.MODE_PRIVATE);
try {
config.setMode(ReportingInteractionMode.TOAST);
} catch (ACRAConfigurationException e) {
e.printStackTrace();
}
config.setResToastText(R.string.toast_crash);
ACRA.init(this, config);
//setting firebase crashlytic instance
FirebaseApp.initializeApp(this);
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
FireCrash.setInstance(FirebaseCrashlytics.getInstance());
}
@Override
public Class getHomeClass() {
return NewMSMainActivity.class;
}
}

View file

@ -0,0 +1,159 @@
package com.adins.mss.svy;
import android.content.Context;
import com.adins.mss.constant.Global;
import com.mikepenz.aboutlibraries.entity.Library;
import com.mikepenz.aboutlibraries.entity.License;
import java.util.ArrayList;
public class ChangeLog {
public static ArrayList<Library> library = new ArrayList<Library>();
public ChangeLog(Context context) {
String authorLogv2_0_0 = "AdIns";
String appNameLogv2_0_0 = "MSSSVY";
int buildVersion = Global.BUILD_VERSION;
License licenseLogv2_0_0 = new License();
licenseLogv2_0_0.setLicenseName("Apache Version 2.0");
library.add(0, new Library("06/06/2015", appNameLogv2_0_0, context.getString(R.string.changelog_v200),
"2.0.0.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("06/01/2016", appNameLogv2_0_0, context.getString(R.string.changelog_v210),
"2.1.0.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("01/06/2016", appNameLogv2_0_0, context.getString(R.string.changelog_v220),
"2.2.0.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("06/12/2016", appNameLogv2_0_0, context.getString(R.string.changelog_v230),
"2.3.0.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("15/12/2016", appNameLogv2_0_0, context.getString(R.string.changelog_v2310),
"2.3.1.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("19/01/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2320),
"2.3.2.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("07/03/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2330),
"2.3.3.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("04/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2340),
"2.3.4.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("08/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2350),
"2.3.5.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("09/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2360),
"2.3.6.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("12/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2370),
"2.3.7.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("15/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2380),
"2.3.8.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("16/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2390),
"2.3.9.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("17/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23100),
"2.3.10.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("22/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23110),
"2.3.11.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("23/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23120),
"2.3.12.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("24/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23130),
"2.3.13.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("26/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23140),
"2.3.14.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("29/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23150),
"2.3.15.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("30/05/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23160),
"2.3.16.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("02/06/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23170),
"2.3.17.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("06/06/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23180),
"2.3.18.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("07/06/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v23190),
"2.3.19.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("07/07/2017", appNameLogv2_0_0, context.getString(R.string.changelog_v2400),
"2.4.0.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("26/02/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v2500),
"2.5.0.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("22/10/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3000),
"3.0.0.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("19/11/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3001),
"3.0.0.1", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("27/11/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3002),
"3.0.0.2", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("04/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3003),
"3.0.0.3", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("07/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3004),
"3.0.0.4", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("11/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3005),
"3.0.0.5", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("11/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3006),
"3.0.0.6", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("12/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3007),
"3.0.0.7", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("12/12/2018", appNameLogv2_0_0, context.getString(R.string.changelog_v3008),
"3.0.0.8", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("18/01/2019", appNameLogv2_0_0, context.getString(R.string.changelog_v3009),
"3.0.0.9", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("21/06/2019", appNameLogv2_0_0, context.getString(R.string.changelog_v30013),
"3.0.0.13", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("01/08/2019", appNameLogv2_0_0, context.getString(R.string.changelog_v30017),
"3.0.0.17", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("22/11/2019", appNameLogv2_0_0, context.getString(R.string.changelog_v30032),
"3.0.0.32", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("04/03/2020", appNameLogv2_0_0, context.getString(R.string.changelog_v3110),
"3.1.1.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("04/27/2020", appNameLogv2_0_0, context.getString(R.string.changelog_v3120),
"3.1.2.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("05/27/2020", appNameLogv2_0_0, context.getString(R.string.changelog_v3130),
"3.1.3.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("01/10/2020", appNameLogv2_0_0, context.getString(R.string.changelog_v3140),
"3.1.4.0", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("18/03/2021", appNameLogv2_0_0, context.getString(R.string.changelog_v3201),
"3.2.0.1", licenseLogv2_0_0, buildVersion));
library.add(0, new Library("12/04/2021", appNameLogv2_0_0, context.getString(R.string.changelog_v3202),
"3.2.0.2", licenseLogv2_0_0, buildVersion));
}
public static ArrayList<Library> getChangeLog(Context context) {
library = new ArrayList<Library>();
new ChangeLog(context);
return library;
}
}

View file

@ -0,0 +1,169 @@
package com.adins.mss.svy;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.LoginActivity;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.dynamictheme.DynamicTheme;
import com.adins.mss.base.dynamictheme.ThemeLoader;
import com.adins.mss.base.login.DefaultLoginModel;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.GeneralParameter;
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
import com.adins.mss.svy.login.MSDefaultLoginModel;
import com.adins.mss.svy.tool.CopyDb;
import com.google.firebase.analytics.FirebaseAnalytics;
import java.util.HashMap;
public class MSLoginActivity extends LoginActivity implements ThemeLoader.ColorSetLoaderCallback{
private FirebaseAnalytics screenName;
@Override
public void onCreate(Bundle savedInstanceState) {
//instantiate theme loader
themeLoader = new ThemeLoader(this);
defaultConfig = new HashMap<>();
defaultConfig.put("cipher_unsupported_device", Global.SQLITE_CIPHER_UNSUPPORTED);
this.fetchConfig();
PackageInfo pInfo = null;
String sqliteCipherException;
String deviceModel = Build.MODEL;
screenName = FirebaseAnalytics.getInstance(this);
try {
sqliteCipherException = GlobalData.getSharedGlobalData().getRemoteConfig().getString("cipher_unsupported_device");
pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
Global.APP_VERSION = pInfo.versionName;
Global.BUILD_VERSION = pInfo.versionCode;
Global.IS_DEV = BuildConfig.IS_DEV;
Global.FLAVORS = BuildConfig.IS_FLAVORS;
Global.IS_BYPASSROOT = BuildConfig.IS_BYPASSROOT;
Global.IS_DBENCRYPT = BuildConfig.IS_DBENCRYPT;
Global.IS_DBENCRYPT = (!sqliteCipherException.contains(deviceModel)) && BuildConfig.IS_DBENCRYPT;
} catch (NameNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if(Global.AUTOLOGIN_ENABLE){
NewMainActivity.setMainMenuClass(NewMSMainActivity.class);
ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(getApplicationContext(),
"GlobalData", Context.MODE_PRIVATE);
hasLogged = sharedPref.getBoolean("HAS_LOGGED", false);
if(hasLogged && GlobalData.getSharedGlobalData().getUser() != null){
super.onCreate(savedInstanceState);
NewMainActivity.InitializeGlobalDataIfError(getApplicationContext());
//check theme config.
String uuidUser = GlobalData.getSharedGlobalData().getUser() == null ? sharedPref.getString("UUID_USER", "") : GlobalData.getSharedGlobalData().getUser().getUuid_user();
GeneralParameter generalParameter = GeneralParameterDataAccess.getOne(this,
uuidUser,
Global.GS_THEME_CONFIG_SURVEY);
if(generalParameter != null){
String urlConfig = generalParameter.getGs_value();
themeLoader.loadThemeFromUrl(urlConfig,this);
}
else {//go to main activity
Intent intent = new Intent(getApplicationContext(), NewMSMainActivity.class);
startActivity(intent);
finish();
}
}
else {//load directly login page and load saved theme
super.onCreate(savedInstanceState);
logo.setImageResource(com.adins.mss.base.R.drawable.icon_check_id);
loadSavedTheme();
}
}
else {//load directly login page and load saved theme
super.onCreate(savedInstanceState);
logo.setImageResource(com.adins.mss.base.R.drawable.icon_check_id);
loadSavedTheme();
}
// if (LeakCanary.isInAnalyzerProcess(this)) {
// return;
// }
// LeakCanary.install(getApplication());
}
private void copyDatabase() {
new AsyncTask<Void, Void, Void>() {
// private ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
// progressDialog = ProgressDialog.show(MSLoginActivity.this, "",getString(R.string.progressWait), true);
}
@Override
protected Void doInBackground(Void... params) {
CopyDb copyDB = new CopyDb(getApplicationContext());
copyDB.copyTable();
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
/* if (progressDialog.isShowing()){
try {
progressDialog.dismiss();
} catch (Exception e) { FireCrash.log(e);
}
}*/
}
}.execute();
}
@Override
protected DefaultLoginModel getNewDefaultLoginModel(Context context) {
// TODO Auto-generated method stub
return new MSDefaultLoginModel(this);
}
private void loadSavedTheme(){
if(themeLoader != null){
themeLoader.loadSavedColorSet(this);
}
}
@Override
public void onHasLoaded(DynamicTheme dynamicTheme) {//callback load from local db
if(dynamicTheme != null && dynamicTheme.getThemeItemList().size() > 0){
applyColorTheme(dynamicTheme);
}
}
@Override
public void onHasLoaded(DynamicTheme dynamicTheme, boolean needUpdate) {//callback load from server
Intent intent = new Intent(getApplicationContext(), NewMSMainActivity.class);
startActivity(intent);
finish();
}
@Override
public void onResume() {
super.onResume();
//Set Firebase screen name
screenName.setCurrentScreen(this,getString(R.string.screen_name_svy_login),null);
defaultConfig = new HashMap<>();
defaultConfig.put("cipher_unsupported_device", Global.SQLITE_CIPHER_UNSUPPORTED);
this.fetchConfig();
}
}

View file

@ -0,0 +1,601 @@
package com.adins.mss.svy;
import android.app.ActionBar;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.drawerlayout.widget.DrawerLayout;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.adins.mss.base.ChangePasswordFragment;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.R;
import com.adins.mss.base.about.activity.AboutActivity;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.mainmenu.MainMenuActivity;
import com.adins.mss.base.mainmenu.MainMenuHelper;
import com.adins.mss.base.tasklog.TaskLogImpl;
import com.adins.mss.base.timeline.MenuAdapter;
import com.adins.mss.base.timeline.MenuModel;
import com.adins.mss.base.todo.form.GetSchemeTask;
import com.adins.mss.base.todolist.ToDoList;
import com.adins.mss.base.todolist.form.StatusTabFragment;
import com.adins.mss.base.todolist.form.TaskListFragment_new;
import com.adins.mss.base.todolist.form.TaskListTask;
import com.adins.mss.base.todolist.form.TaskList_Fragment;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
import com.adins.mss.foundation.db.dataaccess.MenuDataAccess;
import com.adins.mss.svy.assignment.OrderAssignmentActivity;
import com.adins.mss.svy.assignment.OrderAssignmentTask;
import com.adins.mss.svy.fragments.SurveyApprovalByBranchFragment;
import com.adins.mss.svy.fragments.SurveyApprovalFragment;
import com.adins.mss.svy.fragments.SurveyPerformanceFragment;
import com.adins.mss.svy.fragments.SurveyVerificationByBranchFragment;
import com.adins.mss.svy.fragments.SurveyVerificationFragment;
import com.adins.mss.svy.reassignment.OrderFilterActivity;
import com.adins.mss.svy.tool.Constants;
import com.services.FirebaseMessagingService;
import com.services.NotificationThread;
import com.services.SurveyApprovalService;
import com.services.SurveyApprovalThread;
import com.services.SurveyAssignmentThread;
import com.services.SurveyVerificationService;
import com.services.SurveyVerificationThread;
import java.util.ArrayList;
import java.util.List;
public class MSMainMenuActivity extends com.adins.mss.base.mainmenu.MainMenuActivity{
public static MenuModel mnTimeline;
public static MenuModel mnNewTask;
// public static MenuModel mnTaskList;
// public static MenuModel mnLog;
public static MenuModel mnSVYPerformance;
// public static MenuModel mnSVYVerifyByBranch;
// public static MenuModel mnSVYApprovalByBranch;
public static MenuModel mnAbsentI;
public static MenuModel mnOrderAssignment;
public static MenuModel mnOrderReassignment;
public static MenuModel mnExit;
public static MenuModel mnAbout;
public static MenuModel mnSynchronize;
public static MenuModel mnChangePassword;
public static int flag_edit=0;
public static boolean inAbsent=false;
public static SurveyVerificationThread verificationThread;
public static SurveyApprovalThread approvalThread;
Fragment fragment;
ChangePasswordFragment fragmentChgPwd;
private DrawerLayout mDrawerLayout;
private ListView mDrawerListLeft;
@Override
protected ArrayList<MenuModel> getModels() {
// TODO Auto-generated method stub
ArrayList<MenuModel> models = new ArrayList<MenuModel>();
MenuModel titleGroup1 = new MenuModel(getString(R.string.title_mn_main_menu));
titleGroup1.isGroupHeader();
MenuModel titleGroup2 = new MenuModel(getString(R.string.title_mn_other));
titleGroup2.isGroupHeader();
mnTimeline = new MenuModel(R.drawable.ic_home, getString(R.string.title_mn_home), null);
models.add(titleGroup1);
models.add(mnTimeline);
List<String> mainMenuTitle = getMainMenuTitle();
List<Integer> mainMenuIcon = getMainMenuIcon();
for(int i=0; i<mainMenuTitle.size();i++){
if(mainMenuTitle.get(i).equalsIgnoreCase(getString(R.string.title_mn_tasklist))){
mnTaskList = new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),"0");
models.add(mnTaskList);
}else if(getMainMenuTitle().get(i).equalsIgnoreCase(getString(R.string.title_mn_log))){
mnLog = new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),"0");
models.add(mnLog);
}else if(getMainMenuTitle().get(i).equalsIgnoreCase(getString(R.string.title_mn_surveyverification))){
mnSVYVerify = new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),"0");
models.add(mnSVYVerify);
}else if(getMainMenuTitle().get(i).equalsIgnoreCase(getString(R.string.title_mn_surveyapproval))){
mnSVYApproval = new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),"0");
models.add(mnSVYApproval);
}else if(getMainMenuTitle().get(i).equalsIgnoreCase(getString(R.string.title_mn_verification_bybranch))){
mnSVYVerifyByBranch = new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),"0");
models.add(mnSVYVerifyByBranch);
}else if(getMainMenuTitle().get(i).equalsIgnoreCase(getString(R.string.title_mn_approval_bybranch))){
mnSVYApprovalByBranch = new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),"0");
models.add(mnSVYApprovalByBranch);
}else if(getMainMenuTitle().get(i).equalsIgnoreCase(getString(R.string.title_mn_surveyassign))) {
mnSVYAssignment = new MenuModel(mainMenuIcon.get(i), mainMenuTitle.get(i), "0");
models.add(mnSVYAssignment);
}else{
models.add(new MenuModel(mainMenuIcon.get(i),mainMenuTitle.get(i),null));
}
}
/* MenuModel mnSVYVerifybr = new MenuModel(R.drawable.ic_verification,getString(R.string.title_mn_verification_bybranch), null);
models.add(mnSVYVerifybr);
MenuModel mnSVYApprovalbr=new MenuModel(R.drawable.ic_approval,getString(R.string.title_mn_approval_bybranch), null);
models.add(mnSVYApprovalbr);
mnSVYApproval = new MenuModel(R.drawable.ic_approval,getString(R.string.title_mn_surveyapproval),"0");
models.add(mnSVYApproval);*/
models.add(titleGroup2);
List<String> otherMenuTitle = getOtherMenuTitle();
List<Integer> otherMenuIcon = getOtherMenuIcon();
// mnChangePassword = new MenuModel(R.drawable.ic_changepassword,getString(R.string.title_mn_changepassword), null);
// models.add(mnChangePassword);
for(int i=0; i<otherMenuTitle.size();i++){
models.add(new MenuModel(otherMenuIcon.get(i),otherMenuTitle.get(i),null));
}
for(int i=0 ; i<models.size(); i++){
this.allMenu.add(models.get(i).getTitle());
}
Global.FEATURE_RESCHEDULE_SURVEY = MenuDataAccess.isHaveRescheduleMenu(getApplicationContext());
Global.VERIFICATION_BRANCH = MenuDataAccess.isHaveVerificationBranchMenu(getApplicationContext());
Global.APPROVAL_BRANCH = MenuDataAccess.isHaveApprovalBranchMenu(getApplicationContext());
this.models=models;
return models;
}
@Override
protected String getTitleGroup() {
// TODO Auto-generated method stub
return "Survey";
}
@Override
protected void gotoAbout() {
AboutActivity.setChangeLog(ChangeLog.getChangeLog(getApplicationContext()), 2);
super.gotoAbout();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
MainMenuActivity.setMss(this.getClass());
super.onCreate(savedInstanceState);
AboutActivity.setChangeLog(ChangeLog.getChangeLog(getApplicationContext()), 2);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerListLeft = (ListView) findViewById(R.id.left_drawer);
menuAdapter = new MenuAdapter(this, getModels(), R.drawable.activated_background_indicator);
mDrawerListLeft.setAdapter(menuAdapter);
mDrawerListLeft.setOnItemClickListener(this);
//setcounter
try {
if(MSMainMenuActivity.mnLog!=null)
MSMainMenuActivity.mnLog.setCounter(String.valueOf(TaskLogImpl.getCounterLog(this)));
if(MSMainMenuActivity.mnTaskList!=null)
MSMainMenuActivity.mnTaskList.setCounter(String.valueOf(ToDoList.getCounterTaskList(this)));
if (MSMainMenuActivity.mnSVYVerify != null)
MSMainMenuActivity.mnSVYVerify.setCounter(String.valueOf(Constants.getCounterVerificationTask(getApplicationContext())));
if (MSMainMenuActivity.mnSVYApproval!= null)
MSMainMenuActivity.mnSVYApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(getApplicationContext())));
if (MSMainMenuActivity.mnSVYVerifyByBranch != null)
MSMainMenuActivity.mnSVYVerifyByBranch.setCounter(String.valueOf(Constants.getCounterVerificationTaskByBranch(getApplicationContext())));
if (MSMainMenuActivity.mnSVYApprovalByBranch != null)
MSMainMenuActivity.mnSVYApprovalByBranch.setCounter(String.valueOf(Constants.getCounterApprovalTaskByBranch(getApplicationContext())));
} catch (Exception e) { FireCrash.log(e);
// TODO: handle exception
}
if (savedInstanceState == null) {
goTimeline(1);
Global.positionStack.push(1);
}
if(!GeneralParameterDataAccess.getOne(getApplicationContext(), GlobalData.getSharedGlobalData().getUser().getUuid_user(), "PRM03_ASIN").getGs_value().equals("0")){
if (mnSVYVerify != null || mnSVYVerifyByBranch!=null) {
verificationThread = new SurveyVerificationThread(this);
Global.verifyNotivIntent = new Intent(this,SurveyVerificationService.class);
startService(Global.verifyNotivIntent);
}
if (mnSVYApproval != null || mnSVYApprovalByBranch!=null) {
approvalThread = new SurveyApprovalThread(this);
Global.approvalNotivIntent = new Intent(this,SurveyApprovalService.class);
startService(Global.approvalNotivIntent);
}
}
MainMenuActivity.setApprovalFragment(new SurveyApprovalFragment());
MainMenuActivity.setVerificationFragment(new SurveyVerificationFragment());
MainMenuActivity.setApprovalFragmentByBranch(new SurveyApprovalByBranchFragment());
MainMenuActivity.setVerificationFragmentByBranch(new SurveyVerificationByBranchFragment());
MainMenuActivity.setAssignmentFragment(new OrderAssignmentActivity());
MainMenuActivity.setStatusFragment(new StatusTabFragment());
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
try {
if (MSMainMenuActivity.mnSVYVerify != null)
MSMainMenuActivity.mnSVYVerify.setCounter(String.valueOf(Constants.getCounterVerificationTask(getApplicationContext())));
if (MSMainMenuActivity.mnSVYApproval!= null)
MSMainMenuActivity.mnSVYApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(getApplicationContext())));
if (MSMainMenuActivity.mnSVYVerifyByBranch != null)
MSMainMenuActivity.mnSVYVerifyByBranch.setCounter(String.valueOf(Constants.getCounterVerificationTaskByBranch(getApplicationContext())));
if (MSMainMenuActivity.mnSVYApprovalByBranch != null)
MSMainMenuActivity.mnSVYApprovalByBranch.setCounter(String.valueOf(Constants.getCounterApprovalTaskByBranch(getApplicationContext())));
if (MainMenuActivity.menuAdapter != null)
MainMenuActivity.menuAdapter.notifyDataSetChanged();
} catch (Exception e) { FireCrash.log(e);
// TODO: handle exception
}
}
}, 500);
Intent intent = getIntent();
try {
String action = intent.getAction().toUpperCase();
if (action != null) {
if (action.equalsIgnoreCase("TASKLISTNOTIFICATION")) {
Bundle argument = new Bundle();
argument.putBoolean(TaskList_Fragment.BUND_KEY_ISERROR, false);
Fragment fragment1 = new TaskListFragment_new();//TaskList_Fragment();
fragment1.setArguments(argument);
FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment1);
transaction.addToBackStack(null);
try {
transaction.commit();
} catch (Exception e) { FireCrash.log(e);
transaction.commitAllowingStateLoss();
}
}
} else {
if(Global.IS_DEV)
System.out.println("Intent was null");
}
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
try {
actionFromNotif(getIntent());
} catch (Exception e) {
FireCrash.log(e);
}
}
protected void actionFromNotif(Intent intent){
try {
String action = intent.getAction();
if(action!=null){
if(action.equals(NotificationThread.TASKLIST_NOTIFICATION_KEY)){
Bundle argument = new Bundle();
argument.putBoolean(TaskList_Fragment.BUND_KEY_ISERROR, false);
Fragment fragment1 = new TaskListFragment_new();//TaskList_Fragment();
fragment1.setArguments(argument);
FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment1);
transaction.addToBackStack(null);
transaction.commitAllowingStateLoss();
}
else if(action.equals(SurveyVerificationThread.VERIFICATIONLIST_NOTIFICATION_KEY)){
gotoSurveyVerification(0);
}else if(action.equals(SurveyVerificationThread.VERIFICATIONBRANCHLIST_NOTIFICATION_KEY)){
gotoSurveyVerificationByBranch(0);
}else if(action.equals(SurveyApprovalThread.APPROVALBRANCHLIST_NOTIFICATION_KEY)){
gotoSurveyApprovalByBranch(0);
}else if(action.equals(SurveyApprovalThread.APPROVALLIST_NOTIFICATION_KEY)){
gotoSurveyApproval(0);
}else if(action.equals(SurveyAssignmentThread.ASSIGNMENT_NOTIFICATION_KEY)) {
gotoSurveyAssignment(0);
} else if (action.equals(Global.MAINMENU_NOTIFICATION_KEY)){
goTimeline(0);
}
}
} catch (Exception e) {
FireCrash.log(e);
}
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
actionFromNotif(intent);
}
@Override
public void onResume(){
super.onResume();
Global.syncIntent = new Intent(getApplicationContext(), MSSynchronizeActivity.class);
if(MainMenuActivity.getMss()==null) {
MainMenuActivity.setMss(this.getClass());
// NotificationService.mss = mss;
}
MainMenuActivity.setMainMenuClass(MSMainMenuActivity.class);
getActionBar().removeAllTabs();
Global.VerificationActivityClass = SurveyVerificationActionActivity.class;
// TimelineModel.taskList_Fragment=new TaskList_Fragment();
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
long taskListCounter = Constants.getCounterVerificationTask(getApplicationContext());
try {
if (MSMainMenuActivity.mnSVYVerify != null)
MSMainMenuActivity.mnSVYVerify.setCounter(String.valueOf(Constants.getCounterVerificationTask(getApplicationContext())));
else if(MSMainMenuActivity.mnSVYVerifyByBranch != null)
MSMainMenuActivity.mnSVYVerifyByBranch.setCounter(String.valueOf(Constants.getCounterVerificationTaskByBranch(getApplicationContext())));
else{
try {
stopService(Global.verifyNotivIntent);
} catch (Exception e) { FireCrash.log(e);
// TODO: handle exception
}
}
if (MSMainMenuActivity.mnSVYApproval!= null)
MSMainMenuActivity.mnSVYApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(getApplicationContext())));
else if (MSMainMenuActivity.mnSVYApprovalByBranch != null)
MSMainMenuActivity.mnSVYApprovalByBranch.setCounter(String.valueOf(Constants.getCounterApprovalTaskByBranch(getApplicationContext())));
else{
try {
stopService(Global.approvalNotivIntent);
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
}
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
try {
if(isFromSetting) {
menuAdapter = new MenuAdapter(getApplicationContext(), getModels(), R.drawable.activated_background_indicator);
mDrawerListLeft.setAdapter(menuAdapter);
mDrawerListLeft.notifyAll();
isFromSetting=false;
}
} catch (Exception e) {
FireCrash.log(e);
}
}
@Override
public void onDestroy(){
super.onDestroy();
if (verificationThread != null) {
verificationThread.requestStop();
verificationThread = null;
}
if (approvalThread != null) {
approvalThread.requestStop();
approvalThread = null;
}
MainMenuActivity.mnTaskList = null;
MainMenuActivity.mnSVYApproval = null;
MainMenuActivity.mnSVYVerify = null;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position,
long id) {
// TODO Auto-generated method stub
super.onItemClick(parent, view, position, id);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if(getString(R.string.title_mn_changepassword).equalsIgnoreCase(allMenu.get(position))){
gotoChangePassword();
}
}
}, 250);
}
//bong 10 apr 15 - menjaga saat change password tidak dapat lihat menu
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
if(fragmentChgPwd!=null){
if(fragmentChgPwd.isVisible()){
return true;
}
}
return super.onKeyDown(keyCode, event);
}
return super.onKeyDown(keyCode, event);
}
//bong 7 apr 15 disabled onBackpressed on fragment
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
// if(fragmentChgPwd!=null && fragmentChgPwd.isVisible()){
// if(GlobalData.getSharedGlobalData().getUser().getChg_pwd().equals("1")){
// fragmentChgPwd.onBackPressed();
// return;
// }
// }
super.onBackPressed();
}
private void gotoChangePassword() {
fragment = new ChangePasswordFragment();
Bundle args = new Bundle();
args.putBoolean(ChangePasswordFragment.AS_ACTIVITY, false);
fragment.setArguments(args);
if(GlobalData.getSharedGlobalData().getUser().getChg_pwd().equals("1")){
fragmentChgPwd = (ChangePasswordFragment) fragment;
fragmentChgPwd.setArguments(args);
}
FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
protected Intent getIntentSynchronize() {
// TODO Auto-generated method stub
return new Intent(this, MSSynchronizeActivity.class);
}
@Override
protected Fragment getChgPassFragment() {
// TODO Auto-generated method stub
return fragmentChgPwd;
}
@Override
protected void goTimeline(int position) {
// TimelineModel.taskList_Fragment=new TaskList_Fragment();
super.goTimeline(position);
}
@Override
protected void gotoNewTask(int position) {
GetSchemeTask task = new GetSchemeTask(this, new MSNewTaskActivity(), true);
task.execute();
}
@Override
protected void gotoCheckOrder(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoCreditSimulation(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoCancelOrder(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoTaskList(int position) {
TaskListTask task = new TaskListTask(this, getString(R.string.progressWait),
getString(R.string.msgNoTaskList), R.id.content_frame);
task.execute();
}
@Override
protected void gotoPromo(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoNews(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoSurveyPerformance(int position) {
fragment = new SurveyPerformanceFragment();
FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
protected void gotoSurveyVerification(int position) {
fragment = new SurveyVerificationFragment();
SurveyVerificationListTask task = new SurveyVerificationListTask(this, getString(R.string.progressWait),
getString(R.string.msgNoVerification),null);
task.execute();
}
@Override
protected void gotoSurveyApproval(int position) {
fragment = new SurveyApprovalFragment();
SurveyApprovalListTask task = new SurveyApprovalListTask(this, getString(R.string.progressWait),
getString(R.string.msgNoApproval),null);
task.execute();
}
@Override
protected void gotoOrderAssignment(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoOrderReassignment(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoSurveyAssignment(int position) {
OrderAssignmentTask task = new OrderAssignmentTask(this, getString(R.string.progressWait),
getString(R.string.msgNoList),R.id.content_frame);
task.execute();
}
@Override
protected void gotoSurveyReassignment(int position) {
fragment = new OrderFilterActivity();
Bundle args = new Bundle();
args.putInt(Global.BUND_KEY_TASK_TYPE, Global.TASK_ORDER_REASSIGNMENT);
fragment.setArguments(args);
FragmentTransaction transaction = MainMenuActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
protected void gotoReportSummary(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoDepositReport(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoPaymentHistory(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoInstallmentSchedule(int position) {
showNotAvailableMenu(position);
}
@Override
protected void gotoClosingTask(int position) {
}
public void showNotAvailableMenu(int position){
MainMenuHelper.showNotAvailableMenuDialog(MSMainMenuActivity.this, allMenu.get(position));
Global.positionStack.pop();
mDrawerListLeft.setItemChecked(Global.positionStack.lastElement(), true);
setTitle(models.get(Global.positionStack.lastElement()).getTitle());
}
@Override
protected void gotoSurveyVerificationByBranch(int position) {
fragment = new SurveyVerificationFragment();
SurveyVerificationListTask task = new SurveyVerificationListTask(this, getString(R.string.progressWait),
getString(R.string.msgNoVerification), SurveyVerificationListTask.KEY_BRANCH);
task.execute();
}
@Override
protected void gotoSurveyApprovalByBranch(int position) {
fragment = new SurveyApprovalFragment();
SurveyApprovalListTask task = new SurveyApprovalListTask(this, getString(R.string.progressWait),
getString(R.string.msgNoApproval), SurveyApprovalListTask.KEY_BRANCH);
task.execute();
}
}

View file

@ -0,0 +1,35 @@
package com.adins.mss.svy;
import android.app.ActionBar;
import android.content.Context;
import com.adins.mss.base.dialogfragments.NewTaskDialog;
import com.adins.mss.base.todo.form.NewTaskActivity;
import com.adins.mss.base.todo.form.NewTaskAdapter;
import com.adins.mss.base.todolist.DoList;
import com.adins.mss.dao.Scheme;
import java.util.List;
public class MSNewTaskActivity extends NewTaskDialog {
private DoList list;
private List<Scheme> objects;
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
// getActivity().getActionBar().setTitle(getString(R.string.title_mn_newtask));
// getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
}
@Override
protected NewTaskAdapter getNewTaskAdapter() {
// TODO Auto-generated method stub
list = new DoList(getActivity());
objects = list.getSurveyListScheme();
return new NewTaskAdapter(getActivity(), objects);
}
}

View file

@ -0,0 +1,45 @@
package com.adins.mss.svy;
import android.content.Intent;
import android.os.Bundle;
import com.adins.mss.base.SynchronizeActivity;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;
public class MSSynchronizeActivity extends SynchronizeActivity{
private Trace synchronizeSvyTrace;
private FirebaseAnalytics screenName;
@Override
protected Intent getIntentMainMenu() {
// TODO Auto-generated method stub
return new Intent(this,NewMSMainActivity.class);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
screenName = FirebaseAnalytics.getInstance(this);
synchronizeSvyTrace = FirebasePerformance.getInstance().newTrace(getString(R.string.synchronize_trace_survey));
activity = this;
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
//Set Firebase screen name
screenName.setCurrentScreen(this,getString(com.adins.mss.base.R.string.screen_name_svy_synchronize),null);
synchronizeSvyTrace.start();
super.onResume();
}
@Override
protected void onPause() {
synchronizeSvyTrace.stop();
super.onPause();
}
}

View file

@ -0,0 +1,471 @@
package com.adins.mss.svy;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Handler;
import android.os.SystemClock;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
import android.view.MenuItem;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.about.activity.AboutActivity;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.loyalti.mypointdashboard.DashboardMyPoint;
import com.adins.mss.base.mainmenu.NewMenuItem;
import com.adins.mss.base.timeline.NewTimelineFragment;
import com.adins.mss.base.todo.form.GetSchemeTask;
import com.adins.mss.base.todolist.ToDoList;
import com.adins.mss.base.todolist.form.PriorityTabFragment;
import com.adins.mss.base.util.LocaleHelper;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.User;
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
import com.adins.mss.foundation.db.dataaccess.MenuDataAccess;
import com.adins.mss.foundation.dialog.DialogManager;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.svy.assignment.OrderAssignmentTask;
import com.adins.mss.svy.fragments.SurveyApprovalByBranchFragment;
import com.adins.mss.svy.fragments.SurveyApprovalFragment;
import com.adins.mss.svy.fragments.SurveyPerformanceFragment;
import com.adins.mss.svy.fragments.SurveyVerificationByBranchFragment;
import com.adins.mss.svy.fragments.SurveyVerificationFragment;
import com.adins.mss.svy.reassignment.OrderFilterActivity;
import com.adins.mss.svy.tool.Constants;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.services.ForegroundServiceNotification;
import com.services.MSLocationTrackingService;
import com.services.MainServices;
import com.adins.mss.base.R;
import com.services.NotificationThread;
import com.services.RestartAutoSendLocationReceiver;
import com.services.SurveyApprovalService;
import com.services.SurveyApprovalThread;
import com.services.SurveyAssignmentThread;
import com.services.SurveyVerificationService;
import com.services.SurveyVerificationThread;
import java.util.Locale;
public class NewMSMainActivity extends NewMainActivity {
public static SurveyVerificationThread verificationThread;
public static SurveyApprovalThread approvalThread;
private User user = null;
private FirebaseAnalytics screenName;
@Override
protected void onCreate(Bundle savedInstanceState) {
NewMainActivity.setMss(this.getClass());
screenName = FirebaseAnalytics.getInstance(this);
/**
* Nendi | 2019.06.17
* Update Foreground Service
* @support Android >= 8.0
*/
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(getLocationServiceIntent());
} else {
startService(getLocationServiceIntent());
}
super.onCreate(savedInstanceState);
AboutActivity.setChangeLog(ChangeLog.getChangeLog(getApplicationContext()), 2);
NewMainActivity.setApprovalFragment(new SurveyApprovalFragment());
NewMainActivity.setVerificationFragment(new SurveyVerificationFragment());
NewMainActivity.setApprovalFragmentByBranch(new SurveyApprovalByBranchFragment());
NewMainActivity.setVerificationFragmentByBranch(new SurveyVerificationByBranchFragment());
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
Intent autoRestart = new Intent(this, RestartAutoSendLocationReceiver.class);
PendingIntent autoRestartPendingIntent = PendingIntent.getBroadcast(this, 2020, autoRestart, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmService = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmService.setInexactRepeating(
AlarmManager.RTC_WAKEUP,
SystemClock.elapsedRealtime() + 1000, 2 * 60 * 1000,
autoRestartPendingIntent);
}
try {
if (NewMSMainActivity.mnTaskList != null)
NewMSMainActivity.mnTaskList.setCounter(String.valueOf(ToDoList.getCounterTaskList(this)));
if (NewMSMainActivity.mnSurveyAssign != null)
NewMSMainActivity.mnSurveyAssign.setCounter(String.valueOf(ToDoList.getCounterAssignment(getApplicationContext())));
if (NewMSMainActivity.mnSurveyVerif != null)
NewMSMainActivity.mnSurveyVerif.setCounter(String.valueOf(Constants.getCounterVerificationTask(getApplicationContext())));
if (NewMSMainActivity.mnSurveyApproval!= null)
NewMSMainActivity.mnSurveyApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(getApplicationContext())));
if (NewMSMainActivity.mnVerifByBranch != null)
NewMSMainActivity.mnVerifByBranch.setCounter(String.valueOf(Constants.getCounterVerificationTaskByBranch(getApplicationContext())));
if (NewMSMainActivity.mnApprovalByBranch != null)
NewMSMainActivity.mnApprovalByBranch.setCounter(String.valueOf(Constants.getCounterApprovalTaskByBranch(getApplicationContext())));
} catch (Exception e) {
FireCrash.log(e);
}
try {
Global.FEATURE_RESCHEDULE_SURVEY = MenuDataAccess.isHaveRescheduleMenu(getApplicationContext());
} catch (Exception e) { FireCrash.log(e);
}
Global.VERIFICATION_BRANCH = MenuDataAccess.isHaveVerificationBranchMenu(getApplicationContext());
Global.APPROVAL_BRANCH = MenuDataAccess.isHaveApprovalBranchMenu(getApplicationContext());
Tool.installProvider(getApplicationContext());
if(savedInstanceState ==null) {
Fragment frag = new NewTimelineFragment();
FragmentTransaction trans = fragmentManager.beginTransaction();
trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
trans.add(com.adins.mss.base.R.id.content_frame, frag);
trans.commit();
}
try {
user = GlobalData.getSharedGlobalData().getUser();
} catch (Exception e) {
FireCrash.log(e);
}
if (user != null) {
try{
if(!GeneralParameterDataAccess.getOne(getApplicationContext(), user.getUuid_user(), "PRM03_ASIN").getGs_value().equals("0")){
if (mnSurveyVerif != null || mnVerifByBranch != null) {
verificationThread = new SurveyVerificationThread(this);
Global.verifyNotivIntent = new Intent(this,SurveyVerificationService.class);
startService(Global.verifyNotivIntent);
}
if (mnSurveyApproval != null || mnApprovalByBranch != null) {
approvalThread = new SurveyApprovalThread(this);
Global.approvalNotivIntent = new Intent(this,SurveyApprovalService.class);
startService(Global.approvalNotivIntent);
}
}
}
catch (NullPointerException e){
DialogManager.showExitAlert(this, getString(R.string.alertExit));
}
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
try {
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
}
}
}, 500);
try {
actionFromNotif(getIntent());
} catch (Exception e) {
FireCrash.log(e);
}
}
@Override
protected void attachBaseContext(Context newBase) {
Context context = newBase;
Locale locale;
try{
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
context = LocaleHelper.wrap(newBase, locale);
} catch (Exception e) {
e.printStackTrace();
locale = new Locale(LocaleHelper.ENGLSIH);
context = LocaleHelper.wrap(newBase, locale);
} finally {
super.attachBaseContext(context);
}
}
protected void actionFromNotif(Intent intent){
try {
String action = intent.getAction();
if(action!=null){
if(action.equals(NotificationThread.TASKLIST_NOTIFICATION_KEY)){
if (Global.PLAN_TASK_ENABLED)
logEventCountMenuAccessed(getString(com.adins.mss.base.R.string.mn_plantask));
else
logEventCountMenuAccessed(getString(com.adins.mss.base.R.string.title_mn_tasklist));
Fragment fragment1 = new PriorityTabFragment();
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate, R.anim.activity_close_scale, R.anim.activity_open_scale, R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment1);
transaction.addToBackStack(null);
transaction.commitAllowingStateLoss();
}
else if(action.equals(SurveyVerificationThread.VERIFICATIONLIST_NOTIFICATION_KEY)){
logEventCountMenuAccessed(getString(R.string.title_mn_verification_list));
gotoSurveyVerification();
}else if(action.equals(SurveyVerificationThread.VERIFICATIONBRANCHLIST_NOTIFICATION_KEY)){
logEventCountMenuAccessed(getString(R.string.title_mn_verification_bybranch));
gotoSurveyVerificationByBranch();
}else if(action.equals(SurveyApprovalThread.APPROVALBRANCHLIST_NOTIFICATION_KEY)){
logEventCountMenuAccessed(getString(R.string.title_mn_approval_bybranch));
gotoSurveyApprovalByBranch();
}else if(action.equals(SurveyApprovalThread.APPROVALLIST_NOTIFICATION_KEY)){
logEventCountMenuAccessed(getString(R.string.title_mn_approval_list));
gotoSurveyApproval();
}else if(action.equals(SurveyAssignmentThread.ASSIGNMENT_NOTIFICATION_KEY)) {
logEventCountMenuAccessed(getString(R.string.title_mn_surveyassign));
gotoSurveyAssignment();
} else if (action.equals(Global.MAINMENU_NOTIFICATION_KEY)){
gotoTimeline();
}
}
} catch (Exception e) {
FireCrash.log(e);
}
}
@Override
public Intent getLocationServiceIntent() {
return new Intent(this, MSLocationTrackingService.class);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
actionFromNotif(intent);
}
@Override
public void onResume() {
super.onResume();
//Set Firebase screen namef
screenName.setCurrentScreen(this,getString(R.string.screen_name_svy_main_menu),null);
if (Global.REDIRECT_TIMELINE.equals(Global.getREDIRECT())) {
super.openTimeline();
Global.setREDIRECT(null);
return;
}
if (!ForegroundServiceNotification.isServiceAvailable(this, MSLocationTrackingService.class)) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(getLocationServiceIntent());
} else {
startService(getLocationServiceIntent());
}
}
if (verificationThread == null || approvalThread == null) {
try {
user = GlobalData.getSharedGlobalData().getUser();
} catch (Exception e) {
FireCrash.log(e);
}
if (user != null) {
if(!GeneralParameterDataAccess.getOne(getApplicationContext(), user.getUuid_user(), "PRM03_ASIN").getGs_value().equals("0")){
if (mnSurveyVerif != null || mnVerifByBranch != null) {
verificationThread = new SurveyVerificationThread(this);
Global.verifyNotivIntent = new Intent(this,SurveyVerificationService.class);
startService(Global.verifyNotivIntent);
}
if (mnSurveyApproval != null || mnApprovalByBranch != null) {
approvalThread = new SurveyApprovalThread(this);
Global.approvalNotivIntent = new Intent(this,SurveyApprovalService.class);
startService(Global.approvalNotivIntent);
}
}
}
}
Global.syncIntent = new Intent(getApplicationContext(), MSSynchronizeActivity.class);
if(NewMainActivity.getMss()==null) {
NewMainActivity.setMss(this.getClass());
MainServices.mainClass = mss;
}
NewMainActivity.setMainMenuClass(NewMSMainActivity.class);
Global.VerificationActivityClass = SurveyVerificationActionActivity.class;
try {
if (NewMSMainActivity.mnSurveyVerif != null)
NewMSMainActivity.mnSurveyVerif.setCounter(String.valueOf(Constants.getCounterVerificationTask(getApplicationContext())));
else if(NewMSMainActivity.mnVerifByBranch != null)
NewMSMainActivity.mnVerifByBranch.setCounter(String.valueOf(Constants.getCounterVerificationTaskByBranch(getApplicationContext())));
else{
try {
stopService(Global.verifyNotivIntent);
} catch (Exception e) {
FireCrash.log(e);
}
}
if (NewMSMainActivity.mnSurveyApproval!= null)
NewMSMainActivity.mnSurveyApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(getApplicationContext())));
else if (NewMSMainActivity.mnApprovalByBranch != null)
NewMSMainActivity.mnApprovalByBranch.setCounter(String.valueOf(Constants.getCounterApprovalTaskByBranch(getApplicationContext())));
else{
try {
stopService(Global.approvalNotivIntent);
} catch (Exception e) {
FireCrash.log(e);
}
}
} catch (Exception e) {
FireCrash.log(e);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (verificationThread != null) {
verificationThread.requestStop();
verificationThread = null;
}
if (approvalThread != null) {
approvalThread.requestStop();
approvalThread = null;
}
NewMainActivity.mnTaskList = null;
NewMainActivity.mnSurveyApproval = null;
NewMainActivity.mnSurveyApproval = null;
}
@Override
public void onBackPressed() {
super.onBackPressed();
}
@Override
protected Intent getIntentSynchronize() {
return new Intent(this, MSSynchronizeActivity.class);
}
@Override
protected void ApplicationMenu(NewMenuItem menuItem) {
super.ApplicationMenu(menuItem);
if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_newtask))) {
logEventCountMenuAccessed(getString(R.string.title_mn_newtask));
gotoNewTask();
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_surveyperformance))) {
logEventCountMenuAccessed(getString(R.string.title_mn_surveyperformance));
gotoSurveyPerformance();
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_surveyverification))) {
logEventCountMenuAccessed(getString(R.string.title_mn_surveyverification));
gotoSurveyVerification();
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_surveyapproval))) {
logEventCountMenuAccessed(getString(R.string.title_mn_surveyapproval));
gotoSurveyApproval();
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_surveyassign))) {
logEventCountMenuAccessed(getString(R.string.title_mn_surveyassign));
gotoSurveyAssignment();
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_surveyreassign))) {
logEventCountMenuAccessed(getString(R.string.title_mn_surveyreassign));
gotoSurveyReassignment();
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_verification_bybranch))) {
logEventCountMenuAccessed(getString(R.string.title_mn_verification_bybranch));
gotoSurveyVerificationByBranch();
} else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_approval_bybranch))) {
logEventCountMenuAccessed(getString(R.string.title_mn_approval_bybranch));
gotoSurveyApprovalByBranch();
}else if (menuItem.getName().equalsIgnoreCase(getString(R.string.title_mn_dashboard))) {
logEventCountMenuAccessed(getString(R.string.title_mn_dashboard));
goToDashboardMyPoint();
}
}
@Override
public void gotoTimeline() {
super.gotoTimeline();
}
@Override
protected void gotoAbout() {
AboutActivity.setChangeLog(ChangeLog.getChangeLog(this), 2);
super.gotoAbout();
}
protected void gotoNewTask() {
GetSchemeTask task = new GetSchemeTask(this, new MSNewTaskActivity(), true);
task.execute();
}
protected void gotoSurveyPerformance() {
fragment = new SurveyPerformanceFragment();
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
protected void gotoSurveyVerification() {
fragment = new SurveyVerificationFragment();
SurveyVerificationListTask task = new SurveyVerificationListTask(this, getString(R.string.progressWait),
getString(R.string.msgNoVerification),null);
task.execute();
}
protected void gotoSurveyApproval() {
fragment = new SurveyApprovalFragment();
SurveyApprovalListTask task = new SurveyApprovalListTask(this, getString(R.string.progressWait),
getString(R.string.msgNoApproval),null);
task.execute();
}
protected void gotoSurveyAssignment() {
OrderAssignmentTask task = new OrderAssignmentTask(this, getString(R.string.progressWait),
getString(R.string.msgNoList),R.id.content_frame);
task.execute();
}
protected void gotoSurveyReassignment() {
fragment = new OrderFilterActivity();
Bundle args = new Bundle();
args.putInt(Global.BUND_KEY_TASK_TYPE, Global.TASK_ORDER_REASSIGNMENT);
fragment.setArguments(args);
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
protected void gotoSurveyVerificationByBranch() {
fragment = new SurveyVerificationFragment();
SurveyVerificationListTask task = new SurveyVerificationListTask(this, getString(R.string.progressWait),
getString(R.string.msgNoVerification), SurveyVerificationListTask.KEY_BRANCH);
task.execute();
}
protected void gotoSurveyApprovalByBranch() {
fragment = new SurveyApprovalFragment();
SurveyApprovalListTask task = new SurveyApprovalListTask(this, getString(R.string.progressWait),
getString(R.string.msgNoApproval), SurveyApprovalListTask.KEY_BRANCH);
task.execute();
}
protected void goToDashboardMyPoint(){
fragment = new DashboardMyPoint();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
}

View file

@ -0,0 +1,318 @@
package com.adins.mss.svy;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import android.view.View;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.R;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.mainmenu.MainMenuActivity;
import com.adins.mss.base.timeline.TimelineManager;
import com.adins.mss.base.todolist.ToDoList;
import com.adins.mss.base.todolist.form.JsonResponseTaskList;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.Scheme;
import com.adins.mss.dao.TaskH;
import com.adins.mss.dao.User;
import com.adins.mss.foundation.db.dataaccess.SchemeDataAccess;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.db.dataaccess.TimelineDataAccess;
import com.adins.mss.foundation.db.dataaccess.TimelineTypeDataAccess;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.svy.models.JsonRequestTaskWithMode;
import com.adins.mss.svy.tool.Constants;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import java.lang.ref.WeakReference;
import java.sql.Time;
import java.util.ArrayList;
import java.util.List;
public class SurveyApprovalListTask extends AsyncTask<Void, Void, List<TaskH>> {
public static final String KEY_BRANCH = "branch";
private ProgressDialog progressDialog;
private WeakReference<Context> context;
private WeakReference<Activity> activity;
private String messageWait;
private String messageEmpty;
private String mode;
private String errMessage = null;
// private Class<?> taskSurveyApprovalFragment;
public Fragment SurveyApprovalFragment;
// private FragmentActivity fragmentActivity;
// private int contentFrame;
//private User user = GlobalData.getSharedGlobalData().getUser();
// public SurveyApprovalListTask(FragmentActivity fragmentActivity, String messageWait, String messageEmpty, int contentFrame, Fragment LogResultFragment) {
// this.context = fragmentActivity;
// this.fragmentActivity = fragmentActivity;
// this.messageWait = messageWait;
// this.messageEmpty = messageEmpty;
// this.contentFrame = contentFrame;
// this.SurveyApprovalFragment = LogResultFragment;
// }
public SurveyApprovalListTask(Activity context, String messageWait, String messageEmpty, String mode) {
this.context = new WeakReference<Context>(context);
this.messageWait = messageWait;
this.messageEmpty = messageEmpty;
this.mode = mode;
this.activity = new WeakReference<Activity>(context);
}
protected void onPreExecute() {
this.progressDialog = ProgressDialog.show(this.context.get(), "", this.messageWait, true);
}
protected List<TaskH> doInBackground(Void... params) {
List<TaskH> result = new ArrayList<TaskH>();
if(Tool.isInternetconnected(context.get())){
JsonRequestTaskWithMode requestType = new JsonRequestTaskWithMode();
requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
requestType.addImeiAndroidIdToUnstructured();
if(mode!=null && !mode.isEmpty())
requestType.setMode(mode);
String json = GsonHelper.toJson(requestType);
String url = GlobalData.getSharedGlobalData().getURL_GET_LIST_APPROVAL();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(activity.get(), encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
// result = TaskHDataAccess.getAllApproval(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
// if(result != null && result.size()>0)
// serverResult = httpConn.requestToServer(url, json, Global.SORTCONNECTIONTIMEOUT);
// else
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
errMessage = activity.get().getString(R.string.jsonParseFailed);
}
if(serverResult != null){
if(serverResult.isOK()){
try {
String stringResult = serverResult.getResult();
JsonResponseTaskList taskList = GsonHelper.fromJson(stringResult, JsonResponseTaskList.class);
if(taskList.getStatus().getCode()==0){
List<TaskH> listTaskH = taskList.getListTaskList();
if(listTaskH!=null&&listTaskH.size()>0){
for(TaskH taskH : listTaskH){
taskH.setUser(GlobalData.getSharedGlobalData().getUser());
taskH.setIs_verification(Global.TRUE_STRING);
if(mode!=null && KEY_BRANCH.equals(mode))
taskH.setAccess_mode(TaskHDataAccess.ACCESS_MODE_BRANCH);
else
taskH.setAccess_mode(TaskHDataAccess.ACCESS_MODE_USER);
String uuid_scheme = taskH.getUuid_scheme();
Scheme scheme = SchemeDataAccess.getOne(context.get(), uuid_scheme);
if(scheme!=null){
taskH.setScheme(scheme);
TaskH h = TaskHDataAccess.getOneHeader(context.get(), taskH.getUuid_task_h());
String uuid_timelineType = TimelineTypeDataAccess.getTimelineTypebyType(context.get(), Global.TIMELINE_TYPE_APPROVAL).getUuid_timeline_type();
boolean wasInTimeline = TimelineDataAccess.getOneTimelineByTaskH(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user(), taskH.getUuid_task_h(), uuid_timelineType)!=null;
if(h!=null&&h.getStatus()!=null){
if(!ToDoList.isOldTask(h)){
TaskHDataAccess.addOrReplace(context.get(), taskH);
if(!wasInTimeline)
TimelineManager.insertTimeline(context.get(), taskH);
}
else{
if(h.getAccess_mode()!=null && h.getAccess_mode().length()>0){
if(mode!=null && KEY_BRANCH.equals(mode)){
if(h.getAccess_mode().equals(TaskHDataAccess.ACCESS_MODE_USER)){
h.setAccess_mode(TaskHDataAccess.ACCESS_MODE_HYBRID);
TaskHDataAccess.addOrReplace(context.get(), h);
}
}
else{
if(h.getAccess_mode().equals(TaskHDataAccess.ACCESS_MODE_BRANCH)){
h.setAccess_mode(TaskHDataAccess.ACCESS_MODE_HYBRID);
TaskHDataAccess.addOrReplace(context.get(), h);
}
}
}
}
result.add(h);
}else{
result.add(taskH);
TaskHDataAccess.addOrReplace(context.get(), taskH);
if(!wasInTimeline)
TimelineManager.insertTimeline(context.get(), taskH);
}
}else{
errMessage = activity.get().getString(R.string.scheme_not_found);
if(mode!=null && KEY_BRANCH.equals(mode))
result = TaskHDataAccess.getAllApprovalForBranch(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
else
result = TaskHDataAccess.getAllApprovalForUser(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
}
}
//check for changed task in result(local db) data
if(result != null && result.size() > 0){
for (int i= 0; i<result.size(); i++) {
boolean taskNotfound = false;
TaskH taskh_local = result.get(i);
if(taskh_local == null)
continue;
if(listTaskH != null && listTaskH.size() > 0){
//delete taskh_local
for(TaskH taskHServer :listTaskH){
if(taskHServer != null && taskHServer.getTask_id().equals(taskh_local.getTask_id())){
taskNotfound = true;
break;
}
}
if(!taskNotfound){
//set taskh status and messages to changed
taskh_local.setStatus(TaskHDataAccess.STATUS_TASK_CHANGED);
taskh_local.setIs_prepocessed(Global.FORM_TYPE_APPROVAL);
taskh_local.setMessage(context.get().getString(com.adins.mss.svy.R.string.taskChanged));
TaskHDataAccess.addOrReplace(context.get(),taskh_local);
TimelineManager.insertTimeline(context.get(),taskh_local);
}
}
}
}
}else {
errMessage = stringResult;
}
} catch (Exception e) {
FireCrash.log(e);
errMessage = activity.get().getString(R.string.jsonParseFailed);
}
}
else{
errMessage = serverResult.getResult();
if(mode!=null && KEY_BRANCH.equals(mode))
result = TaskHDataAccess.getAllApprovalForBranch(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
else
result = TaskHDataAccess.getAllApprovalForUser(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
}
else{
errMessage = "Something wrong from server";
if(Global.IS_DEV)
errMessage = "Error: serverResult == null";
if(mode != null && KEY_BRANCH.equals(mode))
result = TaskHDataAccess.getAllApprovalForBranch(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
else
result = TaskHDataAccess.getAllApprovalForUser(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
}else{
if(mode != null && KEY_BRANCH.equals(mode))
result = TaskHDataAccess.getAllApprovalForBranch(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
else
result = TaskHDataAccess.getAllApprovalForUser(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
/* try {
if(this.context != null) {
result = TaskHDataAccess.getAllApproval(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
} else if(this.activity != null) {
result = TaskHDataAccess.getAllApproval(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
} else {
result = TaskHDataAccess.getAllApproval(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
} catch (Exception var6) {
var6.printStackTrace();
try {
this.progressDialog.dismiss();
} catch (Exception var5) {
;
}
this.errMessage = var6.getMessage();
}*/
return result;
}
protected void onPostExecute(List<TaskH> result) {
if(this.progressDialog.isShowing()) {
try {
this.progressDialog.dismiss();
} catch (Exception var4) {
}
}
final NiftyDialogBuilder fragment;
if (GlobalData.isRequireRelogin()) {
} else if(this.errMessage != null) {
if(activity.get().getString(R.string.scheme_not_found).equals(errMessage)){
Constants.listOfApprovalTask = result;
fragment = NiftyDialogBuilder.getInstance(this.context.get());
fragment.withTitle(activity.get().getString(R.string.info_capital)).withMessage(this.errMessage).
isCancelable(true)
.withButton1Text(activity.get().getString(R.string.btnOk))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
fragment.dismiss();
gotoPage();
}
}).show();
}else {
fragment = NiftyDialogBuilder.getInstance(this.context.get());
fragment.withTitle(activity.get().getString(R.string.warning_capital)).withMessage(this.errMessage).show();
}
} else if(result != null && result.size() != 0) {
Constants.listOfApprovalTask = result;
gotoPage();
} else {
fragment = NiftyDialogBuilder.getInstance(this.context.get());
fragment.withTitle(activity.get().getString(R.string.info_capital)).withMessage(this.messageEmpty).show();
}
}
private void gotoPage() {
Fragment fragment1 = null;
if(mode!=null && !mode.isEmpty()){
fragment1 = new com.adins.mss.svy.fragments.SurveyApprovalByBranchFragment();
}else{
fragment1 = new com.adins.mss.svy.fragments.SurveyApprovalFragment();
}
Bundle argument = new Bundle();
if(mode!=null && !mode.isEmpty())
argument.putBoolean(SurveyApprovalListTask.KEY_BRANCH, true);
else
argument.putBoolean(SurveyApprovalListTask.KEY_BRANCH, false);
fragment1.setArguments(argument);
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment1);
transaction.addToBackStack(null);
transaction.commit();
}
}

View file

@ -0,0 +1,325 @@
package com.adins.mss.svy;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import android.util.Log;
import android.view.View;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.R;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.mainmenu.MainMenuActivity;
import com.adins.mss.base.timeline.TimelineManager;
import com.adins.mss.base.todolist.ToDoList;
import com.adins.mss.base.todolist.form.JsonResponseTaskList;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.Scheme;
import com.adins.mss.dao.TaskH;
import com.adins.mss.dao.Timeline;
import com.adins.mss.dao.User;
import com.adins.mss.foundation.db.dataaccess.SchemeDataAccess;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.db.dataaccess.TimelineDataAccess;
import com.adins.mss.foundation.db.dataaccess.TimelineTypeDataAccess;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.svy.models.JsonRequestTaskWithMode;
import com.adins.mss.svy.tool.Constants;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import com.google.gson.JsonSyntaxException;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class SurveyVerificationListTask extends AsyncTask<Void, Void, List<TaskH>> {
public static final String KEY_BRANCH = "branch";
private ProgressDialog progressDialog;
private WeakReference<Context> context;
private WeakReference<Activity> activity;
private String messageWait;
private String messageEmpty;
private String mode;
private String errMessage = null;
// private Class<?> taskSurveyVerificationFragment;
public Fragment SurveyVerificationFragment;
// private FragmentActivity fragmentActivity;
// private int contentFrame;
private User user = GlobalData.getSharedGlobalData().getUser();
// public SurveyVerificationListTask(FragmentActivity fragmentActivity, String messageWait, String messageEmpty, int contentFrame, Fragment LogResultFragment) {
// this.context = fragmentActivity;
// this.fragmentActivity = fragmentActivity;
// this.messageWait = messageWait;
// this.messageEmpty = messageEmpty;
// this.contentFrame = contentFrame;
// this.SurveyVerificationFragment = LogResultFragment;
// }
public SurveyVerificationListTask(Activity context, String messageWait, String messageEmpty, String mode) {
this.context = new WeakReference<Context>(context);
this.messageWait = messageWait;
this.messageEmpty = messageEmpty;
this.mode = mode;
this.activity = new WeakReference<Activity>(context);
}
protected void onPreExecute() {
this.progressDialog = ProgressDialog.show(this.context.get(), "", this.messageWait, true);
}
protected List<TaskH> doInBackground(Void... params) {
List<TaskH> result = new ArrayList<TaskH>();
if(Tool.isInternetconnected(context.get())){
JsonRequestTaskWithMode requestType = new JsonRequestTaskWithMode();
requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
requestType.addImeiAndroidIdToUnstructured();
if(mode!=null && !mode.isEmpty())
requestType.setMode(mode);
String json = GsonHelper.toJson(requestType);
String url = GlobalData.getSharedGlobalData().getURL_GET_LIST_VERIFICATION();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(activity.get(), encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) { FireCrash.log(e);
e.printStackTrace();
errMessage = activity.get().getString(R.string.jsonParseFailed);
}
if(serverResult!=null){
if(serverResult.isOK()){
try {
String stringResult = serverResult.getResult();
stringResult = serverResult.getResult();
JsonResponseTaskList taskList = GsonHelper.fromJson(stringResult, JsonResponseTaskList.class);
if(taskList.getStatus().getCode()==0){
List<TaskH> listTaskH = taskList.getListTaskList();
if(listTaskH!=null&&listTaskH.size()>0){
for(TaskH taskH : listTaskH){
taskH.setUser(user);
if(mode!=null && KEY_BRANCH.equals(mode))
taskH.setAccess_mode(TaskHDataAccess.ACCESS_MODE_BRANCH);
else
taskH.setAccess_mode(TaskHDataAccess.ACCESS_MODE_USER);
String uuid_scheme = taskH.getUuid_scheme();
Scheme scheme = SchemeDataAccess.getOne(context.get(), uuid_scheme);
if(scheme!=null){
taskH.setScheme(scheme);
TaskH h = TaskHDataAccess.getOneHeader(context.get(), taskH.getUuid_task_h());
String uuid_timelineType = TimelineTypeDataAccess.getTimelineTypebyType(context.get(), Global.TIMELINE_TYPE_VERIFICATION).getUuid_timeline_type();
boolean wasInTimeline = TimelineDataAccess.getOneTimelineByTaskH(context.get(), user.getUuid_user(), taskH.getUuid_task_h(), uuid_timelineType)!=null;
if(h!=null&&h.getStatus()!=null){
if(!ToDoList.isOldTask(h)){
TaskHDataAccess.addOrReplace(context.get(), taskH);
if(!wasInTimeline) {
TimelineManager.insertTimeline(context.get(), taskH);
}
}
else{
if(h.getAccess_mode()!=null && h.getAccess_mode().length()>0){
if(mode!=null && KEY_BRANCH.equals(mode)){
if(h.getAccess_mode().equals(TaskHDataAccess.ACCESS_MODE_BRANCH)){
h.setAccess_mode(TaskHDataAccess.ACCESS_MODE_HYBRID);
TaskHDataAccess.addOrReplace(context.get(), h);
}
}
else{
if(h.getAccess_mode().equals(TaskHDataAccess.ACCESS_MODE_USER)){
h.setAccess_mode(TaskHDataAccess.ACCESS_MODE_HYBRID);
TaskHDataAccess.addOrReplace(context.get(), h);
}
}
}
}
result.add(h);
}else{
errMessage = activity.get().getString(R.string.task_hasnt_finished_sync);
result.add(h);
TaskHDataAccess.addOrReplace(context.get(), taskH);
if(!wasInTimeline){
TimelineManager.insertTimeline(context.get(), taskH);
}
}
}else{
errMessage = activity.get().getString(R.string.scheme_not_found_verification);
if(mode!=null && KEY_BRANCH.equals(mode))
result = TaskHDataAccess.getAllVerifiedForBranch(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
else
result = TaskHDataAccess.getAllVerifiedForUser(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
}
}
//check for changed task in result(local db) data
List<TaskH> localTaskHs = TaskHDataAccess.getAllVerified(context.get(),GlobalData.getSharedGlobalData().getUser().getUuid_user());
if(localTaskHs != null && localTaskHs.size() > 0){
for (int i= 0; i<localTaskHs.size(); i++) {
boolean taskNotfound = false;
TaskH taskh_local = localTaskHs.get(i);
if(taskh_local == null)
continue;
if(listTaskH != null && listTaskH.size() > 0){
//delete taskh_local
for(TaskH taskHServer :listTaskH){
if(taskHServer != null && taskHServer.getTask_id().equals(taskh_local.getTask_id())){
taskNotfound = true;
break;
}
}
if(!taskNotfound){
//set taskh status and messages to changed
taskh_local.setStatus(TaskHDataAccess.STATUS_TASK_CHANGED);
taskh_local.setIs_prepocessed(Global.FORM_TYPE_VERIFICATION);
taskh_local.setMessage(context.get().getString(com.adins.mss.svy.R.string.taskChanged));
TaskHDataAccess.addOrReplace(context.get(),taskh_local);
TimelineManager.insertTimeline(context.get(),taskh_local);
}
}
}
}
}else {
errMessage = stringResult;
}
}catch(JsonSyntaxException x){
errMessage = serverResult.getResult();
} catch (Exception e) {
FireCrash.log(e);
errMessage = activity.get().getString(R.string.jsonParseFailed);
}
}
else{
errMessage = serverResult.getResult();
if(mode!=null && KEY_BRANCH.equals(mode))
result = TaskHDataAccess.getAllVerifiedForBranch(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
else
result = TaskHDataAccess.getAllVerifiedForUser(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
}
else{
errMessage = "Something wrong from server";
if(Global.IS_DEV)
errMessage = "Error: serverResult == null";
if(mode!=null && KEY_BRANCH.equals(mode))
result = TaskHDataAccess.getAllVerifiedForBranch(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
else
result = TaskHDataAccess.getAllVerifiedForUser(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
}else{
if(mode!=null && KEY_BRANCH.equals(mode))
result = TaskHDataAccess.getAllVerifiedForBranch(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
else
result = TaskHDataAccess.getAllVerifiedForUser(context.get(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
/* try {
if(this.context != null) {
resultTaskH = TaskHDataAccess.getAllVerified(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
} else if(this.activity != null) {
resultTaskH = TaskHDataAccess.getAllVerified(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
} else {
resultTaskH = TaskHDataAccess.getAllVerified(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
} catch (Exception var6) {
var6.printStackTrace();
try {
this.progressDialog.dismiss();
} catch (Exception var5) {
;
}
this.errMessage = var6.getMessage();
}*/
return result;
}
protected void onPostExecute(List<TaskH> result) {
if(this.progressDialog.isShowing()) {
try {
this.progressDialog.dismiss();
} catch (Exception var4) {
}
}
final NiftyDialogBuilder fragment;
if (GlobalData.isRequireRelogin()) {
}
if(this.errMessage != null) {
if(GlobalData.isRequireRelogin()){
return;
}
if(activity.get().getString(R.string.scheme_not_found_verification).equals(errMessage)){
Constants.listOfVerifiedTask = result;
fragment = NiftyDialogBuilder.getInstance(this.context.get());
fragment.withTitle(activity.get().getString(R.string.info_capital)).withMessage(this.errMessage).
isCancelable(true)
.withButton1Text(activity.get().getString(R.string.btnOk))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
fragment.dismiss();
gotoPage();
}
}).show();
}else{
fragment = NiftyDialogBuilder.getInstance(this.context.get());
fragment.withTitle(activity.get().getString(R.string.error_capital)).withMessage(this.errMessage).
isCancelable(true).show();
}
} else if(result != null && result.size() != 0) {
Constants.listOfVerifiedTask = result;
gotoPage();
} else {
fragment = NiftyDialogBuilder.getInstance(this.context.get());
fragment.withTitle(activity.get().getString(R.string.info_capital)).withMessage(this.messageEmpty).
isCancelable(true).show();
}
}
public void gotoPage(){
Fragment fragment1 = null;
if(mode!=null && !mode.isEmpty()){
fragment1 = new com.adins.mss.svy.fragments.SurveyVerificationByBranchFragment();
}else{
fragment1 = new com.adins.mss.svy.fragments.SurveyVerificationFragment();
}
Bundle argument = new Bundle();
if(mode!=null && !mode.isEmpty())
argument.putBoolean(SurveyApprovalListTask.KEY_BRANCH, true);
else
argument.putBoolean(SurveyApprovalListTask.KEY_BRANCH, false);
fragment1.setArguments(argument);
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment1);
transaction.addToBackStack(null);
transaction.commit();
}
}

View file

@ -0,0 +1,119 @@
package com.adins.mss.svy;
import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import androidx.recyclerview.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import com.adins.mss.base.loyalti.userhelpdummy.DashboardMyPointItemDummyAdapter;
import com.adins.mss.base.tasklog.SurveyTaskAdapter;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.UserHelp.Bean.Dummy.UserHelpIconDummy;
import com.adins.mss.foundation.UserHelp.Bean.Dummy.UserHelpViewDummy;
import com.adins.mss.foundation.UserHelp.Bean.UserHelpView;
import com.adins.mss.foundation.UserHelp.UserHelp;
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
import com.google.gson.Gson;
import java.util.ArrayList;
import uk.co.deanwild.materialshowcaseview.MaterialShowcaseSequence;
import uk.co.deanwild.materialshowcaseview.MaterialShowcaseView;
import uk.co.deanwild.materialshowcaseview.ShowcaseConfig;
import static com.adins.mss.constant.Global.userHelpDummyGuide;
public class UserHelpSVYDummy {
private int iconCounter = 0;
private int viewCounter = 1;
public void showDummyVerif(final Activity activity, final String idSequence, final RecyclerView recyclerView, final SurveyTaskAdapter newTaskLogAdapter){
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
ArrayList<UserHelpViewDummy> tempTooltip = new ArrayList<>();
ShowcaseConfig config = new ShowcaseConfig();
config.setDelay(0);
config.setFadeDuration(100);
final MaterialShowcaseSequence sequence = new MaterialShowcaseSequence(activity);
sequence.setConfig(config);
try {
for(UserHelpViewDummy userHelpViewDummy : Global.userHelpDummyGuide.get(idSequence)){
View idView = recyclerView.findViewHolderForLayoutPosition(0).itemView.findViewById(
Utility.getViewById(activity, userHelpViewDummy.getViewid())
);
for(UserHelpIconDummy userHelpIconDummy: userHelpViewDummy.getIconid()){
UserHelp.addSequenceUserHelpDummy(activity, sequence, userHelpIconDummy,userHelpViewDummy, idView, tempTooltip);
}
}
sequence.setOnItemSkippedListener(new MaterialShowcaseSequence.OnSequenceItemSkippedListener() {
@Override
public void onSkip() {
recyclerView.setAdapter(newTaskLogAdapter);
userHelpDummyGuide.put(idSequence,new ArrayList<UserHelpViewDummy>());
try {
ObscuredSharedPreferences sharedPref =
ObscuredSharedPreferences.getPrefs(activity.getApplicationContext(), "GlobalData", Context.MODE_PRIVATE);
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
Gson gson = new Gson();
sharedPrefEditor.putString("LAST_TOOLTIP_DUMMY", gson.toJson(userHelpDummyGuide)).apply();
} catch (Exception e){}
Global.BACKPRESS_RESTRICTION = false;
}
});
sequence.setOnItemDismissedListener(new MaterialShowcaseSequence.OnSequenceItemDismissedListener() {
@Override
public void onDismiss(MaterialShowcaseView materialShowcaseView, int i) {
if(viewCounter < Global.userHelpDummyGuide.get(idSequence).size()) {
if(iconCounter < userHelpDummyGuide.get(idSequence).get(viewCounter).getIconid().size()) {
UserHelpViewDummy userHelpViewDummy = userHelpDummyGuide.get(idSequence).get(viewCounter);
try {
ImageView imageView = recyclerView.findViewHolderForLayoutPosition(0).
itemView.findViewById(Utility.getViewById(activity, userHelpViewDummy.getViewid()));
imageView.setImageDrawable(activity.getResources().getDrawable(
Utility.getDrawableById(activity, userHelpViewDummy.getIconid().get(iconCounter).getIcon()))
);
} catch (Exception e){
e.printStackTrace();
}
iconCounter++;
}else{
viewCounter++;
iconCounter = 0;
if(viewCounter < userHelpDummyGuide.get(idSequence).size()){
UserHelpViewDummy userHelpViewDummy = userHelpDummyGuide.get(idSequence).get(viewCounter);
ImageView imageView = recyclerView.findViewHolderForLayoutPosition(0).
itemView.findViewById(Utility.getViewById(activity, userHelpViewDummy.getViewid()));
imageView.setImageDrawable(activity.getResources().getDrawable(
Utility.getDrawableById(activity, userHelpViewDummy.getIconid().get(iconCounter).getIcon()))
);
iconCounter++;
}else{
Global.BACKPRESS_RESTRICTION = false;
recyclerView.setAdapter(newTaskLogAdapter);
userHelpDummyGuide.put(idSequence,new ArrayList<UserHelpViewDummy>());
try {
ObscuredSharedPreferences sharedPref =
ObscuredSharedPreferences.getPrefs(activity.getApplicationContext(), "GlobalData", Context.MODE_PRIVATE);
ObscuredSharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
Gson gson = new Gson();
sharedPrefEditor.putString("LAST_TOOLTIP_DUMMY", gson.toJson(userHelpDummyGuide)).apply();
} catch (Exception e){}
}
}
}
}
});
sequence.start();
} catch (Exception e){}
}
},0);
}
}

View file

@ -0,0 +1,255 @@
package com.adins.mss.svy.assignment;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import androidx.annotation.Keep;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.ListView;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.checkin.CheckInManager;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.LocaleHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.UserHelp.UserHelp;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.foundation.location.UpdateMenuIcon;
import com.adins.mss.svy.R;
import com.adins.mss.svy.reassignment.JsonRequestDetailOrder;
import com.adins.mss.svy.reassignment.JsonResponseServer;
import com.adins.mss.svy.reassignment.JsonResponseServer.ResponseServer;
import com.androidquery.AQuery;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import org.acra.ACRA;
import java.util.List;
import java.util.Locale;
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
public class LookupAssignment extends AppCompatActivity{
AQuery query ;
OrderAssignmentAdapter adapter;
List<ResponseServer> responseServer;
ListView listView;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(com.adins.mss.base.R.menu.main_menu, menu);
mainMenu = menu;
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
updateMenuIcon();
if(Global.ENABLE_USER_HELP &&
(Global.userHelpGuide.get(LookupAssignment.this.getClass().getSimpleName())!=null) ||
Global.userHelpDummyGuide.get(LookupAssignment.this.getClass().getSimpleName()) != null){
menu.findItem(com.adins.mss.base.R.id.mnGuide).setVisible(true);
}
return super.onPrepareOptionsMenu(menu);
}
private static Menu mainMenu;
public static void updateMenuIcon() {
UpdateMenuIcon uItem = new UpdateMenuIcon();
uItem.updateGPSIcon(mainMenu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == com.adins.mss.base.R.id.mnGPS && Global.LTM != null) {
if (Global.LTM.getIsConnected()) {
Global.LTM.removeLocationListener();
Global.LTM.connectLocationClient();
} else {
CheckInManager.startGPSTracking(getApplicationContext());
}
Animation a = AnimationUtils.loadAnimation(this, com.adins.mss.base.R.anim.gps_rotate);
findViewById(com.adins.mss.base.R.id.mnGPS).startAnimation(a);
}
if(id==R.id.mnGuide && !Global.BACKPRESS_RESTRICTION){
UserHelp.reloadUserHelp(getApplicationContext(), LookupAssignment.this);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelp(LookupAssignment.this, LookupAssignment.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.default_listview);
Toolbar toolbar = (Toolbar) findViewById(com.adins.mss.base.R.id.toolbar);
toolbar.setTitleTextColor(getResources().getColor(com.adins.mss.base.R.color.fontColorWhite));
toolbar.setTitle(getString(R.string.title_mn_surveyassign));
setSupportActionBar(toolbar);
listView = findViewById(android.R.id.list);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
query = new AQuery(this);
query.id(android.R.id.list).itemClicked(this, "itemClick").margin(5, 5, 5, 5);
String flag = getIntent().getStringExtra(Global.BUND_KEY_TASK);
String uuid_task_h = getIntent().getStringExtra(Global.BUND_KEY_UUID_TASKH);
new GetRequestDataLookup(uuid_task_h,flag).execute();
}
@Override
public void onBackPressed() {
if(!Global.BACKPRESS_RESTRICTION){
super.onBackPressed();
}
}
@Override
protected void attachBaseContext(Context newBase) {
Context context = newBase;
Locale locale;
try{
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
context = LocaleHelper.wrap(newBase, locale);
} catch (Exception e) {
locale = new Locale(LocaleHelper.ENGLSIH);
context = LocaleHelper.wrap(newBase, locale);
} finally {
super.attachBaseContext(context);
}
}
@Keep
public void itemClick(AdapterView<?> parent, View v, int position, long id){
Intent intent = new Intent();
intent.putExtra(Global.BUND_KEY_ASSIGNEE_ID, responseServer.get(position).getKey());
intent.putExtra(Global.BUND_KEY_ASSIGNEE_VALUE, responseServer.get(position).getValue());
intent.putExtra(Global.BUND_KEY_ASSIGNEE_JOB, responseServer.get(position).getFlag());
setResult(Global.REQUEST_CODE_LOOKUP, intent);
finish();
}
private class GetRequestDataLookup extends AsyncTask<Void, Void, JsonResponseServer> {
private ProgressDialog progressDialog;
private String errMessage = null;
private String uuid_task_h;
private String flag;
public GetRequestDataLookup(String uuid_task_h, String flag) {
this.flag = flag;
this.uuid_task_h=uuid_task_h;
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(LookupAssignment.this,
"", getString(R.string.progressWait), true);
}
@Override
protected JsonResponseServer doInBackground(Void... params) {
String result = null;
JsonRequestDetailOrder request = new JsonRequestDetailOrder();
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
request.setUuid_task_h(uuid_task_h);
request.setFlag(flag);
String json = GsonHelper.toJson(request);
String url = GlobalData.getSharedGlobalData().getURL_GET_LOOKUP();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(LookupAssignment.this, encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
if(serverResult.isOK())
result = serverResult.getResult();
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
try {
progressDialog.dismiss();
} catch (Exception ex) {
FireCrash.log(e);
}
errMessage = e.getMessage();
}
JsonResponseServer response =null;
try {
if(null!=result)
response = GsonHelper.fromJson(result, JsonResponseServer.class);
} catch (Exception e) { FireCrash.log(e);
errMessage = e.getMessage();
}
return response;
}
@Override
protected void onPostExecute(JsonResponseServer result){
if (progressDialog.isShowing()){
try {
progressDialog.dismiss();
} catch (Exception e) { FireCrash.log(e);
}
}
if(errMessage!=null){
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(LookupAssignment.this);
dialogBuilder.withTitle(getApplicationContext().getString(R.string.error_capital))
.withMessage(errMessage)
.show();
}
else if(result != null){
if(result.getStatus().getCode()==0){
responseServer = result.getListResponseServer();
adapter = new OrderAssignmentAdapter(getApplicationContext(), responseServer, true);
query.id(android.R.id.list).adapter(adapter);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelpWithListView(LookupAssignment.this,
LookupAssignment.this.getClass().getSimpleName(),
listView,0);
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}else{
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(LookupAssignment.this);
dialogBuilder.withTitle(getApplicationContext().getString(R.string.info_capital))
.withMessage(result.getStatus().getMessage())
.show();
}
}
}
}
}

View file

@ -0,0 +1,176 @@
package com.adins.mss.svy.assignment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import androidx.annotation.Keep;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.TaskH;
import com.adins.mss.foundation.UserHelp.UserHelp;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.svy.R;
import com.adins.mss.svy.reassignment.JsonResponseServer;
import com.adins.mss.svy.reassignment.JsonResponseServer.ResponseServer;
import com.androidquery.AQuery;
import com.google.firebase.analytics.FirebaseAnalytics;
import org.acra.ACRA;
import java.util.List;
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
public class OrderAssignmentActivity extends Fragment {
protected View view;
protected AQuery query;
protected List<TaskH> allObjects;
protected List<TaskH> objects;
protected JsonResponseServer results;
private List<ResponseServer> responseServer;
private Bundle mArguments;
// public static boolean isChange = false;
public static boolean isChange = false;
public static int selectedPosition = 9999;
protected OrderAssignmentAdapter adapter;
private ListView listView;
private FirebaseAnalytics screenName;
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
isChange = false;
mArguments = getArguments();
// getActivity().getActionBar().setTitle(getString(R.string.title_mn_surveyassign));
results = (JsonResponseServer) mArguments.getSerializable("resultJson");
responseServer = results.getListResponseServer();
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_surveyassign));
adapter = new OrderAssignmentAdapter(getActivity(), responseServer,false);
setHasOptionsMenu(true);
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public void onResume(){
super.onResume();
// getActivity().getActionBar().setTitle(getString(R.string.title_mn_surveyassign));
//Set Firebase screen name
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_survey_assignment), null);
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_surveyassign));
if(isChange){
if(selectedPosition!=9999){
responseServer.remove(selectedPosition);
adapter = new OrderAssignmentAdapter(getActivity(), responseServer,false);
query.id(android.R.id.list).adapter(adapter);
isChange=false;
selectedPosition=9999;
}
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null)
parent.removeView(view);
}
try {
view = inflater.inflate(R.layout.new_fragment_survey_assignment, container, false);
query = new AQuery(view);
listView = view.findViewById(android.R.id.list);
query.id(listView).adapter(adapter);
query.id(listView).itemClicked(this, "itemClick");
screenName = FirebaseAnalytics.getInstance(getActivity());
if(responseServer.size()==0){
final NiftyDialogBuilder builder = NiftyDialogBuilder.getInstance(getActivity());
builder.withTitle(getString(R.string.info_capital))
.withMessage(getString(R.string.data_not_found))
.withButton1Text(getString(R.string.btnOk))
.isCancelable(false)
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
builder.dismiss();
}
}).show();
}
} catch (Exception e) {
FireCrash.log(e);
}
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelpWithListView(OrderAssignmentActivity.this.getActivity(),
OrderAssignmentActivity.this.getClass().getSimpleName(),
listView,
0);
}
}, SHOW_USERHELP_DELAY_DEFAULT);
return view;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.mnGuide){
if(!Global.BACKPRESS_RESTRICTION) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelpWithListView(OrderAssignmentActivity.this.getActivity(),
OrderAssignmentActivity.this.getClass().getSimpleName(),
listView,
0);
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}
}
return super.onOptionsItemSelected(item);
}
@Keep
public void itemClick(AdapterView<?> parent, View v, int position, long id){
selectedPosition = position;
String nomorOrder = responseServer.get(position).getKey();
String uuid_task_h = responseServer.get(position).getFlag();
String formName = responseServer.get(position).getFormName();
gotoDetailData(nomorOrder, uuid_task_h, formName);
}
private void gotoDetailData(String nomorOrder,String uuid_task_h,String formName) {
Intent intent = new Intent(getActivity(), OrderAssignmentResult.class);
intent.putExtra(Global.BUND_KEY_ORDERNO, nomorOrder);
intent.putExtra(Global.BUND_KEY_FORM_NAME, formName);
intent.putExtra(Global.BUND_KEY_TASK_TYPE, Global.TASK_ORDER_ASSIGNMENT);
intent.putExtra(Global.BUND_KEY_UUID_TASKH, uuid_task_h);
startActivity(intent);
}
}

View file

@ -0,0 +1,50 @@
package com.adins.mss.svy.assignment;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import com.adins.mss.svy.R;
import com.adins.mss.svy.reassignment.JsonResponseServer.ResponseServer;
import com.androidquery.AQuery;
import com.androidquery.util.Constants;
public class OrderAssignmentAdapter extends ArrayAdapter<ResponseServer>{
private Context context;
private List<ResponseServer> responseServer;
private boolean isLookup = false;
AQuery query;
public OrderAssignmentAdapter(Context context, List<ResponseServer> objects, boolean isLookup) {
super(context, R.layout.new_survey_assignment_item, objects);
this.context = context;
this.responseServer = objects;
this.isLookup=isLookup;
}
@Override
public int getCount() {
return responseServer.size();
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.new_survey_assignment_item, parent, false);
}
query = new AQuery(convertView);
ResponseServer header = responseServer.get(position);
if(isLookup){
// if(header.getKey()!=null)
// query.id(R.id.txtNoOrder).text(header.getFlag());
query.id(R.id.txtNoOrder).visibility(View.GONE);
}else{
if(header.getKey()!=null)
query.id(R.id.txtNoOrder).text(header.getKey());
}
query.id(R.id.txtCustomerName).text(header.getValue());
return convertView;
}
}

View file

@ -0,0 +1,529 @@
package com.adins.mss.svy.assignment;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView;
import androidx.appcompat.widget.Toolbar;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.ScrollView;
import android.widget.TableLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.checkin.CheckInManager;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.timeline.MapsViewer;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.LocaleHelper;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.UserHelp.UserHelp;
import com.adins.mss.foundation.dialog.DialogManager;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.foundation.image.Utils;
import com.adins.mss.foundation.location.UpdateMenuIcon;
import com.adins.mss.svy.R;
import com.adins.mss.svy.reassignment.JsonRequestDetailOrder;
import com.adins.mss.svy.reassignment.JsonResponseServer;
import com.adins.mss.svy.reassignment.JsonResponseServer.ResponseServer;
import com.adins.mss.svy.tool.ImageThumbnail;
import com.adins.mss.svy.tool.getImageTask;
import com.google.firebase.analytics.FirebaseAnalytics;
import org.acra.ACRA;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
public class OrderAssignmentResult extends AppCompatActivity implements OnClickListener{
String nomorOrder;
TableLayout detailTable;
Button btnLookupCMO;
Button btnSubmit;
TextView form_name;
ScrollView scrollView;
int taskType;
String flag;
String uuid_task_h;
String formName;
TextView txtCMO;
EditText txtNotes;
CardView lookupCMOLayout;
Map<ImageThumbnail, String> thumbnailMapping = new HashMap<>();
List<ResponseServer> list;
String assignId;
public static ImageThumbnail targetThumbnail = null;
public boolean isSoftKeyboardDisplayed = false;
private FirebaseAnalytics screenName;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(com.adins.mss.base.R.menu.main_menu, menu);
mainMenu = menu;
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
updateMenuIcon();
if(Global.ENABLE_USER_HELP &&
(Global.userHelpGuide.get(OrderAssignmentResult.this.getClass().getSimpleName())!=null) ||
Global.userHelpDummyGuide.get(OrderAssignmentResult.this.getClass().getSimpleName()) != null){
menu.findItem(com.adins.mss.base.R.id.mnGuide).setVisible(true);
}
return super.onPrepareOptionsMenu(menu);
}
private static Menu mainMenu;
public static void updateMenuIcon() {
UpdateMenuIcon uItem = new UpdateMenuIcon();
uItem.updateGPSIcon(mainMenu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == com.adins.mss.base.R.id.mnGPS && Global.LTM != null) {
if (Global.LTM.getIsConnected()) {
Global.LTM.removeLocationListener();
Global.LTM.connectLocationClient();
} else {
CheckInManager.startGPSTracking(getApplicationContext());
}
Animation a = AnimationUtils.loadAnimation(this, com.adins.mss.base.R.anim.gps_rotate);
findViewById(com.adins.mss.base.R.id.mnGPS).startAnimation(a);
}
if(id==R.id.mnGuide && !Global.BACKPRESS_RESTRICTION){
UserHelp.reloadUserHelp(getApplicationContext(), OrderAssignmentResult.this);
scrollView.scrollTo(0, findViewById(R.id.Bottomlayout).getBottom());
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelp(OrderAssignmentResult.this, OrderAssignmentResult.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_survey_assignment_result_activity);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
nomorOrder = getIntent().getExtras().getString(Global.BUND_KEY_ORDERNO);
taskType = getIntent().getExtras().getInt(Global.BUND_KEY_TASK_TYPE);
uuid_task_h = getIntent().getExtras().getString(Global.BUND_KEY_UUID_TASKH);
formName = getIntent().getExtras().getString(Global.BUND_KEY_FORM_NAME);
flag = flagParamForType(taskType);
scrollView = findViewById(R.id.scrollView);
screenName = FirebaseAnalytics.getInstance(this);
Toolbar toolbar = (Toolbar) findViewById(com.adins.mss.base.R.id.toolbar);
toolbar.setTitleTextColor(getResources().getColor(com.adins.mss.base.R.color.fontColorWhite));
toolbar.setTitle(getString(R.string.title_mn_surveyassign));
setSupportActionBar(toolbar);
switch (taskType) {
case Global.TASK_ORDER_ASSIGNMENT:
toolbar.setTitle(getString(R.string.title_mn_surveyassign));
break;
case Global.TASK_ORDER_REASSIGNMENT:
toolbar.setTitle(getString(R.string.title_mn_surveyreassign));
break;
default:
break;
}
initialize();
new GetRequestDataDetail(this,nomorOrder, flag).execute();
}
@Override
protected void onResume() {
super.onResume();
//Set Firebase screen name
screenName.setCurrentScreen(this, getString(R.string.screen_name_survey_assignment_result), null);
}
@Override
protected void attachBaseContext(Context newBase) {
Context context = newBase;
Locale locale;
try{
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
context = LocaleHelper.wrap(newBase, locale);
} catch (Exception e) {
locale = new Locale(LocaleHelper.ENGLSIH);
context = LocaleHelper.wrap(newBase, locale);
} finally {
super.attachBaseContext(context);
}
}
private String flagParamForType(int taskType2) {
switch (taskType) {
case Global.TASK_ORDER_ASSIGNMENT:
return "assign";
case Global.TASK_ORDER_REASSIGNMENT:
return "reassign";
default:
return "";
}
}
protected void initialize() {
detailTable = (TableLayout)findViewById(R.id.orderDetailTable);
btnLookupCMO = (Button)findViewById(R.id.btnLookupCMO);
btnSubmit = (Button)findViewById(R.id.btnSubmit);
form_name = (TextView)findViewById(R.id.formName);
txtCMO = (TextView)findViewById(R.id.txtCMO);
txtNotes = (EditText)findViewById(R.id.txtNotes);
txtNotes.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
isSoftKeyboardDisplayed = true;
txtNotes.requestFocus();
txtNotes.setFocusable(true);
txtNotes.setFocusableInTouchMode(true);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(v, 0);
return false;
}
});
btnSubmit.requestFocus();
btnSubmit.setFocusable(true);
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
View v = getCurrentFocus();
boolean ret = super.dispatchTouchEvent(event);
if (v instanceof EditText) {
View w = getCurrentFocus();
int scrcoords[] = new int[2];
w.getLocationOnScreen(scrcoords);
float x = event.getRawX() + w.getLeft() - scrcoords[0];
float y = event.getRawY() + w.getTop() - scrcoords[1];
if (event.getAction() == MotionEvent.ACTION_UP
&& (x < w.getLeft() || x >= w.getRight() || y < w.getTop() || y > w
.getBottom())) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromInputMethod(v.getWindowToken(), 0);
isSoftKeyboardDisplayed = false;
}
}
return ret;
}
@Override
public void onBackPressed(){
if (isSoftKeyboardDisplayed) {
isSoftKeyboardDisplayed = false;
}else{
if(!Global.BACKPRESS_RESTRICTION) {
super.onBackPressed();
}
}
}
public class GetRequestDataDetail extends AsyncTask<Void, Void, String> {
private ProgressDialog progressDialog;
private WeakReference<Activity> activity;
private String flag;
private String nomorOrder;
public GetRequestDataDetail(Activity activity,String nomorOrder, String flag) {
this.activity = new WeakReference<>(activity);
this.nomorOrder = nomorOrder;
this.flag = flag;
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(OrderAssignmentResult.this,
"", getString(R.string.progressWait), true);
}
@Override
protected String doInBackground(Void... params) {
String result = null;
JsonRequestDetailOrder request = new JsonRequestDetailOrder();
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
request.setUuid_task_h(uuid_task_h);
String json = GsonHelper.toJson(request);
String url = GlobalData.getSharedGlobalData().getURL_GET_DETAIL_ORDER();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(activity.get(), encrypt, decrypt);
HttpConnectionResult serverResult = null;
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
if(serverResult.isOK())
result = serverResult.getResult();
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
try {
progressDialog.dismiss();
} catch (Exception ex) {
FireCrash.log(e);
}
}
return result;
}
@Override
protected void onPostExecute(String result){
if (progressDialog.isShowing()){
try {
progressDialog.dismiss();
} catch (Exception e) { FireCrash.log(e);
}
}
if("".equals(result)){
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(getApplicationContext());
dialogBuilder.withTitle(getString(R.string.info_capital))
.withMessage(getString(R.string.msgNoDetail))
.show();
}else if (null != result){
loadDataDetailFromServer(result);
}
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
scrollView.scrollTo(0, findViewById(R.id.Bottomlayout).getBottom());
UserHelp.showAllUserHelp(OrderAssignmentResult.this,OrderAssignmentResult.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}
}
private void loadDataDetailFromServer(String result){
int no =1;
LayoutParams lpSpace =new LayoutParams(WRAP_CONTENT, MATCH_PARENT);
LayoutParams lpQuestion =new LayoutParams(MATCH_PARENT, MATCH_PARENT,0.3f);
LayoutParams lpImage =new LayoutParams(MATCH_PARENT, MATCH_PARENT, 0.4f);
LayoutParams lpNo =new LayoutParams(WRAP_CONTENT, MATCH_PARENT);
try {
JsonResponseServer resultOrder = GsonHelper.fromJson(result, JsonResponseServer.class);
form_name.setText("Form : "+formName);
list = resultOrder.getListResponseServer();
for(ResponseServer responseServer : list){
String question = responseServer.getKey();
final String answer = responseServer.getValue();
String flag = responseServer.getFlag();
LinearLayout row = new LinearLayout(this);
row.setOrientation(LinearLayout.HORIZONTAL);
row.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT, 1.0f));
TextView lblNo = new TextView(this);
lblNo.setText(no+ ". ");
lblNo.setGravity(Gravity.LEFT);
lblNo.setLayoutParams(lpNo);
row.addView(lblNo);
TextView lblQuestion = new TextView(this);
lblQuestion.setText(question);
lblQuestion.setLayoutParams(lpQuestion);
row.addView(lblQuestion);
TextView lblSpace = new TextView(this);
lblSpace.setText(" : ");
lblSpace.setLayoutParams(lpSpace);
row.addView(lblSpace);
if(flag.equals(Global.FLAG_FOR_IMAGE) || flag.equals(Global.FLAG_FOR_IMAGE_WITH_GPS)) {
final ImageThumbnail thumb = new ImageThumbnail(this, 100, 100);
thumb.setOnClickListener(this);
if (flag.equals(Global.FLAG_FOR_IMAGE_WITH_GPS)) {
thumb.setLayoutParams(lpImage);
} else {
thumb.setLayoutParams(lpQuestion);
}
thumbnailMapping.put(thumb, answer);
row.addView(thumb);
if (flag.equals(Global.FLAG_FOR_IMAGE_WITH_GPS)) {
final ImageThumbnail thumbLoc = new ImageThumbnail(this, 100, 100);
thumbLoc.setImageResource(R.drawable.ic_absent);
thumbLoc.setLayoutParams(lpImage);
row.addView(thumbLoc);
thumbLoc.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
String[] value = Tool.split(answer, ",");
if (value.length > 2) {
String lat = value[1];
String lng = value[2];
Intent intent = new Intent(getApplicationContext(), MapsViewer.class);
intent.putExtra("latitude", lat);
intent.putExtra("longitude", lng);
startActivity(intent);
}
} catch (Exception e) {
FireCrash.log(e);
}
}
});
}
}else if(flag.equals(Global.FLAG_FOR_LOCATION)){
final ImageThumbnail thumb = new ImageThumbnail(this, 90, 90);
thumb.setImageResource(R.drawable.ic_absent);
thumb.setOnClickListener(this);
thumb.setLayoutParams(lpQuestion);
thumbnailMapping.put(thumb, answer);
row.addView(thumb);
}else{
TextView lblAnswer = new TextView(this);
lblAnswer.setText(answer);
lblAnswer.setLayoutParams(lpQuestion);
row.addView(lblAnswer);
}
detailTable.addView(row);
no++;
}
} catch (Exception e) { FireCrash.log(e);
}
}
public void doSubmit(View view){
if(assignId != null && assignId.length()>0){
String notes = txtNotes.getText().toString();
if (notes.length() == 0 && notes.equals("")) {
Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.notes_required),
Toast.LENGTH_LONG).show();
} else {
SubmitAssignTask task = new SubmitAssignTask(this, notes, uuid_task_h, assignId, flag);
task.execute();
}
}else{
Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.select_cmo),
Toast.LENGTH_LONG).show();
}
}
public void doLookupCMO(View view){
Intent intent = new Intent(this, LookupAssignment.class);
Bundle extras = new Bundle();
extras.putString(Global.BUND_KEY_TASK, flag);
extras.putString(Global.BUND_KEY_UUID_TASKH, uuid_task_h);
intent.putExtras(extras);
startActivityForResult(intent, Global.REQUEST_CODE_LOOKUP);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Global.REQUEST_CODE_LOOKUP){ //it's the one we request from the beginning
String value = data.getStringExtra(Global.BUND_KEY_ASSIGNEE_VALUE);
assignId = data.getStringExtra(Global.BUND_KEY_ASSIGNEE_ID);
String job = data.getStringExtra(Global.BUND_KEY_ASSIGNEE_JOB);
btnLookupCMO.setText(job+" - "+value);
}
}
@Override
public void onClick(View v) {
ImageThumbnail imgThumbnail = null;
try {
imgThumbnail = (ImageThumbnail) v;
if (imgThumbnail.getResultImg() != null){
try {
Bitmap image = Utils.byteToBitmap(imgThumbnail.getResultImg());
DialogManager.showImageDialog(this, image);
} catch (Exception e) {
FireCrash.log(e);
}
}
else{
String fieldKey = thumbnailMapping.get(v);
String[] value = Tool.split(fieldKey, ",");
if (value.length == 1) {
if (nomorOrder != null && !"".equals(nomorOrder)){
targetThumbnail = (ImageThumbnail)v; //store thumbnail for further reference after connection finish
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair(Global.BUND_KEY_UUID_TASKH, uuid_task_h));
params.add(new BasicNameValuePair(Global.BUND_KEY_QUESTIONID, fieldKey));
new getImageTask(this,params).execute();
}
else{
Toast.makeText(this, "ERROR: path not received", Toast.LENGTH_SHORT).show();
}
} else if (value.length > 2) {
String img = value[0];
if (nomorOrder != null && !"".equals(nomorOrder)){
targetThumbnail = (ImageThumbnail)v; //store thumbnail for further reference after connection finish
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair(Global.BUND_KEY_UUID_TASKH, uuid_task_h));
params.add(new BasicNameValuePair(Global.BUND_KEY_QUESTIONID, img));
new getImageTask(this,params).execute();
}
else{
Toast.makeText(this, "ERROR: path not received", Toast.LENGTH_SHORT).show();
}
} else {
String lat = value[0];
String lng = value[1];
Intent intent = new Intent(this, MapsViewer.class);
intent.putExtra("latitude", lat);
intent.putExtra("longitude", lng);
startActivity(intent);
}
}
} catch (Exception e) { FireCrash.log(e);
}
}
}

View file

@ -0,0 +1,131 @@
package com.adins.mss.svy.assignment;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentTransaction;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.R;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.mainmenu.MainMenuActivity;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.svy.reassignment.JsonRequestCheckOrder;
import com.adins.mss.svy.reassignment.JsonResponseServer;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
public class OrderAssignmentTask extends AsyncTask<Void, Void, JsonResponseServer> {
private ProgressDialog progressDialog;
private Context context;
private String messageWait;
private String messageEmpty;
private String errMessage = null;
private FragmentActivity fragmentActivity;
private int contentFrame;
public OrderAssignmentTask(FragmentActivity fragmentActivity, String messageWait, String messageEmpty,int contentFrame){
this.context=fragmentActivity;
this.fragmentActivity = fragmentActivity;
this.messageWait = messageWait;
this.messageEmpty = messageEmpty;
this.contentFrame = contentFrame;
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(context, "", messageWait, true);
}
@Override
protected JsonResponseServer doInBackground(Void... params) {
String resp = null;
JsonResponseServer result = null;
if(Tool.isInternetconnected(context)){
JsonRequestCheckOrder requestCheckOrder = new JsonRequestCheckOrder();
requestCheckOrder.setAudit(GlobalData.getSharedGlobalData().getAuditData());
requestCheckOrder.setFlag(Global.FLAG_FOR_ORDERASSIGNMENT);
String json = GsonHelper.toJson(requestCheckOrder);
String url = GlobalData.getSharedGlobalData().getURL_GET_LIST_ASSIGNMENT();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(fragmentActivity, encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
errMessage=e.getMessage();
}
resp = serverResult.getResult();
try {
result = GsonHelper.fromJson(resp, JsonResponseServer.class);
if(result.getStatus().getCode()!=0){
errMessage= result.getStatus().getMessage();
}
} catch (Exception e) {
FireCrash.log(e);
errMessage = context.getString(R.string.jsonParseFailed);
}
}else{
errMessage = context.getString(R.string.no_internet_connection);
}
return result;
}
@Override
protected void onPostExecute(JsonResponseServer result) {
if (progressDialog.isShowing()){
try {
progressDialog.dismiss();
} catch (Exception e) {
FireCrash.log(e);
}
}
if (GlobalData.isRequireRelogin()) {
} else if (errMessage != null) {
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(fragmentActivity);
dialogBuilder.withTitle(fragmentActivity.getString(R.string.error_capital))
.withMessage(errMessage)
.show();
}
else if (result == null){
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(fragmentActivity);
dialogBuilder.withTitle(fragmentActivity.getString(R.string.info_capital))
.withMessage(messageEmpty)
.show();
}
else{
Bundle bundle = new Bundle();
bundle.putSerializable("resultJson",result);
Fragment fragment = new OrderAssignmentActivity();
fragment.setArguments(bundle);
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
}
}

View file

@ -0,0 +1,135 @@
package com.adins.mss.svy.assignment;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.view.View;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.R;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.dynamicform.JsonResponseSubmitTask;
import com.adins.mss.base.mainmenu.MainMenuActivity;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.svy.reassignment.JsonRequestSubmitAssign;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import java.lang.ref.WeakReference;
public class SubmitAssignTask extends AsyncTask<Void, Void, String> {
private ProgressDialog progressDialog;
private String errMessage = null;
private WeakReference<Activity> activity;
String uuid_task_h;
String assignId;
String flag;
String notes;
public SubmitAssignTask(Activity activity, String notes, String uuid_task_h, String assignId, String flag){
this.activity = new WeakReference<Activity>(activity);
this.uuid_task_h= uuid_task_h;
this.assignId= assignId;
this.flag= flag;
this.notes=notes;
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(activity.get(), "", activity.get().getString(R.string.progressWait), true);
}
@Override
protected String doInBackground(Void... params) {
String result = null;
if(Tool.isInternetconnected(activity.get())){
JsonRequestSubmitAssign request = new JsonRequestSubmitAssign();
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
request.setFlag(flag);
request.setUuidUserAssign(assignId);
request.setUuid_task_h(uuid_task_h);
request.setNotes(notes);
String json = GsonHelper.toJson(request);
String url = GlobalData.getSharedGlobalData().getURL_SUBMIT_ASSIGN();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(activity.get(), encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
errMessage=e.getMessage();
}
String resp = null;
resp = serverResult.getResult();
JsonResponseSubmitTask response ;
try {
response = GsonHelper.fromJson(resp, JsonResponseSubmitTask.class);
if(response.getStatus().getCode()==0){
result=response.getResult();
}else{
errMessage=response.getStatus().getMessage();
}
} catch (Exception e) {
FireCrash.log(e);
result=resp;
}
}else{
errMessage = activity.get().getString(R.string.no_internet_connection);
}
return result;
}
@Override
protected void onPostExecute(String result) {
if (progressDialog.isShowing()){
try {
progressDialog.dismiss();
} catch (Exception e) {
FireCrash.log(e);
}
}
if (errMessage != null) {
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(activity.get());
dialogBuilder.withTitle(activity.get().getString(R.string.error_capital))
.withMessage(errMessage)
.show();
}
else if (result.equals("Success")){
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(activity.get());
dialogBuilder.withTitle(activity.get().getString(R.string.success))
.withMessage(activity.get().getString(R.string.task_submitted))
.isCancelable(false)
.withButton1Text(activity.get().getString(R.string.btnOk))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View v) {
OrderAssignmentActivity.isChange=true;
activity.get().finish();
}
})
.show();
}
else{
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(activity.get());
dialogBuilder.withTitle(activity.get().getString(R.string.error_capital))
.withMessage(result)
.show();
}
}
}

View file

@ -0,0 +1,17 @@
package com.adins.mss.svy.common;
import android.app.AlertDialog;
import android.content.Context;
/**
* Created by Aditya Purwa on 3/4/2015.
*/
public class Dialogger {
public static void error(Context context, Exception ex, String extraReason) {
new AlertDialog.Builder(context)
.setTitle("Error")
.setMessage(ex.getMessage() + "\r\n" + extraReason)
.create()
.show();
}
}

View file

@ -0,0 +1,22 @@
package com.adins.mss.svy.common;
import android.content.Context;
import android.widget.Toast;
import com.adins.mss.svy.R;
/**
* Created by Aditya Purwa on 3/4/2015.
*/
public class Toaster {
public static void error(Context context, Exception ex, String extraReason) {
Toast.makeText(context, context.getString(R.string.error_occure2, ex.getMessage(), extraReason), Toast.LENGTH_LONG)
.show();
}
public static void error(Context context, String extraReason) {
Toast.makeText(context, context.getString(R.string.error_occure1, extraReason), Toast.LENGTH_LONG)
.show();
}
}

View file

@ -0,0 +1,492 @@
package com.adins.mss.svy.fragments;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.commons.TaskListener;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.timeline.TimelineManager;
import com.adins.mss.base.todolist.ToDoList;
import com.adins.mss.base.todolist.form.JsonResponseTaskList;
import com.adins.mss.base.todolist.form.TasklistListener;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.Scheme;
import com.adins.mss.dao.TaskH;
import com.adins.mss.dao.User;
import com.adins.mss.foundation.db.dataaccess.SchemeDataAccess;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.db.dataaccess.TimelineDataAccess;
import com.adins.mss.foundation.db.dataaccess.TimelineTypeDataAccess;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.foundation.http.MssRequestType;
import com.adins.mss.svy.R;
import com.adins.mss.svy.assignment.OrderAssignmentResult;
import com.adins.mss.svy.common.Toaster;
import com.adins.mss.svy.models.SurveyorSearchRequest;
import com.adins.mss.svy.models.SurveyorSearchResponse;
import com.adins.mss.svy.reassignment.JsonRequestCheckOrder;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import org.apache.http.NameValuePair;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* Created by olivia.dg on 1/30/2018.
*/
public class SurveyActivityImpl implements SurveyActivityInterface {
private static Context context;
private RefreshBackgroundTask refreshTask;
private ResultOrderTask resultOrderTask;
public SurveyActivityImpl(Context context) {
this.context = context;
}
@Override
public void executeSearch(final TaskListener listener, SurveyorSearchRequest request, final String date, final int year, final int month, final String startDate,
final String endDate, final int position) throws ParseException, IOException {
new AsyncTask<Void, Void, SurveyorSearchResponse>(){
final ProgressDialog progress = new ProgressDialog(context);
String errMessage;
@Override
protected void onPreExecute() {
super.onPreExecute();
progress.setMessage(context.getString(R.string.contact_server));
progress.show();
}
@Override
protected SurveyorSearchResponse doInBackground(Void... params) {
try {
SurveyorSearchRequest searchRequest = new SurveyorSearchRequest();
searchRequest.setAudit(GlobalData.getSharedGlobalData().getAuditData());
try {
if (position == 0) {
SimpleDateFormat f = new SimpleDateFormat(Global.DATE_STR_FORMAT);
Date date1 = f.parse(date);
searchRequest.setDate1(date1);
Date today = Tool.getSystemDate();
if(date1.after(today)) {
errMessage = context.getString(R.string.date_greater_than_today);
return null;
}
}
if (position == 2) {
SimpleDateFormat f = new SimpleDateFormat(Global.DATE_STR_FORMAT);
Date sDate, eDate;
long sLong = 0;
long eLong = 0;
try {
sDate = f.parse(startDate);
searchRequest.setDate1(sDate);
eDate = f.parse(endDate);
eDate.setHours(23);
eDate.setMinutes(59);
eDate.setSeconds(59);
searchRequest.setDate2(eDate);
sLong = sDate.getTime();
eLong = eDate.getTime();
} catch (ParseException e) {
errMessage = context.getString(R.string.enter_valid_date);
return null;
}
long milisecond = eLong - sLong;
if (milisecond > 604799000) {
errMessage = context.getString(R.string.data_range_not_allowed);
return null;
} else if (milisecond < 0) {
errMessage = context.getString(R.string.input_not_valid);
return null;
}
}
if (position == 1) {
if (month == 0 && year == 0){
errMessage = context.getString(R.string.enter_valid_date);
return null;
}
searchRequest.setMonth(String.valueOf(month + 1));
searchRequest.setYear(String.valueOf(year));
}
} catch (ParseException parseEx) {
errMessage = context.getString(R.string.enter_valid_date);
return null;
}
String json = GsonHelper.toJson(searchRequest);
String url = GlobalData.getSharedGlobalData().getURL_GET_SVYPERFORMANCE();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) { FireCrash.log(e);
e.printStackTrace();
}
SurveyorSearchResponse serverResponse = null;
if (serverResult != null && serverResult.isOK()) {
try {
String responseBody = serverResult.getResult();
serverResponse = GsonHelper.fromJson(responseBody, SurveyorSearchResponse.class);
} catch (Exception e) { FireCrash.log(e);
if(Global.IS_DEV) {
e.printStackTrace();
errMessage=e.getMessage();
}
}
} else {
errMessage = serverResult.getResult();
}
return serverResponse;
} catch (Exception e) { FireCrash.log(e);
errMessage = context.getString(R.string.jsonParseFailed);
return null;
}
}
@Override
protected void onPostExecute(SurveyorSearchResponse serverResponse) {
super.onPostExecute(serverResponse);
if(context != null) {
if (progress != null && progress.isShowing()) {
progress.dismiss();
}
if (GlobalData.isRequireRelogin()) {
} else if (errMessage != null) {
Toaster.error(context, errMessage);
} else if (serverResponse != null && serverResponse.getListKeyValue() != null) {
// layout.setVisibility(View.VISIBLE);
// SurveyPerformanceFragment.this.getActivity().runOnUiThread(new Runnable() {
// @Override
// public void run() {
// listResult.setAdapter(new SearchResultListAdapter(getActivity(), serverResponse.getListKeyValue()));
// }
// });
listener.onCompleteTask(serverResponse);
}
}
}
}.execute();
}
@Override
public void getBackgroundTask(TasklistListener listener, boolean isVerification, boolean isBranch) {
refreshTask = new RefreshBackgroundTask(listener, isVerification, isBranch);
refreshTask.execute();
}
@SuppressLint({"NewApi"})
private class RefreshBackgroundTask extends AsyncTask<Void, Void, List<TaskH>> {
static final int TASK_DURATION = 2000;
String errMessage;
boolean isVerification = false;
boolean isBranch = false;
private TasklistListener listener;
private RefreshBackgroundTask(TasklistListener listener, boolean isVerification, boolean isBranch) {
this.listener = listener;
this.isVerification = isVerification;
this.isBranch = isBranch;
}
protected List<TaskH> doInBackground(Void... params) {
List<TaskH> result = null;
User user = GlobalData.getSharedGlobalData().getUser();
if (Tool.isInternetconnected(context)) {
MssRequestType requestType = new MssRequestType();
requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
requestType.addImeiAndroidIdToUnstructured();
String json = GsonHelper.toJson(requestType);
String url;
if (isVerification)
url = GlobalData.getSharedGlobalData().getURL_GET_LIST_VERIFICATION();
else
url = GlobalData.getSharedGlobalData().getURL_GET_LIST_APPROVAL();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
if (isVerification) {
if (isBranch)
result = TaskHDataAccess.getAllVerifiedForBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
else
result = TaskHDataAccess.getAllVerifiedForUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
} else {
if (isBranch)
result = TaskHDataAccess.getAllApprovalForBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
else
result = TaskHDataAccess.getAllApprovalForUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
}
if (result != null && result.size() > 0)
serverResult = httpConn.requestToServer(url, json, Global.SORTCONNECTIONTIMEOUT);
else
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
errMessage = context.getString(R.string.jsonParseFailed);
}
String stringResult = serverResult.getResult();
try {
JsonResponseTaskList taskList = GsonHelper.fromJson(stringResult, JsonResponseTaskList.class);
if (taskList.getStatus().getCode() == 0) {
List<TaskH> listTaskH = taskList.getListTaskList();
if (listTaskH != null && listTaskH.size() > 0) {
String uuid_timelineType;
if (isVerification) {
uuid_timelineType = TimelineTypeDataAccess.getTimelineTypebyType(context, Global.TIMELINE_TYPE_VERIFICATION).getUuid_timeline_type();
} else {
uuid_timelineType = TimelineTypeDataAccess.getTimelineTypebyType(context, Global.TIMELINE_TYPE_APPROVAL).getUuid_timeline_type();
}
for (TaskH taskHLocal : result) {
boolean wasDeleted = true;
for (TaskH taskH : listTaskH) {
if (taskH.getUuid_task_h().equals(taskHLocal.getUuid_task_h()))
wasDeleted = false;
}
if (wasDeleted) {
TaskHDataAccess.delete(context, taskHLocal);
}
}
for (TaskH taskH : listTaskH) {
taskH.setUser(user);
taskH.setIs_verification(Global.TRUE_STRING);
String uuid_scheme = taskH.getUuid_scheme();
Scheme scheme = SchemeDataAccess.getOne(context, uuid_scheme);
if (scheme != null) {
taskH.setScheme(scheme);
TaskH h = TaskHDataAccess.getOneHeader(context, taskH.getUuid_task_h());
boolean wasInTimeline = TimelineDataAccess.getOneTimelineByTaskH(context, user.getUuid_user(), taskH.getUuid_task_h(), uuid_timelineType) != null;
if (h != null && h.getStatus() != null) {
if (!ToDoList.isOldTask(h)) {
TaskHDataAccess.addOrReplace(context, taskH);
if (!wasInTimeline)
TimelineManager.insertTimeline(context, taskH);
}
} else {
TaskHDataAccess.addOrReplace(context, taskH);
if (!wasInTimeline)
TimelineManager.insertTimeline(context, taskH);
}
} else {
errMessage = context.getString(com.adins.mss.base.R.string.scheme_not_found);
}
}
} else {
errMessage = context.getString(R.string.no_data_from_server);
}
} else {
errMessage = stringResult;
}
} catch (Exception e) {
FireCrash.log(e);
errMessage = context.getString(R.string.jsonParseFailed);
}
} else {
errMessage = context.getString(R.string.no_internet_connection);
}
return result;
}
protected void onPostExecute(List<TaskH> result) {
super.onPostExecute(result);
if (GlobalData.isRequireRelogin()) {
} else if (errMessage != null && !errMessage.equals("")) {
NiftyDialogBuilder builder = NiftyDialogBuilder.getInstance(context);
builder.withTitle("INFO")
.withMessage(errMessage)
.show();
}
listener.onRefreshBackgroundComplete(result);
}
}
public void gotoDetailData(int taskType, String nomorOrder, String uuid_task_h, String formName){
Intent intent = null;
switch (taskType) {
case Global.TASK_ORDER_ASSIGNMENT:
// intent = new Intent(this, OrderAssignmentActivity.class);
break;
case Global.TASK_ORDER_REASSIGNMENT:
intent = new Intent(context, OrderAssignmentResult.class);
intent.putExtra(Global.BUND_KEY_ORDERNO, nomorOrder);
intent.putExtra(Global.BUND_KEY_FORM_NAME, formName);
break;
default:
// intent = new Intent(this, OrderAssignmentActivity.class);
break;
}
intent.putExtra(Global.BUND_KEY_TASK_TYPE, taskType);
intent.putExtra(Global.BUND_KEY_ORDERNO, nomorOrder);
intent.putExtra(Global.BUND_KEY_UUID_TASKH, uuid_task_h);
context.startActivity(intent);
}
public void getResultTask(TaskListener listener, List<NameValuePair> param) {
resultOrderTask = new ResultOrderTask(listener, param);
resultOrderTask.execute();
}
public String getDataFromURL(String url, List<NameValuePair> param) throws IOException {
String resp = null;
try {
JsonRequestCheckOrder requestCheckOrder = new JsonRequestCheckOrder();
requestCheckOrder.setAudit(GlobalData.getSharedGlobalData().getAuditData());
if(param.get(3).getValue().equals(Global.FLAG_BY_DATE)){
requestCheckOrder.setStartDate(param.get(0).getValue());
requestCheckOrder.setEndDate(param.get(1).getValue());
}
else if(param.get(3).getValue().equals(Global.FLAG_BY_ORDERNUMBER)){
requestCheckOrder.setOrderNumber(param.get(2).getValue());
}
else if(param.get(3).getValue().equals(Global.FLAG_FOR_CANCELORDER)){
if(param.get(2).getValue().equals("1")){
requestCheckOrder.setStartDate(param.get(0).getValue());
requestCheckOrder.setEndDate(param.get(1).getValue());
}else{
requestCheckOrder.setOrderNumber(param.get(2).getValue());
}
}
else if(param.get(3).getValue().equals(Global.FLAG_FOR_ORDERREASSIGNMENT)){
if(param.get(2).getValue().equals("1")){
requestCheckOrder.setStartDate(param.get(0).getValue());
requestCheckOrder.setEndDate(param.get(1).getValue());
}else{
requestCheckOrder.setOrderNumber(param.get(2).getValue());
}
requestCheckOrder.setFlag(param.get(3).getValue());
}
String json = GsonHelper.toJson(requestCheckOrder);
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
resp = serverResult.getResult();
} catch (Exception e) {
FireCrash.log(e);
resp = e.getMessage();
}
return resp;
}
private class ResultOrderTask extends AsyncTask<String, Void, String> {
private ProgressDialog progressDialog;
private String errMessage;
private TaskListener listener;
private List<NameValuePair> param;
private ResultOrderTask(TaskListener listener, List<NameValuePair> param) {
this.listener = listener;
this.param = param;
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(context, "", context.getString(R.string.progressWait), true);
}
@Override
protected String doInBackground(String... arg0) {
String result = null;
if(Tool.isInternetconnected(context)){
try {
result = getDataFromURL(GlobalData.getSharedGlobalData().getURL_CHECKORDER(), param);
} catch (IOException ioe) {
ioe.printStackTrace();
try {
progressDialog.dismiss();
} catch (Exception e) { FireCrash.log(e);}
errMessage = ioe.getMessage();
}
} else {
result = context.getString(R.string.no_internet_connection);
}
return result;
}
@Override
protected void onPostExecute(String result) {
if (progressDialog!=null&&progressDialog.isShowing()){
try {
progressDialog.dismiss();
} catch (Exception e) { FireCrash.log(e);
}
}
if (context.getString(R.string.no_internet_connection).equals(result)) {
NiftyDialogBuilder builder = NiftyDialogBuilder.getInstance(context);
builder.withTitle("INFO")
.withMessage(context.getString(R.string.no_internet_connection))
.show();
}else{
listener.onCompleteTask(result);
}
}
}
}

View file

@ -0,0 +1,23 @@
package com.adins.mss.svy.fragments;
import com.adins.mss.base.commons.TaskListener;
import com.adins.mss.base.todolist.form.TasklistListener;
import com.adins.mss.svy.models.SurveyorSearchRequest;
import org.apache.http.NameValuePair;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
/**
* Created by olivia.dg on 1/30/2018.
*/
public interface SurveyActivityInterface {
public void executeSearch(final TaskListener listener, SurveyorSearchRequest request, final String date, final int year, final int month, final String startDate,
final String endDate, final int position) throws ParseException, IOException;
public void getBackgroundTask(TasklistListener listener, boolean isVerification, boolean isBranch);
public void gotoDetailData(int taskType, String nomorOrder, String uuid_task_h, String formName);
public void getResultTask(TaskListener listener, List<NameValuePair> param);
}

View file

@ -0,0 +1,377 @@
package com.adins.mss.svy.fragments;
import android.content.Context;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.text.format.DateFormat;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.dynamicform.CustomerFragment;
import com.adins.mss.base.dynamicform.SurveyHeaderBean;
import com.adins.mss.base.tasklog.SurveyTaskAdapter;
import com.adins.mss.base.todolist.form.OnTaskListClickListener;
import com.adins.mss.base.todolist.form.TasklistListener;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.TaskH;
import com.adins.mss.dummy.userhelp_dummy.Adapter.NewTaskLogDummyAdapter;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.svy.R;
import com.adins.mss.svy.UserHelpSVYDummy;
import com.adins.mss.svy.tool.Constants;
import org.acra.ACRA;
import java.util.Calendar;
import java.util.List;
public class SurveyApprovalByBranchFragment extends Fragment implements OnTaskListClickListener, TasklistListener {
public static TaskH selectedApproval;
private static Menu mainMenu;
private List<TaskH> objects;
private SurveyTaskAdapter adapter;
// private GridView gridView;
private RecyclerView recyclerView;
private Context context;
private SwipeRefreshLayout mSwipeRefreshLayout;
private String errMessage = null;
private SurveyActivityInterface iSurveyActivity;
private LinearLayoutManager layoutManager;
private boolean showDummy = true;
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
this.context = activity;
iSurveyActivity = new SurveyActivityImpl(context);
setHasOptionsMenu(true);
try {
objects = Constants.listOfApprovalTask;
if (objects == null || objects.size() == 0) {
objects = TaskHDataAccess.getAllApprovalForBranch(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
Constants.listOfApprovalTask = objects;
}
adapter = new SurveyTaskAdapter(activity, objects, SurveyApprovalByBranchFragment.this);
try {
// MSMainMenuActivity.mnSVYApprovalByBranch.setCounter(String.valueOf(Constants.getCounterApprovalTaskByBranch(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.new_fragment_survey_verification, container, false);
this.mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipeRefreshLayout);
this.mSwipeRefreshLayout.setColorSchemeColors(getResources().getColor(com.adins.mss.base.R.color.tv_light),
getResources().getColor(com.adins.mss.base.R.color.tv_normal),
getResources().getColor(com.adins.mss.base.R.color.tv_dark),
getResources().getColor(com.adins.mss.base.R.color.tv_darker));
this.mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
public void onRefresh() {
SurveyApprovalByBranchFragment.this.initiateRefresh();
}
});
// getActivity().getActionBar().setTitle(getString(com.adins.mss.svy.R.string.title_mn_approval_bybranch));
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_approval_bybranch));
recyclerView = (RecyclerView) view.findViewById(R.id.list);
layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.getRecycledViewPool().setMaxRecycledViews(1, 500);
recyclerView.setAdapter(adapter);
if(Global.ENABLE_USER_HELP &&
showDummy &&
Global.userHelpDummyGuide.get(SurveyApprovalByBranchFragment.this.getClass().getSimpleName()) != null &&
Global.userHelpDummyGuide.get(SurveyApprovalByBranchFragment.this.getClass().getSimpleName()).size()>0) {
NewTaskLogDummyAdapter dummyAdapter = new NewTaskLogDummyAdapter();
recyclerView.setAdapter(dummyAdapter);
UserHelpSVYDummy userHelpSVYDummy = new UserHelpSVYDummy();
userHelpSVYDummy.showDummyVerif(SurveyApprovalByBranchFragment.this.getActivity(),SurveyApprovalByBranchFragment.this.getClass().getSimpleName(), recyclerView,adapter);
showDummy = false;
}
// initiateRefresh();
return view;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.mnGuide){
if(!Global.BACKPRESS_RESTRICTION) {
NewTaskLogDummyAdapter dummyAdapter = new NewTaskLogDummyAdapter();
recyclerView.setAdapter(dummyAdapter);
UserHelpSVYDummy userHelpSVYDummy = new UserHelpSVYDummy();
userHelpSVYDummy.showDummyVerif(SurveyApprovalByBranchFragment.this.getActivity(), SurveyApprovalByBranchFragment.this.getClass().getSimpleName(), recyclerView, adapter);
showDummy = false;
}
}
return super.onOptionsItemSelected(item);
}
private void initiateRefresh() {
// RefreshBackgroundTask task = new RefreshBackgroundTask();
// task.execute();
iSurveyActivity.getBackgroundTask(SurveyApprovalByBranchFragment.this, false, true);
}
private void onRefreshComplete(List<TaskH> result) {
this.mSwipeRefreshLayout.setRefreshing(false);
NiftyDialogBuilder fragment;
objects = result;
// if (this.errMessage != null) {
// fragment = NiftyDialogBuilder.getInstance(this.context);
// fragment.withTitle(context.getString(com.adins.mss.base.R.string.error_capital)).withMessage(this.errMessage).show();
// } else
if (result != null && result.size() != 0) {
try {
//if(objects==null || objects.size()==0){
Constants.listOfApprovalTask = objects;
adapter = new SurveyTaskAdapter(getActivity(), objects, SurveyApprovalByBranchFragment.this);
recyclerView.setAdapter(adapter);
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
}
// else {
// Constants.listOfApprovalTask = objects;
// adapter = new TaskLogArrayAdapter(getActivity(), objects, false);
// listView.setAdapter(adapter);
// //MainMenuActivity.mnSVYApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(context)));
// fragment = NiftyDialogBuilder.getInstance(this.context);
// fragment.withTitle(context.getString(com.adins.mss.base.R.string.info_capital)).withMessage(getString(com.adins.mss.base.R.string.msgNoApproval)).show();
// }
try {
// MSMainMenuActivity.mnSVYApprovalByBranch.setCounter(String.valueOf(Constants.getCounterApprovalTaskByBranch(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
}
@Override
public void onDestroy() {
super.onDestroy();
adapter = null;
Constants.listOfApprovalTask = null;
}
@Override
public void onResume() {
super.onResume();
// getActivity().getActionBar().removeAllTabs();
// getActivity().getActionBar().setTitle(getString(com.adins.mss.svy.R.string.title_mn_approval_bybranch));
// getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_approval_bybranch));
try {
// MSMainMenuActivity.mnSVYApprovalByBranch.setCounter(String.valueOf(Constants.getCounterApprovalTaskByBranch(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
// if(objects!=null && objects.size()>0){
objects = TaskHDataAccess.getAllApprovalForBranch(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
Constants.listOfApprovalTask = objects;
// }
}
@Override
public void onItemClickListener(TaskH item, int position) {
selectedApproval = item;
SurveyHeaderBean header = new SurveyHeaderBean(selectedApproval);
// TODO Action Lempar ke Customer ACtivity
Bundle bundle = new Bundle();
bundle.putSerializable(CustomerFragment.SURVEY_HEADER, header);
bundle.putInt(CustomerFragment.SURVEY_MODE, Global.MODE_VIEW_SENT_SURVEY);
Fragment fragment = com.adins.mss.base.dynamicform.CustomerFragment.create(header);
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
public void onItemLongClickListener(TaskH item, int position) {
}
@Override
public void onRefreshBackgroundCancelled(boolean value) {
}
@Override
public void onRefreshBackgroundComplete(List<TaskH> result) {
onRefreshComplete(result);
}
// @SuppressLint({"NewApi"})
// private class RefreshBackgroundTask extends AsyncTask<Void, Void, List<TaskH>> {
// static final int TASK_DURATION = 2000;
//
// private RefreshBackgroundTask() {
// }
//
// protected List<TaskH> doInBackground(Void... params) {
// List<TaskH> result = null;
// User user = GlobalData.getSharedGlobalData().getUser();
//
// if (Tool.isInternetconnected(context)) {
// MssRequestType requestType = new MssRequestType();
// requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
// requestType.addImeiAndroidIdToUnstructured();
//
// String json = GsonHelper.toJson(requestType);
// String url = GlobalData.getSharedGlobalData().getURL_GET_LIST_APPROVAL();
// boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
// boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
// HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
// HttpConnectionResult serverResult = null;
// try {
// result = TaskHDataAccess.getAllApprovalForBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
// if (result != null && result.size() > 0)
// serverResult = httpConn.requestToServer(url, json, Global.SORTCONNECTIONTIMEOUT);
// else
// serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
// } catch (Exception e) { FireCrash.log(e);
// e.printStackTrace();
// errMessage = e.getMessage();
// }
//
// String stringResult = serverResult.getResult();
//
// try {
// JsonResponseTaskList taskList = GsonHelper.fromJson(stringResult, JsonResponseTaskList.class);
// if (taskList.getStatus().getCode() == 0) {
// List<TaskH> listTaskH = taskList.getListTaskList();
// if (listTaskH != null && listTaskH.size() > 0) {
// String uuid_timelineType = TimelineTypeDataAccess.getTimelineTypebyType(getActivity(), Global.TIMELINE_TYPE_APPROVAL).getUuid_timeline_type();
// for (TaskH taskHLocal : result) {
// boolean wasDeleted = true;
// for (TaskH taskH : listTaskH) {
// if (taskH.getUuid_task_h().equals(taskHLocal.getUuid_task_h()))
// wasDeleted = false;
// }
// if (wasDeleted) {
// TaskHDataAccess.delete(getActivity(), taskHLocal);
// /*Timeline timeline = TimelineDataAccess.getOneTimelineByTaskH(getActivity(), user.getUuid_user(), taskHLocal.getUuid_task_h(), uuid_timelineType);
// if(timeline != null)
// TimelineDataAccess.delete(getActivity(), timeline);*/
// }
// }
//
// for (TaskH taskH : listTaskH) {
// taskH.setUser(user);
// taskH.setIs_verification(Global.TRUE_STRING);
//
// String uuid_scheme = taskH.getUuid_scheme();
// Scheme scheme = SchemeDataAccess.getOne(getActivity(), uuid_scheme);
// if (scheme != null) {
// taskH.setScheme(scheme);
//
// TaskH h = TaskHDataAccess.getOneHeader(getActivity(), taskH.getUuid_task_h());
// boolean wasInTimeline = TimelineDataAccess.getOneTimelineByTaskH(getActivity(), user.getUuid_user(), taskH.getUuid_task_h(), uuid_timelineType) != null;
// if (h != null && h.getStatus() != null) {
// if (!ToDoList.isOldTask(h)) {
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
// if (!wasInTimeline)
// TimelineManager.insertTimeline(getActivity(), taskH);
// }
// } else {
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
// if (!wasInTimeline)
// TimelineManager.insertTimeline(getActivity(), taskH);
// }
// } else {
// errMessage = context.getString(com.adins.mss.base.R.string.scheme_not_found);
// }
// }
// }
// } else {
// errMessage = stringResult;
// }
// } catch (Exception e) { FireCrash.log(e);
// errMessage = e.getMessage();
// }
// }
// try {
// if (context != null) {
// result = TaskHDataAccess.getAllApprovalForBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
// } else if (getActivity() != null) {
// result = TaskHDataAccess.getAllApprovalForBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
// } else {
// result = TaskHDataAccess.getAllApprovalForBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
// }
// } catch (Exception var6) {
// var6.printStackTrace();
// errMessage = var6.getMessage();
// }
//
// return result;
// }
//
// protected void onPostExecute(List<TaskH> result) {
// super.onPostExecute(result);
// SurveyApprovalByBranchFragment.this.onRefreshComplete(result);
// }
// }
}

View file

@ -0,0 +1,387 @@
package com.adins.mss.svy.fragments;
import android.content.Context;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.text.format.DateFormat;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.dynamicform.CustomerFragment;
import com.adins.mss.base.dynamicform.SurveyHeaderBean;
import com.adins.mss.base.tasklog.SurveyTaskAdapter;
import com.adins.mss.base.todolist.form.OnTaskListClickListener;
import com.adins.mss.base.todolist.form.TasklistListener;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.TaskH;
import com.adins.mss.dummy.userhelp_dummy.Adapter.NewTaskLogDummyAdapter;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.svy.R;
import com.adins.mss.svy.UserHelpSVYDummy;
import com.adins.mss.svy.tool.Constants;
import com.google.firebase.analytics.FirebaseAnalytics;
import org.acra.ACRA;
import java.util.Calendar;
import java.util.List;
public class SurveyApprovalFragment extends Fragment implements OnTaskListClickListener, TasklistListener {
public static TaskH selectedApproval;
private static Menu mainMenu;
private List<TaskH> objects;
private SurveyTaskAdapter adapter;
// private GridView gridView;
private RecyclerView recyclerView;
private Context context;
private SwipeRefreshLayout mSwipeRefreshLayout;
private String errMessage = null;
private SurveyActivityInterface iSurveyActivity;
private LinearLayoutManager layoutManager;
private boolean showDummy = true;
private FirebaseAnalytics screenName;
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
this.context = activity;
iSurveyActivity = new SurveyActivityImpl(activity);
setHasOptionsMenu(true);
try {
objects = Constants.listOfApprovalTask;
if (objects == null || objects.size() == 0) {
objects = TaskHDataAccess.getAllApprovalForUser(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
Constants.listOfApprovalTask = objects;
}
try {
// MSMainMenuActivity.mnSVYApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
screenName = FirebaseAnalytics.getInstance(getActivity());
View view = inflater.inflate(R.layout.new_fragment_survey_verification, container, false);
this.mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipeRefreshLayout);
this.mSwipeRefreshLayout.setColorSchemeColors(getResources().getColor(com.adins.mss.base.R.color.tv_light),
getResources().getColor(com.adins.mss.base.R.color.tv_normal),
getResources().getColor(com.adins.mss.base.R.color.tv_dark),
getResources().getColor(com.adins.mss.base.R.color.tv_darker));
this.mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
public void onRefresh() {
SurveyApprovalFragment.this.initiateRefresh();
}
});
// getActivity().getActionBar().setTitle(getString(com.adins.mss.svy.R.string.title_mn_surveyapproval));
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_surveyapproval));
recyclerView = (RecyclerView) view.findViewById(R.id.list);
layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.getRecycledViewPool().setMaxRecycledViews(1, 500);
// initiateRefresh();
adapter = new SurveyTaskAdapter(getActivity(), objects, SurveyApprovalFragment.this);
recyclerView.setAdapter(adapter);
if(Global.ENABLE_USER_HELP &&
showDummy &&
Global.userHelpDummyGuide.get(SurveyApprovalFragment.this.getClass().getSimpleName()) != null &&
Global.userHelpDummyGuide.get(SurveyApprovalFragment.this.getClass().getSimpleName()).size()>0) {
NewTaskLogDummyAdapter dummyAdapter = new NewTaskLogDummyAdapter();
recyclerView.setAdapter(dummyAdapter);
UserHelpSVYDummy userHelpSVYDummy = new UserHelpSVYDummy();
userHelpSVYDummy.showDummyVerif(SurveyApprovalFragment.this.getActivity(),SurveyApprovalFragment.this.getClass().getSimpleName(), recyclerView,adapter);
showDummy = false;
}
return view;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.mnGuide){
if(!Global.BACKPRESS_RESTRICTION) {
if(!Global.BACKPRESS_RESTRICTION) {
NewTaskLogDummyAdapter dummyAdapter = new NewTaskLogDummyAdapter();
recyclerView.setAdapter(dummyAdapter);
UserHelpSVYDummy userHelpSVYDummy = new UserHelpSVYDummy();
userHelpSVYDummy.showDummyVerif(SurveyApprovalFragment.this.getActivity(), SurveyApprovalFragment.this.getClass().getSimpleName(), recyclerView, adapter);
showDummy = false;
}
}
}
return super.onOptionsItemSelected(item);
}
private void initiateRefresh() {
// RefreshBackgroundTask task = new RefreshBackgroundTask();
// task.execute();
iSurveyActivity.getBackgroundTask(SurveyApprovalFragment.this, false, false);
}
private void onRefreshComplete(List<TaskH> result) {
this.mSwipeRefreshLayout.setRefreshing(false);
NiftyDialogBuilder fragment;
objects = result;
try {
// MSMainMenuActivity.mnSVYApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
// if (this.errMessage != null) {
// fragment = NiftyDialogBuilder.getInstance(this.context);
// fragment.withTitle(context.getString(com.adins.mss.base.R.string.error_capital)).withMessage(this.errMessage).show();
// } else
if (result != null && result.size() != 0) {
try {
if(objects==null || objects.size()==0){
Constants.listOfApprovalTask = objects;
adapter = new SurveyTaskAdapter(getActivity(), objects, SurveyApprovalFragment.this);
recyclerView.setAdapter(adapter);
// MSMainMenuActivity.mnSVYApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(getActivity())));
// MSMainMenuActivity.menuAdapter.notifyDataSetChanged();
}
} catch (Exception e) {
FireCrash.log(e);
e.getMessage();
}
}
// else {
// Constants.listOfApprovalTask = objects;
// adapter = new TaskLogArrayAdapter(getActivity(), objects, false);
// listView.setAdapter(adapter);
// //MainMenuActivity.mnSVYApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(context)));
// fragment = NiftyDialogBuilder.getInstance(this.context);
// fragment.withTitle(context.getString(com.adins.mss.base.R.string.info_capital)).withMessage(getString(com.adins.mss.base.R.string.msgNoApproval)).show();
// }
}
@Override
public void onDestroy() {
super.onDestroy();
adapter = null;
Constants.listOfApprovalTask = null;
}
@Override
public void onResume() {
super.onResume();
// getActivity().getActionBar().removeAllTabs();
// getActivity().getActionBar().setTitle(getString(com.adins.mss.svy.R.string.title_mn_surveyapproval));
// getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
//Set Firebase screen name
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_survey_approval), null);
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_surveyapproval));
try {
// MSMainMenuActivity.mnSVYApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
// if(objects!=null && objects.size()>0){
objects = TaskHDataAccess.getAllApprovalForUser(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
Constants.listOfApprovalTask = objects;
// }
}
@Override
public void onItemClickListener(TaskH item, int position) {
selectedApproval = item;
SurveyHeaderBean header = new SurveyHeaderBean(selectedApproval);
// TODO Action Lempar ke Customer ACtivity
Bundle bundle = new Bundle();
bundle.putSerializable(CustomerFragment.SURVEY_HEADER, header);
bundle.putInt(CustomerFragment.SURVEY_MODE, Global.MODE_VIEW_SENT_SURVEY);
Fragment fragment = com.adins.mss.base.dynamicform.CustomerFragment.create(header);
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
public void onItemLongClickListener(TaskH item, int position) {
}
@Override
public void onRefreshBackgroundCancelled(boolean value) {
}
@Override
public void onRefreshBackgroundComplete(List<TaskH> result) {
onRefreshComplete(result);
}
// @SuppressLint({"NewApi"})
// private class RefreshBackgroundTask extends AsyncTask<Void, Void, List<TaskH>> {
// static final int TASK_DURATION = 2000;
//
// private RefreshBackgroundTask() {
// }
//
// protected List<TaskH> doInBackground(Void... params) {
// List<TaskH> result = null;
// User user = GlobalData.getSharedGlobalData().getUser();
//
// if (Tool.isInternetconnected(context)) {
// MssRequestType requestType = new MssRequestType();
// requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
// requestType.addImeiAndroidIdToUnstructured();
//
// String json = GsonHelper.toJson(requestType);
// String url = GlobalData.getSharedGlobalData().getURL_GET_LIST_APPROVAL();
// boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
// boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
// HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
// HttpConnectionResult serverResult = null;
// try {
// result = TaskHDataAccess.getAllApprovalForUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
// if (result != null && result.size() > 0)
// serverResult = httpConn.requestToServer(url, json, Global.SORTCONNECTIONTIMEOUT);
// else
// serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
// } catch (Exception e) { FireCrash.log(e);
// e.printStackTrace();
// errMessage = e.getMessage();
// }
//
// String stringResult = serverResult.getResult();
//
// try {
// JsonResponseTaskList taskList = GsonHelper.fromJson(stringResult, JsonResponseTaskList.class);
// if (taskList.getStatus().getCode() == 0) {
// List<TaskH> listTaskH = taskList.getListTaskList();
// if (listTaskH != null && listTaskH.size() > 0) {
// String uuid_timelineType = TimelineTypeDataAccess.getTimelineTypebyType(getActivity(), Global.TIMELINE_TYPE_APPROVAL).getUuid_timeline_type();
// for (TaskH taskHLocal : result) {
// boolean wasDeleted = true;
// for (TaskH taskH : listTaskH) {
// if (taskH.getUuid_task_h().equals(taskHLocal.getUuid_task_h()))
// wasDeleted = false;
// }
// if (wasDeleted) {
// TaskHDataAccess.delete(getActivity(), taskHLocal);
// /*Timeline timeline = TimelineDataAccess.getOneTimelineByTaskH(getActivity(), user.getUuid_user(), taskHLocal.getUuid_task_h(), uuid_timelineType);
// if(timeline != null)
// TimelineDataAccess.delete(getActivity(), timeline);*/
// }
// }
//
// for (TaskH taskH : listTaskH) {
// taskH.setUser(user);
// taskH.setIs_verification(Global.TRUE_STRING);
//
// String uuid_scheme = taskH.getUuid_scheme();
// Scheme scheme = SchemeDataAccess.getOne(getActivity(), uuid_scheme);
// if (scheme != null) {
// taskH.setScheme(scheme);
//
// TaskH h = TaskHDataAccess.getOneHeader(getActivity(), taskH.getUuid_task_h());
// boolean wasInTimeline = TimelineDataAccess.getOneTimelineByTaskH(getActivity(), user.getUuid_user(), taskH.getUuid_task_h(), uuid_timelineType) != null;
// if (h != null && h.getStatus() != null) {
// if (!ToDoList.isOldTask(h)) {
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
// if (!wasInTimeline)
// TimelineManager.insertTimeline(getActivity(), taskH);
// }
// } else {
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
// if (!wasInTimeline)
// TimelineManager.insertTimeline(getActivity(), taskH);
// }
// } else {
// errMessage = context.getString(com.adins.mss.base.R.string.scheme_not_found);
// }
// }
// }
// } else {
// errMessage = stringResult;
// }
// } catch (Exception e) { FireCrash.log(e);
// errMessage = e.getMessage();
// }
// }
// try {
//// if (context != null) {
//// result = TaskHDataAccess.getAllApprovalForUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
//// } else if (getActivity() != null) {
//// result = TaskHDataAccess.getAllApprovalForUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
//// } else {
//// result = TaskHDataAccess.getAllApprovalForUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
//// }
// } catch (Exception var6) {
// var6.printStackTrace();
// errMessage = var6.getMessage();
// }
//
// return result;
// }
//
// protected void onPostExecute(List<TaskH> result) {
// super.onPostExecute(result);
// SurveyApprovalFragment.this.onRefreshComplete(result);
// }
// }
}

View file

@ -0,0 +1,467 @@
package com.adins.mss.svy.fragments;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.Handler;
import androidx.fragment.app.Fragment;
import androidx.appcompat.widget.AppCompatSpinner;
import androidx.cardview.widget.CardView;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import com.adins.mss.base.commons.TaskListener;
import com.adins.mss.base.util.Utility;
import com.adins.mss.foundation.UserHelp.UserHelp;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.KeyValue;
import com.adins.mss.svy.R;
import com.adins.mss.svy.models.SurveyorSearchRequest;
import com.adins.mss.svy.models.SurveyorSearchResponse;
import com.google.firebase.analytics.FirebaseAnalytics;
import java.io.IOException;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
class DateClickListener implements View.OnClickListener {
private final EditText mTarget;
private final Context mContext;
public DateClickListener(Context context, EditText target) {
mContext = context;
mTarget = target;
}
@Override
public void onClick(View v) {
Calendar cal = Calendar.getInstance();
DatePickerDialog dialog = new DatePickerDialog(mContext, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
mTarget.setText(dayOfMonth + "/" +Tool.appendZeroForDateTime(monthOfYear, true) + "/" + year);
}
}, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
dialog.show();
}
}
/**
* Created by Aditya Purwa on 1/27/2015.
*/
public class SurveyPerformanceFragment extends Fragment {
ImageButton buttonSelectDate;
EditText editDate;
AppCompatSpinner spinnerCategory;
private EditText editStartDate;
private EditText editEndDate;
private EditText editMonthYear;
private ImageButton buttonSelectStartDate;
private ImageButton buttonSelectEndDate;
private Button buttonSearch;
private int activeSearchMode;
private ListView listResult;
private String[] cbSearchBy;
private CardView layout;
private SurveyActivityInterface iSurveyActivity;
private ImageButton butonMonthYear;
private Calendar calendar;
private int bulan;
private int tahun;
private FirebaseAnalytics screenName;
@Override
public void onAttach(Context context) {
super.onAttach(context);
iSurveyActivity = new SurveyActivityImpl(getContext());
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
screenName = FirebaseAnalytics.getInstance(getActivity());
return inflater.inflate(R.layout.new_fragment_survey_performance, container, false);
}
@Override
public void onDestroyView() {
super.onDestroyView();
layout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
layout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
Utility.freeMemory();
}
@Override
public void onResume(){
super.onResume();
//Set Firebase screen name
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_survey_performance), null);
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_surveyperformance));
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Init
calendar = Calendar.getInstance();
bulan = 0; // Antisipasi null
tahun = 0; // Antisipasi null
listResult = (ListView) view.findViewById(R.id.resultListView);
layout = (CardView) view.findViewById(R.id.resultLayout);
buttonSelectDate = (ImageButton) view.findViewById(R.id.btnDate);
buttonSelectStartDate = (ImageButton) view.findViewById(R.id.btnStartDate);
buttonSelectEndDate = (ImageButton) view.findViewById(R.id.btnEndDate);
buttonSearch = (Button) view.findViewById(R.id.btnSearchOrder);
butonMonthYear = view.findViewById(R.id.btnMonthYear);
editDate = (EditText) view.findViewById(R.id.txtDateDay);
editStartDate = (EditText) view.findViewById(R.id.txtStartDate);
editEndDate = (EditText) view.findViewById(R.id.txtEndDate);
editMonthYear = view.findViewById(R.id.txtDateAndYear);
spinnerCategory = (AppCompatSpinner) view.findViewById(R.id.cbSearchBy);
cbSearchBy = this.getResources().getStringArray(R.array.cbSearchBy);
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getActivity(), R.layout.spinner_search_layout, R.id.text_spin, getResources().getStringArray(R.array.cbSearchBy));
adapter.setDropDownViewResource(R.layout.spinner_style);
spinnerCategory.setAdapter(adapter);
spinnerCategory.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
invalidateForm(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
//Nothing selected
}
});
// Inisiasi awal
final String[] months = getActivity().getResources().getStringArray(R.array.cbSearchByMonth);
final DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), AlertDialog.THEME_HOLO_LIGHT,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
bulan = month;
tahun = year;
String data = months[month] + "-" + String.valueOf(year);
editMonthYear.setText(data);
}
}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.getDatePicker().findViewById(Resources.getSystem().getIdentifier("day", "id", "android")).setVisibility(View.GONE);
Calendar minMonthYear = Calendar.getInstance();
minMonthYear.set(calendar.get(Calendar.YEAR)-2, 0, 1);
datePickerDialog.getDatePicker().setMaxDate(new Date().getTime());
datePickerDialog.getDatePicker().setMinDate(minMonthYear.getTimeInMillis());
buttonSelectDate.setOnClickListener(new DateClickListener(getActivity(), editDate));
buttonSelectStartDate.setOnClickListener(new DateClickListener(getActivity(), editStartDate));
buttonSelectEndDate.setOnClickListener(new DateClickListener(getActivity(), editEndDate));
butonMonthYear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
datePickerDialog.show();
}
});
buttonSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SurveyorSearchRequest request = new SurveyorSearchRequest();
try {
if (Tool.isInternetconnected(getActivity())) {
iSurveyActivity.executeSearch(listener, request, editDate.getText().toString(), tahun, bulan, // Ambil bulan dan tahun
editStartDate.getText().toString(), editEndDate.getText().toString(), activeSearchMode);
} else {
NiftyDialogBuilder builder = NiftyDialogBuilder.getInstance(getActivity());
builder.withTitle(getString(R.string.info_capital))
.withMessage(getString(R.string.no_internet_connection))
.show();
}
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
layout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (!UserHelp.isActive) {
UserHelp.showAllUserHelp(SurveyPerformanceFragment.this.getActivity(),
SurveyPerformanceFragment.this.getClass().getSimpleName());
}
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.mnGuide){
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelp(SurveyPerformanceFragment.this.getActivity(),
SurveyPerformanceFragment.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
layout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if(!UserHelp.isActive)
UserHelp.showAllUserHelp(SurveyPerformanceFragment.this.getActivity(),
SurveyPerformanceFragment.this.getClass().getSimpleName());
}
});
}
return super.onOptionsItemSelected(item);
}
TaskListener listener = new TaskListener() {
@Override
public void onCompleteTask(Object result) {
SurveyorSearchResponse serverResponse = (SurveyorSearchResponse) result;
updateResult(serverResponse.getListKeyValue());
}
@Override
public void onCancelTask(boolean value) {
//on cancel task
}
@Override
public void onLocalData(Object result) {
//on local data
}
};
private void updateResult(final KeyValue[] result) {
layout.setVisibility(View.VISIBLE);
SurveyPerformanceFragment.this.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
listResult.setAdapter(new SearchResultListAdapter(getActivity(), result));
}
});
}
// private void executeSearch(SurveyorSearchRequest request, final String date, final int month, final String startDate, final String endDate) throws ParseException, IOException {
// new AsyncTask<Void, Void, SurveyorSearchResponse>(){
// final ProgressDialog progress = new ProgressDialog(getActivity());
// String errMessage;
// @Override
// protected void onPreExecute() {
// super.onPreExecute();
// progress.setMessage(getActivity().getString(R.string.contact_server));
// progress.show();
// }
//
// @Override
// protected SurveyorSearchResponse doInBackground(Void... params) {
// try {
// SurveyorSearchRequest searchRequest = new SurveyorSearchRequest();
// searchRequest.setAudit(GlobalData.getSharedGlobalData().getAuditData());
//
// try {
// if (activeSearchMode == 0) {
// SimpleDateFormat f = new SimpleDateFormat(Global.DATE_STR_FORMAT);
// Date date1 = f.parse(date);
// searchRequest.setDate1(date1);
// }
// if (activeSearchMode == 1) {
// SimpleDateFormat f = new SimpleDateFormat(Global.DATE_STR_FORMAT);
// Date sDate, eDate;
// long sLong = 0;
// long eLong = 0;
// try {
// sDate = f.parse(startDate);
// searchRequest.setDate1(sDate);
// eDate = f.parse(endDate);
// eDate.setHours(23);
// eDate.setMinutes(59);
// eDate.setSeconds(59);
// searchRequest.setDate2(eDate);
// sLong = sDate.getTime();
// eLong = eDate.getTime();
// } catch (ParseException e) {
// errMessage = getActivity().getString(R.string.enter_valid_date);
// return null;
// }
// long milisecond = eLong - sLong;
// if (milisecond > 604799000) {
// errMessage = getActivity().getString(R.string.data_range_not_allowed);
// return null;
// } else if (milisecond < 0) {
// errMessage = getActivity().getString(R.string.input_not_valid);
// return null;
// }
//
// }
// if (activeSearchMode == 2) {
// searchRequest.setMonth(String.valueOf(month + 1));
// }
// } catch (ParseException parseEx) {
// errMessage = getActivity().getString(R.string.enter_valid_date);
// return null;
// }
//
// String json = GsonHelper.toJson(searchRequest);
//
// String url = GlobalData.getSharedGlobalData().getURL_GET_SVYPERFORMANCE();
// boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
// boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
// HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
// HttpConnectionResult serverResult = null;
// try {
// serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
// } catch (Exception e) { FireCrash.log(e);
// e.printStackTrace();
// }
// SurveyorSearchResponse serverResponse = null;
// if (serverResult != null && serverResult.isOK()) {
// try {
// String responseBody = serverResult.getResult();
// serverResponse = GsonHelper.fromJson(responseBody, SurveyorSearchResponse.class);
//
// } catch (Exception e) { FireCrash.log(e);
// if(Global.IS_DEV) {
// e.printStackTrace();
// errMessage=e.getMessage();
// }
// }
// } else {
// errMessage = getActivity().getString(R.string.server_down);
// }
//
// return serverResponse;
// } catch (Exception e) { FireCrash.log(e);
// errMessage = e.getMessage();
// return null;
// }
// }
//
// @Override
// protected void onPostExecute(final SurveyorSearchResponse serverResponse) {
// super.onPostExecute(serverResponse);
// if(getActivity()!=null) {
// if (progress != null && progress.isShowing()) {
// progress.dismiss();
// }
// if (errMessage != null) {
// Toaster.error(getActivity(), errMessage);
// } else if (serverResponse != null && serverResponse.getListKeyValue() != null) {
// layout.setVisibility(View.VISIBLE);
// SurveyPerformanceFragment.this.getActivity().runOnUiThread(new Runnable() {
// @Override
// public void run() {
// listResult.setAdapter(new SearchResultListAdapter(getActivity(), serverResponse.getListKeyValue()));
// }
// });
// }
// }
// }
// }.execute();
// }
private void invalidateForm(int position) {
switch (position) {
case 0:
showSearchForm(R.id.byDay);
break;
case 1:
showSearchForm(R.id.byMonth);
break;
case 2:
showSearchForm(R.id.byEstimatedDate);
break;
default:
break;
}
this.activeSearchMode = position;
}
private void showSearchForm(int id) {
View byDay = getView().findViewById(R.id.byDay);
View byRange = getView().findViewById(R.id.byEstimatedDate);
View byMonth = getView().findViewById(R.id.byMonth);
byDay.setVisibility(View.GONE);
byRange.setVisibility(View.GONE);
byMonth.setVisibility(View.GONE);
View active = getView().findViewById(id);
active.setVisibility(View.VISIBLE);
}
}
class SearchResultListAdapter extends ArrayAdapter<KeyValue> {
public SearchResultListAdapter(Context context) {
super(context, R.layout.view_surveyor_search_result);
}
public SearchResultListAdapter(Context context, KeyValue[] values) {
super(context, R.layout.view_surveyor_search_result, values);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.view_surveyor_search_result, parent, false);
}
TextView label = (TextView) convertView.findViewById(R.id.taskLabel);
TextView value = (TextView) convertView.findViewById(R.id.taskValue);
KeyValue item = getItem(position);
label.setText(item.getKey());
value.setText(item.getValue());
return convertView;
}
}

View file

@ -0,0 +1,377 @@
package com.adins.mss.svy.fragments;
import android.content.Context;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.text.format.DateFormat;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.dynamicform.CustomerFragment;
import com.adins.mss.base.dynamicform.SurveyHeaderBean;
import com.adins.mss.base.tasklog.SurveyTaskAdapter;
import com.adins.mss.base.todolist.form.OnTaskListClickListener;
import com.adins.mss.base.todolist.form.TasklistListener;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.TaskH;
import com.adins.mss.dummy.userhelp_dummy.Adapter.NewTaskLogDummyAdapter;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.svy.R;
import com.adins.mss.svy.UserHelpSVYDummy;
import com.adins.mss.svy.tool.Constants;
import org.acra.ACRA;
import java.util.Calendar;
import java.util.List;
public class SurveyVerificationByBranchFragment extends Fragment implements OnTaskListClickListener, TasklistListener {
public static TaskH selectedVerified;
private List<TaskH> objects;
private SurveyTaskAdapter adapter;
// private GridView gridView;
private RecyclerView recyclerView;
private SwipeRefreshLayout mSwipeRefreshLayout;
private String errMessage = null;
private Context context;
private SurveyActivityInterface iSurveyActivity;
private LinearLayoutManager layoutManager;
private static boolean showDummy = true;
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
this.context = activity;
iSurveyActivity = new SurveyActivityImpl(context);
setHasOptionsMenu(true);
try {
objects = Constants.listOfVerifiedTask;
if (objects == null || objects.size() == 0) {
objects = TaskHDataAccess.getAllVerifiedForBranch(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
Constants.listOfVerifiedTask = objects;
}
adapter = new SurveyTaskAdapter(activity, objects, SurveyVerificationByBranchFragment.this);
try {
// MSMainMenuActivity.mnSVYVerifyByBranch.setCounter(String.valueOf(Constants.getCounterVerificationTaskByBranch(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.new_fragment_survey_verification, container, false);
this.mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipeRefreshLayout);
mSwipeRefreshLayout.setColorSchemeColors(getResources().getColor(com.adins.mss.base.R.color.tv_light),
getResources().getColor(com.adins.mss.base.R.color.tv_normal),
getResources().getColor(com.adins.mss.base.R.color.tv_dark),
getResources().getColor(com.adins.mss.base.R.color.tv_darker));
this.mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
public void onRefresh() {
SurveyVerificationByBranchFragment.this.initiateRefresh();
}
});
// getActivity().getActionBar().setTitle(getString(com.adins.mss.base.R.string.title_mn_verification_bybranch));
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_verification_bybranch));
recyclerView = (RecyclerView) view.findViewById(R.id.list);
layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.getRecycledViewPool().setMaxRecycledViews(1, 500);
recyclerView.setAdapter(adapter);
if(Global.ENABLE_USER_HELP &&
showDummy &&
Global.userHelpDummyGuide.get(SurveyVerificationByBranchFragment.this.getClass().getSimpleName()) != null &&
Global.userHelpDummyGuide.get(SurveyVerificationByBranchFragment.this.getClass().getSimpleName()).size()>0) {
NewTaskLogDummyAdapter dummyAdapter = new NewTaskLogDummyAdapter();
recyclerView.setAdapter(dummyAdapter);
UserHelpSVYDummy userHelpSVYDummy = new UserHelpSVYDummy();
userHelpSVYDummy.showDummyVerif(SurveyVerificationByBranchFragment.this.getActivity(),SurveyVerificationByBranchFragment.this.getClass().getSimpleName(), recyclerView,adapter);
showDummy = false;
}
// initiateRefresh();
return view;
}
private void initiateRefresh() {
// RefreshBackgroundTask task = new RefreshBackgroundTask();
// task.execute();
iSurveyActivity.getBackgroundTask(SurveyVerificationByBranchFragment.this, true, true);
}
private void onRefreshComplete(List<TaskH> result) {
this.mSwipeRefreshLayout.setRefreshing(false);
NiftyDialogBuilder fragment;
objects = result;
// if (this.errMessage != null) {
// fragment = NiftyDialogBuilder.getInstance(this.context);
// fragment.withTitle(context.getString(com.adins.mss.base.R.string.error_capital)).withMessage(this.errMessage).show();
// } else
if (result != null && result.size() != 0) {
try {
//if(objects==null || objects.size()==0){
Constants.listOfVerifiedTask = objects;
adapter = new SurveyTaskAdapter(getActivity(), objects, SurveyVerificationByBranchFragment.this);
recyclerView.setAdapter(adapter);
//}
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
}
// else {
// Constants.listOfVerifiedTask = objects;
// adapter = new TaskLogArrayAdapter(getActivity(), objects, false);
// listView.setAdapter(adapter);
// fragment = NiftyDialogBuilder.getInstance(this.context);
// fragment.withTitle(context.getString(com.adins.mss.base.R.string.info_capital)).withMessage(getString(com.adins.mss.base.R.string.msgNoVerification)).show();
// }
try {
// MSMainMenuActivity.mnSVYVerifyByBranch.setCounter(String.valueOf(Constants.getCounterVerificationTaskByBranch(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
}
@Override
public void onDestroy() {
super.onDestroy();
adapter = null;
Constants.listOfVerifiedTask = null;
}
@Override
public void onResume() {
super.onResume();
// getActivity().getActionBar().removeAllTabs();
// getActivity().getActionBar().setTitle(getString(com.adins.mss.svy.R.string.title_mn_verification_bybranch));
// getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_verification_bybranch));
try {
// MSMainMenuActivity.mnSVYVerifyByBranch.setCounter(String.valueOf(Constants.getCounterVerificationTaskByBranch(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
// if(objects!=null && objects.size()>0){
objects = TaskHDataAccess.getAllVerifiedForBranch(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
Constants.listOfVerifiedTask = objects;
// }
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.mnGuide){
if(!Global.BACKPRESS_RESTRICTION) {
NewTaskLogDummyAdapter dummyAdapter = new NewTaskLogDummyAdapter();
recyclerView.setAdapter(dummyAdapter);
UserHelpSVYDummy userHelpSVYDummy = new UserHelpSVYDummy();
userHelpSVYDummy.showDummyVerif(SurveyVerificationByBranchFragment.this.getActivity(), SurveyVerificationByBranchFragment.this.getClass().getSimpleName(), recyclerView, adapter);
showDummy = false;
}
}
return super.onOptionsItemSelected(item);
}
@Override
public void onItemClickListener(TaskH item, int position) {
selectedVerified = item;
SurveyHeaderBean header = new SurveyHeaderBean(selectedVerified);
// TODO Action Lempar ke Customer ACtivity
Bundle bundle = new Bundle();
bundle.putSerializable(CustomerFragment.SURVEY_HEADER, header);
bundle.putInt(CustomerFragment.SURVEY_MODE, Global.MODE_VIEW_SENT_SURVEY);
Fragment fragment = com.adins.mss.base.dynamicform.CustomerFragment.create(header);
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
public void onItemLongClickListener(TaskH item, int position) {
}
@Override
public void onRefreshBackgroundCancelled(boolean value) {
}
@Override
public void onRefreshBackgroundComplete(List<TaskH> result) {
onRefreshComplete(result);
}
// @SuppressLint({"NewApi"})
// private class RefreshBackgroundTask extends AsyncTask<Void, Void, List<TaskH>> {
// static final int TASK_DURATION = 5000;
//
// private RefreshBackgroundTask() {
// }
//
// protected List<TaskH> doInBackground(Void... params) {
// List<TaskH> resultTaskH = null;
// User user = GlobalData.getSharedGlobalData().getUser();
//
// if (Tool.isInternetconnected(context)) {
// MssRequestType requestType = new MssRequestType();
// requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
// requestType.addImeiAndroidIdToUnstructured();
//
// String json = GsonHelper.toJson(requestType);
// String url = GlobalData.getSharedGlobalData().getURL_GET_LIST_VERIFICATION();
// boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
// boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
// HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
// HttpConnectionResult serverResult = null;
// try {
// resultTaskH = TaskHDataAccess.getAllVerifiedForBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
// if (resultTaskH != null && resultTaskH.size() > 0)
// serverResult = httpConn.requestToServer(url, json, Global.SORTCONNECTIONTIMEOUT);
// else
// serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
// } catch (Exception e) { FireCrash.log(e);
// e.printStackTrace();
// errMessage = getActivity().getString(R.string.jsonParseFailed);
// }
//
// String result = serverResult.getResult();
//
// try {
// result = serverResult.getResult();
// JsonResponseTaskList taskList = GsonHelper.fromJson(result, JsonResponseTaskList.class);
// if (taskList.getStatus().getCode() == 0) {
// List<TaskH> listTaskH = taskList.getListTaskList();
// if (listTaskH != null && listTaskH.size() > 0) {
// String uuid_timelineType = TimelineTypeDataAccess.getTimelineTypebyType(getActivity(), Global.TIMELINE_TYPE_VERIFICATION).getUuid_timeline_type();
// for (TaskH taskHLocal : resultTaskH) {
// boolean wasDeleted = true;
// for (TaskH taskH : listTaskH) {
// if (taskH.getUuid_task_h().equals(taskHLocal.getUuid_task_h()))
// wasDeleted = false;
// }
// if (wasDeleted) {
// TaskHDataAccess.delete(getActivity(), taskHLocal);
// /*Timeline timeline = TimelineDataAccess.getOneTimelineByTaskH(getActivity(), user.getUuid_user(), taskHLocal.getUuid_task_h(), uuid_timelineType);
// if(timeline != null)
// TimelineDataAccess.delete(getActivity(), timeline);*/
// }
// }
//
// for (TaskH taskH : listTaskH) {
// taskH.setUser(user);
// String uuid_scheme = taskH.getUuid_scheme();
// Scheme scheme = SchemeDataAccess.getOne(getActivity(), uuid_scheme);
// if (scheme != null) {
// taskH.setScheme(scheme);
// TaskH h = TaskHDataAccess.getOneHeader(getActivity(), taskH.getUuid_task_h());
//
// boolean wasInTimeline = TimelineDataAccess.getOneTimelineByTaskH(getActivity(), user.getUuid_user(), taskH.getUuid_task_h(), uuid_timelineType) != null;
// if (h != null && h.getStatus() != null) {
// if (!ToDoList.isOldTask(h)) {
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
// if (!wasInTimeline)
// TimelineManager.insertTimeline(getActivity(), taskH);
// }
// } else {
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
// if (!wasInTimeline)
// TimelineManager.insertTimeline(getActivity(), taskH);
// }
// } else {
// errMessage = context.getString(com.adins.mss.base.R.string.scheme_not_found_verification);
// }
// }
// }
// } else {
// errMessage = result;
// }
// } catch (Exception e) { FireCrash.log(e);
// errMessage = getActivity().getString(R.string.jsonParseFailed);
// }
// }
//
// try {
// if (context != null) {
// resultTaskH = TaskHDataAccess.getAllVerifiedForBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
// } else if (getActivity() != null) {
// resultTaskH = TaskHDataAccess.getAllVerifiedForBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
// } else {
// resultTaskH = TaskHDataAccess.getAllVerifiedForBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
// }
// } catch (Exception var6) {
// var6.printStackTrace();
// errMessage = var6.getMessage();
// }
//
// return resultTaskH;
// }
//
// protected void onPostExecute(List<TaskH> result) {
// super.onPostExecute(result);
// SurveyVerificationByBranchFragment.this.onRefreshComplete(result);
// }
// }
}

View file

@ -0,0 +1,398 @@
package com.adins.mss.svy.fragments;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.text.format.DateFormat;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.dynamicform.CustomerFragment;
import com.adins.mss.base.dynamicform.SurveyHeaderBean;
import com.adins.mss.base.tasklog.SurveyTaskAdapter;
import com.adins.mss.base.todolist.form.OnTaskListClickListener;
import com.adins.mss.base.todolist.form.TasklistListener;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.TaskH;
import com.adins.mss.dummy.userhelp_dummy.Adapter.NewTaskLogDummyAdapter;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.svy.R;
import com.adins.mss.svy.UserHelpSVYDummy;
import com.adins.mss.svy.tool.Constants;
import com.google.firebase.analytics.FirebaseAnalytics;
import org.acra.ACRA;
import java.util.Calendar;
import java.util.List;
public class SurveyVerificationFragment extends Fragment implements OnTaskListClickListener, TasklistListener {
public static TaskH selectedVerified;
private List<TaskH> objects;
private SurveyTaskAdapter adapter;
private RecyclerView recyclerView;
private SwipeRefreshLayout mSwipeRefreshLayout;
private String errMessage = null;
private Context context;
private SurveyActivityInterface iSurveyActivity;
private LinearLayoutManager layoutManager;
private static boolean showDummy = true;
private FirebaseAnalytics screenName;
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
this.context = activity;
iSurveyActivity = new SurveyActivityImpl(context);
setHasOptionsMenu(true);
try {
objects = Constants.listOfVerifiedTask;
if (objects == null || objects.size() == 0) {
objects = TaskHDataAccess.getAllVerifiedForUser(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
Constants.listOfVerifiedTask = objects;
}
adapter = new SurveyTaskAdapter(activity, objects, SurveyVerificationFragment.this);
try {
// MSMainMenuActivity.mnSVYVerify.setCounter(String.valueOf(Constants.getCounterVerificationTask(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
screenName = FirebaseAnalytics.getInstance(getActivity());
View view = inflater.inflate(R.layout.new_fragment_survey_verification, container, false);
this.mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipeRefreshLayout);
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
this.mSwipeRefreshLayout.setColorScheme(
getResources().getColor(com.adins.mss.base.R.color.tv_light, getContext().getTheme()),
getResources().getColor(com.adins.mss.base.R.color.tv_normal, getContext().getTheme()),
getResources().getColor(com.adins.mss.base.R.color.tv_dark, getContext().getTheme()),
getResources().getColor(com.adins.mss.base.R.color.tv_darker, getContext().getTheme()));
} else {
this.mSwipeRefreshLayout.setColorScheme(
getResources().getColor(com.adins.mss.base.R.color.tv_light),
getResources().getColor(com.adins.mss.base.R.color.tv_normal),
getResources().getColor(com.adins.mss.base.R.color.tv_dark),
getResources().getColor(com.adins.mss.base.R.color.tv_darker));
}
} catch (Exception e) {
FireCrash.log(e);
this.mSwipeRefreshLayout.setColorSchemeResources(
com.adins.mss.base.R.color.tv_light,
com.adins.mss.base.R.color.tv_normal,
com.adins.mss.base.R.color.tv_dark,
com.adins.mss.base.R.color.tv_darker);
}
this.mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
public void onRefresh() {
SurveyVerificationFragment.this.initiateRefresh();
}
});
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_surveyverification));
// getActivity().getActionBar().setTitle(getString(com.adins.mss.base.R.string.title_mn_surveyverification));
recyclerView = (RecyclerView) view.findViewById(R.id.list);
layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.getRecycledViewPool().setMaxRecycledViews(1, 500);
recyclerView.setAdapter(adapter);
if(Global.ENABLE_USER_HELP &&
showDummy &&
Global.userHelpDummyGuide.get(SurveyVerificationFragment.this.getClass().getSimpleName()) != null &&
Global.userHelpDummyGuide.get(SurveyVerificationFragment.this.getClass().getSimpleName()).size()>0) {
NewTaskLogDummyAdapter dummyAdapter = new NewTaskLogDummyAdapter();
recyclerView.setAdapter(dummyAdapter);
UserHelpSVYDummy userHelpSVYDummy = new UserHelpSVYDummy();
userHelpSVYDummy.showDummyVerif(SurveyVerificationFragment.this.getActivity(),SurveyVerificationFragment.this.getClass().getSimpleName(), recyclerView,adapter);
showDummy = false;
}
// SurveyVerificationFragment.this.initiateRefresh();
return view;
}
private void initiateRefresh() {
// RefreshBackgroundTask task = new RefreshBackgroundTask();
// task.execute();
iSurveyActivity.getBackgroundTask(SurveyVerificationFragment.this, true, false);
}
private void onRefreshComplete(List<TaskH> result) {
this.mSwipeRefreshLayout.setRefreshing(false);
NiftyDialogBuilder fragment;
objects = result;
try {
// MSMainMenuActivity.mnSVYVerify.setCounter(String.valueOf(Constants.getCounterVerificationTask(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) { FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
// if (this.errMessage != null) {
// fragment = NiftyDialogBuilder.getInstance(this.context);
// fragment.withTitle(context.getString(com.adins.mss.base.R.string.error_capital)).withMessage(this.errMessage).show();
// } else
if (result != null && result.size() != 0) {
try {
//if(objects==null || objects.size()==0){
Constants.listOfVerifiedTask = objects;
adapter = new SurveyTaskAdapter(getActivity(), objects, SurveyVerificationFragment.this);
recyclerView.setAdapter(adapter);
//}
} catch (Exception e) { FireCrash.log(e);
// TODO: handle exception
}
}
// else {
// Constants.listOfVerifiedTask = objects;
// adapter = new TaskLogArrayAdapter(getActivity(), objects, false);
// listView.setAdapter(adapter);
// fragment = NiftyDialogBuilder.getInstance(this.context);
// fragment.withTitle(context.getString(com.adins.mss.base.R.string.info_capital)).withMessage(getString(com.adins.mss.base.R.string.msgNoVerification)).show();
// }
}
@Override
public void onDestroy() {
super.onDestroy();
adapter = null;
Constants.listOfVerifiedTask = null;
}
@Override
public void onResume() {
super.onResume();
// getActivity().getActionBar().removeAllTabs();
// getActivity().getActionBar().setTitle(getString(com.adins.mss.svy.R.string.title_mn_surveyverification));
// getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
//Set Firebase screen name
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_survey_verification), null);
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_surveyverification));
try {
// MSMainMenuActivity.mnSVYVerify.setCounter(String.valueOf(Constants.getCounterVerificationTask(getActivity())));
// if(MainMenuActivity.menuAdapter!=null)
// MainMenuActivity.menuAdapter.notifyDataSetChanged();
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) { FireCrash.log(e);
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", e.getMessage());
ACRA.getErrorReporter().putCustomData("ErrorMainMenuActivity", DateFormat.format("yyyy.MM.dd G \'at\' HH:mm:ss z", Calendar.getInstance().getTime()).toString());
ACRA.getErrorReporter().handleSilentException(new Exception("Exception saat set Drawer Counter"));
}
// if(objects!=null && objects.size()>0){
objects = TaskHDataAccess.getAllVerifiedForUser(getActivity(), GlobalData.getSharedGlobalData().getUser().getUuid_user());
Constants.listOfVerifiedTask = objects;
// RefreshBackgroundTask task = new RefreshBackgroundTask();
// task.execute();
// }
}
@Override
public void onItemClickListener(TaskH item, int position) {
selectedVerified = item;
SurveyHeaderBean header = new SurveyHeaderBean(selectedVerified);
// TODO Action Lempar ke Customer ACtivity
Bundle bundle = new Bundle();
bundle.putSerializable(CustomerFragment.SURVEY_HEADER, header);
bundle.putInt(CustomerFragment.SURVEY_MODE, Global.MODE_VIEW_SENT_SURVEY);
Fragment fragment = com.adins.mss.base.dynamicform.CustomerFragment.create(header);
FragmentTransaction transaction = NewMainActivity.fragmentManager.beginTransaction();
transaction.setCustomAnimations(R.anim.activity_open_translate,R.anim.activity_close_scale,R.anim.activity_open_scale,R.anim.activity_close_translate);
transaction.replace(R.id.content_frame, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.mnGuide){
if(!Global.BACKPRESS_RESTRICTION) {
NewTaskLogDummyAdapter dummyAdapter = new NewTaskLogDummyAdapter();
recyclerView.setAdapter(dummyAdapter);
UserHelpSVYDummy userHelpSVYDummy = new UserHelpSVYDummy();
userHelpSVYDummy.showDummyVerif(SurveyVerificationFragment.this.getActivity(), SurveyVerificationFragment.this.getClass().getSimpleName(), recyclerView, adapter);
showDummy = false;
}
}
return super.onOptionsItemSelected(item);
}
@Override
public void onItemLongClickListener(TaskH item, int position) {
}
@Override
public void onRefreshBackgroundCancelled(boolean value) {
}
@Override
public void onRefreshBackgroundComplete(List<TaskH> result) {
onRefreshComplete(result);
}
// @SuppressLint({"NewApi"})
// private class RefreshBackgroundTask extends AsyncTask<Void, Void, List<TaskH>> {
// static final int TASK_DURATION = 5000;
//
// private RefreshBackgroundTask() {
// }
//
// protected List<TaskH> doInBackground(Void... params) {
// List<TaskH> resultTaskH = null;
// User user = GlobalData.getSharedGlobalData().getUser();
//
// if (Tool.isInternetconnected(context)) {
// MssRequestType requestType = new MssRequestType();
// requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
// requestType.addImeiAndroidIdToUnstructured();
//
// String json = GsonHelper.toJson(requestType);
// String url = GlobalData.getSharedGlobalData().getURL_GET_LIST_VERIFICATION();
// boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
// boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
// HttpCryptedConnection httpConn = new HttpCryptedConnection(getActivity(), encrypt, decrypt);
// HttpConnectionResult serverResult = null;
// try {
// resultTaskH = TaskHDataAccess.getAllVerifiedForUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
// if (resultTaskH != null && resultTaskH.size() > 0)
// serverResult = httpConn.requestToServer(url, json, Global.SORTCONNECTIONTIMEOUT);
// else
// serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
// } catch (Exception e) { FireCrash.log(e);
// e.printStackTrace();
// errMessage = getActivity().getString(R.string.jsonParseFailed);
// }
//
// String result = serverResult.getResult();
//
// try {
// result = serverResult.getResult();
// JsonResponseTaskList taskList = GsonHelper.fromJson(result, JsonResponseTaskList.class);
// if (taskList.getStatus().getCode() == 0) {
// List<TaskH> listTaskH = taskList.getListTaskList();
// if (listTaskH != null && listTaskH.size() > 0) {
// String uuid_timelineType = TimelineTypeDataAccess.getTimelineTypebyType(getActivity(), Global.TIMELINE_TYPE_VERIFICATION).getUuid_timeline_type();
// for (TaskH taskHLocal : resultTaskH) {
// boolean wasDeleted = true;
// for (TaskH taskH : listTaskH) {
// if (taskH.getUuid_task_h().equals(taskHLocal.getUuid_task_h()))
// wasDeleted = false;
// }
// if (wasDeleted) {
// TaskHDataAccess.delete(getActivity(), taskHLocal);
// /*Timeline timeline = TimelineDataAccess.getOneTimelineByTaskH(getActivity(), user.getUuid_user(), taskHLocal.getUuid_task_h(), uuid_timelineType);
// if(timeline != null)
// TimelineDataAccess.delete(getActivity(), timeline);*/
// }
// }
//
// for (TaskH taskH : listTaskH) {
// taskH.setUser(user);
// String uuid_scheme = taskH.getUuid_scheme();
// Scheme scheme = SchemeDataAccess.getOne(getActivity(), uuid_scheme);
// if (scheme != null) {
// taskH.setScheme(scheme);
// TaskH h = TaskHDataAccess.getOneHeader(getActivity(), taskH.getUuid_task_h());
//
// boolean wasInTimeline = TimelineDataAccess.getOneTimelineByTaskH(getActivity(), user.getUuid_user(), taskH.getUuid_task_h(), uuid_timelineType) != null;
// if (h != null && h.getStatus() != null) {
// if (!ToDoList.isOldTask(h)) {
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
// if (!wasInTimeline)
// TimelineManager.insertTimeline(getActivity(), taskH);
// }
// } else {
// TaskHDataAccess.addOrReplace(getActivity(), taskH);
// if (!wasInTimeline)
// TimelineManager.insertTimeline(getActivity(), taskH);
// }
// } else {
// errMessage = context.getString(com.adins.mss.base.R.string.scheme_not_found_verification);
// }
// }
// }
// } else {
// errMessage = result;
// }
// } catch (Exception e) { FireCrash.log(e);
// errMessage = getActivity().getString(R.string.jsonParseFailed);
// }
// }
//
// try {
//// if (context != null) {
//// resultTaskH = TaskHDataAccess.getAllVerifiedForUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
//// } else if (getActivity() != null) {
//// resultTaskH = TaskHDataAccess.getAllVerifiedForUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
//// } else {
//// resultTaskH = TaskHDataAccess.getAllVerifiedForUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
//// }
// } catch (Exception var6) {
// var6.printStackTrace();
// errMessage = var6.getMessage();
// }
//
// return resultTaskH;
// }
//
// protected void onPostExecute(List<TaskH> result) {
// super.onPostExecute(result);
// SurveyVerificationFragment.this.onRefreshComplete(result);
// }
// }
}

View file

@ -0,0 +1,35 @@
package com.adins.mss.svy.login;
import android.content.Context;
import android.content.Intent;
import com.adins.mss.base.about.activity.AboutActivity;
import com.adins.mss.base.login.DefaultLoginModel;
import com.adins.mss.constant.Global;
import com.adins.mss.svy.ChangeLog;
import com.adins.mss.svy.MSSynchronizeActivity;
public class MSDefaultLoginModel extends DefaultLoginModel{
public MSDefaultLoginModel(Context context) {
super(context);
// TODO Auto-generated constructor stub
Global.syncIntent = new Intent(getContext(), MSSynchronizeActivity.class);
}
@Override
protected int getBuildNumber() {
int c = Global.BUILD_VERSION;//ChangeLog.getChangeLog().get(0).getBuildVersion();
AboutActivity.setChangeLog(ChangeLog.getChangeLog(getContext()), 2);
return c;
}
@Override
protected Intent getIntentSynchronize() {
// TODO Auto-generated method stub
return new Intent(getContext(), MSSynchronizeActivity.class);
// return new Intent(getContext(), MSMainMenuActivity.class);
}
}

View file

@ -0,0 +1,104 @@
package com.adins.mss.svy.models;
import androidx.annotation.Keep;
import com.adins.mss.foundation.http.MssResponseType;
import com.adins.mss.svy.tool.JsonResponseServer.ResponseServer;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class ActionOnVerification extends MssResponseType{
@SerializedName("listDetail")
public List<ResponseServer> listDetail;
@SerializedName("listAction")
public List<ListAction> listAction;
/**
* Gets the listDetail
*/
public List<ResponseServer> getListDetail() {
return this.listDetail;
}
/**
* Sets the listDetail
*/
public void setListDetail(List<ResponseServer> value) {
this.listDetail = value;
}
/**
* Gets the listAction
*/
public List<ListAction> getListAction() {
return this.listAction;
}
/**
* Sets the listAction
*/
public void setListAction(List<ListAction> value) {
this.listAction = value;
}
public class ListAction
{
@Keep
public String uuid_status_task;
@Keep
public String status_code;
@Keep
public String status_desc;
/**
* Gets the uuid_status_task
*/
public String getUuid_status_task() {
return this.uuid_status_task;
}
/**
* Sets the uuid_status_task
*/
public void setUuid_status_task(String value) {
this.uuid_status_task = value;
}
/**
* Gets the status_code
*/
public String getStatus_code() {
return this.status_code;
}
/**
* Sets the status_code
*/
public void setStatus_code(String value) {
this.status_code = value;
}
/**
* Gets the status_desc
*/
public String getStatus_desc() {
return this.status_desc;
}
/**
* Sets the status_desc
*/
public void setStatus_desc(String value) {
this.status_desc = value;
}
@Override
public String toString() {
return this.status_desc;
}
}
}

View file

@ -0,0 +1,16 @@
package com.adins.mss.svy.models;
/**
* Created by Aditya Purwa on 2/26/2015.
*/
public class AuditRequest {
private String callerId;
public String getCallerId() {
return callerId;
}
public void setCallerId(String callerId) {
this.callerId = callerId;
}
}

View file

@ -0,0 +1,142 @@
package com.adins.mss.svy.models;
import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import com.adins.mss.svy.R;
/**
* Created by winy.firdasari on 20/01/2015.
*/
public class ExpandableListAdapter extends BaseExpandableListAdapter {
private Context _context;
private List<String> _listDataHeader; // header titles
// child data in format of header title, child title
private HashMap<String, List<String>> _listDataChild;
private LinkedHashMap<String, String> listResult = new LinkedHashMap<>();
public ExpandableListAdapter(Context context, List<String> listDataHeader,
HashMap<String, List<String>> listChildData) {
this._context = context;
this._listDataHeader = listDataHeader;
this._listDataChild = listChildData;
}
public ExpandableListAdapter(Context context, LinkedHashMap<String, String> listResult) {
this._context = context;
this.listResult = listResult;
}
@Override
public Object getChild(int groupPosition, int childPosititon) {
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.get(childPosititon);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
final String childText = (String) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.result_order_list_item, null);
}
TextView txtListChild = (TextView) convertView
.findViewById(R.id.txtStatusOrder);
txtListChild.setText(childText);
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.size();
}
public String getKey(int pos) {
return String.valueOf(listResult.keySet().toArray()[pos]);
}
public String getValues(String key) {
return String.valueOf(listResult.get(key));
}
@Override
public Object getGroup(int groupPosition) {
return this._listDataHeader.get(groupPosition);
}
@Override
public int getGroupCount() {
return listResult.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// String headerTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.new_survey_assignment_item, null);
}
// TextView lblListHeader = (TextView) convertView
// .findViewById(R.id.txtOrderList);
// lblListHeader.setTypeface(null, Typeface.BOLD);
// lblListHeader.setText(headerTitle);
String noOrder = getKey(groupPosition);
String custName = getValues(noOrder);
TextView lblNoOrder = (TextView) convertView.findViewById(R.id.txtNoOrder);
TextView lblCustName = (TextView) convertView.findViewById(R.id.txtCustomerName);
lblNoOrder.setText(noOrder);
lblCustName.setText(custName);
return convertView;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
public void removeGroup(int position){
_listDataChild.remove(_listDataHeader.get(position));
_listDataHeader.remove(position);
notifyDataSetChanged();
}
}

View file

@ -0,0 +1,24 @@
package com.adins.mss.svy.models;
import com.adins.mss.foundation.http.MssRequestType;
import com.google.gson.annotations.SerializedName;
public class JsonGetVerificationActionRequest extends MssRequestType {
/** Property uuid_task_h */
@SerializedName("uuid_task_h")
public String uuid_task_h;
/**
* Gets the uuid_task_h
*/
public String getUuid_task_h() {
return this.uuid_task_h;
}
/**
* Sets the uuid_task_h
*/
public void setUuid_task_h(String value) {
this.uuid_task_h = value;
}
}

View file

@ -0,0 +1,37 @@
package com.adins.mss.svy.models;
import com.adins.mss.foundation.http.MssRequestType;
import com.google.gson.annotations.SerializedName;
public class JsonRequestRejectedVerificationTask extends MssRequestType {
@SerializedName("uuid_task_h")
String uuid_task_h;
@SerializedName("flag")
String flag;
@SerializedName("notes")
String notes;
public String getNotes() {
return this.notes;
}
public void setNotes(String value) {
this.notes = value;
}
public String getUuid_task_h() {
return this.uuid_task_h;
}
public void setUuid_task_h(String value) {
this.uuid_task_h = value;
}
public String getFlag() {
return this.flag;
}
public void setFlag(String value) {
this.flag = value;
}
}

View file

@ -0,0 +1,24 @@
package com.adins.mss.svy.models;
import com.adins.mss.foundation.http.MssRequestType;
import com.google.gson.annotations.SerializedName;
public class JsonRequestTaskWithMode extends MssRequestType {
/** Property mode */
@SerializedName("mode")
String mode;
/**
* Gets the mode
*/
public String getMode() {
return this.mode;
}
/**
* Sets the mode
*/
public void setMode(String value) {
this.mode = value;
}
}

View file

@ -0,0 +1,38 @@
package com.adins.mss.svy.models;
import com.adins.mss.foundation.http.MssRequestType;
import com.google.gson.annotations.SerializedName;
/**
* Created by olivia.dg on 6/2/2017.
*/
public class JsonRequestUserList extends MssRequestType {
/** Property uuid_task_h */
@SerializedName("uuid_task_h")
public String uuid_task_h;
@SerializedName("access_mode")
private String access_mode;
/**
* Gets the uuid_task_h
*/
public String getUuid_task_h() {
return this.uuid_task_h;
}
/**
* Sets the uuid_task_h
*/
public void setUuid_task_h(String value) {
this.uuid_task_h = value;
}
public String getAccess_mode() {
return this.access_mode;
}
public void setAccess_mode(String value) {
this.access_mode = value;
}
}

View file

@ -0,0 +1,114 @@
package com.adins.mss.svy.models;
import com.adins.mss.foundation.http.MssRequestType;
import com.google.gson.annotations.SerializedName;
public class RequestRejectedWithResurvey extends MssRequestType {
/** Property uuid_task_h */
@SerializedName("uuid_task_h")
String uuid_task_h;
/** Property flag */
@SerializedName("flag")
String flag;
/** Property uuid_user */
@SerializedName("uuid_user")
String uuid_user;
/** Property uuid_ms_user */
@SerializedName("uuid_ms_user")
String uuid_ms_user;
/** Property is_suggested */
@SerializedName("is_suggested")
String is_suggested;
/** Property notes */
@SerializedName("notes")
String notes;
/**
* Gets the uuid_ms_user
*/
public String getUuid_ms_user() {
return this.uuid_ms_user;
}
/**
* Sets the uuid_ms_user
*/
public void setUuid_ms_user(String value) {
this.uuid_ms_user = value;
}
/**
* Gets the is_suggested
*/
public String getIs_suggested() {
return this.is_suggested;
}
/**
* Sets the is_suggested
*/
public void setIs_suggested(String value) {
this.is_suggested = value;
}
/**
* Gets the notes
*/
public String getNotes() {
return this.notes;
}
/**
* Sets the notes
*/
public void setNotes(String value) {
this.notes = value;
}
/**
* Gets the uuid_task_h
*/
public String getUuid_task_h() {
return this.uuid_task_h;
}
/**
* Sets the uuid_task_h
*/
public void setUuid_task_h(String value) {
this.uuid_task_h = value;
}
/**
* Gets the flag
*/
public String getFlag() {
return this.flag;
}
/**
* Sets the flag
*/
public void setFlag(String value) {
this.flag = value;
}
/**
* Gets the uuid_user
*/
public String getUuid_user() {
return this.uuid_user;
}
/**
* Sets the uuid_user
*/
public void setUuid_user(String value) {
this.uuid_user = value;
}
}

View file

@ -0,0 +1,16 @@
package com.adins.mss.svy.models;
/**
* Created by Aditya Purwa on 1/28/2015.
*/
public class ResponseStatus {
private int code;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
}

View file

@ -0,0 +1,78 @@
package com.adins.mss.svy.models;
import androidx.annotation.Keep;
import com.adins.mss.foundation.http.MssResponseType;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class SuggestOnVerification extends MssResponseType {
@SerializedName("listUser")
public List<ListUser> listUser;
/**
* Gets the listUser
*/
public List<ListUser> getListUser() {
return this.listUser;
}
/**
* Sets the listUser
*/
public void setListUser(List<ListUser> value) {
this.listUser = value;
}
public class ListUser {
@Keep
public String uuid_ms_user;
@Keep
public String fullname;
@Keep
public String is_suggested;
/**
* Gets the uuid_ms_user
*/
public String getUuid_ms_user() {
return this.uuid_ms_user;
}
/**
* Sets the uuid_ms_user
*/
public void setUuid_ms_user(String value) {
this.uuid_ms_user = value;
}
/**
* Gets the fullname
*/
public String getFullname() {
return this.fullname;
}
/**
* Sets the fullname
*/
public void setFullname(String value) {
this.fullname = value;
}
/**
* Gets the is_suggested
*/
public String getIs_suggested() {
return this.is_suggested;
}
/**
* Sets the is_suggested
*/
public void setIs_suggested(String value) {
this.is_suggested = value;
}
}
}

View file

@ -0,0 +1,52 @@
package com.adins.mss.svy.models;
import com.adins.mss.foundation.http.MssRequestType;
import com.google.gson.annotations.SerializedName;
import java.util.Date;
/**
* Created by Aditya Purwa on 1/28/2015.
*/
public class SurveyorSearchRequest extends MssRequestType {
@SerializedName("date1")
private Date date1;
@SerializedName("date2")
private Date date2;
@SerializedName("month")
private String month;
@SerializedName("year")
private String year;
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public Date getDate1() {
return date1;
}
public void setDate1(Date date1) {
this.date1 = date1;
}
public Date getDate2() {
return date2;
}
public void setDate2(Date date2) {
this.date2 = date2;
}
public String getMonth() {
return month;
}
public void setMonth(String month) {
this.month = month;
}
}

View file

@ -0,0 +1,30 @@
package com.adins.mss.svy.models;
import com.adins.mss.foundation.http.KeyValue;
import com.adins.mss.foundation.http.MssResponseType;
import com.google.gson.annotations.SerializedName;
/**
* Created by Aditya Purwa on 1/28/2015.
*/
public class SurveyorSearchResponse extends MssResponseType{
@SerializedName("listKeyValue")
private KeyValue[] listKeyValue;
// private Status status;
public KeyValue[] getListKeyValue() {
return listKeyValue;
}
public void setListKeyValue(KeyValue[] listKeyValue) {
this.listKeyValue = listKeyValue;
}
// public Status getStatus() {
// return this.status;
// }
//
// public void setStatus(Status status) {
// this.status = status;
// }
}

View file

@ -0,0 +1,351 @@
package com.adins.mss.svy.reassignment;
import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CalendarView;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.Toast;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.formatter.Formatter;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.svy.R;
import com.adins.mss.svy.tool.Constants;
import org.acra.ACRA;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CheckOrderActivity extends Fragment implements OnClickListener, OnItemSelectedListener {
protected static EditText txtStartDate;
protected static EditText txtEndDate;
protected EditText txtNomorOrder;
protected Spinner spinnerSearch;
protected View view;
private String[] isiSearchBy;
private Button btnSearch;
private ImageView btnStartDate;
private ImageView btnEndDate;
private LinearLayout byDateLayout;
private LinearLayout byNomorLayout;
static CalendarView.OnDateChangeListener onDateChangeListener;
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
}
@Override
public void onDestroyView() {
super.onDestroyView();
Utility.freeMemory();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
view = inflater.inflate(R.layout.new_fragment_check_survey_reassign, container, false);
//onDateChangeListener = this;
txtStartDate = (EditText)view.findViewById(R.id.txtStartDate);
txtEndDate = (EditText)view.findViewById(R.id.txtEndDate);
// txtNomorOrder = (EditText)view.findViewById(R.id.txtNomorOrder);
btnSearch = (Button)view.findViewById(R.id.btnSearchOrder);
btnStartDate =(ImageView)view.findViewById(R.id.btnStartDate);
btnEndDate=(ImageView)view.findViewById(R.id.btnEndDate);
// spinnerSearch=(Spinner)view.findViewById(R.id.cbSearchBy);
byDateLayout=(LinearLayout) view.findViewById(R.id.byDate);
// byNomorLayout=(LinearLayout) view.findViewById(R.id.byNoOrder);
btnStartDate.setOnClickListener(this);
btnEndDate.setOnClickListener(this);
btnSearch.setOnClickListener(this);
// isiSearchBy = this.getResources().getStringArray(R.array.cbOrderReassign);
// if(isiSearchBy.length>1){
// ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(
// getActivity(), R.array.cbOrderReassign,
// R.layout.spinner_style);
//
// spinnerSearch.setAdapter(adapter);
// spinnerSearch.setOnItemSelectedListener(this);
// }else{
// view.findViewById(R.id.btnRefresh).setVisibility(View.GONE);
// spinnerSearch.setVisibility(View.GONE);
// }
return view;
}
@Override
public void onPause() {
super.onPause();
Global.haveLogin = 1;
}
@Override
public void onResume(){
super.onResume();
// getActivity().getActionBar().removeAllTabs();
// getActivity().getActionBar().setTitle(getString(R.string.title_mn_checkorder));
// getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
}
protected Intent getNextActivityIntent(){
// return new Intent(getActivity().getApplicationContext(), ResultActivity.class);
return new Intent(getActivity().getApplicationContext(), ResultOrderActivity.class);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int id = v.getId();
if(id==R.id.btnStartDate){
DialogFragment datePicker = new DatePickerDialogCustom();
Bundle bundle = new Bundle();
bundle.putString(Constants.KEY_DATE, Constants.KEY_START_DATE);
bundle.putInt(Constants.KEY_START_DATE, Constants.START_DATE_DIALOG_ID);
datePicker.setArguments(bundle);
datePicker.show(getFragmentManager(), Constants.KEY_START_DATE);
}
if(id==R.id.btnEndDate){
DialogFragment datePicker = new DatePickerDialogCustom();
Bundle bundle = new Bundle();
bundle.putString(Constants.KEY_DATE, Constants.KEY_END_DATE);
bundle.putInt(Constants.KEY_END_DATE, Constants.END_DATE_DIALOG_ID);
datePicker.setArguments(bundle);
datePicker.show(getFragmentManager(), Constants.KEY_END_DATE);
}
if(id==R.id.btnSearchOrder){
// String starDate=txtStartDate.getText().toString();
// String endDate=txtEndDate.getText().toString();
// String noOrder=txtNomorOrder.getText().toString();
//
// if((starDate.length()>0&&endDate.length()>0)||noOrder.length()>0){
// Intent nextActivity = getNextActivityIntent();
//
// nextActivity.putExtra("startDate", txtStartDate.getText().toString());
// nextActivity.putExtra("endDate", txtEndDate.getText().toString());
// nextActivity.putExtra("nomorOrder", txtNomorOrder.getText().toString());
//
// startActivity(nextActivity);
// }else{
// Toast.makeText(getActivity(), "input required !",
// Toast.LENGTH_LONG).show();
// }
StringBuffer errorMessage = new StringBuffer();
// if (spinnerSearch.getSelectedItemPosition()==0) {
if (txtStartDate.getText().toString().length()==0){
errorMessage.append(getString(R.string.start_date_required));
}
if (txtEndDate.getText().toString().length() == 0) {
errorMessage.append(getString(R.string.end_date_required));
}
try {
SimpleDateFormat f = new SimpleDateFormat(Global.DATE_STR_FORMAT);
Date sDate,eDate;
long sLong = 0;
long eLong=0;
try {
sDate = f.parse(txtStartDate.getText().toString());
eDate = f.parse(txtEndDate.getText().toString());
Calendar sCalendar = Calendar.getInstance();
sCalendar.setTimeInMillis(sDate.getTime());
Calendar eCalendar = Calendar.getInstance();
eCalendar.setTimeInMillis(eDate.getTime());
eCalendar.set(eCalendar.HOUR_OF_DAY, 23);
eCalendar.set(eCalendar.MINUTE, 59);
eCalendar.set(eCalendar.SECOND, 59);
sLong = sCalendar.getTimeInMillis();
eLong = eCalendar.getTimeInMillis();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long milisecond=eLong-sLong;
if(milisecond>604799000){
errorMessage.append(getString(R.string.data_range_not_allowed));
} else if (milisecond < 0) {
errorMessage.append(getString(R.string.input_not_valid));
}
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
// } else {
// if(txtNomorOrder.getText().toString().length()==0){
// errorMessage.append(getString(R.string.nomor_order_rewuired));
// }
// }
if(errorMessage != null && errorMessage.length( )> 0){
Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_SHORT).show();
}else{
Intent nextActivity = getNextActivityIntent();
nextActivity.putExtra("startDate", txtStartDate.getText().toString());
nextActivity.putExtra("endDate", txtEndDate.getText().toString());
// nextActivity.putExtra("nomorOrder", txtNomorOrder.getText().toString());
startActivity(nextActivity);
}
}
}
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position,
long id) {
long itemSearchBy = spinnerSearch.getItemIdAtPosition(position);
if (itemSearchBy == 1){
byDateLayout.setVisibility(View.GONE);
byNomorLayout.setVisibility(View.VISIBLE);
txtStartDate.setText("");
txtEndDate.setText("");
}
else if (itemSearchBy == 0){
byDateLayout.setVisibility(View.VISIBLE);
byNomorLayout.setVisibility(View.GONE);
txtNomorOrder.setText("");
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
/*@Override
public void onStartDateSetListener(String startDate) {
txtStartDate.setText(startDate);
}
@Override
public void onEndDateSetListener(String endDate) {
txtEndDate.setText(endDate);
}
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
}*/
@SuppressLint("ValidFragment")
public static class DatePickerDialogCustom extends DialogFragment{
int id;
String startDate ="";
String endDate ="";
private DatePickerDialog.OnDateSetListener mStartDateSetListener =
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
String month = Tool.appendZeroForDateTime(monthOfYear, true);
startDate = dayOfMonth + "/" + month + "/" + year;
//onDateChangeListener.onStartDateSetListener(startDate);
txtStartDate.setText(startDate);
}
};
private DatePickerDialog.OnDateSetListener mEndDateSetListener =
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
String month = Tool.appendZeroForDateTime(monthOfYear, true);
endDate = dayOfMonth + "/" + month + "/" + year;
//onDateChangeListener.onEndDateSetListener(endDate);
txtEndDate.setText(endDate);
}
};
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String key = getArguments().getString(Constants.KEY_DATE);
int id=0;
if(key.equals(Constants.KEY_START_DATE))
id = getArguments().getInt(Constants.KEY_START_DATE);
else if(key.equals(Constants.KEY_END_DATE))
id = getArguments().getInt(Constants.KEY_END_DATE);
return DatePickerDialog(id);
}
public Dialog DatePickerDialog(int id){
Date sysdate =new Date(System.currentTimeMillis());
DatePickerDialog datePicker = null;
String sdt = Formatter.formatDate(sysdate, "dd/MM/yyyy");
String[] temp1 = sdt.split("/");
final int DayOfMonth = Integer.parseInt(temp1[0]);
final int Month = Integer.parseInt((temp1[1])) - 1;
final int Year = Integer.parseInt(temp1[2]);
if (id==Constants.START_DATE_DIALOG_ID) {
datePicker = new DatePickerDialog(getActivity(), mStartDateSetListener, Year, Month, DayOfMonth)
{
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
if (year > Year)
view.updateDate(Year, Month, DayOfMonth);
if (monthOfYear > Month && year == Year)
view.updateDate(Year, Month, DayOfMonth);
if (dayOfMonth > DayOfMonth && year == Year && monthOfYear == Month)
view.updateDate(Year, Month, DayOfMonth);
}
};
}
else if (id==Constants.END_DATE_DIALOG_ID) {
datePicker = new DatePickerDialog(getActivity(), mEndDateSetListener, Year, Month, DayOfMonth)
{
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
if (year > Year)
view.updateDate(Year, Month, DayOfMonth);
if (monthOfYear > Month && year == Year)
view.updateDate(Year, Month, DayOfMonth);
if (dayOfMonth > DayOfMonth && year == Year && monthOfYear == Month)
view.updateDate(Year, Month, DayOfMonth);
}
};
}
return datePicker;
}
}
}

View file

@ -0,0 +1,91 @@
package com.adins.mss.svy.reassignment;
import com.adins.mss.foundation.http.MssRequestType;
import com.google.gson.annotations.SerializedName;
/**
* @author gigin.ginanjar
*
*/
public class JsonRequestCheckOrder extends MssRequestType{
@SerializedName("order_number")
String order_number;
@SerializedName("start_date")
String start_date;
@SerializedName("end_date")
String end_date;
@SerializedName("status")
String status;
@SerializedName("flag")
String flag;
/**
* Gets the flag
*/
public String getFlag() {
return this.flag;
}
/**
* Sets the flag
*/
public void setFlag(String value) {
this.flag = value;
}
/**
* Gets the orderNumber
*/
public String getOrderNumber() {
return this.order_number;
}
/**
* Sets the orderNumber
*/
public void setOrderNumber(String value) {
this.order_number = value;
}
/**
* Gets the startDate
*/
public String getStartDate() {
return this.start_date;
}
/**
* Sets the startDate
*/
public void setStartDate(String value) {
this.start_date = value;
}
/**
* Gets the endDate
*/
public String getEndDate() {
return this.end_date;
}
/**
* Sets the endDate
*/
public void setEndDate(String value) {
this.end_date = value;
}
/**
* Gets the status
*/
public String getStatus() {
return this.status;
}
/**
* Sets the status
*/
public void setStatus(String value) {
this.status = value;
}
}

View file

@ -0,0 +1,63 @@
package com.adins.mss.svy.reassignment;
import com.adins.mss.foundation.http.MssRequestType;
import com.google.gson.annotations.SerializedName;
public class JsonRequestDetailOrder extends MssRequestType{
/** Property flag */
@SerializedName("flag")
String flag;
/** Property nomor_order */
@SerializedName("nomor_order")
String nomor_order;
@SerializedName("uuid_task_h")
String uuid_task_h;
/** Property question_id */
@SerializedName("question_id")
String question_id;
/**
* Gets the uuid_task_h
*/
public String getUuid_task_h() {
return this.uuid_task_h;
}
/**
* Sets the uuid_task_h
*/
public void setUuid_task_h(String value) {
this.uuid_task_h = value;
}
/**
* Gets the flag
*/
public String getFlag() {
return this.flag;
}
/**
* Sets the flag
*/
public void setFlag(String value) {
this.flag = value;
}
/**
* Gets the nomor_order
*/
public String getNomor_order() {
return this.nomor_order;
}
/**
* Sets the nomor_order
*/
public void setNomor_order(String value) {
this.nomor_order = value;
}
}

View file

@ -0,0 +1,42 @@
package com.adins.mss.svy.reassignment;
import com.adins.mss.foundation.http.MssRequestType;
import com.google.gson.annotations.SerializedName;
public class JsonRequestImage extends MssRequestType{
/** Property uuid_task_h */
@SerializedName("uuid_task_h")
String uuid_task_h;
/** Property question_id */
@SerializedName("question_id")
String question_id;
/**
* Gets the uuid_task_h
*/
public String getUuid_task_h() {
return this.uuid_task_h;
}
/**
* Sets the uuid_task_h
*/
public void setUuid_task_h(String value) {
this.uuid_task_h = value;
}
/**
* Gets the question_id
*/
public String getQuestion_id() {
return this.question_id;
}
/**
* Sets the question_id
*/
public void setQuestion_id(String value) {
this.question_id = value;
}
}

View file

@ -0,0 +1,78 @@
package com.adins.mss.svy.reassignment;
import com.adins.mss.foundation.http.MssRequestType;
import com.google.gson.annotations.SerializedName;
public class JsonRequestSubmitAssign extends MssRequestType{
/** Property uuid_user */
@SerializedName("uuidUserAssign")
String uuidUserAssign;
/** Property uuid_task_h */
@SerializedName("uuid_task_h")
String uuid_task_h;
/** Property flag */
@SerializedName("flag")
String flag;
/** Property notes */
@SerializedName("notes")
String notes;
/**
* Gets the uuid_user
*/
public String getUuidUserAssign() {
return this.uuidUserAssign;
}
/**
* Sets the uuid_user
*/
public void setUuidUserAssign(String value) {
this.uuidUserAssign = value;
}
/**
* Gets the uuid_task_h
*/
public String getUuid_task_h() {
return this.uuid_task_h;
}
/**
* Sets the uuid_task_h
*/
public void setUuid_task_h(String value) {
this.uuid_task_h = value;
}
/**
* Gets the flag
*/
public String getFlag() {
return this.flag;
}
/**
* Sets the flag
*/
public void setFlag(String value) {
this.flag = value;
}
/**
* Gets the notes
*/
public String getNotes() {
return this.notes;
}
/**
* Sets the notes
*/
public void setNotes(String value) {
this.notes = value;
}
}

View file

@ -0,0 +1,57 @@
package com.adins.mss.svy.reassignment;
import com.adins.mss.foundation.http.KeyValue;
import com.adins.mss.foundation.http.MssResponseType;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class JsonResponseServer extends MssResponseType{
@SerializedName("listResponseServer")
List<ResponseServer> listResponseServer;
public List<ResponseServer> getListResponseServer() {
return listResponseServer;
}
public void setListResponseServer(List<ResponseServer> listResponseServer) {
this.listResponseServer = listResponseServer;
}
public class ResponseServer extends KeyValue {
@SerializedName("flag")
String flag;
@SerializedName("subListResponseServer")
List<ResponseServer> subListResponseServer;
@SerializedName("formName")
String formName;
public ResponseServer(String key, String value) {
super(key, value);
}
public String getFormName() {
return this.formName;
}
public void setFormName(String value) {
this.formName = value;
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
public List<ResponseServer> getSubListResponseServer() {
return subListResponseServer;
}
public void setSubListResponseServer(List<ResponseServer> subListResponseServer) {
this.subListResponseServer = subListResponseServer;
}
}
}

View file

@ -0,0 +1,10 @@
package com.adins.mss.svy.reassignment;
/**
* Created by ahmadkamilalmasyhur on 26/03/2018.
*/
public interface OnDateChangeListener {
void onStartDateSetListener(String startDate);
void onEndDateSetListener(String endDate);
}

View file

@ -0,0 +1,36 @@
package com.adins.mss.svy.reassignment;
import java.util.List;
/**
* Created by winy.firdasari on 20/01/2015.
*/
public class Order {
public String orderNo;
public String customerName;
public List<StatusOrder> statusOrder;
public Order(){
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public List<StatusOrder> getStatusOrder() {
return statusOrder;
}
public void setStatusOrder(List<StatusOrder> statusOrder) {
this.statusOrder = statusOrder;
}
}

View file

@ -0,0 +1,26 @@
package com.adins.mss.svy.reassignment;
import java.util.List;
/**
* Created by winy.firdasari on 20/01/2015.
*/
public class OrderChecking {
public List<Order> orderList;
public OrderChecking(){
}
public List<Order> getOrderList() {
return orderList;
}
public void setOrderList(List<Order> orderList) {
this.orderList = orderList;
}
}

View file

@ -0,0 +1,115 @@
package com.adins.mss.svy.reassignment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.UserHelp.UserHelp;
import com.adins.mss.svy.R;
import com.google.firebase.analytics.FirebaseAnalytics;
import org.acra.ACRA;
import static com.adins.mss.constant.Global.SHOW_USERHELP_DELAY_DEFAULT;
public class OrderFilterActivity extends CheckOrderActivity{
private int taskType;
private Spinner cbSearchByStatus;
private TextView labelSearchByStatus;
private RelativeLayout layoutFilterByStatus;
private Bundle mArguments;
private FirebaseAnalytics screenName;
public OrderFilterActivity() {
}
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
setHasOptionsMenu(true);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
mArguments = getArguments();
taskType = mArguments.getInt(Global.BUND_KEY_TASK_TYPE, 0);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.mnGuide){
if(!Global.BACKPRESS_RESTRICTION) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelp(OrderFilterActivity.this.getActivity(), OrderFilterActivity.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
}
}
return super.onOptionsItemSelected(item);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
screenName = FirebaseAnalytics.getInstance(getActivity());
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
UserHelp.showAllUserHelp(OrderFilterActivity.this.getActivity(),OrderFilterActivity.this.getClass().getSimpleName());
}
}, SHOW_USERHELP_DELAY_DEFAULT);
return view;
}
private void addStatusFilter() {
labelSearchByStatus = (TextView)view.findViewById(R.id.lblSearchByStatus);
cbSearchByStatus = (Spinner)view.findViewById(R.id.cbSearchByStatus);
layoutFilterByStatus = (RelativeLayout)view.findViewById(R.id.filterByStatus);
labelSearchByStatus.setVisibility(View.VISIBLE);
layoutFilterByStatus.setVisibility(View.VISIBLE);
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource
(getActivity(), R.array.cbSearchByStatus,R.layout.spinner_style);
cbSearchByStatus.setAdapter(adapter);
}
@Override
protected Intent getNextActivityIntent() {
Intent intent =null;
if(taskType==Global.TASK_ORDER_REASSIGNMENT){
intent = new Intent(getActivity(), OrderReassignmentResult.class);
intent.putExtra(Global.BUND_KEY_TASK_TYPE, taskType);
}
return intent;
}
@Override
public void onResume(){
super.onResume();
// getActivity().getActionBar().removeAllTabs();
//Set Firebase screen name
screenName.setCurrentScreen(getActivity(), getString(R.string.screen_name_survey_reassignment), null);
if(taskType==Global.TASK_CANCEL_ORDER){
// getActivity().getActionBar().setTitle(getString(R.string.title_mn_cancelorder));
}
else if(taskType==Global.TASK_ORDER_REASSIGNMENT){
// getActivity().getActionBar().setTitle(getString(R.string.title_mn_surveyreassign));
// olivia : set toolbar
getActivity().findViewById(com.adins.mss.base.R.id.search).setVisibility(View.GONE);
getActivity().findViewById(com.adins.mss.base.R.id.spinner).setVisibility(View.GONE);
getActivity().setTitle(getString(com.adins.mss.base.R.string.title_mn_surveyreassign));
}
// getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
}
}

View file

@ -0,0 +1,46 @@
package com.adins.mss.svy.reassignment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.adins.mss.constant.Global;
import org.acra.ACRA;
public class OrderReassignmentActivity extends CheckOrderActivity{
private int taskType;
private Bundle mArguments;
@Override
public void onAttach(Context activity) {
super.onAttach(activity);
setHasOptionsMenu(false);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
mArguments = getArguments();
taskType = mArguments.getInt(Global.BUND_KEY_TASK_TYPE, 0);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
return view;
}
@Override
protected Intent getNextActivityIntent() {
// TODO Auto-generated method stub
super.getNextActivityIntent();
Intent fragment = new Intent(getActivity(), OrderReassignmentResult.class);
Bundle args = new Bundle();
args.putString("startDate", txtStartDate.getText().toString());
args.putString("endDate", txtEndDate.getText().toString());
args.putString("nomorOrder", txtNomorOrder.getText().toString());
args.putString("status", "1");
fragment.putExtras(args);
return fragment;
}
}

View file

@ -0,0 +1,262 @@
package com.adins.mss.svy.reassignment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnGroupClickListener;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.LocaleHelper;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Formatter;
import com.adins.mss.svy.assignment.OrderAssignmentResult;
import com.adins.mss.svy.models.ExpandableListAdapter;
import com.adins.mss.svy.reassignment.JsonResponseServer.ResponseServer;
import org.acra.ACRA;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
public class OrderReassignmentResult extends ResultOrderActivity implements OnGroupClickListener{
public static final String ON_SURVEY = "OnSurvey";
public static final String ON_PROGRESS_SURVEY = "On Progress Survey";
public static final String ON_CA = "OnCA";
public static final String ON_CA1 = "On CA";
private int taskType;
private String searchByStatus;
private List<ResponseServer> responseServer;
ExpandableListAdapter listAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
taskType = this.getIntent().getIntExtra(Global.BUND_KEY_TASK_TYPE, 0);
}
@Override
protected void initialize() {
super.initialize();
expListView.setGroupIndicator(null);
expListView.setOnGroupClickListener(this);
Intent i = getIntent();
searchByStatus = i.getStringExtra("status");
if(searchByStatus==null){
searchByStatus="1";
}
}
@Override
protected void attachBaseContext(Context newBase) {
Context context = newBase;
Locale locale;
try{
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
context = LocaleHelper.wrap(newBase, locale);
} catch (Exception e) {
locale = new Locale(LocaleHelper.ENGLSIH);
context = LocaleHelper.wrap(newBase, locale);
} finally {
super.attachBaseContext(context);
}
}
@Override
public void onResume(){
super.onResume();
}
@Override
protected String getUsedURL() {
return GlobalData.getSharedGlobalData().getURL_GET_LIST_REASSIGNMENT();
}
@Override
protected List<NameValuePair> generateRequestParam() throws ParseException {
String sdtSDate = "1";
String sdtEDate = "1";
if(startDate==null||endDate==null||"".equalsIgnoreCase(startDate)||"".equalsIgnoreCase(endDate)
||"1".equalsIgnoreCase(startDate)||"1".equalsIgnoreCase(endDate)){
}else{
//convert format date biar bisa di tranlate di DB servernya
SimpleDateFormat f = new SimpleDateFormat(Global.DATE_STR_FORMAT);
Date sDate,eDate;
sDate = f.parse(startDate);
eDate = f.parse(endDate);
sdtSDate = Formatter.formatDate(sDate, Global.DATE_STR_FORMAT_GSON);
sdtEDate = Formatter.formatDate(eDate, Global.DATE_STR_FORMAT_GSON);
}
if (orderNumber == null) orderNumber = "1";
String flag = flagParamForType(this.taskType);
List<NameValuePair> param = new ArrayList<NameValuePair>();
param.add(new BasicNameValuePair("startdate", sdtSDate));
param.add(new BasicNameValuePair("enddate", sdtEDate));
param.add(new BasicNameValuePair("ordernumber", orderNumber));
param.add(new BasicNameValuePair("flag", flag));
param.add(new BasicNameValuePair("status", searchByStatus ));
return param;
}
protected String flagParamForType(int taskType){
String flagParam;
switch (taskType) {
case Global.TASK_ORDER_ASSIGNMENT:
flagParam = Global.FLAG_FOR_ORDERASSIGNMENT;
break;
case Global.TASK_ORDER_REASSIGNMENT:
flagParam = Global.FLAG_FOR_ORDERREASSIGNMENT;
break;
case Global.TASK_CANCEL_ORDER:
//bangkit 20141027 change param from UO to UOC
flagParam = Global.FLAG_FOR_CANCELORDER;
break;
default:
flagParam = "";
break;
}
return flagParam;
}
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition,
long id) {
// TODO Auto-generated method stub
String nomorOrder = responseServer.get(groupPosition).getKey();
String uuid_task_h = responseServer.get(groupPosition).getFlag();
String formName = responseServer.get(groupPosition).getFormName();
gotoDetailData(taskType, nomorOrder, uuid_task_h, formName);
return true;
}
protected void gotoDetailData(int taskType, String nomorOrder, String uuid_task_h, String formName){
Intent intent = null;
switch (taskType) {
case Global.TASK_ORDER_ASSIGNMENT:
break;
case Global.TASK_ORDER_REASSIGNMENT:
intent = new Intent(this, OrderAssignmentResult.class);
intent.putExtra(Global.BUND_KEY_ORDERNO, nomorOrder);
intent.putExtra(Global.BUND_KEY_FORM_NAME, formName);
break;
default:
break;
}
intent.putExtra(Global.BUND_KEY_TASK_TYPE, taskType);
intent.putExtra(Global.BUND_KEY_ORDERNO, nomorOrder);
intent.putExtra(Global.BUND_KEY_UUID_TASKH, uuid_task_h);
startActivity(intent);
}
protected String flagParamForStatusCode(String code){
String flagParam;
if(ON_SURVEY.equalsIgnoreCase(code)){
flagParam = ON_PROGRESS_SURVEY;
}else if (ON_CA.equalsIgnoreCase(code)){
flagParam = ON_CA1;
}else{
flagParam = "";
}
return flagParam;
}
@Override
protected void processServerResponse(String result) {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
LinkedHashMap<String, String> listResult = new LinkedHashMap<>();
try {
JsonResponseServer resultOrder= GsonHelper.fromJson(result, JsonResponseServer.class);
if(resultOrder.getStatus().getCode() == 0){
responseServer = resultOrder.getListResponseServer();
if(responseServer != null && responseServer.size() > 0){
for(int i=0; i<responseServer.size(); i++){
ResponseServer mobileBean = responseServer.get(i);
String orderNo = "";
if(mobileBean.getKey()!=null)
orderNo = mobileBean.getKey();
String customerName = mobileBean.getValue();
listResult.put(orderNo, customerName);
listAdapter = new ExpandableListAdapter(this, listResult);
expListView.setAdapter(listAdapter);
}
}
else{
String message;
if(resultOrder.getStatus().getMessage()!=null){
message = getString(com.adins.mss.base.R.string.data_not_found) +resultOrder.getStatus().getMessage();
}else{
message = getString(com.adins.mss.base.R.string.data_not_found);
}
final NiftyDialogBuilder builder = NiftyDialogBuilder.getInstance(this);
builder.withTitle(getString(com.adins.mss.base.R.string.info_capital))
.withMessage(message)
.withButton1Text(getString(com.adins.mss.base.R.string.btnOk))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
builder.dismiss();
finish();
}
}).show();
}
}else{
if(GlobalData.isRequireRelogin()){
return;
}
final NiftyDialogBuilder builder = NiftyDialogBuilder.getInstance(this);
builder.withTitle(getString(com.adins.mss.base.R.string.info_capital))
.withMessage(getString(com.adins.mss.base.R.string.data_not_found))
.withButton1Text(getString(com.adins.mss.base.R.string.btnOk))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
builder.dismiss();
finish();
}
}).show();
}
} catch (Exception e) {
FireCrash.log(e);
if(Global.IS_DEV) System.out.println(e);
final NiftyDialogBuilder builder = NiftyDialogBuilder.getInstance(this);
builder.withTitle(getString(com.adins.mss.base.R.string.info_capital))
.withMessage(e.getMessage())
.withButton1Text(getString(com.adins.mss.base.R.string.btnOk))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
builder.dismiss();
finish();
}
}).show();
}
}
}

View file

@ -0,0 +1,363 @@
package com.adins.mss.svy.reassignment;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.Toast;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.commons.TaskListener;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.LocaleHelper;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Formatter;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.svy.R;
import com.adins.mss.svy.models.ExpandableListAdapter;
import com.adins.mss.svy.reassignment.JsonResponseServer.ResponseServer;
import org.acra.ACRA;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
/**
* Created by winy.firdasari on 20/01/2015.
*/
public class ResultOrderActivity extends AppCompatActivity {
private static String url = GlobalData.getSharedGlobalData().getURL_CHECKORDER();
protected String getUsedURL(){
return GlobalData.getSharedGlobalData().getURL_CHECKORDER();
}
ExpandableListAdapter listAdapter;
protected ExpandableListView expListView;
protected List<String> listDataHeader;
protected HashMap<String, List<String>> listDataChild;
protected String startDate;
protected String endDate;
protected String orderNumber;
protected String flag;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_survey_reassign_activity);
// olivia : set toolbar
Toolbar toolbar = (Toolbar) findViewById(com.adins.mss.base.R.id.toolbar);
toolbar.setTitle(getString(R.string.title_mn_surveyreassign));
toolbar.setTitleTextColor(getResources().getColor(com.adins.mss.base.R.color.fontColorWhite));
setSupportActionBar(toolbar);
ACRA.getErrorReporter().putCustomData("LAST_CLASS_ACCESSED", getClass().getSimpleName());
initialize();
try {
generateRequestParam();
} catch (ParseException e) {
e.printStackTrace();
}
new ResultOrderTask().execute();
}
@Override
protected void attachBaseContext(Context newBase) {
Context context = newBase;
Locale locale;
try{
locale = new Locale(GlobalData.getSharedGlobalData().getLocale());
context = LocaleHelper.wrap(newBase, locale);
} catch (Exception e) {
locale = new Locale(LocaleHelper.ENGLSIH);
context = LocaleHelper.wrap(newBase, locale);
} finally {
super.attachBaseContext(context);
}
}
TaskListener listener = new TaskListener() {
@Override
public void onCompleteTask(Object result) {
processServerResponse(result.toString());
}
@Override
public void onCancelTask(boolean value) {
//EMPTY
}
@Override
public void onLocalData(Object result) {
//EMPTY
}
};
protected void initialize() {
Intent i = getIntent();
// Receiving the Data
String mStartDate = i.getStringExtra("startDate");
String mEndDate = i.getStringExtra("endDate");
String newflag= i.getStringExtra("flag");
ResultOrderActivity.url = getUsedURL();
startDate=mStartDate;
endDate=mEndDate;
flag=Global.FLAG_BY_DATE;
if(newflag!=null){
flag = newflag;
}
if("orderTracking".equalsIgnoreCase(flag)){
startDate="1";
endDate="1";
}
expListView = (ExpandableListView) findViewById(R.id.resultOrderlist);
// Listview Group click listener
expListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
return false;
}
});
// Listview Group expanded listener
expListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
Toast.makeText(getApplicationContext(),
listDataHeader.get(groupPosition) + " Expanded",
Toast.LENGTH_SHORT);
}
});
// Listview Group collasped listener
expListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
Toast.makeText(getApplicationContext(),
listDataHeader.get(groupPosition) + " Collapsed",
Toast.LENGTH_SHORT);
}
});
// Listview on child click listener
expListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
Toast.makeText(
getApplicationContext(),
listDataHeader.get(groupPosition)
+ " : "
+ listDataChild.get(
listDataHeader.get(groupPosition)).get(
childPosition), Toast.LENGTH_SHORT);
return false;
}
});
}
public String getDataFromURL(String url) throws IOException {
String resp = null;
try {
List<NameValuePair> param = generateRequestParam();
JsonRequestCheckOrder requestCheckOrder = new JsonRequestCheckOrder();
requestCheckOrder.setAudit(GlobalData.getSharedGlobalData().getAuditData());
if(param.get(3).getValue().equals(Global.FLAG_BY_DATE)){
requestCheckOrder.setStartDate(param.get(0).getValue());
requestCheckOrder.setEndDate(param.get(1).getValue());
}
else if(param.get(3).getValue().equals(Global.FLAG_BY_ORDERNUMBER)){
requestCheckOrder.setOrderNumber(param.get(2).getValue());
}
else if(param.get(3).getValue().equals(Global.FLAG_FOR_CANCELORDER)){
if(param.get(2).getValue().equals("1")){
requestCheckOrder.setStartDate(param.get(0).getValue());
requestCheckOrder.setEndDate(param.get(1).getValue());
}else{
requestCheckOrder.setOrderNumber(param.get(2).getValue());
}
}
else if(param.get(3).getValue().equals(Global.FLAG_FOR_ORDERREASSIGNMENT)){
if(param.get(2).getValue().equals("1")){
requestCheckOrder.setStartDate(param.get(0).getValue());
requestCheckOrder.setEndDate(param.get(1).getValue());
}else{
requestCheckOrder.setOrderNumber(param.get(2).getValue());
}
requestCheckOrder.setFlag(param.get(3).getValue());
}
String json = GsonHelper.toJson(requestCheckOrder);
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(ResultOrderActivity.this, encrypt, decrypt);
HttpConnectionResult serverResult = null;
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
resp = serverResult.getResult();
} catch (Exception e) {
FireCrash.log(e);
resp=e.getMessage();
}
return resp;
}
protected List<NameValuePair> generateRequestParam() throws ParseException {
String sdtSDate = "1";
String sdtEDate = "1";
if(startDate==null||endDate==null||"".equalsIgnoreCase(startDate)||"".equalsIgnoreCase(endDate)
||"1".equalsIgnoreCase(startDate)||"1".equalsIgnoreCase(endDate)){
}else{
//convert format date biar bisa di tranlate di DB servernya
SimpleDateFormat f = new SimpleDateFormat(Global.DATE_STR_FORMAT);
Date sDate,eDate;
sDate = f.parse(startDate);
eDate = f.parse(endDate);
sdtSDate = Formatter.formatDate(sDate, Global.DATE_STR_FORMAT_GSON);
sdtEDate = Formatter.formatDate(eDate, Global.DATE_STR_FORMAT_GSON);
}
List<NameValuePair> param = new ArrayList<>();
param.add(new BasicNameValuePair("startdate", sdtSDate));
param.add(new BasicNameValuePair("enddate", sdtEDate));
param.add(new BasicNameValuePair("ordernumber", orderNumber));
param.add(new BasicNameValuePair("flag", flag));
return param;
}
protected void processServerResponse(String result) {
if(GlobalData.isRequireRelogin()){
return;
}
listDataHeader = new ArrayList<>();
listDataChild = new HashMap<>();
try {
JsonResponseServer resultOrder = GsonHelper.fromJson(result, JsonResponseServer.class);
for(int i=0;i<resultOrder.getListResponseServer().size();i++){
ResponseServer responseServer = resultOrder.getListResponseServer().get(i);
String orderNo = responseServer.getKey();
String customerName = responseServer.getValue();
listDataHeader.add(orderNo+" - "+customerName);
List<ResponseServer> SubResultOrder = responseServer.getSubListResponseServer();
List<String> statusOrder = new ArrayList<>();
for(int ii = 0; ii < SubResultOrder.size(); ii++){
ResponseServer subResponseServer = SubResultOrder.get(ii);
statusOrder.add(subResponseServer.getValue());
}
listDataChild.put(listDataHeader.get(i), statusOrder);
listAdapter = new ExpandableListAdapter(ResultOrderActivity.this, listDataHeader, listDataChild);
expListView.setAdapter(listAdapter);
}
} catch (Exception e) { FireCrash.log(e);
if(Global.IS_DEV) System.out.println(e);
final NiftyDialogBuilder builder = NiftyDialogBuilder.getInstance(this);
builder.withTitle(getString(R.string.info_capital))
.withMessage(this.getString(R.string.jsonParseFailed))
.withButton1Text(getString(R.string.btnOk))
.setButton1Click(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
builder.dismiss();
finish();
}
}).show();
}
}
private class ResultOrderTask extends AsyncTask<String, Void, String> {
private ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(ResultOrderActivity.this,
"", getString(R.string.progressWait), true);
}
@Override
protected String doInBackground(String... arg0) {
String result = null;
if(Tool.isInternetconnected(getApplicationContext())){
try {
result = ResultOrderActivity.this.getDataFromURL(url);
} catch (IOException ioe) {
ioe.printStackTrace();
try {
progressDialog.dismiss();
} catch (Exception e) { FireCrash.log(e);}
getApplicationContext().getString(R.string.jsonParseFailed);
}
}
else{
result = getString(R.string.no_internet_connection);
}
return result;
}
@Override
protected void onPostExecute(String result) {
if (progressDialog!=null&&progressDialog.isShowing()){
try {
progressDialog.dismiss();
} catch (Exception e) {
FireCrash.log(e);
}
}
if (getString(R.string.no_internet_connection).equals(result)) {
NiftyDialogBuilder builder = NiftyDialogBuilder.getInstance(ResultOrderActivity.this);
builder.withTitle(getString(R.string.info_capital))
.withMessage(getString(R.string.no_internet_connection))
.show();
}else{
processServerResponse(result);
}
}
}
}

View file

@ -0,0 +1,26 @@
package com.adins.mss.svy.reassignment;
/**
* Created by winy.firdasari on 20/01/2015.
*/
public class StatusOrder {
public String Status;
public String Tanggal;
public StatusOrder(){
}
public String getStatus() {
return Status;
}
public String getTanggal() {
return Tanggal;
}
public void setStatus(String Status) {
this.Status = Status;
}
public void setTanggal(String Tanggal) {
this.Tanggal = Tanggal;
}
}

View file

@ -0,0 +1,64 @@
package com.adins.mss.svy.tool;
import android.content.Context;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.dao.TaskH;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import java.util.List;
public class Constants {
public static final int START_DATE_DIALOG_ID=0;
public static final int END_DATE_DIALOG_ID=1;
public static final String KEY_START_DATE="start date";
public static final String KEY_END_DATE="end date";
public static final String KEY_DATE="date";
public static List<TaskH> listOfVerifiedTask;
public static List<TaskH> listOfApprovalTask;
public static long getCounterVerificationTask(Context context){
long counter=0;
try {
counter = TaskHDataAccess.getVerificationTaskCounterByUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
return counter;
}
public static long getCounterApprovalTask(Context context){
long counter=0;
try {
counter = TaskHDataAccess.getApprovalTaskCounterByUser(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
return counter;
}
public static long getCounterVerificationTaskByBranch(Context context){
long counter=0;
try {
counter = TaskHDataAccess.getVerificationTaskCounterByBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
return counter;
}
public static long getCounterApprovalTaskByBranch(Context context){
long counter=0;
try {
counter = TaskHDataAccess.getApprovalTaskCounterByBranch(context, GlobalData.getSharedGlobalData().getUser().getUuid_user());
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
return counter;
}
}

View file

@ -0,0 +1,56 @@
package com.adins.mss.svy.tool;
import android.content.Context;
import com.adins.mss.base.authentication.Authentication;
import com.adins.mss.constant.Global;
import com.adins.mss.foundation.db.DaoOpenHelper;
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
//import android.content.SharedPreferences;
public class CopyDb extends DaoOpenHelper {
Context context;
public CopyDb(Context context) {
super(context);
this.context = context;
}
public void copyTable(){
final String DBDestination = "/data/data/" + context.getPackageName() + "/databases/msmdb";
try(OutputStream os = new FileOutputStream(DBDestination);
InputStream is = context.getAssets().open("msmdb")){
// File file = new File("/data/data/" + context.getPackageName() + "/databases/", "msmdb");
ObscuredSharedPreferences pref = ObscuredSharedPreferences.getPrefs(context,Authentication.SHARED_PREF, Context.MODE_PRIVATE);
boolean isDbWrite = pref.getBoolean(Authentication.SHARED_PREF_KEY_DB_SAVED, false);
if(!isDbWrite){
byte [] buffer = new byte[1024];
int length;
while((length = is.read(buffer)) > 0){
os.write(buffer, 0, length);
}
os.flush();
if(Global.IS_DEV)
System.out.println("Copy db from assets success");
ObscuredSharedPreferences.Editor sharedPrefEditor = pref.edit();
sharedPrefEditor.putBoolean(Authentication.SHARED_PREF_KEY_DB_SAVED, true);
sharedPrefEditor.apply();
} else {
if(Global.IS_DEV)
System.out.println("Database msmdb already exist");
}
} catch (IOException e){
e.printStackTrace();
}
}
}

View file

@ -0,0 +1,65 @@
package com.adins.mss.svy.tool;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.image.Utils;
import com.adins.mss.svy.R;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ImageThumbnail extends LinearLayout{
ImageView imgView;
TextView detailText;
private Bitmap thumbnail = null;
byte[] resultImg = null;
public ImageThumbnail(Context context, int width, int height) {
super(context);
//Init container
this.setOrientation(LinearLayout.VERTICAL);
this.setGravity(Gravity.LEFT);
//Init image thumbnail
imgView = new ImageView(context);
ViewGroup.LayoutParams imgLayout = new LayoutParams(width, height);
imgView.setLayoutParams(imgLayout);
imgView.setImageResource(R.drawable.ic_image);
//Init detail text
detailText = new TextView(context);
detailText.setTextColor(Color.BLACK);
this.addView(imgView);
// this.addView(detailText);
}
public byte[] getResultImg() {
return resultImg;
}
public void setResultImg(byte[] resultImg) throws Exception{
this.resultImg = resultImg;
try{
Bitmap bm = Utils.byteToBitmap(resultImg);
int[] res = Tool.getThumbnailResolution(bm.getWidth(), bm.getHeight());
Bitmap thumbnail = Bitmap.createScaledBitmap(bm, res[0], res[1], true);
imgView.setImageBitmap(thumbnail);
detailText.setText(" "+bm.getWidth()+" x " +bm.getHeight()+". Size "+ resultImg.length +" Bytes");
}
catch(Exception e){
throw e;
}
}
public void setImageResource(int res){
imgView.setImageResource(res);
}
}

View file

@ -0,0 +1,45 @@
package com.adins.mss.svy.tool;
import com.adins.mss.foundation.http.KeyValue;
import com.adins.mss.foundation.http.MssResponseType;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class JsonResponseServer extends MssResponseType{
@SerializedName("listResponseServer")
List<ResponseServer> listResponseServer;
public List<ResponseServer> getListResponseServer() {
return listResponseServer;
}
public void setListResponseServer(List<ResponseServer> listResponseServer) {
this.listResponseServer = listResponseServer;
}
public class ResponseServer extends KeyValue {
@SerializedName("flag")
String flag;
@SerializedName("subListResponseServer")
List<ResponseServer> subListResponseServer;
public ResponseServer(String key, String value) {
super(key, value);
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
public List<ResponseServer> getSubListResponseServer() {
return subListResponseServer;
}
public void setSubListResponseServer(List<ResponseServer> subListResponseServer) {
this.subListResponseServer = subListResponseServer;
}
}
}

View file

@ -0,0 +1,19 @@
package com.adins.mss.svy.tool;
import com.adins.mss.dao.TaskD;
import com.adins.mss.foundation.http.MssResponseType;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class JsonTaskD extends MssResponseType {
@SerializedName("listTaskD")
List<TaskD> listTaskD;
public List<TaskD> getListTaskD(){
return listTaskD;
}
public void setListTaskD (List<TaskD> listTaskD){
this.listTaskD = listTaskD;
}
}

View file

@ -0,0 +1,127 @@
package com.adins.mss.svy.tool;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.TaskD;
import com.adins.mss.foundation.dialog.NiftyDialogBuilder;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.foundation.image.JsonResponseImage;
import com.adins.mss.svy.R;
import com.adins.mss.svy.assignment.OrderAssignmentResult;
import com.adins.mss.svy.reassignment.JsonRequestImage;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import org.apache.http.NameValuePair;
import java.lang.ref.WeakReference;
import java.util.List;
public class getImageTask extends AsyncTask<Void, Void, byte[]> {
private ProgressDialog progressDialog;
private String errMessage = null;
private WeakReference<Activity> activity;
static byte[] imagebyte =null;
List<NameValuePair> params;
public getImageTask(Activity activity, List<NameValuePair> params){
this.activity = new WeakReference<Activity>(activity);
this.params = params;
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(activity.get(),
"", activity.get().getString(R.string.progressWait), true);
}
@Override
protected byte[] doInBackground(Void... arg0) {
byte[] imageResult =null;
JsonRequestImage request = new JsonRequestImage();
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
request.setUuid_task_h(params.get(0).getValue());
request.setQuestion_id(params.get(1).getValue());
String json = GsonHelper.toJson(request);
String url = GlobalData.getSharedGlobalData().getURL_GET_IMAGE();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(activity.get(), encrypt, decrypt);
HttpConnectionResult serverResult = null;
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
String result = serverResult.getResult();
JsonResponseImage resultServer = null;
try {
resultServer = GsonHelper.fromJson(result, JsonResponseImage.class);
if(resultServer.getStatus().getCode()==0){
List<TaskD> taskDs = resultServer.getImg();
TaskD d = taskDs.get(0);
imageResult = d.getImage();
}else{
errMessage = resultServer.getStatus().getMessage();
}
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
errMessage = e.getMessage();
}
return imageResult;
}
@Override
protected void onPostExecute(byte[] result){
if (progressDialog.isShowing()){
try {
progressDialog.dismiss();
} catch (Exception e) {
FireCrash.log(e);
}
}
if(errMessage!=null){
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(activity.get());
dialogBuilder.withTitle(activity.get().getString(R.string.error_capital))
.withMessage(errMessage)
.show();
}else{
if(null==result){
NiftyDialogBuilder dialogBuilder = NiftyDialogBuilder.getInstance(activity.get());
dialogBuilder.withTitle(activity.get().getString(R.string.info_capital))
.withMessage(activity.get().getString(R.string.no_image))
.show();
}else{
try {
OrderAssignmentResult.targetThumbnail.setResultImg(result);
} catch (Exception e) {
FireCrash.log(e);
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}

View file

@ -0,0 +1,146 @@
package com.services;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import androidx.core.app.NotificationCompat;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.commons.BackupManager;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.timeline.TimelineManager;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.User;
import com.adins.mss.foundation.camerainapp.helper.Logger;
import com.adins.mss.foundation.notification.Notification;
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
import com.adins.mss.svy.MSMainMenuActivity;
import com.adins.mss.svy.NewMSMainActivity;
import com.google.firebase.messaging.RemoteMessage;
import java.util.Map;
import static java.lang.Thread.NORM_PRIORITY;
public class FirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationManager mNotificationManager =
(NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel channel = new NotificationChannel("messaging", "Notification", NotificationManager.IMPORTANCE_HIGH);
channel.setDescription("Application Notification Message");
mNotificationManager.createNotificationChannel(channel);
}
// TODO(developer): Handle FCM messages here.
// Not getting messages here? See why this may be: https://goo.gl/39bRNJ
Logger.d("FirebaseMessagingServ", "From: " + remoteMessage.getFrom());
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Logger.d("FirebaseMessagingServ", "Message data payload: " + remoteMessage.getData());
//Nendi: 2019-01-18 | Add event listener
Map<String, String> extras = remoteMessage.getData();
if (extras.containsKey("event")) {
String eventType = extras.get("event");
if (eventType == null)
return;
switch (eventType) {
case "backup":
String entity = extras.get("entity");
String constraint = null;
if (extras.containsKey("constraint")) {
constraint = extras.get("constraint");
BackupManager backupManager = new BackupManager(getApplicationContext());
backupManager.backup(entity, constraint);
break;
}
default:
break;
}
return;
}
}
// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
Logger.d("FirebaseMessagingServ", "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
String notif = null;
try {
notif = remoteMessage.getData().get("message");
if (notif == null || notif.equals("")) {
notif = remoteMessage.getNotification().getBody();
}
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(getApplicationContext(),
"GlobalData", Context.MODE_PRIVATE);
boolean hasLogged = sharedPref.getBoolean("HAS_LOGGED", false);
User user = GlobalData.getSharedGlobalData().getUser();
if (null != user && hasLogged){
showNotif("" + notif);
TimelineManager.insertTimelinePushNotification(getBaseContext(), "" + notif);
}
}
// public static String MAINMENU_NOTIFICATION_KEY = "MAINMENU_NOTIFICATION_KEY";
public void showNotif(String notif) {
String notifTitle = getApplicationContext().getString(com.adins.mss.base.R.string.push_notification);
// String message = getApplicationContext().getString(com.adins.mss.base.R.string.push_notification_info);
// TODO munculkan notifikasi di sini
Intent intent = new Intent(getApplicationContext(), NewMSMainActivity.class);
ComponentName cn = intent.getComponent();
intent.makeMainActivity(cn);
intent.setAction(Global.MAINMENU_NOTIFICATION_KEY);
PendingIntent pendingIntent = PendingIntent
.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification.getSharedNotification().setDefaultIcon(
com.adins.mss.base.R.drawable.icon_notif_new);
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext(), "messaging");
builder.setSmallIcon(getNotificationIcon());
builder.setContentTitle(notifTitle);
builder.setContentText(notif);
builder.setPriority(NORM_PRIORITY);
NotificationCompat.BigTextStyle inboxStyle =
new NotificationCompat.BigTextStyle();
// Sets a title for the Inbox in expanded layout
inboxStyle.setBigContentTitle(notifTitle);
inboxStyle.bigText(notif);
inboxStyle.setSummaryText(getApplicationContext().getString(com.adins.mss.base.R.string.click_to_open));
builder.setDefaults(android.app.Notification.DEFAULT_ALL);
builder.setStyle(inboxStyle);
builder.setAutoCancel(true);
builder.setContentIntent(pendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, builder.build());
}
public static int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
return useWhiteIcon ? com.adins.mss.base.R.drawable.icon_notif_new_white : com.adins.mss.base.R.drawable.icon_notif_new;
}
}

View file

@ -0,0 +1,81 @@
package com.services;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import androidx.core.app.NotificationCompat;
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
import com.adins.mss.svy.R;
import com.tracking.LocationTrackingService;
public class MSLocationTrackingService extends LocationTrackingService {
public MSLocationTrackingService() {
}
@Override
public void onCreate() {
super.onCreate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(getPackageName(), getString(R.string.app_name), NotificationManager.IMPORTANCE_HIGH);
channel.setDescription("App Service Persistent");
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.createNotificationChannel(channel);
}
ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(this,
"GlobalData", Context.MODE_PRIVATE);
if (sharedPref.contains("HAS_LOGGED")) {
Notification notification = new NotificationCompat.Builder(this, getPackageName())
.setSmallIcon(R.drawable.icon_notif_new)
.setContentTitle(getString(R.string.app_name))
.setContentText(getString(R.string.application_is_running))
.setVisibility(NotificationCompat.VISIBILITY_PRIVATE)
.setOngoing(true)
.build();
startForeground(2043, notification);
}
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onDestroy() {
super.onDestroy();
String manufacture = Build.MANUFACTURER.toLowerCase();
ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(getApplicationContext(),
"GlobalData", Context.MODE_PRIVATE);
boolean hasLogged = sharedPref.getBoolean("HAS_LOGGED", false);
if(hasLogged) {
switch (manufacture) {
case "oppo":
case "vivo":
Intent autoRestartService = new Intent("com.adins.intent.action_RESTART_AUTOSEND_LOCATION");
sendBroadcast(autoRestartService);
break;
default:
break;
}
}
}
public static class UserLogoutReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent locationTrackingService = new Intent(context, MSLocationTrackingService.class);
context.stopService(locationTrackingService);
}
}
}

View file

@ -0,0 +1,58 @@
package com.services;
import android.app.ActivityManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.util.Log;
import com.adins.mss.foundation.security.storepreferences.ObscuredSharedPreferences;
import java.util.List;
public class RestartAutoSendLocationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i(getClass().getSimpleName(), "Received message to restart service Tracking History");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
return;
if (!isAppRunning(context, context.getPackageName())) {
Intent main = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
if (main != null) {
main.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
context.startActivity(main);
}
ObscuredSharedPreferences sharedPref = ObscuredSharedPreferences.getPrefs(context,
"GlobalData", Context.MODE_PRIVATE);
boolean hasLogged = sharedPref.getBoolean("HAS_LOGGED", false);
if (!ForegroundServiceNotification.isServiceAvailable(context, MSLocationTrackingService.class)
&& hasLogged) {
String manufacture = Build.MANUFACTURER.toLowerCase();
switch (manufacture) {
case "vivo":
context.startService(new Intent(context, MSLocationTrackingService.class));
break;
default:
break;
}
}
}
public static boolean isAppRunning(final Context context, final String packageName) {
final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
final List<ActivityManager.RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
if (procInfos != null)
{
for (final ActivityManager.RunningAppProcessInfo processInfo : procInfos) {
if (processInfo.processName.equals(packageName)) {
return true;
}
}
}
return false;
}
}

View file

@ -0,0 +1,48 @@
package com.services;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import com.adins.mss.base.mainmenu.MainMenuActivity;
import com.adins.mss.svy.MSMainMenuActivity;
public class SurveyApprovalService extends Service {
private SurveyApprovalThread auto;
@Override
public void onDestroy() {
super.onDestroy();
stopSurveyApprovalThread();
}
@Override
public void onCreate() {
super.onCreate();
auto = MSMainMenuActivity.approvalThread;
startSurveyApprovalThread();
}
public synchronized void startSurveyApprovalThread() {
if (auto == null) {
auto = new SurveyApprovalThread(getApplicationContext());
auto.start();
}
else {
auto.start();
}
}
public synchronized void stopSurveyApprovalThread() {
if (auto != null) {
auto.requestStop();
auto = null;
}
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}

View file

@ -0,0 +1,510 @@
package com.services;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.Looper;
import androidx.core.app.NotificationCompat;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.R;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.dynamicform.JsonRequestTaskD;
import com.adins.mss.base.dynamicform.JsonResponseTaskD;
import com.adins.mss.base.mainmenu.MainMenuActivity;
import com.adins.mss.base.timeline.TimelineManager;
import com.adins.mss.base.timeline.activity.Timeline_Activity;
import com.adins.mss.base.todolist.ToDoList;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.Scheme;
import com.adins.mss.dao.TaskD;
import com.adins.mss.dao.TaskH;
import com.adins.mss.dao.Timeline;
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
import com.adins.mss.foundation.db.dataaccess.SchemeDataAccess;
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.db.dataaccess.TimelineDataAccess;
import com.adins.mss.foundation.db.dataaccess.TimelineTypeDataAccess;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.foundation.notification.Notification;
import com.adins.mss.main.MSMApplication;
import com.adins.mss.svy.MSMainMenuActivity;
import com.adins.mss.svy.SurveyApprovalListTask;
import com.adins.mss.svy.models.JsonRequestTaskWithMode;
import com.adins.mss.svy.tool.Constants;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import org.acra.ACRA;
import java.util.ArrayList;
import java.util.List;
//import com.adins.mss.foundation.notification.Notification.Tone;
//import com.adins.mss.foundation.notification.Notification.Vibrate;
public class SurveyApprovalThread extends Thread {
public static final String APPROVALLIST_NOTIFICATION_KEY = "APPROVALLIST_NOTIFICATION_KEY";
public static final String APPROVALBRANCHLIST_NOTIFICATION_KEY = "APPROVALBRANCHLIST_NOTIFICATION_KEY";
private Context context;
private int interval; // in miliseconds
private volatile boolean keepRunning = true;
private volatile boolean isWait = false;
public static long lastAssigmentDate = 0;
String sentStatus = "";
public static List<TaskH> taskHList = new ArrayList<TaskH>();
public static int notifCount = 0;
public String uuidUser ;
public boolean firstNotif = true;
// public Class mss;
public SurveyApprovalThread(Context context) {
// TODO Auto-generated constructor stub
this.context = context;
interval = Global.MINUTE * 10;
try {
uuidUser = GlobalData.getSharedGlobalData().getUser()
.getUuid_user();
if(uuidUser!=null){
if (GeneralParameterDataAccess.getOne(context, uuidUser, "PRM04_F5IN")
.getGs_value() != null
&& !GeneralParameterDataAccess
.getOne(context, uuidUser, "PRM04_F5IN").getGs_value()
.isEmpty()) {
interval = Integer.parseInt(GeneralParameterDataAccess.getOne(
context, uuidUser, "PRM04_F5IN").getGs_value()) * 1000; // from
// milisecond
// to
// second
}
}else{
keepRunning = false;
}
} catch (Exception e) {
FireCrash.log(e);
if(Global.user!=null){
uuidUser = Global.user.getUuid_user();
if(uuidUser!=null){
if (GeneralParameterDataAccess.getOne(context, uuidUser, "PRM04_F5IN")
.getGs_value() != null
&& !GeneralParameterDataAccess
.getOne(context, uuidUser, "PRM04_F5IN").getGs_value()
.isEmpty()) {
interval = Integer.parseInt(GeneralParameterDataAccess.getOne(
context, uuidUser, "PRM04_F5IN").getGs_value()) * 1000; // from
// milisecond
// to
// second
}
}
}else{
keepRunning = false;
}
}
}
@Override
public void run() {
while (keepRunning) {
try {
synchronized (this) {
if (isWait) {
this.wait();
}
}
if (Tool.isInternetconnected(context)) {
if(NewMainActivity.mnSurveyApproval!=null){
notifCount = 0;
taskHList = getServerNewTask(false);
notifCount = taskHList.size();
// save to local
if(taskHList!=null && taskHList.size()>0)
ProcessTaskList(notifCount, taskHList, false);
} else if(NewMainActivity.mnApprovalByBranch !=null){
notifCount = 0;
taskHList = getServerNewTask(true);
notifCount = taskHList.size();
// save to local
if(taskHList!=null &&taskHList.size()>0)
ProcessTaskList(notifCount, taskHList, true);
}
}
// bong 10 apr 15 - Gigin request penjagaan jika PRM F5IN dari
// server = 0
// minimal notif jalan satu kali
if (interval == 0) {
keepRunning = false;
}
/*Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
public void run() {
// UI code goes here
try {
if (MainMenuActivity.mnSVYApproval != null)
MainMenuActivity.mnSVYApproval.setCounter(String.valueOf(Constants.getCounterApprovalTask(context)));
if (MSMainMenuActivity.mnSVYApprovalByBranch != null)
MSMainMenuActivity.mnSVYApprovalByBranch.setCounter(String.valueOf(Constants.getCounterApprovalTaskByBranch(context)));
if (MainMenuActivity.menuAdapter != null)
MainMenuActivity.menuAdapter.notifyDataSetChanged();
if (Timeline_Activity.getTimelineHandler() != null)
Timeline_Activity.getTimelineHandler().sendEmptyMessage(0);
// long taskListCounter = ToDoList.getAllCounter(context);
// if(Timeline_Activity.query!=null)
// Timeline_Activity.query.id(R.id.txtJumlahOutstanding).text(String.valueOf(taskListCounter));
} catch (Exception e) { FireCrash.log(e);
// TODO: handle exception
}
}
});*/
try {
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
sleep(interval);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
private void ProcessTaskList(int notifCount, List<TaskH> taskHList, boolean isBranch) {
// List<String> listUuidTaskH = null;
if (taskHList.size() > 0) {
// listUuidTaskH = new ArrayList<>();
for (TaskH taskH : taskHList) {
// listUuidTaskH.add(taskH.getUuid_task_h());
taskH.setUser(GlobalData.getSharedGlobalData()
.getUser());
taskH.setUuid_user(GlobalData
.getSharedGlobalData().getUser()
.getUuid_user());
taskH.setIs_verification(Global.TRUE_STRING);
if (isBranch)
taskH.setAccess_mode(TaskHDataAccess.ACCESS_MODE_BRANCH);
else
taskH.setAccess_mode(TaskHDataAccess.ACCESS_MODE_USER);
String uuid_timelineType = TimelineTypeDataAccess
.getTimelineTypebyType(context,
Global.TIMELINE_TYPE_APPROVAL)
.getUuid_timeline_type();
boolean wasInTimeline = TimelineDataAccess
.getOneTimelineByTaskH(context,
GlobalData
.getSharedGlobalData()
.getUser()
.getUuid_user(),
taskH.getUuid_task_h(),
uuid_timelineType) != null;
String uuid_scheme = taskH.getUuid_scheme();
Scheme scheme = SchemeDataAccess.getOne(
context, uuid_scheme);
if (scheme != null) {
taskH.setScheme(scheme);
TaskH h = TaskHDataAccess.getOneTaskHeader(
context, taskH.getTask_id());
if (h != null && h.getStatus() != null) {
if (!ToDoList.isOldTask(h)) {
TaskHDataAccess.addOrReplace(
context, taskH);
if (!wasInTimeline)
TimelineManager.insertTimeline(
context, taskH);
} else {
if (h.getAccess_mode() != null && h.getAccess_mode().length() > 0) {
if (!isBranch && h.getAccess_mode()
.equals(TaskHDataAccess.ACCESS_MODE_BRANCH)) {
h.setAccess_mode(TaskHDataAccess.ACCESS_MODE_HYBRID);
TaskHDataAccess
.addOrReplace(
context, h);
} else if (isBranch && h.getAccess_mode()
.equals(TaskHDataAccess.ACCESS_MODE_USER)) {
h.setAccess_mode(TaskHDataAccess.ACCESS_MODE_HYBRID);
TaskHDataAccess
.addOrReplace(
context, h);
}
}
notifCount--;
}
} else {
TaskHDataAccess.addOrReplace(context,
taskH);
if (!wasInTimeline)
TimelineManager.insertTimeline(
context, taskH);
}
// tambahin buat get answer
TaskD d = TaskDDataAccess.getOneByTaskH(context, taskH.getUuid_task_h());
boolean isHaveAnswer = d != null;
if (!isHaveAnswer) {
JsonRequestTaskD request = new JsonRequestTaskD();
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
request.setuuid_task_h(taskH.getUuid_task_h());
String json = GsonHelper.toJson(request);
String url = GlobalData.getSharedGlobalData().getURL_GET_VERIFICATION();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
if (serverResult.isOK()) {
try {
String result = serverResult.getResult();
JsonResponseTaskD response = GsonHelper.fromJson(result, JsonResponseTaskD.class);
if (response.getStatus().getCode() == 0) {
List<TaskD> taskDs = response.getListTask();
if (taskDs.size() > 0) {
TaskH h2 = TaskHDataAccess.getOneHeader(
context, taskH.getUuid_task_h());
if (h2 != null && h2.getStatus() != null) {
if (!ToDoList.isOldTask(h2)) {
taskH.setScheme(scheme);
taskH.setStatus(TaskHDataAccess.STATUS_TASK_APPROVAL_DOWNLOAD);
TaskHDataAccess.addOrReplace(context, taskH);
for (TaskD taskD : taskDs) {
taskD.setTaskH(taskH);
TaskDDataAccess.addOrReplace(context, taskD);
}
}
} else {
taskH.setScheme(scheme);
taskH.setStatus(TaskHDataAccess.STATUS_TASK_APPROVAL_DOWNLOAD);
TaskHDataAccess.addOrReplace(context, taskH);
for (TaskD taskD : taskDs) {
taskD.setTaskH(taskH);
TaskDDataAccess.addOrReplace(context, taskD);
}
}
}
} else {
if (Global.IS_DEV)
System.out.println(result);
}
} catch (Exception e) {
FireCrash.log(e);
}
}
}
} else {
notifCount--;
}
}
String notifTitle = context.getString(R.string.approval_tasks, notifCount);
String message = context.getString(R.string.approval_tasks_remaining, notifCount);
Intent resultIntent = new Intent(context, MSMApplication.getInstance().getHomeClass());
resultIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
/*Vibrate vibrate = null;
try {
vibrate = Vibrate
.valueOf(GeneralParameterDataAccess.getOne(
context, uuidUser, "PRM14_VIB")
.getGs_value());
} catch (Exception ex) {
vibrate = Vibrate.OFF;
}
Tone tone = null;
try {
tone = Tone.valueOf(GeneralParameterDataAccess
.getOne(context, uuidUser, "PRM15_TON")
.getGs_value());
} catch (Exception ex) {
tone = Tone.OFF;
}*/
// boolean autoClear = true;
// try {
// autoClear = Boolean
// .parseBoolean(GeneralParameterDataAccess
// .getOne(context, uuidUser,
// "PRM16_ACN").getGs_value());
// } catch (Exception ex) {
// // ex.printStackTrace();
// autoClear = true;
// }
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setSmallIcon(NotificationThread.getNotificationIcon());
builder.setContentTitle(notifTitle);
builder.setContentText(message).setNumber(notifCount);
builder.setPriority(NORM_PRIORITY);
// Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
// builder.setSound(alarmSound);
// builder.setVibrate(new long[] { 1000});
// builder.setLights(Color.RED, 3000, 3000);
NotificationCompat.BigTextStyle inboxStyle =
new NotificationCompat.BigTextStyle();
inboxStyle.setBigContentTitle(notifTitle);
if (isBranch) {
inboxStyle.bigText(message + " " + context.getString(R.string.click_to_open_approval_branch));
resultIntent.setAction(APPROVALBRANCHLIST_NOTIFICATION_KEY);
} else {
inboxStyle.bigText(message + " " + context.getString(R.string.click_to_open_approval));
resultIntent.setAction(APPROVALLIST_NOTIFICATION_KEY);
}
builder.setDefaults(android.app.Notification.DEFAULT_ALL);
builder.setStyle(inboxStyle);
builder.setAutoCancel(true);
PendingIntent pendingIntent = PendingIntent
.getActivity(context, 0, resultIntent, 0);
Notification.getSharedNotification().setDefaultIcon(
R.drawable.icon_notif_new);
builder.setContentIntent(pendingIntent);
if (notifCount > 0) {
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(3, builder.build());
notifCount = 0;
}
}
//check for changed task in result(local db) data
List<TaskH> localTaskHs = TaskHDataAccess.getAllApproval(context,GlobalData.getSharedGlobalData().getUser().getUuid_user());
if(localTaskHs != null && localTaskHs.size() > 0){
for (int i= 0; i<localTaskHs.size(); i++) {
boolean taskNotfound = false;
TaskH taskh_local = localTaskHs.get(i);
if(taskh_local == null)
continue;
if(taskHList != null && taskHList.size() > 0){
//delete taskh_local
for(TaskH taskHServer :taskHList){
if(taskHServer != null && taskHServer.getTask_id().equals(taskh_local.getTask_id())){
taskNotfound = true;
break;
}
}
if(!taskNotfound){
taskh_local.setStatus(TaskHDataAccess.STATUS_TASK_CHANGED);
taskh_local.setIs_prepocessed(Global.FORM_TYPE_APPROVAL);
taskh_local.setMessage(context.getString(com.adins.mss.svy.R.string.taskChanged));
TaskHDataAccess.addOrReplace(context,taskh_local);
TimelineManager.insertTimeline(context,taskh_local);
}
}
}
}
// List<TaskH> taskHs = TaskHDataAccess.getAllTaskByStatus(context, GlobalData.getSharedGlobalData().getUser().getUuid_user(), TaskHDataAccess.STATUS_TASK_APPROVAL_DOWNLOAD);
// if (listUuidTaskH != null) {
// if (taskHs != null) {
// for (TaskH h : taskHs) {
// String uuid_task_h = h.getUuid_task_h();
// boolean isSame = false;
// for (String uuid_from_server : listUuidTaskH) {
// if (uuid_task_h.equals(uuid_from_server)) {
// isSame = true;
// break;
// }
// }
// if (!isSame) {
// TaskHDataAccess.deleteWithRelation(context, h);
// }
// }
// }
// }
}
public synchronized void requestWait() {
isWait = true;
}
public synchronized void stopWaiting() {
isWait = false;
synchronized (this) {
this.notifyAll();
}
}
public synchronized void requestStop() {
Notification.getSharedNotification().clearNotifAll(context);
keepRunning = false;
}
public List<TaskH> getServerNewTask(boolean isBranch) {
JsonRequestTaskWithMode requestType = new JsonRequestTaskWithMode();
requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
requestType.addImeiAndroidIdToUnstructured();
if(isBranch)
requestType.setMode(SurveyApprovalListTask.KEY_BRANCH);
String json = GsonHelper.toJson(requestType);
String url = GlobalData.getSharedGlobalData().getURL_GET_LIST_APPROVAL();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
sentStatus = serverResult.getResult();
if(Global.IS_DEV)
System.out.println("Here is sent status from notif Approval : " + sentStatus);
// need object to get json reply from server
JsonResponseRetrieveTaskList jrsrtl = new JsonResponseRetrieveTaskList();
jrsrtl = GsonHelper.fromJson(sentStatus, JsonResponseRetrieveTaskList.class);
// new task must be saved to database
if (jrsrtl.getListTaskList() != null)
return jrsrtl.getListTaskList();
else
return new ArrayList<TaskH>();
}
public static List<TaskH> getTaskHList() {
return taskHList;
}
}

View file

@ -0,0 +1,48 @@
package com.services;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import com.adins.mss.base.mainmenu.MainMenuActivity;
import com.adins.mss.svy.MSMainMenuActivity;
public class SurveyVerificationService extends Service {
private SurveyVerificationThread auto;
@Override
public void onDestroy() {
super.onDestroy();
stopSurveyVerificationThread();
}
@Override
public void onCreate() {
super.onCreate();
auto = MSMainMenuActivity.verificationThread;
startSurveyVerificationThread();
}
public synchronized void startSurveyVerificationThread() {
if (auto == null) {
auto = new SurveyVerificationThread(getApplicationContext());
auto.start();
}
else {
auto.start();
}
}
public synchronized void stopSurveyVerificationThread() {
if (auto != null) {
auto.requestStop();
auto = null;
}
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}

View file

@ -0,0 +1,512 @@
package com.services;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import androidx.core.app.NotificationCompat;
import com.adins.mss.base.GlobalData;
import com.adins.mss.base.NewMainActivity;
import com.adins.mss.base.R;
import com.adins.mss.base.crashlytics.FireCrash;
import com.adins.mss.base.dynamicform.JsonRequestTaskD;
import com.adins.mss.base.dynamicform.JsonResponseTaskD;
import com.adins.mss.base.timeline.TimelineManager;
import com.adins.mss.base.timeline.activity.Timeline_Activity;
import com.adins.mss.base.todolist.ToDoList;
import com.adins.mss.base.util.GsonHelper;
import com.adins.mss.base.util.Utility;
import com.adins.mss.constant.Global;
import com.adins.mss.dao.Scheme;
import com.adins.mss.dao.TaskD;
import com.adins.mss.dao.TaskH;
import com.adins.mss.dao.Timeline;
import com.adins.mss.foundation.db.dataaccess.GeneralParameterDataAccess;
import com.adins.mss.foundation.db.dataaccess.SchemeDataAccess;
import com.adins.mss.foundation.db.dataaccess.TaskDDataAccess;
import com.adins.mss.foundation.db.dataaccess.TaskHDataAccess;
import com.adins.mss.foundation.db.dataaccess.TimelineDataAccess;
import com.adins.mss.foundation.db.dataaccess.TimelineTypeDataAccess;
import com.adins.mss.foundation.formatter.Tool;
import com.adins.mss.foundation.http.HttpConnectionResult;
import com.adins.mss.foundation.http.HttpCryptedConnection;
import com.adins.mss.foundation.notification.Notification;
import com.adins.mss.main.MSMApplication;
import com.adins.mss.svy.SurveyVerificationListTask;
import com.adins.mss.svy.models.JsonRequestTaskWithMode;
import com.adins.mss.svy.tool.Constants;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.HttpMetric;
import org.acra.ACRA;
import java.util.ArrayList;
import java.util.List;
//import com.adins.mss.foundation.notification.Notification;
//import com.adins.mss.foundation.notification.Notification.Tone;
//import com.adins.mss.foundation.notification.Notification.Vibrate;
public class SurveyVerificationThread extends Thread {
public static final String VERIFICATIONLIST_NOTIFICATION_KEY = "VERIFICATIONLIST_NOTIFICATION_KEY";
public static final String VERIFICATIONBRANCHLIST_NOTIFICATION_KEY = "VERIFICATIONBRANCHLIST_NOTIFICATION_KEY";
private Context context;
private int interval; // in miliseconds
private volatile boolean keepRunning = true;
private volatile boolean isWait = false;
public static long lastAssigmentDate = 0;
String sentStatus = "";
public static List<TaskH> taskHList = new ArrayList<TaskH>();
public static int notifCount = 0;
public String uuidUser ;
public boolean firstNotif = true;
// public Class mss;
public SurveyVerificationThread(Context context) {
// TODO Auto-generated constructor stub
this.context = context;
interval = Global.MINUTE * 10;
try {
uuidUser = GlobalData.getSharedGlobalData().getUser()
.getUuid_user();
if(uuidUser!=null){
if (GeneralParameterDataAccess.getOne(context, uuidUser, "PRM04_F5IN")
.getGs_value() != null
&& !GeneralParameterDataAccess
.getOne(context, uuidUser, "PRM04_F5IN").getGs_value()
.isEmpty()) {
interval = Integer.parseInt(GeneralParameterDataAccess.getOne(
context, uuidUser, "PRM04_F5IN").getGs_value()) * 1000; // from
// milisecond
// to
// second
}
}else{
keepRunning = false;
}
} catch (Exception e) {
FireCrash.log(e);
if(Global.user!=null){
uuidUser = Global.user.getUuid_user();
if(uuidUser!=null){
if (GeneralParameterDataAccess.getOne(context, uuidUser, "PRM04_F5IN")
.getGs_value() != null
&& !GeneralParameterDataAccess
.getOne(context, uuidUser, "PRM04_F5IN").getGs_value()
.isEmpty()) {
interval = Integer.parseInt(GeneralParameterDataAccess.getOne(
context, uuidUser, "PRM04_F5IN").getGs_value()) * 1000; // from
// milisecond
// to
// second
}
}
}else{
keepRunning = false;
}
}
}
@Override
public void run() {
while (keepRunning) {
try {
synchronized (this) {
if (isWait) {
this.wait();
}
}
if (Tool.isInternetconnected(context)) {
if(NewMainActivity.mnSurveyVerif!=null){
notifCount = 0;
taskHList = getServerNewTask(false);
notifCount = taskHList.size();
// save to local
if(taskHList!=null &&taskHList.size()>0)
ProcessTaskList(notifCount, taskHList, false);
}
if(NewMainActivity.mnVerifByBranch !=null){
notifCount = 0;
taskHList = getServerNewTask(true);
notifCount = taskHList.size();
// save to local
if(taskHList!=null &&taskHList.size()>0)
ProcessTaskList(notifCount, taskHList, true);
}
}
// bong 10 apr 15 - Gigin request penjagaan jika PRM F5IN dari
// server = 0
// minimal notif jalan satu kali
if (interval == 0) {
keepRunning = false;
}
/*Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
public void run() {
// UI code goes here
try {
if (MainMenuActivity.mnSVYVerify != null)
MainMenuActivity.mnSVYVerify.setCounter(String.valueOf(Constants.getCounterVerificationTask(context)));
if (MainMenuActivity.mnSVYVerifyByBranch != null)
MainMenuActivity.mnSVYVerifyByBranch.setCounter(String.valueOf(Constants.getCounterVerificationTaskByBranch(context)));
if (MainMenuActivity.menuAdapter != null)
MainMenuActivity.menuAdapter.notifyDataSetChanged();
if (Timeline_Activity.getTimelineHandler() != null)
Timeline_Activity.getTimelineHandler().sendEmptyMessage(0);
// long taskListCounter = ToDoList.getAllCounter(context);
// if(Timeline_Activity.query!=null)
// Timeline_Activity.query.id(R.id.txtJumlahOutstanding).text(String.valueOf(taskListCounter));
} catch (Exception e) { FireCrash.log(e);
// TODO: handle exception
}
}
});*/
try {
// MainMenuActivity.setDrawerCounter();
NewMainActivity.setCounter();
} catch (Exception e) {
FireCrash.log(e);
// TODO: handle exception
}
sleep(interval);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
private void ProcessTaskList(int notifCount, List<TaskH> taskHList, boolean isBranch) {
// List<String> listUuidTaskH = null;
if (taskHList.size() > 0) {
// listUuidTaskH = new ArrayList<>();
for (TaskH taskH : taskHList) {
// listUuidTaskH.add(taskH.getUuid_task_h());
taskH.setUser(GlobalData.getSharedGlobalData()
.getUser());
taskH.setUuid_user(GlobalData
.getSharedGlobalData().getUser()
.getUuid_user());
if (isBranch)
taskH.setAccess_mode(TaskHDataAccess.ACCESS_MODE_BRANCH);
else
taskH.setAccess_mode(TaskHDataAccess.ACCESS_MODE_USER);
taskH.setIs_verification(Global.TRUE_STRING);
String uuid_timelineType = TimelineTypeDataAccess
.getTimelineTypebyType(context,
Global.TIMELINE_TYPE_VERIFICATION)
.getUuid_timeline_type();
boolean wasInTimeline = TimelineDataAccess
.getOneTimelineByTaskH(context,
GlobalData
.getSharedGlobalData()
.getUser()
.getUuid_user(),
taskH.getUuid_task_h(),
uuid_timelineType) != null;
String uuid_scheme = taskH.getUuid_scheme();
Scheme scheme = SchemeDataAccess.getOne(
context, uuid_scheme);
if (scheme != null) {
taskH.setScheme(scheme);
TaskH h = TaskHDataAccess.getOneTaskHeader(
context, taskH.getTask_id());
if (h != null && h.getStatus() != null) {
if (!ToDoList.isOldTask(h)) {
TaskHDataAccess.addOrReplace(
context, taskH);
if (!wasInTimeline)
TimelineManager.insertTimeline(
context, taskH);
} else {
if (h.getAccess_mode() != null && h.getAccess_mode().length() > 0) {
if (!isBranch && h.getAccess_mode()
.equals(TaskHDataAccess.ACCESS_MODE_BRANCH)) {
h.setAccess_mode(TaskHDataAccess.ACCESS_MODE_HYBRID);
TaskHDataAccess
.addOrReplace(
context, h);
} else if (isBranch && h.getAccess_mode()
.equals(TaskHDataAccess.ACCESS_MODE_USER)) {
h.setAccess_mode(TaskHDataAccess.ACCESS_MODE_HYBRID);
TaskHDataAccess
.addOrReplace(
context, h);
}
}
notifCount--;
}
} else {
TaskHDataAccess.addOrReplace(context,
taskH);
if (!wasInTimeline)
TimelineManager.insertTimeline(
context, taskH);
}
//TODO : tambahin buat get answer
TaskD d = TaskDDataAccess.getOneByTaskH(context, taskH.getUuid_task_h());
boolean isHaveAnswer = d != null;
if (!isHaveAnswer) {
JsonRequestTaskD request = new JsonRequestTaskD();
request.setAudit(GlobalData.getSharedGlobalData().getAuditData());
request.setuuid_task_h(taskH.getUuid_task_h());
String json = GsonHelper.toJson(request);
String url = GlobalData.getSharedGlobalData().getURL_GET_VERIFICATION();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
if (serverResult != null && serverResult.isOK()) {
try {
String result = serverResult.getResult();
JsonResponseTaskD response = GsonHelper.fromJson(result, JsonResponseTaskD.class);
if (response.getStatus().getCode() == 0) {
List<TaskD> taskDs = response.getListTask();
if (taskDs.size() > 0) {
TaskH h2 = TaskHDataAccess.getOneTaskHeader(
context, taskH.getTask_id());
if (h2 != null && h2.getStatus() != null) {
if (!ToDoList.isOldTask(h2)) {
taskH.setScheme(scheme);
taskH.setStatus(TaskHDataAccess.STATUS_TASK_VERIFICATION_DOWNLOAD);
TaskHDataAccess.addOrReplace(context, taskH);
for (TaskD taskD : taskDs) {
taskD.setTaskH(taskH);
TaskDDataAccess.addOrReplace(context, taskD);
}
}
} else {
taskH.setScheme(scheme);
taskH.setStatus(TaskHDataAccess.STATUS_TASK_VERIFICATION_DOWNLOAD);
TaskHDataAccess.addOrReplace(context, taskH);
for (TaskD taskD : taskDs) {
taskD.setTaskH(taskH);
TaskDDataAccess.addOrReplace(context, taskD);
}
}
}
} else {
if (Global.IS_DEV)
System.out.println(result);
}
} catch (Exception e) {
FireCrash.log(e);
}
}
}
} else {
notifCount--;
}
}
String notifTitle = notifCount + " Verification Tasks";
String message = "You have " + notifCount
+ " Verification Tasks to do.";
Intent resultIntent;
resultIntent = new Intent(context, MSMApplication.getInstance().getHomeClass());
/*Vibrate vibrate = null;
try {
vibrate = Vibrate
.valueOf(GeneralParameterDataAccess.getOne(
context, uuidUser, "PRM14_VIB")
.getGs_value());
} catch (Exception ex) {
vibrate = Vibrate.OFF;
}
Tone tone = null;
try {
tone = Tone.valueOf(GeneralParameterDataAccess
.getOne(context, uuidUser, "PRM15_TON")
.getGs_value());
} catch (Exception ex) {
tone = Tone.OFF;
}*/
// boolean autoClear = true;
// try {
// autoClear = Boolean
// .parseBoolean(GeneralParameterDataAccess
// .getOne(context, uuidUser,
// "PRM16_ACN").getGs_value());
// } catch (Exception ex) {
// autoClear = true;
// }
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setSmallIcon(NotificationThread.getNotificationIcon());
builder.setContentTitle(notifTitle);
builder.setContentText(message).setNumber(notifCount);
builder.setPriority(NORM_PRIORITY);
// Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
// builder.setSound(alarmSound);
// builder.setVibrate(new long[] { 1000});
// builder.setLights(Color.RED, 3000, 3000);
NotificationCompat.BigTextStyle inboxStyle =
new NotificationCompat.BigTextStyle();
inboxStyle.setBigContentTitle(notifTitle);
if (isBranch) {
inboxStyle.bigText(message + " " + context.getString(R.string.click_to_open_verification_branch));
resultIntent.setAction(VERIFICATIONBRANCHLIST_NOTIFICATION_KEY);
} else {
inboxStyle.bigText(message + " " + context.getString(R.string.click_to_open_verification));
resultIntent.setAction(VERIFICATIONLIST_NOTIFICATION_KEY);
}
builder.setDefaults(android.app.Notification.DEFAULT_ALL);
builder.setStyle(inboxStyle);
builder.setAutoCancel(true);
PendingIntent pendingIntent = PendingIntent
.getActivity(context, 0, resultIntent, 0);
// Notification.getSharedNotification().setDefaultIcon(
// R.drawable.icon_notif_new);
builder.setContentIntent(pendingIntent);
if (notifCount > 0) {
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(2, builder.build());
notifCount = 0;
}
}
//check for changed task in result(local db) data
List<TaskH> localTaskHs = TaskHDataAccess.getAllVerified(context,GlobalData.getSharedGlobalData().getUser().getUuid_user());
if(localTaskHs != null && localTaskHs.size() > 0){
for (int i= 0; i<localTaskHs.size(); i++) {
boolean taskNotfound = false;
TaskH taskh_local = localTaskHs.get(i);
if(taskh_local == null)
continue;
if(taskHList != null && taskHList.size() > 0){
//delete taskh_local
for(TaskH taskHServer :taskHList){
if(taskHServer != null && taskHServer.getTask_id().equals(taskh_local.getTask_id())){
taskNotfound = true;
break;
}
}
if(!taskNotfound){
taskh_local.setStatus(TaskHDataAccess.STATUS_TASK_CHANGED);
taskh_local.setIs_prepocessed(Global.FORM_TYPE_VERIFICATION);
taskh_local.setMessage(context.getString(com.adins.mss.svy.R.string.taskChanged));
TaskHDataAccess.addOrReplace(context,taskh_local);
TimelineManager.insertTimeline(context,taskh_local);
}
}
}
}
// List<TaskH> taskHs = TaskHDataAccess.getAllTaskByStatus(context, GlobalData.getSharedGlobalData().getUser().getUuid_user(), TaskHDataAccess.STATUS_TASK_VERIFICATION_DOWNLOAD);
// if (listUuidTaskH != null) {
// if (taskHs != null) {
// for (TaskH h : taskHs) {
// String uuid_task_h = h.getUuid_task_h();
// boolean isSame = false;
// for (String uuid_from_server : listUuidTaskH) {
// if (uuid_task_h.equals(uuid_from_server)) {
// isSame = true;
// break;
// }
// }
// if (!isSame) {
// TaskHDataAccess.deleteWithRelation(context, h);
// }
// }
// }
// }
}
public synchronized void requestWait() {
isWait = true;
}
public synchronized void stopWaiting() {
isWait = false;
synchronized (this) {
this.notifyAll();
}
}
public synchronized void requestStop() {
Notification.getSharedNotification().clearNotifAll(context);
keepRunning = false;
}
public List<TaskH> getServerNewTask(boolean isBranch) {
JsonRequestTaskWithMode requestType = new JsonRequestTaskWithMode();
requestType.setAudit(GlobalData.getSharedGlobalData().getAuditData());
requestType.addImeiAndroidIdToUnstructured();
if(isBranch)
requestType.setMode(SurveyVerificationListTask.KEY_BRANCH);
String json = GsonHelper.toJson(requestType);
String url = GlobalData.getSharedGlobalData().getURL_GET_LIST_VERIFICATION();
boolean encrypt = GlobalData.getSharedGlobalData().isEncrypt();
boolean decrypt = GlobalData.getSharedGlobalData().isDecrypt();
HttpCryptedConnection httpConn = new HttpCryptedConnection(context, encrypt, decrypt);
HttpConnectionResult serverResult = null;
//Firebase Performance Trace HTTP Request
HttpMetric networkMetric =
FirebasePerformance.getInstance().newHttpMetric(url, FirebasePerformance.HttpMethod.POST);
Utility.metricStart(networkMetric, json);
try {
serverResult = httpConn.requestToServer(url, json, Global.DEFAULTCONNECTIONTIMEOUT);
Utility.metricStop(networkMetric, serverResult);
} catch (Exception e) {
FireCrash.log(e);
e.printStackTrace();
}
sentStatus = serverResult.getResult();
if(Global.IS_DEV)
System.out.println("Here is sent status from notif Verify : " + sentStatus);
// need object to get json reply from server
JsonResponseRetrieveTaskList jrsrtl = new JsonResponseRetrieveTaskList();
jrsrtl = GsonHelper.fromJson(sentStatus, JsonResponseRetrieveTaskList.class);
// new task must be saved to database
if (jrsrtl.getListTaskList() != null)
return jrsrtl.getListTaskList();
else
return new ArrayList<TaskH>();
}
public static List<TaskH> getTaskHList() {
return taskHList;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Some files were not shown because too many files have changed in this diff Show more