16fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong/* 26fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * Copyright (C) 2015 The Android Open Source Project 36fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * 46fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * Licensed under the Apache License, Version 2.0 (the "License"); 56fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * you may not use this file except in compliance with the License. 66fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * You may obtain a copy of the License at 76fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * 86fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * http://www.apache.org/licenses/LICENSE-2.0 96fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * 106fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * Unless required by applicable law or agreed to in writing, software 116fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * distributed under the License is distributed on an "AS IS" BASIS, 126fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * See the License for the specific language governing permissions and 146fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong * limitations under the License. 156fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong */ 166fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rongpackage com.android.dialer.filterednumber; 176fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong 18e98dd55998f2d427976a005c759c26d98785d9c9Andrew Leeimport android.app.FragmentManager; 19e98dd55998f2d427976a005c759c26d98785d9c9Andrew Leeimport android.content.Context; 20a5437e6882bde69cb795ed8d929c1024a8fef16eTa-wei Yenimport android.database.Cursor; 213a8f2d721ecc7500ecb285aeb8e0f60f3d70f1bbBrandon Maxwellimport android.telephony.PhoneNumberUtils; 226fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rongimport android.view.View; 236fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong 246fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rongimport com.android.contacts.common.ContactPhotoManager; 256fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rongimport com.android.contacts.common.GeoUtil; 266fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rongimport com.android.dialer.R; 276fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rongimport com.android.dialer.calllog.ContactInfoHelper; 286fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rongimport com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns; 29d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwellimport com.android.dialer.logging.InteractionEvent; 30d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwellimport com.android.dialer.logging.Logger; 316fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong 32690e1b5cc87003f939f57f80511e473458d17ac2Andrew Leepublic class BlockedNumbersAdapter extends NumbersAdapter { 336fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong 34690e1b5cc87003f939f57f80511e473458d17ac2Andrew Lee private BlockedNumbersAdapter( 35e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee Context context, 36e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee FragmentManager fragmentManager, 37e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee ContactInfoHelper contactInfoHelper, 38e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee ContactPhotoManager contactPhotoManager) { 39e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee super(context, fragmentManager, contactInfoHelper, contactPhotoManager); 40e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee } 416fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong 42690e1b5cc87003f939f57f80511e473458d17ac2Andrew Lee public static BlockedNumbersAdapter newBlockedNumbersAdapter( 43e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee Context context, FragmentManager fragmentManager) { 44690e1b5cc87003f939f57f80511e473458d17ac2Andrew Lee return new BlockedNumbersAdapter( 45e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee context, 46e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee fragmentManager, 47e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee new ContactInfoHelper(context, GeoUtil.getCurrentCountryIso(context)), 48e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee ContactPhotoManager.getInstance(context)); 496fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong } 506fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong 516fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong @Override 52a5437e6882bde69cb795ed8d929c1024a8fef16eTa-wei Yen public void bindView(View view, final Context context, Cursor cursor) { 536fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong super.bindView(view, context, cursor); 546fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong final Integer id = cursor.getInt(cursor.getColumnIndex(FilteredNumberColumns._ID)); 556fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong final String countryIso = cursor.getString(cursor.getColumnIndex( 566fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong FilteredNumberColumns.COUNTRY_ISO)); 576fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong final String number = cursor.getString(cursor.getColumnIndex(FilteredNumberColumns.NUMBER)); 586fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong final String normalizedNumber = cursor.getString(cursor.getColumnIndex( 596fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong FilteredNumberColumns.NORMALIZED_NUMBER)); 606fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong 61e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee final View deleteButton = view.findViewById(R.id.delete_button); 62e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee deleteButton.setOnClickListener(new View.OnClickListener() { 636fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong @Override 646fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong public void onClick(View view) { 65fcecacedc1837673321f516673c6d68fd82e63ceAndrew Lee BlockNumberDialogFragment.show( 668d0847ca13ca46730756e1d3a3dff3d7d27fd18bAndrew Lee id, 678d0847ca13ca46730756e1d3a3dff3d7d27fd18bAndrew Lee number, 688d0847ca13ca46730756e1d3a3dff3d7d27fd18bAndrew Lee countryIso, 693a8f2d721ecc7500ecb285aeb8e0f60f3d70f1bbBrandon Maxwell PhoneNumberUtils.formatNumber(number, countryIso), 70736c6bde5a2d1d300b049ed4c9f75f9e1db1f6e3Brandon Maxwell R.id.blocked_numbers_activity_container, 71e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee getFragmentManager(), 72d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell new BlockNumberDialogFragment.Callback() { 73d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell @Override 74d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell public void onFilterNumberSuccess() {} 75d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell 76d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell @Override 77d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell public void onUnfilterNumberSuccess() { 78d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell Logger.logInteraction( 79d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell InteractionEvent.UNBLOCK_NUMBER_MANAGEMENT_SCREEN); 80d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell } 81d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell 82d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell @Override 83d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell public void onChangeFilteredNumberUndo() {} 84d81cc6c64f3213f571c1f1e7a5c7e59b71491fb0Brandon Maxwell }); 856fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong } 866fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong }); 876fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong 88e98dd55998f2d427976a005c759c26d98785d9c9Andrew Lee updateView(view, number, countryIso); 896fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong } 90d625d28ec6cf22c128d0ef0b8e64a9fff4b64aecAndrew Lee 91d625d28ec6cf22c128d0ef0b8e64a9fff4b64aecAndrew Lee @Override 92d625d28ec6cf22c128d0ef0b8e64a9fff4b64aecAndrew Lee public boolean isEmpty() { 93d625d28ec6cf22c128d0ef0b8e64a9fff4b64aecAndrew Lee // Always return false, so that the header with blocking-related options always shows. 94d625d28ec6cf22c128d0ef0b8e64a9fff4b64aecAndrew Lee return false; 95d625d28ec6cf22c128d0ef0b8e64a9fff4b64aecAndrew Lee } 966fb201a4f048e1a5763465a2e31f3a93e649fff7Anne Rong} 97