package com.iwedia.gui.components.dialogs;
import android.content.Context;
import android.content.res.TypedArray;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;
import com.iwedia.gui.MainActivity;
import com.iwedia.gui.R;
import com.iwedia.gui.components.A4TVDialog;
import com.iwedia.gui.components.A4TVTextView;
import com.iwedia.gui.components.A4TVToast;
import com.iwedia.gui.mainmenu.DialogCreatorClass;
import com.iwedia.gui.mainmenu.DialogManager;
import java.util.ArrayList;
/**
* Applications dialog
*
* @author Branimir Pavlovic
*/
public class ApplicationsManageRunningServicesDialog extends A4TVDialog
implements A4TVDialogInterface, android.view.View.OnClickListener,
OnItemClickListener {
// fields for creating dialogs
private ArrayList<ArrayList<Integer>> contentList = new ArrayList<ArrayList<Integer>>(),
contentListIDs = new ArrayList<ArrayList<Integer>>();
private ArrayList<Integer> titleIDs = new ArrayList<Integer>();
private ArrayList<String> runningServicesListContent = new ArrayList<String>();
private Context ctx;
private RunningServicesAdapter listAdapter;
private ListView listViewApplications;
public ApplicationsManageRunningServicesDialog(Context context) {
super(context, checkTheme(context), 0);
ctx = context;
// fill lists
returnArrayListsWithDialogContents(contentList, contentListIDs,
titleIDs);
// set content to dialog
fillDialog();
// set attributes
setDialogAttributes();
}
@Override
public void show() {
fillInitialViews();
super.show();
}
/** Populate views in dialog */
private void fillInitialViews() {
// get reference of listview
listViewApplications = (ListView) findViewById(DialogCreatorClass.LIST_VIEW_IN_DIALOG_ID);
listViewApplications.setOnItemClickListener(this);
}
@Override
public void fillDialog() {
listAdapter = new RunningServicesAdapter();
View view = DialogManager.dialogCreator.fillDialogWithContents(
contentList, contentListIDs, titleIDs, null, this, listAdapter);// ,
// pictureBackgroundID);
setContentView(view);
}
@Override
public void setDialogAttributes() {
getWindow().getAttributes().width = MainActivity.dialogWidth;
getWindow().getAttributes().height = MainActivity.dialogHeight;
}
/**
* Function that load theme
*
* @param ctx
* @return
*/
private static int checkTheme(Context ctx) {
TypedArray atts = ctx.getTheme().obtainStyledAttributes(
new int[] { R.attr.A4TVDialog });
int i = atts.getResourceId(0, 0);
atts.recycle();
return i;
}
/** List on item click listener */
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
A4TVToast toast = new A4TVToast(getContext());
toast.showToast("CHOSSEN " + arg2);
}
@Override
public void onClick(View v) {
}
@Override
public void returnArrayListsWithDialogContents(
ArrayList<ArrayList<Integer>> contentList,
ArrayList<ArrayList<Integer>> contentListIDs,
ArrayList<Integer> titleIDs) {
// clear old data in lists
contentList.clear();
contentListIDs.clear();
titleIDs.clear();
// title
titleIDs.add(R.drawable.settings_icon);
titleIDs.add(R.drawable.applications_settings);
titleIDs.add(R.string.tv_menu_applications_settings_running_services);
}
private class RunningServicesAdapter extends BaseAdapter {
@Override
public int getCount() {
return runningServicesListContent.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = new A4TVTextView(ctx);
}
((A4TVTextView) convertView).setText(runningServicesListContent
.get(position));
((A4TVTextView) convertView).setGravity(Gravity.LEFT
| Gravity.CENTER_VERTICAL);
(convertView).setPadding(
(int) ctx.getResources()
.getDimension(R.dimen.padding_large), 0, 0, 0);
(convertView).setBackgroundResource(R.drawable.list_view_selector);
convertView.setLayoutParams(new ListView.LayoutParams(
LayoutParams.MATCH_PARENT,
MainActivity.dialogListElementHeight));
return convertView;
}
}
}