Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0208a04e authored by Tyler Gunn's avatar Tyler Gunn Committed by android-build-merger
Browse files

Merge "Fix issue where work profiles cause missed calls to not show after...

Merge "Fix issue where work profiles cause missed calls to not show after boot." am: 5a9d369d am: 10d78777
am: 07243763

Change-Id: I0cb35881992fcd6c23f9efe76cf365fef1f5acdd
parents 1e952a8c 07243763
Loading
Loading
Loading
Loading
+16 −10
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ import com.android.internal.telephony.CallerInfo;

import java.lang.Override;
import java.lang.String;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
@@ -134,7 +135,7 @@ public class MissedCallNotifierImpl extends CallsManagerListenerBase implements
    // Used to track the number of missed calls.
    private ConcurrentMap<UserHandle, AtomicInteger> mMissedCallCounts;

    private UserHandle userToLoadAfterBootComplete;
    private List<UserHandle> mUsersToLoadAfterBootComplete = new ArrayList<>();

    public MissedCallNotifierImpl(Context context, PhoneAccountRegistrar phoneAccountRegistrar,
            DefaultDialerCache defaultDialerCache) {
@@ -271,7 +272,7 @@ public class MissedCallNotifierImpl extends CallsManagerListenerBase implements
    }

    private void showMissedCallNotification(@NonNull CallInfo callInfo, UserHandle userHandle) {
        Log.i(this, "showMissedCallNotification()");
        Log.i(this, "showMissedCallNotification: userHandle=%d", userHandle.getIdentifier());
        mMissedCallCounts.putIfAbsent(userHandle, new AtomicInteger(0));
        int missCallCounts = mMissedCallCounts.get(userHandle).incrementAndGet();

@@ -537,10 +538,14 @@ public class MissedCallNotifierImpl extends CallsManagerListenerBase implements
    @Override
    public void reloadAfterBootComplete(final CallerInfoLookupHelper callerInfoLookupHelper,
            CallInfoFactory callInfoFactory) {
        if (userToLoadAfterBootComplete != null) {
            reloadFromDatabase(callerInfoLookupHelper,
                    callInfoFactory, userToLoadAfterBootComplete);
            userToLoadAfterBootComplete = null;
        if (!mUsersToLoadAfterBootComplete.isEmpty()) {
            for (UserHandle handle : mUsersToLoadAfterBootComplete) {
                Log.i(this, "reloadAfterBootComplete: user=%d", handle.getIdentifier());
                reloadFromDatabase(callerInfoLookupHelper, callInfoFactory, handle);
            }
            mUsersToLoadAfterBootComplete.clear();
        } else {
            Log.i(this, "reloadAfterBootComplete: no user(s) to check; skipping reload.");
        }
    }
    /**
@@ -549,11 +554,12 @@ public class MissedCallNotifierImpl extends CallsManagerListenerBase implements
    @Override
    public void reloadFromDatabase(final CallerInfoLookupHelper callerInfoLookupHelper,
            CallInfoFactory callInfoFactory, final UserHandle userHandle) {
        Log.d(this, "reloadFromDatabase()...");
        Log.d(this, "reloadFromDatabase: user=%d", userHandle.getIdentifier());
        if (TelecomSystem.getInstance() == null || !TelecomSystem.getInstance().isBootComplete()) {
            Log.i(this, "Boot not yet complete -- call log db may not be available. Deferring " +
                    "loading until boot complete.");
            userToLoadAfterBootComplete = userHandle;
            Log.i(this, "reloadFromDatabase: Boot not yet complete -- call log db may not be "
                    + "available. Deferring loading until boot complete for user %d",
                    userHandle.getIdentifier());
            mUsersToLoadAfterBootComplete.add(userHandle);
            return;
        }