diff --git a/app/build.gradle b/app/build.gradle index 8aa4f59..6865c42 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { applicationId "com.vectras.vm" minSdk minApi targetSdk targetApi - versionCode 140 - versionName "4.3.6" + versionCode 141 + versionName "4.3.7" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true diff --git a/app/src/main/java/com/vectras/vm/VMManager.java b/app/src/main/java/com/vectras/vm/VMManager.java index 61425b0..10a5681 100644 --- a/app/src/main/java/com/vectras/vm/VMManager.java +++ b/app/src/main/java/com/vectras/vm/VMManager.java @@ -865,7 +865,7 @@ public class VMManager { } public static boolean isHaveADisk(String env) { - return env.contains("-drive") || env.contains("-hda") || env.contains("-hdb") || env.contains("-cdrom") || env.contains("-fda") || env.contains("-fdb"); + return env.contains("-drive ") || env.contains("-hda ") || env.contains("-hdb ") || env.contains("-cdrom ") || env.contains("-fda ") || env.contains("-fdb "); } public static void setIconWithName(ImageView imageview, String name) { diff --git a/app/src/main/java/com/vectras/vm/creator/VMCreatorActivity.java b/app/src/main/java/com/vectras/vm/creator/VMCreatorActivity.java index b033a87..d8eee8d 100644 --- a/app/src/main/java/com/vectras/vm/creator/VMCreatorActivity.java +++ b/app/src/main/java/com/vectras/vm/creator/VMCreatorActivity.java @@ -548,14 +548,11 @@ public class VMCreatorActivity extends AppCompatActivity { _contentDialog = getResources().getString(R.string.qemu_params_is_empty); } - if (isAllDriveEmpty()) { - if (!current.itemExtra.isEmpty()) { - if (!_contentDialog.isEmpty()) { - _contentDialog += "\n\n"; - } - _contentDialog += getResources().getString(R.string.you_have_not_added_any_storage_devices); + if (isAllDriveEmpty() && !VMManager.isHaveADisk(current.itemExtra)) { + if (!_contentDialog.isEmpty()) { + _contentDialog += "\n\n"; } - + _contentDialog += getResources().getString(R.string.you_have_not_added_any_storage_devices); } if (_contentDialog.isEmpty()) { diff --git a/app/src/main/java/com/vectras/vm/creator/editor/AdvancedConfigsDialog.java b/app/src/main/java/com/vectras/vm/creator/editor/AdvancedConfigsDialog.java index 706e243..fec42cd 100644 --- a/app/src/main/java/com/vectras/vm/creator/editor/AdvancedConfigsDialog.java +++ b/app/src/main/java/com/vectras/vm/creator/editor/AdvancedConfigsDialog.java @@ -44,7 +44,7 @@ public class AdvancedConfigsDialog extends BottomSheetDialogFragment { // This can happen after the app is freed from memory and then reopened. if (configs == null) { isSave = false; - DialogUtils.oopsDialog(requireActivity(), getString(R.string.something_went_wrong)); + if (savedInstanceState == null) DialogUtils.oopsDialog(requireActivity(), getString(R.string.something_went_wrong)); dismiss(); return EditorUtils.getDummyDialog(requireActivity()); } diff --git a/app/src/main/java/com/vectras/vm/creator/editor/BoardConfigsDialog.java b/app/src/main/java/com/vectras/vm/creator/editor/BoardConfigsDialog.java index a44e894..00d7dce 100644 --- a/app/src/main/java/com/vectras/vm/creator/editor/BoardConfigsDialog.java +++ b/app/src/main/java/com/vectras/vm/creator/editor/BoardConfigsDialog.java @@ -44,7 +44,7 @@ public class BoardConfigsDialog extends BottomSheetDialogFragment { // This can happen after the app is freed from memory and then reopened. if (configs == null) { isSave = false; - DialogUtils.oopsDialog(requireActivity(), getString(R.string.something_went_wrong)); + if (savedInstanceState == null) DialogUtils.oopsDialog(requireActivity(), getString(R.string.something_went_wrong)); dismiss(); return EditorUtils.getDummyDialog(requireActivity()); } diff --git a/app/src/main/java/com/vectras/vm/creator/editor/FirmwareConfigsDialog.java b/app/src/main/java/com/vectras/vm/creator/editor/FirmwareConfigsDialog.java index 46b4a4d..95bbb4f 100644 --- a/app/src/main/java/com/vectras/vm/creator/editor/FirmwareConfigsDialog.java +++ b/app/src/main/java/com/vectras/vm/creator/editor/FirmwareConfigsDialog.java @@ -44,7 +44,7 @@ public class FirmwareConfigsDialog extends BottomSheetDialogFragment { // This can happen after the app is freed from memory and then reopened. if (configs == null) { isSave = false; - DialogUtils.oopsDialog(requireActivity(), getString(R.string.something_went_wrong)); + if (savedInstanceState == null) DialogUtils.oopsDialog(requireActivity(), getString(R.string.something_went_wrong)); dismiss(); return EditorUtils.getDummyDialog(requireActivity()); } diff --git a/app/src/main/java/com/vectras/vm/creator/editor/NetworkConfigsDialog.java b/app/src/main/java/com/vectras/vm/creator/editor/NetworkConfigsDialog.java index d612538..6df8915 100644 --- a/app/src/main/java/com/vectras/vm/creator/editor/NetworkConfigsDialog.java +++ b/app/src/main/java/com/vectras/vm/creator/editor/NetworkConfigsDialog.java @@ -41,7 +41,7 @@ public class NetworkConfigsDialog extends BottomSheetDialogFragment { // This can happen after the app is freed from memory and then reopened. if (configs == null) { isSave = false; - DialogUtils.oopsDialog(requireActivity(), getString(R.string.something_went_wrong)); + if (savedInstanceState == null) DialogUtils.oopsDialog(requireActivity(), getString(R.string.something_went_wrong)); dismiss(); return EditorUtils.getDummyDialog(requireActivity()); } diff --git a/app/src/main/java/com/vectras/vm/creator/editor/StorageConfigsDialog.java b/app/src/main/java/com/vectras/vm/creator/editor/StorageConfigsDialog.java index 9a27a5e..a0be3cc 100644 --- a/app/src/main/java/com/vectras/vm/creator/editor/StorageConfigsDialog.java +++ b/app/src/main/java/com/vectras/vm/creator/editor/StorageConfigsDialog.java @@ -64,7 +64,7 @@ public class StorageConfigsDialog extends BottomSheetDialogFragment { // This can happen after the app is freed from memory and then reopened. if (configs == null) { isSave = false; - DialogUtils.oopsDialog(requireActivity(), getString(R.string.something_went_wrong)); + if (savedInstanceState == null) DialogUtils.oopsDialog(requireActivity(), getString(R.string.something_went_wrong)); dismiss(); return EditorUtils.getDummyDialog(requireActivity()); } @@ -259,7 +259,7 @@ public class StorageConfigsDialog extends BottomSheetDialogFragment { setDrive(PENDING_SELECT_FILE_MODE, path); }); } catch (Exception e) { - if (!isAdded()) requireActivity().runOnUiThread(() -> DialogUtils.oneDialog(requireActivity(), + if (isAdded()) requireActivity().runOnUiThread(() -> DialogUtils.oneDialog(requireActivity(), getString(R.string.oops), getString(R.string.unable_to_copy_hard_drive_file_content), getString(R.string.ok), @@ -269,7 +269,7 @@ public class StorageConfigsDialog extends BottomSheetDialogFragment { null, null)); } finally { - if (!isAdded()) requireActivity().runOnUiThread(() -> utils.dissmissProgressDialog()); + if (isAdded()) requireActivity().runOnUiThread(() -> utils.dissmissProgressDialog()); } }); } else { diff --git a/app/src/main/java/com/vectras/vm/manager/VNCKeyManager.java b/app/src/main/java/com/vectras/vm/manager/VNCKeyManager.java index 2fa2b97..6902c70 100644 --- a/app/src/main/java/com/vectras/vm/manager/VNCKeyManager.java +++ b/app/src/main/java/com/vectras/vm/manager/VNCKeyManager.java @@ -51,7 +51,7 @@ public class VNCKeyManager { holdMarksCollector = 0; - if (vncCanvas == null || !vncCanvas.isAttachedToWindow()) return; + if (vncCanvas == null || !vncCanvas.isAttachedToWindow() || vncCanvas.rfb == null) return; vncCanvas.metaStateCollector = 0; diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6700e3a..ef01d4b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ firebaseCrashlyticsGradle = "3.0.7" firebaseMessaging = "25.1.1" glide = "5.0.9" googleServices = "4.5.0" -gradle = "9.2.1" +gradle = "9.3.0" gson = "2.14.0" guava = "33.6.0-jre" junit = "4.13.2" diff --git a/web/data/UpdateConfig.json b/web/data/UpdateConfig.json index 6c5d688..068f068 100644 --- a/web/data/UpdateConfig.json +++ b/web/data/UpdateConfig.json @@ -5,11 +5,11 @@ "url": "https://github.com/xoureldeen/Vectras-VM-Android/releases", "Message": "