Xrasher/src/com/beloko/touchcontrols/TouchControlsEditing.java

146 lines
3.4 KiB
Java
Raw Normal View History

package com.beloko.touchcontrols;
import in.celest.xash3d.hl.R;
import android.app.Activity;
import android.app.Dialog;
import android.graphics.drawable.BitmapDrawable;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.BaseAdapter;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.ToggleButton;
public class TouchControlsEditing {
static String TAG = "TouchControlsEditing";
static class ControlInfo
{
String tag;
String image;
boolean enabled;
boolean hidden;
}
static ListAdapter adapter;
static Activity activity;
public static native void JNIGetControlInfo(int pos,ControlInfo info);
public static native int JNIGetNbrControls();
public static native void JNISetHidden(int pos, boolean hidden);
public static void setup(Activity a)
{
activity = a;
}
public static void show()
{
show(activity);
}
public static void show(Activity act)
{
Log.d(TAG,"showSettings");
if (act != null)
activity = act;
activity.runOnUiThread(new Runnable(){
public void run() {
final Dialog dialog = new Dialog(activity);
ListView listView = new ListView(activity);
dialog.setContentView(listView);
dialog.setTitle("Add/remove buttons");
dialog.setCancelable(true);
adapter = new ListAdapter(activity);
listView.setAdapter(adapter);
dialog.getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
dialog.show();
}
});
}
static class ListAdapter extends BaseAdapter{
private Activity context;
public ListAdapter(Activity context){
this.context=context;
}
public void add(String string){
}
public int getCount() {
return TouchControlsEditing.JNIGetNbrControls();
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
public View getView (int position, View convertView, ViewGroup list) {
//if (convertView == null) dont reuse view otherwise check change get called
convertView = activity.getLayoutInflater().inflate(R.layout.edit_controls_listview_item, null);
final int my_pos = position;
ImageView image = (ImageView)convertView.findViewById(R.id.imageView);
TextView name = (TextView)convertView.findViewById(R.id.name_textview);
ToggleButton hidden = (ToggleButton)convertView.findViewById(R.id.hidden_switch);
TouchControlsEditing.ControlInfo ci = new TouchControlsEditing.ControlInfo();
TouchControlsEditing.JNIGetControlInfo(position, ci);
name.setText(ci.tag);
hidden.setChecked(!ci.hidden);
hidden.setTag(new Integer(position));
hidden.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Integer pos = (Integer)buttonView.getTag();
TouchControlsEditing.JNISetHidden(pos, !isChecked);
adapter.notifyDataSetChanged();
}
});
String png = activity.getFilesDir() + "/" + ci.image + ".png";
Log.d(TAG,"png = " + png);
BitmapDrawable bm = new BitmapDrawable(png);
image.setImageDrawable(bm);
return convertView;
}
}
}