1ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian/* 2ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Copyright (C) 2015 The Android Open Source Project 3ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * 4ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Licensed under the Apache License, Version 2.0 (the "License"); 5ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * you may not use this file except in compliance with the License. 6ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * You may obtain a copy of the License at 7ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * 8ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * http://www.apache.org/licenses/LICENSE-2.0 9ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * 10ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Unless required by applicable law or agreed to in writing, software 11ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * distributed under the License is distributed on an "AS IS" BASIS, 12ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * See the License for the specific language governing permissions and 14ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * limitations under the License. 15ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian */ 16ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianpackage com.android.dialer.app.filterednumber; 17ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 18ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.app.FragmentManager; 19ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.content.Context; 20ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.database.Cursor; 21ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.telephony.PhoneNumberUtils; 22ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.view.View; 23ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport com.android.contacts.common.ContactPhotoManager; 24ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport com.android.dialer.app.R; 25ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport com.android.dialer.blocking.BlockNumberDialogFragment; 26ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns; 2710b34a5ebf12e97ecba0caf3c8e30b476b038a96Eric Erfanianimport com.android.dialer.location.GeoUtil; 288369df095a73a77b3715f8ae7ba06089cebca4ceEric Erfanianimport com.android.dialer.logging.InteractionEvent; 29ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport com.android.dialer.logging.Logger; 30ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport com.android.dialer.phonenumbercache.ContactInfoHelper; 31ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 32ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianpublic class BlockedNumbersAdapter extends NumbersAdapter { 33ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 34ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian private BlockedNumbersAdapter( 35ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian Context context, 36ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian FragmentManager fragmentManager, 37ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian ContactInfoHelper contactInfoHelper, 38ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian ContactPhotoManager contactPhotoManager) { 39ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian super(context, fragmentManager, contactInfoHelper, contactPhotoManager); 40ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 41ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 42ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public static BlockedNumbersAdapter newBlockedNumbersAdapter( 43ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian Context context, FragmentManager fragmentManager) { 44ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return new BlockedNumbersAdapter( 45ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian context, 46ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian fragmentManager, 47ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian new ContactInfoHelper(context, GeoUtil.getCurrentCountryIso(context)), 48ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian ContactPhotoManager.getInstance(context)); 49ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 50ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 51ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian @Override 52ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public void bindView(View view, final Context context, Cursor cursor) { 53ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian super.bindView(view, context, cursor); 54ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian final Integer id = cursor.getInt(cursor.getColumnIndex(FilteredNumberColumns._ID)); 55ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian final String countryIso = 56ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian cursor.getString(cursor.getColumnIndex(FilteredNumberColumns.COUNTRY_ISO)); 57ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian final String number = cursor.getString(cursor.getColumnIndex(FilteredNumberColumns.NUMBER)); 58ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 59ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian final View deleteButton = view.findViewById(R.id.delete_button); 60ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian deleteButton.setOnClickListener( 61ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian new View.OnClickListener() { 62ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian @Override 63ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public void onClick(View view) { 64ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian BlockNumberDialogFragment.show( 65ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian id, 66ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian number, 67ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian countryIso, 68ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian PhoneNumberUtils.formatNumber(number, countryIso), 69ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian R.id.blocked_numbers_activity_container, 70ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian getFragmentManager(), 71ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian new BlockNumberDialogFragment.Callback() { 72ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian @Override 73ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public void onFilterNumberSuccess() {} 74ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 75ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian @Override 76ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public void onUnfilterNumberSuccess() { 77ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian Logger.get(context) 78ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian .logInteraction(InteractionEvent.Type.UNBLOCK_NUMBER_MANAGEMENT_SCREEN); 79ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 80ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 81ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian @Override 82ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public void onChangeFilteredNumberUndo() {} 83ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian }); 84ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 85ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian }); 86ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 87ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian updateView(view, number, countryIso); 88ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 89ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 90ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian @Override 91ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public boolean isEmpty() { 92ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian // Always return false, so that the header with blocking-related options always shows. 93ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return false; 94ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 95ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian} 96