diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a58f2cc..72c9d94 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -12,8 +12,8 @@ android { applicationId = "uk.kagurach.android101" minSdk = 28 targetSdk = 34 - versionCode = 173 - versionName = "1.7.3" + versionCode = 174 + versionName = "1.7.4" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -47,6 +47,9 @@ android { buildFeatures { viewBinding = true } + aaptOptions { + noCompress("tflite") + } } dependencies { @@ -95,4 +98,8 @@ dependencies { implementation(libs.okhttp3) implementation(libs.ffmpeg.min) + + implementation (libs.tensorflow.lite.task.vision) + // Import the GPU delegate plugin Library for GPU inference + implementation (libs.tensorflow.lite.gpu.delegate.plugin) } \ No newline at end of file diff --git a/app/src/main/java/uk/kagurach/android101/MainActivity.java b/app/src/main/java/uk/kagurach/android101/MainActivity.java index 539d922..9472281 100644 --- a/app/src/main/java/uk/kagurach/android101/MainActivity.java +++ b/app/src/main/java/uk/kagurach/android101/MainActivity.java @@ -47,9 +47,10 @@ public class MainActivity extends KaBaseActivity { super.onResume(); TextView tv = findViewById(R.id.tv_hello); - textViewAppendString(tv, "Starting Initialize"); + textViewAppendString(tv, "Starting Initialize\nChecking Permission..."); + if (Build.VERSION.SDK_INT >= 33) { - textViewAppendString(tv, "Find api > 33, checking permission"); + textViewAppendString(tv, "Find api > 33"); if (ContextCompat .checkSelfPermission (MainActivity.this, Manifest.permission.POST_NOTIFICATIONS) @@ -70,20 +71,22 @@ public class MainActivity extends KaBaseActivity { new String[]{Manifest.permission.READ_MEDIA_AUDIO}, 102); } - if (ContextCompat - .checkSelfPermission - (MainActivity.this, Manifest.permission.CAMERA) - != PackageManager.PERMISSION_GRANTED) { - textViewAppendString(tv, "Acquiring CAMERA"); - ActivityCompat.requestPermissions - (MainActivity.this, - new String[]{Manifest.permission.CAMERA}, - 102); - } - textViewAppendString(tv, "Check Finished"); - textViewAppendString(tv, "提示:常按有惊喜"); } - textViewAppendString(tv, "*************************\nfinished"); + + if (ContextCompat + .checkSelfPermission + (MainActivity.this, Manifest.permission.CAMERA) + != PackageManager.PERMISSION_GRANTED) { + textViewAppendString(tv, "Acquiring CAMERA"); + ActivityCompat.requestPermissions + (MainActivity.this, + new String[]{Manifest.permission.CAMERA}, + 103); + } + textViewAppendString(tv, "Check Finished"); + textViewAppendString(tv, "提示:常按有惊喜"); + + textViewAppendString(tv, "*************************\nFinished"); // Initialize Page Helper pageHelper = new PageHelper(this, null, MainActivity2.class, this); diff --git a/app/src/main/java/uk/kagurach/android101/Page7.kt b/app/src/main/java/uk/kagurach/android101/Page7.kt index 26c75b0..36bd330 100644 --- a/app/src/main/java/uk/kagurach/android101/Page7.kt +++ b/app/src/main/java/uk/kagurach/android101/Page7.kt @@ -3,23 +3,26 @@ package uk.kagurach.android101 import android.app.Activity import android.content.Context import android.content.Intent +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 import android.view.View import android.view.View.GONE import android.view.View.OnClickListener -import android.view.View.OnLongClickListener import android.view.View.VISIBLE import android.widget.Button import android.widget.EditText import android.widget.FrameLayout 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 @@ -40,11 +43,19 @@ import okhttp3.Request import okhttp3.RequestBody.Companion.asRequestBody import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response +import org.tensorflow.lite.support.image.TensorImage +import org.tensorflow.lite.task.core.BaseOptions +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.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") @@ -53,6 +64,7 @@ val DefaultID = stringPreferencesKey("default_id") class Page7 : KaBaseActivity() { lateinit var storage: TGStorage + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -64,23 +76,34 @@ class Page7 : KaBaseActivity() { } storage = TGStorage(this) - findViewById