146 lines
3.4 KiB
Java
146 lines
3.4 KiB
Java
![]() |
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;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|