diff options
-rw-r--r-- | AndroidManifest.xml | 18 | ||||
-rw-r--r-- | src/com/android/dialer/calllog/MissedCallNotifier.java | 38 |
2 files changed, 31 insertions, 25 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c02d0f561..c39bd5b6c 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -69,8 +69,7 @@ android:supportsRtl="true" android:backupAgent='com.android.dialer.DialerBackupAgent' android:usesCleartextTraffic="false" - android:forceDeviceEncrypted="true" - android:encryptionAware="true"> + android:forceDeviceEncrypted="false"> <meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqrEAAAAIBXgtCEKQ6W0PXVnW-ZVia2KmlV2AxsTw3GjAeQ" /> @@ -86,6 +85,7 @@ android:icon="@mipmap/ic_launcher_phone" android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" android:resizeableActivity="true" + android:encryptionAware="true" > <intent-filter> <action android:name="android.intent.action.DIAL" /> @@ -281,10 +281,12 @@ <service android:name=".calllog.CallLogNotificationsService" + android:encryptionAware="true" android:exported="false" /> - <receiver android:name=".calllog.MissedCallNotificationReceiver"> + <receiver android:name=".calllog.MissedCallNotificationReceiver" + android:encryptionAware="true"> <intent-filter> <action android:name="android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION" /> </intent-filter> @@ -318,11 +320,6 @@ android:resizeableActivity="true"> </activity> - <!-- BroadcastReceiver for receiving Intents from Notification mechanism. --> - <receiver android:name="com.android.incallui.NotificationBroadcastReceiver" - android:encryptionAware="true" - android:exported="false" /> - <service android:name="com.android.incallui.InCallServiceImpl" android:permission="android.permission.BIND_INCALL_SERVICE" android:encryptionAware="true" > @@ -334,6 +331,11 @@ </intent-filter> </service> + <!-- BroadcastReceiver for receiving Intents from Notification mechanism. --> + <receiver android:name="com.android.incallui.NotificationBroadcastReceiver" + android:encryptionAware="true" + android:exported="false" /> + <provider android:name=".database.FilteredNumberProvider" android:authorities="com.android.dialer.database.filterednumberprovider" 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); } |