Merge branch 'development' into enad_pharmacy2
@ -1,13 +0,0 @@
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
|
||||
class GeofenceBroadcastReceiver : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
GeofenceTransitionsJobIntentService.enqueueWork(context, intent)
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.util.Log
|
||||
import com.cloud.diplomaticquarterapp.geofence.GeofenceTransition
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.cloud.diplomaticquarterapp.utils.Logs
|
||||
import com.google.android.gms.location.GeofenceStatusCodes
|
||||
import com.google.android.gms.location.GeofencingEvent
|
||||
|
||||
class GeofenceBroadcastReceiver : BroadcastReceiver() {
|
||||
private val LOG_TAG = "GeofenceBroadcastReceiver"
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
|
||||
val geofencingEvent = GeofencingEvent.fromIntent(intent)
|
||||
if (geofencingEvent.hasError()) {
|
||||
val errorMessage = GeofenceErrorMessages.getErrorString(context, geofencingEvent.errorCode)
|
||||
Log.e(LOG_TAG, errorMessage)
|
||||
|
||||
Logs.GeofenceEvent.save(context,LOG_TAG,"Error while triggering geofence event",Logs.STATUS.ERROR)
|
||||
doReRegisterIfRequired(context,geofencingEvent.errorCode)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
Logs.GeofenceEvent.save(context,LOG_TAG,"Geofence event triggered: ${GeofenceTransition.fromInt(geofencingEvent.geofenceTransition).value} for ${geofencingEvent.triggeringGeofences.map {it.requestId}}",Logs.STATUS.SUCCESS)
|
||||
HMG_Geofence.shared(context).handleEvent(geofencingEvent.triggeringGeofences,geofencingEvent.triggeringLocation, GeofenceTransition.fromInt(geofencingEvent.geofenceTransition));
|
||||
|
||||
}
|
||||
|
||||
fun doReRegisterIfRequired(context: Context, errorCode: Int){
|
||||
val errorRequiredReregister = listOf(
|
||||
GeofenceStatusCodes.GEOFENCE_NOT_AVAILABLE,
|
||||
GeofenceStatusCodes.GEOFENCE_TOO_MANY_GEOFENCES,
|
||||
GeofenceStatusCodes.GEOFENCE_TOO_MANY_PENDING_INTENTS,
|
||||
GeofenceStatusCodes.GEOFENCE_REQUEST_TOO_FREQUENT
|
||||
)
|
||||
|
||||
if(errorRequiredReregister.contains(errorCode))
|
||||
HMG_Geofence.shared(context).register(){ status, error ->
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.google.android.gms.location.GeofenceStatusCodes
|
||||
|
||||
class GeofenceBroadcastReceiverWithJobService : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
GeofenceTransitionsJobIntentService.enqueueWork(context, intent)
|
||||
}
|
||||
|
||||
}
|
@ -1,26 +1,22 @@
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Handler
|
||||
import android.os.Message
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.cloud.diplomaticquarterapp.utils.HMGUtils
|
||||
import com.cloud.diplomaticquarterapp.utils.PREFS_STORAGE
|
||||
|
||||
class GeofencingRebootBroadcastReceiver : BroadcastReceiver(){
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
|
||||
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.action)) {
|
||||
// if (intent.action.equals("android.intent.action.BOOT_COMPLETE")) {
|
||||
val pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
pref.edit().putString("REBOOT_DETECTED","YES").apply()
|
||||
|
||||
HMG_Geofence.shared(context).unRegisterAll { status, exception ->
|
||||
val geoZones = HMGUtils.getGeoZonesFromPreference(context)
|
||||
HMG_Geofence.shared(context).register(geoZones)
|
||||
}
|
||||
HMG_Geofence.shared(context).register(){ status, error -> }
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,25 @@
|
||||
|
||||
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.location.LocationManager
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.cloud.diplomaticquarterapp.utils.HMGUtils
|
||||
import com.cloud.diplomaticquarterapp.utils.PREFS_STORAGE
|
||||
|
||||
class LocationProviderChangeReceiver : BroadcastReceiver() {
|
||||
private val LOG_TAG = "LocationProviderChangeReceiver"
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
|
||||
if (LocationManager.PROVIDERS_CHANGED_ACTION.equals(intent.action)) {
|
||||
val pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
pref.edit().putString("LOCATION_PROVIDER_CHANGE","YES").apply()
|
||||
|
||||
HMG_Geofence.shared(context).register(){ s, e -> }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package com.cloud.diplomaticquarterapp.geofence.intent_receivers
|
||||
|
||||
import android.app.job.JobParameters
|
||||
import android.app.job.JobService
|
||||
import com.cloud.diplomaticquarterapp.geofence.HMG_Geofence
|
||||
import com.cloud.diplomaticquarterapp.utils.Logs
|
||||
|
||||
class ReregisterGeofenceJobService : JobService(){
|
||||
companion object{
|
||||
val TriggerIntervalDuration:String = "06:00:00"
|
||||
val JobID = 918273
|
||||
}
|
||||
override fun onStartJob(params: JobParameters?): Boolean {
|
||||
Logs.save(applicationContext,"ReregisterGeofenceJobService.onStartJob", "triggered to re-register the geofences after $TriggerIntervalDuration >> [HH:mm:ss]")
|
||||
HMG_Geofence.shared(applicationContext).register(){ status, error ->
|
||||
jobFinished(params, true)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onStopJob(params: JobParameters?): Boolean {
|
||||
return true
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.cloud.diplomaticquarterapp.utils
|
||||
|
||||
|
||||
const val PREFS_STORAGE = "FlutterSharedPreferences"
|
||||
const val PREF_KEY_SUCCESS = "HMG_GEOFENCE_SUCCESS"
|
||||
const val PREF_KEY_FAILED = "HMG_GEOFENCE_FAILED"
|
||||
const val PREF_KEY_HMG_ZONES = "flutter.hmg-geo-fences"
|
||||
const val PREF_KEY_LANGUAGE = "flutter.language"
|
@ -0,0 +1,145 @@
|
||||
package com.cloud.diplomaticquarterapp.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Build
|
||||
import com.cloud.diplomaticquarterapp.BuildConfig
|
||||
import com.google.gson.Gson
|
||||
|
||||
class Logs {
|
||||
|
||||
enum class STATUS{
|
||||
SUCCESS,
|
||||
ERROR;
|
||||
}
|
||||
class GeofenceEvent{
|
||||
companion object{
|
||||
fun save(context: Context, tag:String, message:String, status:Logs.STATUS = STATUS.SUCCESS){
|
||||
Logs.Common.save(context,"GeofenceEvent", tag, message, status)
|
||||
}
|
||||
|
||||
fun list(context: Context, tag:String? = null, status:Logs.STATUS? = null):List<LogModel>{
|
||||
return Logs.Common.list(context,"GeofenceEvent", tag, status)
|
||||
}
|
||||
|
||||
fun raw(context: Context):String{
|
||||
return Logs.Common.raw(context,"GeofenceEvent")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class RegisterGeofence{
|
||||
companion object{
|
||||
fun save(context: Context, tag:String, message:String, status:Logs.STATUS = STATUS.SUCCESS){
|
||||
Logs.Common.save(context,"RegisterGeofence", tag, message, status)
|
||||
}
|
||||
|
||||
fun list(context: Context, tag:String? = null, status:Logs.STATUS? = null):List<LogModel>{
|
||||
return Logs.Common.list(context,"RegisterGeofence", tag, status)
|
||||
}
|
||||
|
||||
fun raw(context: Context):String{
|
||||
return Logs.Common.raw(context,"RegisterGeofence");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
companion object{
|
||||
private var pref:SharedPreferences? = null
|
||||
fun save(context: Context, tag:String, message:String, status:Logs.STATUS = STATUS.SUCCESS){
|
||||
Logs.Common.save(context,"Logs", tag, message, status)
|
||||
}
|
||||
|
||||
fun list(context: Context, tag:String? = null, status:Logs.STATUS? = null):List<LogModel>{
|
||||
return Logs.Common.list(context,"Logs", tag, status)
|
||||
}
|
||||
|
||||
fun raw(context: Context):String{
|
||||
return Logs.Common.raw(context,"Logs");
|
||||
}
|
||||
|
||||
private fun storage(context: Context):SharedPreferences{
|
||||
if(pref == null) {
|
||||
pref = context.getSharedPreferences(PREFS_STORAGE, Context.MODE_PRIVATE)
|
||||
}
|
||||
return pref!!
|
||||
}
|
||||
}
|
||||
|
||||
private class Common{
|
||||
companion object{
|
||||
private val gson = Gson()
|
||||
|
||||
fun save(context: Context, key:String, tag:String, message:String, status:Logs.STATUS = STATUS.SUCCESS){
|
||||
if(!BuildConfig.DEBUG)
|
||||
return
|
||||
|
||||
val pref = Logs.storage(context)
|
||||
|
||||
val string = pref.getString(key,"{}")
|
||||
val json = gson.fromJson<LogsContainerModel>(string,LogsContainerModel::class.java)
|
||||
json.add(
|
||||
LogModel().apply {
|
||||
this.TAG = tag
|
||||
this.MESSAGE = message
|
||||
this.STATUS = status.name
|
||||
this.DATE = DateUtils.dateTimeNow()
|
||||
}
|
||||
)
|
||||
|
||||
pref.edit().putString(key,gson.toJson(json)).apply()
|
||||
}
|
||||
|
||||
fun list(context: Context, key:String, tag:String? = null, status:Logs.STATUS? = null):List<LogModel>{
|
||||
val pref = Logs.storage(context)
|
||||
val string = pref.getString(key,"{}")
|
||||
val json = gson.fromJson<LogsContainerModel>(string,LogsContainerModel::class.java)
|
||||
if(tag == null && status == null) {
|
||||
return json.LOGS
|
||||
}else if(tag != null && status != null){
|
||||
return json.LOGS.filter { (it.TAG == tag && it.STATUS == status.name) }
|
||||
}else if(tag != null){
|
||||
return json.LOGS.filter { (it.TAG == tag) }
|
||||
}else if(status != null){
|
||||
return json.LOGS.filter { (it.STATUS == status.name) }
|
||||
}
|
||||
return listOf()
|
||||
}
|
||||
|
||||
fun raw(context: Context, key:String):String{
|
||||
val pref = Logs.storage(context)
|
||||
val string = pref.getString(key,"{}")
|
||||
return string!!
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class LogModel{
|
||||
lateinit var TAG:String
|
||||
lateinit var MESSAGE:String
|
||||
lateinit var STATUS:String
|
||||
lateinit var DATE:String
|
||||
|
||||
companion object{
|
||||
fun with(tag:String, message:String, status:String):LogModel{
|
||||
return LogModel().apply {
|
||||
this.TAG = tag
|
||||
this.MESSAGE = message
|
||||
this.STATUS = status
|
||||
this.DATE = DateUtils.dateTimeNow()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class LogsContainerModel{
|
||||
var LOGS = mutableListOf<LogModel>()
|
||||
fun add(log:LogModel){
|
||||
LOGS.add(log)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 5.2 KiB |
@ -0,0 +1,26 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="103.843" height="79.732" viewBox="0 0 103.843 79.732">
|
||||
<g id="Group_776" data-name="Group 776" transform="translate(-67.806 -333.834)">
|
||||
<g id="Group_772" data-name="Group 772" transform="translate(72.721 385.261)">
|
||||
<path id="Rectangle_494" data-name="Rectangle 494" d="M3.513,0h5.5a3.512,3.512,0,0,1,3.512,3.512V24.794a3.512,3.512,0,0,1-3.512,3.512h-5.5A3.512,3.512,0,0,1,0,24.793V3.513A3.513,3.513,0,0,1,3.513,0Z" transform="translate(81.49)" fill="#404040"/>
|
||||
<path id="Rectangle_495" data-name="Rectangle 495" d="M3.513,0h5.5a3.512,3.512,0,0,1,3.512,3.512V24.794a3.512,3.512,0,0,1-3.512,3.512h-5.5A3.512,3.512,0,0,1,0,24.793V3.513A3.513,3.513,0,0,1,3.513,0Z" transform="translate(0)" fill="#404040"/>
|
||||
</g>
|
||||
<g id="Group_774" data-name="Group 774" transform="translate(67.806 333.834)">
|
||||
<g id="Group_773" data-name="Group 773" transform="translate(0 20.106)">
|
||||
<path id="Path_964" data-name="Path 964" d="M202.791,368.713a2.117,2.117,0,0,1-1.4,1.881l.87,1.595a2.144,2.144,0,0,1,2.578-.721h.784v-2.755Z" transform="translate(-108.451 -364.552)" fill="#b2361d"/>
|
||||
<path id="Path_965" data-name="Path 965" d="M212.887,366.617c.07,1.4-1.91,2.76-3.882,3.26-2.9.735-5.653-.648-5.653-3.515,0-2.783,1.939-4.222,4.769-3.4C210.072,363.532,212.818,365.233,212.887,366.617Z" transform="translate(-109.046 -362.733)" fill="#d84c2f"/>
|
||||
<path id="Path_966" data-name="Path 966" d="M80.223,368.713a2.116,2.116,0,0,0,1.4,1.881l-.87,1.595a2.144,2.144,0,0,0-2.578-.721h-.785v-2.755Z" transform="translate(-70.722 -364.552)" fill="#b2361d"/>
|
||||
<path id="Path_967" data-name="Path 967" d="M67.808,366.617c-.07,1.4,1.909,2.76,3.882,3.26,2.9.735,5.654-.648,5.654-3.515,0-2.783-1.939-4.222-4.769-3.4C70.623,363.532,67.877,365.233,67.808,366.617Z" transform="translate(-67.806 -362.733)" fill="#d84c2f"/>
|
||||
</g>
|
||||
<path id="Path_968" data-name="Path 968" d="M168.258,369.52c-.522-3.479-3.218-7.392-4.7-10.349s-6.929-16.872-8.262-19.307a10.983,10.983,0,0,0-7.653-5.435c-3.479-.522-18.843-.594-25.511-.594s-22.032.072-25.51.594a10.981,10.981,0,0,0-7.653,5.435c-1.334,2.435-6.784,16.35-8.262,19.307s-4.174,6.871-4.7,10.349-.348,24.09.522,27.482a7.356,7.356,0,0,0,6.61,5.479h77.982a7.356,7.356,0,0,0,6.61-5.479C168.606,393.61,168.78,373,168.258,369.52Z" transform="translate(-70.214 -333.834)" fill="#d84c2f"/>
|
||||
<path id="Path_969" data-name="Path 969" d="M75.773,405.294c.09,5.924.349,11.778.779,13.45a7.356,7.356,0,0,0,6.61,5.479h77.982a7.356,7.356,0,0,0,6.61-5.479c.429-1.671.687-7.525.779-13.45Z" transform="translate(-70.23 -355.576)" fill="#d63828"/>
|
||||
<path id="Path_970" data-name="Path 970" d="M160.494,364.834s4.871,7.37,5.508,9.221.725,3.533-1.1,4.374-15.567,4.261-18.7,4.261H101.385c-3.131,0-16.872-3.42-18.7-4.261s-1.739-2.522-1.1-4.374,5.508-9.221,5.508-9.221" transform="translate(-71.873 -343.266)" fill="none" stroke="#b2361d" stroke-miterlimit="10" stroke-width="0.5"/>
|
||||
</g>
|
||||
<path id="Path_971" data-name="Path 971" d="M165.792,420.908a1.465,1.465,0,0,1-1.364,2.224H83.859a1.465,1.465,0,0,1-1.364-2.224l1.75-4.285a3.366,3.366,0,0,1,2.887-1.956h74.025a3.364,3.364,0,0,1,2.887,1.956Z" transform="translate(-4.416 -24.593)" fill="#404040"/>
|
||||
<path id="Path_972" data-name="Path 972" d="M152.824,394.283c-.522-1.565-2.783-2.783-5.044-2.783h-26.96c-2.261,0-4.522,1.218-5.044,2.783s1.826,8.009,2.7,9.179,1.826,1.46,4.609,1.46h22.438c2.783,0,3.74-.29,4.609-1.46S153.346,395.848,152.824,394.283Z" transform="translate(-14.572 -17.545)" fill="#404040"/>
|
||||
<path id="Path_973" data-name="Path 973" d="M163.631,358.436c-.435-1.508-4.609-12.147-5.827-14.669s-2.87-3.392-4.088-3.392H98c-1.218,0-2.87.87-4.088,3.392s-5.392,13.161-5.827,14.669.261,2.2,1.391,2.2h72.764C163.37,360.639,164.066,359.943,163.631,358.436Z" transform="translate(-6.13 -1.99)" fill="#404040"/>
|
||||
<g id="Group_775" data-name="Group 775" transform="translate(76.803 368.998)">
|
||||
<path id="Path_974" data-name="Path 974" d="M175.9,389.332s3.827,4.783,5.74,4.783h11.045a2.421,2.421,0,0,0,2.522-2,23,23,0,0,0,0-7.74A90.156,90.156,0,0,1,175.9,389.332Z" transform="translate(-109.692 -384.375)" fill="#fff"/>
|
||||
<path id="Path_975" data-name="Path 975" d="M100.374,389.332s-3.827,4.783-5.74,4.783H83.589a2.421,2.421,0,0,1-2.522-2,23,23,0,0,1,0-7.74A90.156,90.156,0,0,0,100.374,389.332Z" transform="translate(-80.738 -384.375)" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 2.2 KiB |
@ -1,455 +1,25 @@
|
||||
PODS:
|
||||
- android_intent (0.0.1):
|
||||
- Flutter
|
||||
- barcode_scan_fix (0.0.1):
|
||||
- Flutter
|
||||
- MTBBarcodeScanner
|
||||
- connectivity (0.0.1):
|
||||
- Flutter
|
||||
- Reachability
|
||||
- connectivity_for_web (0.1.0):
|
||||
- Flutter
|
||||
- connectivity_macos (0.0.1):
|
||||
- Flutter
|
||||
- device_calendar (0.0.1):
|
||||
- Flutter
|
||||
- device_info (0.0.1):
|
||||
- Flutter
|
||||
- Firebase/CoreOnly (6.33.0):
|
||||
- FirebaseCore (= 6.10.3)
|
||||
- Firebase/Messaging (6.33.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseMessaging (~> 4.7.0)
|
||||
- firebase_core (0.5.3):
|
||||
- Firebase/CoreOnly (~> 6.33.0)
|
||||
- Flutter
|
||||
- firebase_core_web (0.1.0):
|
||||
- Flutter
|
||||
- firebase_messaging (7.0.3):
|
||||
- Firebase/CoreOnly (~> 6.33.0)
|
||||
- Firebase/Messaging (~> 6.33.0)
|
||||
- firebase_core
|
||||
- Flutter
|
||||
- FirebaseCore (6.10.3):
|
||||
- FirebaseCoreDiagnostics (~> 1.6)
|
||||
- GoogleUtilities/Environment (~> 6.7)
|
||||
- GoogleUtilities/Logger (~> 6.7)
|
||||
- FirebaseCoreDiagnostics (1.7.0):
|
||||
- GoogleDataTransport (~> 7.4)
|
||||
- GoogleUtilities/Environment (~> 6.7)
|
||||
- GoogleUtilities/Logger (~> 6.7)
|
||||
- nanopb (~> 1.30906.0)
|
||||
- FirebaseInstallations (1.7.0):
|
||||
- FirebaseCore (~> 6.10)
|
||||
- GoogleUtilities/Environment (~> 6.7)
|
||||
- GoogleUtilities/UserDefaults (~> 6.7)
|
||||
- PromisesObjC (~> 1.2)
|
||||
- FirebaseInstanceID (4.8.0):
|
||||
- FirebaseCore (~> 6.10)
|
||||
- FirebaseInstallations (~> 1.6)
|
||||
- GoogleUtilities/Environment (~> 6.7)
|
||||
- GoogleUtilities/UserDefaults (~> 6.7)
|
||||
- FirebaseMessaging (4.7.1):
|
||||
- FirebaseCore (~> 6.10)
|
||||
- FirebaseInstanceID (~> 4.7)
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 6.7)
|
||||
- GoogleUtilities/Environment (~> 6.7)
|
||||
- GoogleUtilities/Reachability (~> 6.7)
|
||||
- GoogleUtilities/UserDefaults (~> 6.7)
|
||||
- Protobuf (>= 3.9.2, ~> 3.9)
|
||||
- Flutter (1.0.0)
|
||||
- flutter_email_sender (0.0.1):
|
||||
- Flutter
|
||||
- flutter_flexible_toast (0.0.1):
|
||||
- Flutter
|
||||
- flutter_inappwebview (0.0.1):
|
||||
- Flutter
|
||||
- flutter_local_notifications (0.0.1):
|
||||
- Flutter
|
||||
- flutter_plugin_android_lifecycle (0.0.1):
|
||||
- Flutter
|
||||
- flutter_tts (0.0.1):
|
||||
- Flutter
|
||||
- geolocator (6.1.9):
|
||||
- Flutter
|
||||
- google_maps_flutter (0.0.1):
|
||||
- Flutter
|
||||
- GoogleMaps (< 3.10)
|
||||
- GoogleDataTransport (7.5.1):
|
||||
- nanopb (~> 1.30906.0)
|
||||
- GoogleMaps (3.9.0):
|
||||
- GoogleMaps/Maps (= 3.9.0)
|
||||
- GoogleMaps/Base (3.9.0)
|
||||
- GoogleMaps/Maps (3.9.0):
|
||||
- GoogleMaps/Base
|
||||
- GoogleUtilities/AppDelegateSwizzler (6.7.2):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network
|
||||
- GoogleUtilities/Environment (6.7.2):
|
||||
- PromisesObjC (~> 1.2)
|
||||
- GoogleUtilities/Logger (6.7.2):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Network (6.7.2):
|
||||
- GoogleUtilities/Logger
|
||||
- "GoogleUtilities/NSData+zlib"
|
||||
- GoogleUtilities/Reachability
|
||||
- "GoogleUtilities/NSData+zlib (6.7.2)"
|
||||
- GoogleUtilities/Reachability (6.7.2):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/UserDefaults (6.7.2):
|
||||
- GoogleUtilities/Logger
|
||||
- hexcolor (0.0.1):
|
||||
- Flutter
|
||||
- image_cropper (0.0.3):
|
||||
- Flutter
|
||||
- TOCropViewController (~> 2.5.4)
|
||||
- image_picker (0.0.1):
|
||||
- Flutter
|
||||
- just_audio (0.0.1):
|
||||
- Flutter
|
||||
- local_auth (0.0.1):
|
||||
- Flutter
|
||||
- manage_calendar_events (0.0.1):
|
||||
- Flutter
|
||||
- map_launcher (0.0.1):
|
||||
- Flutter
|
||||
- maps_launcher (0.0.1):
|
||||
- Flutter
|
||||
- MTBBarcodeScanner (5.0.11)
|
||||
- nanopb (1.30906.0):
|
||||
- nanopb/decode (= 1.30906.0)
|
||||
- nanopb/encode (= 1.30906.0)
|
||||
- nanopb/decode (1.30906.0)
|
||||
- nanopb/encode (1.30906.0)
|
||||
- native_device_orientation (0.0.1):
|
||||
- Flutter
|
||||
- native_progress_hud (0.0.1):
|
||||
- Flutter
|
||||
- NVActivityIndicatorView (5.1.1):
|
||||
- NVActivityIndicatorView/Base (= 5.1.1)
|
||||
- NVActivityIndicatorView/Base (5.1.1)
|
||||
- path_provider (0.0.1):
|
||||
- Flutter
|
||||
- path_provider_linux (0.0.1):
|
||||
- Flutter
|
||||
- path_provider_macos (0.0.1):
|
||||
- Flutter
|
||||
- path_provider_windows (0.0.1):
|
||||
- Flutter
|
||||
- "permission_handler (5.0.1+1)":
|
||||
- Flutter
|
||||
- PromisesObjC (1.2.11)
|
||||
- Protobuf (3.13.0)
|
||||
- Reachability (3.2)
|
||||
- screen (0.0.1):
|
||||
- Flutter
|
||||
- shared_preferences (0.0.1):
|
||||
- Flutter
|
||||
- shared_preferences_linux (0.0.1):
|
||||
- Flutter
|
||||
- shared_preferences_macos (0.0.1):
|
||||
- Flutter
|
||||
- shared_preferences_web (0.0.1):
|
||||
- Flutter
|
||||
- shared_preferences_windows (0.0.1):
|
||||
- Flutter
|
||||
- speech_to_text (0.0.1):
|
||||
- Flutter
|
||||
- Try
|
||||
- TOCropViewController (2.5.5)
|
||||
- Try (2.1.1)
|
||||
- "twilio_programmable_video (0.5.0+4)":
|
||||
- Flutter
|
||||
- TwilioVideo (~> 3.4)
|
||||
- TwilioVideo (3.7.2)
|
||||
- url_launcher (0.0.1):
|
||||
- Flutter
|
||||
- url_launcher_linux (0.0.1):
|
||||
- Flutter
|
||||
- url_launcher_macos (0.0.1):
|
||||
- Flutter
|
||||
- url_launcher_web (0.0.1):
|
||||
- Flutter
|
||||
- url_launcher_windows (0.0.1):
|
||||
- Flutter
|
||||
- vibration (1.7.3):
|
||||
- Flutter
|
||||
- vibration_web (1.6.2):
|
||||
- Flutter
|
||||
- video_player (0.0.1):
|
||||
- Flutter
|
||||
- video_player_web (0.0.1):
|
||||
- Flutter
|
||||
- wakelock (0.0.1):
|
||||
- Flutter
|
||||
- webview_flutter (0.0.1):
|
||||
- Flutter
|
||||
- wifi (0.0.1):
|
||||
- Flutter
|
||||
|
||||
DEPENDENCIES:
|
||||
- android_intent (from `.symlinks/plugins/android_intent/ios`)
|
||||
- barcode_scan_fix (from `.symlinks/plugins/barcode_scan_fix/ios`)
|
||||
- connectivity (from `.symlinks/plugins/connectivity/ios`)
|
||||
- connectivity_for_web (from `.symlinks/plugins/connectivity_for_web/ios`)
|
||||
- connectivity_macos (from `.symlinks/plugins/connectivity_macos/ios`)
|
||||
- device_calendar (from `.symlinks/plugins/device_calendar/ios`)
|
||||
- device_info (from `.symlinks/plugins/device_info/ios`)
|
||||
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
||||
- firebase_core_web (from `.symlinks/plugins/firebase_core_web/ios`)
|
||||
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
|
||||
- Flutter (from `Flutter`)
|
||||
- flutter_email_sender (from `.symlinks/plugins/flutter_email_sender/ios`)
|
||||
- flutter_flexible_toast (from `.symlinks/plugins/flutter_flexible_toast/ios`)
|
||||
- flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
|
||||
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
|
||||
- flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`)
|
||||
- flutter_tts (from `.symlinks/plugins/flutter_tts/ios`)
|
||||
- geolocator (from `.symlinks/plugins/geolocator/ios`)
|
||||
- google_maps_flutter (from `.symlinks/plugins/google_maps_flutter/ios`)
|
||||
- hexcolor (from `.symlinks/plugins/hexcolor/ios`)
|
||||
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
|
||||
- image_picker (from `.symlinks/plugins/image_picker/ios`)
|
||||
- just_audio (from `.symlinks/plugins/just_audio/ios`)
|
||||
- local_auth (from `.symlinks/plugins/local_auth/ios`)
|
||||
- manage_calendar_events (from `.symlinks/plugins/manage_calendar_events/ios`)
|
||||
- map_launcher (from `.symlinks/plugins/map_launcher/ios`)
|
||||
- maps_launcher (from `.symlinks/plugins/maps_launcher/ios`)
|
||||
- native_device_orientation (from `.symlinks/plugins/native_device_orientation/ios`)
|
||||
- native_progress_hud (from `.symlinks/plugins/native_progress_hud/ios`)
|
||||
- NVActivityIndicatorView
|
||||
- path_provider (from `.symlinks/plugins/path_provider/ios`)
|
||||
- path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`)
|
||||
- path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`)
|
||||
- path_provider_windows (from `.symlinks/plugins/path_provider_windows/ios`)
|
||||
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
|
||||
- screen (from `.symlinks/plugins/screen/ios`)
|
||||
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
|
||||
- shared_preferences_linux (from `.symlinks/plugins/shared_preferences_linux/ios`)
|
||||
- shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`)
|
||||
- shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`)
|
||||
- shared_preferences_windows (from `.symlinks/plugins/shared_preferences_windows/ios`)
|
||||
- speech_to_text (from `.symlinks/plugins/speech_to_text/ios`)
|
||||
- twilio_programmable_video (from `.symlinks/plugins/twilio_programmable_video/ios`)
|
||||
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
|
||||
- url_launcher_linux (from `.symlinks/plugins/url_launcher_linux/ios`)
|
||||
- url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`)
|
||||
- url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`)
|
||||
- url_launcher_windows (from `.symlinks/plugins/url_launcher_windows/ios`)
|
||||
- vibration (from `.symlinks/plugins/vibration/ios`)
|
||||
- vibration_web (from `.symlinks/plugins/vibration_web/ios`)
|
||||
- video_player (from `.symlinks/plugins/video_player/ios`)
|
||||
- video_player_web (from `.symlinks/plugins/video_player_web/ios`)
|
||||
- wakelock (from `.symlinks/plugins/wakelock/ios`)
|
||||
- webview_flutter (from `.symlinks/plugins/webview_flutter/ios`)
|
||||
- wifi (from `.symlinks/plugins/wifi/ios`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- Firebase
|
||||
- FirebaseCore
|
||||
- FirebaseCoreDiagnostics
|
||||
- FirebaseInstallations
|
||||
- FirebaseInstanceID
|
||||
- FirebaseMessaging
|
||||
- GoogleDataTransport
|
||||
- GoogleMaps
|
||||
- GoogleUtilities
|
||||
- MTBBarcodeScanner
|
||||
- nanopb
|
||||
- NVActivityIndicatorView
|
||||
- PromisesObjC
|
||||
- Protobuf
|
||||
- Reachability
|
||||
- TOCropViewController
|
||||
- Try
|
||||
- TwilioVideo
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
android_intent:
|
||||
:path: ".symlinks/plugins/android_intent/ios"
|
||||
barcode_scan_fix:
|
||||
:path: ".symlinks/plugins/barcode_scan_fix/ios"
|
||||
connectivity:
|
||||
:path: ".symlinks/plugins/connectivity/ios"
|
||||
connectivity_for_web:
|
||||
:path: ".symlinks/plugins/connectivity_for_web/ios"
|
||||
connectivity_macos:
|
||||
:path: ".symlinks/plugins/connectivity_macos/ios"
|
||||
device_calendar:
|
||||
:path: ".symlinks/plugins/device_calendar/ios"
|
||||
device_info:
|
||||
:path: ".symlinks/plugins/device_info/ios"
|
||||
firebase_core:
|
||||
:path: ".symlinks/plugins/firebase_core/ios"
|
||||
firebase_core_web:
|
||||
:path: ".symlinks/plugins/firebase_core_web/ios"
|
||||
firebase_messaging:
|
||||
:path: ".symlinks/plugins/firebase_messaging/ios"
|
||||
Flutter:
|
||||
:path: Flutter
|
||||
flutter_email_sender:
|
||||
:path: ".symlinks/plugins/flutter_email_sender/ios"
|
||||
flutter_flexible_toast:
|
||||
:path: ".symlinks/plugins/flutter_flexible_toast/ios"
|
||||
flutter_inappwebview:
|
||||
:path: ".symlinks/plugins/flutter_inappwebview/ios"
|
||||
flutter_local_notifications:
|
||||
:path: ".symlinks/plugins/flutter_local_notifications/ios"
|
||||
flutter_plugin_android_lifecycle:
|
||||
:path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios"
|
||||
flutter_tts:
|
||||
:path: ".symlinks/plugins/flutter_tts/ios"
|
||||
geolocator:
|
||||
:path: ".symlinks/plugins/geolocator/ios"
|
||||
google_maps_flutter:
|
||||
:path: ".symlinks/plugins/google_maps_flutter/ios"
|
||||
hexcolor:
|
||||
:path: ".symlinks/plugins/hexcolor/ios"
|
||||
image_cropper:
|
||||
:path: ".symlinks/plugins/image_cropper/ios"
|
||||
image_picker:
|
||||
:path: ".symlinks/plugins/image_picker/ios"
|
||||
just_audio:
|
||||
:path: ".symlinks/plugins/just_audio/ios"
|
||||
local_auth:
|
||||
:path: ".symlinks/plugins/local_auth/ios"
|
||||
manage_calendar_events:
|
||||
:path: ".symlinks/plugins/manage_calendar_events/ios"
|
||||
map_launcher:
|
||||
:path: ".symlinks/plugins/map_launcher/ios"
|
||||
maps_launcher:
|
||||
:path: ".symlinks/plugins/maps_launcher/ios"
|
||||
native_device_orientation:
|
||||
:path: ".symlinks/plugins/native_device_orientation/ios"
|
||||
native_progress_hud:
|
||||
:path: ".symlinks/plugins/native_progress_hud/ios"
|
||||
path_provider:
|
||||
:path: ".symlinks/plugins/path_provider/ios"
|
||||
path_provider_linux:
|
||||
:path: ".symlinks/plugins/path_provider_linux/ios"
|
||||
path_provider_macos:
|
||||
:path: ".symlinks/plugins/path_provider_macos/ios"
|
||||
path_provider_windows:
|
||||
:path: ".symlinks/plugins/path_provider_windows/ios"
|
||||
permission_handler:
|
||||
:path: ".symlinks/plugins/permission_handler/ios"
|
||||
screen:
|
||||
:path: ".symlinks/plugins/screen/ios"
|
||||
shared_preferences:
|
||||
:path: ".symlinks/plugins/shared_preferences/ios"
|
||||
shared_preferences_linux:
|
||||
:path: ".symlinks/plugins/shared_preferences_linux/ios"
|
||||
shared_preferences_macos:
|
||||
:path: ".symlinks/plugins/shared_preferences_macos/ios"
|
||||
shared_preferences_web:
|
||||
:path: ".symlinks/plugins/shared_preferences_web/ios"
|
||||
shared_preferences_windows:
|
||||
:path: ".symlinks/plugins/shared_preferences_windows/ios"
|
||||
speech_to_text:
|
||||
:path: ".symlinks/plugins/speech_to_text/ios"
|
||||
twilio_programmable_video:
|
||||
:path: ".symlinks/plugins/twilio_programmable_video/ios"
|
||||
url_launcher:
|
||||
:path: ".symlinks/plugins/url_launcher/ios"
|
||||
url_launcher_linux:
|
||||
:path: ".symlinks/plugins/url_launcher_linux/ios"
|
||||
url_launcher_macos:
|
||||
:path: ".symlinks/plugins/url_launcher_macos/ios"
|
||||
url_launcher_web:
|
||||
:path: ".symlinks/plugins/url_launcher_web/ios"
|
||||
url_launcher_windows:
|
||||
:path: ".symlinks/plugins/url_launcher_windows/ios"
|
||||
vibration:
|
||||
:path: ".symlinks/plugins/vibration/ios"
|
||||
vibration_web:
|
||||
:path: ".symlinks/plugins/vibration_web/ios"
|
||||
video_player:
|
||||
:path: ".symlinks/plugins/video_player/ios"
|
||||
video_player_web:
|
||||
:path: ".symlinks/plugins/video_player_web/ios"
|
||||
wakelock:
|
||||
:path: ".symlinks/plugins/wakelock/ios"
|
||||
webview_flutter:
|
||||
:path: ".symlinks/plugins/webview_flutter/ios"
|
||||
wifi:
|
||||
:path: ".symlinks/plugins/wifi/ios"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
android_intent: 367df2f1277a74e4a90e14a8ab3df3112d087052
|
||||
barcode_scan_fix: 80dd65de55f27eec6591dd077c8b85f2b79e31f1
|
||||
connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467
|
||||
connectivity_for_web: 2b8584556930d4bd490d82b836bcf45067ce345b
|
||||
connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191
|
||||
device_calendar: 23b28a5f1ab3bf77e34542fb1167e1b8b29a98f5
|
||||
device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
|
||||
Firebase: 8db6f2d1b2c5e2984efba4949a145875a8f65fe5
|
||||
firebase_core: 5d6a02f3d85acd5f8321c2d6d62877626a670659
|
||||
firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1
|
||||
firebase_messaging: 0aea2cd5885b65e19ede58ee3507f485c992cc75
|
||||
FirebaseCore: d889d9e12535b7f36ac8bfbf1713a0836a3012cd
|
||||
FirebaseCoreDiagnostics: 770ac5958e1372ce67959ae4b4f31d8e127c3ac1
|
||||
FirebaseInstallations: 466c7b4d1f58fe16707693091da253726a731ed2
|
||||
FirebaseInstanceID: bd3ffc24367f901a43c063b36c640b345a4a5dd1
|
||||
FirebaseMessaging: 5eca4ef173de76253352511aafef774caa1cba2a
|
||||
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
|
||||
flutter_email_sender: f787522d0e82f50e5766c1213dbffff22fdcf009
|
||||
flutter_flexible_toast: 0547e740cae0c33bb7c51bcd931233f4584e1143
|
||||
flutter_inappwebview: 69dfbac46157b336ffbec19ca6dfd4638c7bf189
|
||||
flutter_local_notifications: 9e4738ce2471c5af910d961a6b7eadcf57c50186
|
||||
flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35
|
||||
flutter_tts: 0f492aab6accf87059b72354fcb4ba934304771d
|
||||
geolocator: 057a0c63a43e9c5296d8ad845a3ac8e6df23d899
|
||||
google_maps_flutter: c7f9c73576de1fbe152a227bfd6e6c4ae8088619
|
||||
GoogleDataTransport: f56af7caa4ed338dc8e138a5d7c5973e66440833
|
||||
GoogleMaps: 4b5346bddfe6911bb89155d43c903020170523ac
|
||||
GoogleUtilities: 7f2f5a07f888cdb145101d6042bc4422f57e70b3
|
||||
hexcolor: fdfb9c4258ad96e949c2dbcdf790a62194b8aa89
|
||||
image_cropper: c8f9b4157933c7bb965a66d1c5e6c8fd408c6eb4
|
||||
image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
|
||||
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
|
||||
local_auth: 25938960984c3a7f6e3253e3f8d962fdd16852bd
|
||||
manage_calendar_events: 0338d505ea26cdfd20cd883279bc28afa11eca34
|
||||
map_launcher: e325db1261d029ff33e08e03baccffe09593ffea
|
||||
maps_launcher: eae38ee13a9c3f210fa04e04bb4c073fa4c6ed92
|
||||
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
|
||||
nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc
|
||||
native_device_orientation: e24d00be281de72996640885d80e706142707660
|
||||
native_progress_hud: f95f5529742b36a3c7fdecfa88dc018319e39bf9
|
||||
NVActivityIndicatorView: 1f6c5687f1171810aa27a3296814dc2d7dec3667
|
||||
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
|
||||
path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4
|
||||
path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0
|
||||
path_provider_windows: a2b81600c677ac1959367280991971cb9a1edb3b
|
||||
permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6
|
||||
PromisesObjC: 8c196f5a328c2cba3e74624585467a557dcb482f
|
||||
Protobuf: 3dac39b34a08151c6d949560efe3f86134a3f748
|
||||
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
|
||||
screen: abd91ca7bf3426e1cc3646d27e9b2358d6bf07b0
|
||||
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
|
||||
shared_preferences_linux: afefbfe8d921e207f01ede8b60373d9e3b566b78
|
||||
shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087
|
||||
shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9
|
||||
shared_preferences_windows: 36b76d6f54e76ead957e60b49e2f124b4cd3e6ae
|
||||
speech_to_text: b43a7d99aef037bd758ed8e45d79bbac035d2dfe
|
||||
TOCropViewController: da59f531f8ac8a94ef6d6c0fc34009350f9e8bfe
|
||||
Try: 5ef669ae832617b3cee58cb2c6f99fb767a4ff96
|
||||
twilio_programmable_video: 6a41593640f3d86af60b22541fd457b22deaae7f
|
||||
TwilioVideo: 5257640fab00d1b9f44db060815b03516a9eb0e8
|
||||
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
|
||||
url_launcher_linux: ac237cb7a8058736e4aae38bdbcc748a4b394cc0
|
||||
url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313
|
||||
url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c
|
||||
url_launcher_windows: 683d7c283894db8d1914d3ab2223b20cc1ad95d5
|
||||
vibration: b5a33e764c3f609a975b9dca73dce20fdde627dc
|
||||
vibration_web: 0ba303d92469ba34d71c612a228b315908d7fcd9
|
||||
video_player: 9cc823b1d9da7e8427ee591e8438bfbcde500e6e
|
||||
video_player_web: da8cadb8274ed4f8dbee8d7171b420dedd437ce7
|
||||
wakelock: 0d4a70faf8950410735e3f61fb15d517c8a6efc4
|
||||
webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96
|
||||
wifi: d7d77c94109e36c4175d845f0a5964eadba71060
|
||||
|
||||
PODFILE CHECKSUM: 5a17be3f8af73a757fa4439c77cf6ab2db29a6e7
|
||||
PODFILE CHECKSUM: d94bd40f28772938199c67fcced06ffe96096c14
|
||||
|
||||
COCOAPODS: 1.10.0
|
||||
COCOAPODS: 1.10.1
|
||||
|
@ -0,0 +1,36 @@
|
||||
//
|
||||
// FlutterConstants.swift
|
||||
// Runner
|
||||
//
|
||||
// Created by ZiKambrani on 22/12/2020.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class FlutterConstants{
|
||||
static var LOG_GEOFENCE_URL:String?
|
||||
static var WIFI_CREDENTIALS_URL:String?
|
||||
static var DEFAULT_HTTP_PARAMS:[String:Any?]?
|
||||
|
||||
class func set(){
|
||||
|
||||
// (FiX) Take a start with FlutterMethodChannel (kikstart)
|
||||
/* First call to flutter method is not returning the correct value (Always returning 'NSObject') then after it wroking fine and returning correct value*/
|
||||
FlutterText.with(key: "test") { (test) in
|
||||
|
||||
flutterMethodChannel?.invokeMethod("getDefaultHttpParameters", arguments: nil){ (response) in
|
||||
if let defaultHTTPParams = response as? [String:Any?]{
|
||||
DEFAULT_HTTP_PARAMS = defaultHTTPParams
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
flutterMethodChannel?.invokeMethod("getLogGeofenceFullUrl", arguments:nil){ (response) in
|
||||
if let url = response as? String{
|
||||
LOG_GEOFENCE_URL = url
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,104 @@
|
||||
class UserDetailModel {
|
||||
int userID;
|
||||
int patientID;
|
||||
int patientType;
|
||||
bool patientOutSA;
|
||||
String firstName;
|
||||
String middleName;
|
||||
String lastName;
|
||||
String firstNameN;
|
||||
String middleNameN;
|
||||
String lastNameN;
|
||||
String identificationNo;
|
||||
String mobile;
|
||||
String emailID;
|
||||
String zipCode;
|
||||
String dOB;
|
||||
String gender;
|
||||
int activityID;
|
||||
String createdDate;
|
||||
double height;
|
||||
double weight;
|
||||
bool isHeightInCM;
|
||||
bool isWeightInKG;
|
||||
bool isNotificationON;
|
||||
|
||||
UserDetailModel(
|
||||
{this.userID,
|
||||
this.patientID,
|
||||
this.patientType,
|
||||
this.patientOutSA,
|
||||
this.firstName,
|
||||
this.middleName,
|
||||
this.lastName,
|
||||
this.firstNameN,
|
||||
this.middleNameN,
|
||||
this.lastNameN,
|
||||
this.identificationNo,
|
||||
this.mobile,
|
||||
this.emailID,
|
||||
this.zipCode,
|
||||
this.dOB,
|
||||
this.gender,
|
||||
this.activityID,
|
||||
this.createdDate,
|
||||
this.height,
|
||||
this.weight,
|
||||
this.isHeightInCM,
|
||||
this.isWeightInKG,
|
||||
this.isNotificationON});
|
||||
|
||||
UserDetailModel.fromJson(Map<String, dynamic> json) {
|
||||
userID = json['UserID'];
|
||||
patientID = json['PatientID'];
|
||||
patientType = json['PatientType'];
|
||||
patientOutSA = json['PatientOutSA'];
|
||||
firstName = json['FirstName'];
|
||||
middleName = json['MiddleName'];
|
||||
lastName = json['LastName'];
|
||||
firstNameN = json['FirstNameN'];
|
||||
middleNameN = json['MiddleNameN'];
|
||||
lastNameN = json['LastNameN'];
|
||||
identificationNo = json['IdentificationNo'];
|
||||
mobile = json['Mobile'];
|
||||
emailID = json['EmailID'];
|
||||
zipCode = json['ZipCode'];
|
||||
dOB = json['DOB'];
|
||||
gender = json['Gender'];
|
||||
activityID = json['ActivityID'];
|
||||
createdDate = json['CreatedDate'];
|
||||
height = json['Height'];
|
||||
weight = json['Weight'];
|
||||
isHeightInCM = json['IsHeightInCM'];
|
||||
isWeightInKG = json['IsWeightInKG'];
|
||||
isNotificationON = json['IsNotificationON'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['UserID'] = this.userID;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['PatientType'] = this.patientType;
|
||||
data['PatientOutSA'] = this.patientOutSA;
|
||||
data['FirstName'] = this.firstName;
|
||||
data['MiddleName'] = this.middleName;
|
||||
data['LastName'] = this.lastName;
|
||||
data['FirstNameN'] = this.firstNameN;
|
||||
data['MiddleNameN'] = this.middleNameN;
|
||||
data['LastNameN'] = this.lastNameN;
|
||||
data['IdentificationNo'] = this.identificationNo;
|
||||
data['Mobile'] = this.mobile;
|
||||
data['EmailID'] = this.emailID;
|
||||
data['ZipCode'] = this.zipCode;
|
||||
data['DOB'] = this.dOB;
|
||||
data['Gender'] = this.gender;
|
||||
data['ActivityID'] = this.activityID;
|
||||
data['CreatedDate'] = this.createdDate;
|
||||
data['Height'] = this.height;
|
||||
data['Weight'] = this.weight;
|
||||
data['IsHeightInCM'] = this.isHeightInCM;
|
||||
data['IsWeightInKG'] = this.isWeightInKG;
|
||||
data['IsNotificationON'] = this.isNotificationON;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,124 @@
|
||||
class UserDetailRequestModel {
|
||||
String activityID;
|
||||
int channel;
|
||||
int deviceTypeID;
|
||||
String dOB;
|
||||
String email;
|
||||
String firstName;
|
||||
String gender;
|
||||
String generalid;
|
||||
double height;
|
||||
String identificationNo;
|
||||
String iPAdress;
|
||||
bool isDentalAllowedBackend;
|
||||
bool isHeightInCM;
|
||||
bool isNotificationOn;
|
||||
bool isWeightInKG;
|
||||
int languageID;
|
||||
String lastName;
|
||||
String middleName;
|
||||
String mobileNumber;
|
||||
int patientID;
|
||||
int patientOutSA;
|
||||
int patientType;
|
||||
int patientTypeID;
|
||||
String sessionID;
|
||||
String tokenID;
|
||||
double versionID;
|
||||
double weight;
|
||||
String zipCode;
|
||||
|
||||
UserDetailRequestModel(
|
||||
{this.activityID,
|
||||
this.channel,
|
||||
this.deviceTypeID,
|
||||
this.dOB,
|
||||
this.email,
|
||||
this.firstName,
|
||||
this.gender,
|
||||
this.generalid,
|
||||
this.height,
|
||||
this.identificationNo,
|
||||
this.iPAdress,
|
||||
this.isDentalAllowedBackend,
|
||||
this.isHeightInCM,
|
||||
this.isNotificationOn,
|
||||
this.isWeightInKG,
|
||||
this.languageID,
|
||||
this.lastName,
|
||||
this.middleName,
|
||||
this.mobileNumber,
|
||||
this.patientID,
|
||||
this.patientOutSA,
|
||||
this.patientType,
|
||||
this.patientTypeID,
|
||||
this.sessionID,
|
||||
this.tokenID,
|
||||
this.versionID,
|
||||
this.weight,
|
||||
this.zipCode});
|
||||
|
||||
UserDetailRequestModel.fromJson(Map<String, dynamic> json) {
|
||||
activityID = json['ActivityID'];
|
||||
channel = json['Channel'];
|
||||
deviceTypeID = json['DeviceTypeID'];
|
||||
dOB = json['DOB'];
|
||||
email = json['Email'];
|
||||
firstName = json['FirstName'];
|
||||
gender = json['Gender'];
|
||||
generalid = json['generalid'];
|
||||
height = json['Height'];
|
||||
identificationNo = json['IdentificationNo'];
|
||||
iPAdress = json['IPAdress'];
|
||||
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||
isHeightInCM = json['IsHeightInCM'];
|
||||
isNotificationOn = json['isNotificationOn'];
|
||||
isWeightInKG = json['IsWeightInKG'];
|
||||
languageID = json['LanguageID'];
|
||||
lastName = json['LastName'];
|
||||
middleName = json['MiddleName'];
|
||||
mobileNumber = json['MobileNumber'];
|
||||
patientID = json['PatientID'];
|
||||
patientOutSA = json['PatientOutSA'];
|
||||
patientType = json['PatientType'];
|
||||
patientTypeID = json['PatientTypeID'];
|
||||
sessionID = json['SessionID'];
|
||||
tokenID = json['TokenID'];
|
||||
versionID = json['VersionID'];
|
||||
weight = json['Weight'];
|
||||
zipCode = json['ZipCode'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ActivityID'] = this.activityID;
|
||||
data['Channel'] = this.channel;
|
||||
data['DeviceTypeID'] = this.deviceTypeID;
|
||||
data['DOB'] = this.dOB;
|
||||
data['Email'] = this.email;
|
||||
data['FirstName'] = this.firstName;
|
||||
data['Gender'] = this.gender;
|
||||
data['generalid'] = this.generalid;
|
||||
data['Height'] = this.height;
|
||||
data['IdentificationNo'] = this.identificationNo;
|
||||
data['IPAdress'] = this.iPAdress;
|
||||
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||
data['IsHeightInCM'] = this.isHeightInCM;
|
||||
data['isNotificationOn'] = this.isNotificationOn;
|
||||
data['IsWeightInKG'] = this.isWeightInKG;
|
||||
data['LanguageID'] = this.languageID;
|
||||
data['LastName'] = this.lastName;
|
||||
data['MiddleName'] = this.middleName;
|
||||
data['MobileNumber'] = this.mobileNumber;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['PatientOutSA'] = this.patientOutSA;
|
||||
data['PatientType'] = this.patientType;
|
||||
data['PatientTypeID'] = this.patientTypeID;
|
||||
data['SessionID'] = this.sessionID;
|
||||
data['TokenID'] = this.tokenID;
|
||||
data['VersionID'] = this.versionID;
|
||||
data['Weight'] = this.weight;
|
||||
data['ZipCode'] = this.zipCode;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
class ImagesInfo {
|
||||
final String imageAr;
|
||||
final String imageEn;
|
||||
final bool isAsset;
|
||||
|
||||
ImagesInfo({this.imageAr, this.imageEn});
|
||||
ImagesInfo({this.imageAr, this.imageEn, this.isAsset = false});
|
||||
}
|
||||
|
@ -0,0 +1,157 @@
|
||||
|
||||
|
||||
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||
|
||||
class Prescriptions {
|
||||
String setupID;
|
||||
int projectID;
|
||||
int patientID;
|
||||
int appointmentNo;
|
||||
String appointmentDate;
|
||||
String doctorName;
|
||||
String clinicDescription;
|
||||
String name;
|
||||
int episodeID;
|
||||
int actualDoctorRate;
|
||||
int admission;
|
||||
int clinicID;
|
||||
String companyName;
|
||||
String despensedStatus;
|
||||
DateTime dischargeDate;
|
||||
int dischargeNo;
|
||||
int doctorID;
|
||||
String doctorImageURL;
|
||||
int doctorRate;
|
||||
String doctorTitle;
|
||||
int gender;
|
||||
String genderDescription;
|
||||
bool isActiveDoctorProfile;
|
||||
bool isDoctorAllowVedioCall;
|
||||
bool isExecludeDoctor;
|
||||
bool isInOutPatient;
|
||||
String isInOutPatientDescription;
|
||||
String isInOutPatientDescriptionN;
|
||||
bool isInsurancePatient;
|
||||
String nationalityFlagURL;
|
||||
int noOfPatientsRate;
|
||||
String qR;
|
||||
List<String> speciality;
|
||||
|
||||
Prescriptions(
|
||||
{this.setupID,
|
||||
this.projectID,
|
||||
this.patientID,
|
||||
this.appointmentNo,
|
||||
this.appointmentDate,
|
||||
this.doctorName,
|
||||
this.clinicDescription,
|
||||
this.name,
|
||||
this.episodeID,
|
||||
this.actualDoctorRate,
|
||||
this.admission,
|
||||
this.clinicID,
|
||||
this.companyName,
|
||||
this.despensedStatus,
|
||||
this.dischargeDate,
|
||||
this.dischargeNo,
|
||||
this.doctorID,
|
||||
this.doctorImageURL,
|
||||
this.doctorRate,
|
||||
this.doctorTitle,
|
||||
this.gender,
|
||||
this.genderDescription,
|
||||
this.isActiveDoctorProfile,
|
||||
this.isDoctorAllowVedioCall,
|
||||
this.isExecludeDoctor,
|
||||
this.isInOutPatient,
|
||||
this.isInOutPatientDescription,
|
||||
this.isInOutPatientDescriptionN,
|
||||
this.isInsurancePatient,
|
||||
this.nationalityFlagURL,
|
||||
this.noOfPatientsRate,
|
||||
this.qR,
|
||||
this.speciality});
|
||||
|
||||
Prescriptions.fromJson(Map<String, dynamic> json) {
|
||||
setupID = json['SetupID'];
|
||||
projectID = json['ProjectID'];
|
||||
patientID = json['PatientID'];
|
||||
appointmentNo = json['AppointmentNo'];
|
||||
appointmentDate = json['AppointmentDate'];
|
||||
doctorName = json['DoctorName'];
|
||||
clinicDescription = json['ClinicDescription'];
|
||||
name = json['Name'];
|
||||
episodeID = json['EpisodeID'];
|
||||
actualDoctorRate = json['ActualDoctorRate'];
|
||||
admission = json['Admission'];
|
||||
clinicID = json['ClinicID'];
|
||||
companyName = json['CompanyName'];
|
||||
despensedStatus = json['Despensed_Status'];
|
||||
dischargeDate = DateUtil.convertStringToDate(json['DischargeDate']);
|
||||
dischargeNo = json['DischargeNo'];
|
||||
doctorID = json['DoctorID'];
|
||||
doctorImageURL = json['DoctorImageURL'];
|
||||
doctorRate = json['DoctorRate'];
|
||||
doctorTitle = json['DoctorTitle'];
|
||||
gender = json['Gender'];
|
||||
genderDescription = json['GenderDescription'];
|
||||
isActiveDoctorProfile = json['IsActiveDoctorProfile'];
|
||||
isDoctorAllowVedioCall = json['IsDoctorAllowVedioCall'];
|
||||
isExecludeDoctor = json['IsExecludeDoctor'];
|
||||
isInOutPatient = json['IsInOutPatient'];
|
||||
isInOutPatientDescription = json['IsInOutPatientDescription'];
|
||||
isInOutPatientDescriptionN = json['IsInOutPatientDescriptionN'];
|
||||
isInsurancePatient = json['IsInsurancePatient'];
|
||||
nationalityFlagURL = json['NationalityFlagURL'];
|
||||
noOfPatientsRate = json['NoOfPatientsRate'];
|
||||
qR = json['QR'];
|
||||
// speciality = json['Speciality'].cast<String>();
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['SetupID'] = this.setupID;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['AppointmentNo'] = this.appointmentNo;
|
||||
data['AppointmentDate'] = this.appointmentDate;
|
||||
data['DoctorName'] = this.doctorName;
|
||||
data['ClinicDescription'] = this.clinicDescription;
|
||||
data['Name'] = this.name;
|
||||
data['EpisodeID'] = this.episodeID;
|
||||
data['ActualDoctorRate'] = this.actualDoctorRate;
|
||||
data['Admission'] = this.admission;
|
||||
data['ClinicID'] = this.clinicID;
|
||||
data['CompanyName'] = this.companyName;
|
||||
data['Despensed_Status'] = this.despensedStatus;
|
||||
data['DischargeDate'] = this.dischargeDate;
|
||||
data['DischargeNo'] = this.dischargeNo;
|
||||
data['DoctorID'] = this.doctorID;
|
||||
data['DoctorImageURL'] = this.doctorImageURL;
|
||||
data['DoctorRate'] = this.doctorRate;
|
||||
data['DoctorTitle'] = this.doctorTitle;
|
||||
data['Gender'] = this.gender;
|
||||
data['GenderDescription'] = this.genderDescription;
|
||||
data['IsActiveDoctorProfile'] = this.isActiveDoctorProfile;
|
||||
data['IsDoctorAllowVedioCall'] = this.isDoctorAllowVedioCall;
|
||||
data['IsExecludeDoctor'] = this.isExecludeDoctor;
|
||||
data['IsInOutPatient'] = this.isInOutPatient;
|
||||
data['IsInOutPatientDescription'] = this.isInOutPatientDescription;
|
||||
data['IsInOutPatientDescriptionN'] = this.isInOutPatientDescriptionN;
|
||||
data['IsInsurancePatient'] = this.isInsurancePatient;
|
||||
data['NationalityFlagURL'] = this.nationalityFlagURL;
|
||||
data['NoOfPatientsRate'] = this.noOfPatientsRate;
|
||||
data['QR'] = this.qR;
|
||||
data['Speciality'] = this.speciality;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
//class PrescriptionsList {
|
||||
// String filterName = "";
|
||||
// List<Prescriptions> prescriptionsList = List();
|
||||
//
|
||||
// PrescriptionsList({this.filterName, Prescriptions prescriptions}) {
|
||||
// prescriptionsList.add(prescriptions);
|
||||
// }
|
||||
//}
|
@ -0,0 +1,77 @@
|
||||
class OrdersModel {
|
||||
List<Orders> orders;
|
||||
|
||||
OrdersModel({this.orders});
|
||||
|
||||
OrdersModel.fromJson(Map<String, dynamic> json) {
|
||||
if (json['orders'] != null) {
|
||||
orders = new List<Orders>();
|
||||
json['orders'].forEach((v) {
|
||||
orders.add(new Orders.fromJson(v));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
if (this.orders != null) {
|
||||
data['orders'] = this.orders.map((v) => v.toJson()).toList();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class Orders {
|
||||
String id;
|
||||
int productCount;
|
||||
double orderTotal;
|
||||
String createdOnUtc;
|
||||
int orderStatusId;
|
||||
String orderStatus;
|
||||
String orderStatusn;
|
||||
bool canCancel;
|
||||
bool canRefund;
|
||||
dynamic customerId;
|
||||
|
||||
Orders(
|
||||
{this.id,
|
||||
this.productCount,
|
||||
this.orderTotal,
|
||||
this.createdOnUtc,
|
||||
this.orderStatusId,
|
||||
this.orderStatus,
|
||||
this.orderStatusn,
|
||||
this.canCancel,
|
||||
this.canRefund,
|
||||
this.customerId,});
|
||||
|
||||
Orders.fromJson(Map<String, dynamic> json) {
|
||||
try {
|
||||
id = json['id'];
|
||||
productCount = json['product_count'];
|
||||
orderTotal = json['order_total'];
|
||||
createdOnUtc = json['created_on_utc'];
|
||||
orderStatusId = json['order_status_id'];
|
||||
orderStatus = json['order_status'];
|
||||
orderStatusn = json['order_statusn'];
|
||||
canCancel = json['can_cancel'];
|
||||
canRefund = json['can_refund'];
|
||||
customerId = json['customer_id'];
|
||||
}catch(e){
|
||||
print(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['id'] = this.id;
|
||||
data['product_count'] = this.productCount;
|
||||
data['order_total'] = this.orderTotal;
|
||||
data['created_on_utc'] = this.createdOnUtc;
|
||||
data['order_status_id'] = this.orderStatusId;
|
||||
data['order_status'] = this.orderStatus;
|
||||
data['order_statusn'] = this.orderStatusn;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/base_service.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/pharmacies/Prescriptions.dart';
|
||||
|
||||
|
||||
class PrescriptionService extends BaseService {
|
||||
final AppSharedPreferences sharedPref = AppSharedPreferences();
|
||||
bool isFinished = true;
|
||||
bool hasError = false;
|
||||
String errorMsg = '';
|
||||
String url = "";
|
||||
|
||||
List<Prescriptions> _prescriptionsList = List();
|
||||
List<Prescriptions> get prescriptionsList => _prescriptionsList;
|
||||
|
||||
|
||||
Future getPrescription() async {
|
||||
hasError = false;
|
||||
url = PRESCRIPTION;
|
||||
print("Print PRESCRIPTION url" + url);
|
||||
await baseAppClient.post(url,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
_prescriptionsList.clear();
|
||||
response['PatientPrescriptionList'].forEach((item) {
|
||||
_prescriptionsList.add(Prescriptions.fromJson(item));
|
||||
});
|
||||
print(_prescriptionsList.length);
|
||||
print(response);
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
});
|
||||
}
|
||||
// Future getPrescription() async {
|
||||
// hasError = false;
|
||||
// Map<String, dynamic> body = Map();
|
||||
// body['isDentalAllowedBackend'] = false;
|
||||
// await baseAppClient.post(PRESCRIPTION,
|
||||
// onSuccess: (dynamic response, int statusCode) {
|
||||
// prescriptionsList.clear();
|
||||
// response['PatientPrescriptionList'].forEach((prescriptions) {
|
||||
// prescriptionsList.add(Prescriptions.fromJson(prescriptions));
|
||||
// });
|
||||
// }, onFailure: (String error, int statusCode) {
|
||||
// hasError = true;
|
||||
// super.error = error;
|
||||
// }, body: body);
|
||||
// }
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/base_service.dart';
|
||||
|
||||
class TermsConditionsService extends BaseService {
|
||||
|
||||
String userAgreementContent = "";
|
||||
|
||||
Future getUserTermsAndConditions() async {
|
||||
hasError = false;
|
||||
await baseAppClient.post(GET_USER_TERMS,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
userAgreementContent = response['UserAgreementContent'];
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: Map<String, dynamic>());
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/termsConditionsService.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
|
||||
|
||||
import '../../locator.dart';
|
||||
|
||||
class TermsConditionsViewModel extends BaseViewModel{
|
||||
|
||||
TermsConditionsService _service = locator<TermsConditionsService>();
|
||||
|
||||
String get userAgreementContent => _service.userAgreementContent;
|
||||
|
||||
getUserTermsAndConditions() async {
|
||||
setState(ViewState.Busy);
|
||||
await _service.getUserTermsAndConditions();
|
||||
if (_service.hasError) {
|
||||
error = _service.error;
|
||||
setState(ViewState.Error);
|
||||
} else {
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
class healthData {
|
||||
int MedCategoryID;
|
||||
int MedSubCategoryID;
|
||||
String Value;
|
||||
String Notes;
|
||||
String MachineDate;
|
||||
int TransactionsListID;
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
class YearlyStepsResModel {
|
||||
double valueSum;
|
||||
int medCategoryID;
|
||||
int month;
|
||||
String monthName;
|
||||
int patientID;
|
||||
int year;
|
||||
|
||||
YearlyStepsResModel(
|
||||
{this.valueSum,
|
||||
this.medCategoryID,
|
||||
this.month,
|
||||
this.monthName,
|
||||
this.patientID,
|
||||
this.year});
|
||||
|
||||
YearlyStepsResModel.fromJson(Map<String, dynamic> json) {
|
||||
valueSum = json['ValueSum'];
|
||||
medCategoryID = json['MedCategoryID'];
|
||||
month = json['Month'];
|
||||
monthName = json['MonthName'];
|
||||
patientID = json['PatientID'];
|
||||
year = json['Year'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ValueSum'] = this.valueSum;
|
||||
data['MedCategoryID'] = this.medCategoryID;
|
||||
data['Month'] = this.month;
|
||||
data['MonthName'] = this.monthName;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['Year'] = this.year;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,148 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/add_new_address_Request_Model.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/utils.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
import 'package:google_maps_place_picker/google_maps_place_picker.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class CMCLocationPage extends StatefulWidget {
|
||||
final Function(PickResult) onPick;
|
||||
final double latitude;
|
||||
final double longitude;
|
||||
final dynamic model;
|
||||
|
||||
const CMCLocationPage({Key key, this.onPick, this.latitude, this.longitude, this.model})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
_CMCLocationPageState createState() =>
|
||||
_CMCLocationPageState();
|
||||
}
|
||||
|
||||
class _CMCLocationPageState
|
||||
extends State<CMCLocationPage> {
|
||||
double latitude = 0;
|
||||
double longitude = 0;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
|
||||
latitude = widget.latitude;
|
||||
longitude = widget.longitude;
|
||||
super.initState();
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
ProjectViewModel projectViewModel = Provider.of(context);
|
||||
return BaseView<CMCViewModel>(
|
||||
onModelReady: (model) {},
|
||||
builder: (_, model, widget) => AppScaffold(
|
||||
isShowDecPage: false,
|
||||
isShowAppBar: true,
|
||||
baseViewModel: model,
|
||||
body: PlacePicker(
|
||||
apiKey: GOOGLE_API_KEY,
|
||||
enableMyLocationButton: true,
|
||||
automaticallyImplyAppBarLeading: false,
|
||||
autocompleteOnTrailingWhitespace: true,
|
||||
selectInitialPosition: true,
|
||||
autocompleteLanguage: projectViewModel.currentLanguage,
|
||||
enableMapTypeButton: true,
|
||||
searchForInitialValue: false,
|
||||
onPlacePicked: (PickResult result) {
|
||||
print(result.adrAddress);
|
||||
|
||||
},
|
||||
selectedPlaceWidgetBuilder:
|
||||
(_, selectedPlace, state, isSearchBarFocused) {
|
||||
print("state: $state, isSearchBarFocused: $isSearchBarFocused");
|
||||
return isSearchBarFocused
|
||||
? Container()
|
||||
: FloatingCard(
|
||||
bottomPosition: 0.0,
|
||||
leftPosition: 0.0,
|
||||
rightPosition: 0.0,
|
||||
width: 500,
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
child: state == SearchingState.Searching
|
||||
? Center(child: CircularProgressIndicator())
|
||||
: Container(
|
||||
margin: EdgeInsets.all(12),
|
||||
child: Column(
|
||||
children: [
|
||||
SecondaryButton(
|
||||
color: Colors.grey[800],
|
||||
textColor: Colors.white,
|
||||
onTap: () async {
|
||||
print(selectedPlace);
|
||||
AddNewAddressRequestModel
|
||||
addNewAddressRequestModel =
|
||||
new AddNewAddressRequestModel(
|
||||
customer: Customer(addresses: [
|
||||
Addresses(
|
||||
address1:
|
||||
selectedPlace.formattedAddress,
|
||||
address2: selectedPlace
|
||||
.formattedAddress,
|
||||
customerAttributes: "",
|
||||
city: "",
|
||||
createdOnUtc: "",
|
||||
id: 0,
|
||||
latLong: "$latitude,$longitude",
|
||||
email: "")
|
||||
]),
|
||||
);
|
||||
|
||||
selectedPlace.addressComponents.forEach((e) {
|
||||
if (e.types.contains("country")) {
|
||||
addNewAddressRequestModel.customer
|
||||
.addresses[0].country = e.longName;
|
||||
}
|
||||
if (e.types.contains("postal_code")) {
|
||||
addNewAddressRequestModel.customer
|
||||
.addresses[0].zipPostalCode =
|
||||
e.longName;
|
||||
}
|
||||
if (e.types.contains("locality")) {
|
||||
addNewAddressRequestModel.customer
|
||||
.addresses[0].city =
|
||||
e.longName;
|
||||
}
|
||||
});
|
||||
|
||||
await model.addAddressInfo(
|
||||
addNewAddressRequestModel: addNewAddressRequestModel);
|
||||
if (model.state == ViewState.ErrorLocal) {
|
||||
Utils.showErrorToast(model.error);
|
||||
} else {
|
||||
AppToast.showSuccessToast(
|
||||
message: "Address Added Successfully");
|
||||
}
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
label: TranslationBase.of(context).addNewAddress,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
initialPosition: LatLng(latitude, longitude),
|
||||
useCurrentLocation: false,
|
||||
),
|
||||
));
|
||||
}
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hexcolor/hexcolor.dart';
|
||||
import 'cmc_page.dart';
|
||||
|
||||
class CMCIndexPage extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: TranslationBase.of(context).serviceInformation,
|
||||
body: SingleChildScrollView(
|
||||
padding: EdgeInsets.all(12),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Texts(
|
||||
"CMC",
|
||||
fontWeight: FontWeight.normal,
|
||||
fontSize: 25,
|
||||
color: Color(0xff60686b),
|
||||
),
|
||||
SizedBox(
|
||||
height: 12,
|
||||
),
|
||||
Texts(
|
||||
"This service is designed to help you to set drinking water goals and track the volume of water you are drinking on a daily basis. This service allows for schedule reminders and offers a basic statistical analysis of the amount of what you have consumed over the course of a day, week or month.",
|
||||
fontWeight: FontWeight.normal,
|
||||
fontSize: 17,
|
||||
),
|
||||
SizedBox(
|
||||
height: 22,
|
||||
),
|
||||
Center(
|
||||
child: Image.asset(
|
||||
'assets/images/AlHabibMedicalService/Wifi-AR.png')),
|
||||
SizedBox(
|
||||
height: 77,
|
||||
),
|
||||
],
|
||||
)),
|
||||
bottomSheet: Container(
|
||||
height: MediaQuery.of(context).size.height * 0.10,
|
||||
width: double.infinity,
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
width: MediaQuery.of(context).size.width * 0.9,
|
||||
child: SecondaryButton(
|
||||
onTap: () => Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: CMCPage(),
|
||||
),
|
||||
),
|
||||
label: "CMC",
|
||||
textColor: Theme.of(context).backgroundColor),
|
||||
),
|
||||
],
|
||||
),
|
||||
));
|
||||
}
|
||||
}
|
@ -0,0 +1,146 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/add_new_address_Request_Model.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/utils.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
import 'package:google_maps_place_picker/google_maps_place_picker.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class LocationPage extends StatefulWidget {
|
||||
final Function(PickResult) onPick;
|
||||
final double latitude;
|
||||
final double longitude;
|
||||
final dynamic model;
|
||||
|
||||
const LocationPage({Key key, this.onPick, this.latitude, this.longitude, this.model})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
_LocationPageState createState() =>
|
||||
_LocationPageState();
|
||||
}
|
||||
|
||||
class _LocationPageState
|
||||
extends State<LocationPage> {
|
||||
double latitude = 0;
|
||||
double longitude = 0;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
|
||||
latitude = widget.latitude;
|
||||
longitude = widget.longitude;
|
||||
super.initState();
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
ProjectViewModel projectViewModel = Provider.of(context);
|
||||
return BaseView<HomeHealthCareViewModel>(
|
||||
onModelReady: (model) {},
|
||||
builder: (_, model, widget) => AppScaffold(
|
||||
isShowDecPage: false,
|
||||
isShowAppBar: true,
|
||||
baseViewModel: model,
|
||||
body: PlacePicker(
|
||||
apiKey: GOOGLE_API_KEY,
|
||||
enableMyLocationButton: true,
|
||||
automaticallyImplyAppBarLeading: false,
|
||||
autocompleteOnTrailingWhitespace: true,
|
||||
selectInitialPosition: true,
|
||||
autocompleteLanguage: projectViewModel.currentLanguage,
|
||||
enableMapTypeButton: true,
|
||||
searchForInitialValue: false,
|
||||
onPlacePicked: (PickResult result) {
|
||||
print(result.adrAddress);
|
||||
|
||||
},
|
||||
selectedPlaceWidgetBuilder:
|
||||
(_, selectedPlace, state, isSearchBarFocused) {
|
||||
print("state: $state, isSearchBarFocused: $isSearchBarFocused");
|
||||
return isSearchBarFocused
|
||||
? Container()
|
||||
: FloatingCard(
|
||||
bottomPosition: 0.0,
|
||||
leftPosition: 0.0,
|
||||
rightPosition: 0.0,
|
||||
width: 500,
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
child: state == SearchingState.Searching
|
||||
? Center(child: CircularProgressIndicator())
|
||||
: Container(
|
||||
margin: EdgeInsets.all(12),
|
||||
child: Column(
|
||||
children: [
|
||||
SecondaryButton(
|
||||
color: Colors.grey[800],
|
||||
textColor: Colors.white,
|
||||
onTap: () async {
|
||||
AddNewAddressRequestModel
|
||||
addNewAddressRequestModel =
|
||||
new AddNewAddressRequestModel(
|
||||
customer: Customer(addresses: [
|
||||
Addresses(
|
||||
address1:
|
||||
selectedPlace.formattedAddress,
|
||||
address2: selectedPlace
|
||||
.formattedAddress,
|
||||
customerAttributes: "",
|
||||
city: "",
|
||||
createdOnUtc: "",
|
||||
id: 0,
|
||||
latLong: "$latitude,$longitude",
|
||||
email: "")
|
||||
]),
|
||||
);
|
||||
|
||||
selectedPlace.addressComponents.forEach((e) {
|
||||
if (e.types.contains("country")) {
|
||||
addNewAddressRequestModel.customer
|
||||
.addresses[0].country = e.longName;
|
||||
}
|
||||
if (e.types.contains("postal_code")) {
|
||||
addNewAddressRequestModel.customer
|
||||
.addresses[0].zipPostalCode =
|
||||
e.longName;
|
||||
}
|
||||
if (e.types.contains("locality")) {
|
||||
addNewAddressRequestModel.customer
|
||||
.addresses[0].city =
|
||||
e.longName;
|
||||
}
|
||||
});
|
||||
|
||||
await model.addAddressInfo(
|
||||
addNewAddressRequestModel: addNewAddressRequestModel);
|
||||
if (model.state == ViewState.ErrorLocal) {
|
||||
Utils.showErrorToast(model.error);
|
||||
} else {
|
||||
AppToast.showSuccessToast(
|
||||
message: "Address Added Successfully");
|
||||
}
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
label: TranslationBase.of(context).addNewAddress,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
initialPosition: LatLng(latitude, longitude),
|
||||
useCurrentLocation: false,
|
||||
),
|
||||
));
|
||||
}
|
||||
}
|