merge in oc-release history after reset to master
diff --git a/src/java/com/android/internal/telephony/MccTable.java b/src/java/com/android/internal/telephony/MccTable.java
index 23c0c52..f18f6d5 100644
--- a/src/java/com/android/internal/telephony/MccTable.java
+++ b/src/java/com/android/internal/telephony/MccTable.java
@@ -423,7 +423,7 @@
sTable.add(new MccEntry(225,"va",2)); //Vatican City State
sTable.add(new MccEntry(226,"ro",2)); //Romania
sTable.add(new MccEntry(228,"ch",2)); //Switzerland (Confederation of)
- sTable.add(new MccEntry(230,"cz",2)); //Czech Republic
+ sTable.add(new MccEntry(230,"cz",2)); //Czechia
sTable.add(new MccEntry(231,"sk",2)); //Slovak Republic
sTable.add(new MccEntry(232,"at",2)); //Austria
sTable.add(new MccEntry(234,"gb",2)); //United Kingdom of Great Britain and Northern Ireland
diff --git a/src/java/com/android/internal/telephony/ims/ImsServiceController.java b/src/java/com/android/internal/telephony/ims/ImsServiceController.java
index bce8c70..2df52c7 100644
--- a/src/java/com/android/internal/telephony/ims/ImsServiceController.java
+++ b/src/java/com/android/internal/telephony/ims/ImsServiceController.java
@@ -65,10 +65,10 @@
@Override
public void binderDied() {
- Log.e(LOG_TAG, "ImsService(" + mComponentName + ") died. Cleaning up.");
+ Log.e(LOG_TAG, "ImsService(" + mComponentName + ") died. Restarting...");
notifyAllFeaturesRemoved();
cleanUpService();
- mHandler.postDelayed(mRestartImsServiceRunnable, mRebindRetry.getRetryTimeout());
+ startDelayedRebindToService();
}
}
@@ -76,16 +76,18 @@
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
- if (service != null) {
- synchronized (mLock) {
+ synchronized (mLock) {
+ mIsBound = true;
+ mIsBinding = false;
+ grantPermissionsToService();
+ Log.d(LOG_TAG, "ImsService(" + name + "): onServiceConnected with binder: "
+ + service);
+ if (service != null) {
mImsDeathRecipient = new ImsDeathRecipient(name);
try {
service.linkToDeath(mImsDeathRecipient, 0);
mImsServiceControllerBinder = service;
mIImsServiceController = IImsServiceController.Stub.asInterface(service);
- mIsBound = true;
- mIsBinding = false;
- grantPermissionsToService();
// create all associated features in the ImsService
for (Pair<Integer, Integer> i : mImsFeatures) {
addImsServiceFeature(i);
@@ -114,7 +116,8 @@
}
notifyAllFeaturesRemoved();
cleanUpService();
- mHandler.postDelayed(mRestartImsServiceRunnable, mRebindRetry.getRetryTimeout());
+ Log.w(LOG_TAG, "ImsService(" + name + "): onServiceDisconnected. Rebinding...");
+ startDelayedRebindToService();
}
}
@@ -358,6 +361,13 @@
}
}
+ // Only add a new rebind if there are no pending rebinds waiting.
+ private void startDelayedRebindToService() {
+ if (!mHandler.hasCallbacks(mRestartImsServiceRunnable)) {
+ mHandler.postDelayed(mRestartImsServiceRunnable, mRebindRetry.getRetryTimeout());
+ }
+ }
+
// Grant runtime permissions to ImsService. PackageManager ensures that the ImsService is
// system/signed before granting permissions.
private void grantPermissionsToService() {