Merge branch 'jd-2025-10-fix-bluetooth-pairing' into '2465-bump-sdk-35'

update registerReceiver helper with an export parameter

See merge request briar/briar!1845
This commit is contained in:
akwizgran
2025-10-25 12:00:47 +00:00
9 changed files with 15 additions and 12 deletions

View File

@@ -53,7 +53,7 @@ class AndroidBatteryManager implements BatteryManager, Service {
public boolean isCharging() {
// Get the sticky intent for ACTION_BATTERY_CHANGED
IntentFilter filter = new IntentFilter(ACTION_BATTERY_CHANGED);
Intent i = registerReceiver(appContext, null, filter);
Intent i = registerReceiver(appContext, null, filter, false);
if (i == null) return false;
int status = i.getIntExtra(EXTRA_PLUGGED, 0);
return status != 0;
@@ -72,7 +72,7 @@ class AndroidBatteryManager implements BatteryManager, Service {
filter.addAction(ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED);
filter.addAction(ACTION_DEVICE_LIGHT_IDLE_MODE_CHANGED);
}
registerReceiver(appContext, batteryReceiver, filter);
registerReceiver(appContext, batteryReceiver, filter, false);
}
@Override

View File

@@ -104,7 +104,7 @@ class AndroidNetworkManager implements NetworkManager, Service {
filter.addAction(WIFI_AP_STATE_CHANGED_ACTION);
filter.addAction(WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
if (SDK_INT >= 23) filter.addAction(ACTION_DEVICE_IDLE_MODE_CHANGED);
registerReceiver(app, networkStateReceiver, filter);
registerReceiver(app, networkStateReceiver, filter, false);
}
@Override

View File

@@ -113,7 +113,7 @@ class AndroidBluetoothPlugin extends
filter.addAction(ACTION_STATE_CHANGED);
filter.addAction(ACTION_SCAN_MODE_CHANGED);
receiver = new BluetoothStateReceiver();
registerReceiver(app, receiver, filter);
registerReceiver(app, receiver, filter, true);
}
@Override
@@ -238,7 +238,7 @@ class AndroidBluetoothPlugin extends
filter.addAction(ACTION_DISCOVERY_STARTED);
filter.addAction(ACTION_DISCOVERY_FINISHED);
filter.addAction(ACTION_FOUND);
registerReceiver(app, receiver, filter);
registerReceiver(app, receiver, filter, true);
try {
if (adapter.startDiscovery()) {
long now = clock.currentTimeMillis();

View File

@@ -25,6 +25,7 @@ import javax.annotation.Nullable;
import static android.Manifest.permission.BLUETOOTH_CONNECT;
import static android.app.PendingIntent.FLAG_IMMUTABLE;
import static android.content.Context.MODE_PRIVATE;
import static android.content.Context.RECEIVER_EXPORTED;
import static android.content.Context.RECEIVER_NOT_EXPORTED;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static android.os.Build.VERSION.SDK_INT;
@@ -168,10 +169,11 @@ public class AndroidUtils {
@Nullable
@SuppressLint("UnspecifiedRegisterReceiverFlag") // we specify where needed
public static Intent registerReceiver(Context ctx,
@Nullable BroadcastReceiver receiver, IntentFilter filter) {
@Nullable BroadcastReceiver receiver, IntentFilter filter,
boolean export) {
if (SDK_INT >= 33) {
return ctx.registerReceiver(receiver, filter,
RECEIVER_NOT_EXPORTED);
export ? RECEIVER_EXPORTED : RECEIVER_NOT_EXPORTED);
} else {
return ctx.registerReceiver(receiver, filter);
}

View File

@@ -176,7 +176,7 @@ public class BriarService extends Service {
filter.addAction("android.intent.action.QUICKBOOT_POWEROFF");
filter.addAction("com.htc.intent.action.QUICKBOOT_POWEROFF");
AndroidUtils.registerReceiver(getApplicationContext(), receiver,
filter);
filter, false);
}, "LifecycleStartup");
}

View File

@@ -49,7 +49,7 @@ class DozeWatchdogImpl implements DozeWatchdog, Service {
filter.addAction(ACTION_DEVICE_LIGHT_IDLE_MODE_CHANGED);
filter.addAction(ACTION_LOW_POWER_STANDBY_ENABLED_CHANGED);
}
registerReceiver(appContext, receiver, filter);
registerReceiver(appContext, receiver, filter, false);
}
@Override

View File

@@ -208,7 +208,7 @@ class ScreenFilterMonitorImpl implements ScreenFilterMonitor, Service {
filter.addAction(ACTION_PACKAGE_REPLACED);
filter.addDataScheme("package");
receiver = new PackageBroadcastReceiver();
registerReceiver(app, receiver, filter);
registerReceiver(app, receiver, filter, false);
cachedApps = null;
});
}

View File

@@ -209,7 +209,7 @@ class AddNearbyContactViewModel extends AndroidViewModel
qrCodeDecoder = new QrCodeDecoder(androidExecutor, ioExecutor, this);
eventBus.addListener(this);
IntentFilter filter = new IntentFilter(ACTION_SCAN_MODE_CHANGED);
registerReceiver(getApplication(), bluetoothReceiver, filter);
registerReceiver(getApplication(), bluetoothReceiver, filter, false);
}
@Override

View File

@@ -97,7 +97,8 @@ public class PluginViewModel extends DbViewModel implements EventListener {
this.eventBus = eventBus;
eventBus.addListener(this);
receiver = new BluetoothStateReceiver();
registerReceiver(app, receiver, new IntentFilter(ACTION_STATE_CHANGED));
registerReceiver(app, receiver, new IntentFilter(ACTION_STATE_CHANGED),
false);
networkStatus.setValue(networkManager.getNetworkStatus());
torPluginState.setValue(getTransportState(TorConstants.ID));
wifiPluginState.setValue(getTransportState(LanTcpConstants.ID));