Merge "Syncronize frameowrk and ImsStack operation for ImsFeatureStatusCallback."
This commit is contained in:
@@ -425,8 +425,8 @@ public class ImsService extends Service {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private IImsRcsFeature createRcsFeatureInternal(int slotId, int subI) {
|
private IImsRcsFeature createRcsFeatureInternal(int slotId, int subId) {
|
||||||
RcsFeature f = createRcsFeatureForSubscription(slotId, subI);
|
RcsFeature f = createRcsFeatureForSubscription(slotId, subId);
|
||||||
if (f != null) {
|
if (f != null) {
|
||||||
f.setDefaultExecutor(mExecutor);
|
f.setDefaultExecutor(mExecutor);
|
||||||
setupFeature(f, slotId, ImsFeature.FEATURE_RCS);
|
setupFeature(f, slotId, ImsFeature.FEATURE_RCS);
|
||||||
|
|||||||
@@ -394,10 +394,12 @@ public abstract class ImsFeature {
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public void addImsFeatureStatusCallback(@NonNull IImsFeatureStatusCallback c) {
|
public void addImsFeatureStatusCallback(@NonNull IImsFeatureStatusCallback c) {
|
||||||
try {
|
try {
|
||||||
|
synchronized (mStatusCallbacks) {
|
||||||
|
// Add the callback if the callback completes successfully without a RemoteException
|
||||||
|
mStatusCallbacks.register(c);
|
||||||
// If we have just connected, send queued status.
|
// If we have just connected, send queued status.
|
||||||
c.notifyImsFeatureStatus(getFeatureState());
|
c.notifyImsFeatureStatus(getFeatureState());
|
||||||
// Add the callback if the callback completes successfully without a RemoteException.
|
}
|
||||||
mStatusCallbacks.register(c);
|
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
Log.w(LOG_TAG, "Couldn't notify feature state: " + e.getMessage());
|
Log.w(LOG_TAG, "Couldn't notify feature state: " + e.getMessage());
|
||||||
}
|
}
|
||||||
@@ -409,8 +411,10 @@ public abstract class ImsFeature {
|
|||||||
*/
|
*/
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public void removeImsFeatureStatusCallback(@NonNull IImsFeatureStatusCallback c) {
|
public void removeImsFeatureStatusCallback(@NonNull IImsFeatureStatusCallback c) {
|
||||||
|
synchronized (mStatusCallbacks) {
|
||||||
mStatusCallbacks.unregister(c);
|
mStatusCallbacks.unregister(c);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal method called by ImsFeature when setFeatureState has changed.
|
* Internal method called by ImsFeature when setFeatureState has changed.
|
||||||
|
|||||||
Reference in New Issue
Block a user