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.graphics.Color
import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties 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.AppTab
import com.sergay.hhu67.pw.app.ui.viewmodel.ContentState import com.sergay.hhu67.pw.app.ui.viewmodel.ContentState
import com.sergay.hhu67.pw.app.ui.viewmodel.MainViewModel import com.sergay.hhu67.pw.app.ui.viewmodel.MainViewModel
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlin.math.ceil import kotlin.math.ceil
import kotlin.system.exitProcess
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
@ -47,6 +50,37 @@ fun MainAppScreen(vm: MainViewModel) {
val exoPlayer = remember { ExoPlayer.Builder(ctx).build() } 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 { val imageLoader = remember {
ImageLoader.Builder(ctx) ImageLoader.Builder(ctx)
.components { .components {
@ -124,6 +158,27 @@ fun MainAppScreen(vm: MainViewModel) {
modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding) 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 package com.sergay.hhu67.pw.app.ui.viewmodel
import android.content.Context import android.content.Context
import android.content.Intent
import android.content.SharedPreferences import android.content.SharedPreferences
import android.net.Uri
import android.os.Build
import android.provider.Settings
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.core.content.FileProvider
import androidx.core.content.edit import androidx.core.content.edit
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider 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.models.*
import com.sergay.hhu67.pw.app.data.network.ApiService import com.sergay.hhu67.pw.app.data.network.ApiService
import com.sergay.hhu67.pw.app.data.network.globalCookieJar import com.sergay.hhu67.pw.app.data.network.globalCookieJar
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody import okhttp3.MultipartBody
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.RequestBody.Companion.toRequestBody
import java.io.File
import java.io.FileOutputStream
import kotlin.math.ceil import kotlin.math.ceil
enum class AppTab(val title: String) { enum class AppTab(val title: String) {
@ -59,6 +71,12 @@ class MainViewModel(appContext: Context) : ViewModel() {
var quotesTotalCount by mutableIntStateOf(0) var quotesTotalCount by mutableIntStateOf(0)
var quotesCurrentPage 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 { init {
if (isAuthenticated) { if (isAuthenticated) {
checkRoleAndRestore() checkRoleAndRestore()
@ -276,6 +294,14 @@ class MainViewModel(appContext: Context) : ViewModel() {
} }
} }
fun startPatriotMode() {
patriotModeActive = true
}
fun startInoagentMode() {
inoagentModeActive = true
}
fun deleteBotPhrase(id: Int) { fun deleteBotPhrase(id: Int) {
viewModelScope.launch { viewModelScope.launch {
try { try {