Support Rootless Pixel Bridge v3
This commit is contained in:
committed by
Kshitij Gupta
parent
c6c8673b41
commit
d479735f3f
@@ -1,7 +0,0 @@
|
||||
package amirz.aidlbridge;
|
||||
|
||||
import amirz.aidlbridge.BridgeCallback;
|
||||
|
||||
interface Bridge {
|
||||
oneway void setCallback(in int index, in BridgeCallback cb);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package amirz.aidlbridge;
|
||||
|
||||
interface BridgeCallback {
|
||||
oneway void onBridgeConnected(in IBinder service);
|
||||
|
||||
oneway void onBridgeDisconnected();
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package amirz.aidlbridge;
|
||||
|
||||
import amirz.aidlbridge.IBridgeCallback;
|
||||
|
||||
interface IBridge {
|
||||
oneway void bindService(in IBridgeCallback cb, in int flags);
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package amirz.aidlbridge;
|
||||
|
||||
interface IBridgeCallback {
|
||||
oneway void onServiceConnected(in ComponentName name, in IBinder service);
|
||||
|
||||
oneway void onServiceDisconnected(in ComponentName name);
|
||||
}
|
||||
+1
-1
@@ -17,7 +17,7 @@ public class BaseClientService implements ServiceConnection {
|
||||
mContext = context;
|
||||
mFlags = flags;
|
||||
mBridge = FeedBridge.getUseBridge()
|
||||
? new LauncherClientBridge(this)
|
||||
? new LauncherClientBridge(this, flags)
|
||||
: this;
|
||||
}
|
||||
|
||||
|
||||
+24
-17
@@ -5,38 +5,45 @@ import android.content.ServiceConnection;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
|
||||
import amirz.aidlbridge.Bridge;
|
||||
import amirz.aidlbridge.BridgeCallback;
|
||||
import amirz.aidlbridge.IBridge;
|
||||
import amirz.aidlbridge.IBridgeCallback;
|
||||
|
||||
public class LauncherClientBridge extends IBridgeCallback.Stub implements ServiceConnection {
|
||||
private static final String INTERFACE_DESCRIPTOR = "amirz.aidlbridge.IBridge";
|
||||
|
||||
public class LauncherClientBridge extends BridgeCallback.Stub implements ServiceConnection {
|
||||
private final BaseClientService mClientService;
|
||||
private final int mFlags;
|
||||
private ComponentName mConnectionName;
|
||||
|
||||
public LauncherClientBridge(BaseClientService launcherClientService) {
|
||||
public LauncherClientBridge(BaseClientService launcherClientService, int flags) {
|
||||
mClientService = launcherClientService;
|
||||
mFlags = flags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceConnected(ComponentName name, IBinder service) {
|
||||
Bridge bridge = Bridge.Stub.asInterface(service);
|
||||
try {
|
||||
bridge.setCallback(mClientService instanceof LauncherClientService ? 1 : 0, this);
|
||||
if (INTERFACE_DESCRIPTOR.equals(service.getInterfaceDescriptor())) {
|
||||
IBridge bridge = IBridge.Stub.asInterface(service);
|
||||
try {
|
||||
bridge.bindService(this, mFlags);
|
||||
} catch (RemoteException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
mClientService.onServiceConnected(name, service);
|
||||
mConnectionName = name;
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBridgeConnected(IBinder service) {
|
||||
mClientService.onServiceConnected(null, service);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBridgeDisconnected() {
|
||||
mClientService.onServiceDisconnected(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceDisconnected(ComponentName name) {
|
||||
onBridgeDisconnected();
|
||||
if (mConnectionName != null) {
|
||||
mClientService.onServiceDisconnected(mConnectionName);
|
||||
mConnectionName = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user