summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2015-10-21 00:16:37 -0700
committerAndrew Lee <anwlee@google.com>2015-10-21 13:39:49 -0700
commit7844b1d11b6f8715ff2782cd3d01a3d1c397f052 (patch)
tree19fc0265d0051bac31730dd50abdf804c7238e05 /src
parentd625d28ec6cf22c128d0ef0b8e64a9fff4b64aec (diff)
Disable call blocking after emergency call.
Will be disabled for 48 hours after an emergency call. + Add utility for noting last time of an emergency call. + Add utility for comparing current time to last time of an emergency call. + If current time is within 48 hours of emergency call, display text in settings explaining why call blocking is disabled. Bug: 24418319 Change-Id: I6824340f04fae17b73f17843a9f6ef991afa0327
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dialer/filterednumber/BlockedNumbersFragment.java11
-rw-r--r--src/com/android/dialer/filterednumber/FilteredNumbersUtil.java32
2 files changed, 41 insertions, 2 deletions
diff --git a/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java b/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
index c478b8301..7788cbe1b 100644
--- a/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
+++ b/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
@@ -52,6 +52,7 @@ public class BlockedNumbersFragment extends ListFragment
private Switch mHideSettingSwitch;
private View mImportSettings;
+ private View mBlockedNumbersDisabledForEmergency;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
@@ -80,6 +81,8 @@ public class BlockedNumbersFragment extends ListFragment
});
mImportSettings = getActivity().findViewById(R.id.import_settings);
+ mBlockedNumbersDisabledForEmergency =
+ getActivity().findViewById(R.id.blocked_numbers_disabled_for_emergency);
getActivity().findViewById(R.id.import_button).setOnClickListener(this);;
getActivity().findViewById(R.id.view_numbers_button).setOnClickListener(this);
@@ -122,8 +125,14 @@ public class BlockedNumbersFragment extends ListFragment
}
});
- mHideSettingSwitch.setChecked(FilteredNumbersUtil.shouldHideBlockedCalls(getActivity()));
+ mHideSettingSwitch.setChecked(FilteredNumbersUtil.shouldHideBlockedCalls(getContext()));
mCallLogQueryHandler.fetchVoicemailStatus();
+
+ if (FilteredNumbersUtil.hasRecentEmergencyCall(getContext())) {
+ mBlockedNumbersDisabledForEmergency.setVisibility(View.VISIBLE);
+ } else {
+ mBlockedNumbersDisabledForEmergency.setVisibility(View.GONE);
+ }
}
@Override
diff --git a/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java b/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java
index 8bfcea06b..b0423300e 100644
--- a/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java
+++ b/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java
@@ -44,6 +44,11 @@ import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
public class FilteredNumbersUtil {
private static final String HIDE_BLOCKED_CALLS_PREF_KEY = "hide_blocked_calls";
+ // Pref key for storing the time, in milliseconds after epoch, of end of the last emergency call.
+ private static final String LAST_EMERGENCY_CALL_PREF_KEY = "last_emergency_call";
+
+ // Disable incoming call blocking if there was a call within the past 2 days.
+ private static final long EMERGENCY_CALL_RECENCY_THRESHOLD_MS = 1000 * 60 * 60 * 24 * 2;
public interface CheckForSendToVoicemailContactListener {
public void onComplete(boolean hasSendToVoicemailContact);
@@ -238,7 +243,32 @@ public class FilteredNumbersUtil {
}
PreferenceManager.getDefaultSharedPreferences(context)
.edit()
- .putBoolean(FilteredNumbersUtil.HIDE_BLOCKED_CALLS_PREF_KEY, shouldHide)
+ .putBoolean(HIDE_BLOCKED_CALLS_PREF_KEY, shouldHide)
+ .apply();
+ }
+
+ public static boolean hasRecentEmergencyCall(Context context) {
+ if (context == null) {
+ return false;
+ }
+
+ Long lastEmergencyCallTime = PreferenceManager.getDefaultSharedPreferences(context)
+ .getLong(LAST_EMERGENCY_CALL_PREF_KEY, 0);
+ if (lastEmergencyCallTime == 0) {
+ return false;
+ }
+
+ return (System.currentTimeMillis() - lastEmergencyCallTime)
+ < EMERGENCY_CALL_RECENCY_THRESHOLD_MS;
+ }
+
+ public static void recordLastEmergencyCallTime(Context context) {
+ if (context == null) {
+ return;
+ }
+ PreferenceManager.getDefaultSharedPreferences(context)
+ .edit()
+ .putLong(LAST_EMERGENCY_CALL_PREF_KEY, System.currentTimeMillis())
.apply();
}