From 85c710b4b27f33cbc58ecc5f12ac8097e9128c31 Mon Sep 17 00:00:00 2001 From: rehak Date: Mon, 31 Aug 2026 10:09:18 +0200 Subject: [PATCH 1/6] plugin --- FreeRASPDemoApp/app/build.gradle | 7 +++++-- FreeRASPDemoApp/gradle/libs.versions.toml | 4 ++-- FreeRASPDemoApp/gradle/wrapper/gradle-wrapper.properties | 2 +- FreeRASPDemoApp/settings.gradle | 3 ++- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/FreeRASPDemoApp/app/build.gradle b/FreeRASPDemoApp/app/build.gradle index c230c14..5bc199a 100644 --- a/FreeRASPDemoApp/app/build.gradle +++ b/FreeRASPDemoApp/app/build.gradle @@ -1,5 +1,6 @@ plugins { alias(libs.plugins.android.application) + alias(libs.plugins.talsec) } android { @@ -25,11 +26,13 @@ android { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } + + talsec { + sdkVersion = "19.2.3" + } } dependencies { - // freeRASP SDK - implementation libs.talsec.freerasp implementation libs.kotlin.stdlib implementation libs.bundles.androidx } \ No newline at end of file diff --git a/FreeRASPDemoApp/gradle/libs.versions.toml b/FreeRASPDemoApp/gradle/libs.versions.toml index 05dc40f..d1b07d8 100644 --- a/FreeRASPDemoApp/gradle/libs.versions.toml +++ b/FreeRASPDemoApp/gradle/libs.versions.toml @@ -5,7 +5,7 @@ core-ktx = "1.17.0" appcompat = "1.7.1" material = "1.14.0" constraintlayout = "2.2.2" -talsec-freerasp = "19.2.3" +talsec = "0.0.20" [libraries] kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } @@ -13,10 +13,10 @@ core-ktx = { module = "androidx.core:core-ktx", version.ref = "core-ktx" } appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } material = { module = "com.google.android.material:material", version.ref = "material" } constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" } -talsec-freerasp = { module = "com.aheaditec.talsec.security:TalsecSecurity-Community", version.ref = "talsec-freerasp" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } +talsec = { id = "app.talsec.plugin", version.ref = "talsec" } [bundles] androidx = ["core-ktx", "appcompat", "material", "constraintlayout"] \ No newline at end of file diff --git a/FreeRASPDemoApp/gradle/wrapper/gradle-wrapper.properties b/FreeRASPDemoApp/gradle/wrapper/gradle-wrapper.properties index 53761cb..64a5b37 100644 --- a/FreeRASPDemoApp/gradle/wrapper/gradle-wrapper.properties +++ b/FreeRASPDemoApp/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.7.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file diff --git a/FreeRASPDemoApp/settings.gradle b/FreeRASPDemoApp/settings.gradle index c9aabb8..1e72fd4 100644 --- a/FreeRASPDemoApp/settings.gradle +++ b/FreeRASPDemoApp/settings.gradle @@ -3,6 +3,7 @@ pluginManagement { google() mavenCentral() gradlePluginPortal() + maven { url "https://europe-west3-maven.pkg.dev/talsec-artifact-repository/plugin" } } } @@ -12,7 +13,7 @@ dependencyResolutionManagement { google() mavenCentral() maven { url "https://europe-west3-maven.pkg.dev/talsec-artifact-repository/freerasp" } - maven { url 'https://europe-west3-maven.pkg.dev/talsec-artifact-repository/common' } + maven { url "https://europe-west3-maven.pkg.dev/talsec-artifact-repository/common" } } } From 13776ce5f9c913f31332b6f28fa4e7296851946d Mon Sep 17 00:00:00 2001 From: rehak Date: Mon, 31 Aug 2026 10:26:09 +0200 Subject: [PATCH 2/6] dependencies --- FreeRASPDemoApp/app/build.gradle | 6 +++--- FreeRASPDemoApp/build.gradle | 5 ----- FreeRASPDemoApp/gradle.properties | 19 +++++++------------ FreeRASPDemoApp/gradle/libs.versions.toml | 10 +++++----- FreeRASPDemoApp/settings.gradle | 4 ++++ 5 files changed, 19 insertions(+), 25 deletions(-) diff --git a/FreeRASPDemoApp/app/build.gradle b/FreeRASPDemoApp/app/build.gradle index 5bc199a..e76d53c 100644 --- a/FreeRASPDemoApp/app/build.gradle +++ b/FreeRASPDemoApp/app/build.gradle @@ -1,6 +1,6 @@ plugins { alias(libs.plugins.android.application) - alias(libs.plugins.talsec) + alias(libs.plugins.talsec.plugin) } android { @@ -9,8 +9,8 @@ android { defaultConfig { applicationId "com.aheaditec.talsec.demoapp" minSdkVersion 23 - compileSdkVersion 36 - targetSdkVersion 36 + compileSdkVersion 37 + targetSdkVersion 37 versionCode 1 versionName "1.0" } diff --git a/FreeRASPDemoApp/build.gradle b/FreeRASPDemoApp/build.gradle index 9d877e8..3756278 100644 --- a/FreeRASPDemoApp/build.gradle +++ b/FreeRASPDemoApp/build.gradle @@ -1,9 +1,4 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { alias(libs.plugins.android.application) apply false -} - -tasks.register('clean', Delete) { - //noinspection GrDeprecatedAPIUsage - delete rootProject.buildDir } \ No newline at end of file diff --git a/FreeRASPDemoApp/gradle.properties b/FreeRASPDemoApp/gradle.properties index f24c666..99fc155 100644 --- a/FreeRASPDemoApp/gradle.properties +++ b/FreeRASPDemoApp/gradle.properties @@ -8,17 +8,12 @@ # The setting is particularly useful for tweaking memory settings. org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# This option should only be used with decoupled projects. For more details, visit +# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects # org.gradle.parallel=true -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app"s APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true +# When enabled, the Configuration Cache allows Gradle to skip the configuration +# phase entirely if nothing that affects the build configuration (such as build scripts) +# has changed. Additionally, Gradle applies performance optimizations to task execution. +org.gradle.configuration-cache=true # Kotlin code style for this project: "official" or "obsolete": -kotlin.code.style=official -# Temporary compatibility settings for AGP 9.0 migration -android.builtInKotlin=true -android.newDsl=false \ No newline at end of file +kotlin.code.style=official \ No newline at end of file diff --git a/FreeRASPDemoApp/gradle/libs.versions.toml b/FreeRASPDemoApp/gradle/libs.versions.toml index d1b07d8..20f40c7 100644 --- a/FreeRASPDemoApp/gradle/libs.versions.toml +++ b/FreeRASPDemoApp/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] -kotlin = "2.3.0" +kotlin = "2.4.10" agp = "9.3.2" -core-ktx = "1.17.0" -appcompat = "1.7.1" +core-ktx = "1.19.0" +appcompat = "1.8.0" material = "1.14.0" constraintlayout = "2.2.2" -talsec = "0.0.20" +talsec-plugin = "0.0.20" [libraries] kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } @@ -16,7 +16,7 @@ constraintlayout = { module = "androidx.constraintlayout:constraintlayout", vers [plugins] android-application = { id = "com.android.application", version.ref = "agp" } -talsec = { id = "app.talsec.plugin", version.ref = "talsec" } +talsec-plugin = { id = "app.talsec.plugin", version.ref = "talsec-plugin" } [bundles] androidx = ["core-ktx", "appcompat", "material", "constraintlayout"] \ No newline at end of file diff --git a/FreeRASPDemoApp/settings.gradle b/FreeRASPDemoApp/settings.gradle index 1e72fd4..870794a 100644 --- a/FreeRASPDemoApp/settings.gradle +++ b/FreeRASPDemoApp/settings.gradle @@ -7,6 +7,10 @@ pluginManagement { } } +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' +} + dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { From 9c37b560bef50f5de5f1408f0cd4ef1add91d9d2 Mon Sep 17 00:00:00 2001 From: rehak Date: Mon, 31 Aug 2026 10:40:53 +0200 Subject: [PATCH 3/6] kts gradle files --- FreeRASPDemoApp/app/build.gradle | 38 ---------------------------- FreeRASPDemoApp/app/build.gradle.kts | 38 ++++++++++++++++++++++++++++ FreeRASPDemoApp/build.gradle | 4 --- FreeRASPDemoApp/build.gradle.kts | 12 +++++++++ FreeRASPDemoApp/settings.gradle | 25 ------------------ FreeRASPDemoApp/settings.gradle.kts | 25 ++++++++++++++++++ 6 files changed, 75 insertions(+), 67 deletions(-) delete mode 100644 FreeRASPDemoApp/app/build.gradle create mode 100644 FreeRASPDemoApp/app/build.gradle.kts delete mode 100644 FreeRASPDemoApp/build.gradle create mode 100644 FreeRASPDemoApp/build.gradle.kts delete mode 100644 FreeRASPDemoApp/settings.gradle create mode 100644 FreeRASPDemoApp/settings.gradle.kts diff --git a/FreeRASPDemoApp/app/build.gradle b/FreeRASPDemoApp/app/build.gradle deleted file mode 100644 index e76d53c..0000000 --- a/FreeRASPDemoApp/app/build.gradle +++ /dev/null @@ -1,38 +0,0 @@ -plugins { - alias(libs.plugins.android.application) - alias(libs.plugins.talsec.plugin) -} - -android { - namespace "com.aheaditec.talsec.demoapp" - - defaultConfig { - applicationId "com.aheaditec.talsec.demoapp" - minSdkVersion 23 - compileSdkVersion 37 - targetSdkVersion 37 - versionCode 1 - versionName "1.0" - } - - buildTypes { - release { - minifyEnabled true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - - talsec { - sdkVersion = "19.2.3" - } -} - -dependencies { - implementation libs.kotlin.stdlib - implementation libs.bundles.androidx -} \ No newline at end of file diff --git a/FreeRASPDemoApp/app/build.gradle.kts b/FreeRASPDemoApp/app/build.gradle.kts new file mode 100644 index 0000000..53a90b7 --- /dev/null +++ b/FreeRASPDemoApp/app/build.gradle.kts @@ -0,0 +1,38 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.talsec.plugin) +} + +android { + namespace = "com.aheaditec.talsec.demoapp" + compileSdk = 37 + + defaultConfig { + applicationId = "com.aheaditec.talsec.demoapp" + minSdk = 23 + targetSdk = 37 + versionCode = 1 + versionName = "1.0" + } + + buildTypes { + release { + isMinifyEnabled = true + proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + talsec { + sdkVersion = "19.2.3" + } +} + +dependencies { + implementation(libs.kotlin.stdlib) + implementation(libs.bundles.androidx) +} \ No newline at end of file diff --git a/FreeRASPDemoApp/build.gradle b/FreeRASPDemoApp/build.gradle deleted file mode 100644 index 3756278..0000000 --- a/FreeRASPDemoApp/build.gradle +++ /dev/null @@ -1,4 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. -plugins { - alias(libs.plugins.android.application) apply false -} \ No newline at end of file diff --git a/FreeRASPDemoApp/build.gradle.kts b/FreeRASPDemoApp/build.gradle.kts new file mode 100644 index 0000000..5f74008 --- /dev/null +++ b/FreeRASPDemoApp/build.gradle.kts @@ -0,0 +1,12 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + dependencies { + // Overrides the Kotlin Gradle Plugin version that Android Gradle plugin's + // built-in Kotlin support uses by default, so it matches libs.versions.toml. + classpath(libs.kotlin.gradle.plugin) + } +} + +plugins { + alias(libs.plugins.android.application) apply false +} \ No newline at end of file diff --git a/FreeRASPDemoApp/settings.gradle b/FreeRASPDemoApp/settings.gradle deleted file mode 100644 index 870794a..0000000 --- a/FreeRASPDemoApp/settings.gradle +++ /dev/null @@ -1,25 +0,0 @@ -pluginManagement { - repositories { - google() - mavenCentral() - gradlePluginPortal() - maven { url "https://europe-west3-maven.pkg.dev/talsec-artifact-repository/plugin" } - } -} - -plugins { - id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' -} - -dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) - repositories { - google() - mavenCentral() - maven { url "https://europe-west3-maven.pkg.dev/talsec-artifact-repository/freerasp" } - maven { url "https://europe-west3-maven.pkg.dev/talsec-artifact-repository/common" } - } -} - -include ':app' -rootProject.name = "FreeRASPDemoApp" \ No newline at end of file diff --git a/FreeRASPDemoApp/settings.gradle.kts b/FreeRASPDemoApp/settings.gradle.kts new file mode 100644 index 0000000..be1a515 --- /dev/null +++ b/FreeRASPDemoApp/settings.gradle.kts @@ -0,0 +1,25 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + maven { url = uri("https://europe-west3-maven.pkg.dev/talsec-artifact-repository/plugin") } + } +} + +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" +} + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + maven { url = uri("https://europe-west3-maven.pkg.dev/talsec-artifact-repository/common") } + maven { url = uri("https://europe-west3-maven.pkg.dev/talsec-artifact-repository/freerasp") } + } +} + +include(":app") +rootProject.name = "FreeRASPDemoApp" \ No newline at end of file From 7d86f8c4ebb4e27b928c92c5bb2e10a43701277e Mon Sep 17 00:00:00 2001 From: rehak Date: Mon, 31 Aug 2026 12:37:38 +0200 Subject: [PATCH 4/6] compose --- FreeRASPDemoApp/app/build.gradle.kts | 22 +++++++++--- .../app/src/main/AndroidManifest.xml | 2 +- .../aheaditec/talsec/demoapp/MainActivity.kt | 36 +++++++++++++++++-- .../talsec/demoapp/ui/theme/Color.kt | 9 +++++ .../talsec/demoapp/ui/theme/Theme.kt | 36 +++++++++++++++++++ .../app/src/main/res/layout/activity_main.xml | 18 ---------- .../app/src/main/res/values-night/themes.xml | 18 +++------- .../app/src/main/res/values/themes.xml | 18 +++------- FreeRASPDemoApp/build.gradle.kts | 9 +---- FreeRASPDemoApp/gradle/libs.versions.toml | 33 +++++++++-------- FreeRASPDemoApp/settings.gradle.kts | 5 +-- 11 files changed, 129 insertions(+), 77 deletions(-) create mode 100644 FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Color.kt create mode 100644 FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Theme.kt delete mode 100644 FreeRASPDemoApp/app/src/main/res/layout/activity_main.xml diff --git a/FreeRASPDemoApp/app/build.gradle.kts b/FreeRASPDemoApp/app/build.gradle.kts index 53a90b7..04c408c 100644 --- a/FreeRASPDemoApp/app/build.gradle.kts +++ b/FreeRASPDemoApp/app/build.gradle.kts @@ -1,11 +1,14 @@ plugins { alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.compose) alias(libs.plugins.talsec.plugin) } android { namespace = "com.aheaditec.talsec.demoapp" - compileSdk = 37 + compileSdk { + version = release(37) + } defaultConfig { applicationId = "com.aheaditec.talsec.demoapp" @@ -18,6 +21,7 @@ android { buildTypes { release { isMinifyEnabled = true + isShrinkResources = true proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } @@ -28,11 +32,21 @@ android { } talsec { - sdkVersion = "19.2.3" + sdkVersion = "19.2.3" // todo + // offlineToken = "..." // optional + // platform = "Flutter" // optional } } dependencies { - implementation(libs.kotlin.stdlib) - implementation(libs.bundles.androidx) + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.activity.compose) + implementation(libs.androidx.compose.material3) + implementation(libs.androidx.compose.ui) + implementation(libs.androidx.compose.ui.graphics) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.lifecycle.runtime.ktx) + debugImplementation(libs.androidx.compose.ui.test.manifest) + debugImplementation(libs.androidx.compose.ui.tooling) } \ No newline at end of file diff --git a/FreeRASPDemoApp/app/src/main/AndroidManifest.xml b/FreeRASPDemoApp/app/src/main/AndroidManifest.xml index 83826bd..29e2c15 100644 --- a/FreeRASPDemoApp/app/src/main/AndroidManifest.xml +++ b/FreeRASPDemoApp/app/src/main/AndroidManifest.xml @@ -10,7 +10,7 @@ - + diff --git a/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/MainActivity.kt b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/MainActivity.kt index ee10d35..d022d89 100644 --- a/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/MainActivity.kt +++ b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/MainActivity.kt @@ -3,16 +3,36 @@ package com.aheaditec.talsec.demoapp import android.Manifest import android.content.pm.PackageManager import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat +import com.aheaditec.talsec.demoapp.ui.theme.FreeRASPDemoAppTheme -class MainActivity : AppCompatActivity() { +class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) requestFineLocationPermission() + + setContent { + FreeRASPDemoAppTheme { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background, + ) { + MainScreen() + } + } + } } private fun requestFineLocationPermission() { @@ -34,4 +54,14 @@ class MainActivity : AppCompatActivity() { private const val FINE_LOCATION_PERMISSION = Manifest.permission.ACCESS_FINE_LOCATION private const val COARSE_LOCATION_PERMISSION = Manifest.permission.ACCESS_COARSE_LOCATION } +} + +@Composable +private fun MainScreen() { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + Text(text = "I am secured by freeRASP!") + } } \ No newline at end of file diff --git a/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Color.kt b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Color.kt new file mode 100644 index 0000000..83b3b09 --- /dev/null +++ b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Color.kt @@ -0,0 +1,9 @@ +package com.aheaditec.talsec.demoapp.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple200 = Color(0xFFBB86FC) +val Purple500 = Color(0xFF6200EE) +val Purple700 = Color(0xFF3700B3) +val Teal200 = Color(0xFF03DAC5) +val Teal700 = Color(0xFF018786) diff --git a/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Theme.kt b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Theme.kt new file mode 100644 index 0000000..5124c34 --- /dev/null +++ b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Theme.kt @@ -0,0 +1,36 @@ +package com.aheaditec.talsec.demoapp.ui.theme + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color + +private val DarkColorScheme = darkColorScheme( + primary = Purple200, + onPrimary = Color.Black, + secondary = Teal200, + onSecondary = Color.Black, + tertiary = Teal200, +) + +private val LightColorScheme = lightColorScheme( + primary = Purple500, + onPrimary = Color.White, + secondary = Teal200, + onSecondary = Color.Black, + tertiary = Purple700, +) + +@Composable +fun FreeRASPDemoAppTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + content: @Composable () -> Unit, +) { + val colorScheme = if (darkTheme) DarkColorScheme else LightColorScheme + MaterialTheme( + colorScheme = colorScheme, + content = content, + ) +} diff --git a/FreeRASPDemoApp/app/src/main/res/layout/activity_main.xml b/FreeRASPDemoApp/app/src/main/res/layout/activity_main.xml deleted file mode 100644 index aefe27a..0000000 --- a/FreeRASPDemoApp/app/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/FreeRASPDemoApp/app/src/main/res/values-night/themes.xml b/FreeRASPDemoApp/app/src/main/res/values-night/themes.xml index 932dc98..640a29a 100644 --- a/FreeRASPDemoApp/app/src/main/res/values-night/themes.xml +++ b/FreeRASPDemoApp/app/src/main/res/values-night/themes.xml @@ -1,16 +1,8 @@ - - \ No newline at end of file diff --git a/FreeRASPDemoApp/app/src/main/res/values/themes.xml b/FreeRASPDemoApp/app/src/main/res/values/themes.xml index 4a9d72b..f91779a 100644 --- a/FreeRASPDemoApp/app/src/main/res/values/themes.xml +++ b/FreeRASPDemoApp/app/src/main/res/values/themes.xml @@ -1,16 +1,8 @@ - - \ No newline at end of file diff --git a/FreeRASPDemoApp/build.gradle.kts b/FreeRASPDemoApp/build.gradle.kts index 5f74008..18318be 100644 --- a/FreeRASPDemoApp/build.gradle.kts +++ b/FreeRASPDemoApp/build.gradle.kts @@ -1,12 +1,5 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - dependencies { - // Overrides the Kotlin Gradle Plugin version that Android Gradle plugin's - // built-in Kotlin support uses by default, so it matches libs.versions.toml. - classpath(libs.kotlin.gradle.plugin) - } -} - plugins { alias(libs.plugins.android.application) apply false + alias(libs.plugins.kotlin.compose) apply false } \ No newline at end of file diff --git a/FreeRASPDemoApp/gradle/libs.versions.toml b/FreeRASPDemoApp/gradle/libs.versions.toml index 20f40c7..d011926 100644 --- a/FreeRASPDemoApp/gradle/libs.versions.toml +++ b/FreeRASPDemoApp/gradle/libs.versions.toml @@ -1,22 +1,25 @@ [versions] -kotlin = "2.4.10" agp = "9.3.2" -core-ktx = "1.19.0" -appcompat = "1.8.0" -material = "1.14.0" -constraintlayout = "2.2.2" -talsec-plugin = "0.0.20" +activityCompose = "1.13.0" +composeBom = "2026.08.00" +coreKtx = "1.19.0" +kotlin = "2.4.10" +lifecycleRuntimeKtx = "2.11.0" +talsecPlugin = "0.0.20" # todo [libraries] -kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } -core-ktx = { module = "androidx.core:core-ktx", version.ref = "core-ktx" } -appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } -material = { module = "com.google.android.material:material", version.ref = "material" } -constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" } +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } +androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" } +androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } +androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" } +androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } +androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } +androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } +androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } +androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } -talsec-plugin = { id = "app.talsec.plugin", version.ref = "talsec-plugin" } - -[bundles] -androidx = ["core-ktx", "appcompat", "material", "constraintlayout"] \ No newline at end of file +kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +talsec-plugin = { id = "app.talsec.plugin", version.ref = "talsecPlugin" } \ No newline at end of file diff --git a/FreeRASPDemoApp/settings.gradle.kts b/FreeRASPDemoApp/settings.gradle.kts index be1a515..5b58f5d 100644 --- a/FreeRASPDemoApp/settings.gradle.kts +++ b/FreeRASPDemoApp/settings.gradle.kts @@ -11,6 +11,7 @@ plugins { id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" } +@Suppress("UnstableApiUsage") dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { @@ -21,5 +22,5 @@ dependencyResolutionManagement { } } -include(":app") -rootProject.name = "FreeRASPDemoApp" \ No newline at end of file +rootProject.name = "FreeRASPDemoApp" +include(":app") \ No newline at end of file From a42c534f9f9e56cabc0d76ada5fc9a4b7727069f Mon Sep 17 00:00:00 2001 From: rehak Date: Mon, 31 Aug 2026 12:39:40 +0200 Subject: [PATCH 5/6] fix --- FreeRASPDemoApp/app/src/main/AndroidManifest.xml | 6 +++++- .../java/com/aheaditec/talsec/demoapp/ui/theme/Color.kt | 2 +- .../java/com/aheaditec/talsec/demoapp/ui/theme/Theme.kt | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/FreeRASPDemoApp/app/src/main/AndroidManifest.xml b/FreeRASPDemoApp/app/src/main/AndroidManifest.xml index 29e2c15..0c0cd7f 100644 --- a/FreeRASPDemoApp/app/src/main/AndroidManifest.xml +++ b/FreeRASPDemoApp/app/src/main/AndroidManifest.xml @@ -22,12 +22,16 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.FreeRASPDemoApp"> - + + \ No newline at end of file diff --git a/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Color.kt b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Color.kt index 83b3b09..80fbf00 100644 --- a/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Color.kt +++ b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Color.kt @@ -6,4 +6,4 @@ val Purple200 = Color(0xFFBB86FC) val Purple500 = Color(0xFF6200EE) val Purple700 = Color(0xFF3700B3) val Teal200 = Color(0xFF03DAC5) -val Teal700 = Color(0xFF018786) +val Teal700 = Color(0xFF018786) \ No newline at end of file diff --git a/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Theme.kt b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Theme.kt index 5124c34..e52ee9f 100644 --- a/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Theme.kt +++ b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/ui/theme/Theme.kt @@ -33,4 +33,4 @@ fun FreeRASPDemoAppTheme( colorScheme = colorScheme, content = content, ) -} +} \ No newline at end of file From 9c7f479bee796d3c70b524134041133598160549 Mon Sep 17 00:00:00 2001 From: rehak Date: Mon, 31 Aug 2026 12:51:13 +0200 Subject: [PATCH 6/6] fix --- .../aheaditec/talsec/demoapp/MainActivity.kt | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/MainActivity.kt b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/MainActivity.kt index d022d89..781fd7c 100644 --- a/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/MainActivity.kt +++ b/FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/MainActivity.kt @@ -3,8 +3,10 @@ package com.aheaditec.talsec.demoapp import android.Manifest import android.content.pm.PackageManager import android.os.Bundle +import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme @@ -13,12 +15,19 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import com.aheaditec.talsec.demoapp.ui.theme.FreeRASPDemoAppTheme class MainActivity : ComponentActivity() { + private val locationPermissionLauncher = registerForActivityResult( + ActivityResultContracts.RequestMultiplePermissions() + ) { permissions -> + if (permissions.values.all { it }) { + Log.d("MainActivity", "Location permissions were granted") + } + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) requestFineLocationPermission() @@ -36,24 +45,20 @@ class MainActivity : ComponentActivity() { } private fun requestFineLocationPermission() { - if (ContextCompat.checkSelfPermission( - this, - FINE_LOCATION_PERMISSION - ) != PackageManager.PERMISSION_GRANTED - ) { - // Permission is not granted, request it - ActivityCompat.requestPermissions( - this, - arrayOf(COARSE_LOCATION_PERMISSION, FINE_LOCATION_PERMISSION), - 100 + val isFineLocationGranted = ContextCompat.checkSelfPermission( + this, + Manifest.permission.ACCESS_FINE_LOCATION + ) == PackageManager.PERMISSION_GRANTED + + if (!isFineLocationGranted) { + locationPermissionLauncher.launch( + arrayOf( + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION + ) ) } } - - private companion object { - private const val FINE_LOCATION_PERMISSION = Manifest.permission.ACCESS_FINE_LOCATION - private const val COARSE_LOCATION_PERMISSION = Manifest.permission.ACCESS_COARSE_LOCATION - } } @Composable