Merge "Register callback and receiver after tethering is created"
This commit is contained in:
@@ -307,28 +307,22 @@ public class Tethering {
|
|||||||
userManager, this, mNotificationUpdater);
|
userManager, this, mNotificationUpdater);
|
||||||
mExecutor = new TetheringThreadExecutor(mHandler);
|
mExecutor = new TetheringThreadExecutor(mHandler);
|
||||||
mActiveDataSubIdListener = new ActiveDataSubIdListener(mExecutor);
|
mActiveDataSubIdListener = new ActiveDataSubIdListener(mExecutor);
|
||||||
|
mNetdCallback = new NetdCallback();
|
||||||
|
|
||||||
// Load tethering configuration.
|
// Load tethering configuration.
|
||||||
updateConfiguration();
|
updateConfiguration();
|
||||||
// NetdCallback should be registered after updateConfiguration() to ensure
|
}
|
||||||
// TetheringConfiguration is created.
|
|
||||||
mNetdCallback = new NetdCallback();
|
/**
|
||||||
|
* Start to register callbacks.
|
||||||
|
* Call this function when tethering is ready to handle callback events.
|
||||||
|
*/
|
||||||
|
public void startStateMachineUpdaters() {
|
||||||
try {
|
try {
|
||||||
mNetd.registerUnsolicitedEventListener(mNetdCallback);
|
mNetd.registerUnsolicitedEventListener(mNetdCallback);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
mLog.e("Unable to register netd UnsolicitedEventListener");
|
mLog.e("Unable to register netd UnsolicitedEventListener");
|
||||||
}
|
}
|
||||||
|
|
||||||
startStateMachineUpdaters(mHandler);
|
|
||||||
startTrackDefaultNetwork();
|
|
||||||
|
|
||||||
final WifiManager wifiManager = getWifiManager();
|
|
||||||
if (wifiManager != null) {
|
|
||||||
wifiManager.registerSoftApCallback(mExecutor, new TetheringSoftApCallback());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void startStateMachineUpdaters(Handler handler) {
|
|
||||||
mCarrierConfigChange.startListening();
|
mCarrierConfigChange.startListening();
|
||||||
mContext.getSystemService(TelephonyManager.class).listen(mActiveDataSubIdListener,
|
mContext.getSystemService(TelephonyManager.class).listen(mActiveDataSubIdListener,
|
||||||
PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE);
|
PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE);
|
||||||
@@ -341,7 +335,14 @@ public class Tethering {
|
|||||||
filter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
|
filter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
|
||||||
filter.addAction(UserManager.ACTION_USER_RESTRICTIONS_CHANGED);
|
filter.addAction(UserManager.ACTION_USER_RESTRICTIONS_CHANGED);
|
||||||
filter.addAction(ACTION_RESTRICT_BACKGROUND_CHANGED);
|
filter.addAction(ACTION_RESTRICT_BACKGROUND_CHANGED);
|
||||||
mContext.registerReceiver(mStateReceiver, filter, null, handler);
|
mContext.registerReceiver(mStateReceiver, filter, null, mHandler);
|
||||||
|
|
||||||
|
final WifiManager wifiManager = getWifiManager();
|
||||||
|
if (wifiManager != null) {
|
||||||
|
wifiManager.registerSoftApCallback(mExecutor, new TetheringSoftApCallback());
|
||||||
|
}
|
||||||
|
|
||||||
|
startTrackDefaultNetwork();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class TetheringThreadExecutor implements Executor {
|
private class TetheringThreadExecutor implements Executor {
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ public class TetheringService extends Service {
|
|||||||
mContext = mDeps.getContext();
|
mContext = mDeps.getContext();
|
||||||
mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
|
||||||
mTethering = makeTethering(mDeps);
|
mTethering = makeTethering(mDeps);
|
||||||
|
mTethering.startStateMachineUpdaters();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -484,6 +484,7 @@ public class TetheringTest {
|
|||||||
mServiceContext.registerReceiver(mBroadcastReceiver,
|
mServiceContext.registerReceiver(mBroadcastReceiver,
|
||||||
new IntentFilter(ACTION_TETHER_STATE_CHANGED));
|
new IntentFilter(ACTION_TETHER_STATE_CHANGED));
|
||||||
mTethering = makeTethering();
|
mTethering = makeTethering();
|
||||||
|
mTethering.startStateMachineUpdaters();
|
||||||
verify(mStatsManager, times(1)).registerNetworkStatsProvider(anyString(), any());
|
verify(mStatsManager, times(1)).registerNetworkStatsProvider(anyString(), any());
|
||||||
verify(mNetd).registerUnsolicitedEventListener(any());
|
verify(mNetd).registerUnsolicitedEventListener(any());
|
||||||
final ArgumentCaptor<PhoneStateListener> phoneListenerCaptor =
|
final ArgumentCaptor<PhoneStateListener> phoneListenerCaptor =
|
||||||
|
|||||||
Reference in New Issue
Block a user