diff options
author | Andrew Lee <anwlee@google.com> | 2015-10-12 15:04:13 -0700 |
---|---|---|
committer | Andrew Lee <anwlee@google.com> | 2015-10-12 17:45:59 -0700 |
commit | 257368c2dff97da3b9be7653190699b5686e1b56 (patch) | |
tree | 2bbb9af135ccf49b967b850e1a5accea1a26fbf9 /src | |
parent | b01520f92d03560d6f5423875db06a515d3455a7 (diff) |
Implement behavior for import settings visibility.
Check to see if there are any contacts being sent to voicemail.
If true, show the import settings in the BlockedNumberFragment,
otherwise hide those settings.
Bug: 23351616
Change-Id: I370d80508571ac654d8c10afab332b552f8dd99e
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/filterednumber/BlockedNumberFragment.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/com/android/dialer/filterednumber/BlockedNumberFragment.java b/src/com/android/dialer/filterednumber/BlockedNumberFragment.java index e12fd6b38..5740305f7 100644 --- a/src/com/android/dialer/filterednumber/BlockedNumberFragment.java +++ b/src/com/android/dialer/filterednumber/BlockedNumberFragment.java @@ -21,7 +21,9 @@ import android.content.CursorLoader; import android.content.Intent; import android.content.Loader; import android.database.Cursor; +import android.os.AsyncTask; import android.os.Bundle; +import android.provider.ContactsContract.Contacts; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -32,7 +34,16 @@ import com.android.dialer.database.FilteredNumberContract; public class BlockedNumberFragment extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor>, View.OnClickListener { + private static class SendToVoicemailContactQuery { + static final String[] PROJECTION = { + Contacts._ID + }; + + static final String SELECT_SEND_TO_VOICEMAIL_TRUE = Contacts.SEND_TO_VOICEMAIL + "=1"; + } + private BlockedNumberAdapter mAdapter; + private View mImportSettings; @Override public void onActivityCreated(Bundle savedInstanceState) { @@ -47,6 +58,8 @@ public class BlockedNumberFragment extends ListFragment implements getActivity().findViewById(R.id.add_number_button).setOnClickListener(this); getListView().getEmptyView().findViewById(R.id.add_number_button).setOnClickListener(this); + + mImportSettings = getActivity().findViewById(R.id.importsettings); } @Override @@ -62,6 +75,12 @@ public class BlockedNumberFragment extends ListFragment implements } @Override + public void onResume() { + super.onResume(); + checkForSendToVoicemailContact(); + } + + @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.blocked_number_fragment, container, false); @@ -102,4 +121,44 @@ public class BlockedNumberFragment extends ListFragment implements manageBlockedNumbersActivity.enterSearchUi(); } } + + /** + * Checks if there exists a contact with {@code Contacts.SEND_TO_VOICEMAIL} set to true, + * and updates the visibility of the import settings buttons accordingly. + */ + private void checkForSendToVoicemailContact() { + final AsyncTask task = new AsyncTask<Object, Void, Boolean>() { + @Override + public Boolean doInBackground(Object[] params) { + if (getActivity() == null) { + return false; + } + + final Cursor cursor = getActivity().getContentResolver().query( + Contacts.CONTENT_URI, + SendToVoicemailContactQuery.PROJECTION, + SendToVoicemailContactQuery.SELECT_SEND_TO_VOICEMAIL_TRUE, + null, + null); + + boolean hasSendToVoicemailContacts = false; + if (cursor != null) { + try { + hasSendToVoicemailContacts = cursor.getCount() > 0; + } finally { + cursor.close(); + } + } + + return hasSendToVoicemailContacts; + } + + @Override + public void onPostExecute(Boolean hasSendToVoicemailContact) { + final int visibility = hasSendToVoicemailContact ? View.VISIBLE : View.GONE; + mImportSettings.setVisibility(visibility); + } + }; + task.execute(); + } } |