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

Commit 7f768367 authored by Nancy Chen's avatar Nancy Chen Committed by Etan Cohen
Browse files

Ignore all voicemails in the call log marked "deleted".

With the addition of the visual voicemail sync adapter, we want to have
a flag in the voicemail provider that will indicate that a voicemail was
deleted but not yet synced to the server. However, we no longer want
the entry to show up in the dialer call log, so make sure to ignore all
voicemails marked with "deleted" when querying the call log table.

Bug: 19236241
Change-Id: Ib80537c3b8630dd99b5e2b9b20d81015eafd114c
parent 8730ff59
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -32,11 +32,13 @@ import android.os.Looper;
import android.os.Message;
import android.provider.CallLog.Calls;
import android.provider.VoicemailContract.Status;
import android.provider.VoicemailContract.Voicemails;
import android.util.Log;

import com.android.common.io.MoreCloseables;
import com.android.contacts.common.database.NoNullCursorAsyncQueryHandler;
import com.android.dialer.voicemail.VoicemailStatusHelperImpl;

import com.google.common.collect.Lists;

import java.lang.ref.WeakReference;
@@ -140,15 +142,18 @@ public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler {
        StringBuilder where = new StringBuilder();
        List<String> selectionArgs = Lists.newArrayList();

        // Ignore voicemails marked as deleted
        where.append(Voicemails.DELETED);
        where.append(" = 0");

        if (newOnly) {
            where.append(" AND ");
            where.append(Calls.NEW);
            where.append(" = 1");
        }

        if (callType > CALL_TYPE_ALL) {
            if (where.length() > 0) {
            where.append(" AND ");
            }
            // Add a clause to fetch only items of type voicemail.
            where.append(String.format("(%s = ?)", Calls.TYPE));
            // Add a clause to fetch only items newer than the requested date
@@ -156,9 +161,7 @@ public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler {
        }

        if (newerThan > 0) {
            if (where.length() > 0) {
            where.append(" AND ");
            }
            where.append(String.format("(%s > ?)", Calls.DATE));
            selectionArgs.add(Long.toString(newerThan));
        }