diff --git a/.idea/other.xml b/.idea/other.xml
deleted file mode 100644
index 0d3a1fb..0000000
--- a/.idea/other.xml
+++ /dev/null
@@ -1,263 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 72c9d94..0bd7cba 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -16,6 +16,14 @@ android {
versionName = "1.7.4"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ vectorDrawables {
+ useSupportLibrary = true
+ }
+ externalNativeBuild {
+ cmake {
+ cppFlags += ""
+ }
+ }
}
buildTypes {
@@ -37,6 +45,7 @@ android {
buildFeatures {
compose = true
viewBinding = true
+ aidl = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.1"
@@ -50,6 +59,18 @@ android {
aaptOptions {
noCompress("tflite")
}
+ splits {
+ abi {
+ isEnable = true
+ reset()
+ include("arm64-v8a","x86_64")
+ }
+ }
+ packaging {
+ resources {
+ excludes += "/META-INF/{AL2.0,LGPL2.1}"
+ }
+ }
}
dependencies {
@@ -82,6 +103,7 @@ dependencies {
implementation(libs.androidx.camera.view)
implementation(libs.androidx.camera.lifecycle)
implementation(libs.androidx.camera.camera2)
+ implementation(libs.androidx.lifecycle.runtime.compose.android)
testImplementation(libs.junit)
@@ -93,6 +115,8 @@ dependencies {
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
+ debugImplementation(libs.leakcanary.android)
+
implementation(libs.moshi)
implementation(libs.okhttp3)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a636c6e..a5c3fec 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -26,6 +26,11 @@
android:supportsRtl="false"
android:theme="@style/Theme.Android101"
android:usesCleartextTraffic="true">
+
diff --git a/app/src/main/aidl/uk/kagurach/kmb/IKaguraMessageBus.aidl b/app/src/main/aidl/uk/kagurach/kmb/IKaguraMessageBus.aidl
new file mode 100644
index 0000000..0f21c9c
--- /dev/null
+++ b/app/src/main/aidl/uk/kagurach/kmb/IKaguraMessageBus.aidl
@@ -0,0 +1,8 @@
+package uk.kagurach.kmb;
+
+import uk.kagurach.kmb.KMessage;
+
+interface IKaguraMessageBus {
+ List getMessageList();
+ boolean sendMessage(in Person person);
+}
\ No newline at end of file
diff --git a/app/src/main/aidl/uk/kagurach/kmb/KMessage.aidl b/app/src/main/aidl/uk/kagurach/kmb/KMessage.aidl
new file mode 100644
index 0000000..ee32161
--- /dev/null
+++ b/app/src/main/aidl/uk/kagurach/kmb/KMessage.aidl
@@ -0,0 +1,3 @@
+package uk.kagurach.kmb;
+
+parcelable KMessage;
\ No newline at end of file
diff --git a/app/src/main/java/uk/kagurach/android101/Page7.kt b/app/src/main/java/uk/kagurach/android101/Page7.kt
index 36bd330..4604206 100644
--- a/app/src/main/java/uk/kagurach/android101/Page7.kt
+++ b/app/src/main/java/uk/kagurach/android101/Page7.kt
@@ -7,7 +7,6 @@ import android.graphics.BitmapFactory
import android.media.AudioAttributes
import android.media.MediaPlayer
import android.net.Uri
-import android.os.Build
import android.os.Bundle
import android.provider.MediaStore
import android.util.Log
@@ -22,17 +21,20 @@ import android.widget.ImageButton
import android.widget.ImageView
import android.widget.TextView
import androidx.activity.enableEdgeToEdge
-import androidx.annotation.RequiresApi
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
+import androidx.lifecycle.lifecycleScope
import com.arthenica.ffmpegkit.FFmpegKit
import com.arthenica.ffmpegkit.ReturnCode
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import okhttp3.Call
import okhttp3.Callback
@@ -49,13 +51,11 @@ import org.tensorflow.lite.task.vision.classifier.Classifications
import org.tensorflow.lite.task.vision.classifier.ImageClassifier
import org.tensorflow.lite.task.vision.classifier.ImageClassifier.ImageClassifierOptions
import uk.kagurach.android101.additionalActivity.CameraXActivity
+import uk.kagurach.android101.helper.PageHelper
import uk.kagurach.android101.helper.ToastHelper
import java.io.File
-import java.io.FileInputStream
import java.io.IOException
import java.io.InputStream
-import java.nio.ByteBuffer
-import java.nio.channels.FileChannel
val Context.tgDatastore by preferencesDataStore(name = "tg_settings")
@@ -64,6 +64,7 @@ val DefaultID = stringPreferencesKey("default_id")
class Page7 : KaBaseActivity() {
lateinit var storage: TGStorage
+ lateinit var pageHelper: PageHelper
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -75,6 +76,7 @@ class Page7 : KaBaseActivity() {
insets
}
storage = TGStorage(this)
+ pageHelper = PageHelper(this, Page6::class.java, MainActivity::class.java)
findViewById(R.id.Page7BotID).setText(runBlocking { storage.getDefaultAPI() })
findViewById(R.id.Page7ChatID).setText(runBlocking { storage.getDefaultID() })
@@ -104,6 +106,10 @@ class Page7 : KaBaseActivity() {
findViewById(R.id.P7CloseResultButton).setOnClickListener(FrameButtonHandler())
findViewById(R.id.P7CloseAPIButton).setOnClickListener(FrameButtonHandler())
findViewById(R.id.P7CloseShowPicButton).setOnClickListener(FrameButtonHandler())
+
+ // PageHelper
+ findViewById