summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml18
-rw-r--r--src/com/android/dialer/calllog/MissedCallNotifier.java38
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);
}