diff options
author | Brandon Maxwell <maxwelb@google.com> | 2016-03-04 17:33:59 -0800 |
---|---|---|
committer | Brandon Maxwell <maxwelb@google.com> | 2016-03-10 11:58:22 -0800 |
commit | 3cb83e0eb5db07ce4c3feba9a19b8f9f674d357a (patch) | |
tree | 2873cd51873a0d9639c2caabc47c8d1362821b8e /src/com/android/dialer/calllog | |
parent | 5d635baea2d0510c5edc9df26681d802bc91c443 (diff) |
Fixing missed call notifications for FBE
+ Our new components for creating missed call notifications are not
marked as encryption aware so Telecom was always creating the missed
call notification.
+ This CL marks the appropriate components as encryption aware so
Telecom can check to see if we support putting up the notification.
+ Updated logic so missed call notifications only have 'callback' and
'message' actions when not locked.
+ Misc FBE cleanup
+ Since the call log is not available when on the File
based encryption lock screen, dismissed notifications will not
attempt to mark the calls as read; attempting do so causes
exceptions.
+ Updated AOSP Dialer to ensure that we don't store data in device
encrypted storage by default. This storage location is always
available, regardless of whether we're in the FBE locked state
or not. None of our preferences/databases need to be available in
this state, so this change causes the Dialer to store data in
credential encrypted storage by default. This storage location is
only available when the device is unlocked.
+ Updated AOSP Dialer so it doesn't use device encrypted storage by
default. This is because we currently don't want any of the
preferences/databases stored by the Dialer to be available when
FBE locked.
+ Updated AOSP Dialer so specific components must mark themselves as
encryption aware, rather than having everything aware because the
application is marked as such.
Bug: 27455726
Change-Id: Ib5d28267116ec007bf9beb57862796235460ddf5
Diffstat (limited to 'src/com/android/dialer/calllog')
-rw-r--r-- | src/com/android/dialer/calllog/MissedCallNotifier.java | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/com/android/dialer/calllog/MissedCallNotifier.java b/src/com/android/dialer/calllog/MissedCallNotifier.java index c422dd58d..98d02d095 100644 --- a/src/com/android/dialer/calllog/MissedCallNotifier.java +++ b/src/com/android/dialer/calllog/MissedCallNotifier.java @@ -33,6 +33,7 @@ import com.android.dialer.DialtactsActivity; import com.android.dialer.R; import com.android.dialer.calllog.CallLogNotificationsHelper.NewCall; import com.android.dialer.contactinfo.ContactPhotoLoader; +import com.android.dialer.compat.UserManagerCompat; import com.android.dialer.list.ListsFragment; import com.android.dialer.util.DialerUtils; import com.android.dialer.util.IntentUtil; @@ -153,8 +154,8 @@ public class MissedCallNotifier { // sensitive notification information. .setPublicVersion(publicBuilder.build()); - // Add additional actions when there is only 1 missed call, like call-back and SMS. - if (count == 1) { + // Add additional actions when there is only 1 missed call and the user isn't locked + if (UserManagerCompat.isUserUnlocked(mContext) && count == 1) { if (!TextUtils.isEmpty(number) && !TextUtils.equals( number, mContext.getString(R.string.handle_restricted))) { @@ -181,21 +182,24 @@ public class MissedCallNotifier { AsyncTask.execute(new Runnable() { @Override public void run() { - // Clear the list of new missed calls from the call log. - ContentValues values = new ContentValues(); - values.put(Calls.NEW, 0); - values.put(Calls.IS_READ, 1); - StringBuilder where = new StringBuilder(); - where.append(Calls.NEW); - where.append(" = 1 AND "); - where.append(Calls.TYPE); - where.append(" = ?"); - try { - mContext.getContentResolver().update(Calls.CONTENT_URI, values, - where.toString(), new String[]{ Integer.toString(Calls. - MISSED_TYPE) }); - } catch (IllegalArgumentException e) { - Log.w(TAG, "ContactsProvider update command failed", e); + // Call log is only accessible when unlocked. If that's the case, clear the list of + // new missed calls from the call log. + if (UserManagerCompat.isUserUnlocked(mContext)) { + ContentValues values = new ContentValues(); + values.put(Calls.NEW, 0); + values.put(Calls.IS_READ, 1); + StringBuilder where = new StringBuilder(); + where.append(Calls.NEW); + where.append(" = 1 AND "); + where.append(Calls.TYPE); + where.append(" = ?"); + try { + mContext.getContentResolver().update(Calls.CONTENT_URI, values, + where.toString(), new String[]{Integer.toString(Calls. + MISSED_TYPE)}); + } catch (IllegalArgumentException e) { + Log.w(TAG, "ContactsProvider update command failed", e); + } } getNotificationMgr().cancel(NOTIFICATION_TAG, NOTIFICATION_ID); } |