From bdd2bc864532715fedec10dd24300908f6492eab Mon Sep 17 00:00:00 2001 From: tom5079 Date: Sat, 18 Dec 2021 00:48:49 +0900 Subject: [PATCH] Share image with long click --- app/build.gradle.kts | 2 +- app/src/main/AndroidManifest.xml | 2 +- app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt | 9 +++++++++ app/src/main/java/xyz/quaver/pupil/util/NetworkCache.kt | 3 ++- app/src/main/res/xml/file_paths.xml | 3 +-- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a6ca5e5d..e7a4600d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -20,7 +20,7 @@ android { minSdk = 21 targetSdk = 31 versionCode = 600 - versionName = "6.0.0-alpha2" + versionName = "6.0.0-alpha1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c101d84a..3e36b72d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -27,7 +27,7 @@ tools:ignore="UnusedAttribute"> diff --git a/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt b/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt index 887bd48e..9222ea4c 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt @@ -18,6 +18,7 @@ package xyz.quaver.pupil.ui +import android.content.ClipData import android.content.Intent import android.net.Uri import android.os.Bundle @@ -47,6 +48,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp +import androidx.core.content.FileProvider import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsControllerCompat import coil.annotation.ExperimentalCoilApi @@ -221,6 +223,13 @@ class ReaderActivity : ComponentActivity(), DIAware { combinedClickable( onLongClick = { haptic.performHapticFeedback(HapticFeedbackType.LongPress) + + val uri = FileProvider.getUriForFile(this@ReaderActivity, "xyz.quaver.pupil.fileprovider", (imageSource as FileXImageSource).file) + startActivity(Intent.createChooser(Intent(Intent.ACTION_SEND).apply { + type = "image/*" + putExtra(Intent.EXTRA_STREAM, uri) + addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + }, "Share image")) } ) { model.isFullscreen = true diff --git a/app/src/main/java/xyz/quaver/pupil/util/NetworkCache.kt b/app/src/main/java/xyz/quaver/pupil/util/NetworkCache.kt index 7c15bc0d..89e0ba7e 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/NetworkCache.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/NetworkCache.kt @@ -54,7 +54,7 @@ class NetworkCache(context: Context) : DIAware { private val client: HttpClient by instance() private val networkScope = CoroutineScope(Executors.newFixedThreadPool(4).asCoroutineDispatcher()) - private val cacheDir = context.cacheDir + private val cacheDir = File(context.cacheDir, "networkcache") private val channel = ConcurrentHashMap>() private val requests = ConcurrentHashMap() @@ -103,6 +103,7 @@ class NetworkCache(context: Context) : DIAware { else requests[url] = networkScope.launch { kotlin.runCatching { + cacheDir.mkdirs() file.createNewFile() client.request(request).execute { httpResponse -> diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml index 25ccb28c..98eaeec2 100644 --- a/app/src/main/res/xml/file_paths.xml +++ b/app/src/main/res/xml/file_paths.xml @@ -18,6 +18,5 @@ --> - - + \ No newline at end of file