Add support of ACTION_PACKAGE_CHANGED for car mode InCallService. am: 2b8cfc19e3
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Telecomm/+/14045070
Change-Id: I9e0c88e2f9c4193fe1edd1566fb5bad1999de774
diff --git a/src/com/android/server/telecom/InCallController.java b/src/com/android/server/telecom/InCallController.java
index 08a64ca..c7c5ede 100644
--- a/src/com/android/server/telecom/InCallController.java
+++ b/src/com/android/server/telecom/InCallController.java
@@ -608,7 +608,7 @@
new InCallServiceBindingConnection(carModeConnectionInfo);
mIsCarMode = true;
} else {
- // Invalid car mode app; don't expect this but should handle it gracefully.
+ // The app is not enabled. Using the default dialer connection instead
mCarModeConnection = null;
mIsCarMode = false;
mCurrentConnection = mDialerConnection;
@@ -908,6 +908,10 @@
if (mNonUIInCallServiceConnections != null) {
mNonUIInCallServiceConnections.addConnections(componentsToBind);
}
+
+ // If the current car mode app become enabled from disabled, update
+ // the connection to binding
+ updateCarModeForConnections();
}
}
} finally {
@@ -1455,6 +1459,10 @@
} else {
Log.i(this, "bindToServices: current UI doesn't support call; not binding.");
}
+
+ IntentFilter packageChangedFilter = new IntentFilter(Intent.ACTION_PACKAGE_CHANGED);
+ packageChangedFilter.addDataScheme("package");
+ mContext.registerReceiver(mPackageChangedReceiver, packageChangedFilter);
}
private void updateNonUiInCallServices() {
@@ -1484,10 +1492,6 @@
updateNonUiInCallServices();
}
mNonUIInCallServiceConnections.connect(call);
-
- IntentFilter packageChangedFilter = new IntentFilter(Intent.ACTION_PACKAGE_CHANGED);
- packageChangedFilter.addDataScheme("package");
- mContext.registerReceiver(mPackageChangedReceiver, packageChangedFilter);
}
private InCallServiceInfo getDefaultDialerComponent() {