diff --git a/.gitignore b/.gitignore index e5cbb64..688639d 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,7 @@ captures/ *.aab *.apk output-metadata.json - +release/ # IntelliJ *.iml .idea/ diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d9d08e4..6d1409a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -26,6 +26,7 @@ android { getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) + signingConfig = signingConfigs.getByName("debug") } } compileOptions { @@ -67,6 +68,7 @@ dependencies { implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) + implementation(libs.androidx.media3.datasource.okhttp) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) diff --git a/app/src/main/java/com/acitelight/aether/helper/MemoryVideo.kt b/app/src/main/java/com/acitelight/aether/helper/MemoryVideo.kt deleted file mode 100644 index c92f2ef..0000000 --- a/app/src/main/java/com/acitelight/aether/helper/MemoryVideo.kt +++ /dev/null @@ -1,66 +0,0 @@ -import android.content.Context -import android.view.ViewGroup -import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.viewinterop.AndroidView -import androidx.media3.common.MediaItem -import androidx.media3.common.util.UnstableApi -import androidx.media3.datasource.ByteArrayDataSource -import androidx.media3.datasource.DataSource -import androidx.media3.exoplayer.ExoPlayer -import androidx.media3.exoplayer.source.ProgressiveMediaSource -import androidx.media3.ui.PlayerView - - -@androidx.annotation.OptIn(UnstableApi::class) -@Composable -private fun InMemoryVideoPlayer( - modifier: Modifier = Modifier, - videoData: ByteArray -) { - val context = LocalContext.current - - val exoPlayer = remember(context, videoData) { - createExoPlayer(context, videoData) - } - - DisposableEffect(Unit) { - onDispose { - exoPlayer.release() - } - } - - AndroidView( - modifier = modifier, - factory = { - PlayerView(it).apply { - player = exoPlayer - layoutParams = ViewGroup.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT - ) - } - } - ) -} - -@androidx.annotation.OptIn(UnstableApi::class) -private fun createExoPlayer(context: Context, videoData: ByteArray): ExoPlayer { - val byteArrayDataSource = ByteArrayDataSource(videoData) - - val factory = DataSource.Factory { - byteArrayDataSource - } - - val mediaSource = ProgressiveMediaSource.Factory(factory) - .createMediaSource(MediaItem.fromUri("data://local/video.mp4")) - - return ExoPlayer.Builder(context).build().apply { - setMediaSource(mediaSource) - prepare() - playWhenReady = false - } -} \ No newline at end of file diff --git a/app/src/main/java/com/acitelight/aether/service/ApiClient.kt b/app/src/main/java/com/acitelight/aether/service/ApiClient.kt index 1902525..9d33cde 100644 --- a/app/src/main/java/com/acitelight/aether/service/ApiClient.kt +++ b/app/src/main/java/com/acitelight/aether/service/ApiClient.kt @@ -69,6 +69,11 @@ object ApiClient { } } + fun createOkHttp(): OkHttpClient + { + return createOkHttpClientWithDynamicCert(loadCertificateFromString(cert)) + } + private fun createRetrofit(): Retrofit { val okHttpClient = createOkHttpClientWithDynamicCert(loadCertificateFromString(cert)) diff --git a/app/src/main/java/com/acitelight/aether/service/MediaManager.kt b/app/src/main/java/com/acitelight/aether/service/MediaManager.kt index a5b6c3a..e4532f9 100644 --- a/app/src/main/java/com/acitelight/aether/service/MediaManager.kt +++ b/app/src/main/java/com/acitelight/aether/service/MediaManager.kt @@ -23,16 +23,17 @@ object MediaManager } } - suspend fun listVideos(klass: String): List