diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index 60b118499aa..00368e422de 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -77,7 +77,6 @@ import com.android.settings.bluetooth.BluetoothSettings; import com.android.settings.dashboard.DashboardCategory; import com.android.settings.dashboard.DashboardSummary; import com.android.settings.dashboard.DashboardTile; -import com.android.settings.dashboard.Header; import com.android.settings.dashboard.NoHomeDialogFragment; import com.android.settings.dashboard.SearchResultsSummary; import com.android.settings.deviceinfo.Memory; @@ -115,7 +114,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; -import static com.android.settings.dashboard.Header.HEADER_ID_UNDEFINED; +import static com.android.settings.dashboard.DashboardTile.TILE_ID_UNDEFINED; public class SettingsActivity extends Activity implements PreferenceManager.OnPreferenceTreeClickListener, @@ -492,7 +491,7 @@ public class SettingsActivity extends Activity switchToFragment( initialFragmentName, initialArguments, true, false, mInitialTitle, false); } else { - // No UP if we are displaying the Headers + // No UP if we are displaying the main Dashboard mDisplayHomeAsUpEnabled = false; if (mCategories.size() > 0) { mInitialTitle = getText(R.string.dashboard_title); @@ -671,25 +670,6 @@ public class SettingsActivity extends Activity return false; } - /** - * When in two-pane mode, switch to the fragment pane to show the given - * preference fragment. - * - * @param header The new header to display. - * @param position The position of the Header in the list. - */ - private void onHeaderClick(Header header, int position) { - if (header == null) { - return; - } - if (header.fragment != null) { - Utils.startWithFragment(this, header.fragment, header.fragmentArguments, null, 0, - header.getTitle(getResources())); - } else if (header.intent != null) { - startActivity(header.intent); - } - } - /** * Called to determine whether the header list should be hidden. * The default implementation returns the @@ -919,7 +899,7 @@ public class SettingsActivity extends Activity attrs, com.android.internal.R.styleable.PreferenceHeader); tile.id = sa.getResourceId( com.android.internal.R.styleable.PreferenceHeader_id, - (int)HEADER_ID_UNDEFINED); + (int)TILE_ID_UNDEFINED); tv = sa.peekValue( com.android.internal.R.styleable.PreferenceHeader_title); if (tv != null && tv.type == TypedValue.TYPE_STRING) { diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index e3335b8b467..f91a98628db 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -58,7 +58,6 @@ import android.widget.ListView; import android.widget.TabWidget; import com.android.settings.dashboard.DashboardCategory; import com.android.settings.dashboard.DashboardTile; -import com.android.settings.dashboard.Header; import java.io.IOException; import java.io.InputStream; @@ -152,154 +151,6 @@ public class Utils { return false; } - /** - * Finds a matching activity for a preference's intent. If a matching - * activity is not found, it will remove the preference. The icon, title and - * summary of the preference will also be updated with the values retrieved - * from the activity's meta-data elements. If no meta-data elements are - * specified then the preference title will be set to match the label of the - * activity, an icon and summary text will not be displayed. - * - * @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. - * - * @return Whether an activity was found. If false, the preference was - * removed. - * - * @see {@link #META_DATA_PREFERENCE_ICON} - * {@link #META_DATA_PREFERENCE_TITLE} - * {@link #META_DATA_PREFERENCE_SUMMARY} - */ - public static boolean updatePreferenceToSpecificActivityFromMetaDataOrRemove(Context context, - PreferenceGroup parentPreferenceGroup, String preferenceKey) { - - IconPreferenceScreen preference = (IconPreferenceScreen)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 list = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA); - 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) { - Drawable icon = null; - String title = null; - String summary = null; - - // Get the activity's meta-data - try { - Resources res = pm - .getResourcesForApplication(resolveInfo.activityInfo.packageName); - Bundle metaData = resolveInfo.activityInfo.metaData; - - if (res != null && metaData != null) { - icon = res.getDrawable(metaData.getInt(META_DATA_PREFERENCE_ICON)); - title = res.getString(metaData.getInt(META_DATA_PREFERENCE_TITLE)); - summary = res.getString(metaData.getInt(META_DATA_PREFERENCE_SUMMARY)); - } - } catch (NameNotFoundException e) { - // Ignore - } catch (NotFoundException e) { - // Ignore - } - - // Set the preference title to the activity's label if no - // meta-data is found - if (TextUtils.isEmpty(title)) { - title = resolveInfo.loadLabel(pm).toString(); - } - - // Set icon, title and summary for the preference - preference.setIcon(icon); - preference.setTitle(title); - preference.setSummary(summary); - - // Replace the intent with this specific activity - preference.setIntent(new Intent().setClassName( - resolveInfo.activityInfo.packageName, - resolveInfo.activityInfo.name)); - - return true; - } - } - } - - // Did not find a matching activity, so remove the preference - parentPreferenceGroup.removePreference(preference); - - return false; - } - - public static boolean updateHeaderToSpecificActivityFromMetaDataOrRemove(Context context, - List
target, Header header) { - - Intent intent = header.intent; - if (intent != null) { - // Find the activity that is in the system image - PackageManager pm = context.getPackageManager(); - List list = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA); - 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) { - Drawable icon = null; - String title = null; - String summary = null; - - // Get the activity's meta-data - try { - Resources res = pm.getResourcesForApplication( - resolveInfo.activityInfo.packageName); - Bundle metaData = resolveInfo.activityInfo.metaData; - - if (res != null && metaData != null) { - icon = res.getDrawable(metaData.getInt(META_DATA_PREFERENCE_ICON)); - title = res.getString(metaData.getInt(META_DATA_PREFERENCE_TITLE)); - summary = res.getString(metaData.getInt(META_DATA_PREFERENCE_SUMMARY)); - } - } catch (NameNotFoundException e) { - // Ignore - } catch (NotFoundException e) { - // Ignore - } - - // Set the preference title to the activity's label if no - // meta-data is found - if (TextUtils.isEmpty(title)) { - title = resolveInfo.loadLabel(pm).toString(); - } - - // Set icon, title and summary for the preference - // TODO: - //header.icon = icon; - header.title = title; - header.summary = summary; - // Replace the intent with this specific activity - header.intent = new Intent().setClassName(resolveInfo.activityInfo.packageName, - resolveInfo.activityInfo.name); - - return true; - } - } - } - - // Did not find a matching activity, so remove the preference - target.remove(header); - - return false; - } - public static boolean updateTileToSpecificActivityFromMetaDataOrRemove(Context context, DashboardCategory target, DashboardTile tile) { diff --git a/src/com/android/settings/dashboard/Header.java b/src/com/android/settings/dashboard/Header.java deleted file mode 100644 index 86e55ac3389..00000000000 --- a/src/com/android/settings/dashboard/Header.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (C) 2014 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.settings.dashboard; - -import android.content.Intent; -import android.content.res.Resources; -import android.os.Bundle; -import android.os.Parcel; -import android.os.Parcelable; -import android.text.TextUtils; - -/** - * Description of a single Header item that the user can select. - */ -public class Header implements Parcelable { - /** - * Default value for {@link Header#id Header.id} indicating that no - * identifier value is set. All other values (including those below -1) - * are valid. - */ - public static final long HEADER_ID_UNDEFINED = -1; - - /** - * Identifier for this header, to correlate with a new list when - * it is updated. The default value is - * {@link Header#HEADER_ID_UNDEFINED}, meaning no id. - * @attr ref android.R.styleable#PreferenceHeader_id - */ - public long id = HEADER_ID_UNDEFINED; - - /** - * Resource ID of title of the header that is shown to the user. - * @attr ref android.R.styleable#PreferenceHeader_title - */ - public int titleRes; - - /** - * Title of the header that is shown to the user. - * @attr ref android.R.styleable#PreferenceHeader_title - */ - public CharSequence title; - - /** - * Resource ID of optional summary describing what this header controls. - * @attr ref android.R.styleable#PreferenceHeader_summary - */ - public int summaryRes; - - /** - * Optional summary describing what this header controls. - * @attr ref android.R.styleable#PreferenceHeader_summary - */ - public CharSequence summary; - - /** - * Optional icon resource to show for this header. - * @attr ref android.R.styleable#PreferenceHeader_icon - */ - public int iconRes; - - /** - * Full class name of the fragment to display when this header is - * selected. - * @attr ref android.R.styleable#PreferenceHeader_fragment - */ - public String fragment; - - /** - * Optional arguments to supply to the fragment when it is - * instantiated. - */ - public Bundle fragmentArguments; - - /** - * Intent to launch when the preference is selected. - */ - public Intent intent; - - /** - * Optional additional data for use by subclasses of the activity - */ - public Bundle extras; - - public Header() { - // Empty - } - - /** - * Return the currently set title. If {@link #titleRes} is set, - * this resource is loaded from res and returned. Otherwise - * {@link #title} is returned. - */ - public CharSequence getTitle(Resources res) { - if (titleRes != 0) { - return res.getText(titleRes); - } - return title; - } - - /** - * Return the currently set summary. If {@link #summaryRes} is set, - * this resource is loaded from res and returned. Otherwise - * {@link #summary} is returned. - */ - public CharSequence getSummary(Resources res) { - if (summaryRes != 0) { - return res.getText(summaryRes); - } - return summary; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeLong(id); - dest.writeInt(titleRes); - TextUtils.writeToParcel(title, dest, flags); - dest.writeInt(summaryRes); - TextUtils.writeToParcel(summary, dest, flags); - dest.writeInt(iconRes); - dest.writeString(fragment); - dest.writeBundle(fragmentArguments); - if (intent != null) { - dest.writeInt(1); - intent.writeToParcel(dest, flags); - } else { - dest.writeInt(0); - } - dest.writeBundle(extras); - } - - public void readFromParcel(Parcel in) { - id = in.readLong(); - titleRes = in.readInt(); - title = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); - summaryRes = in.readInt(); - summary = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); - iconRes = in.readInt(); - fragment = in.readString(); - fragmentArguments = in.readBundle(); - if (in.readInt() != 0) { - intent = Intent.CREATOR.createFromParcel(in); - } - extras = in.readBundle(); - } - - Header(Parcel in) { - readFromParcel(in); - } - - public static final Creator
CREATOR = new Creator
() { - public Header createFromParcel(Parcel source) { - return new Header(source); - } - public Header[] newArray(int size) { - return new Header[size]; - } - }; -}