diff options
author | Rohit Yengisetty <rohit@cyngn.com> | 2016-01-20 16:17:08 -0800 |
---|---|---|
committer | Rohit Yengisetty <rohit@cyngn.com> | 2016-01-20 16:17:08 -0800 |
commit | 60502a861a5fa7bc1f6ea7c4c8618ecfd310c18d (patch) | |
tree | 75713846803a6479b0fea68c09d92e81880f2eb2 /src | |
parent | d6302ae725bf1058e24bafef177a7c81384a4662 (diff) | |
download | android_packages_apps_ContactsCommon-60502a861a5fa7bc1f6ea7c4c8618ecfd310c18d.tar.gz android_packages_apps_ContactsCommon-60502a861a5fa7bc1f6ea7c4c8618ecfd310c18d.tar.bz2 android_packages_apps_ContactsCommon-60502a861a5fa7bc1f6ea7c4c8618ecfd310c18d.zip |
Refactor BlockContactHelper
Change-Id: Ic10174bc1a9fb9bf1c68aa2efc25472dd8c656d6
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/contacts/common/activity/fragment/BlockContactDialogFragment.java | 6 | ||||
-rw-r--r-- | src/com/android/contacts/common/util/BlockContactHelper.java | 59 |
2 files changed, 32 insertions, 33 deletions
diff --git a/src/com/android/contacts/common/activity/fragment/BlockContactDialogFragment.java b/src/com/android/contacts/common/activity/fragment/BlockContactDialogFragment.java index cb4e099b..b07d914d 100644 --- a/src/com/android/contacts/common/activity/fragment/BlockContactDialogFragment.java +++ b/src/com/android/contacts/common/activity/fragment/BlockContactDialogFragment.java @@ -62,10 +62,12 @@ public class BlockContactDialogFragment extends DialogFragment String checkboxDescription = TextUtils.isEmpty(lookupProviderName) ? null : - hostActivity.getResources().getString(R.string.block_dialog_report_spam, + hostActivity.getResources().getString( + blockMode ? R.string.block_dialog_report_spam : + R.string.block_dialog_report_nonspam, lookupProviderName); - if (!blockMode || TextUtils.isEmpty(checkboxDescription)) { + if (TextUtils.isEmpty(checkboxDescription)) { mNotifyProviderCheckBox.setChecked(false); mNotifyProviderCheckBox.setVisibility(View.GONE); } else { diff --git a/src/com/android/contacts/common/util/BlockContactHelper.java b/src/com/android/contacts/common/util/BlockContactHelper.java index c605a978..5d10b556 100644 --- a/src/com/android/contacts/common/util/BlockContactHelper.java +++ b/src/com/android/contacts/common/util/BlockContactHelper.java @@ -4,11 +4,7 @@ import android.app.DialogFragment; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; import android.telephony.PhoneNumberUtils; -import android.text.TextUtils; -import com.android.contacts.common.R; import com.android.contacts.common.activity.fragment.BlockContactDialogFragment; import com.android.contacts.common.model.Contact; import com.android.contacts.common.model.RawContact; @@ -32,7 +28,7 @@ public class BlockContactHelper { private volatile boolean mIsProviderInitialized; private boolean mBackgroundTaskCompleted; - public enum BlockMode { + public enum BlockOperation { BLOCK, UNBLOCK } @@ -50,9 +46,14 @@ public class BlockContactHelper { mBackgroundTask = new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { - if (mContact == null) return null; + if (mContact == null) { + return null; + } + + // reset blacklist status + mIsBlacklisted = false; // check blacklist status of all of the contact's numbers - contact: + blacklist_search: for (RawContact rawContact : mContact.getRawContacts()) { List<DataItem> data = rawContact.getDataItems(); for(DataItem item : data) { @@ -60,7 +61,7 @@ public class BlockContactHelper { PhoneDataItem phoneDataItem = (PhoneDataItem) item; if (isBlacklisted(phoneDataItem.getNumber())) { mIsBlacklisted = true; - break contact; + break blacklist_search; } } } @@ -99,11 +100,11 @@ public class BlockContactHelper { != BlacklistUtils.MATCH_NONE; } - public DialogFragment getBlockContactDialog(BlockMode blockMode) { + public DialogFragment getBlockContactDialog(BlockOperation blockOperation) { BlockContactDialogFragment f = new BlockContactDialogFragment(); Bundle bundle = new Bundle(); - int launchMode = blockMode == BlockMode.BLOCK ? BlockContactDialogFragment.BLOCK_MODE : - BlockContactDialogFragment.UNBLOCK_MODE; + int launchMode = blockOperation == BlockOperation.BLOCK ? + BlockContactDialogFragment.BLOCK_MODE : BlockContactDialogFragment.UNBLOCK_MODE; bundle.putInt(BlockContactDialogFragment.KEY_LAUNCH_MODE, launchMode); String providerName = mLookupProvider.getDisplayName(); bundle.putString(BlockContactDialogFragment.KEY_CURRENT_LOOKUP_PROVIDER_NAME, providerName); @@ -113,41 +114,37 @@ public class BlockContactHelper { } public void blockContact(boolean notifyLookupProvider) { - for (RawContact rawContact : mContact.getRawContacts()) { - List<DataItem> data = rawContact.getDataItems(); - for(DataItem item : data) { - if (item instanceof PhoneDataItem) { - PhoneDataItem phoneDataItem = (PhoneDataItem) item; - String number = phoneDataItem.getNumber(); - toggleBlacklistStatus(number, true /*block contact*/); - - if (notifyLookupProvider && mIsProviderInitialized && - mLookupProvider.supportsSpamReporting()) { - String formattedNumber = PhoneNumberHelper.formatPhoneNumber(mContext, - number); - mLookupProvider.markAsSpam(formattedNumber); - } - } - } - } - + applyBlockOperationOnContact(BlockOperation.BLOCK, notifyLookupProvider); gatherDataInBackground(); } public void unblockContact(boolean notifyLookupProvider) { + applyBlockOperationOnContact(BlockOperation.UNBLOCK, notifyLookupProvider); + gatherDataInBackground(); + } + + public void applyBlockOperationOnContact(BlockOperation blockOperation, boolean notifyLookupProvider) { + boolean shouldBlock = blockOperation == BlockOperation.BLOCK; for (RawContact rawContact : mContact.getRawContacts()) { List<DataItem> data = rawContact.getDataItems(); for(DataItem item : data) { if (item instanceof PhoneDataItem) { PhoneDataItem phoneDataItem = (PhoneDataItem) item; String number = phoneDataItem.getNumber(); - toggleBlacklistStatus(number, false /*unblock contact*/); + toggleBlacklistStatus(number, shouldBlock); if (notifyLookupProvider && mIsProviderInitialized && mLookupProvider.supportsSpamReporting()) { + String formattedNumber = PhoneNumberHelper.formatPhoneNumber(mContext, number); - mLookupProvider.unmarkAsSpam(formattedNumber); + switch (blockOperation) { + case BLOCK: + mLookupProvider.markAsSpam(formattedNumber); + break; + case UNBLOCK: + mLookupProvider.unmarkAsSpam(formattedNumber); + } } } } |