@@ -2,46 +2,35 @@ package io.github.the_dagger.mlkit
22
33import android.graphics.Bitmap
44import android.os.Bundle
5- import android.support.design.widget.FloatingActionButton
65import android.support.v7.app.AppCompatActivity
76import com.google.firebase.ml.vision.FirebaseVision
87import com.google.firebase.ml.vision.common.FirebaseVisionImage
98import com.wonderkiln.camerakit.CameraKitImage
109import android.support.design.widget.BottomSheetBehavior
10+ import android.support.design.widget.Snackbar
1111import android.support.v7.widget.LinearLayoutManager
12- import com.google.firebase.ml.vision.label.FirebaseVisionLabel
1312import kotlinx.android.synthetic.main.activity_main.*
1413import kotlinx.android.synthetic.main.layout_bottom_sheet.*
1514import android.view.View
16- import android.R.attr.bitmap
17- import com.google.firebase.ml.vision.cloud.label.FirebaseVisionCloudLabelDetector
18- import android.support.annotation.NonNull
19- import com.google.android.gms.tasks.OnFailureListener
20- import com.google.firebase.ml.vision.cloud.label.FirebaseVisionCloudLabel
21- import com.google.android.gms.tasks.OnSuccessListener
22- import com.google.android.gms.tasks.Task
15+ import android.widget.Toast
2316
2417
2518class MainActivity : AppCompatActivity () {
2619
2720 private var itemsList: ArrayList <Any > = ArrayList ()
28-
29- private val itemsAdapter: ItemsAdapter by lazy {
30- ItemsAdapter (itemsList)
31- }
21+ private lateinit var itemAdapter: ItemAdapter
3222
3323 private lateinit var sheetBehavior: BottomSheetBehavior <* >
3424
3525 override fun onCreate (savedInstanceState : Bundle ? ) {
3626 super .onCreate(savedInstanceState)
3727 setContentView(R .layout.activity_main)
38- val floatingActionButton = findViewById<FloatingActionButton >(R .id.fab_take_photo)
39-
4028 rvLabel.layoutManager = LinearLayoutManager (this )
41- rvLabel.adapter = itemsAdapter
29+ btnRetry.setOnClickListener {
30+ if (cameraView.visibility == View .VISIBLE ) showPreview() else hidePreview()
31+ }
4232
4333 sheetBehavior = BottomSheetBehavior .from(bottomLayout)
44-
4534 sheetBehavior.setBottomSheetCallback(object : BottomSheetBehavior .BottomSheetCallback () {
4635 override fun onStateChanged (bottomSheet : View , newState : Int ) {}
4736
@@ -50,10 +39,14 @@ class MainActivity : AppCompatActivity() {
5039 }
5140 })
5241
53- floatingActionButton .setOnClickListener {
42+ fab_take_photo .setOnClickListener {
5443 fabProgressCircle.show()
55- camera .captureImage { cameraKitImage ->
44+ cameraView .captureImage { cameraKitImage ->
5645 getLabelsFromClod(captureImage(cameraKitImage))
46+ runOnUiThread {
47+ showPreview()
48+ imagePreview.setImageBitmap(cameraKitImage.bitmap)
49+ }
5750 }
5851 }
5952 }
@@ -67,12 +60,14 @@ class MainActivity : AppCompatActivity() {
6760 // Task completed successfully
6861 fabProgressCircle.hide()
6962 itemsList.addAll(it)
70- itemsAdapter.notifyDataSetChanged()
63+ itemAdapter = ItemAdapter (itemsList,false )
64+ rvLabel.adapter = itemAdapter
7165 sheetBehavior.setState(BottomSheetBehavior .STATE_EXPANDED );
7266 }
7367 .addOnFailureListener {
7468 // Task failed with an exception
7569 fabProgressCircle.hide()
70+ Toast .makeText(baseContext," Sorry, something went wrong!" ,Toast .LENGTH_SHORT ).show()
7671 }
7772 }
7873
@@ -81,30 +76,41 @@ class MainActivity : AppCompatActivity() {
8176 val detector = FirebaseVision .getInstance()
8277 .visionCloudLabelDetector
8378 itemsList.clear()
84- val result = detector.detectInImage(image)
79+ detector.detectInImage(image)
8580 .addOnSuccessListener {
8681 // Task completed successfully
8782 fabProgressCircle.hide()
8883 itemsList.addAll(it)
89- itemsAdapter.notifyDataSetChanged()
84+ itemAdapter = ItemAdapter (itemsList,true )
85+ rvLabel.adapter = itemAdapter
9086 sheetBehavior.setState(BottomSheetBehavior .STATE_EXPANDED );
9187 }
9288 .addOnFailureListener {
9389 // Task failed with an exception
9490 fabProgressCircle.hide()
91+ Toast .makeText(baseContext," Sorry, something went wrong!" ,Toast .LENGTH_SHORT ).show()
9592 }
9693 }
9794
9895 override fun onResume () {
9996 super .onResume()
100- camera .start()
97+ cameraView .start()
10198 }
10299
103100 override fun onPause () {
104- camera .stop()
101+ cameraView .stop()
105102 super .onPause()
106103 }
107104
105+ private fun showPreview () {
106+ framePreview.visibility = View .VISIBLE
107+ cameraView.visibility = View .GONE
108+ }
109+
110+ private fun hidePreview () {
111+ framePreview.visibility = View .GONE
112+ cameraView.visibility = View .VISIBLE
113+ }
108114
109115 private fun captureImage (cameraKitImage : CameraKitImage ): Bitmap {
110116 return cameraKitImage.bitmap
0 commit comments