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

Commit c96dba72 authored by Kenny Root's avatar Kenny Root
Browse files

Add empty AdbHandler

When ADB is toggled on in the USB manager, it uses the foreground
thread to do some work in the current setup. Mirror this mechanism
in the ADB service.

Bug: 63820489
Test: make
Change-Id: Ia38aa771bdf5e30d5eae252fe55d75e50d16406f
parent 8ebd8bf8
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -20,12 +20,16 @@ import android.debug.AdbManagerInternal;
import android.debug.IAdbManager;
import android.debug.IAdbTransport;
import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.util.ArrayMap;
import android.util.Slog;

import com.android.internal.util.DumpUtils;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.FgThread;
import com.android.server.LocalServices;
import com.android.server.SystemService;

@@ -78,10 +82,36 @@ public class AdbService extends IAdbManager.Stub {
        }
    }

    private final class AdbHandler extends Handler {
        AdbHandler(Looper looper) {
            super(looper);
            try {
                // TODO: add initialization here.
            } catch (Exception e) {
                Slog.e(TAG, "Error initializing AdbHandler", e);
            }
        }

        public void sendMessage(int what, boolean arg) {
            removeMessages(what);
            Message m = Message.obtain(this, what);
            m.arg1 = (arg ? 1 : 0);
            sendMessage(m);
        }

        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                // TODO: handle messages here.
            }
        }
    }

    private static final String TAG = "AdbService";
    private static final boolean DEBUG = false;

    private final Context mContext;
    private final AdbService.AdbHandler mHandler;
    private final ArrayMap<IBinder, IAdbTransport> mTransports = new ArrayMap<>();

    private boolean mAdbEnabled;
@@ -89,6 +119,8 @@ public class AdbService extends IAdbManager.Stub {
    private AdbService(Context context) {
        mContext = context;

        mHandler = new AdbHandler(FgThread.get().getLooper());

        LocalServices.addService(AdbManagerInternal.class, new AdbManagerInternalImpl());
    }