From 66613323160eaa3a4d87b588ed89c8b12929002b Mon Sep 17 00:00:00 2001 From: My-Responsitories <107370289+My-Responsitories@users.noreply.github.com> Date: Sun, 31 May 2026 21:27:17 +0800 Subject: [PATCH] opt: remove volatile --- .../java/com/example/piliplus/AndroidHelper.java | 15 ++++++++++----- .../kotlin/com/example/piliplus/MainActivity.kt | 4 ---- lib/utils/android/bindings.g.dart | 6 +----- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/android/app/src/main/java/com/example/piliplus/AndroidHelper.java b/android/app/src/main/java/com/example/piliplus/AndroidHelper.java index fc8b3f766..c8cc54431 100644 --- a/android/app/src/main/java/com/example/piliplus/AndroidHelper.java +++ b/android/app/src/main/java/com/example/piliplus/AndroidHelper.java @@ -5,6 +5,7 @@ import android.app.PendingIntent; import android.app.PictureInPictureParams; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutManager; import android.graphics.Bitmap; @@ -16,16 +17,20 @@ import android.provider.Settings; import android.util.Rational; import androidx.annotation.Keep; +import androidx.annotation.NonNull; import com.github.dart_lang.jni_flutter.JniFlutterPlugin; -import org.jetbrains.annotations.NotNull; - @Keep public final class AndroidHelper { public static volatile boolean isPipMode = false; - public static volatile boolean isPipAvailable = false; + public static final boolean isPipAvailable; + + static { + PackageManager pm = getContext().getPackageManager(); + isPipAvailable = pm.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE); + } private AndroidHelper() { } @@ -68,7 +73,7 @@ public final class AndroidHelper { } } - public static void createShortcut(@NotNull String id, @NotNull String uri, @NotNull String label, @NotNull String icon) { + public static void createShortcut(@NonNull String id, @NonNull String uri, @NonNull String label, @NonNull String icon) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { Context context = getContext(); ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class); @@ -92,9 +97,9 @@ public final class AndroidHelper { public static void enterPip(long engineId, int width, int height) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { Activity activity = JniFlutterPlugin.getActivity(engineId); + assert activity != null; PictureInPictureParams.Builder builder = new PictureInPictureParams.Builder() .setAspectRatio(new Rational(width, height)); - assert activity != null; activity.enterPictureInPictureMode(builder.build()); } } diff --git a/android/app/src/main/kotlin/com/example/piliplus/MainActivity.kt b/android/app/src/main/kotlin/com/example/piliplus/MainActivity.kt index 2fc4a6549..7ea840a0e 100644 --- a/android/app/src/main/kotlin/com/example/piliplus/MainActivity.kt +++ b/android/app/src/main/kotlin/com/example/piliplus/MainActivity.kt @@ -1,7 +1,6 @@ package com.example.piliplus import android.content.Intent -import android.content.pm.PackageManager import android.content.res.Configuration import android.os.Build import android.os.Bundle @@ -41,9 +40,6 @@ class MainActivity : AudioServiceActivity() { window.attributes.layoutInDisplayCutoutMode = LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES } - - AndroidHelper.isPipAvailable = - packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE) } override fun onDestroy() { diff --git a/lib/utils/android/bindings.g.dart b/lib/utils/android/bindings.g.dart index b4a63e931..7c5e7328c 100644 --- a/lib/utils/android/bindings.g.dart +++ b/lib/utils/android/bindings.g.dart @@ -210,15 +210,11 @@ extension type AndroidHelper._(jni$_.JObject _$this) implements jni$_.JObject { r'Z', ); - /// from: `static public volatile boolean isPipAvailable` + /// from: `static public final boolean isPipAvailable` static core$_.bool get isPipAvailable => _id_isPipAvailable.getNullable(_class, jni$_.jboolean.type) as core$_.bool; - /// from: `static public volatile boolean isPipAvailable` - static set isPipAvailable(core$_.bool value) => - _id_isPipAvailable.set(_class, jni$_.jboolean.type, value); - static final _id_back = _class.staticMethodId( r'back', r'()V',