X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=services%2Fjava%2Fcom%2Fandroid%2Fserver%2Fconnectivity%2FTethering.java;h=2111f2094b010af4c47e7107c478d52d26418080;hb=cdd6de9c3f02b98c4af1e40f1097001c52144873;hp=b83d885fda81c8f90fec21ad067dbb07db3503f6;hpb=1066fc61a371443e9423f890f6f7615f2d1e4c6c;p=android-x86%2Fframeworks-base.git diff --git a/services/java/com/android/server/connectivity/Tethering.java b/services/java/com/android/server/connectivity/Tethering.java index b83d885fda81..2111f2094b01 100644 --- a/services/java/com/android/server/connectivity/Tethering.java +++ b/services/java/com/android/server/connectivity/Tethering.java @@ -37,13 +37,10 @@ import android.net.NetworkInfo; import android.net.NetworkUtils; import android.net.RouteInfo; import android.os.Binder; -import android.os.HandlerThread; -import android.os.IBinder; import android.os.INetworkManagementService; import android.os.Looper; import android.os.Message; import android.os.RemoteException; -import android.os.ServiceManager; import android.os.UserHandle; import android.provider.Settings; import android.util.Log; @@ -53,6 +50,7 @@ import com.android.internal.telephony.PhoneConstants; import com.android.internal.util.IState; import com.android.internal.util.State; import com.android.internal.util.StateMachine; +import com.android.server.IoThread; import com.google.android.collect.Lists; import java.io.FileDescriptor; @@ -100,7 +98,6 @@ public class Tethering extends INetworkManagementEventObserver.Stub { private final INetworkStatsService mStatsService; private final IConnectivityManager mConnService; private Looper mLooper; - private HandlerThread mThread; private HashMap mIfaces; // all tethered/tetherable ifaces @@ -147,9 +144,7 @@ public class Tethering extends INetworkManagementEventObserver.Stub { mIfaces = new HashMap(); // make our own thread so we don't anr the system - mThread = new HandlerThread("Tethering"); - mThread.start(); - mLooper = mThread.getLooper(); + mLooper = IoThread.get().getLooper(); mTetherMasterSM = new TetherMasterSM("TetherMaster", mLooper); mTetherMasterSM.start(); @@ -234,6 +229,10 @@ public class Tethering extends INetworkManagementEventObserver.Stub { // ignore usb0 down after enabling RNDIS // we will handle disconnect in interfaceRemoved instead if (VDBG) Log.d(TAG, "ignore interface down for " + iface); + } else if (isBluetooth(iface)) { + // ignore interface down for bt liskstate change + // disconnect will only be handled in interfaceRemoved + if (VDBG) Log.d(TAG, "ignore interface down for " + iface); } else if (sm != null) { sm.sendMessage(TetherInterfaceSM.CMD_INTERFACE_DOWN); mIfaces.remove(iface); @@ -320,6 +319,10 @@ public class Tethering extends INetworkManagementEventObserver.Stub { } } + public void addressUpdated(String address, String iface, int flags, int scope) {} + + public void addressRemoved(String address, String iface, int flags, int scope) {} + public void limitReached(String limitName, String iface) {} public void interfaceClassDataActivityChanged(String label, boolean active) {} @@ -689,19 +692,6 @@ public class Tethering extends INetworkManagementEventObserver.Stub { return retVal; } - public String[] getTetheredIfacePairs() { - final ArrayList list = Lists.newArrayList(); - synchronized (mPublicSync) { - for (TetherInterfaceSM sm : mIfaces.values()) { - if (sm.isTethered()) { - list.add(sm.mMyUpstreamIfaceName); - list.add(sm.mIfaceName); - } - } - } - return list.toArray(new String[list.size()]); - } - public String[] getTetherableIfaces() { ArrayList list = new ArrayList(); synchronized (mPublicSync) {