Фикс запуска постоянного уведомления.

Предотвращение запуска фоновых задач до прохождения авторизации.

Обновление библиотек.
This commit is contained in:
2024-11-01 02:19:34 +04:00
parent c4444ff2ca
commit 637a66a647
8 changed files with 35 additions and 32 deletions

View File

@@ -33,8 +33,8 @@ android {
applicationId = "ru.n08i40k.polytechnic.next"
minSdk = 26
targetSdk = 35
versionCode = 18
versionName = "2.0.2"
versionCode = 19
versionName = "2.0.3"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {

View File

@@ -102,7 +102,7 @@ class CurrentLessonViewService : Service() {
}
val firstLessonIdx =
day!!.distanceToNextByLocalDateTime(LocalDateTime(0, 0, 0, 0, 0))?.first
day!!.distanceToNextByLocalDateTime(LocalDateTime(1, 1, 1, 0, 0))?.first
?: throw NullPointerException("Is this even real?")
val distanceToFirst = day!!.lessons[firstLessonIdx]!!.time!!.start.dayMinutes - currentMinutes

View File

@@ -1,10 +1,15 @@
package ru.n08i40k.polytechnic.next.ui
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.Preview
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.runBlocking
import ru.n08i40k.polytechnic.next.settings.settingsDataStore
import ru.n08i40k.polytechnic.next.ui.auth.AuthScreen
import ru.n08i40k.polytechnic.next.ui.main.MainScreen
import ru.n08i40k.polytechnic.next.ui.theme.AppTheme
@@ -15,10 +20,15 @@ import ru.n08i40k.polytechnic.next.ui.theme.AppTheme
fun PolytechnicApp() {
AppTheme(darkTheme = true, content = {
val navController = rememberNavController()
val context = LocalContext.current
val accessToken = runBlocking {
context.settingsDataStore.data.map { it.accessToken }.first()
}
NavHost(
navController = navController,
startDestination = "auth"
startDestination = if (accessToken.isEmpty()) "auth" else "main"
) {
composable(route = "auth") {
AuthScreen(navController)

View File

@@ -47,7 +47,6 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.unit.dp
import androidx.core.content.ContextCompat.startActivity
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel
@@ -134,7 +133,7 @@ private fun NavHostContainer(
}
private fun openLink(context: Context, link: String) {
startActivity(context, Intent(Intent.ACTION_VIEW, Uri.parse(link)), null)
context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(link)), null)
}
@Composable

View File

@@ -3,12 +3,21 @@ package ru.n08i40k.polytechnic.next.work
import android.content.Context
import androidx.work.Worker
import androidx.work.WorkerParameters
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.runBlocking
import ru.n08i40k.polytechnic.next.PolytechnicApplication
import ru.n08i40k.polytechnic.next.settings.settingsDataStore
class LinkUpdateWorker(context: Context, params: WorkerParameters) :
Worker(context, params) {
override fun doWork(): Result {
val accessToken = runBlocking {
applicationContext.settingsDataStore.data.map { it.accessToken }.first()
}
if (accessToken.isEmpty())
return Result.retry()
runBlocking {
(applicationContext as PolytechnicApplication)
.container