blob: 429ed900dc446f54affa21c49efb6a9833878b2f [file] [log] [blame]
Axesh R. Ajmera34d3f142014-06-30 20:05:36 -07001/*
2 * Copyright (c) 2014, The Linux Foundation. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above
10 * copyright notice, this list of conditions and the following
11 * disclaimer in the documentation and/or other materials provided
12 * with the distribution.
13 * * Neither the name of The Linux Foundation nor the names of its
14 * contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 *
29 */
30
31package com.android.browser;
32
33import android.content.Context;
34import android.content.pm.ResolveInfo;
35import android.content.pm.PackageManager;
36import android.view.LayoutInflater;
37import android.view.View;
38import android.view.ViewGroup;
39import android.widget.AdapterView;
40import android.widget.ArrayAdapter;
41import android.widget.TextView;
42import android.widget.ImageView;
43
44import java.util.List;
45
46public class AppAdapter extends ArrayAdapter<ResolveInfo> {
47 private PackageManager pm = null;
48 private Context context = null;
49 private int layoutResourceId = -1;
50
51
52 public AppAdapter (Context context, PackageManager pm, int layoutResourceId, List<ResolveInfo> apps) {
53 super(context, layoutResourceId, apps);
54 this.context = context;
55 this.pm = pm;
56 this.layoutResourceId = layoutResourceId;
57 }
58
59 /*
60 * Overide this method in order to create your own view
61 */
62 @Override
63 public View getView(int position, View convertView, ViewGroup parent) {
64 if (convertView == null) {
65 convertView = newView(parent);
66 }
67
68 bindView(position, convertView);
69 return(convertView);
70 }
71
72 private View newView(ViewGroup parent) {
73 LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
74 return(layoutInflater.inflate(layoutResourceId, parent, false));
75 }
76
77 private void bindView(int position, View row) {
78
79 TextView label = (TextView)row.findViewById(R.id.app_label);
80 label.setText( getItem(position).loadLabel(pm));
81
82 ImageView icon = (ImageView)row.findViewById(R.id.app_icon);
83 icon.setImageDrawable( getItem(position).loadIcon(pm));
84
85 }
86}