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