diff options
Diffstat (limited to 'src/com/android/settings/Utils.java')
-rw-r--r-- | src/com/android/settings/Utils.java | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java deleted file mode 100644 index a23272b..0000000 --- a/src/com/android/settings/Utils.java +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Copyright (C) 2007 Google Inc. - * - * 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.settings; - -import android.content.Context; -import android.content.Intent; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; -import android.preference.Preference; -import android.preference.PreferenceGroup; - -import java.util.List; - -public class Utils { - - /** - * Set the preference's title to the matching activity's label. - */ - public static final int UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY = 1; - - /** - * Finds a matching activity for a preference's intent. If a matching - * activity is not found, it will remove the preference. - * - * @param context The context. - * @param parentPreferenceGroup The preference group that contains the - * preference whose intent is being resolved. - * @param preferenceKey The key of the preference whose intent is being - * resolved. - * @param flags 0 or one or more of - * {@link #UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY} - * . - * @return Whether an activity was found. If false, the preference was - * removed. - */ - public static boolean updatePreferenceToSpecificActivityOrRemove(Context context, - PreferenceGroup parentPreferenceGroup, String preferenceKey, int flags) { - - Preference preference = parentPreferenceGroup.findPreference(preferenceKey); - if (preference == null) { - return false; - } - - Intent intent = preference.getIntent(); - if (intent != null) { - // Find the activity that is in the system image - PackageManager pm = context.getPackageManager(); - List<ResolveInfo> list = pm.queryIntentActivities(intent, 0); - int listSize = list.size(); - for (int i = 0; i < listSize; i++) { - ResolveInfo resolveInfo = list.get(i); - if ((resolveInfo.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) - != 0) { - - // Replace the intent with this specific activity - preference.setIntent(new Intent().setClassName( - resolveInfo.activityInfo.packageName, - resolveInfo.activityInfo.name)); - - if ((flags & UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY) != 0) { - // Set the preference title to the activity's label - preference.setTitle(resolveInfo.loadLabel(pm)); - } - - return true; - } - } - } - - // Did not find a matching activity, so remove the preference - parentPreferenceGroup.removePreference(preference); - - return true; - } - -} |