1 /* 2 * Copyright (C) 2024 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 17 package com.android.intentresolver; 18 19 import android.content.ComponentName; 20 import android.content.Context; 21 import android.content.Intent; 22 import android.content.SharedPreferences; 23 import android.content.pm.PackageManager; 24 import android.os.UserHandle; 25 26 import com.android.intentresolver.model.AbstractResolverComparator; 27 28 import java.util.List; 29 30 public class ChooserListController extends ResolverListController { 31 private final List<ComponentName> mFilteredComponents; 32 private final SharedPreferences mPinnedComponents; 33 ChooserListController( Context context, PackageManager pm, Intent targetIntent, String referrerPackageName, int launchedFromUid, AbstractResolverComparator resolverComparator, UserHandle queryIntentsAsUser, List<ComponentName> filteredComponents, SharedPreferences pinnedComponents)34 public ChooserListController( 35 Context context, 36 PackageManager pm, 37 Intent targetIntent, 38 String referrerPackageName, 39 int launchedFromUid, 40 AbstractResolverComparator resolverComparator, 41 UserHandle queryIntentsAsUser, 42 List<ComponentName> filteredComponents, 43 SharedPreferences pinnedComponents) { 44 super( 45 context, 46 pm, 47 targetIntent, 48 referrerPackageName, 49 launchedFromUid, 50 resolverComparator, 51 queryIntentsAsUser); 52 mFilteredComponents = filteredComponents; 53 mPinnedComponents = pinnedComponents; 54 } 55 56 @Override isComponentFiltered(ComponentName name)57 public boolean isComponentFiltered(ComponentName name) { 58 return mFilteredComponents.contains(name); 59 } 60 61 @Override isComponentPinned(ComponentName name)62 public boolean isComponentPinned(ComponentName name) { 63 return mPinnedComponents.getBoolean(name.flattenToString(), false); 64 } 65 } 66