package com.kaltura.kalturaplayertoolkit;
import android.app.Dialog;
import android.content.Context;
import android.text.Html;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.kaltura.playersdk.casting.KCastDevice;
import java.util.ArrayList;
/**
* Created by nissimpardo on 10/11/15.
*/
public class CastDetectedDevicesDialog extends Dialog {
private ArrayList<KCastDevice> mRouteNames;
private ArrayAdapter<KCastDevice> mAdapter;
public interface CastDetectedDevicesDialogListener {
public void disconnect();
public void routeSelected(String castDeviceId);
}
public CastDetectedDevicesDialog(Context context, final CastDetectedDevicesDialogListener listener) {
super(context);
setContentView(R.layout.media_routers);
setTitle(Html.fromHtml("<font color='#0db6d1'>Connect to Device</font>"));
mRouteNames = new ArrayList<KCastDevice>();
final ListView routeListView = (ListView)findViewById(R.id.listview);
mAdapter = new ArrayAdapter<KCastDevice>(context, android.R.layout.simple_list_item_1, mRouteNames);
routeListView.setAdapter(mAdapter);
routeListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (mAdapter.getItem(position).getRouterName().equals("Disconnect")) {
listener.disconnect();
} else {
listener.routeSelected(mRouteNames.get(position).getRouterId());
}
dismiss();
}
});
}
// public void deviceConnectionStateDidChange(boolean isConnected) {
// ArrayList<KCastDevice> temp = new ArrayList<>(mRouteNames);
// mAdapter.clear();
// mRouteNames = new ArrayList<>(temp);
// if (isConnected) {
// KCastDevice disconnect = new KCastDevice();
// disconnect.setRouterName("Disconnect");
// mAdapter.add(disconnect);
// } else {
// mAdapter.addAll(mRouteNames);
// }
// }
@Override
public void show() {
super.show();
mAdapter.notifyDataSetChanged();
}
public void addCastDevice(KCastDevice info) {
mRouteNames.add(info);
if (isShowing()) {
mAdapter.notifyDataSetChanged();
}
}
public void removeCastDevice(KCastDevice info) {
mRouteNames.remove(info);
if (isShowing()) {
mAdapter.notifyDataSetChanged();
}
}
}