Loading core/java/com/android/internal/util/AsyncChannel.java +29 −51 Original line number Original line Diff line number Diff line Loading @@ -95,7 +95,7 @@ public class AsyncChannel { * * * msg.arg1 == 0 : STATUS_SUCCESSFUL * msg.arg1 == 0 : STATUS_SUCCESSFUL * 1 : STATUS_BINDING_UNSUCCESSFUL * 1 : STATUS_BINDING_UNSUCCESSFUL * msg.arg2 == token parameter * msg.obj == the AsyncChannel * msg.replyTo == dstMessenger if successful * msg.replyTo == dstMessenger if successful */ */ public static final int CMD_CHANNEL_HALF_CONNECTED = -1; public static final int CMD_CHANNEL_HALF_CONNECTED = -1; Loading Loading @@ -136,7 +136,7 @@ public class AsyncChannel { * * * msg.arg1 == 0 : STATUS_SUCCESSFUL * msg.arg1 == 0 : STATUS_SUCCESSFUL * : All other values signify failure and the channel state is indeterminate * : All other values signify failure and the channel state is indeterminate * msg.arg2 == token parameter * msg.obj == the AsyncChannel * msg.replyTo = messenger disconnecting or null if it was never connected. * msg.replyTo = messenger disconnecting or null if it was never connected. */ */ public static final int CMD_CHANNEL_DISCONNECTED = -5; public static final int CMD_CHANNEL_DISCONNECTED = -5; Loading Loading @@ -179,14 +179,12 @@ public class AsyncChannel { * @param dstPackageName is the destination package name * @param dstPackageName is the destination package name * @param dstClassName is the fully qualified class name (i.e. contains * @param dstClassName is the fully qualified class name (i.e. contains * package name) * package name) * @param token unique id for this connection */ */ private void connectSrcHandlerToPackage( private void connectSrcHandlerToPackage( Context srcContext, Handler srcHandler, String dstPackageName, String dstClassName, Context srcContext, Handler srcHandler, String dstPackageName, String dstClassName) { int token) { if (DBG) log("connect srcHandler to dst Package & class E"); if (DBG) log("connect srcHandler to dst Package & class E"); mConnection = new AsyncChannelConnection(token); mConnection = new AsyncChannelConnection(); /* Initialize the source information */ /* Initialize the source information */ mSrcContext = srcContext; mSrcContext = srcContext; Loading @@ -205,7 +203,7 @@ public class AsyncChannel { intent.setClassName(dstPackageName, dstClassName); intent.setClassName(dstPackageName, dstClassName); boolean result = srcContext.bindService(intent, mConnection, Context.BIND_AUTO_CREATE); boolean result = srcContext.bindService(intent, mConnection, Context.BIND_AUTO_CREATE); if (!result) { if (!result) { replyHalfConnected(STATUS_BINDING_UNSUCCESSFUL, token); replyHalfConnected(STATUS_BINDING_UNSUCCESSFUL); } } if (DBG) log("connect srcHandler to dst Package & class X result=" + result); if (DBG) log("connect srcHandler to dst Package & class X result=" + result); Loading @@ -216,7 +214,7 @@ public class AsyncChannel { * * * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * msg.arg1 = status * msg.arg1 = status * msg.arg2 = token * msg.obj = the AsyncChannel * * * @param srcContext is the context of the source * @param srcContext is the context of the source * @param srcHandler is the hander to receive CONNECTED & DISCONNECTED * @param srcHandler is the hander to receive CONNECTED & DISCONNECTED Loading @@ -224,10 +222,9 @@ public class AsyncChannel { * @param dstPackageName is the destination package name * @param dstPackageName is the destination package name * @param dstClassName is the fully qualified class name (i.e. contains * @param dstClassName is the fully qualified class name (i.e. contains * package name) * package name) * @param token returned in msg.arg2 */ */ public void connect(Context srcContext, Handler srcHandler, String dstPackageName, public void connect(Context srcContext, Handler srcHandler, String dstPackageName, String dstClassName, int token) { String dstClassName) { if (DBG) log("connect srcHandler to dst Package & class E"); if (DBG) log("connect srcHandler to dst Package & class E"); final class ConnectAsync implements Runnable { final class ConnectAsync implements Runnable { Loading @@ -235,25 +232,21 @@ public class AsyncChannel { Handler mSrcHdlr; Handler mSrcHdlr; String mDstPackageName; String mDstPackageName; String mDstClassName; String mDstClassName; int mToken; ConnectAsync(Context srcContext, Handler srcHandler, String dstPackageName, ConnectAsync(Context srcContext, Handler srcHandler, String dstPackageName, String dstClassName, int token) { String dstClassName) { mSrcCtx = srcContext; mSrcCtx = srcContext; mSrcHdlr = srcHandler; mSrcHdlr = srcHandler; mDstPackageName = dstPackageName; mDstPackageName = dstPackageName; mDstClassName = dstClassName; mDstClassName = dstClassName; mToken = token; } } public void run() { public void run() { connectSrcHandlerToPackage(mSrcCtx, mSrcHdlr, mDstPackageName, mDstClassName, connectSrcHandlerToPackage(mSrcCtx, mSrcHdlr, mDstPackageName, mDstClassName); mToken); } } } } ConnectAsync ca = new ConnectAsync(srcContext, srcHandler, dstPackageName, dstClassName, ConnectAsync ca = new ConnectAsync(srcContext, srcHandler, dstPackageName, dstClassName); token); new Thread(ca).start(); new Thread(ca).start(); if (DBG) log("connect srcHandler to dst Package & class X"); if (DBG) log("connect srcHandler to dst Package & class X"); Loading @@ -264,15 +257,14 @@ public class AsyncChannel { * * * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * msg.arg1 = status * msg.arg1 = status * msg.arg2 = token * msg.obj = the AsyncChannel * * * @param srcContext * @param srcContext * @param srcHandler * @param srcHandler * @param klass is the class to send messages to. * @param klass is the class to send messages to. * @param token returned in msg.arg2 */ */ public void connect(Context srcContext, Handler srcHandler, Class<?> klass, int token) { public void connect(Context srcContext, Handler srcHandler, Class<?> klass) { connect(srcContext, srcHandler, klass.getPackage().getName(), klass.getName(), token); connect(srcContext, srcHandler, klass.getPackage().getName(), klass.getName()); } } /** /** Loading @@ -280,14 +272,13 @@ public class AsyncChannel { * * * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * msg.arg1 = status * msg.arg1 = status * msg.arg2 = token * msg.obj = the AsyncChannel * * * @param srcContext * @param srcContext * @param srcHandler * @param srcHandler * @param dstMessenger * @param dstMessenger * @param token returned in msg.arg2 */ */ public void connect(Context srcContext, Handler srcHandler, Messenger dstMessenger, int token) { public void connect(Context srcContext, Handler srcHandler, Messenger dstMessenger) { if (DBG) log("connect srcHandler to the dstMessenger E"); if (DBG) log("connect srcHandler to the dstMessenger E"); // Initialize source fields // Initialize source fields Loading @@ -301,7 +292,7 @@ public class AsyncChannel { if (DBG) log("tell source we are half connected"); if (DBG) log("tell source we are half connected"); // Tell source we are half connected // Tell source we are half connected replyHalfConnected(STATUS_SUCCESSFUL, token); replyHalfConnected(STATUS_SUCCESSFUL); if (DBG) log("connect srcHandler to the dstMessenger X"); if (DBG) log("connect srcHandler to the dstMessenger X"); } } Loading @@ -311,16 +302,15 @@ public class AsyncChannel { * * * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * msg.arg1 = status * msg.arg1 = status * msg.arg2 = token * msg.obj = the AsyncChannel * * * @param srcContext is the context of the source * @param srcContext is the context of the source * @param srcHandler is the hander to receive CONNECTED & DISCONNECTED * @param srcHandler is the hander to receive CONNECTED & DISCONNECTED * messages * messages * @param dstHandler is the hander to send messages to. * @param dstHandler is the hander to send messages to. * @param token returned in msg.arg2 */ */ public void connect(Context srcContext, Handler srcHandler, Handler dstHandler, int token) { public void connect(Context srcContext, Handler srcHandler, Handler dstHandler) { connect(srcContext, srcHandler, new Messenger(dstHandler), token); connect(srcContext, srcHandler, new Messenger(dstHandler)); } } /** /** Loading @@ -328,14 +318,13 @@ public class AsyncChannel { * * * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcAsyncService when complete. * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcAsyncService when complete. * msg.arg1 = status * msg.arg1 = status * msg.arg2 = token * msg.obj = the AsyncChannel * * * @param srcAsyncService * @param srcAsyncService * @param dstMessenger * @param dstMessenger * @param token returned in msg.arg2 */ */ public void connect(AsyncService srcAsyncService, Messenger dstMessenger, int token) { public void connect(AsyncService srcAsyncService, Messenger dstMessenger) { connect(srcAsyncService, srcAsyncService.getHandler(), dstMessenger, token); connect(srcAsyncService, srcAsyncService.getHandler(), dstMessenger); } } /** /** Loading @@ -351,15 +340,14 @@ public class AsyncChannel { /** /** * Disconnect * Disconnect */ */ public void disconnect(int token) { public void disconnect() { if (mConnection != null) { if (mConnection != null) { mConnection.setToken(token); mSrcContext.unbindService(mConnection); mSrcContext.unbindService(mConnection); } } if (mSrcHandler != null) { if (mSrcHandler != null) { Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_DISCONNECTED); Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_DISCONNECTED); msg.arg1 = STATUS_SUCCESSFUL; msg.arg1 = STATUS_SUCCESSFUL; msg.arg2 = token; msg.obj = this; msg.replyTo = mDstMessenger; msg.replyTo = mDstMessenger; mSrcHandler.sendMessage(msg); mSrcHandler.sendMessage(msg); } } Loading Loading @@ -727,10 +715,10 @@ public class AsyncChannel { * * * @param status to be stored in msg.arg1 * @param status to be stored in msg.arg1 */ */ private void replyHalfConnected(int status, int token) { private void replyHalfConnected(int status) { Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_HALF_CONNECTED); Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_HALF_CONNECTED); msg.arg1 = status; msg.arg1 = status; msg.arg2 = token; msg.obj = this; msg.replyTo = mDstMessenger; msg.replyTo = mDstMessenger; mSrcHandler.sendMessage(msg); mSrcHandler.sendMessage(msg); } } Loading @@ -739,28 +727,18 @@ public class AsyncChannel { * ServiceConnection to receive call backs. * ServiceConnection to receive call backs. */ */ class AsyncChannelConnection implements ServiceConnection { class AsyncChannelConnection implements ServiceConnection { private int mToken; AsyncChannelConnection() { AsyncChannelConnection(int token) { mToken = token; } /** * @param token */ public void setToken(int token) { mToken = token; } } public void onServiceConnected(ComponentName className, IBinder service) { public void onServiceConnected(ComponentName className, IBinder service) { mDstMessenger = new Messenger(service); mDstMessenger = new Messenger(service); replyHalfConnected(STATUS_SUCCESSFUL, mToken); replyHalfConnected(STATUS_SUCCESSFUL); } } public void onServiceDisconnected(ComponentName className) { public void onServiceDisconnected(ComponentName className) { Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_DISCONNECTED); Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_DISCONNECTED); msg.arg1 = STATUS_SUCCESSFUL; msg.arg1 = STATUS_SUCCESSFUL; msg.arg2 = mToken; msg.obj = AsyncChannel.this; msg.replyTo = mDstMessenger; msg.replyTo = mDstMessenger; mSrcHandler.sendMessage(msg); mSrcHandler.sendMessage(msg); } } Loading services/java/com/android/server/WifiService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -197,7 +197,7 @@ public class WifiService extends IWifiManager.Stub { WifiServiceHandler(android.os.Looper looper, Context context) { WifiServiceHandler(android.os.Looper looper, Context context) { super(looper); super(looper); mWshChannel = new AsyncChannel(); mWshChannel = new AsyncChannel(); mWshChannel.connect(context, this, mWifiStateMachine.getHandler(), 0); mWshChannel.connect(context, this, mWifiStateMachine.getHandler()); } } @Override @Override Loading Loading
core/java/com/android/internal/util/AsyncChannel.java +29 −51 Original line number Original line Diff line number Diff line Loading @@ -95,7 +95,7 @@ public class AsyncChannel { * * * msg.arg1 == 0 : STATUS_SUCCESSFUL * msg.arg1 == 0 : STATUS_SUCCESSFUL * 1 : STATUS_BINDING_UNSUCCESSFUL * 1 : STATUS_BINDING_UNSUCCESSFUL * msg.arg2 == token parameter * msg.obj == the AsyncChannel * msg.replyTo == dstMessenger if successful * msg.replyTo == dstMessenger if successful */ */ public static final int CMD_CHANNEL_HALF_CONNECTED = -1; public static final int CMD_CHANNEL_HALF_CONNECTED = -1; Loading Loading @@ -136,7 +136,7 @@ public class AsyncChannel { * * * msg.arg1 == 0 : STATUS_SUCCESSFUL * msg.arg1 == 0 : STATUS_SUCCESSFUL * : All other values signify failure and the channel state is indeterminate * : All other values signify failure and the channel state is indeterminate * msg.arg2 == token parameter * msg.obj == the AsyncChannel * msg.replyTo = messenger disconnecting or null if it was never connected. * msg.replyTo = messenger disconnecting or null if it was never connected. */ */ public static final int CMD_CHANNEL_DISCONNECTED = -5; public static final int CMD_CHANNEL_DISCONNECTED = -5; Loading Loading @@ -179,14 +179,12 @@ public class AsyncChannel { * @param dstPackageName is the destination package name * @param dstPackageName is the destination package name * @param dstClassName is the fully qualified class name (i.e. contains * @param dstClassName is the fully qualified class name (i.e. contains * package name) * package name) * @param token unique id for this connection */ */ private void connectSrcHandlerToPackage( private void connectSrcHandlerToPackage( Context srcContext, Handler srcHandler, String dstPackageName, String dstClassName, Context srcContext, Handler srcHandler, String dstPackageName, String dstClassName) { int token) { if (DBG) log("connect srcHandler to dst Package & class E"); if (DBG) log("connect srcHandler to dst Package & class E"); mConnection = new AsyncChannelConnection(token); mConnection = new AsyncChannelConnection(); /* Initialize the source information */ /* Initialize the source information */ mSrcContext = srcContext; mSrcContext = srcContext; Loading @@ -205,7 +203,7 @@ public class AsyncChannel { intent.setClassName(dstPackageName, dstClassName); intent.setClassName(dstPackageName, dstClassName); boolean result = srcContext.bindService(intent, mConnection, Context.BIND_AUTO_CREATE); boolean result = srcContext.bindService(intent, mConnection, Context.BIND_AUTO_CREATE); if (!result) { if (!result) { replyHalfConnected(STATUS_BINDING_UNSUCCESSFUL, token); replyHalfConnected(STATUS_BINDING_UNSUCCESSFUL); } } if (DBG) log("connect srcHandler to dst Package & class X result=" + result); if (DBG) log("connect srcHandler to dst Package & class X result=" + result); Loading @@ -216,7 +214,7 @@ public class AsyncChannel { * * * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * msg.arg1 = status * msg.arg1 = status * msg.arg2 = token * msg.obj = the AsyncChannel * * * @param srcContext is the context of the source * @param srcContext is the context of the source * @param srcHandler is the hander to receive CONNECTED & DISCONNECTED * @param srcHandler is the hander to receive CONNECTED & DISCONNECTED Loading @@ -224,10 +222,9 @@ public class AsyncChannel { * @param dstPackageName is the destination package name * @param dstPackageName is the destination package name * @param dstClassName is the fully qualified class name (i.e. contains * @param dstClassName is the fully qualified class name (i.e. contains * package name) * package name) * @param token returned in msg.arg2 */ */ public void connect(Context srcContext, Handler srcHandler, String dstPackageName, public void connect(Context srcContext, Handler srcHandler, String dstPackageName, String dstClassName, int token) { String dstClassName) { if (DBG) log("connect srcHandler to dst Package & class E"); if (DBG) log("connect srcHandler to dst Package & class E"); final class ConnectAsync implements Runnable { final class ConnectAsync implements Runnable { Loading @@ -235,25 +232,21 @@ public class AsyncChannel { Handler mSrcHdlr; Handler mSrcHdlr; String mDstPackageName; String mDstPackageName; String mDstClassName; String mDstClassName; int mToken; ConnectAsync(Context srcContext, Handler srcHandler, String dstPackageName, ConnectAsync(Context srcContext, Handler srcHandler, String dstPackageName, String dstClassName, int token) { String dstClassName) { mSrcCtx = srcContext; mSrcCtx = srcContext; mSrcHdlr = srcHandler; mSrcHdlr = srcHandler; mDstPackageName = dstPackageName; mDstPackageName = dstPackageName; mDstClassName = dstClassName; mDstClassName = dstClassName; mToken = token; } } public void run() { public void run() { connectSrcHandlerToPackage(mSrcCtx, mSrcHdlr, mDstPackageName, mDstClassName, connectSrcHandlerToPackage(mSrcCtx, mSrcHdlr, mDstPackageName, mDstClassName); mToken); } } } } ConnectAsync ca = new ConnectAsync(srcContext, srcHandler, dstPackageName, dstClassName, ConnectAsync ca = new ConnectAsync(srcContext, srcHandler, dstPackageName, dstClassName); token); new Thread(ca).start(); new Thread(ca).start(); if (DBG) log("connect srcHandler to dst Package & class X"); if (DBG) log("connect srcHandler to dst Package & class X"); Loading @@ -264,15 +257,14 @@ public class AsyncChannel { * * * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * msg.arg1 = status * msg.arg1 = status * msg.arg2 = token * msg.obj = the AsyncChannel * * * @param srcContext * @param srcContext * @param srcHandler * @param srcHandler * @param klass is the class to send messages to. * @param klass is the class to send messages to. * @param token returned in msg.arg2 */ */ public void connect(Context srcContext, Handler srcHandler, Class<?> klass, int token) { public void connect(Context srcContext, Handler srcHandler, Class<?> klass) { connect(srcContext, srcHandler, klass.getPackage().getName(), klass.getName(), token); connect(srcContext, srcHandler, klass.getPackage().getName(), klass.getName()); } } /** /** Loading @@ -280,14 +272,13 @@ public class AsyncChannel { * * * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * msg.arg1 = status * msg.arg1 = status * msg.arg2 = token * msg.obj = the AsyncChannel * * * @param srcContext * @param srcContext * @param srcHandler * @param srcHandler * @param dstMessenger * @param dstMessenger * @param token returned in msg.arg2 */ */ public void connect(Context srcContext, Handler srcHandler, Messenger dstMessenger, int token) { public void connect(Context srcContext, Handler srcHandler, Messenger dstMessenger) { if (DBG) log("connect srcHandler to the dstMessenger E"); if (DBG) log("connect srcHandler to the dstMessenger E"); // Initialize source fields // Initialize source fields Loading @@ -301,7 +292,7 @@ public class AsyncChannel { if (DBG) log("tell source we are half connected"); if (DBG) log("tell source we are half connected"); // Tell source we are half connected // Tell source we are half connected replyHalfConnected(STATUS_SUCCESSFUL, token); replyHalfConnected(STATUS_SUCCESSFUL); if (DBG) log("connect srcHandler to the dstMessenger X"); if (DBG) log("connect srcHandler to the dstMessenger X"); } } Loading @@ -311,16 +302,15 @@ public class AsyncChannel { * * * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcHandler when complete. * msg.arg1 = status * msg.arg1 = status * msg.arg2 = token * msg.obj = the AsyncChannel * * * @param srcContext is the context of the source * @param srcContext is the context of the source * @param srcHandler is the hander to receive CONNECTED & DISCONNECTED * @param srcHandler is the hander to receive CONNECTED & DISCONNECTED * messages * messages * @param dstHandler is the hander to send messages to. * @param dstHandler is the hander to send messages to. * @param token returned in msg.arg2 */ */ public void connect(Context srcContext, Handler srcHandler, Handler dstHandler, int token) { public void connect(Context srcContext, Handler srcHandler, Handler dstHandler) { connect(srcContext, srcHandler, new Messenger(dstHandler), token); connect(srcContext, srcHandler, new Messenger(dstHandler)); } } /** /** Loading @@ -328,14 +318,13 @@ public class AsyncChannel { * * * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcAsyncService when complete. * Sends a CMD_CHANNEL_HALF_CONNECTED message to srcAsyncService when complete. * msg.arg1 = status * msg.arg1 = status * msg.arg2 = token * msg.obj = the AsyncChannel * * * @param srcAsyncService * @param srcAsyncService * @param dstMessenger * @param dstMessenger * @param token returned in msg.arg2 */ */ public void connect(AsyncService srcAsyncService, Messenger dstMessenger, int token) { public void connect(AsyncService srcAsyncService, Messenger dstMessenger) { connect(srcAsyncService, srcAsyncService.getHandler(), dstMessenger, token); connect(srcAsyncService, srcAsyncService.getHandler(), dstMessenger); } } /** /** Loading @@ -351,15 +340,14 @@ public class AsyncChannel { /** /** * Disconnect * Disconnect */ */ public void disconnect(int token) { public void disconnect() { if (mConnection != null) { if (mConnection != null) { mConnection.setToken(token); mSrcContext.unbindService(mConnection); mSrcContext.unbindService(mConnection); } } if (mSrcHandler != null) { if (mSrcHandler != null) { Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_DISCONNECTED); Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_DISCONNECTED); msg.arg1 = STATUS_SUCCESSFUL; msg.arg1 = STATUS_SUCCESSFUL; msg.arg2 = token; msg.obj = this; msg.replyTo = mDstMessenger; msg.replyTo = mDstMessenger; mSrcHandler.sendMessage(msg); mSrcHandler.sendMessage(msg); } } Loading Loading @@ -727,10 +715,10 @@ public class AsyncChannel { * * * @param status to be stored in msg.arg1 * @param status to be stored in msg.arg1 */ */ private void replyHalfConnected(int status, int token) { private void replyHalfConnected(int status) { Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_HALF_CONNECTED); Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_HALF_CONNECTED); msg.arg1 = status; msg.arg1 = status; msg.arg2 = token; msg.obj = this; msg.replyTo = mDstMessenger; msg.replyTo = mDstMessenger; mSrcHandler.sendMessage(msg); mSrcHandler.sendMessage(msg); } } Loading @@ -739,28 +727,18 @@ public class AsyncChannel { * ServiceConnection to receive call backs. * ServiceConnection to receive call backs. */ */ class AsyncChannelConnection implements ServiceConnection { class AsyncChannelConnection implements ServiceConnection { private int mToken; AsyncChannelConnection() { AsyncChannelConnection(int token) { mToken = token; } /** * @param token */ public void setToken(int token) { mToken = token; } } public void onServiceConnected(ComponentName className, IBinder service) { public void onServiceConnected(ComponentName className, IBinder service) { mDstMessenger = new Messenger(service); mDstMessenger = new Messenger(service); replyHalfConnected(STATUS_SUCCESSFUL, mToken); replyHalfConnected(STATUS_SUCCESSFUL); } } public void onServiceDisconnected(ComponentName className) { public void onServiceDisconnected(ComponentName className) { Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_DISCONNECTED); Message msg = mSrcHandler.obtainMessage(CMD_CHANNEL_DISCONNECTED); msg.arg1 = STATUS_SUCCESSFUL; msg.arg1 = STATUS_SUCCESSFUL; msg.arg2 = mToken; msg.obj = AsyncChannel.this; msg.replyTo = mDstMessenger; msg.replyTo = mDstMessenger; mSrcHandler.sendMessage(msg); mSrcHandler.sendMessage(msg); } } Loading
services/java/com/android/server/WifiService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -197,7 +197,7 @@ public class WifiService extends IWifiManager.Stub { WifiServiceHandler(android.os.Looper looper, Context context) { WifiServiceHandler(android.os.Looper looper, Context context) { super(looper); super(looper); mWshChannel = new AsyncChannel(); mWshChannel = new AsyncChannel(); mWshChannel.connect(context, this, mWifiStateMachine.getHandler(), 0); mWshChannel.connect(context, this, mWifiStateMachine.getHandler()); } } @Override @Override Loading