diff --git a/app/build.gradle b/app/build.gradle index 06f039e..bd67a23 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,7 +16,7 @@ android { // prod - production, preprod - preproduction, quality - qc, dev - development defaultConfig { - applicationId "in.sminnovations.hpostesting.quality" + applicationId "in.sminnovations.hpostesting" minSdk 21 targetSdk 34 versionCode 97 @@ -161,4 +161,6 @@ dependencies { // implementation("io.nats:jnats:2.11.2") implementation 'com.google.android.play:core:1.10.3' + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation fileTree(dir: 'C:\\Users\\Lenovo\\StudioProjects\\ZebraScanner\\ZebraScanner\\app\\libs', include: ['*.aar', '*.jar']) } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a91079a..6d0e964 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,7 +6,6 @@ - @@ -34,6 +33,9 @@ android:supportsRtl="true" android:theme="@style/Theme.HPOSTesting" tools:targetApi="31"> + @@ -55,13 +57,11 @@ - + android:theme="@style/Theme.HPOS.NoActionBar" /> - + android:theme="@style/Theme.HPOS.NoActionBar" /> - + + - - \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/data/api/MolbioAuthApi.kt b/app/src/main/java/com/example/hpostesting/data/api/MolbioAuthApi.kt index 1165024..6dbcef7 100644 --- a/app/src/main/java/com/example/hpostesting/data/api/MolbioAuthApi.kt +++ b/app/src/main/java/com/example/hpostesting/data/api/MolbioAuthApi.kt @@ -1,5 +1,7 @@ package com.example.hpostesting.data.api +import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsRequest +import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsResponse import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionRequest import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse import com.example.hpostesting.data.model.login.LoginRequest @@ -14,6 +16,11 @@ interface MolbioAuthApi { @Body deviceProvisionRequest: DeviceProvisionRequest ): DeviceProvisionResponse + @POST("deviceService/device/uploadDeviceDiagnostics") + suspend fun deviceDiagnostics( + @Body deviceDiagnosticsRequest: DeviceDiagnosticsRequest + ): DeviceDiagnosticsResponse + @POST("deviceService/device/login") suspend fun login( @Body loginRequest: LoginRequest diff --git a/app/src/main/java/com/example/hpostesting/data/model/devicediagnostics/DeviceDiagnosticsRequest.kt b/app/src/main/java/com/example/hpostesting/data/model/devicediagnostics/DeviceDiagnosticsRequest.kt new file mode 100644 index 0000000..194ff79 --- /dev/null +++ b/app/src/main/java/com/example/hpostesting/data/model/devicediagnostics/DeviceDiagnosticsRequest.kt @@ -0,0 +1,15 @@ +package com.example.hpostesting.data.model.devicediagnostics + +import com.google.gson.annotations.SerializedName + +data class AdditionalDetails( + @SerializedName("batteryLevel") val batteryLevel: String, + @SerializedName("batteryCapacity") val batteryCapacity: String, + @SerializedName("batteryMaxCapacity") val batteryMaxCapacity: String, + @SerializedName("batteryTemperature") val batteryTemperature: String, + @SerializedName("batteryVoltage") val batteryVoltage: String +) + +data class DeviceDiagnosticsRequest( + @SerializedName("additionalDetails") val additionalDetails: AdditionalDetails +) diff --git a/app/src/main/java/com/example/hpostesting/data/model/devicediagnostics/DeviceDiagnosticsResponse.kt b/app/src/main/java/com/example/hpostesting/data/model/devicediagnostics/DeviceDiagnosticsResponse.kt new file mode 100644 index 0000000..c19b3a5 --- /dev/null +++ b/app/src/main/java/com/example/hpostesting/data/model/devicediagnostics/DeviceDiagnosticsResponse.kt @@ -0,0 +1,13 @@ +package com.example.hpostesting.data.model.devicediagnostics + +import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionData +import com.google.gson.annotations.SerializedName + +data class DeviceDiagnosticsResponse( + @SerializedName("Data") + val data: DeviceDiagnosticsData?, + @SerializedName("Message") + val message: String? = "", + @SerializedName("Result") + val result: String? = "" +) diff --git a/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt b/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt index bffe71e..ef72c32 100644 --- a/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt +++ b/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt @@ -6,6 +6,8 @@ import com.example.hpostesting.data.api.MolbioAuthApi import com.example.hpostesting.data.api.MolbioResultApi import com.example.hpostesting.data.model.PendingUploads import com.example.hpostesting.data.model.Response +import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsRequest +import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsResponse import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionRequest import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse import com.example.hpostesting.data.model.diagnostics.DiagnosticsData @@ -61,6 +63,11 @@ class DatabaseRepository @Inject constructor( return safeApiCall { molbioAuthApi.deviceProvision(deviceProvisionRequest) } } + override suspend fun deviceDiagnostics(deviceDiagnosticsRequest: DeviceDiagnosticsRequest): Result { + return safeApiCall { molbioAuthApi.deviceDiagnostics(deviceDiagnosticsRequest) } + } + + override suspend fun login(loginRequest: LoginRequest): Result { return safeApiCall { molbioAuthApi.login(loginRequest) } } diff --git a/app/src/main/java/com/example/hpostesting/data/repository/Repository.kt b/app/src/main/java/com/example/hpostesting/data/repository/Repository.kt index cd3e9b5..983a0cd 100644 --- a/app/src/main/java/com/example/hpostesting/data/repository/Repository.kt +++ b/app/src/main/java/com/example/hpostesting/data/repository/Repository.kt @@ -2,6 +2,8 @@ package com.example.hpostesting.data.repository import com.example.hpostesting.data.Result import com.example.hpostesting.data.model.Response +import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsRequest +import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsResponse import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionRequest import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse import com.example.hpostesting.data.model.diagnostics.DiagnosticsData @@ -36,7 +38,7 @@ interface Repository { // suspend fun addToDatabase(data: PatientDetails) suspend fun deviceProvision(deviceProvisionRequest: DeviceProvisionRequest): Result - + suspend fun deviceDiagnostics(deviceDiagnosticsRequest: DeviceDiagnosticsRequest): Result suspend fun login(loginRequest: LoginRequest): Result suspend fun uploadResults(molbioV2ResultRequest: MolbioV2ResultRequest): Result diff --git a/app/src/main/java/com/example/hpostesting/domain/LogFileManagerImpl.kt b/app/src/main/java/com/example/hpostesting/domain/LogFileManagerImpl.kt index f7782ee..6c8cf29 100644 --- a/app/src/main/java/com/example/hpostesting/domain/LogFileManagerImpl.kt +++ b/app/src/main/java/com/example/hpostesting/domain/LogFileManagerImpl.kt @@ -14,7 +14,7 @@ class LogFileManagerImpl @Inject constructor(private val context: Context) : Log val logFileName = "hpos_$unixTime.log" return try { - val process = Runtime.getRuntime().exec("logcat -d -v threadtime -t 1000") + val process = Runtime.getRuntime().exec("logcat -d -v threadtime -t 100") val logBuilder = StringBuilder() val input = process.inputStream val bufferedReader = input.bufferedReader() diff --git a/app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt index 9e6add7..e2f005d 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/KitScanActivity.kt @@ -41,7 +41,6 @@ class KitScanActivity : AppCompatActivity(), IDcsSdkApiDelegate { private lateinit var sharedPreference: SharedPreferences var sdkHandler: SDKHandler? = null - var editBarcode: EditText? = null var mScannerInfoList = ArrayList() private val barcodeLauncher = registerForActivityResult( diff --git a/app/src/main/java/com/example/hpostesting/presentation/NatsManager.kt b/app/src/main/java/com/example/hpostesting/presentation/NatsManager.kt index 4c8f3dc..5691b76 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/NatsManager.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/NatsManager.kt @@ -24,7 +24,7 @@ class NatsManager(datacollector: DashboardActivity) { Log.d(TAG, "TRY TO CONNECT") Thread { - val seedString = "SUAEB5PUWNS6C2HUV3MFI6HUDEAPGPFPBHMI73NHIQATCDD2BWALVEZXZ4" + val seedString = "SUANEUKAD7USAMUBJHFRHFMTNAAVL3PAJOIRYOXKO4SDIRAQE5HVUFW75Y" val seedBytes = seedString.toCharArray() val theNKey = NKey.fromSeed(seedBytes) // really should load from somewhere diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt index 63b7cd9..6d4bff8 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt @@ -4,6 +4,7 @@ import android.app.DownloadManager import android.content.BroadcastReceiver import android.content.Context import android.content.Intent +import android.content.SharedPreferences import android.net.Uri import android.os.Bundle import android.util.Log @@ -11,6 +12,7 @@ import android.view.Menu import android.widget.Toast import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity +import androidx.core.content.ContentProviderCompat.requireContext import androidx.core.content.FileProvider import androidx.drawerlayout.widget.DrawerLayout import androidx.navigation.findNavController @@ -19,7 +21,9 @@ import androidx.navigation.ui.navigateUp import androidx.navigation.ui.setupActionBarWithNavController import androidx.navigation.ui.setupWithNavController import com.example.hpostesting.data.Result +import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.LanguageManager +import com.example.hpostesting.data.model.updates.CheckUpdateRequest import com.example.hpostesting.presentation.NatsManager import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel import com.google.android.material.navigation.NavigationView @@ -44,6 +48,7 @@ class DashboardActivity : AppCompatActivity(), IDataCollector { var responses: String = "" lateinit var nats: NatsManager private var downloadId: Long = 0 + private lateinit var sharedPreference: SharedPreferences // TODO: Remove hemocube viewmodel private val hemocubeViewModel: HemoCubeViewModel by viewModels() @@ -60,9 +65,14 @@ class DashboardActivity : AppCompatActivity(), IDataCollector { setContentView(binding.root) setSupportActionBar(binding.appBarDashboard.toolbar) nats = NatsManager(this) + + sharedPreference = + this.getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE) + sharedPreference.getString(Constants.NATS_TOKEN, "") + nats.connect() nats.pub("server.hpos.HCV-000-3001.ping", "THIS IS A TEST MSG") - + sharedPreference.getString(Constants.NATS_TOKEN,"")?.let { Log.e("NATS_TOKEN", it) } hemocubeViewModel.deviceUpdate.observe(this) { result -> when (result) { is Result.Success -> { @@ -232,5 +242,26 @@ class DashboardActivity : AppCompatActivity(), IDataCollector { responses = responses+response+"\n" println(responses) + + when { + response.contains("checkupdate", ignoreCase = true) -> { + hemocubeViewModel.checkUpdate(createCheckUpdateRequestData()) + } + response.contains("uploadlogs", ignoreCase = true) -> { + + hemocubeViewModel.uploadLogs() + } + response.contains("uploadresult", ignoreCase = true) -> { + + + } + } + } + + + private fun createCheckUpdateRequestData(): CheckUpdateRequest { + val pInfo = packageManager.getPackageInfo(packageName, 0) + val version = pInfo.versionName + return CheckUpdateRequest(currentVersion = version) } } \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt index 97d6094..35205d7 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt @@ -203,6 +203,7 @@ class HomeFragment : Fragment() { hemoCubeViewModel.deviceUpdate(createDeviceUpdateRequestData()) hemoCubeViewModel.uploadLogs() hemoCubeViewModel.startPeriodicCheckUpdate() + } } } else { diff --git a/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsFragment.kt index 5238824..884c3e8 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsFragment.kt @@ -1,7 +1,10 @@ package com.example.hpostesting.presentation.diagnostics import android.content.Context +import android.content.Intent +import android.content.IntentFilter import android.content.SharedPreferences +import android.os.BatteryManager import android.os.Bundle import android.util.Log import android.view.LayoutInflater @@ -11,8 +14,11 @@ import android.widget.Toast import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.MutableLiveData +import com.example.hpostesting.data.Result import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.HemoCubeCommands +import com.example.hpostesting.data.model.devicediagnostics.AdditionalDetails +import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsRequest import com.example.hpostesting.data.model.diagnostics.DiagnosticsData import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.presentation.UsbServiceListener @@ -32,7 +38,10 @@ class DiagnosticsFragment : Fragment() { private var resultData: String = "" private val messages = MutableLiveData() private var startListening = MutableLiveData(false) - + private val batteryStatus: Intent? = + IntentFilter(Intent.ACTION_BATTERY_CHANGED).let { ifilter -> + context?.registerReceiver(null, ifilter) + } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?, ): View { @@ -56,7 +65,25 @@ class DiagnosticsFragment : Fragment() { binding.btnSubmit.setOnClickListener { binding.btnSubmit.visibility = View.GONE runDeviceDiagnostics() + val batteryLevel = diagnosticsViewModel.getBatteryLevel().toString() + val batteryCapacity = context?.let { diagnosticsViewModel.getBatteryCapacity(it).toString() } + val batteryMaxCapacity = context?.let { diagnosticsViewModel.getBatteryMaxCapacity(it).toString() } + val batteryTemperature = diagnosticsViewModel.getBatteryTemperature().toString() + val batteryVoltage = context?.let { diagnosticsViewModel.getBatteryVoltage(it).toString() } + + val additionalDetails = AdditionalDetails( + batteryLevel = batteryLevel, + batteryCapacity = batteryCapacity!!, + batteryMaxCapacity = batteryMaxCapacity!!, + batteryTemperature = batteryTemperature, + batteryVoltage = batteryVoltage!! + ) + diagnosticsViewModel.deviceDiagnostics( + DeviceDiagnosticsRequest(additionalDetails = additionalDetails) + ) } + + } @@ -81,6 +108,44 @@ class DiagnosticsFragment : Fragment() { binding.progressBar.visibility = View.GONE } + + diagnosticsViewModel.deviceDiagnosticsResponse.observe(viewLifecycleOwner) { response -> + when (response) { + is Result.Success-> { + + val result = response.data?.result + if (result == "Success") { + Toast.makeText( + activity, response.data?.message ?: "Device diagnostics uploaded successfully", Toast.LENGTH_LONG + ).show() + + response.data?.data?.let { diagnosticsData -> + + val batteryLevel = diagnosticsData.additionalDetails.batteryLevel + + } + } else { + Toast.makeText( + activity, + "Received success response but the result is not successful: ${response.data?.message}", + Toast.LENGTH_LONG + ).show() + } + } + is Result.Error -> { + // Handle the error scenario + Toast.makeText( + activity, + "An error occurred: ${response.exception.message}", + Toast.LENGTH_LONG + ).show() + } + is Result.Loading -> { + } + } + } + + } private fun getDeviceId() { @@ -116,6 +181,7 @@ class DiagnosticsFragment : Fragment() { }) } + private fun listenToHemoCube() { val fullReadOutput = StringBuilder() diff --git a/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsViewModel.kt b/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsViewModel.kt index 91b4c0b..c29538e 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsViewModel.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/diagnostics/DiagnosticsViewModel.kt @@ -1,18 +1,30 @@ package com.example.hpostesting.presentation.diagnostics +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.os.BatteryManager import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.example.hpostesting.data.Result import com.example.hpostesting.data.model.Response +import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsRequest +import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsResponse +import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionRequest +import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse import com.example.hpostesting.data.model.diagnostics.DiagnosticsData import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.data.repository.Repository + import dagger.hilt.android.lifecycle.HiltViewModel + import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel class DiagnosticsViewModel @Inject constructor( - private val repository: Repository + private val repository: Repository, + context: Context, ) : ViewModel() { var isServiceConnected = false val progressBar = MutableLiveData(false) @@ -20,7 +32,11 @@ class DiagnosticsViewModel @Inject constructor( val deviceData = MutableLiveData() val fireBaseUpload = MutableLiveData() - + val deviceDiagnosticsResponse = MutableLiveData>() + private val batteryStatus: Intent? = + IntentFilter(Intent.ACTION_BATTERY_CHANGED).let { ifilter -> + context.registerReceiver(null, ifilter) + } fun addDiagnosticsDataToDb(data: DiagnosticsData) { viewModelScope.launch { try { @@ -43,4 +59,81 @@ class DiagnosticsViewModel @Inject constructor( } } } + + + fun deviceDiagnostics(deviceDiagnosticsRequest: DeviceDiagnosticsRequest) = viewModelScope.launch { + deviceDiagnosticsResponse.postValue(Result.Loading()) + repository.deviceDiagnostics(deviceDiagnosticsRequest).let { + deviceDiagnosticsResponse.postValue(it) + } + } + + + fun getBatteryLevel(): Float? { + val batteryPct: Float? = batteryStatus?.let { intent -> + val level: Int = + intent.getIntExtra( + BatteryManager.EXTRA_LEVEL, + -1 + ) + val scale: Int = + intent.getIntExtra( + BatteryManager.EXTRA_SCALE, + -1 + ) + level * 100 / scale.toFloat() + } + + return batteryPct + } + + fun getBatteryTemperature(): Float? { + val batteryTemp: Float? = batteryStatus?.let { intent -> + val temperature = intent.getIntExtra( + BatteryManager.EXTRA_TEMPERATURE, + 0 + ) + temperature.toFloat() / 10 + } + + return batteryTemp + } + + fun getBatteryVoltage(context: Context): Float { + val batteryIntent = + context.registerReceiver( + null, + IntentFilter(Intent.ACTION_BATTERY_CHANGED) + ) + val voltage = batteryIntent?.getIntExtra( + BatteryManager.EXTRA_VOLTAGE, + 0 + ) ?: 0 + + // milli-volts to volts + return voltage.toFloat() / 1000 + } + + + fun getBatteryCapacity(context: Context): Int { + val batteryManager = + context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager + val currentCapacity = + batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER) + + return currentCapacity + } + + fun getBatteryMaxCapacity(context: Context): Float { + val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager + val designCapacity = + batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) + val currentCapacity = + batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER) + + // Calculate the estimated maximum battery capacity in mAh + val maxCapacity = currentCapacity.toFloat() / designCapacity.toFloat() * 100 + + return maxCapacity + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt index 1868e98..b0f6511 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt @@ -679,7 +679,8 @@ class HemoCubeFragment : Fragment() { val led2Average = log10(led2BufferForDevice.div(led2SampleForDevice)) val led3Average = log10(led3BufferForDevice.div(led3SampleForDevice)) val led4Average = log10(led4BufferForDevice.div(led4SampleForDevice)) - val deviceRatio = led4Average / led1Average + + val deviceRatio = led2Average / led1Average if (led1BufferForDevice < Constants.BUFFER_INTENSITY_THRESHOLDS[deviceHardwareId]?.get(0) ?.get(0)!! diff --git a/barcode_scanner_library_v2.0.8.0/barcode_scanner_library_v2.0.8.0.aar b/barcode_scanner_library_v2.0.8.0/barcode_scanner_library_v2.0.8.0.aar deleted file mode 100644 index d544082..0000000 Binary files a/barcode_scanner_library_v2.0.8.0/barcode_scanner_library_v2.0.8.0.aar and /dev/null differ diff --git a/barcode_scanner_library_v2.0.8.0/build.gradle b/barcode_scanner_library_v2.0.8.0/build.gradle deleted file mode 100644 index 38a0a59..0000000 --- a/barcode_scanner_library_v2.0.8.0/build.gradle +++ /dev/null @@ -1,2 +0,0 @@ -configurations.maybeCreate("default") -artifacts.add("default", file('barcode_scanner_library_v2.0.8.0.aar')) \ No newline at end of file