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 17a5902524d4403885eb4c50360bf3465c6be796efJoe Onoratopackage com.android.launcher2; 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 30edcce099c98a6c40d10109ac092ab50f9d2668f3Romain Guyimport com.android.launcher.R; 31edcce099c98a6c40d10109ac092ab50f9d2668f3Romain Guy 3231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project/** 3331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Adapter showing the types of items that can be added to a {@link Workspace}. 3431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 3531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Projectpublic class AddAdapter extends BaseAdapter { 367c7a07377f5ca0348eb2ba5d48c828db7c01de14Romain Guy 3731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project private final LayoutInflater mInflater; 385a808358f1a773dab8babae44899ffd4ed1810c1Winson Chung 3931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project private final ArrayList<ListItem> mItems = new ArrayList<ListItem>(); 405a808358f1a773dab8babae44899ffd4ed1810c1Winson Chung 41a9cf26c08ffc5f3d741d4f2a1787879b65149352Jeffrey Sharkey public static final int ITEM_SHORTCUT = 0; 42a9cf26c08ffc5f3d741d4f2a1787879b65149352Jeffrey Sharkey public static final int ITEM_APPWIDGET = 1; 4355b6550e37da5df2fda44fc712bc082731f2d8e7Winson Chung public static final int ITEM_APPLICATION = 2; 44a9cf26c08ffc5f3d741d4f2a1787879b65149352Jeffrey Sharkey public static final int ITEM_WALLPAPER = 3; 455a808358f1a773dab8babae44899ffd4ed1810c1Winson Chung 4631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project /** 4731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project * Specific item in our list. 4831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project */ 4931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public class ListItem { 5031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public final CharSequence text; 5131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public final Drawable image; 5231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public final int actionTag; 535a808358f1a773dab8babae44899ffd4ed1810c1Winson Chung 5431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public ListItem(Resources res, int textResourceId, int imageResourceId, int actionTag) { 5531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project text = res.getString(textResourceId); 5631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project if (imageResourceId != -1) { 5731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project image = res.getDrawable(imageResourceId); 5831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } else { 5931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project image = null; 6031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 6131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project this.actionTag = actionTag; 6231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 6331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 6431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 6531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public AddAdapter(Launcher launcher) { 6631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project super(); 677c7a07377f5ca0348eb2ba5d48c828db7c01de14Romain Guy 687c7a07377f5ca0348eb2ba5d48c828db7c01de14Romain Guy mInflater = (LayoutInflater) launcher.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 695a808358f1a773dab8babae44899ffd4ed1810c1Winson Chung 7031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project // Create default actions 7131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project Resources res = launcher.getResources(); 725a808358f1a773dab8babae44899ffd4ed1810c1Winson Chung 7331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project mItems.add(new ListItem(res, R.string.group_wallpapers, 749df38dff2df1c58c890deaf9484b81e356fe1a8bMichael Jurka R.mipmap.ic_launcher_wallpaper, ITEM_WALLPAPER)); 7531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 7631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 7731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public View getView(int position, View convertView, ViewGroup parent) { 7831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project ListItem item = (ListItem) getItem(position); 795a808358f1a773dab8babae44899ffd4ed1810c1Winson Chung 8031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project if (convertView == null) { 8131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project convertView = mInflater.inflate(R.layout.add_list_item, parent, false); 8231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 835a808358f1a773dab8babae44899ffd4ed1810c1Winson Chung 8431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project TextView textView = (TextView) convertView; 8531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project textView.setTag(item); 8631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project textView.setText(item.text); 8731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project textView.setCompoundDrawablesWithIntrinsicBounds(item.image, null, null, null); 885a808358f1a773dab8babae44899ffd4ed1810c1Winson Chung 8931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project return convertView; 9031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 9131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 9231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public int getCount() { 9331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project return mItems.size(); 9431dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 9531dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 9631dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public Object getItem(int position) { 9731dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project return mItems.get(position); 9831dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 9931dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project 10031dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project public long getItemId(int position) { 10131dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project return position; 10231dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project } 10331dd503c6aa69018e694d91724d46db49ea09327The Android Open Source Project} 104