Updating USB Symbol based on device is connected or not using livedata.
This commit is contained in:
@@ -5,7 +5,8 @@ import com.example.hpos.data.model.TestRightDeviceConstants
|
||||
|
||||
object DataHolder {
|
||||
// var usbConnected: Boolean = false
|
||||
val usbConnected = MutableLiveData(false)
|
||||
// val usbConnected = MutableLiveData(false)
|
||||
val usbConnected = MutableLiveData(true)
|
||||
|
||||
var isStoragePermissionGranted = false
|
||||
var isAppFolderCreated = false
|
||||
|
||||
@@ -9,10 +9,13 @@ object Constants {
|
||||
const val TEST_RIGHT_TOTAL_PIXEL = 3694
|
||||
// const val TEST_RIGHT_TOTAL_PIXEL = 12
|
||||
|
||||
const val MAXIMUM_TEST_ALLOWED_BEFORE_REFERENCE = 1
|
||||
const val MAXIMUM_TEST_ALLOWED_BEFORE_REFERENCE = 10
|
||||
|
||||
const val RANGE_IN_RESULT_CALCULATIONS = 10
|
||||
|
||||
const val WAVELENGTH_OF_INTEREST_ONE = 427
|
||||
const val WAVELENGTH_OF_INTEREST_TWO = 555
|
||||
|
||||
const val DEVICE_PRODUCT_ID = 24597
|
||||
const val DEVICE_VENDOR_ID = 1027
|
||||
}
|
||||
@@ -4,8 +4,10 @@ import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.hardware.usb.UsbDevice
|
||||
import android.hardware.usb.UsbManager
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.Gravity
|
||||
import android.view.Menu
|
||||
import android.widget.Toast
|
||||
@@ -15,9 +17,11 @@ import androidx.core.view.get
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.example.hpos.R
|
||||
import com.example.hpos.data.DataHolder
|
||||
import com.example.hpos.data.constant.Constants
|
||||
import com.example.hpos.databinding.ActivityMainBinding
|
||||
import com.example.hpos.presentation.testRight.TestRightActivity
|
||||
import com.example.hpos.util.MyViewModelFactory
|
||||
import com.hoho.android.usbserial.driver.UsbSerialProber
|
||||
|
||||
|
||||
class MainActivity : AppCompatActivity()
|
||||
@@ -64,6 +68,21 @@ class MainActivity : AppCompatActivity()
|
||||
registerReceiver(mUsbReceiver, filter)
|
||||
}
|
||||
|
||||
private fun checkAndUpdateUsbConnection() {
|
||||
val availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(getSystemService(Context.USB_SERVICE) as UsbManager)
|
||||
if (availableDrivers.isNotEmpty() && availableDrivers[0].device.productId == Constants.DEVICE_PRODUCT_ID && availableDrivers[0].device.vendorId == Constants.DEVICE_VENDOR_ID){
|
||||
Log.d(TAG, "Device matched -> product = ${availableDrivers[0].device.productId}, vendor = ${availableDrivers[0].device.vendorId}")
|
||||
DataHolder.usbConnected.value = true
|
||||
} else if (availableDrivers.isNotEmpty()) {
|
||||
Log.d(TAG, "Device NOT matched -> product = ${availableDrivers[0].device.productId}, vendor = ${availableDrivers[0].device.vendorId}")
|
||||
Toast.makeText(this, "Device Not Compatible", Toast.LENGTH_SHORT).show()
|
||||
DataHolder.usbConnected.value = false
|
||||
} else {
|
||||
Log.d(TAG, "Device NOT Connected")
|
||||
DataHolder.usbConnected.value = false
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupListeners() {
|
||||
|
||||
binding.cvItem1.setOnClickListener {
|
||||
@@ -76,11 +95,12 @@ class MainActivity : AppCompatActivity()
|
||||
}
|
||||
|
||||
DataHolder.usbConnected.observe(this){
|
||||
// Log.d(TAG, "usbConnected observer called with value -> $it")
|
||||
if (it){
|
||||
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_24)
|
||||
} else {
|
||||
// Log.d(TAG, "into no block -> $it")
|
||||
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_off_24)
|
||||
Toast.makeText(this, "USB NOT CONNECTED", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -88,7 +108,7 @@ class MainActivity : AppCompatActivity()
|
||||
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
||||
menuInflater.inflate(R.menu.my_menu, menu)
|
||||
myMenu = menu
|
||||
DataHolder.usbConnected.value = DataHolder.usbConnected.value
|
||||
checkAndUpdateUsbConnection()
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
@@ -88,12 +88,13 @@ class TestRightActivity : AppCompatActivity() {
|
||||
|
||||
private fun setupListener() {
|
||||
DataHolder.usbConnected.observe(this){
|
||||
Log.d("USB OBSERVE", "testrightactivity called -> $it")
|
||||
if (it){
|
||||
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_24)
|
||||
} else {
|
||||
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_off_24)
|
||||
// val myToast = Toast.makeText(this, "USB is Detached", Toast.LENGTH_SHORT)
|
||||
Toast.makeText(this, "USB is Detached", Toast.LENGTH_SHORT).show()
|
||||
Toast.makeText(this, "Device is Disconnected", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -112,6 +113,13 @@ class TestRightActivity : AppCompatActivity() {
|
||||
onUsbError("No Device is Connected")
|
||||
} else {
|
||||
mDriver = availableDrivers[0]
|
||||
|
||||
if (mDriver.device.productId != Constants.DEVICE_PRODUCT_ID || mDriver.device.vendorId != Constants.DEVICE_VENDOR_ID){
|
||||
Toast.makeText(this, "Device Connected is not supported", Toast.LENGTH_SHORT).show()
|
||||
onBackPressed()
|
||||
return
|
||||
}
|
||||
|
||||
mConnection = manager.openDevice(mDriver.device)
|
||||
|
||||
if (mConnection == null) {
|
||||
|
||||
Reference in New Issue
Block a user