1 /* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.dialer.filterednumber; 17 18 import android.app.ListFragment; 19 import android.app.LoaderManager; 20 import android.content.Context; 21 import android.content.CursorLoader; 22 import android.content.Loader; 23 import android.database.Cursor; 24 import android.os.AsyncTask; 25 import android.os.Bundle; 26 import android.provider.ContactsContract.CommonDataKinds.Phone; 27 import android.provider.ContactsContract.Contacts; 28 import android.support.v7.app.ActionBar; 29 import android.support.v7.app.AppCompatActivity; 30 import android.text.TextUtils; 31 import android.util.Log; 32 import android.view.LayoutInflater; 33 import android.view.View; 34 import android.view.ViewGroup; 35 36 import com.android.dialer.R; 37 import com.android.dialer.database.FilteredNumberContract; 38 import com.android.dialer.filterednumber.FilteredNumbersUtil.ImportSendToVoicemailContactsListener; 39 40 public class ViewNumbersToImportFragment extends ListFragment 41 implements LoaderManager.LoaderCallbacks<Cursor>, 42 View.OnClickListener { 43 44 private ViewNumbersToImportAdapter mAdapter; 45 46 @Override getContext()47 public Context getContext() { 48 return getActivity(); 49 } 50 51 @Override onActivityCreated(Bundle savedInstanceState)52 public void onActivityCreated(Bundle savedInstanceState) { 53 super.onActivityCreated(savedInstanceState); 54 55 if (mAdapter == null) { 56 mAdapter = ViewNumbersToImportAdapter.newViewNumbersToImportAdapter( 57 getContext(), getActivity().getFragmentManager()); 58 } 59 setListAdapter(mAdapter); 60 } 61 62 @Override onDestroy()63 public void onDestroy() { 64 setListAdapter(null); 65 super.onDestroy(); 66 } 67 68 @Override onCreate(Bundle savedInstanceState)69 public void onCreate(Bundle savedInstanceState) { 70 super.onCreate(savedInstanceState); 71 getLoaderManager().initLoader(0, null, this); 72 } 73 74 @Override onResume()75 public void onResume() { 76 super.onResume(); 77 78 ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); 79 actionBar.setTitle(R.string.import_send_to_voicemail_numbers_label); 80 actionBar.setDisplayShowCustomEnabled(false); 81 actionBar.setDisplayHomeAsUpEnabled(true); 82 actionBar.setDisplayShowHomeEnabled(true); 83 actionBar.setDisplayShowTitleEnabled(true); 84 85 getActivity().findViewById(R.id.cancel_button).setOnClickListener(this); 86 getActivity().findViewById(R.id.import_button).setOnClickListener(this); 87 } 88 89 @Override onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)90 public View onCreateView( 91 LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 92 return inflater.inflate(R.layout.view_numbers_to_import_fragment, container, false); 93 } 94 95 @Override onCreateLoader(int id, Bundle args)96 public Loader<Cursor> onCreateLoader(int id, Bundle args) { 97 final CursorLoader cursorLoader = new CursorLoader( 98 getContext(), 99 Phone.CONTENT_URI, 100 FilteredNumbersUtil.PhoneQuery.PROJECTION, 101 FilteredNumbersUtil.PhoneQuery.SELECT_SEND_TO_VOICEMAIL_TRUE, 102 null, 103 null); 104 return cursorLoader; 105 } 106 107 @Override onLoadFinished(Loader<Cursor> loader, Cursor data)108 public void onLoadFinished(Loader<Cursor> loader, Cursor data) { 109 mAdapter.swapCursor(data); 110 } 111 112 @Override onLoaderReset(Loader<Cursor> loader)113 public void onLoaderReset(Loader<Cursor> loader) { 114 mAdapter.swapCursor(null); 115 } 116 117 @Override onClick(final View view)118 public void onClick(final View view) { 119 if (view.getId() == R.id.import_button) { 120 FilteredNumbersUtil.importSendToVoicemailContacts(getContext(), 121 new ImportSendToVoicemailContactsListener() { 122 @Override 123 public void onImportComplete() { 124 if (getActivity() != null) { 125 getActivity().onBackPressed(); 126 } 127 } 128 }); 129 } else if (view.getId() == R.id.cancel_button) { 130 getActivity().onBackPressed(); 131 } 132 } 133 } 134