summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2015-10-12 15:04:13 -0700
committerAndrew Lee <anwlee@google.com>2015-10-12 17:45:59 -0700
commit257368c2dff97da3b9be7653190699b5686e1b56 (patch)
tree2bbb9af135ccf49b967b850e1a5accea1a26fbf9 /src
parentb01520f92d03560d6f5423875db06a515d3455a7 (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.java59
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();
+ }
}