diff options
author | Danesh M <daneshm90@gmail.com> | 2014-11-06 20:25:44 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2014-11-07 19:26:22 +0000 |
commit | 6d422e55706df8ad01016af970e92b7f49f2d7f3 (patch) | |
tree | 644bf632313573e327a95d1b33c9ddd308be1c53 | |
parent | 16a17cd0e273efffe7b163c3a248807ec4475e00 (diff) | |
download | android_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.xml | 2 | ||||
-rw-r--r-- | res/menu/call_stats_details_options.xml | 2 | ||||
-rw-r--r-- | res/values/cm_strings.xml | 2 | ||||
-rwxr-xr-x | src/com/android/dialer/CallDetailActivity.java | 29 | ||||
-rw-r--r-- | src/com/android/dialer/calllog/ContactInfoHelper.java | 14 | ||||
-rw-r--r-- | src/com/android/dialer/callstats/CallStatsDetailActivity.java | 28 |
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() { |