From 4640db87fd9d1cded5012c5f279cf5d5f818ccc3 Mon Sep 17 00:00:00 2001 From: warzazel Date: Sat, 14 Mar 2026 21:29:54 +0100 Subject: [PATCH] Initial commit --- .gitignore | 15 + .idea/.gitignore | 3 + .idea/AndroidProjectSystem.xml | 6 + .idea/codeStyles/Project.xml | 123 ++++++ .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/compiler.xml | 6 + .idea/deploymentTargetSelector.xml | 10 + .idea/deviceManager.xml | 13 + .idea/gradle.xml | 18 + .idea/inspectionProfiles/Project_Default.xml | 61 +++ .idea/misc.xml | 9 + .idea/runConfigurations.xml | 17 + .idea/vcs.xml | 6 + app/.gitignore | 1 + app/build.gradle.kts | 63 +++ app/proguard-rules.pro | 21 + .../voidpush/ExampleInstrumentedTest.kt | 24 + app/src/main/AndroidManifest.xml | 46 ++ app/src/main/ic_launcher-playstore.png | Bin 0 -> 30229 bytes .../com/warzazel/voidpush/MainActivity.kt | 416 ++++++++++++++++++ .../com/warzazel/voidpush/OpenLinkActivity.kt | 23 + .../java/com/warzazel/voidpush/PushService.kt | 226 ++++++++++ .../com/warzazel/voidpush/ui/theme/Color.kt | 11 + .../com/warzazel/voidpush/ui/theme/Theme.kt | 58 +++ .../com/warzazel/voidpush/ui/theme/Type.kt | 34 ++ .../res/drawable/ic_launcher_background.xml | 170 +++++++ .../res/drawable/ic_launcher_foreground.xml | 30 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1800 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 2836 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2976 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 1408 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 1890 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1922 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 2402 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 3858 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 4096 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 3466 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 6206 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 6356 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 4556 bytes .../ic_launcher_foreground.webp | Bin 0 -> 8956 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 9036 bytes app/src/main/res/values/colors.xml | 10 + .../res/values/ic_launcher_background.xml | 4 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/themes.xml | 5 + app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/warzazel/voidpush/ExampleUnitTest.kt | 17 + build.gradle.kts | 4 + gradle.properties | 16 + gradle/gradle-daemon-jvm.properties | 12 + gradle/libs.versions.toml | 31 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45457 bytes gradle/wrapper/gradle-wrapper.properties | 9 + gradlew | 251 +++++++++++ gradlew.bat | 94 ++++ settings.gradle.kts | 27 ++ 60 files changed, 1942 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/AndroidProjectSystem.xml create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/deploymentTargetSelector.xml create mode 100644 .idea/deviceManager.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/vcs.xml create mode 100644 app/.gitignore create mode 100644 app/build.gradle.kts create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/com/warzazel/voidpush/ExampleInstrumentedTest.kt create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/ic_launcher-playstore.png create mode 100644 app/src/main/java/com/warzazel/voidpush/MainActivity.kt create mode 100644 app/src/main/java/com/warzazel/voidpush/OpenLinkActivity.kt create mode 100644 app/src/main/java/com/warzazel/voidpush/PushService.kt create mode 100644 app/src/main/java/com/warzazel/voidpush/ui/theme/Color.kt create mode 100644 app/src/main/java/com/warzazel/voidpush/ui/theme/Theme.kt create mode 100644 app/src/main/java/com/warzazel/voidpush/ui/theme/Type.kt create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/ic_launcher_background.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 app/src/main/res/xml/backup_rules.xml create mode 100644 app/src/main/res/xml/data_extraction_rules.xml create mode 100644 app/src/test/java/com/warzazel/voidpush/ExampleUnitTest.kt create mode 100644 build.gradle.kts create mode 100644 gradle.properties create mode 100644 gradle/gradle-daemon-jvm.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle.kts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 0000000..4a53bee --- /dev/null +++ b/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..7643783 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,123 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b86273d --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml new file mode 100644 index 0000000..b268ef3 --- /dev/null +++ b/.idea/deploymentTargetSelector.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/deviceManager.xml b/.idea/deviceManager.xml new file mode 100644 index 0000000..91f9558 --- /dev/null +++ b/.idea/deviceManager.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..02c4aa5 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..7061a0d --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,61 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..b2c751a --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..16660f1 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..d1a6873 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,63 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.compose) +} + +android { + namespace = "com.warzazel.voidpush" + compileSdk { + version = release(36) { + minorApiLevel = 1 + } + } + + defaultConfig { + applicationId = "com.warzazel.voidpush" + minSdk = 26 + targetSdk = 36 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + buildFeatures { + compose = true + } +} + +dependencies { + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(libs.androidx.activity.compose) + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.compose.ui) + implementation(libs.androidx.compose.ui.graphics) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.compose.material3) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(platform(libs.androidx.compose.bom)) + androidTestImplementation(libs.androidx.compose.ui.test.junit4) + debugImplementation(libs.androidx.compose.ui.tooling) + debugImplementation(libs.androidx.compose.ui.test.manifest) + implementation("androidx.compose.material:material:1.6.0") + implementation("androidx.browser:browser:1.8.0") +// UnifiedPush - von Maven Central +// UnifiedPush + implementation("org.unifiedpush.android:connector:3.3.2") +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/androidTest/java/com/warzazel/voidpush/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/warzazel/voidpush/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..9fdcf83 --- /dev/null +++ b/app/src/androidTest/java/com/warzazel/voidpush/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.warzazel.voidpush + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.warzazel.voidpush", appContext.packageName) + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..770970c --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..1d462192f91cad47f6c55a0beab24ad97a48c5ea GIT binary patch literal 30229 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 z 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%0AR2QdR=$5^?k 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 literal 0 HcmV?d00001 diff --git a/app/src/main/java/com/warzazel/voidpush/MainActivity.kt b/app/src/main/java/com/warzazel/voidpush/MainActivity.kt new file mode 100644 index 0000000..c356184 --- /dev/null +++ b/app/src/main/java/com/warzazel/voidpush/MainActivity.kt @@ -0,0 +1,416 @@ +package com.warzazel.voidpush + +import android.Manifest +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context +import android.content.pm.PackageManager +import android.os.Build +import android.os.Bundle +import android.widget.Toast +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.result.contract.ActivityResultContracts +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.DismissValue +import androidx.compose.material.ExperimentalMaterialApi +import androidx.compose.material.SwipeToDismiss +import androidx.compose.material.rememberDismissState +import androidx.compose.material3.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.core.content.ContextCompat +import com.warzazel.voidpush.ui.theme.VoidPushTheme +import org.json.JSONArray +import org.unifiedpush.android.connector.UnifiedPush +import java.text.SimpleDateFormat +import java.util.* +import androidx.compose.ui.graphics.Color + +class MainActivity : ComponentActivity() { + + private val requestPermission = registerForActivityResult( + ActivityResultContracts.RequestPermission() + ) { granted -> + if (granted) registriereBeiSunup() + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + if (ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) + != PackageManager.PERMISSION_GRANTED) { + requestPermission.launch(Manifest.permission.POST_NOTIFICATIONS) + } else { + registriereBeiSunup() + } + } else { + registriereBeiSunup() + } + + setContent { + VoidPushTheme { + Surface(modifier = Modifier.fillMaxSize()) { + VoidPushScreen(activity = this@MainActivity) + + } + } + } + } + + private fun registriereBeiSunup() { + UnifiedPush.tryUseCurrentOrDefaultDistributor(this) { success -> + if (success) { + UnifiedPush.register(this) + } + } + } +} + +data class HistorieEintrag( + val title: String, + val body: String, + val link: String, + val timestamp: Long, + val category: String = "Sonstige" +) + +fun ladeHistorie(context: Context): List { + val prefs = context.getSharedPreferences("voidpush", Context.MODE_PRIVATE) + val json = prefs.getString("notification_history", "[]") + val array = JSONArray(json) + val liste = mutableListOf() + for (i in 0 until array.length()) { + val obj = array.getJSONObject(i) + liste.add(HistorieEintrag( + title = obj.getString("title"), + body = obj.getString("body"), + link = obj.optString("link", ""), + timestamp = obj.getLong("timestamp"), + category = obj.optString("category", "Sonstige") + )) + } + return liste +} + +@Composable +fun VoidPushScreen( + endpointUrlOverride: String? = null, + activity: ComponentActivity? = null +) { + var selectedTab by remember { mutableIntStateOf(0) } + val tabs = listOf("Historie", "Status") + + Column(modifier = Modifier + .fillMaxSize() + .statusBarsPadding() + ) { + TabRow( + selectedTabIndex = selectedTab, + containerColor = Color(0xFFFFC107), + contentColor = Color.Black + ) { + tabs.forEachIndexed { index, title -> + Tab( + selected = selectedTab == index, + onClick = { selectedTab = index }, + text = { Text(title) } + ) + } + } + when (selectedTab) { + 0 -> HistorieTab() + 1 -> StatusTab(endpointUrlOverride, activity) + } + } +} + +@Composable +fun StatusTab( + endpointUrlOverride: String? = null, + activity: ComponentActivity? = null +) { + val context = LocalContext.current + val prefs = context.getSharedPreferences("voidpush", Context.MODE_PRIVATE) + + var endpointUrl by remember { + mutableStateOf(endpointUrlOverride ?: prefs.getString("endpoint_url", null)) + } + + Column( + modifier = Modifier + .fillMaxSize() + .padding(24.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) { + Text(text = "VoidPush", style = MaterialTheme.typography.headlineLarge) + Spacer(modifier = Modifier.height(8.dp)) + Text( + text = "2026 by \uD835\uDD9C\uD835\uDD86\uD835\uDD97\uD835\uDD9F\uD835\uDD86\uD835\uDD9F\uD835\uDD8A\uD835\uDD91⛧", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant + ) + Text( + text = "www.voidofxulub.com", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant + ) + Spacer(modifier = Modifier.height(8.dp)) + Text( + text = "Hubzilla → UnifiedPush → Sunup", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant + ) + Spacer(modifier = Modifier.height(48.dp)) + + if (endpointUrl != null) { + Text( + text = "✓ Registriert bei Sunup", + color = MaterialTheme.colorScheme.primary, + style = MaterialTheme.typography.titleMedium + ) + Spacer(modifier = Modifier.height(16.dp)) + Text(text = "Endpoint-URL:", style = MaterialTheme.typography.labelMedium) + Spacer(modifier = Modifier.height(8.dp)) + Card(modifier = Modifier.fillMaxWidth()) { + Text( + text = endpointUrl!!, + modifier = Modifier.padding(12.dp), + fontFamily = FontFamily.Monospace, + style = MaterialTheme.typography.bodySmall, + textAlign = TextAlign.Center + ) + } + Spacer(modifier = Modifier.height(16.dp)) + Button(onClick = { + val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + clipboard.setPrimaryClip(ClipData.newPlainText("Endpoint URL", endpointUrl)) + Toast.makeText(context, "URL kopiert!", Toast.LENGTH_SHORT).show() + }) { + Text("URL kopieren") + } + } else { + Text( + text = "⚠ Noch nicht registriert", + color = MaterialTheme.colorScheme.error, + style = MaterialTheme.typography.titleMedium + ) + Spacer(modifier = Modifier.height(8.dp)) + Text( + text = "Stelle sicher dass Sunup installiert ist.", + textAlign = TextAlign.Center, + color = MaterialTheme.colorScheme.onSurfaceVariant + ) + Spacer(modifier = Modifier.height(16.dp)) + Button(onClick = { + val target = activity ?: return@Button + UnifiedPush.tryUseCurrentOrDefaultDistributor(target) { success -> + if (success) { + UnifiedPush.register(context) + val newUrl = prefs.getString("endpoint_url", null) + endpointUrl = newUrl + } + } + }) { + Text("Erneut versuchen") + } + } + } +} + +@OptIn(ExperimentalMaterialApi::class) +@Composable +fun HistorieTab() { + val context = LocalContext.current + var historie by remember { mutableStateOf(ladeHistorie(context)) } + val sdf = remember { SimpleDateFormat("dd.MM.yyyy HH:mm", Locale.getDefault()) } + var selectedCategory by remember { mutableIntStateOf(0) } + val kategorien = listOf("Alle", "Erwähnung", "Kommentar", "Like", "Sonstige") + + fun speichereHistorie(liste: List) { + val prefs = context.getSharedPreferences("voidpush", Context.MODE_PRIVATE) + val array = org.json.JSONArray() + liste.forEach { e -> + array.put(org.json.JSONObject().apply { + put("title", e.title) + put("body", e.body) + put("link", e.link) + put("timestamp", e.timestamp) + put("category", e.category) + }) + } + prefs.edit().putString("notification_history", array.toString()).apply() + } + + val gefilterteHistorie = if (selectedCategory == 0) historie + else historie.filter { it.category == kategorien[selectedCategory] } + + Column(modifier = Modifier.fillMaxSize()) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 8.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + Text("${gefilterteHistorie.size} Einträge", style = MaterialTheme.typography.bodySmall) + TextButton(onClick = { + historie = emptyList() + speichereHistorie(emptyList()) + }) { + Text("Alle löschen") + } + } + + ScrollableTabRow( + selectedTabIndex = selectedCategory, + edgePadding = 16.dp, + containerColor = Color(0xFFFFC107), + contentColor = Color.Black, + indicator = {} + ) { + kategorien.forEachIndexed { index, name -> + Tab( + selected = selectedCategory == index, + onClick = { selectedCategory = index }, + modifier = Modifier.background( + color = if (selectedCategory == index) Color(0xFF5b5b5b) else Color(0xFFFFC107), + shape = RoundedCornerShape(3.dp) + ), + text = { Text(name, color = Color.Black) } + ) + } + } + + if (gefilterteHistorie.isEmpty()) { + Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { + Text( + text = "Keine Einträge", + color = MaterialTheme.colorScheme.onSurfaceVariant + ) + } + } else { + LazyColumn { + items(gefilterteHistorie, key = { it.timestamp }) { eintrag -> + val dismissState = rememberDismissState( + confirmStateChange = { value -> + if (value == DismissValue.DismissedToStart || + value == DismissValue.DismissedToEnd) { + val neu = historie.filter { it.timestamp != eintrag.timestamp } + historie = neu + speichereHistorie(neu) + true + } else false + } + ) + SwipeToDismiss( + state = dismissState, + background = { + Box( + modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.errorContainer) + ) + } + ) { + HistorieItem(eintrag, sdf, onDelete = { + val neu = historie.filter { it.timestamp != eintrag.timestamp } + historie = neu + speichereHistorie(neu) + }) + } + HorizontalDivider() + } + } + } + } +} + +@Composable +fun HistorieItem(eintrag: HistorieEintrag, sdf: SimpleDateFormat, onDelete: () -> Unit) { + val context = LocalContext.current + Card( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 12.dp, vertical = 6.dp) + .clickable { + if (eintrag.link.isNotEmpty()) { + val intent = + android.content.Intent(context, OpenLinkActivity::class.java).apply { + putExtra("link", eintrag.link) + flags = android.content.Intent.FLAG_ACTIVITY_NEW_TASK + } + context.startActivity(intent) + } + onDelete() + }, + shape = RoundedCornerShape(6.dp), + colors = CardDefaults.cardColors( + containerColor = MaterialTheme.colorScheme.surfaceVariant + ), + elevation = CardDefaults.cardElevation(defaultElevation = 2.dp) + ) { + Column(modifier = Modifier.padding(16.dp)) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween + ) { + Text( + text = eintrag.title, + style = MaterialTheme.typography.titleSmall, + modifier = Modifier.weight(1f) + ) + Text( + text = sdf.format(Date(eintrag.timestamp)), + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant + ) + } + Spacer(modifier = Modifier.height(6.dp)) + Text( + text = eintrag.body, + style = MaterialTheme.typography.bodyMedium, + maxLines = 3, + overflow = TextOverflow.Ellipsis + ) + if (eintrag.link.isNotEmpty()) { + Spacer(modifier = Modifier.height(6.dp)) + Text( + text = "Tippen zum Öffnen · Swipen zum Löschen →", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.primary + ) + } + } + } +} + +@Preview(showBackground = true, name = "Registriert") +@Composable +fun PreviewRegistriert() { + VoidPushTheme { + VoidPushScreen(endpointUrlOverride = "https://push.example.com/abc123") + } +} + +@Preview(showBackground = true, name = "Nicht registriert") +@Composable +fun PreviewNichtRegistriert() { + VoidPushTheme { + VoidPushScreen(endpointUrlOverride = null) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/warzazel/voidpush/OpenLinkActivity.kt b/app/src/main/java/com/warzazel/voidpush/OpenLinkActivity.kt new file mode 100644 index 0000000..9ca5abe --- /dev/null +++ b/app/src/main/java/com/warzazel/voidpush/OpenLinkActivity.kt @@ -0,0 +1,23 @@ +package com.warzazel.voidpush + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.browser.customtabs.CustomTabsIntent +import android.net.Uri + +class OpenLinkActivity : ComponentActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + val link = intent.getStringExtra("link") + + if (!link.isNullOrEmpty()) { + CustomTabsIntent.Builder() + .build() + .launchUrl(this, Uri.parse(link)) + } + + finish() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/warzazel/voidpush/PushService.kt b/app/src/main/java/com/warzazel/voidpush/PushService.kt new file mode 100644 index 0000000..c02fee5 --- /dev/null +++ b/app/src/main/java/com/warzazel/voidpush/PushService.kt @@ -0,0 +1,226 @@ +package com.warzazel.voidpush + +import android.app.NotificationChannel +import android.app.NotificationManager +import android.app.PendingIntent +import android.content.Context +import android.content.Intent +import android.util.Log +import androidx.core.app.NotificationCompat +import org.unifiedpush.android.connector.FailedReason +import org.unifiedpush.android.connector.data.PushEndpoint +import org.unifiedpush.android.connector.data.PushMessage +import org.json.JSONArray +import org.json.JSONObject + +private const val TAG = "VoidPush" +private const val CHANNEL_ID = "hubzilla_push" +private const val MAX_HISTORY = 50 +private const val NOTIFICATION_ID = 1 // FIX 1: Feste ID → ersetzt statt stapeln + +class VoidPushService : org.unifiedpush.android.connector.PushService() { + + override fun onNewEndpoint(endpoint: PushEndpoint, instance: String) { + Log.d(TAG, "Neue Endpoint-URL: ${endpoint.url}") + val prefs = applicationContext.getSharedPreferences("voidpush", Context.MODE_PRIVATE) + prefs.edit().putString("endpoint_url", endpoint.url).apply() + } + + override fun onMessage(message: PushMessage, instance: String) { + val payload = message.content.toString(Charsets.UTF_8) + Log.d(TAG, "Nachricht empfangen: $payload") + val title = bereinige(extractJson(payload, "title") ?: "Hubzilla") + val body = bereinige(extractJson(payload, "body") ?: payload) + val link = extractJson(payload, "link") ?: "" + + zeigeNotification(title, body, link) + val category = erkennKategorie(title) + speichereInHistorie(title, body, link, category) + } + + override fun onRegistrationFailed(reason: FailedReason, instance: String) { + Log.e(TAG, "Registrierung fehlgeschlagen: $reason") + } + + override fun onUnregistered(instance: String) { + Log.d(TAG, "Von Sunup abgemeldet") + val prefs = applicationContext.getSharedPreferences("voidpush", Context.MODE_PRIVATE) + prefs.edit().remove("endpoint_url").apply() + } + + private fun bereinige(text: String): String { + var result = text + // Unicode-Escapes dekodieren: \u00e4 → ä etc. +// Unicode-Escapes dekodieren inkl. Surrogate Pairs (\ud835\udd16 → 𝖜) + val sb = StringBuilder() + var i = 0 + while (i < result.length) { + if (i + 5 < result.length && + result[i] == '\\' && + result[i + 1] == 'u' && + result.substring(i + 2, i + 6).all { it.isDigit() || it in 'a'..'f' || it in 'A'..'F' } + ) { + val code1 = result.substring(i + 2, i + 6).toInt(16) + // Prüfen ob erstes Surrogate (D800–DBFF) gefolgt von zweitem (DC00–DFFF) + if (code1 in 0xD800..0xDBFF && + i + 11 <= result.length && + result[i + 6] == '\\' && + result[i + 7] == 'u' + ) { + val code2 = result.substring(i + 8, i + 12).toInt(16) + if (code2 in 0xDC00..0xDFFF) { + val codePoint = 0x10000 + (code1 - 0xD800) * 0x400 + (code2 - 0xDC00) + sb.appendCodePoint(codePoint) + i += 12 + } else { + sb.append(code1.toChar()) + i += 6 + } + } else { + sb.append(code1.toChar()) + i += 6 + } + } else { + sb.append(result[i]) + i++ + } + } + + result = sb.toString() + result = ersetzeEmojis(result) // ← neu + result = result.replace("(Hubzilla) ", "") + result = result.replace("(Hubzilla) ", "") + result = result.replace("(Hubzilla)", "") + result = result.replace("\\n", "\n") + result = result.replace("\\t", "\t") + result = result.replace("€", "€") + // BBCode [url=...]Linktext[/url] → nur Linktext behalten + // BBCode [url=...]Linktext[/url] → nur Linktext behalten + result = result.replace(Regex("\\[url=[^\\]]*\\]([^\\[]*?)\\[/url\\]"), "$1") + // BBCode [url=...] ohne /url → komplett entfernen + result = result.replace(Regex("\\[url=[^\\]]*\\]", RegexOption.DOT_MATCHES_ALL), "") + result = result.replace("&", "&") + result = result.replace("/", "/") + result = result.replace("<", "<") + result = result.replace(">", ">") + result = result.replace("'", "'") + // Übrige BBCode-Tags entfernen: [b], [i], [/b] etc. + result = result.replace(Regex("\\[[^\\]]*\\]"), "") + // Escapes wie \/ → / + result = result.replace("\\/", "/") + result = result.replace("\\r", "") + result = result.replace("\r", "") + return result.trim() + + } + private fun ersetzeEmojis(text: String): String { + val emojis = mapOf( + ":smile:" to "😊", ":laughing:" to "😄", ":grinning:" to "😀", + ":rofl:" to "🤣", ":joy:" to "😂", ":sweat_smile:" to "😅", + ":wink:" to "😉", ":blush:" to "😊", ":heart_eyes:" to "😍", + ":kissing_heart:" to "😘", ":thinking:" to "🤔", ":neutral_face:" to "😐", + ":expressionless:" to "😑", ":unamused:" to "😒", ":roll_eyes:" to "🙄", + ":grimacing:" to "😬", ":lying_face:" to "🤥", ":relieved:" to "😌", + ":pensive:" to "😔", ":sleepy:" to "😪", ":sleeping:" to "😴", + ":mask:" to "😷", ":sunglasses:" to "😎", ":clown_face:" to "🤡", + ":sob:" to "😭", ":rage:" to "😡", ":angry:" to "😠", + ":skull:" to "💀", ":ghost:" to "👻", ":alien:" to "👽", + ":heart:" to "❤️", ":broken_heart:" to "💔", ":fire:" to "🔥", + ":star:" to "⭐", ":sparkles:" to "✨", ":boom:" to "💥", + ":thumbsup:" to "👍", ":thumbsdown:" to "👎", ":clap:" to "👏", + ":wave:" to "👋", ":ok_hand:" to "👌", ":raised_hands:" to "🙌", + ":pray:" to "🙏", ":point_right:" to "👉", ":point_left:" to "👈", + ":eyes:" to "👀", ":brain:" to "🧠", ":rocket:" to "🚀", + ":pizza:" to "🍕", ":coffee:" to "☕", ":beer:" to "🍺", + ":cat:" to "🐱", ":dog:" to "🐶", ":penguin:" to "🐧", + ":earth_africa:" to "🌍", ":earth_americas:" to "🌎", ":earth_asia:" to "🌏", + ":rainbow:" to "🌈", ":sunny:" to "☀️", ":umbrella:" to "☔", + ":checkmark:" to "✅", ":x:" to "❌", ":warning:" to "⚠️", + ":100:" to "💯", ":tada:" to "🎉", ":musical_note:" to "🎵" + ) + var result = text + // Bekannte Shortcodes ersetzen + emojis.forEach { (code, emoji) -> result = result.replace(code, emoji) } + // Unbekannte Shortcodes entfernen + result = result.replace(Regex(":[a-zA-Z0-9_]+:"), "") + return result + } + private fun speichereInHistorie(title: String, body: String, link: String, category: String) { val prefs = applicationContext.getSharedPreferences("voidpush", Context.MODE_PRIVATE) + val json = prefs.getString("notification_history", "[]") + val array = JSONArray(json) + + // Duplikat-Schutz: gleicher title+body → nicht nochmal speichern + val neuerKey = "$title|$body" + for (i in 0 until array.length()) { + val obj = array.getJSONObject(i) + val key = "${obj.optString("title")}|${obj.optString("body")}" + if (key == neuerKey) { + Log.d(TAG, "Duplikat ignoriert: $title") + return + } + } + + val entry = JSONObject().apply { + put("title", title) + put("body", body) + put("link", link) + put("timestamp", System.currentTimeMillis()) + put("category", category) + } + + val newArray = JSONArray() + newArray.put(entry) + for (i in 0 until minOf(array.length(), MAX_HISTORY - 1)) { + newArray.put(array.getJSONObject(i)) + } + + prefs.edit().putString("notification_history", newArray.toString()).apply() + } + + private fun zeigeNotification(title: String, body: String, link: String) { + val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager + val channel = NotificationChannel( + CHANNEL_ID, "Hubzilla Benachrichtigungen", NotificationManager.IMPORTANCE_DEFAULT + ) + manager.createNotificationChannel(channel) + + val pendingIntent = if (link.isNotEmpty()) { + val intent = Intent(applicationContext, OpenLinkActivity::class.java).apply { + putExtra("link", link) + flags = Intent.FLAG_ACTIVITY_NEW_TASK + } + PendingIntent.getActivity( + applicationContext, + link.hashCode(), + intent, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) + } else null + + val notification = NotificationCompat.Builder(this, CHANNEL_ID) + .setSmallIcon(android.R.drawable.ic_dialog_info) + .setContentTitle(title) + .setContentText(body) + .setAutoCancel(true) + .apply { if (pendingIntent != null) setContentIntent(pendingIntent) } + .build() + + manager.notify(NOTIFICATION_ID, notification) // FIX 1: Feste ID + } + + private fun extractJson(json: String, key: String): String? { + val pattern = Regex("\"$key\"\\s*:\\s*\"([^\"]+)\"") + return pattern.find(json)?.groupValues?.get(1) + } + + private fun erkennKategorie(title: String): String { + return when { + title.contains("Erwähnung", ignoreCase = true) || + title.contains("Mention", ignoreCase = true) -> "Erwähnung" + title.contains("Kommentar", ignoreCase = true) || + title.contains("Comment", ignoreCase = true) -> "Kommentar" + title.contains("Like", ignoreCase = true) -> "Like" + else -> "Sonstige" + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/warzazel/voidpush/ui/theme/Color.kt b/app/src/main/java/com/warzazel/voidpush/ui/theme/Color.kt new file mode 100644 index 0000000..35f3df3 --- /dev/null +++ b/app/src/main/java/com/warzazel/voidpush/ui/theme/Color.kt @@ -0,0 +1,11 @@ +package com.warzazel.voidpush.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple80 = Color(0xFFD0BCFF) +val PurpleGrey80 = Color(0xFFCCC2DC) +val Pink80 = Color(0xFFEFB8C8) + +val Purple40 = Color(0xFF6650a4) +val PurpleGrey40 = Color(0xFF625b71) +val Pink40 = Color(0xFF7D5260) \ No newline at end of file diff --git a/app/src/main/java/com/warzazel/voidpush/ui/theme/Theme.kt b/app/src/main/java/com/warzazel/voidpush/ui/theme/Theme.kt new file mode 100644 index 0000000..81693de --- /dev/null +++ b/app/src/main/java/com/warzazel/voidpush/ui/theme/Theme.kt @@ -0,0 +1,58 @@ +package com.warzazel.voidpush.ui.theme + +import android.app.Activity +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext + +private val DarkColorScheme = darkColorScheme( + primary = Purple80, + secondary = PurpleGrey80, + tertiary = Pink80 +) + +private val LightColorScheme = lightColorScheme( + primary = Purple40, + secondary = PurpleGrey40, + tertiary = Pink40 + + /* Other default colors to override + background = Color(0xFFFFFBFE), + surface = Color(0xFFFFFBFE), + onPrimary = Color.White, + onSecondary = Color.White, + onTertiary = Color.White, + onBackground = Color(0xFF1C1B1F), + onSurface = Color(0xFF1C1B1F), + */ +) + +@Composable +fun VoidPushTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ + dynamicColor: Boolean = true, + content: @Composable () -> Unit +) { + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> DarkColorScheme + else -> LightColorScheme + } + + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/warzazel/voidpush/ui/theme/Type.kt b/app/src/main/java/com/warzazel/voidpush/ui/theme/Type.kt new file mode 100644 index 0000000..31fabd5 --- /dev/null +++ b/app/src/main/java/com/warzazel/voidpush/ui/theme/Type.kt @@ -0,0 +1,34 @@ +package com.warzazel.voidpush.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ +) \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..65291b9 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..65291b9 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..05582bb1ba667a03738ef0c6279f02b405552be2 GIT binary patch literal 1800 zcmV+j2lx0=Nk&Eh2LJ$9MM6+kP&iEV1^@srN5Byf6;a;*|CHT)W81cE+qP{R>-(?g zcYZi`CdD##vP&APwsnda_ukBt+SWW%x2Lw-Rm@d(<*D82wBPdn>h>a~>L)#m9(q8{wr$z+`;WUrCHV#xIf!IBD^N-HTY}#`@iBu9pzA#0 zgy6P~B#D~)*sY$esc!5Oy6pQ7kcR&pDR)2Tf*i@><*G!ZbEp9SnJ#APA~oXx;R1v^ z5X&GwB^#DHqC_g~FZmTp@Kmpr!XgfZgNMO}cbfcOp~D+n-oUk4zS4D$Pe zuFUzXB;ACFRuJBo3r>zMT|oS>f*7Ra{pf%ol?a7j61pp!d$kYgUY%qG?hBCV;^47# zf!C!~M^tg)kB7Yc5dL1&T%Zm-*k5%TG?xRodlj4!f2C_G=T*Ti@EuRMt$KRJ!)^+F z;D-S$xO+yXYQYuRY z=Z)7tJVAQc%mWjTHC2kUMViu$ z`~34kZRX!aqnORqwuU-Vr05wfsoJoT4Jg)a)tC?JmA@?t|9s@mszvujnxkRlCycm=i0HPzlv2BYnj6yRY3=D~4=VT=H?Zs7RfXbOvk1H55!MF9DxwXe za11*Qoi`XA5hA(!IfWdZrj4_3Mt}F5HesD|=VsPfP9p5i1kDlS4LgG@soO?Ng8zfO zDDu)&U7YXD(>Glce+EfUuvR0n--aDWB708RbE%|w@#T#)G(t`|t5g76si3NMc{8X9 zXwXJ~t9WD0P|m>4njjU~{e6+3+eYy)A1SP&8@0a7VVv_4#s#w!;fm zQq${;C8yrwP(>zVUm>~GG_#w}$A)0y>@XGkLS7Mn*%Z5^ptBVIIe&A9=cYt zlauu^!ar}ZNN;~HM2NGkZ*tn-^EMUS3MNC7ylRs zfKww+R(mQWS8WsJA^>N9;l*}D9JE1l>p(@`v;bdyk*t}9A^2Y3PtE=kAtFVikchA$ z_>lYEn?BwbIYko2;-(5rO_a`~rtJj22@9zu%ZnY`VnbPH26rM}Kegrld434GRjco# zmeO9_zm=9NhuUo{TD^)H+=~91c>Q!ij*>IahE$up57FMF)|FL5cy_r_-^U5sA(<;4 zWA?=FQanYb_u5X4YF+=vDw>q?tRt!QU<2!#rHF_}-c0RameU88+j~8vf>tOV%786z z-`7Y@qj!|6sjZ3m<`7x~t#7Geq-&zr3vKFs5q~+AQ{i~DqX?Z+EF#b|5OH0Bq^X*u zYt1SiW}}a88mlSZ8%b@r&GS;uOgb~n9wP237B*Ouh^Pm-%H!&b9DrPJodSJAlvpi=fBA{^fS?Za~V$? z#-HPy$nPQ1@s~5omqH2iC~A(Ey!c*06Z8t7muiLMOkwW6IB=_*5B&Bz*9*8-L1Z@Y z)ewQNYcv<&!1xA`1Cr+fqybsLCLF(q>bjn;75zv>;-Q_5B>#ku7GVVxN0pD)|6(OAZmEqX8+*%rpo{Hn4vEFqUr*oPJEI8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..318b8803be41bdcba9016caa0811c00b30e58b9f GIT binary patch literal 2836 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1708571acaf4b2f745f3bd5327e87d31e776a502 GIT binary patch literal 2976 zcmV;R3t#k7Nk&GP3jhFDMM6+kP&iDC3jhEwN5Byf62b>O~PoS6z(oFoOGnytXL`_sO@SB-Q9Bo0E z3x)WMcv8gw9O%;cQw6$K+TXr$g*q5}lbJz8_*)8pdO+5~oPzufxd6Ejc>(k0ZF?uW zQg6Y}nvX0eqKr&?l3@}-m4lgupD!SHAPg8>4dY12=a+w+$jq?YC*p}#TP@Sl10>ie_5#Y z%GlGlrwCTcX0*FDY)#~Z=1=$pTLy2M;Wltvvu8z1Y!CJnkk{F)WwsDw*q%qRXuj&d zCv*ss2q8*mP4kF?lyc0Xhq;u_37;aRobT}Y+#N!kBSJ0x_P*Ye4v$frPvdAVN2Bk4 z5;}~+MuEDCvlM2HsS(1Z!xe{=Quf^wWD`O-L#?FWo+vKQp-Bvm44Oy3XkPoHNMh3! ztgfdNGsb@_{czA zM+QL}7ihemJ<2UPh_Y!j$4Tj!G^75f96jpiZ=5{MA>|QyTZ9_v_Rk!Boj>1PM*`zF zo$$XXub?s6tylS`;|nvvXs@OWen}umb;wKMWLZ37Rn@3twW8jbr){Gp_#Rs&#$3!$pdJmVmuS|ZOg=F0 z8|MfXDQAz_R<9YJ{+9ALddm%%$Svt?xukk}9_+3P=hHs{ME`#S_dAhEIs(1|KHOai}6o8@24$ zPcW3pI6|^c@p&0Tuu?tj&NRv5NV+3g_yl^taK18x466Cn7DDXFj9rH-oEKLVD`6P8 zO{(p;i#@$Kug)6R@zVW5h&>G`D0ZcNS^h{70v6%#qTVc$IiLWs_=D+{>YY0ilj^w_osVQNX7t7ot(A(#?MPrxae4>+mdI|GKK7Y zVJ^&YC)M#&r*wdh6_X~q9}J{2Eg+q}pUq5v6mgnI#RQ=?cSnl{S1F{&gsWOUxL&BO zkTl&B=VBa-=#R`hAZ;$6`Q0+irBqIU#!1wyo=4(jYNEo%?HuBmo_klwxL$`YusA2_ zmKiQ?IhAify7GoeLns-=ExA_8q-BC*dew+=^R6nF#zgRb4!;o!XT*)4Q!OH0aJ+27 zEV%)Eo?F5GVwHrjq={(`!=POoZF7;u`mNrn@zR7OR*u;$&ukj*sI9x7{J7bkD;8 z-&Qk&DANP$RQZ%C-XQgO=NlAGR+I1{=98nBNFBP5C>40$lS!rtGGPBHO60?IHytc) z^oDuzNzR#d2Q&3eUM$wZG#%CQ(=pmPBWMaYaNM9ae55l(S(sutttv886?RUA^Y_c4(as(Mh1)RUbC z`gieMnd0LK@#-*7Y*>}zdK}U45A4$YD#^3Wtz_oQmE$x6w44S8Pw`$)0m-_MmrQZ6 zG;}feQn`e={6R2>rJ)de8W_IBXHx~l>nZ4T)j^VP$^k-;4ESiKfN)LNPlZz_$-mN? zOGoz;mOh*Yde89Okm60keFf+{y7A5$Bejf6)C+odaZ;U3lRy!ub2bimF<-A>a#m`4 zhk|B|2RIG1FM^UbOi%#pF9994d@qhKa}Ha-(m}UV7IUs^#Q43ExnQ92KPYONlnL_C zKO+j%LXy<5{wHQt8?;3S19lv%@Tk;q{A}=|^3hK+i84Nj`sQL~V;6$HaeJcwE*Gl()lX5P<1qgFUHX?uf7(9Jsdi%@8PO$+}lhbGfwAB8`Y$n;d0 ztTxASQ$`WB_`8dl$L*S2#cZBj$7`_GAI9y9)b*G|)SgUGESxW;TgrQX)$IhwZHdeW z+ulm!z;3#jZh7Cs^H=xULLSEtp!hmweF6DnSSr`bxJ5xW7ps-C>y5{=#VT*hr!*L~ z>=5R@>9gUh?s(Wz#hAP(E}A$8{aByG>`+aRRfPs~xho?kW1Vk8z1}x|Gj@TLDeSiG ztNU`9;qoV;kh5oskCfj#jI&VH_Q%LcVcaiI^Q%l!96~lIIh9k96Y6{g_EfW0HGgyj zQz0KnX2Pfyki}bntA{b6B_GIC*CQTSWidQg``h5L58wC-)qWtU6N4MR39>Pz=KeJ) zs+2imnP84~*Rs@Y4O@C%rYhNvgRZ;Z5&}8}5!6+Ddvww|Vy#RLD39jP!Y8Z?I-g7B z{zx)g`PQ&Mu=qeWj^v^1B*zt9&J-`Qd;-NkL51r{#kz0cV+?G@o?i`f;iRu)-><2c z<2SUul_jOTxb>ZM^@98Si@4#HOQj6-;b96Wg8M8|i=A9h5%tdnB&in0t0&vGSVC>E z(*8=8%(^?7w=G=uia4pZS|ovn>^CR297#o_|&KxiRuBr``cRk$-3WCp0ott zLtdqtzO~gN(0Pje9-zp-i6{KIHzK|rO4UeUv+98>E$uq$)sDovviXx4ZVFL^Dgp5C zyAiK>8vl}Gp$Mpn%J)^nqDd55-x2om8#WG@kFpOxgId>^#P{Ez1l-Lkd|i-HBsMnN zjm=Wt5{-#m3>j!M?ct(|A^mVb5$MZE;W(RPMmcNTT0u zPu%`6Vk_o>Dh20?>bWFg=AS7Js&{5d1kr!M19qe3L*fr3wqwQj%Thw$l?~5rFKol? z89b3K9}|0VPRmDAdD?<`FDy+-59!lWic+9PErw3wV)F-(2ovpr^S;=67Z+D6-ts1`z-+NVEYz&Hmw6;l$R-=r7{ zGO=C?R0WNKE@mM2JNgke<368L^Xmyt-+e~xma~GcW^G-4!=v`NYV|(2%e@dZ4LY8T zqMa+W{nXv*WDCfw!TXOdk!9dkwZc;VLInI3`fTaf!6 zjqAIi#0o=gtlW*(b>zNtpS|^kdn`Mh?B?lMD1xPO$)Mhu!QL)Gm$L)?hmiRgrGHUB zi`GqaAE5i>(-)(C6OFU3V*-PR9@_BupI2|Z=5(^F9*~2r5+|hH4(fYDXmRX@;KjZ{ z8w39Sx(y+;KGXa8+tW@s^=J>-Uk}K>1{)=@To&%~=cTO%)&9LY?Y#TW{^2zr^en_n Wg&vRzvT%^|kAM97sz*IBol*i`0ol0# literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..a58c5755d452c48146e379be178297fc5149b9ac GIT binary patch literal 1408 zcmV-`1%LWdNk&F^1pok7MM6+kP&iC%1pojqFTe{B6;Yb@&$R9Q?>X1DZ6mq1ZQHiT z_p4{0?mp|B)SdS%w(VqO=U{efRUPz-ZS1UCb-zIDWMrH#LUc#qfTPRX8ymaR+b@5;zdl+<=!Q6i z0j)wN0d5-rYdy$(1OOuM3C2X7prLcFSBd)up+AJfZXJwC5KcRP*dZmM<2hR_IT683 z*da}K9M68#CFX~YTY8lcuj(w5Gh!2L#VD}UAg!NKwF(F&LYl?&Hmj4Db59<&OH`)C zK)))=-02V=DYXt_J~h>cAoImACFWWMN;DfPs7LX!abi3{sB#Sen7TO=1$dNg1T4L{z_FDV5;azaOs$N9k^RyaV>sbMPB%VGflb8D0g*2uGkFzV`*ga#m(k>lVK zh<%dn!~oc}t3&8&x;jC0lJI(YHw*wEF|Fj#E+s}1GXMZaug9V50-a{D^ob4Z@;Ea` z9Fg$`z=ho$m^nV>7l74UhD9**S@n{+1r#FUn>ua+q{nL&Vj+MOKb7jvV*YO~cJ1UQ_&hNK{!5sL zDXr@VaNf_OL|LJov~vZI7e&pYg#Z#E8Sa|KjgeT-53ik{;6V?6_c3|vs&fs1h1DuC zL1ZlCmAo&?Rqc$BC3eP%RINz;cA>AdFQxltrGEhK5UdNF+s&>_&-)kpTDxl1IB`q{ zk2IDPGCFh$F49OjhkxpCaH`NymBKSX!39D76`<%ujJPv@UhM>i%5t_`p>X%!qh!Hy zqouY3HW3^SPyOAxaYFe6Udp90HpLjzU*E>0}g*(EsvitMl`*A*d&SQG|(G)`!eAhgCO zFzx(U?m+|Z7IBA~#G~Mn+M~mj!D2mZ7GmLl3a*ERmq?q9P|82cD!I4mEJrdxFEIn= z2!)nm2D=W_kpu?GbB0PG%iQS<(j<1qi?~Zdicj|hJo=V=3v3De-rY{vA9uVcl=oG0 zO=kimo*;~RSu>0=bBjzZInThmK0;jcOb=#_C11@o#>}XniHSn0`?d>ou83%oh#A1# z=Vv|6!<8~!0e^okXz$|(b{e6;5%CB4fuvM4P8uV~`>39~77@>3#?191m^tE24@mps z`pi%B26%4@`?B858FmszlW-E&4w~M^}=h=_*~Qp8k!cngnwN^f9#UOaGc@FNbw8XTEAT3 zIHd;hs7q8u?PFaRn&M}cV3HmWgt+edfk1Q$f@`fcqXU8U-A(EILNIl-77;YaKBVJ2 z{YFIAB|3Qw)O!q4)XAUqIo7&%`5t2+m+aI;jA;Ksw)6du*3$9-!4Y{cC{<>#m8GEk zw6LrU4wMuwt+iQkQTgeo8Js0~FHd+t`QfKjn_z}uKFn=%>(N>n^_zrRE0$V=p|#$6 OZ(eRGagV;yQ%M?`qpYm} literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..ca89c46afa7b469cdb6b375915c1fc67df0c2064 GIT binary patch literal 1890 zcmV-o2c7s*Nk&Fm2LJ$9MM6+kP&iCY2LJ#sYrq;1pXVTwBt^<&CUNIq$vrMfV9-dC zqB^EWaqnLVFlZ!6Q61Bxxc9FF9M`t3G;nZt8lwLpNh-+HakyWR+qMmIO1fA-0~YN2 zdARPIp*0XRDN%(07SvS;R3U%~eH8)#5kP{h3IPBR000odMFfxlfCvC2$dCafRR{)x z2@8TCC4J(4I1_>@gbP0iQ>YI4 z@lS$z48jkeDg;mffD8a6RR~YKpeh6xJn#F!51-ff4M+fzZ*pOd@Bbe$VOqD%{1ZS7 z|J$~mk+kjKaaQxPZQHhuv27c@C)Jp~#M~B@5K57BvyAZV^}&Lje$~0B+S#VpP?%2=I3(?n2LlTeZY^ zZHwWBP@IK+1GnpnhxKfRUm|gp@C&%TL3yDX*bGY(;;3v1xZO}Zej?29V_DpkeGeXP zES@(BGkjMTFF%2&ZxJ6pp3bl&Ue2-fN5z-TGuSzQ6x|k^YapYA_;hQAf!y0-i%d*M z?6U^`7T^ADpbBEA`>C3Ls{IE|`OaiFhwqC7le+N4C)s$!%~u%o_+2>P1@k2D~dUFuXcnAit` zsQfG$)5)pbDDs60BH04qpLMCCSyCq(2w#>!3cZE#IpXs082l>1BzMogU0mnCTNEr` zra4Ke7)%i7@|XQLEZdGZb=iRu7GayE~_Ph1XKt0Uun_OL}TrX4Z_lX?h1f zgriR0>oE5&!@Efakh%O$jk_j-PVTCavLXuxlHLP<$Hbvg3?G&_v>oRJ4BZl8MWf+3 z{v?Y$HVm3$A8;s{4?gmu3F$JF;qy`^#Wj060e`R;pjmdf@^-IM$`XYGmYvSeo*$gY9P9mp&4g+XN z?zVKSh~X^7l64_HYON9c@AAb$d{UlCok3OuW=c>QoD zvz}HulJNM@cZj^G^S98~hHOp{T~*s+ncKztN7D)H=bGuSAA5p4qO*f^A62iJeq|dp z+)Vtq*(L_JlMXufk>)ULHxYk6X&c%`j_GtH%?#Na#HZ?M%gE3a(o*L^QZ&ejRZICr z)G8BM9fba+^Bj?O877`l;@{{>19gO^j?@`fMx>^J3Q_TM^o4$I-%Mniq1~L7&h6*+ z#i;l@TH>}$X#POGA>D|SmAH*cAg0cR%Qq59KtBi9s{*Vr+g;DwgR43WJ{<(R8@t@Y zW|)}AZZ>v#(^rp$;qniX+sj0sV)8RwhMW3mTPECAA-CHmGES2UZjjm1H*K=u`dQLF z-9*+2vceUz9`MQaY`FiCgeIDps>ot@=&{Ea$9lowIU-M)cv9$i1L)bo2lw>_?>j(u za5s`S+}-FjQZQ(MZeNDJ`#n260Q}q3h-T8pO+>c2vRVsm*f2Swnfe{WfXg1;H3a<2 zL~+htcNW7-i2B~m&qC7%W7yhcaZY@hVer4693KJxQK~qeuRZ_())7gXsyDls)dGNi z)lNG|=>mqcT|LMj2mXGV@HZ4yP=|~;4|-(*dvS6p=> zTLTDx)j38^&SIEaWaQ*r@N?%S_AVQ`8H+kA2kFo!rvE;1R7VzPY5?|KF>>l0!<>@_ za^D7@a8PItG_!yDSG4aN1PnbY+Fh1qYaoZn?GqW^%5_!x3i#*?;;QHJLUDW7gvrOn zZGMGbuB2cz!w02qx>#&@S8>yS)hRJ}>P|6ORDGZu={lTQT?`GnM_hFlA9r>oIfK2~ zCGK+kl;cirdUH5v4*x%pA0qyVycB=fGLop+eLj(Td=`4(b$s z9lN-j8>2U}7^*8js2bo|yCptbXEJN8AJ$ncqm{&Kiwpw0p?8gJ(DddKzfHmf>CL=) zG#%7#Eb(05BFNa`O{)x0tDcH0sc8{p?eyYS4^V53#JQ?$5%j#@T>GBjl~lY*=ud_- z`%T@~2mFPQ#D8Q7!{B5yxkJETibxPf7Llxn#qdK}#J<7DwC0E#e>!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..3d9a4911bdf7b6bffcfbb736173b79f81d84759b GIT binary patch literal 1922 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..5f423ec9182d1298bb8376a5211707d28d7bd8cc GIT binary patch literal 3858 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..7d408980f3e7d5d6956479304f06ca60806948c9 GIT binary patch literal 3466 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 Woz}BuHC1O;tVx_3P*qFkl>q<`LMapg literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..abb54ec3aac820ff3e5d3cfd88db3b261c3b97df GIT binary patch literal 4556 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..65af6af0667ddd8475b0a683e64ffa5b08e9ef27 GIT binary patch literal 8956 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 Wuv@?}_sv;eFlle~H>*0pvH}3FIdRGW literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..cec3d92dfc1252ed608648a7b7e398ae287ad61e GIT binary patch literal 9036 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 + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..3d583be --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #680000 + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..855affe --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + VoidPush + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..64cdc07 --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,5 @@ + + + +