Fix bug where GameService#onDisconnected isn't called
As it is, since the disconnected call happens in unbind, the call is immediately dropped due to the unbinding instead of going through. This change is a quick fix that makes it so that unbind always happens after disconnect. Bug: 223981361 Test: atest CtsGameServiceTestCases Change-Id: Icd331e64dd2be80829b8baead521906bb7d41bae
This commit is contained in:
@@ -85,15 +85,6 @@ final class GameServiceProviderInstanceImpl implements GameServiceProviderInstan
|
||||
Slog.w(TAG, "Failed to send connected event", ex);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisconnected(@NonNull IGameService service) {
|
||||
try {
|
||||
service.disconnected();
|
||||
} catch (RemoteException ex) {
|
||||
Slog.w(TAG, "Failed to send disconnected event", ex);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private final ServiceLifecycleCallbacks<IGameSessionService>
|
||||
@@ -181,7 +172,8 @@ final class GameServiceProviderInstanceImpl implements GameServiceProviderInstan
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onForegroundServicesChanged(int pid, int uid, int serviceTypes) {}
|
||||
public void onForegroundServicesChanged(int pid, int uid, int serviceTypes) {
|
||||
}
|
||||
};
|
||||
|
||||
private final IGameServiceController mGameServiceController =
|
||||
@@ -338,7 +330,9 @@ final class GameServiceProviderInstanceImpl implements GameServiceProviderInstan
|
||||
|
||||
destroyAndClearAllGameSessionsLocked();
|
||||
|
||||
mGameServiceConnector.unbind();
|
||||
mGameServiceConnector.post(IGameService::disconnected).whenComplete((result, t) -> {
|
||||
mGameServiceConnector.unbind();
|
||||
});
|
||||
mGameSessionServiceConnector.unbind();
|
||||
|
||||
mGameServiceConnector.setServiceLifecycleCallbacks(null);
|
||||
|
||||
Reference in New Issue
Block a user