package io.evercam.androidapp.custom; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.RelativeLayout; import java.util.ArrayList; import io.evercam.androidapp.R; import io.evercam.androidapp.dto.EvercamCamera; /** * The array adapter that updates items in live view drop down list */ public class CameraListAdapter extends ArrayAdapter<String> { private final String TAG = "CameraListAdapter"; private ArrayList<EvercamCamera> cameraList; public CameraListAdapter(Context context, int resource, int textViewResourceId, String[] objects, ArrayList<EvercamCamera> cameraList) { super(context, resource, textViewResourceId, objects); this.cameraList = cameraList; } /** * Remove offline icon for selected camera that is showing as title */ @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); ImageView offlineIcon = (ImageView) view.findViewById(R.id.spinner_offline_icon); offlineIcon.setVisibility(View.GONE); //Make spinner text fit landscape too RelativeLayout layout = (RelativeLayout) view.findViewById(R.id.list_spinner_layout); layout.setPadding(10, 0, 10, 0); return view; } /** * Only show offline icon for camera that is offline in dropdown list. */ @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { View view = super.getDropDownView(position, convertView, parent); ImageView offlineIcon = (ImageView) view.findViewById(R.id.spinner_offline_icon); EvercamCamera evercamCamera = cameraList.get(position); if(evercamCamera.isOffline()) { offlineIcon.setVisibility(View.VISIBLE); } else { offlineIcon.setVisibility(View.GONE); } return view; } }