- Firebase Crashlytics has been added back.
- Notifications have been improved.
- Viewing in the An Bui app has been added to supported content in the Rom store.
This commit is contained in:
An Bui 2026-03-29 00:02:21 +07:00
parent 7052eb861e
commit 4c153ed129
10 changed files with 86 additions and 8 deletions

View file

@ -12,8 +12,8 @@ android {
applicationId "com.vectras.vm"
minSdk minApi
targetSdk targetApi
versionCode 94
versionName "3.9.0"
versionCode 95
versionName "3.9.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
@ -88,6 +88,7 @@ dependencies {
implementation libs.androidx.viewpager
implementation platform(libs.firebase.bom)
implementation libs.firebase.analytics
implementation libs.firebase.crashlytics
implementation libs.firebase.messaging
implementation libs.guava
implementation libs.gson

View file

@ -25,8 +25,10 @@ import com.vectras.vm.databinding.ActivityRomInfoBinding;
import com.vectras.vm.utils.DialogUtils;
import com.vectras.vm.utils.FileUtils;
import com.vectras.vm.utils.ImageUtils;
import com.vectras.vm.utils.PackageUtils;
import java.io.File;
import java.net.URISyntaxException;
import java.util.Objects;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@ -35,6 +37,7 @@ public class RomInfo extends AppCompatActivity {
ActivityRomInfoBinding binding;
public static boolean isFinishNow = false;
private String contentID = "";
private boolean isAnBuiContent;
private ExecutorService executor = Executors.newSingleThreadExecutor();
private Interaction interaction;
@ -195,6 +198,7 @@ public class RomInfo extends AppCompatActivity {
if (getIntent().hasExtra("id") &&
!Objects.requireNonNull(getIntent().getStringExtra("id")).isEmpty()) {
contentID = getIntent().getStringExtra("id");
isAnBuiContent = true;
} else if (getIntent().hasExtra("vecid") &&
!Objects.requireNonNull(getIntent().getStringExtra("vecid")).isEmpty()) {
@ -311,6 +315,19 @@ public class RomInfo extends AppCompatActivity {
binding.btnLike.setOnClickListener(v -> sendLikeUpdate());
if (isAnBuiContent && PackageUtils.isInstalled("com.anbui.app", this)) {
binding.viewinanbuiapp.setVisibility(View.VISIBLE);
binding.viewinanbuiapp.setOnClickListener(v -> {
Intent intent;
try {
intent = Intent.parseUri("intent://content/" + contentID + "#Intent;scheme=anbui;package=com.anbui.app;S.browser_fallback_url=https%3A%2F%2Fanbui.ovh%2Fapps%2Fgetanbuiapp.html;end", Intent.URI_INTENT_SCHEME);
} catch (URISyntaxException e) {
return;
}
startActivity(intent);
});
}
if (!contentID.isEmpty()) {
interaction = new Interaction(this, contentID);

View file

@ -15,6 +15,7 @@ import androidx.preference.PreferenceManager;
import com.google.android.material.color.DynamicColors;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.google.firebase.crashlytics.FirebaseCrashlytics;
import com.vectras.qemu.Config;
import com.vectras.qemu.MainSettingsManager;
import com.vectras.vm.utils.FileUtils;
@ -96,7 +97,8 @@ public class VectrasApp extends Application {
}
});
FirebaseAnalytics.getInstance(this);
FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.APP_OPEN, null);
FirebaseCrashlytics.getInstance().log("App started: " + AppConfig.vectrasVersion);
}
private void setupTheme() {

View file

@ -8,6 +8,7 @@ import com.vectras.vm.R;
import com.vectras.vm.utils.NotificationUtils;
import java.util.Map;
import java.util.Objects;
public class FCMService
extends FirebaseMessagingService {
@ -15,6 +16,12 @@ public class FCMService
public void onMessageReceived(@NonNull RemoteMessage message) {
Map<String, String> data = message.getData();
if (data.get("targetVersions") != null
&& !Objects.requireNonNull(data.get("targetVersions")).isEmpty()
&& !Objects.requireNonNull(data.get("targetVersions")).contains(getString(R.string.app_version))) {
return;
}
NotificationUtils.pushNow(this,
1,
NotificationUtils.generalChannelId,

View file

@ -307,6 +307,50 @@
android:text="@string/import_settings" />
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/viewinanbuiapp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/object_shape_single_high"
android:padding="16dp"
android:layout_margin="16dp"
android:visibility="gone"
tools:visibility="visible">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/viewinanbuiapp_arrow"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/view_in_an_bui_app"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/view_in_an_bui_app_note"
android:textColor="?android:attr/textColorSecondary"
android:textSize="14sp" />
</LinearLayout>
<ImageView
android:id="@+id/viewinanbuiapp_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/keyboard_arrow_right_24px"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View file

@ -522,6 +522,8 @@
<string name="this_folder_cannot_be_opened">Không thể mở thư mục này.</string>
<string name="new_notification">Thông báo mới</string>
<string name="tap_to_view">Chạm để xem.</string>
<string name="view_in_an_bui_app">Xem trong ứng dụng An Bùi</string>
<string name="view_in_an_bui_app_note">Bạn có thể xem và lấy nó ở đây.</string>
<!--======================TERMUX STRINGS====================-->

View file

@ -531,6 +531,8 @@
<string name="this_folder_cannot_be_opened">This folder cannot be opened.</string>
<string name="new_notification">New notification</string>
<string name="tap_to_view">Tap to view.</string>
<string name="view_in_an_bui_app">View in the An Bui app</string>
<string name="view_in_an_bui_app_note">You can view and get it here.</string>
<!--======================TERMUX STRINGS====================-->

View file

@ -56,6 +56,7 @@ firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.r
firebase-crashlytics-gradle = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlyticsGradle" }
firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging", version.ref = "firebaseMessaging" }
firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics" }
firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics" }
glide = { group = "com.github.bumptech.glide", name = "glide", version.ref = "glide" }
google-services = { group = "com.google.gms", name = "google-services", version.ref = "googleServices" }
gradle = { group = "com.android.tools.build", name = "gradle", version.ref = "gradle" }

View file

@ -11,7 +11,9 @@ async function sendNotification() {
title: "Vectras VM",
message: "Welcome!",
image: "https://github.com/xoureldeen/Vectras-VM-Android/blob/master/resources/vectrasvm.png",
url : "https://github.com/xoureldeen/Vectras-VM-Android"
url : "https://github.com/xoureldeen/Vectras-VM-Android",
//targetVersions: "3.9.0,3.9.1"
targetVersions: ""
},
topic: "vectrasvmandroidgithub"
});

View file

@ -5,11 +5,11 @@
"url": "https://github.com/xoureldeen/Vectras-VM-Android/releases",
"Message": "<h2>3.9.0</h2>\nBugs fixed.",
"cancellable": true,
"versionCodeBeta":"94",
"versionNameBeta":"3.9.0",
"versionNameBetas":"3.0.0,3.1.0,3.2.1,3.2.2,3.2.3,3.2.4,3.2.5,3.2.6,3.2.7,3.2.8,3.2.9,3.2.10,3.3.1,3.3.2,3.3.3,3.3.4,3.3.5,3.3.6,3.3.7,3.3.8,3.3.9,3.4.1,3.4.2,3.4.3,3.4.4,3.4.5,3.4.6,3.4.7,3.4.8,3.4.9,3.5.1,3.5.2,3.5.3,3.5.4,3.5.5,3.5.6,3.5.7,3.5.8,3.5.9,3.6.1,3.6.2,3.6.3,3.6.4,3.6.5,3.6.6,3.6.7,3.6.8,3.6.9,3.7.1,3.7.2,3.7.3,3.7.4,3.7.5,3.7.6,3.7.7,3.7.8,3.7.9,3.8.0,3.8.1,3.8.2,3.8.3,3.8.4,3.8.5,3.8.6,3.8.7,3.8.8,3.8.9,3.9.0",
"versionCodeBeta":"95",
"versionNameBeta":"3.9.1",
"versionNameBetas":"3.0.0,3.1.0,3.2.1,3.2.2,3.2.3,3.2.4,3.2.5,3.2.6,3.2.7,3.2.8,3.2.9,3.2.10,3.3.1,3.3.2,3.3.3,3.3.4,3.3.5,3.3.6,3.3.7,3.3.8,3.3.9,3.4.1,3.4.2,3.4.3,3.4.4,3.4.5,3.4.6,3.4.7,3.4.8,3.4.9,3.5.1,3.5.2,3.5.3,3.5.4,3.5.5,3.5.6,3.5.7,3.5.8,3.5.9,3.6.1,3.6.2,3.6.3,3.6.4,3.6.5,3.6.6,3.6.7,3.6.8,3.6.9,3.7.1,3.7.2,3.7.3,3.7.4,3.7.5,3.7.6,3.7.7,3.7.8,3.7.9,3.8.0,3.8.1,3.8.2,3.8.3,3.8.4,3.8.5,3.8.6,3.8.7,3.8.8,3.8.9,3.9.0,3.9.1",
"sizeBeta": "45 MB",
"urlBeta": "https://github.com/AnBui2004/Vectras-VM-Emu-Android/releases",
"MessageBeta": "<h2>3.9.0</h2>Bugs fixed.",
"MessageBeta": "<h2>3.9.1</h2>Bugs fixed.",
"cancellableBeta": true
}