AddAdapter.java revision 7c7a07377f5ca0348eb2ba5d48c828db7c01de14
131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project/* 231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * 431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * you may not use this file except in compliance with the License. 631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * You may obtain a copy of the License at 731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * 831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * 1031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * See the License for the specific language governing permissions and 1431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * limitations under the License. 1531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 1631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 1731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectpackage com.android.launcher; 1831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 1931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.content.Context; 2031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.content.res.Resources; 2131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.graphics.drawable.Drawable; 2231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.view.LayoutInflater; 2331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.view.View; 2431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.view.ViewGroup; 2531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.widget.BaseAdapter; 2631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport android.widget.TextView; 2731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 2831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectimport java.util.ArrayList; 2931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 3031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project/** 3131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Adapter showing the types of items that can be added to a {@link Workspace}. 3231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 3331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectpublic class AddAdapter extends BaseAdapter { 347c7a07377f5ca0348eb2ba5d48c828db7c01de14Romain Guy 3531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project private final LayoutInflater mInflater; 3631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 3731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project private final ArrayList<ListItem> mItems = new ArrayList<ListItem>(); 3831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 3931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public static final int ITEM_APPLICATION = 0; 4031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public static final int ITEM_SHORTCUT = 1; 4131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public static final int ITEM_SEARCH = 2; 427376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Project public static final int ITEM_APPWIDGET = 3; 4331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public static final int ITEM_LIVE_FOLDER = 4; 4431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public static final int ITEM_FOLDER = 5; 4531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public static final int ITEM_WALLPAPER = 6; 4631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 4731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project /** 4831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Specific item in our list. 4931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 5031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public class ListItem { 5131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public final CharSequence text; 5231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public final Drawable image; 5331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public final int actionTag; 5431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 5531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public ListItem(Resources res, int textResourceId, int imageResourceId, int actionTag) { 5631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project text = res.getString(textResourceId); 5731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project if (imageResourceId != -1) { 5831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project image = res.getDrawable(imageResourceId); 5931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } else { 6031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project image = null; 6131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 6231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project this.actionTag = actionTag; 6331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 6431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 6531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 6631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public AddAdapter(Launcher launcher) { 6731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project super(); 687c7a07377f5ca0348eb2ba5d48c828db7c01de14Romain Guy 697c7a07377f5ca0348eb2ba5d48c828db7c01de14Romain Guy mInflater = (LayoutInflater) launcher.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 7031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 7131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project // Create default actions 7231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project Resources res = launcher.getResources(); 7331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 7431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project mItems.add(new ListItem(res, R.string.group_applications, 7531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project R.drawable.ic_launcher_application, ITEM_APPLICATION)); 7631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 7731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project mItems.add(new ListItem(res, R.string.group_shortcuts, 787c7a07377f5ca0348eb2ba5d48c828db7c01de14Romain Guy R.drawable.ic_launcher_shortcut, ITEM_SHORTCUT)); 797c7a07377f5ca0348eb2ba5d48c828db7c01de14Romain Guy 8031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project mItems.add(new ListItem(res, R.string.group_widgets, 817376faefbbcbe30cc4e3f706ab95c254a4707d98The Android Open Source Project R.drawable.ic_launcher_appwidget, ITEM_APPWIDGET)); 8231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 8331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project mItems.add(new ListItem(res, R.string.group_live_folders, 847c7a07377f5ca0348eb2ba5d48c828db7c01de14Romain Guy R.drawable.ic_launcher_folder_live, ITEM_LIVE_FOLDER)); 8531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 8631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project mItems.add(new ListItem(res, R.string.group_folder, 8731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project R.drawable.ic_launcher_folder, ITEM_FOLDER)); 8831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 8931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project mItems.add(new ListItem(res, R.string.group_wallpapers, 9031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project R.drawable.ic_launcher_gallery, ITEM_WALLPAPER)); 9131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 9231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 9331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 9431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public View getView(int position, View convertView, ViewGroup parent) { 9531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project ListItem item = (ListItem) getItem(position); 9631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 9731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project if (convertView == null) { 9831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project convertView = mInflater.inflate(R.layout.add_list_item, parent, false); 9931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 10031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 10131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project TextView textView = (TextView) convertView; 10231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project textView.setTag(item); 10331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project textView.setText(item.text); 10431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project textView.setCompoundDrawablesWithIntrinsicBounds(item.image, null, null, null); 10531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 10631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project return convertView; 10731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 10831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 10931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public int getCount() { 11031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project return mItems.size(); 11131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 11231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 11331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public Object getItem(int position) { 11431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project return mItems.get(position); 11531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 11631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 11731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public long getItemId(int position) { 11831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project return position; 11931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 12031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 12131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project} 122