Skip to content

Commit

Permalink
— Обновлён дизайн карточек в меню "Лекарства" и "Приём".
Browse files Browse the repository at this point in the history
— Функция проверки срока годности лекарств теперь работает стабильнее.
  • Loading branch information
pav committed May 31, 2024
1 parent 2b38c92 commit e05f963
Show file tree
Hide file tree
Showing 20 changed files with 241 additions and 260 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ android {
applicationId = "ru.application.homemedkit"
minSdk = 26
targetSdk = 34
versionCode = 27
versionName = "1.3.7"
versionCode = 28
versionName = "1.3.8"
}

room {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,13 @@ import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.compose.rememberNavController
import ru.application.homemedkit.alarms.AlarmSetter
import ru.application.homemedkit.fragments.RootScreen
import ru.application.homemedkit.ui.theme.AppTheme

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

AlarmSetter(this).checkExpiration()

setContent {
val navController = rememberNavController()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ import com.ramcosta.composedestinations.navigation.DestinationsNavigator
import kotlinx.coroutines.delay
import ru.application.homemedkit.R
import ru.application.homemedkit.databaseController.MedicineDatabase
import ru.application.homemedkit.helpers.SNACKS
import ru.application.homemedkit.helpers.viewModelFactory
import ru.application.homemedkit.ui.theme.AppTheme
import ru.application.homemedkit.viewModels.ResponseState
Expand Down Expand Up @@ -169,6 +168,11 @@ fun ScannerScreen(

@Composable
fun Snackbar(id: Int = 0) {
val alerts = listOf(
R.string.text_medicine_duplicate,
R.string.text_not_medicine_code, R.string.text_code_not_found,
R.string.text_unknown_error, R.string.text_unknown_error, R.string.text_connection_error
)
Box(
modifier = Modifier
.fillMaxSize()
Expand All @@ -184,7 +188,7 @@ fun Snackbar(id: Int = 0) {
verticalArrangement = Arrangement.Center
) {
Text(
text = LocalContext.current.getString(SNACKS[id]),
text = LocalContext.current.getString(alerts[id]),
modifier = Modifier.padding(start = 16.dp),
color = MaterialTheme.colorScheme.onErrorContainer,
style = MaterialTheme.typography.labelLarge
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,14 @@ class AlarmSetter(private val context: Context) {
)
}

fun checkExpiration() = manager.setExactAndAllowWhileIdle(
RTC_WAKEUP, expirationCheckTime(), getBroadcast(
fun checkExpiration(check: Boolean) {
val broadcast = getBroadcast(
context,
81000,
Intent(context, ExpirationReceiver::class.java),
FLAG_UPDATE_CURRENT or FLAG_IMMUTABLE
)
)
if (check) manager.setExactAndAllowWhileIdle(RTC_WAKEUP, expirationCheckTime(), broadcast)
else manager.cancel(broadcast)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,23 @@ import ru.application.homemedkit.activities.MainActivity
import ru.application.homemedkit.databaseController.MedicineDatabase
import ru.application.homemedkit.helpers.CHANNEL_ID
import ru.application.homemedkit.helpers.ID
import ru.application.homemedkit.helpers.Preferences
import ru.application.homemedkit.helpers.SOUND_GROUP

class ExpirationReceiver : BroadcastReceiver() {

@SuppressLint("MissingPermission")
override fun onReceive(context: Context, intent: Intent) {
val medicines = MedicineDatabase.getInstance(context).medicineDAO().getAll()
val check = Preferences(context).getCheckExpDate()

createNotificationChannel(context)

if (check && medicines.isNotEmpty()) {
if (medicines.isNotEmpty()) {
medicines.forEach { medicine ->
if (medicine.expDate < System.currentTimeMillis() + 30 * AlarmManager.INTERVAL_DAY && medicine.prodAmount > 0) {
NotificationManagerCompat.from(context)
.notify(medicine.id.toInt(), expirationNotification(context, medicine.id))
playSound(context)
AlarmSetter(context).checkExpiration()
AlarmSetter(context).checkExpiration(true)
}
}
}
Expand Down
Loading

0 comments on commit e05f963

Please sign in to comment.