1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5package org.chromium.chrome.shell.omnibox;
6
7import android.content.Context;
8import android.view.LayoutInflater;
9import android.view.View;
10import android.view.ViewGroup;
11import android.widget.AbsListView.LayoutParams;
12import android.widget.ArrayAdapter;
13import android.widget.EditText;
14import android.widget.ImageView;
15import android.widget.TextView;
16
17import org.chromium.chrome.browser.omnibox.OmniboxSuggestion;
18import org.chromium.chrome.shell.R;
19
20import java.util.List;
21
22/**
23 * Adapter that provides suggestion views for the suggestion popup.
24 */
25class  SuggestionArrayAdapter extends ArrayAdapter<OmniboxSuggestion> {
26    private final List<OmniboxSuggestion> mSuggestions;
27    private EditText mUrlTextView;
28
29    public SuggestionArrayAdapter(Context context, int res, List<OmniboxSuggestion> suggestions,
30            EditText urlTextView) {
31        super(context, res, suggestions);
32        mSuggestions = suggestions;
33        mUrlTextView = urlTextView;
34    }
35
36    @Override
37    public View getView(int position, View convertView, ViewGroup parent) {
38        View v = convertView;
39        if (v == null) {
40            LayoutInflater vi = (LayoutInflater) getContext().getSystemService(
41                    Context.LAYOUT_INFLATER_SERVICE);
42            v = vi.inflate(R.layout.suggestion_item, null);
43            int height = getContext().getResources().getDimensionPixelSize(
44                    R.dimen.dropdown_item_height);
45            v.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, height));
46        }
47        TextView t1 = (TextView) v.findViewById(R.id.suggestion_item_label);
48        final String suggestionText = mSuggestions.get(position).getDisplayText();
49        t1.setText(suggestionText);
50
51        TextView t2 = (TextView) v.findViewById(R.id.suggestion_item_sublabel);
52        t2.setText(mSuggestions.get(position).getUrl());
53
54        ImageView arrow = (ImageView) v.findViewById(R.id.suggestion_item_arrow);
55        arrow.setOnClickListener(new View.OnClickListener() {
56            @Override
57            public void onClick(View v) {
58                mUrlTextView.setText(suggestionText);
59                mUrlTextView.setSelection(suggestionText.length());
60            }
61        });
62        return v;
63    }
64}
65