blob: 1d38ec8ba776dac01ee3f293d3710ed6b288db7f [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chromoting;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.widget.Toast;
/** Describes the appearance and behavior of each host list entry. */
class HostListAdapter extends ArrayAdapter<HostInfo> {
/** Color to use for hosts that are online. */
private static final String HOST_COLOR_ONLINE = "green";
/** Color to use for hosts that are offline. */
private static final String HOST_COLOR_OFFLINE = "red";
private Chromoting mChromoting;
/** Constructor. */
public HostListAdapter(Chromoting chromoting, int textViewResourceId, HostInfo[] hosts) {
super(chromoting, textViewResourceId, hosts);
mChromoting = chromoting;
}
/** Generates a View corresponding to this particular host. */
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView target = (TextView)super.getView(position, convertView, parent);
final HostInfo host = getItem(position);
target.setText(host.name);
target.setCompoundDrawablesWithIntrinsicBounds(
host.isOnline ? R.drawable.icon_host : R.drawable.icon_host_offline, 0, 0, 0);
if (host.isOnline) {
target.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mChromoting.connectToHost(host);
}
});
} else {
target.setTextColor(mChromoting.getResources().getColor(R.color.host_offline_text));
target.setBackgroundResource(R.drawable.list_item_disabled_selector);
target.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mChromoting,
mChromoting.getString(R.string.host_offline_tooltip),
Toast.LENGTH_SHORT).show();
}
});
}
return target;
}
}