package org.ruboto.irb;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class ShortcutBuilder extends Activity implements OnItemClickListener {
public static final String SCRIPT_ACTION = "org.ruboto.intent.action.LAUNCH_SCRIPT";
public static final String SCRIPT_CATEGORY = "android.intent.category.DEFAULT";
public static final String SCRIPT_NAME = "org.ruboto.extra.SCRIPT_NAME";
public static final String TAG = "Ruboto-IRB";
private ArrayAdapter<String> adapter;
private List<String> scripts;
public static Intent intentForScript(String name) {
Intent sc_intent = new Intent();
sc_intent.setAction(SCRIPT_ACTION);
sc_intent.addCategory(SCRIPT_CATEGORY);
sc_intent.putExtra(SCRIPT_NAME, name);
return sc_intent;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
IRBScript.setDir(IRB.scriptsDirName(this));
ListView scriptsList = new ListView(this);
setContentView(scriptsList);
setTitle("Select a Ruboto Script");
scripts = IRBScript.list();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, scripts);
scriptsList.setAdapter(adapter);
scriptsList.setOnItemClickListener(this);
TextView emptyView = new TextView(this);
emptyView.setText(R.string.No_scripts);
scriptsList.setEmptyView(emptyView);
}
public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,
ShortcutBuilder.intentForScript(scripts.get(pos)));
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, scripts.get(pos));
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));
setResult((intent != null) ? RESULT_OK : RESULT_CANCELED, intent);
finish();
}
}