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 @@ + + app:showAsAction="always"/> + app:showAsAction="always"/> + app:showAsAction="always"/> \ 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 }