]> gitweb.fperrin.net Git - Dictionary.git/blob - src/com/hughes/android/dictionary/DictionaryListActivity.java
go
[Dictionary.git] / src / com / hughes / android / dictionary / DictionaryListActivity.java
1 package com.hughes.android.dictionary;
2
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;
20
21 import com.hughes.android.util.PersistentObjectCache;
22
23 public class DictionaryListActivity extends ListActivity {
24
25   static final String LOG = "QuickDic";
26   
27   QuickDicConfig quickDicConfig = new QuickDicConfig();
28   
29   
30   public void onCreate(Bundle savedInstanceState) {
31     super.onCreate(savedInstanceState);
32     Log.d(LOG, "onCreate:" + this);
33
34     // UI init.
35     setContentView(R.layout.list_activity);
36
37     /*
38     getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
39       public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int row,
40           long arg3) {
41         return false;
42       }
43     });
44     */
45
46     getListView().setOnItemClickListener(new OnItemClickListener() {
47       @Override
48       public void onItemClick(AdapterView<?> arg0, View arg1, int index,
49           long id) {
50         onClick(index);
51       }
52     });
53
54     // ContextMenu.
55     registerForContextMenu(getListView());
56     
57   }
58   
59   private void onClick(int dictIndex) {
60     final Intent intent = DictionaryActivity.getIntent(dictIndex, 0, "");
61     startActivity(intent);
62   }
63   
64   @Override
65   protected void onResume() {
66     super.onResume();
67
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);
72     }
73
74     setListAdapter(new Adapter());
75   }
76
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();
85             return false;
86           }
87         });
88     
89     return true;
90   }
91   
92
93   @Override
94   public void onCreateContextMenu(final ContextMenu menu, final View view,
95       final ContextMenuInfo menuInfo) {
96     super.onCreateContextMenu(menu, view, menuInfo);
97     
98     final AdapterContextMenuInfo adapterContextMenuInfo = (AdapterContextMenuInfo) menuInfo;
99     
100     final MenuItem editMenuItem = menu.add(R.string.editDictionary);
101     editMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
102       @Override
103       public boolean onMenuItemClick(MenuItem item) {
104         startActivity(DictionaryEditActivity.getIntent(adapterContextMenuInfo.position));
105         return true;
106       }
107     });
108
109     if (adapterContextMenuInfo.position > 0) {
110       final MenuItem moveUpMenuItem = menu.add(R.string.moveUp);
111       moveUpMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
112         @Override
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();
117           return true;
118         }
119       });
120     }
121
122     final MenuItem deleteMenuItem = menu.add(R.string.deleteDictionary);
123     deleteMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
124       @Override
125       public boolean onMenuItemClick(MenuItem item) {
126         quickDicConfig.dictionaryConfigs.remove(adapterContextMenuInfo.position);
127         dictionaryConfigsChanged();
128         return true;
129       }
130     });
131
132   }
133
134   private void dictionaryConfigsChanged() {
135     PersistentObjectCache.getInstance().write(C.DICTIONARY_CONFIGS, quickDicConfig);
136     setListAdapter(getListAdapter());
137   }
138
139   class Adapter extends BaseAdapter {
140
141     @Override
142     public int getCount() {
143       return quickDicConfig.dictionaryConfigs.size();
144     }
145
146     @Override
147     public DictionaryConfig getItem(int position) {
148       return quickDicConfig.dictionaryConfigs.get(position);
149     }
150
151     @Override
152     public long getItemId(int position) {
153       return position;
154     }
155     
156     @Override
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());
161
162       view.setText(dictionaryConfig.name);
163       view.setTextSize(20);
164       tableLayout.addView(view);
165
166       return tableLayout;
167     }
168     
169   }
170
171
172 }