Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +13 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,8 @@ public abstract class ServiceStateTracker extends Handler { "tg", // Togo }; private ArrayList<CellInfoResult> mCellInfoWaitList; private class CellInfoResult { List<CellInfo> list; Object lockObj = new Object(); Loading @@ -206,6 +208,7 @@ public abstract class ServiceStateTracker extends Handler { mPhoneBase = phoneBase; mCellInfo = cellInfo; mCi = ci; mCellInfoWaitList = new ArrayList<CellInfoResult>(); mVoiceCapable = mPhoneBase.getContext().getResources().getBoolean( com.android.internal.R.bool.config_voice_capable); mUiccController = UiccController.getInstance(); Loading @@ -221,6 +224,13 @@ public abstract class ServiceStateTracker extends Handler { mCi.unSetOnSignalStrengthUpdate(this); mUiccController.unregisterForIccChanged(this); mCi.unregisterForCellInfoList(this); for (CellInfoResult result : mCellInfoWaitList) { synchronized(result.lockObj) { result.list = null; result.lockObj.notify(); } } mCellInfoWaitList.clear(); } public boolean getDesiredPowerState() { Loading Loading @@ -419,6 +429,7 @@ public abstract class ServiceStateTracker extends Handler { mLastCellInfoListTime = SystemClock.elapsedRealtime(); mLastCellInfoList = result.list; result.lockObj.notify(); mCellInfoWaitList.remove(result); } break; } Loading Loading @@ -739,10 +750,12 @@ public abstract class ServiceStateTracker extends Handler { synchronized(result.lockObj) { mCi.getCellInfoList(msg); try { mCellInfoWaitList.add(result); result.lockObj.wait(); } catch (InterruptedException e) { e.printStackTrace(); result.list = null; mCellInfoWaitList.remove(result); } } } else { Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +13 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,8 @@ public abstract class ServiceStateTracker extends Handler { "tg", // Togo }; private ArrayList<CellInfoResult> mCellInfoWaitList; private class CellInfoResult { List<CellInfo> list; Object lockObj = new Object(); Loading @@ -206,6 +208,7 @@ public abstract class ServiceStateTracker extends Handler { mPhoneBase = phoneBase; mCellInfo = cellInfo; mCi = ci; mCellInfoWaitList = new ArrayList<CellInfoResult>(); mVoiceCapable = mPhoneBase.getContext().getResources().getBoolean( com.android.internal.R.bool.config_voice_capable); mUiccController = UiccController.getInstance(); Loading @@ -221,6 +224,13 @@ public abstract class ServiceStateTracker extends Handler { mCi.unSetOnSignalStrengthUpdate(this); mUiccController.unregisterForIccChanged(this); mCi.unregisterForCellInfoList(this); for (CellInfoResult result : mCellInfoWaitList) { synchronized(result.lockObj) { result.list = null; result.lockObj.notify(); } } mCellInfoWaitList.clear(); } public boolean getDesiredPowerState() { Loading Loading @@ -419,6 +429,7 @@ public abstract class ServiceStateTracker extends Handler { mLastCellInfoListTime = SystemClock.elapsedRealtime(); mLastCellInfoList = result.list; result.lockObj.notify(); mCellInfoWaitList.remove(result); } break; } Loading Loading @@ -739,10 +750,12 @@ public abstract class ServiceStateTracker extends Handler { synchronized(result.lockObj) { mCi.getCellInfoList(msg); try { mCellInfoWaitList.add(result); result.lockObj.wait(); } catch (InterruptedException e) { e.printStackTrace(); result.list = null; mCellInfoWaitList.remove(result); } } } else { Loading