summaryrefslogtreecommitdiff
path: root/java/com/android/contacts/common/list/DirectoryListLoader.java
diff options
context:
space:
mode:
authorcalderwoodra <calderwoodra@google.com>2018-03-21 16:57:10 -0700
committerCopybara-Service <copybara-piper@google.com>2018-03-26 22:14:35 -0700
commit58d0b2a7cdd4b988f527f03a7cb4ba2a4b7cd145 (patch)
tree9f345f599109739aa93fe700981fc289dab0e66a /java/com/android/contacts/common/list/DirectoryListLoader.java
parent2213f8e4a91bf5bd39e8f55554f7020f0e6b5792 (diff)
Delete old search, old contacts, p13n logger, filtered numbers add number search.
These components are safe to delete because: - New Contacts has been in prod for several releases. - New Search has been in in prod for 2 releases. - p13n logger was based on old search and is no longer being implemented in Dialer. - Filtered Number Settings contact search since we no longer support M. Bug: 37208802,73902692 Test: tap PiperOrigin-RevId: 189992017 Change-Id: I2720a252ababd164b5d0fb1011753a3c96a704d1
Diffstat (limited to 'java/com/android/contacts/common/list/DirectoryListLoader.java')
-rw-r--r--java/com/android/contacts/common/list/DirectoryListLoader.java210
1 files changed, 0 insertions, 210 deletions
diff --git a/java/com/android/contacts/common/list/DirectoryListLoader.java b/java/com/android/contacts/common/list/DirectoryListLoader.java
deleted file mode 100644
index ce78d2cff..000000000
--- a/java/com/android/contacts/common/list/DirectoryListLoader.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.contacts.common.list;
-
-import android.content.AsyncTaskLoader;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.database.ContentObserver;
-import android.database.Cursor;
-import android.database.MatrixCursor;
-import android.net.Uri;
-import android.os.Handler;
-import android.provider.ContactsContract.Directory;
-import android.text.TextUtils;
-import com.android.contacts.common.R;
-import com.android.dialer.common.LogUtil;
-import com.android.dialer.common.cp2.DirectoryCompat;
-import com.android.dialer.util.PermissionsUtil;
-
-/** A specialized loader for the list of directories, see {@link Directory}. */
-public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
-
- public static final int SEARCH_MODE_NONE = 0;
- public static final int SEARCH_MODE_DEFAULT = 1;
- public static final int SEARCH_MODE_CONTACT_SHORTCUT = 2;
- public static final int SEARCH_MODE_DATA_SHORTCUT = 3;
- // This is a virtual column created for a MatrixCursor.
- public static final String DIRECTORY_TYPE = "directoryType";
- private static final String[] RESULT_PROJECTION = {
- Directory._ID, DIRECTORY_TYPE, Directory.DISPLAY_NAME, Directory.PHOTO_SUPPORT,
- };
- private final ContentObserver mObserver =
- new ContentObserver(new Handler()) {
- @Override
- public void onChange(boolean selfChange) {
- forceLoad();
- }
- };
- private int mDirectorySearchMode;
- private boolean mLocalInvisibleDirectoryEnabled;
- private MatrixCursor mDefaultDirectoryList;
-
- public DirectoryListLoader(Context context) {
- super(context);
- }
-
- public void setDirectorySearchMode(int mode) {
- mDirectorySearchMode = mode;
- }
-
- /**
- * A flag that indicates whether the {@link Directory#LOCAL_INVISIBLE} directory should be
- * included in the results.
- */
- public void setLocalInvisibleDirectoryEnabled(boolean flag) {
- this.mLocalInvisibleDirectoryEnabled = flag;
- }
-
- @Override
- protected void onStartLoading() {
- if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
- getContext()
- .getContentResolver()
- .registerContentObserver(DirectoryQuery.URI, false, mObserver);
- } else {
- LogUtil.w("DirectoryListLoader.onStartLoading", "contacts permission not available.");
- }
- forceLoad();
- }
-
- @Override
- protected void onStopLoading() {
- getContext().getContentResolver().unregisterContentObserver(mObserver);
- }
-
- @Override
- public Cursor loadInBackground() {
- if (mDirectorySearchMode == SEARCH_MODE_NONE) {
- return getDefaultDirectories();
- }
-
- MatrixCursor result = new MatrixCursor(RESULT_PROJECTION);
- Context context = getContext();
- PackageManager pm = context.getPackageManager();
- String selection;
- switch (mDirectorySearchMode) {
- case SEARCH_MODE_DEFAULT:
- selection = null;
- break;
-
- case SEARCH_MODE_CONTACT_SHORTCUT:
- selection = Directory.SHORTCUT_SUPPORT + "=" + Directory.SHORTCUT_SUPPORT_FULL;
- break;
-
- case SEARCH_MODE_DATA_SHORTCUT:
- selection =
- Directory.SHORTCUT_SUPPORT
- + " IN ("
- + Directory.SHORTCUT_SUPPORT_FULL
- + ", "
- + Directory.SHORTCUT_SUPPORT_DATA_ITEMS_ONLY
- + ")";
- break;
-
- default:
- throw new RuntimeException("Unsupported directory search mode: " + mDirectorySearchMode);
- }
- Cursor cursor = null;
- try {
- cursor =
- context
- .getContentResolver()
- .query(
- DirectoryQuery.URI,
- DirectoryQuery.PROJECTION,
- selection,
- null,
- DirectoryQuery.ORDER_BY);
-
- if (cursor == null) {
- return result;
- }
-
- while (cursor.moveToNext()) {
- long directoryId = cursor.getLong(DirectoryQuery.ID);
- if (!mLocalInvisibleDirectoryEnabled && DirectoryCompat.isInvisibleDirectory(directoryId)) {
- continue;
- }
- String directoryType = null;
-
- String packageName = cursor.getString(DirectoryQuery.PACKAGE_NAME);
- int typeResourceId = cursor.getInt(DirectoryQuery.TYPE_RESOURCE_ID);
- if (!TextUtils.isEmpty(packageName) && typeResourceId != 0) {
- try {
- directoryType = pm.getResourcesForApplication(packageName).getString(typeResourceId);
- } catch (Exception e) {
- LogUtil.e(
- "ContactEntryListAdapter.loadInBackground",
- "cannot obtain directory type from package: " + packageName);
- }
- }
- String displayName = cursor.getString(DirectoryQuery.DISPLAY_NAME);
- int photoSupport = cursor.getInt(DirectoryQuery.PHOTO_SUPPORT);
- result.addRow(new Object[] {directoryId, directoryType, displayName, photoSupport});
- }
- } catch (RuntimeException e) {
- LogUtil.w(
- "ContactEntryListAdapter.loadInBackground", "runtime exception when querying directory");
- } finally {
- if (cursor != null) {
- cursor.close();
- }
- }
-
- return result;
- }
-
- private Cursor getDefaultDirectories() {
- if (mDefaultDirectoryList == null) {
- mDefaultDirectoryList = new MatrixCursor(RESULT_PROJECTION);
- mDefaultDirectoryList.addRow(
- new Object[] {Directory.DEFAULT, getContext().getString(R.string.contactsList), null});
- mDefaultDirectoryList.addRow(
- new Object[] {
- Directory.LOCAL_INVISIBLE,
- getContext().getString(R.string.local_invisible_directory),
- null
- });
- }
- return mDefaultDirectoryList;
- }
-
- @Override
- protected void onReset() {
- stopLoading();
- }
-
- private static final class DirectoryQuery {
-
- public static final Uri URI = DirectoryCompat.getContentUri();
- public static final String ORDER_BY = Directory._ID;
-
- public static final String[] PROJECTION = {
- Directory._ID,
- Directory.PACKAGE_NAME,
- Directory.TYPE_RESOURCE_ID,
- Directory.DISPLAY_NAME,
- Directory.PHOTO_SUPPORT,
- };
-
- public static final int ID = 0;
- public static final int PACKAGE_NAME = 1;
- public static final int TYPE_RESOURCE_ID = 2;
- public static final int DISPLAY_NAME = 3;
- public static final int PHOTO_SUPPORT = 4;
- }
-}