transport selection refactor

Closes #1724
// FREEBIE
This commit is contained in:
Jake McGinty
2014-07-18 19:31:03 -07:00
parent 4a088410ae
commit 30232c1635
13 changed files with 446 additions and 96 deletions

View File

@@ -0,0 +1,71 @@
package org.thoughtcrime.securesms;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
import java.util.Map;
public class TransportOptionsAdapter extends BaseAdapter {
private final Context context;
private final LayoutInflater inflater;
private List<String> enabledTransports;
private final Map<String, TransportOption> transportMetadata;
public TransportOptionsAdapter(final Context context,
final List<String> enabledTransports,
final Map<String, TransportOption> transportMetadata) {
super();
this.context = context;
this.inflater = LayoutInflater.from(context);
this.enabledTransports = enabledTransports;
this.transportMetadata = transportMetadata;
}
public TransportOptionsAdapter(final Context context,
final Map<String, TransportOption> transportMetadata) {
this(context, null, transportMetadata);
}
public void setEnabledTransports(final List<String> enabledTransports) {
this.enabledTransports = enabledTransports;
}
@Override
public int getCount() {
return enabledTransports == null ? 0 : enabledTransports.size();
}
@Override
public Object getItem(int position) {
return transportMetadata.get(enabledTransports.get(position));
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final View view;
if (convertView == null) {
view = inflater.inflate(R.layout.transport_selection_list_item, parent, false);
} else {
view = convertView;
}
TransportOption transport = (TransportOption) getItem(position);
final ImageView imageView = (ImageView)view.findViewById(R.id.icon);
final TextView textView = (TextView) view.findViewById(R.id.text);
imageView.setImageResource(transport.drawable);
textView.setText(transport.text);
return view;
}
}