Loading core/java/android/app/LauncherActivity.java +56 −9 Original line number Diff line number Diff line Loading @@ -36,7 +36,9 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.Filter; import android.widget.Filterable; import android.widget.ListView; Loading Loading @@ -101,11 +103,13 @@ public abstract class LauncherActivity extends ListActivity { protected List<ListItem> mActivitiesList; private Filter mFilter; private final boolean mShowIcons; public ActivityAdapter(IconResizer resizer) { mIconResizer = resizer; mInflater = (LayoutInflater) LauncherActivity.this.getSystemService( Context.LAYOUT_INFLATER_SERVICE); mShowIcons = onEvaluateShowIcons(); mActivitiesList = makeListItems(); } Loading Loading @@ -158,12 +162,13 @@ public abstract class LauncherActivity extends ListActivity { private void bindView(View view, ListItem item) { TextView text = (TextView) view; text.setText(item.label); if (mShowIcons) { if (item.icon == null) { item.icon = mIconResizer.createIconThumbnail( item.resolveInfo.loadIcon(getPackageManager())); item.icon = mIconResizer.createIconThumbnail(item.resolveInfo.loadIcon(getPackageManager())); } text.setCompoundDrawablesWithIntrinsicBounds(item.icon, null, null, null); } } public Filter getFilter() { if (mFilter == null) { Loading Loading @@ -347,9 +352,42 @@ public abstract class LauncherActivity extends ListActivity { setListAdapter(mAdapter); getListView().setTextFilterEnabled(true); updateAlertTitle(); updateButtonText(); setProgressBarIndeterminateVisibility(false); } private void updateAlertTitle() { TextView alertTitle = (TextView) findViewById(com.android.internal.R.id.alertTitle); if (alertTitle != null) { alertTitle.setText(getTitle()); } } private void updateButtonText() { Button cancelButton = (Button) findViewById(com.android.internal.R.id.button1); if (cancelButton != null) { cancelButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { finish(); } }); } } @Override public void setTitle(CharSequence title) { super.setTitle(title); updateAlertTitle(); } @Override public void setTitle(int titleId) { super.setTitle(titleId); updateAlertTitle(); } /** * Override to call setContentView() with your own content view to * customize the list layout. Loading Loading @@ -417,4 +455,13 @@ public abstract class LauncherActivity extends ListActivity { return result; } /** * Whether or not to show icons in the list * @hide keeping this private for now, since only Settings needs it * @return true to show icons beside the activity names, false otherwise */ protected boolean onEvaluateShowIcons() { return true; } } core/res/res/layout-xlarge/activity_list.xml 0 → 100644 +130 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2009 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. --> <com.android.internal.widget.WeightedLinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/parentPanel" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingTop="9dip" android:paddingBottom="3dip" android:paddingLeft="3dip" android:paddingRight="1dip" android:majorWeightMin="0.45" android:minorWeightMin="0.72" android:majorWeightMax="0.45" android:minorWeightMax="0.72"> <LinearLayout android:id="@+id/topPanel" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="48dip" android:orientation="vertical"> <LinearLayout android:id="@+id/title_template" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:layout_marginTop="8dip" android:layout_marginBottom="8dip" android:layout_marginRight="32dip"> <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="16dip" android:src="@null" android:visibility="gone" /> <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle" style="?android:attr/textAppearanceLarge" android:singleLine="true" android:ellipsize="end" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <ImageView android:id="@+id/titleDivider" android:layout_width="match_parent" android:layout_height="1dip" android:scaleType="fitXY" android:gravity="fill_horizontal" android:src="@android:drawable/divider_horizontal_dark" /> <!-- If the client uses a customTitle, it will be added here. --> </LinearLayout> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1"> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:id="@android:id/empty" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="@string/activity_list_empty" android:visibility="gone" android:textAppearance="?android:attr/textAppearanceMedium" /> </FrameLayout> <ImageView android:layout_width="match_parent" android:layout_height="1dip" android:scaleType="fitXY" android:gravity="fill_horizontal" android:src="@android:drawable/divider_horizontal_dark" /> <LinearLayout android:id="@+id/buttonPanel" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="54dip" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingTop="4dip" android:paddingLeft="2dip" android:paddingRight="2dip" android:measureWithLargestChild="true"> <LinearLayout android:id="@+id/leftSpacer" android:layout_weight="0.25" android:layout_width="0dip" android:layout_height="wrap_content" android:orientation="horizontal" /> <Button android:id="@+id/button1" android:layout_width="0dip" android:layout_gravity="center" android:layout_weight="1" android:maxLines="2" android:text="@string/cancel" android:layout_height="wrap_content" /> <LinearLayout android:id="@+id/rightSpacer" android:layout_width="0dip" android:layout_weight="0.25" android:layout_height="wrap_content" android:orientation="horizontal" /> </LinearLayout> </LinearLayout> </com.android.internal.widget.WeightedLinearLayout> Loading
core/java/android/app/LauncherActivity.java +56 −9 Original line number Diff line number Diff line Loading @@ -36,7 +36,9 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.Filter; import android.widget.Filterable; import android.widget.ListView; Loading Loading @@ -101,11 +103,13 @@ public abstract class LauncherActivity extends ListActivity { protected List<ListItem> mActivitiesList; private Filter mFilter; private final boolean mShowIcons; public ActivityAdapter(IconResizer resizer) { mIconResizer = resizer; mInflater = (LayoutInflater) LauncherActivity.this.getSystemService( Context.LAYOUT_INFLATER_SERVICE); mShowIcons = onEvaluateShowIcons(); mActivitiesList = makeListItems(); } Loading Loading @@ -158,12 +162,13 @@ public abstract class LauncherActivity extends ListActivity { private void bindView(View view, ListItem item) { TextView text = (TextView) view; text.setText(item.label); if (mShowIcons) { if (item.icon == null) { item.icon = mIconResizer.createIconThumbnail( item.resolveInfo.loadIcon(getPackageManager())); item.icon = mIconResizer.createIconThumbnail(item.resolveInfo.loadIcon(getPackageManager())); } text.setCompoundDrawablesWithIntrinsicBounds(item.icon, null, null, null); } } public Filter getFilter() { if (mFilter == null) { Loading Loading @@ -347,9 +352,42 @@ public abstract class LauncherActivity extends ListActivity { setListAdapter(mAdapter); getListView().setTextFilterEnabled(true); updateAlertTitle(); updateButtonText(); setProgressBarIndeterminateVisibility(false); } private void updateAlertTitle() { TextView alertTitle = (TextView) findViewById(com.android.internal.R.id.alertTitle); if (alertTitle != null) { alertTitle.setText(getTitle()); } } private void updateButtonText() { Button cancelButton = (Button) findViewById(com.android.internal.R.id.button1); if (cancelButton != null) { cancelButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { finish(); } }); } } @Override public void setTitle(CharSequence title) { super.setTitle(title); updateAlertTitle(); } @Override public void setTitle(int titleId) { super.setTitle(titleId); updateAlertTitle(); } /** * Override to call setContentView() with your own content view to * customize the list layout. Loading Loading @@ -417,4 +455,13 @@ public abstract class LauncherActivity extends ListActivity { return result; } /** * Whether or not to show icons in the list * @hide keeping this private for now, since only Settings needs it * @return true to show icons beside the activity names, false otherwise */ protected boolean onEvaluateShowIcons() { return true; } }
core/res/res/layout-xlarge/activity_list.xml 0 → 100644 +130 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2009 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. --> <com.android.internal.widget.WeightedLinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/parentPanel" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingTop="9dip" android:paddingBottom="3dip" android:paddingLeft="3dip" android:paddingRight="1dip" android:majorWeightMin="0.45" android:minorWeightMin="0.72" android:majorWeightMax="0.45" android:minorWeightMax="0.72"> <LinearLayout android:id="@+id/topPanel" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="48dip" android:orientation="vertical"> <LinearLayout android:id="@+id/title_template" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" android:layout_marginTop="8dip" android:layout_marginBottom="8dip" android:layout_marginRight="32dip"> <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="16dip" android:src="@null" android:visibility="gone" /> <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle" style="?android:attr/textAppearanceLarge" android:singleLine="true" android:ellipsize="end" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <ImageView android:id="@+id/titleDivider" android:layout_width="match_parent" android:layout_height="1dip" android:scaleType="fitXY" android:gravity="fill_horizontal" android:src="@android:drawable/divider_horizontal_dark" /> <!-- If the client uses a customTitle, it will be added here. --> </LinearLayout> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1"> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:id="@android:id/empty" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="@string/activity_list_empty" android:visibility="gone" android:textAppearance="?android:attr/textAppearanceMedium" /> </FrameLayout> <ImageView android:layout_width="match_parent" android:layout_height="1dip" android:scaleType="fitXY" android:gravity="fill_horizontal" android:src="@android:drawable/divider_horizontal_dark" /> <LinearLayout android:id="@+id/buttonPanel" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="54dip" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingTop="4dip" android:paddingLeft="2dip" android:paddingRight="2dip" android:measureWithLargestChild="true"> <LinearLayout android:id="@+id/leftSpacer" android:layout_weight="0.25" android:layout_width="0dip" android:layout_height="wrap_content" android:orientation="horizontal" /> <Button android:id="@+id/button1" android:layout_width="0dip" android:layout_gravity="center" android:layout_weight="1" android:maxLines="2" android:text="@string/cancel" android:layout_height="wrap_content" /> <LinearLayout android:id="@+id/rightSpacer" android:layout_width="0dip" android:layout_weight="0.25" android:layout_height="wrap_content" android:orientation="horizontal" /> </LinearLayout> </LinearLayout> </com.android.internal.widget.WeightedLinearLayout>