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

Commit 470f5318 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Adb wifi acquires multicast lock" into main am: 28e63e54 am: 4bb9796b

parents b6fabddc 4bb9796b
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