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