Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28e63e54 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Adb wifi acquires multicast lock" into main

parents 4a545ed1 16229490
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.debug.IAdbTransport;
import android.debug.PairDevice;
import android.hardware.usb.UsbManager;
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.Binder;
import android.os.IBinder;
import android.os.ParcelFileDescriptor;
@@ -192,6 +193,7 @@ public class AdbService extends IAdbManager.Stub {

        @Override
        public void onChange(boolean selfChange, @NonNull Uri uri, @UserIdInt int userId) {
            Slog.d("AdbSettingsObserver", "onChange " + uri.toString());
            if (mAdbUsbUri.equals(uri)) {
                boolean shouldEnable = (Settings.Global.getInt(mContentResolver,
                        Settings.Global.ADB_ENABLED, 0) > 0);
@@ -417,6 +419,28 @@ public class AdbService extends IAdbManager.Stub {
        }
    }

    private WifiManager.MulticastLock mAdbMulticastLock = null;

    private void acquireMulticastLock() {
        if (mAdbMulticastLock == null) {
            WifiManager wifiManager = (WifiManager)
                    mContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
            mAdbMulticastLock = wifiManager.createMulticastLock("AdbMulticastLock");
        }

        if (!mAdbMulticastLock.isHeld()) {
            mAdbMulticastLock.acquire();
            Slog.d(TAG, "Acquired multicast lock");
        }
    }

    private void releaseMulticastLock() {
        if (mAdbMulticastLock != null && mAdbMulticastLock.isHeld()) {
            mAdbMulticastLock.release();
            Slog.d(TAG, "Released multicast lock");
        }
    }

    private void setAdbEnabled(boolean enable, byte transportType) {
        Slog.d(TAG, "setAdbEnabled(" + enable + "), mIsAdbUsbEnabled=" + mIsAdbUsbEnabled
                 + ", mIsAdbWifiEnabled=" + mIsAdbWifiEnabled + ", transportType=" + transportType);
@@ -428,9 +452,11 @@ public class AdbService extends IAdbManager.Stub {
            if (mIsAdbWifiEnabled) {
                // Start adb over WiFi.
                SystemProperties.set(WIFI_PERSISTENT_CONFIG_PROPERTY, "1");
                acquireMulticastLock();
            } else {
                // Stop adb over WiFi.
                SystemProperties.set(WIFI_PERSISTENT_CONFIG_PROPERTY, "0");
                releaseMulticastLock();
            }
        } else {
            // No change