Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.95 KB | None | 0 0
  1. package com.comtrade.aicapone.Activities
  2.  
  3.  
  4. import android.content.Intent
  5. import android.graphics.Bitmap
  6. import android.os.Bundle
  7. import android.preference.PreferenceManager
  8. import android.util.Log
  9. import android.view.View
  10. import android.widget.Button
  11. import android.widget.ImageView
  12. import android.widget.TextView
  13. import com.comtrade.aicapone.LightClient
  14. import com.comtrade.aicapone.MapsService
  15. import com.comtrade.aicapone.Models.Job
  16. import com.comtrade.aicapone.Models.Role
  17. import com.comtrade.aicapone.Models.Status
  18. import com.comtrade.aicapone.Models.User
  19. import com.comtrade.aicapone.R
  20. import com.comtrade.aicapone.Services.JobService
  21. import com.comtrade.aicapone.Services.StorageService
  22. import com.comtrade.aicapone.Util.Message
  23. import com.comtrade.aicapone.Util.MessageType
  24. import com.google.android.gms.common.ConnectionResult
  25. import com.google.android.gms.maps.CameraUpdateFactory
  26. import com.google.android.gms.maps.GoogleMap
  27. import com.google.android.gms.maps.model.*
  28. import com.google.maps.model.TravelMode
  29. import kotlinx.android.synthetic.main.load_board_job_details.*
  30. import kotlinx.android.synthetic.main.load_board_jobs.*
  31. import retrofit2.Call
  32. import retrofit2.Callback
  33. import retrofit2.Response
  34. import android.graphics.BitmapFactory
  35. import java.io.ByteArrayInputStream
  36.  
  37.  
  38. class LoadBoardDetailsActivity : MapActivity() {
  39.  
  40. var mStartPos : TextView?=null
  41. var mDestination : TextView?=null
  42. var mJobDescription : TextView?=null
  43. var mJobDistance : TextView?=null
  44. var mJobLoadLimit : TextView?=null
  45. var mJobValue : TextView?=null
  46. var mContact : TextView?=null
  47. var mTakeJobBtn: Button?=null
  48. var mCompleteJobBtn: Button?=null
  49. var job : Job? = null
  50.  
  51. var mJobId: Long? = null
  52. var jobService: JobService? = null
  53.  
  54. private var mMap: GoogleMap? = null
  55. private val mapService = MapsService(this)
  56.  
  57. var markerOptions1: MarkerOptions? = null
  58. var markerOptions2: MarkerOptions? = null
  59.  
  60. private var marker1: Marker? = null
  61. private var marker2: Marker? = null
  62.  
  63. var mUser: User? = null
  64.  
  65. var mStorageService: StorageService? = null
  66. var mToken: String? = null
  67.  
  68. override fun onCreate(savedInstanceState: Bundle?) {
  69. super.onCreate(savedInstanceState)
  70. jobService = JobService(getString(R.string.apiBaseURL))
  71. setContentView(R.layout.load_board_job_details)
  72.  
  73. mStorageService = StorageService()
  74. mToken = mStorageService!!.getToken(this)
  75.  
  76. mStartPos = findViewById(R.id.txtStart)
  77. mDestination = findViewById(R.id.txtDestination)
  78. mJobDescription = findViewById(R.id.job_desc)
  79. mJobLoadLimit = findViewById(R.id.job_loadLimit)
  80. mJobDistance = findViewById(R.id.job_distance)
  81. mJobValue = findViewById(R.id.job_value)
  82. mContact = findViewById(R.id.contactID)
  83. mTakeJobBtn = findViewById(R.id.btnTakeJob)
  84. mCompleteJobBtn = findViewById(R.id.btnCompleteJob)
  85.  
  86. if (intent.extras["load_job_id"] != null) {
  87. mJobId = intent.extras["load_job_id"] as Long?
  88. if (mJobId != null) {
  89. loadJob()
  90. }
  91. } else {
  92. job = getIntent().getExtras().getSerializable("key_job") as? Job
  93. Log.d("CLICK_ON_ITEM", "Intent: " + (job?.dropAddress))
  94. displayJob()
  95. Log.e("QR bin",""+job!!.QRImg)
  96. }
  97.  
  98. }
  99.  
  100. fun getJobQR()
  101. {
  102. jobService!!.getQR(mJobId!!, mToken).enqueue(object : Callback<String> {
  103. override fun onFailure(call: Call<String>?, t: Throwable?) {
  104. Log.d("retrofit failure", "message" + t!!.message)
  105. Message.showMessage(getString(R.string.job_take_err_msg), MessageType.DANGER, this@LoadBoardDetailsActivity)
  106. }
  107.  
  108. override fun onResponse(call: Call<String>?, response: Response<String>?) {
  109. if (response != null) {
  110. Log.d("retrofit response", response.toString())
  111. if (response.isSuccessful) {
  112. Log.e("QR Response",response.body()!!)
  113. job!!.QRImg = response.body()!!
  114. Log.e("QR bin",""+job!!.QRImg)
  115. } else {
  116. Log.d("retrofit response", "Job load failed")
  117. }
  118. }
  119. }
  120. })
  121.  
  122. }
  123.  
  124. fun displayJob() {
  125. mStartPos?.text = job?.loadAddress
  126. mDestination?.text = job?.dropAddress
  127. getJobQR()
  128. fill(this.job!!)
  129.  
  130. val latLngAdr1 = mapService.getLatLongFromString(job?.loadAddress!!)
  131. val latLngAdr2 = mapService.getLatLongFromString(job?.dropAddress!!)
  132.  
  133.  
  134. markerOptions1 = mapService.createMarkerOptions(latLngAdr1!!, job?.loadAddress!!, BitmapDescriptorFactory.fromResource(R.drawable.ic_truck))
  135. markerOptions2 = mapService.createMarkerOptions(latLngAdr2!!, job?.dropAddress!!, BitmapDescriptorFactory.fromResource(R.drawable.ic_box5))
  136.  
  137. mapService.getMapAsync(R.id.load_board_det_map)
  138. mCompleteJobBtn?.setOnClickListener{ completeJob() }
  139. mTakeJobBtn?.setOnClickListener {
  140. if(mStorageService!!.getActiveVehicle(this)!=null&&mStorageService!!.getActiveVehicle(this)?.LoadLimit!! > this.job!!.weight!!)
  141. takeJob()
  142. else {
  143. Message.showMessage(getString(R.string.truck_limit_err_msg), MessageType.DANGER, this)
  144. val i = Intent(this, UserVehicleActivity::class.java)
  145. startActivity(i)
  146. }
  147. }
  148.  
  149. mUser = mStorageService!!.getUser(this)
  150.  
  151. if (mUser!!.roleId == Role.BROKER.value || job!!.shipperId != null) {
  152. mTakeJobBtn!!.visibility = View.GONE
  153. }
  154.  
  155. if(job!!.shipperId != mUser!!.id || job!!.statusId != Status.INPROGRESS.value) {
  156. mCompleteJobBtn!!.visibility = View.GONE
  157. }
  158. }
  159.  
  160. fun loadJob() {
  161. jobService!!.getById(mJobId!!, mToken).enqueue(object : Callback<Job> {
  162. override fun onFailure(call: Call<Job>?, t: Throwable?) {
  163. Log.d("retrofit failure", "message" + t!!.message)
  164. Message.showMessage(getString(R.string.job_take_err_msg), MessageType.DANGER, this@LoadBoardDetailsActivity)
  165. }
  166.  
  167. override fun onResponse(call: Call<Job>?, response: Response<Job>?) {
  168. if (response != null) {
  169. Log.d("retrofit response", response.toString())
  170. if (response.isSuccessful) {
  171. job = response.body()!!
  172. displayJob()
  173.  
  174. Log.e("QR bin",""+job!!.QRImg)
  175. } else {
  176. Log.d("retrofit response", "Job load failed")
  177. }
  178. }
  179. }
  180. })
  181. }
  182.  
  183. fun takeJob() {
  184. val preferences = PreferenceManager.getDefaultSharedPreferences(this@LoadBoardDetailsActivity)
  185. val walletName = preferences.getString("account_wallet_name", null)
  186. var password: String? = preferences.getString("account_wallet_password", null)
  187.  
  188. if (walletName == null) {
  189. //ovde ispisati poruku da je potrebno kreirati wallet pre uzimanja posla i izaci iz funkcije
  190. }
  191. jobService!!.takeJob(job?.id!!, mToken).enqueue(object : Callback<Unit> {
  192. override fun onFailure(call: Call<Unit>?, t: Throwable?) {
  193. Log.d("retrofit failure", "message " + t!!.message)
  194. Message.showMessage(getString(R.string.something_went_wrong_msg), MessageType.DANGER, this@LoadBoardDetailsActivity)
  195. }
  196.  
  197. override fun onResponse(call: Call<Unit>?, response: Response<Unit>?) {
  198. if (response != null) {
  199. Log.d("retrofit response", response.toString())
  200. if (response.isSuccessful) {
  201.  
  202. if (walletName != null) {
  203. //if treba skloniti kad se gore ubaci poruka
  204. var lightClient: LightClient = LightClient(this@LoadBoardDetailsActivity)
  205. lightClient.TakeDelivery(job!!.id!!, password!!, walletName)
  206.  
  207. }
  208.  
  209. Message.showMessage(getString(R.string.job_taken_smg), MessageType.SUCCESS, this@LoadBoardDetailsActivity)
  210. mapService.drawRoute(marker1?.title!!, marker2?.title!!, TravelMode.DRIVING)
  211. mTakeJobBtn!!.visibility = View.GONE
  212. mCompleteJobBtn!!.visibility = View.VISIBLE
  213.  
  214. } else {
  215. Message.showMessage("Something went wrong, please try again.", MessageType.DANGER, this@LoadBoardDetailsActivity)
  216. }
  217. }
  218. }
  219. })
  220. }
  221.  
  222. fun completeJob() {
  223. var jobNameTextField = textViewJobName
  224. jobService!!.complete(job?.id!!, mToken).enqueue(object : Callback<Unit> {
  225. override fun onFailure(call: Call<Unit>?, t: Throwable?) {
  226. Log.d("retrofit failure", "message " + t!!.message)
  227. Message.showMessage(getString(R.string.something_went_wrong_msg), MessageType.DANGER, this@LoadBoardDetailsActivity)
  228.  
  229. }
  230.  
  231. override fun onResponse(call: Call<Unit>?, response: Response<Unit>?) {
  232. if (response != null) {
  233. Log.d("retrofit response", response.toString())
  234. if (response.isSuccessful) {
  235.  
  236. val preferences = PreferenceManager.getDefaultSharedPreferences(this@LoadBoardDetailsActivity)
  237. val fromAddress = preferences.getString("account_wallet_name", null)
  238. val password = preferences.getString("account_wallet_password", null)
  239.  
  240. var lightClient: LightClient = LightClient(this@LoadBoardDetailsActivity)
  241. var out = lightClient.CompleteDelivery(job?.id!!, password, fromAddress)
  242.  
  243.  
  244. Message.showMessage(getString(R.string.job_completed_msg), MessageType.SUCCESS, this@LoadBoardDetailsActivity)
  245. mapService.drawRoute(marker1?.title!!, marker2?.title!!, TravelMode.DRIVING)
  246. mTakeJobBtn!!.visibility = View.GONE
  247. mCompleteJobBtn!!.visibility = View.GONE
  248. jobNameTextField.setText(jobNameTextField.text.toString().plus(" (Completed) "))
  249. } else {
  250. Message.showMessage(getString(R.string.something_went_wrong_msg), MessageType.DANGER, this@LoadBoardDetailsActivity)
  251. }
  252. }
  253. }
  254. })
  255. }
  256.  
  257. override fun onMapReady(googleMap: GoogleMap) {
  258. mMap = googleMap
  259. marker1 = mapService.addSingleMarkerToMap(mMap!!, markerOptions1!!)
  260. marker2 = mapService.addSingleMarkerToMap(mMap!!, markerOptions2!!)
  261. mapService.setMap(googleMap)
  262. mMap!!.setOnMapLoadedCallback {
  263. mMap!!.animateCamera(CameraUpdateFactory.newLatLngZoom(mapService.getLatLongFromString(job?.loadAddress!!), 10f))
  264. mapService.drawRoute(marker1?.title!!, marker2?.title!!, TravelMode.DRIVING)
  265. }
  266. }
  267.  
  268. fun fill(job: Job) {
  269. mStartPos?.text = job.loadAddress
  270. mDestination?.text = job.dropAddress
  271. mJobDescription?.text = job.description
  272. mJobLoadLimit?.text = job.weight.toString()
  273. mJobValue?.text = job.price.toString()
  274. mContact?.text = job.contactPerson
  275. textViewJobName.text = job.jobName!!.capitalize()
  276. }
  277.  
  278. override fun onConnected(p0: Bundle?) {
  279. println("ONCONNECED CALLBACK")
  280. }
  281.  
  282. override fun onConnectionFailed(connectionResult: ConnectionResult) {
  283. println("ONCONNECTION FAILED: ")
  284. }
  285.  
  286. override fun onConnectionSuspended(i: Int) {
  287. println("ONCONNECTION SUSPENDED: ")
  288. }
  289.  
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement