125 version, net kit button issue resolved

This commit is contained in:
chandrashekhar reddy
2024-07-25 12:49:54 +05:30
parent dd345a1b31
commit 453af33baa
5 changed files with 101 additions and 55 deletions

View File

@@ -42,7 +42,7 @@ object DataHolder {
var district: String = "" var district: String = ""
var quickCapture:Boolean = false var quickCapture:Boolean = false
var location: UserData.Location? = null var location: UserData.Location? = null
var ipAddress: String ="" var ipAddress: String ="0.0"
var testExp: Boolean = true var testExp: Boolean = true
var hemocubeResult: Double? = null var hemocubeResult: Double? = null
} }

View File

@@ -51,7 +51,7 @@ import java.util.Locale
import kotlin.math.max import kotlin.math.max
class KitScanActivity : AppCompatActivity(), IDcsSdkApiDelegate { class KitScanActivity : AppCompatActivity(), IDcsSdkApiDelegate {
private var fromWhere = "Home"
private val TAG = "KitScanActivity" private val TAG = "KitScanActivity"
private lateinit var binding: ActivityKitScanBinding private lateinit var binding: ActivityKitScanBinding
@@ -134,6 +134,7 @@ class KitScanActivity : AppCompatActivity(), IDcsSdkApiDelegate {
sharedPreference = this.getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE) sharedPreference = this.getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE)
setContentView(binding.root) setContentView(binding.root)
binding.toolbar.title = "Kit Serial Number" binding.toolbar.title = "Kit Serial Number"
fromWhere = intent.getStringExtra("fromWhere").toString()
val maxTest = if(sharedPreference.getString(Constants.CUVETTE_SIZE, "10mm").toString() == "2mm"){ val maxTest = if(sharedPreference.getString(Constants.CUVETTE_SIZE, "10mm").toString() == "2mm"){
Constants.MAXIMUM_TEST_ALLOWED_BEFORE_REFERENCE Constants.MAXIMUM_TEST_ALLOWED_BEFORE_REFERENCE
}else{ }else{
@@ -363,22 +364,23 @@ class KitScanActivity : AppCompatActivity(), IDcsSdkApiDelegate {
} }
private fun moveToNext() { private fun moveToNext() {
if(fromWhere == "Main"){
DataHolder.deviceType.observe(this) { deviceType ->
when (deviceType) {
Constants.DEVICE_TYPE_HEMOCUBE -> {
val i = Intent(applicationContext, HemocubeActivity::class.java)
startActivity(i)
}
DataHolder.deviceType.observe(this) { deviceType -> Constants.DEVICE_TYPE_TEST_RIGHT -> {
when (deviceType) { val i = Intent(applicationContext, TestRightActivity::class.java)
Constants.DEVICE_TYPE_HEMOCUBE -> { startActivity(i)
val i = Intent(applicationContext, HemocubeActivity::class.java) }
startActivity(i)
}
Constants.DEVICE_TYPE_TEST_RIGHT -> { Constants.DEVICE_TYPE_TRUEHEME -> {
val i = Intent(applicationContext, TestRightActivity::class.java) val i = Intent(applicationContext, HemocubeActivity::class.java)
startActivity(i) startActivity(i)
} }
Constants.DEVICE_TYPE_TRUEHEME -> {
val i = Intent(applicationContext, HemocubeActivity::class.java)
startActivity(i)
} }
} }
} }

View File

@@ -220,6 +220,7 @@ class MainActivity : AppCompatActivity() {
binding.cvItem1.setOnClickListener { binding.cvItem1.setOnClickListener {
DataHolder.selectedTestType = TestType.SICKLECERT DataHolder.selectedTestType = TestType.SICKLECERT
val i = Intent(applicationContext, KitScanActivity::class.java) val i = Intent(applicationContext, KitScanActivity::class.java)
i.putExtra("fromWhere","Main")
startActivity(i) startActivity(i)
finish() finish()
} }
@@ -227,6 +228,7 @@ class MainActivity : AppCompatActivity() {
binding.cvItem2.setOnClickListener { binding.cvItem2.setOnClickListener {
DataHolder.selectedTestType = TestType.SICKLEFIND DataHolder.selectedTestType = TestType.SICKLEFIND
val i = Intent(applicationContext, KitScanActivity::class.java) val i = Intent(applicationContext, KitScanActivity::class.java)
i.putExtra("fromWhere","Main")
startActivity(i) startActivity(i)
finish() finish()
} }

View File

@@ -43,6 +43,7 @@ import androidx.appcompat.content.res.AppCompatResources
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.DataHolder import com.example.hpostesting.data.constant.DataHolder
@@ -73,10 +74,9 @@ import com.google.firebase.perf.ktx.performance
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import `in`.sminnovations.hpostesting.R import `in`.sminnovations.hpostesting.R
import `in`.sminnovations.hpostesting.databinding.FragmentHomeBinding import `in`.sminnovations.hpostesting.databinding.FragmentHomeBinding
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import okhttp3.ResponseBody import okhttp3.ResponseBody
import org.json.JSONObject import org.json.JSONObject
import java.io.BufferedOutputStream import java.io.BufferedOutputStream
@@ -90,7 +90,6 @@ import java.text.SimpleDateFormat
import java.util.Calendar import java.util.Calendar
import java.util.Date import java.util.Date
import java.util.Locale import java.util.Locale
import java.util.Scanner
import java.util.zip.ZipEntry import java.util.zip.ZipEntry
import java.util.zip.ZipInputStream import java.util.zip.ZipInputStream
import kotlin.properties.Delegates import kotlin.properties.Delegates
@@ -140,7 +139,7 @@ class HomeFragment : Fragment() {
viewModel.allUserData.observe(viewLifecycleOwner) { userData -> viewModel.allUserData.observe(viewLifecycleOwner) { userData ->
deleteIncompleteRegistrations(userData) deleteIncompleteRegistrations(userData)
} }
getLocationIP() // getLocationIP()
hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userData -> hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userData ->
deleteHemoCubeIncompleteRegistrations(userData) deleteHemoCubeIncompleteRegistrations(userData)
if (userData.isNotEmpty()) { if (userData.isNotEmpty()) {
@@ -236,7 +235,9 @@ class HomeFragment : Fragment() {
// putInt(Constants.KIT_COUNT, 0) // putInt(Constants.KIT_COUNT, 0)
// apply() // apply()
// } // }
startActivity(Intent(requireContext(), KitScanActivity::class.java)) val intent = Intent(requireContext(), KitScanActivity::class.java)
intent.putExtra("fromWhere","Home")
startActivity(intent)
// requireActivity().finish() // requireActivity().finish()
} }
binding.btnQuickCapture.setOnClickListener { binding.btnQuickCapture.setOnClickListener {
@@ -260,19 +261,29 @@ class HomeFragment : Fragment() {
checkNetworkStatus() checkNetworkStatus()
} }
private fun getLocationIP() { // private fun getLocationIP() {
if(isInternetAvailable(requireContext())) { // try {
getPublicIpAddr { ipAddress -> // if (isInternetAvailable(requireContext())) {
if(ipAddress != "fail"){ // getPublicIpAddr { ipAddress ->
DataHolder.ipAddress = ipAddress // if (ipAddress != "fail") {
with(sharedPreference.edit()) { // DataHolder.ipAddress = ipAddress
putString(Constants.IP_ADDRESS, ipAddress) // with(sharedPreference.edit()) {
apply() // putString(Constants.IP_ADDRESS, ipAddress)
} // apply()
} // }
} // } else {
} // Log.e("Home", "Failed to get public IP address")
} // }
// }
// } else {
// Log.e("Home", "Internet is not available")
// }
// } catch (e: UnknownHostException) {
// Log.e("Home", "UnknownHostException: Unable to resolve host. Network might be unavailable or DNS server is not reachable", e)
// } catch (e: Exception) {
// Log.e("Home", "Network Problem", e)
// }
// }
@RequiresApi(Build.VERSION_CODES.P) @RequiresApi(Build.VERSION_CODES.P)
private fun checkNetworkStatus() { private fun checkNetworkStatus() {
@@ -690,9 +701,10 @@ class HomeFragment : Fragment() {
requireActivity().packageName, 0 requireActivity().packageName, 0
) )
val version = pInfo.versionName val version = pInfo.versionName
var labname = sharedPreference.getString(Constants.LABNAME,"") val labname = sharedPreference.getString(Constants.CENTER_NAME,"")
val ip = sharedPreference.getString(Constants.IP_ADDRESS,"")
return LoginRequest( return LoginRequest(
location = DataHolder.ipAddress, password = password, serialNumber = userID, username = userID, version = version, lab = labname location = ip, password = password, serialNumber = userID, username = userID, version = version, lab = labname
) )
} }
private fun createCheckUpdateRequestData(): CheckUpdateRequest { private fun createCheckUpdateRequestData(): CheckUpdateRequest {
@@ -1527,34 +1539,64 @@ class HomeFragment : Fragment() {
super.onDestroy() super.onDestroy()
} }
@OptIn(DelicateCoroutinesApi::class)
private fun getPublicIpAddr(callback: (String) -> Unit) { private fun getPublicIpAddr(callback: (String) -> Unit) {
try { lifecycleScope.launch(Dispatchers.IO) {
GlobalScope.launch(Dispatchers.IO) { try {
val url = URL("https://api.ipify.org") val url = URL("https://api.ipify.org")
val conn = url.openConnection() as HttpURLConnection val conn = url.openConnection() as HttpURLConnection
try { try {
conn.connect() conn.connect()
if (conn.responseCode == HttpURLConnection.HTTP_OK) { if (conn.responseCode == HttpURLConnection.HTTP_OK) {
val scanner = Scanner(conn.inputStream) val inputStream = conn.inputStream
scanner.useDelimiter("\\A") val ipAddress = inputStream.bufferedReader().use { it.readText() }
if (scanner.hasNext()) { inputStream.close()
val ipAddress = scanner.next() withContext(Dispatchers.Main) {
Log.d("ipaddress",DataHolder.ipAddress)
callback(ipAddress) callback(ipAddress)
}else{ }
} else {
withContext(Dispatchers.Main) {
callback("fail") callback("fail")
} }
} }
} finally { } finally {
conn.disconnect() conn.disconnect()
} }
} catch (e: Exception) {
Log.e("getPublicIpAddr", e.toString())
withContext(Dispatchers.Main) {
callback("fail")
}
} }
}catch (e: Exception){
Log.e("home",e.toString())
callback("fail")
} }
} }
// @OptIn(DelicateCoroutinesApi::class)
// private fun getPublicIpAddr(callback: (String) -> Unit) {
// try {
// GlobalScope.launch(Dispatchers.IO) {
// val url = URL("https://api.ipify.org")
// val conn = url.openConnection() as HttpURLConnection
// try {
// conn.connect()
// if (conn.responseCode == HttpURLConnection.HTTP_OK) {
// val scanner = Scanner(conn.inputStream)
// scanner.useDelimiter("\\A")
// if (scanner.hasNext()) {
// val ipAddress = scanner.next()
// Log.d("ipaddress",DataHolder.ipAddress)
// callback(ipAddress)
// }else{
// callback("fail")
// }
// }
// } finally {
// conn.disconnect()
// }
// }
// }catch (e: Exception){
// Log.e("home",e.toString())
// callback("fail")
// }
// }
private fun callLogin(userID: String, password: String) { private fun callLogin(userID: String, password: String) {
if(DataHolder.ipAddress == "0.0"){ if(DataHolder.ipAddress == "0.0"){
@@ -1586,7 +1628,7 @@ class HomeFragment : Fragment() {
return diffMillis / (60 * 1000) // Convert milliseconds to minutes return diffMillis / (60 * 1000) // Convert milliseconds to minutes
} }
fun isInternetAvailable(context: Context): Boolean { private fun isInternetAvailable(context: Context): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val network = connectivityManager.activeNetwork ?: return false val network = connectivityManager.activeNetwork ?: return false

View File

@@ -77,12 +77,12 @@ class LoginFragment : Fragment() {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
init() init()
if(isInternetAvailable()){ // if(isInternetAvailable()){
getPublicIpAddr { ipAddress -> // getPublicIpAddr { ipAddress ->
DataHolder.ipAddress = ipAddress // DataHolder.ipAddress = ipAddress
} // }
Log.d("ipaddress",DataHolder.ipAddress) // Log.d("ipaddress",DataHolder.ipAddress)
} // }
setupAutoCompleteTextView() setupAutoCompleteTextView()
//checkLocation() //checkLocation()
} }