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 {
|
object DataHolder {
|
||||||
// var usbConnected: Boolean = false
|
// var usbConnected: Boolean = false
|
||||||
val usbConnected = MutableLiveData(false)
|
// val usbConnected = MutableLiveData(false)
|
||||||
|
val usbConnected = MutableLiveData(true)
|
||||||
|
|
||||||
var isStoragePermissionGranted = false
|
var isStoragePermissionGranted = false
|
||||||
var isAppFolderCreated = false
|
var isAppFolderCreated = false
|
||||||
|
|||||||
@@ -9,10 +9,13 @@ object Constants {
|
|||||||
const val TEST_RIGHT_TOTAL_PIXEL = 3694
|
const val TEST_RIGHT_TOTAL_PIXEL = 3694
|
||||||
// const val TEST_RIGHT_TOTAL_PIXEL = 12
|
// 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 RANGE_IN_RESULT_CALCULATIONS = 10
|
||||||
|
|
||||||
const val WAVELENGTH_OF_INTEREST_ONE = 427
|
const val WAVELENGTH_OF_INTEREST_ONE = 427
|
||||||
const val WAVELENGTH_OF_INTEREST_TWO = 555
|
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.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.IntentFilter
|
import android.content.IntentFilter
|
||||||
|
import android.hardware.usb.UsbDevice
|
||||||
import android.hardware.usb.UsbManager
|
import android.hardware.usb.UsbManager
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
@@ -15,9 +17,11 @@ import androidx.core.view.get
|
|||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.example.hpos.R
|
import com.example.hpos.R
|
||||||
import com.example.hpos.data.DataHolder
|
import com.example.hpos.data.DataHolder
|
||||||
|
import com.example.hpos.data.constant.Constants
|
||||||
import com.example.hpos.databinding.ActivityMainBinding
|
import com.example.hpos.databinding.ActivityMainBinding
|
||||||
import com.example.hpos.presentation.testRight.TestRightActivity
|
import com.example.hpos.presentation.testRight.TestRightActivity
|
||||||
import com.example.hpos.util.MyViewModelFactory
|
import com.example.hpos.util.MyViewModelFactory
|
||||||
|
import com.hoho.android.usbserial.driver.UsbSerialProber
|
||||||
|
|
||||||
|
|
||||||
class MainActivity : AppCompatActivity()
|
class MainActivity : AppCompatActivity()
|
||||||
@@ -64,6 +68,21 @@ class MainActivity : AppCompatActivity()
|
|||||||
registerReceiver(mUsbReceiver, filter)
|
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() {
|
private fun setupListeners() {
|
||||||
|
|
||||||
binding.cvItem1.setOnClickListener {
|
binding.cvItem1.setOnClickListener {
|
||||||
@@ -76,11 +95,12 @@ class MainActivity : AppCompatActivity()
|
|||||||
}
|
}
|
||||||
|
|
||||||
DataHolder.usbConnected.observe(this){
|
DataHolder.usbConnected.observe(this){
|
||||||
|
// Log.d(TAG, "usbConnected observer called with value -> $it")
|
||||||
if (it){
|
if (it){
|
||||||
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_24)
|
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_24)
|
||||||
} else {
|
} else {
|
||||||
|
// Log.d(TAG, "into no block -> $it")
|
||||||
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_off_24)
|
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 {
|
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
||||||
menuInflater.inflate(R.menu.my_menu, menu)
|
menuInflater.inflate(R.menu.my_menu, menu)
|
||||||
myMenu = menu
|
myMenu = menu
|
||||||
DataHolder.usbConnected.value = DataHolder.usbConnected.value
|
checkAndUpdateUsbConnection()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -88,12 +88,13 @@ class TestRightActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
private fun setupListener() {
|
private fun setupListener() {
|
||||||
DataHolder.usbConnected.observe(this){
|
DataHolder.usbConnected.observe(this){
|
||||||
|
Log.d("USB OBSERVE", "testrightactivity called -> $it")
|
||||||
if (it){
|
if (it){
|
||||||
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_24)
|
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_24)
|
||||||
} else {
|
} else {
|
||||||
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_off_24)
|
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)
|
// 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")
|
onUsbError("No Device is Connected")
|
||||||
} else {
|
} else {
|
||||||
mDriver = availableDrivers[0]
|
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)
|
mConnection = manager.openDevice(mDriver.device)
|
||||||
|
|
||||||
if (mConnection == null) {
|
if (mConnection == null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user