Added new screen ActivitiesFragment to check upload pending list and added version name in DashboardActivity, so it will be easy to know which version currently in use
This commit is contained in:
@@ -31,7 +31,7 @@ interface HemoCubeDao {
|
||||
@Query("UPDATE hemo_cube_test_table SET isCSVCreated = :newValue WHERE _id = :id")
|
||||
suspend fun updateCSVFieldById(id: String, newValue: Boolean)
|
||||
|
||||
@Query("SELECT * from hemo_cube_test_table WHERE molbioFlag = :status")
|
||||
suspend fun getPendingUser(status: Boolean): List<HemoCubeTestData>
|
||||
@Query("SELECT * from hemo_cube_test_table WHERE localFlag = 0")
|
||||
fun getPendingUser(): LiveData<List<HemoCubeTestData>>
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.example.hpostesting.presentation.dashboard
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.os.BatteryManager
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import androidx.fragment.app.Fragment
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import com.example.hpostesting.data.constant.Constants
|
||||
import com.example.hpostesting.data.constant.DataHolder
|
||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||
import com.example.hpostesting.presentation.adapter.OfflineUserListAdapter
|
||||
import com.example.hpostesting.presentation.adapter.UserListAdapter
|
||||
import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel
|
||||
import com.example.hpostesting.presentation.testRight.TestRightViewModel
|
||||
import `in`.sminnovations.hpostesting.R
|
||||
import `in`.sminnovations.hpostesting.databinding.FragmentActivitiesBinding
|
||||
import `in`.sminnovations.hpostesting.databinding.FragmentHomeBinding
|
||||
|
||||
class ActivitiesFragment : Fragment() {
|
||||
private lateinit var binding: FragmentActivitiesBinding
|
||||
private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels()
|
||||
private lateinit var adapter: OfflineUserListAdapter
|
||||
private lateinit var sharedPreference: SharedPreferences
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?,
|
||||
): View {
|
||||
binding = FragmentActivitiesBinding.inflate(inflater, container, false)
|
||||
|
||||
sharedPreference = requireContext().getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE)
|
||||
DataHolder.selectedTest = null
|
||||
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
hemoCubeViewModel.allPendingUserToUpload.observe(viewLifecycleOwner) { userData ->
|
||||
|
||||
if (userData.isNotEmpty()) {
|
||||
binding.rvOrderOffline.visibility = View.VISIBLE
|
||||
binding.noDataText.visibility = View.GONE
|
||||
val bm =
|
||||
requireContext().getSystemService(Context.BATTERY_SERVICE) as BatteryManager
|
||||
val batLevel: Int = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
|
||||
adapter = OfflineUserListAdapter(binding.root, batLevel)
|
||||
adapter.differ.submitList(userData)
|
||||
binding.rvOrderOffline.adapter = adapter
|
||||
}else{
|
||||
binding.rvOrderOffline.visibility = View.GONE
|
||||
binding.noDataText.visibility = View.VISIBLE
|
||||
Log.d("Activities","Nothing to show")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
@@ -83,6 +84,9 @@ class DashboardActivity : AppCompatActivity(), IDataCollector {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
nats.connect()
|
||||
}
|
||||
val versionName = getAppVersion(this@DashboardActivity) + " [ " + getAppEnvironment(this@DashboardActivity) + " ]"
|
||||
binding.appBarDashboard.versionName.text = versionName
|
||||
|
||||
|
||||
val deviceId = sharedPreferences.getString(Constants.DEVICE_ID, "")
|
||||
|
||||
@@ -133,7 +137,7 @@ class DashboardActivity : AppCompatActivity(), IDataCollector {
|
||||
|
||||
appBarConfiguration = AppBarConfiguration(
|
||||
setOf(
|
||||
R.id.nav_home, R.id.nav_profile, R.id.nav_settings
|
||||
R.id.nav_home, R.id.nav_profile, R.id.nav_activity,R.id.nav_settings
|
||||
), drawerLayout
|
||||
)
|
||||
setupActionBarWithNavController(navController, appBarConfiguration)
|
||||
@@ -251,4 +255,20 @@ class DashboardActivity : AppCompatActivity(), IDataCollector {
|
||||
serial_no = sharedPreference.getString(Constants.DEVICE_ID, "")
|
||||
)
|
||||
}
|
||||
private fun getAppVersion(context: Context): String {
|
||||
return try {
|
||||
val pInfo = context.packageManager.getPackageInfo(context.packageName, 0)
|
||||
pInfo.versionName
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
"N/A"
|
||||
}
|
||||
}
|
||||
private fun getAppEnvironment(context: Context): String {
|
||||
return try {
|
||||
val pInfo = context.packageManager.getPackageInfo(context.packageName, 0)
|
||||
pInfo.packageName.substringAfterLast('.')
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
"N/A"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -89,7 +89,7 @@ class HemoCubeViewModel @Inject constructor(
|
||||
private val _networkStatusLiveData = NetworkStatusLiveData(context)
|
||||
val allUserData = hemoCubeDao.getAll()
|
||||
val allLocalData = hemoCubeDao.getAll()
|
||||
val allPendingUserToUpload = MutableLiveData<List<HemoCubeTestData>>()
|
||||
val allPendingUserToUpload = hemoCubeDao.getPendingUser()
|
||||
val allKitTestData = hemoCubeBufferDao.getAll()
|
||||
val deviceData = MutableLiveData<DeviceData?>()
|
||||
|
||||
@@ -196,9 +196,9 @@ class HemoCubeViewModel @Inject constructor(
|
||||
}
|
||||
}
|
||||
}
|
||||
fun uploadPendingUser() = viewModelScope.launch {
|
||||
allPendingUserToUpload.postValue(hemoCubeDao.getPendingUser(false))
|
||||
}
|
||||
// fun getPendingUser() = viewModelScope.launch {
|
||||
// allPendingUserToUpload.postValue(hemoCubeDao.getPendingUser(true))
|
||||
// }
|
||||
|
||||
fun uploadHemoCubeResultToDatabaseForBufferCheck(
|
||||
isOnline: Boolean,
|
||||
|
||||
5
app/src/main/res/drawable/shows_activity_24.xml
Normal file
5
app/src/main/res/drawable/shows_activity_24.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M19,3L5,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM14,17L7,17v-2h7v2zM17,13L7,13v-2h10v2zM17,9L7,9L7,7h10v2z"/>
|
||||
|
||||
</vector>
|
||||
@@ -4,7 +4,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".presentation.dashboard.DashboardActivity">
|
||||
>
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -16,7 +16,17 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:popupTheme="@style/Theme.HPOS.PopupOverlay" />
|
||||
app:popupTheme="@style/Theme.HPOS.PopupOverlay" >
|
||||
<TextView
|
||||
android:id="@+id/version_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="--"
|
||||
android:textStyle="bold"
|
||||
android:layout_gravity="end"
|
||||
android:textSize="18sp"
|
||||
android:layout_marginEnd="15dp"/>
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
||||
39
app/src/main/res/layout/fragment_activities.xml
Normal file
39
app/src/main/res/layout/fragment_activities.xml
Normal file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<TextView
|
||||
android:id="@+id/titleText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:gravity="center"
|
||||
android:text="Upload Pending List(Local data)"
|
||||
android:layout_marginTop="5dp"
|
||||
android:textSize="21sp"
|
||||
android:textColor="@color/black"
|
||||
/>
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_order_offline"
|
||||
android:visibility="gone"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/titleText"
|
||||
android:layout_alignParentStart="true"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
tools:listitem="@layout/offline_user_list_view" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/noDataText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:text="All up-to-date"
|
||||
android:textSize="22sp"
|
||||
android:textColor="@color/black"
|
||||
/>
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -12,6 +12,10 @@
|
||||
android:id="@+id/nav_profile"
|
||||
android:icon="@drawable/control_panel"
|
||||
android:title="@string/profile" />
|
||||
<item
|
||||
android:id="@+id/nav_activity"
|
||||
android:icon="@drawable/shows_activity_24"
|
||||
android:title="@string/action_activity" />
|
||||
<item
|
||||
android:id="@+id/nav_settings"
|
||||
android:icon="@drawable/baseline_settings_24"
|
||||
|
||||
@@ -32,6 +32,11 @@
|
||||
android:name="com.example.hpostesting.presentation.dashboard.SlideshowFragment"
|
||||
android:label="@string/action_settings"
|
||||
tools:layout="@layout/fragment_slideshow" />
|
||||
<fragment
|
||||
android:id="@+id/nav_activity"
|
||||
android:name="com.example.hpostesting.presentation.dashboard.ActivitiesFragment"
|
||||
android:label="@string/action_activity"
|
||||
tools:layout="@layout/fragment_activities" />
|
||||
<activity
|
||||
android:id="@+id/mainActivity"
|
||||
android:name="com.example.hpostesting.presentation.MainActivity"
|
||||
|
||||
@@ -271,4 +271,5 @@
|
||||
<string name="deviceinfo">डिवाइस जानकारी</string>
|
||||
|
||||
<string name="downloadcsv">सीएसवी डाउनलोड करें</string>
|
||||
<string name="action_activity">Activities</string>
|
||||
</resources>
|
||||
@@ -270,6 +270,7 @@
|
||||
<string name="add_blood_group">ರಕ್ತ ಗುಂಡನ್ನು ಸೇರಿಸಿ</string>
|
||||
<string name="ok">ಸರಿ</string>
|
||||
<string name="downloadcsv">CSV ಡೌನ್ಲೋಡ್ ಮಾಡಿ</string>
|
||||
<string name="action_activity">Activities</string>
|
||||
<!-- Add translations for other strings -->
|
||||
|
||||
</resources>
|
||||
@@ -273,4 +273,5 @@
|
||||
<string name="select_language">Select your preferred language</string>
|
||||
<string name="app_language">App Language</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="action_activity">Activities</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user