From 844b45c7a7d96682c1906757e0bdbc0863d2437a Mon Sep 17 00:00:00 2001
From: An Bui <91354810+AnBui2004@users.noreply.github.com>
Date: Sun, 6 Apr 2025 20:30:15 +0700
Subject: [PATCH 1/2] Update CustomRomActivity.java
---
app/src/main/java/com/vectras/vm/CustomRomActivity.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/app/src/main/java/com/vectras/vm/CustomRomActivity.java b/app/src/main/java/com/vectras/vm/CustomRomActivity.java
index a2c610d..554f42c 100644
--- a/app/src/main/java/com/vectras/vm/CustomRomActivity.java
+++ b/app/src/main/java/com/vectras/vm/CustomRomActivity.java
@@ -575,6 +575,7 @@ public class CustomRomActivity extends AppCompatActivity {
previousName = current.itemName;
} else {
+ checkVMID();
if (getIntent().hasExtra("addromnow")) {
title.setText(getIntent().getStringExtra("romname"));
if (Objects.requireNonNull(getIntent().getStringExtra("romextra")).isEmpty()) {
@@ -685,7 +686,6 @@ public class CustomRomActivity extends AppCompatActivity {
protected void onActivityResult(int requestCode, int resultCode, Intent ReturnedIntent) {
super.onActivityResult(requestCode, resultCode, ReturnedIntent);
- checkVMID();
File romDir = new File(AppConfig.vmFolder + vmID);
romDir.mkdirs();
@@ -1089,7 +1089,6 @@ public class CustomRomActivity extends AppCompatActivity {
}
private void importCVBI(String _filepath, String _filename) {
- checkVMID();
LinearLayout custom = findViewById(R.id.custom);
ImageView ivIcon = findViewById(R.id.ivIcon);
if (_filepath.endsWith(".cvbi") || _filepath.endsWith(".cvbi.zip")) {
From 112682184657751b47bf628e9e5ace081193ffae Mon Sep 17 00:00:00 2001
From: An Bui <91354810+AnBui2004@users.noreply.github.com>
Date: Sun, 6 Apr 2025 21:18:51 +0700
Subject: [PATCH 2/2] Orange cake
---
app/build.gradle | 2 +-
.../java/com/vectras/vm/MainActivity.java | 27 +++++++++++++-----
app/src/main/res/drawable-xhdpi/update48.png | Bin 0 -> 3751 bytes
app/src/main/res/menu/home_bottom_app_bar.xml | 12 ++++++--
app/src/main/res/values/strings.xml | 2 +-
web/data/UpdateConfig.json | 8 +++---
6 files changed, 35 insertions(+), 16 deletions(-)
create mode 100644 app/src/main/res/drawable-xhdpi/update48.png
diff --git a/app/build.gradle b/app/build.gradle
index 70bb924..c8eb406 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -11,7 +11,7 @@ android {
minSdk minApi
targetSdk targetApi
versionCode 21
- versionName "v2.9.5-3dfx-neapolitanicecream"
+ versionName "v2.9.5-3dfx-orangecake"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
diff --git a/app/src/main/java/com/vectras/vm/MainActivity.java b/app/src/main/java/com/vectras/vm/MainActivity.java
index 74c1a9f..fa16d5c 100644
--- a/app/src/main/java/com/vectras/vm/MainActivity.java
+++ b/app/src/main/java/com/vectras/vm/MainActivity.java
@@ -141,6 +141,7 @@ public class MainActivity extends AppCompatActivity {
private boolean doneonstart = false;
public static boolean isActivate = false;
public boolean skipIDEwithARM64DialogInStartVM = false;
+ BottomAppBar bottomAppBar;
@Override
protected void onCreate(Bundle bundle) {
@@ -155,9 +156,6 @@ public class MainActivity extends AppCompatActivity {
NotificationManager notificationManager = (NotificationManager) activity.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancelAll();
- if (MainSettingsManager.getPromptUpdateVersion(activity))
- updateApp(false);
-
new LibraryChecker(activity).checkMissingLibraries(activity);
romsLayout = findViewById(R.id.romsLayout);
@@ -705,6 +703,9 @@ public class MainActivity extends AppCompatActivity {
setupBottomAppBar();
+ if (MainSettingsManager.getPromptUpdateVersion(activity))
+ updateApp(false);
+
String command = "qemu-system-x86_64 --version";
new Terminal(activity).extractQemuVersion(command, false, activity, (output, errors) -> {
if (errors.isEmpty()) {
@@ -775,6 +776,7 @@ public class MainActivity extends AppCompatActivity {
versionNameonUpdate = obj.getString("versionNameBeta");
if (versionCode < obj.getInt("versionCode") || !versionNameonUpdate.equals(versionName)) {
+ if (showDialog) {
AlertDialog.Builder alert = new AlertDialog.Builder(activity, R.style.MainDialogTheme);
alert.setTitle("Install the latest version")
.setMessage(Html.fromHtml(obj.getString("MessageBeta") + "
Update size:
" + obj.getString("sizeBeta")))
@@ -788,12 +790,16 @@ public class MainActivity extends AppCompatActivity {
}
}
}).show();
-
+ } else {
+ View _update = findViewById(R.id.update);
+ _update.setVisibility(View.VISIBLE);
+ }
}
} else {
versionNameonUpdate = obj.getString("versionName");
if (versionCode < obj.getInt("versionCode") || !versionNameonUpdate.contains(versionName)) {
+ if (showDialog) {
AlertDialog.Builder alert = new AlertDialog.Builder(activity, R.style.MainDialogTheme);
alert.setTitle("Install the latest version")
.setMessage(Html.fromHtml(obj.getString("Message") + "
Update size:
" + obj.getString("size")))
@@ -807,7 +813,10 @@ public class MainActivity extends AppCompatActivity {
}
}
}).show();
-
+ } else {
+ View _update = findViewById(R.id.update);
+ _update.setVisibility(View.VISIBLE);
+ }
}
}
} else if (result.contains("Error on getting data") && showDialog) {
@@ -1496,11 +1505,13 @@ public class MainActivity extends AppCompatActivity {
}
private void setupBottomAppBar() {
- BottomAppBar bottomAppBar = findViewById(R.id.bottomAppBar);
+ bottomAppBar = findViewById(R.id.bottomAppBar);
bottomAppBar.setOnMenuItemClickListener(new BottomAppBar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
- if (item.getItemId() == R.id.shutdown) {
+ if (item.getItemId() == R.id.update) {
+ updateApp(true);
+ } else if (item.getItemId() == R.id.shutdown) {
alertDialog = new AlertDialog.Builder(activity, R.style.MainDialogTheme).create();
alertDialog.setTitle(getResources().getString(R.string.do_you_want_to_kill_all_qemu_processes));
alertDialog.setMessage(getResources().getString(R.string.all_running_vms_will_be_forcibly_shut_down));
@@ -1528,6 +1539,8 @@ public class MainActivity extends AppCompatActivity {
return false;
}
});
+ View _update = findViewById(R.id.update);
+ _update.setVisibility(View.GONE);
}
}
diff --git a/app/src/main/res/drawable-xhdpi/update48.png b/app/src/main/res/drawable-xhdpi/update48.png
new file mode 100644
index 0000000000000000000000000000000000000000..9bfc99aa3b4a71b0ca0b970eeb2742f5b026270f
GIT binary patch
literal 3751
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
literal 0
HcmV?d00001
diff --git a/app/src/main/res/menu/home_bottom_app_bar.xml b/app/src/main/res/menu/home_bottom_app_bar.xml
index 01a7097..e951ef4 100644
--- a/app/src/main/res/menu/home_bottom_app_bar.xml
+++ b/app/src/main/res/menu/home_bottom_app_bar.xml
@@ -1,22 +1,28 @@
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9aa3842..6a2f61b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,7 +3,7 @@
Vectras VM
- v2.9.5 (3dfx - Neapolitan ice cream)
+ v2.9.5 (3dfx - Orange cake)
Stable
Home
Logger
diff --git a/web/data/UpdateConfig.json b/web/data/UpdateConfig.json
index 6b8f824..52cf0cf 100644
--- a/web/data/UpdateConfig.json
+++ b/web/data/UpdateConfig.json
@@ -1,15 +1,15 @@
{
"versionCode":"21",
- "versionName":"v2.9.5-3dfx,v2.9.5-3dfx-almondcake,v2.9.5-3dfx-bread,v2.9.5-3dfx-churro,v2.9.5-3dfx-doughnut,v2.9.5-3dfx-empanada,v2.9.5-3dfx-flan,v2.9.5-3dfx-gugelhupf,v2.9.5-3dfx-hamentaschen,v2.9.5-3dfx-italianice,v2.9.5-3dfx-ladyfingers,v2.9.5-3dfx-madeleine",
+ "versionName":"v2.9.5-3dfx,v2.9.5-3dfx-almondcake,v2.9.5-3dfx-bread,v2.9.5-3dfx-churro,v2.9.5-3dfx-doughnut,v2.9.5-3dfx-empanada,v2.9.5-3dfx-flan,v2.9.5-3dfx-gugelhupf,v2.9.5-3dfx-hamentaschen,v2.9.5-3dfx-italianice,v2.9.5-3dfx-ladyfingers,v2.9.5-3dfx-madeleine,v2.9.5-3dfx-neapolitanicecream,v2.9.5-3dfx-orangecake",
"size": "46 MB",
"url": "https://github.com/xoureldeen/Vectras-VM-Android/releases/v2.9.5",
"Message": "v2.9.5-3dfx
- Bring back 3dfx support.
- Enhance app execution.
- Added some linux programs in x11 display.
- Added alpine linux (x11).
- Russian language by @OFGING
New updates are live!",
"cancellable": true,
"versionCodeBeta":"21",
- "versionNameBeta":"v2.9.5-3dfx-neapolitanicecream",
- "versionNameBetas":"v2.9.5-3dfx-madeleine,v2.9.5-3dfx-neapolitanicecream",
+ "versionNameBeta":"v2.9.5-3dfx-orangecake",
+ "versionNameBetas":"v2.9.5-3dfx-madeleine,v2.9.5-3dfx-neapolitanicecream,v2.9.5-3dfx-orangecake",
"sizeBeta": "48 MB",
"urlBeta": "https://github.com/AnBui2004/Vectras-VM-Emu-Android/releases",
- "MessageBeta": "Neapolitan ice cream
Bugs fixed.",
+ "MessageBeta": "Orange cake
Bugs fixed.",
"cancellableBeta": true
}