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