1 package com.hughes.android.dictionary;
3 import android.app.ListActivity;
4 import android.content.Intent;
5 import android.os.Bundle;
6 import android.util.Log;
7 import android.view.ContextMenu;
8 import android.view.Menu;
9 import android.view.MenuItem;
10 import android.view.View;
11 import android.view.ViewGroup;
12 import android.view.ContextMenu.ContextMenuInfo;
13 import android.view.MenuItem.OnMenuItemClickListener;
14 import android.widget.AdapterView;
15 import android.widget.BaseAdapter;
16 import android.widget.TableLayout;
17 import android.widget.TextView;
18 import android.widget.AdapterView.AdapterContextMenuInfo;
19 import android.widget.AdapterView.OnItemClickListener;
21 import com.hughes.android.util.PersistentObjectCache;
23 public class DictionaryListActivity extends ListActivity {
25 static final String LOG = "QuickDic";
27 QuickDicConfig quickDicConfig = new QuickDicConfig();
30 public void onCreate(Bundle savedInstanceState) {
31 super.onCreate(savedInstanceState);
32 Log.d(LOG, "onCreate:" + this);
35 setContentView(R.layout.list_activity);
38 getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
39 public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int row,
46 getListView().setOnItemClickListener(new OnItemClickListener() {
48 public void onItemClick(AdapterView<?> arg0, View arg1, int index,
55 registerForContextMenu(getListView());
59 private void onClick(int dictIndex) {
60 final Intent intent = DictionaryActivity.getIntent(dictIndex, 0, "");
61 startActivity(intent);
65 protected void onResume() {
68 quickDicConfig = PersistentObjectCache.init(this).read(C.DICTIONARY_CONFIGS, QuickDicConfig.class);
69 if (quickDicConfig == null) {
70 quickDicConfig = new QuickDicConfig();
71 PersistentObjectCache.getInstance().write(C.DICTIONARY_CONFIGS, quickDicConfig);
74 setListAdapter(new Adapter());
77 public boolean onCreateOptionsMenu(final Menu menu) {
78 final MenuItem newDictionaryMenuItem = menu.add(R.string.addDictionary);
79 newDictionaryMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
80 public boolean onMenuItemClick(final MenuItem menuItem) {
81 final DictionaryConfig dictionaryConfig = new DictionaryConfig();
82 dictionaryConfig.name = getString(R.string.newDictionary);
83 quickDicConfig.dictionaryConfigs.add(0, dictionaryConfig);
84 dictionaryConfigsChanged();
94 public void onCreateContextMenu(final ContextMenu menu, final View view,
95 final ContextMenuInfo menuInfo) {
96 super.onCreateContextMenu(menu, view, menuInfo);
98 final AdapterContextMenuInfo adapterContextMenuInfo = (AdapterContextMenuInfo) menuInfo;
100 final MenuItem editMenuItem = menu.add(R.string.editDictionary);
101 editMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
103 public boolean onMenuItemClick(MenuItem item) {
104 startActivity(DictionaryEditActivity.getIntent(adapterContextMenuInfo.position));
109 if (adapterContextMenuInfo.position > 0) {
110 final MenuItem moveUpMenuItem = menu.add(R.string.moveUp);
111 moveUpMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
113 public boolean onMenuItemClick(MenuItem item) {
114 final DictionaryConfig dictionaryConfig = quickDicConfig.dictionaryConfigs.remove(adapterContextMenuInfo.position);
115 quickDicConfig.dictionaryConfigs.add(adapterContextMenuInfo.position - 1, dictionaryConfig);
116 dictionaryConfigsChanged();
122 final MenuItem deleteMenuItem = menu.add(R.string.deleteDictionary);
123 deleteMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
125 public boolean onMenuItemClick(MenuItem item) {
126 quickDicConfig.dictionaryConfigs.remove(adapterContextMenuInfo.position);
127 dictionaryConfigsChanged();
134 private void dictionaryConfigsChanged() {
135 PersistentObjectCache.getInstance().write(C.DICTIONARY_CONFIGS, quickDicConfig);
136 setListAdapter(getListAdapter());
139 class Adapter extends BaseAdapter {
142 public int getCount() {
143 return quickDicConfig.dictionaryConfigs.size();
147 public DictionaryConfig getItem(int position) {
148 return quickDicConfig.dictionaryConfigs.get(position);
152 public long getItemId(int position) {
157 public View getView(int position, View convertView, ViewGroup parent) {
158 final DictionaryConfig dictionaryConfig = getItem(position);
159 final TableLayout tableLayout = new TableLayout(parent.getContext());
160 final TextView view = new TextView(parent.getContext());
162 view.setText(dictionaryConfig.name);
163 view.setTextSize(20);
164 tableLayout.addView(view);