summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanesh M <daneshm90@gmail.com>2014-11-06 20:25:44 -0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2014-11-07 19:26:22 +0000
commit6d422e55706df8ad01016af970e92b7f49f2d7f3 (patch)
tree644bf632313573e327a95d1b33c9ddd308be1c53
parent16a17cd0e273efffe7b163c3a248807ec4475e00 (diff)
downloadandroid_packages_apps_Dialer-6d422e55706df8ad01016af970e92b7f49f2d7f3.tar.gz
android_packages_apps_Dialer-6d422e55706df8ad01016af970e92b7f49f2d7f3.tar.bz2
android_packages_apps_Dialer-6d422e55706df8ad01016af970e92b7f49f2d7f3.zip
Dialer : Add ability to delete from blacklist
Change-Id: I364cd26d178fb84eea314a2cd0d8f6ec23010857
-rw-r--r--res/menu/call_details_options.xml2
-rw-r--r--res/menu/call_stats_details_options.xml2
-rw-r--r--res/values/cm_strings.xml2
-rwxr-xr-xsrc/com/android/dialer/CallDetailActivity.java29
-rw-r--r--src/com/android/dialer/calllog/ContactInfoHelper.java14
-rw-r--r--src/com/android/dialer/callstats/CallStatsDetailActivity.java28
6 files changed, 68 insertions, 9 deletions
diff --git a/res/menu/call_details_options.xml b/res/menu/call_details_options.xml
index b34fc5c09..c3fee5a92 100644
--- a/res/menu/call_details_options.xml
+++ b/res/menu/call_details_options.xml
@@ -39,6 +39,6 @@
<item
android:id="@+id/menu_add_to_blacklist"
android:title="@string/menu_add_to_blacklist"
- android:onClick="onMenuAddToBlacklist"
+ android:onClick="onMenuBlacklist"
/>
</menu>
diff --git a/res/menu/call_stats_details_options.xml b/res/menu/call_stats_details_options.xml
index c16db3315..c89611b7b 100644
--- a/res/menu/call_stats_details_options.xml
+++ b/res/menu/call_stats_details_options.xml
@@ -22,6 +22,6 @@
<item
android:id="@+id/menu_add_to_blacklist"
android:title="@string/menu_add_to_blacklist"
- android:onClick="onMenuAddToBlacklist"
+ android:onClick="onMenuBlacklist"
/>
</menu>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
index 4df61589b..19a55b94a 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -48,6 +48,8 @@
<string name="menu_add_to_blacklist">Add to blacklist</string>
<string name="toast_added_to_blacklist"><xliff:g id="number">%s</xliff:g> added to blacklist</string>
+ <string name="menu_delete_from_blacklist">Delete from blacklist</string>
+ <string name="toast_deleted_from_blacklist"><xliff:g id="number">%s</xliff:g> deleted from blacklist</string>
<!-- Forward lookup -->
<string name="nearby_places">Nearby places</string>
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index 97fafc1f5..711b616bd 100755
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -70,6 +70,7 @@ import com.android.dialer.voicemail.VoicemailStatusHelper.StatusMessage;
import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
import com.android.services.callrecorder.CallRecordingDataStore;
import com.android.internal.telephony.MSimConstants;
+import com.android.internal.telephony.util.BlacklistUtils;
import java.util.List;
@@ -142,6 +143,9 @@ public class CallDetailActivity extends Activity implements ProximitySensorAware
private CallRecordingDataStore mCallRecordingDataStore = new CallRecordingDataStore();
private CallRecordingPlayer mCallRecordingPlayer = new CallRecordingPlayer();
+ private MenuItem mBlackListItem;
+ private boolean mBlackListed;
+
/** Listener to changes in the proximity sensor state. */
private class ProximitySensorListener implements ProximitySensorManager.Listener {
/** Used to show a blank view and hide the action bar. */
@@ -589,10 +593,25 @@ public class CallDetailActivity extends Activity implements ProximitySensorAware
menu.findItem(R.id.menu_calllog_detail_video_call).setVisible(mCallDetailHeader.hasVideoCallOption());
menu.findItem(R.id.menu_remove_from_call_log).setVisible(mHasRemoveFromCallLogOption);
menu.findItem(R.id.menu_edit_number_before_call).setVisible(mHasEditNumberBeforeCallOption);
- menu.findItem(R.id.menu_add_to_blacklist).setVisible(mHasAddToBlacklistOption);
+ mBlackListItem = menu.findItem(R.id.menu_add_to_blacklist);
+ updateBlacklistItem();
menu.findItem(R.id.menu_trash).setVisible(mHasTrashOption);
return super.onPrepareOptionsMenu(menu);
}
+
+ private void updateBlacklistItem() {
+ int isBlacklisted = BlacklistUtils.isListed(this, mNumber, BlacklistUtils.BLOCK_CALLS);
+ mBlackListed = isBlacklisted != BlacklistUtils.MATCH_NONE;
+ System.out.println("Blacklisted " + mBlackListed);
+ mBlackListItem.setVisible(mHasAddToBlacklistOption);
+
+ int blacklistTitleId = R.string.menu_add_to_blacklist;
+ if (mBlackListed) {
+ blacklistTitleId = R.string.menu_delete_from_blacklist;
+ }
+ mBlackListItem.setTitle(blacklistTitleId);
+ }
+
public void onMenuVTCall(MenuItem menuItem) {
startActivity(CallDetailHeader.getVTCallIntent(mNumber));
}
@@ -625,8 +644,12 @@ public class CallDetailActivity extends Activity implements ProximitySensorAware
startActivity(new Intent(Intent.ACTION_DIAL, CallUtil.getCallUri(mNumber)));
}
- public void onMenuAddToBlacklist(MenuItem menuItem) {
- mContactInfoHelper.addNumberToBlacklist(mNumber);
+ public void onMenuBlacklist(MenuItem menuItem) {
+ if (mBlackListed) {
+ mContactInfoHelper.removeNumberFromBlacklist(mNumber);
+ } else {
+ mContactInfoHelper.addNumberToBlacklist(mNumber);
+ }
}
public void onMenuTrashVoicemail(MenuItem menuItem) {
diff --git a/src/com/android/dialer/calllog/ContactInfoHelper.java b/src/com/android/dialer/calllog/ContactInfoHelper.java
index b5f76c15b..2c8d1b2f7 100644
--- a/src/com/android/dialer/calllog/ContactInfoHelper.java
+++ b/src/com/android/dialer/calllog/ContactInfoHelper.java
@@ -290,6 +290,20 @@ public class ContactInfoHelper {
}
/**
+ * Requests the given number to be added to the phone blacklist
+ *
+ * @param number the number to be blacklisted
+ */
+ public void removeNumberFromBlacklist(String number) {
+ if (BlacklistUtils.addOrUpdate(mContext, number,
+ BlacklistUtils.MATCH_NONE, BlacklistUtils.BLOCK_CALLS)) {
+ // Give the user some feedback
+ String message = mContext.getString(R.string.toast_deleted_from_blacklist, number);
+ Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ /**
* Parses the given URI to determine the original lookup key of the contact.
*/
public static String getLookupKeyFromUri(Uri lookupUri) {
diff --git a/src/com/android/dialer/callstats/CallStatsDetailActivity.java b/src/com/android/dialer/callstats/CallStatsDetailActivity.java
index d35610c0e..43073aa48 100644
--- a/src/com/android/dialer/callstats/CallStatsDetailActivity.java
+++ b/src/com/android/dialer/callstats/CallStatsDetailActivity.java
@@ -42,6 +42,7 @@ import com.android.dialer.calllog.ContactInfoHelper;
import com.android.dialer.calllog.PhoneNumberDisplayHelper;
import com.android.dialer.calllog.PhoneNumberUtilsWrapper;
import com.android.dialer.widget.PieChartView;
+import com.android.internal.telephony.util.BlacklistUtils;
/**
* Activity to display detailed information about a callstat item
@@ -75,6 +76,8 @@ public class CallStatsDetailActivity extends Activity {
private CallStatsDetails mData;
private String mNumber = null;
+ private MenuItem mBlackListItem;
+ private boolean mBlackListed;
private class UpdateContactTask extends AsyncTask<String, Void, ContactInfo> {
protected ContactInfo doInBackground(String... strings) {
@@ -259,11 +262,24 @@ public class CallStatsDetailActivity extends Activity {
public boolean onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.menu_edit_number_before_call).setVisible(
mCallDetailHeader.canEditNumberBeforeCall());
- menu.findItem(R.id.menu_add_to_blacklist).setVisible(
- mCallDetailHeader.canPlaceCallsTo());
+ mBlackListItem = menu.findItem(R.id.menu_add_to_blacklist);
+ updateBlacklistItem();
+
return super.onPrepareOptionsMenu(menu);
}
+ private void updateBlacklistItem() {
+ int isBlacklisted = BlacklistUtils.isListed(this, mNumber, BlacklistUtils.BLOCK_CALLS);
+ mBlackListed = isBlacklisted != BlacklistUtils.MATCH_NONE;
+ System.out.println("Blacklisted " + mBlackListed);
+ mBlackListItem.setVisible(mCallDetailHeader.canPlaceCallsTo());
+ int blacklistTitleId = R.string.menu_add_to_blacklist;
+ if (mBlackListed) {
+ blacklistTitleId = R.string.menu_delete_from_blacklist;
+ }
+ mBlackListItem.setTitle(blacklistTitleId);
+ }
+
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
@@ -281,8 +297,12 @@ public class CallStatsDetailActivity extends Activity {
startActivity(new Intent(Intent.ACTION_DIAL, CallUtil.getCallUri(mNumber)));
}
- public void onMenuAddToBlacklist(MenuItem menuItem) {
- mContactInfoHelper.addNumberToBlacklist(mNumber);
+ public void onMenuBlacklist(MenuItem menuItem) {
+ if (mBlackListed) {
+ mContactInfoHelper.removeNumberFromBlacklist(mNumber);
+ } else {
+ mContactInfoHelper.addNumberToBlacklist(mNumber);
+ }
}
private void onHomeSelected() {