TIAF: build IApp service list for 1st getTvInteractiveAppServiceList

To fix the issue that TvIAppService can not be queried when boot up

Bug: 213559890
Test: mmm
Change-Id: I527f67349cb624484436434d583bde900d4eb484
This commit is contained in:
shubang
2022-01-18 12:10:30 -08:00
parent 056333fa0f
commit ef31feab62

View File

@@ -95,6 +95,10 @@ public class TvInteractiveAppManagerService extends SystemService {
@GuardedBy("mLock")
private final SparseArray<UserState> mUserStates = new SparseArray<>();
// TODO: remove mGetServiceListCalled if onBootPhrase work correctly
@GuardedBy("mLock")
private boolean mGetServiceListCalled = false;
private final UserManager mUserManager;
/**
@@ -638,6 +642,10 @@ public class TvInteractiveAppManagerService extends SystemService {
final long identity = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
if (!mGetServiceListCalled) {
buildTvInteractiveAppServiceListLocked(userId, null);
mGetServiceListCalled = true;
}
UserState userState = getOrCreateUserStateLocked(resolvedUserId);
List<TvInteractiveAppInfo> iAppList = new ArrayList<>();
for (TvInteractiveAppState state : userState.mIAppMap.values()) {