Compare commits

..

4 commits

Author SHA1 Message Date
dfc624431d add check updates - 2026-08-20 23:18:16 +03:00
c896a6b1a8 add check updates 2026-08-20 23:13:26 +03:00
6f3350b44c Add goida for ukrain people 2026-08-20 22:50:21 +03:00
cb3974bf6b Add goida 2026-08-20 22:39:32 +03:00
2 changed files with 97 additions and 0 deletions

View file

@ -19,6 +19,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties
@ -32,8 +33,10 @@ import com.sergay.hhu67.pw.app.ui.components.*
import com.sergay.hhu67.pw.app.ui.viewmodel.AppTab
import com.sergay.hhu67.pw.app.ui.viewmodel.ContentState
import com.sergay.hhu67.pw.app.ui.viewmodel.MainViewModel
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlin.math.ceil
import kotlin.system.exitProcess
@OptIn(ExperimentalMaterial3Api::class)
@Composable
@ -47,6 +50,37 @@ fun MainAppScreen(vm: MainViewModel) {
val exoPlayer = remember { ExoPlayer.Builder(ctx).build() }
LaunchedEffect(vm.patriotModeActive) {
if (vm.patriotModeActive) {
vm.isAudioPlaying = false
exoPlayer.stop()
val patriotUrl = "https://sergay.hhu67.pw/api/get/audio/5e4fa0b0b66f9dcff9af7c9952e0939c.mp3"
val mediaItem = MediaItem.fromUri(patriotUrl)
repeat(2) {
exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()
exoPlayer.play()
while (exoPlayer.isPlaying || exoPlayer.playbackState != ExoPlayer.STATE_ENDED) {
delay(500)
}
}
vm.showPatriotDialog = true
delay(2000)
exitProcess(0)
}
}
LaunchedEffect(vm.inoagentModeActive) {
if (vm.inoagentModeActive) {
vm.showInoagentDialog = true
delay(2000)
exitProcess(0)
}
}
val imageLoader = remember {
ImageLoader.Builder(ctx)
.components {
@ -124,6 +158,27 @@ fun MainAppScreen(vm: MainViewModel) {
modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding)
)
}
HorizontalDivider()
NavigationDrawerItem(
label = { Text("ПАТРИОТ🇷🇺", color = Color.Red, style = MaterialTheme.typography.titleMedium) },
selected = false,
onClick = {
scope.launch { drawerState.close() }
vm.startPatriotMode()
},
icon = { Icon(Icons.Default.Star, contentDescription = null, tint = Color.Red) },
modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding)
)
NavigationDrawerItem(
label = { Text("ПОТУЖНОСТІ🇺🇦", color = Color.Blue, style = MaterialTheme.typography.titleMedium) },
selected = false,
onClick = {
scope.launch { drawerState.close() }
vm.startInoagentMode()
},
icon = { Icon(Icons.Default.BrightnessLow, contentDescription = null, tint = Color.Blue) },
modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding)
)
}
}
) {
@ -415,4 +470,20 @@ fun MainAppScreen(vm: MainViewModel) {
}
)
}
if (vm.showPatriotDialog) {
AlertDialog(
onDismissRequest = {},
title = { Text("ПОТОУЖНОСТЬ ЗАШКАЛИВАЕТ", style = MaterialTheme.typography.headlineLarge, color = Color.Red) },
confirmButton = {}
)
}
if (vm.showInoagentDialog) {
AlertDialog(
onDismissRequest = {},
title = { Text("ИНОАГЕНТ ОБНАРУЖЕН БЫСТРО В БУСИК", style = MaterialTheme.typography.headlineLarge, color = Color.Blue) },
confirmButton = {}
)
}
}

View file

@ -1,8 +1,13 @@
package com.sergay.hhu67.pw.app.ui.viewmodel
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.net.Uri
import android.os.Build
import android.provider.Settings
import androidx.compose.runtime.*
import androidx.core.content.FileProvider
import androidx.core.content.edit
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
@ -10,10 +15,17 @@ import androidx.lifecycle.viewModelScope
import com.sergay.hhu67.pw.app.data.models.*
import com.sergay.hhu67.pw.app.data.network.ApiService
import com.sergay.hhu67.pw.app.data.network.globalCookieJar
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
import java.io.File
import java.io.FileOutputStream
import kotlin.math.ceil
enum class AppTab(val title: String) {
@ -59,6 +71,12 @@ class MainViewModel(appContext: Context) : ViewModel() {
var quotesTotalCount by mutableIntStateOf(0)
var quotesCurrentPage by mutableIntStateOf(0)
var patriotModeActive by mutableStateOf(false)
var showPatriotDialog by mutableStateOf(false)
var inoagentModeActive by mutableStateOf(false)
var showInoagentDialog by mutableStateOf(false)
init {
if (isAuthenticated) {
checkRoleAndRestore()
@ -276,6 +294,14 @@ class MainViewModel(appContext: Context) : ViewModel() {
}
}
fun startPatriotMode() {
patriotModeActive = true
}
fun startInoagentMode() {
inoagentModeActive = true
}
fun deleteBotPhrase(id: Int) {
viewModelScope.launch {
try {