diff --git a/composeApp/src/androidMain/kotlin/moe/crx/overport/app/BitmapIconResizer.kt b/composeApp/src/androidMain/kotlin/moe/crx/overport/app/BitmapIconResizer.kt
index 17efac5..9baaece 100644
--- a/composeApp/src/androidMain/kotlin/moe/crx/overport/app/BitmapIconResizer.kt
+++ b/composeApp/src/androidMain/kotlin/moe/crx/overport/app/BitmapIconResizer.kt
@@ -9,9 +9,10 @@ object BitmapIconResizer : IconResizer {
override fun resize(bytes: ByteArray, width: Int, height: Int): ByteArray {
val baos = ByteArrayOutputStream()
- BitmapFactory.decodeByteArray(bytes, 0, bytes.size).apply {
- reconfigure(width, height, Bitmap.Config.ARGB_8888)
- }.compress(Bitmap.CompressFormat.PNG, 100, baos)
+ BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
+ .copy(Bitmap.Config.ARGB_8888, true).apply {
+ reconfigure(width, height, Bitmap.Config.ARGB_8888)
+ }.compress(Bitmap.CompressFormat.PNG, 100, baos)
return baos.toByteArray()
}
}
\ No newline at end of file
diff --git a/composeApp/src/commonMain/composeResources/values/strings.xml b/composeApp/src/commonMain/composeResources/values/strings.xml
index 379c0d2..1279ce2 100644
--- a/composeApp/src/commonMain/composeResources/values/strings.xml
+++ b/composeApp/src/commonMain/composeResources/values/strings.xml
@@ -9,9 +9,7 @@
Cleaning up…
Patcher
Select version
- You have no versions installed and overport release index is not available.
- Check your internet connection.
-
+ You have no versions installed and overport release index is not available. Check your internet connection.
experimental
latest
custom
@@ -28,7 +26,9 @@
Selected APK file cannot be parsed.
APK file has been successfully exported.
overport libraries cannot be downloaded.
- Unknown error has been occurred.
+ Unknown error has been occurred
+ Can't checkout version
+ Selected overport version is unavailable for download. Please, check your internet connection or choose another version.
Update available!
Unknown
Playable
@@ -36,7 +36,7 @@
Not working
Loading…
Not recommended, use at your own risk
- Copy ovrport libraries
+ Copy overport libraries
Copy OVRPlugin if VrApi is present
Fix minimal Android SDK
Generate ovrport config
diff --git a/composeApp/src/commonMain/kotlin/moe/crx/overport/app/composables/PatcherScreen.kt b/composeApp/src/commonMain/kotlin/moe/crx/overport/app/composables/PatcherScreen.kt
index 55e6913..46efca2 100644
--- a/composeApp/src/commonMain/kotlin/moe/crx/overport/app/composables/PatcherScreen.kt
+++ b/composeApp/src/commonMain/kotlin/moe/crx/overport/app/composables/PatcherScreen.kt
@@ -11,10 +11,9 @@ import androidx.compose.ui.Modifier
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.launch
import moe.crx.overport.app.model.MainViewModel
+import moe.crx.overport.utils.CantCheckoutException
import org.jetbrains.compose.resources.getString
-import overportapp.composeapp.generated.resources.Res
-import overportapp.composeapp.generated.resources.apk_file_exported
-import overportapp.composeapp.generated.resources.unknown_error
+import overportapp.composeapp.generated.resources.*
import java.io.InputStream
import java.io.OutputStream
@@ -101,6 +100,10 @@ fun PatcherScreen(
try {
viewModel.checkout(it, name)
viewModel.prepare(stream)
+ } catch (_: CantCheckoutException) {
+ viewModel.cancel()
+ errorMessage =
+ getString(Res.string.cant_checkout_title) to getString(Res.string.cant_checkout_message)
} catch (ex: Throwable) {
viewModel.cancel()
errorMessage = getString(Res.string.unknown_error) to ex.stackTraceToString()
diff --git a/composeApp/src/commonMain/kotlin/moe/crx/overport/app/composables/VersionManagerSheet.kt b/composeApp/src/commonMain/kotlin/moe/crx/overport/app/composables/VersionManagerSheet.kt
index f70cd24..8b43522 100644
--- a/composeApp/src/commonMain/kotlin/moe/crx/overport/app/composables/VersionManagerSheet.kt
+++ b/composeApp/src/commonMain/kotlin/moe/crx/overport/app/composables/VersionManagerSheet.kt
@@ -35,12 +35,11 @@ fun VersionManagerSheet(viewModel: MainViewModel, onSelected: (String) -> Unit,
}
ModalBottomSheet(
- modifier = Modifier.fillMaxHeight(),
onDismissRequest = { onCancel() },
) {
if (available == null) {
Row(
- modifier = Modifier.fillMaxSize(),
+ modifier = Modifier.fillMaxWidth().height(240.dp),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.Center
) {
diff --git a/gradle.properties b/gradle.properties
index fb0f324..492bfae 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,13 +1,10 @@
#Kotlin
kotlin.code.style=official
kotlin.daemon.jvmargs=-Xmx2048M
-
#Gradle
org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8
-
#Android
android.nonTransitiveRClass=true
android.useAndroidX=true
-
#Application
-appVersion=1.2.0
\ No newline at end of file
+appVersion=1.2.1
\ No newline at end of file
diff --git a/overportcli/build.gradle.kts b/overportcli/build.gradle.kts
index d00bc96..5718164 100644
--- a/overportcli/build.gradle.kts
+++ b/overportcli/build.gradle.kts
@@ -8,7 +8,7 @@ plugins {
}
group = "moe.crx"
-version = "1.2.0"
+version = "1.2.1"
dependencies {
implementation(libs.android.tools.build)
diff --git a/overportcli/src/main/java/moe/crx/overport/patching/PatcherContext.kt b/overportcli/src/main/java/moe/crx/overport/patching/PatcherContext.kt
index 686af08..7cb094c 100644
--- a/overportcli/src/main/java/moe/crx/overport/patching/PatcherContext.kt
+++ b/overportcli/src/main/java/moe/crx/overport/patching/PatcherContext.kt
@@ -6,6 +6,7 @@ import com.reandroid.archive.ArchiveFile
import com.reandroid.archive.FileInputSource
import com.reandroid.archive.io.ZipFileInput
import moe.crx.overport.config.OverportPatchedInfo
+import moe.crx.overport.utils.CantCheckoutException
import moe.crx.overport.utils.NameFormatter
import moe.crx.overport.versions.VersionManager
import org.jf.baksmali.Baksmali
@@ -51,14 +52,8 @@ class PatcherContext(
}
fun checkout() {
- var successful = VersionManager(patcherDirectory).checkout(overportVersion)
-
- if (successful == null) {
- successful = VersionManager(patcherDirectory).checkout("latest")
- }
-
- checkNotNull(successful)
- overportVersion = successful
+ overportVersion = VersionManager(patcherDirectory).checkout(overportVersion)
+ ?: throw CantCheckoutException("Can't checkout an overport release. Please, check your internet connection or choose another version.")
}
fun prepare(stream: InputStream) {
diff --git a/overportcli/src/main/java/moe/crx/overport/utils/Exceptions.kt b/overportcli/src/main/java/moe/crx/overport/utils/Exceptions.kt
new file mode 100644
index 0000000..14e3269
--- /dev/null
+++ b/overportcli/src/main/java/moe/crx/overport/utils/Exceptions.kt
@@ -0,0 +1,3 @@
+package moe.crx.overport.utils
+
+class CantCheckoutException(message: String) : IllegalStateException(message)
\ No newline at end of file
diff --git a/overportcli/src/main/java/moe/crx/overport/versions/VersionManager.kt b/overportcli/src/main/java/moe/crx/overport/versions/VersionManager.kt
index 44edaa0..1f7d57a 100644
--- a/overportcli/src/main/java/moe/crx/overport/versions/VersionManager.kt
+++ b/overportcli/src/main/java/moe/crx/overport/versions/VersionManager.kt
@@ -10,7 +10,7 @@ class VersionManager(val workingDirectory: File) {
companion object {
val json = Json { ignoreUnknownKeys = true }
- const val VERSION = "1.2.0"
+ const val VERSION = "1.2.1"
private fun isVersionLower(left: String, right: String): Boolean {
val (lY, lM, lD) = left.substringBeforeLast('-').split('.').map { it.toInt() }