X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2FDictionaryActivity.java;h=fb546dd7a8bec3d87be6d745e0237c6e14262264;hb=06cd4cc9f779fb4fea8c384d30429036f8ddaea3;hp=56ded03c6c97e86634905d7f435546141795a1ff;hpb=7709c08d6f674f99263b82046a07671c85960597;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/DictionaryActivity.java b/src/com/hughes/android/dictionary/DictionaryActivity.java index 56ded03..fb546dd 100644 --- a/src/com/hughes/android/dictionary/DictionaryActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryActivity.java @@ -14,8 +14,8 @@ package com.hughes.android.dictionary; +import android.annotation.SuppressLint; import android.app.Dialog; -import android.app.ListActivity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -40,9 +40,7 @@ import android.util.TypedValue; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.KeyEvent; -import android.view.Menu; -import android.view.MenuItem; -import android.view.MenuItem.OnMenuItemClickListener; +import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; @@ -50,6 +48,7 @@ import android.view.View.OnFocusChangeListener; import android.view.View.OnLongClickListener; import android.view.ViewGroup; import android.view.WindowManager; +import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.BaseAdapter; @@ -66,6 +65,12 @@ import android.widget.TextView; import android.widget.TextView.BufferType; import android.widget.Toast; +import com.actionbarsherlock.app.ActionBar; +import com.actionbarsherlock.app.SherlockListActivity; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuItem; +import com.actionbarsherlock.view.MenuItem.OnMenuItemClickListener; +import com.actionbarsherlock.widget.SearchView; import com.hughes.android.dictionary.DictionaryInfo.IndexInfo; import com.hughes.android.dictionary.engine.Dictionary; import com.hughes.android.dictionary.engine.EntrySource; @@ -103,7 +108,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.regex.Matcher; import java.util.regex.Pattern; -public class DictionaryActivity extends ListActivity { +public class DictionaryActivity extends SherlockListActivity { static final String LOG = "QuickDic"; @@ -148,6 +153,8 @@ public class DictionaryActivity extends ListActivity { EditText searchText; Button langButton; + + MenuItem nextWordMenuItem, previousWordMenuItem; // Never null. private File wordList = null; @@ -361,25 +368,6 @@ public class DictionaryActivity extends ListActivity { }); updateLangButton(); - final View upButton = findViewById(R.id.UpButton); - upButton.setOnClickListener(new OnClickListener() { - public void onClick(View v) { - onUpDownButton(true); - } - }); - final View downButton = findViewById(R.id.DownButton); - downButton.setOnClickListener(new OnClickListener() { - public void onClick(View v) { - onUpDownButton(false); - } - }); - upButton.setVisibility(PreferenceManager.getDefaultSharedPreferences(this) - .getBoolean(getString(R.string.showPrevNextButtonsKey), true) ? View.VISIBLE - : View.GONE); - downButton.setVisibility(PreferenceManager.getDefaultSharedPreferences(this) - .getBoolean(getString(R.string.showPrevNextButtonsKey), true) ? View.VISIBLE - : View.GONE); - // getListView().setOnItemSelectedListener(new ListView.OnItemSelectedListener() { // @Override // public void onItemSelected(AdapterView adapterView, View arg1, final int position, @@ -416,6 +404,31 @@ public class DictionaryActivity extends ListActivity { Log.d(LOG, "wordList=" + wordList + ", saveOnlyFirstSubentry=" + saveOnlyFirstSubentry); setDictionaryPrefs(this, dictFile, indexIndex, searchText.getText().toString()); + + ActionBar actionBar = getSupportActionBar(); + actionBar.setDisplayShowTitleEnabled(false); + + //Inflate the custom view +// View customNav = LayoutInflater.from(this).inflate(R.layout.dictionary_search_view, null); + SearchView searchView = new SearchView(getSupportActionBar().getThemedContext()); + searchView.setIconifiedByDefault(false); + searchView.setQueryHint(getString(R.string.searchText)); + searchView.setSubmitButtonEnabled(false); +// searchView.setMaxWidth(200); + searchView.setImeOptions( + EditorInfo.IME_ACTION_SEARCH | + EditorInfo.IME_FLAG_NO_EXTRACT_UI | + EditorInfo.IME_FLAG_NO_ENTER_ACTION | +// EditorInfo.IME_FLAG_NO_FULLSCREEN | + EditorInfo.IME_MASK_ACTION | + EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS); +// searchView.setOnQueryTextListener(this); +// menu.add("Search") +//// .setIcon(isLight ? R.drawable.ic_search_inverse : R.drawable.abs__ic_search) +// .setActionView(searchView) +// .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + actionBar.setCustomView(searchView); + actionBar.setDisplayShowCustomEnabled(true); } @Override @@ -682,9 +695,56 @@ public class DictionaryActivity extends ListActivity { // -------------------------------------------------------------------------- final Random random = new Random(); - + @Override public boolean onCreateOptionsMenu(final Menu menu) { + //Create the search view +// SearchView searchView = new SearchView(getSupportActionBar().getThemedContext()); +// searchView.setIconifiedByDefault(false); +// searchView.setQueryHint(getString(R.string.searchText)); +// searchView.setSubmitButtonEnabled(false); +// searchView.setMaxWidth(200); +// searchView.setImeOptions( +// EditorInfo.IME_ACTION_SEARCH | +// EditorInfo.IME_FLAG_NO_EXTRACT_UI | +// EditorInfo.IME_FLAG_NO_ENTER_ACTION | +//// EditorInfo.IME_FLAG_NO_FULLSCREEN | +// EditorInfo.IME_MASK_ACTION | +// EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS); +//// searchView.setOnQueryTextListener(this); +// menu.add("Search") +//// .setIcon(isLight ? R.drawable.ic_search_inverse : R.drawable.abs__ic_search) +// .setActionView(searchView) +// .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + + + if (PreferenceManager.getDefaultSharedPreferences(this) + .getBoolean(getString(R.string.showPrevNextButtonsKey), true)) { + // Next word. + nextWordMenuItem = menu.add(getString(R.string.nextWord)) + .setIcon(R.drawable.arrow_down_float); + nextWordMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); + nextWordMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + onUpDownButton(true); + return true; + } + }); + + // Previous word. + previousWordMenuItem = menu.add(getString(R.string.previousWord)) + .setIcon(R.drawable.arrow_up_float); + previousWordMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); + previousWordMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + onUpDownButton(false); + return true; + } + }); + } + application.onCreateGlobalOptionsMenu(this, menu); // { @@ -701,6 +761,7 @@ public class DictionaryActivity extends ListActivity { { final MenuItem dictionaryList = menu.add(getString(R.string.dictionaryManager)); + dictionaryList.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); dictionaryList.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(final MenuItem menuItem) { startActivity(DictionaryManagerActivity.getLaunchIntent()); @@ -712,6 +773,7 @@ public class DictionaryActivity extends ListActivity { { final MenuItem aboutDictionary = menu.add(getString(R.string.aboutDictionary)); + aboutDictionary.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); aboutDictionary.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(final MenuItem menuItem) { final Context context = getListView().getContext(); @@ -778,18 +840,18 @@ public class DictionaryActivity extends ListActivity { AdapterContextMenuInfo adapterContextMenuInfo = (AdapterContextMenuInfo) menuInfo; final RowBase row = (RowBase) getListAdapter().getItem(adapterContextMenuInfo.position); - final MenuItem addToWordlist = menu.add(getString(R.string.addToWordList, + final android.view.MenuItem addToWordlist = menu.add(getString(R.string.addToWordList, wordList.getName())); - addToWordlist.setOnMenuItemClickListener(new OnMenuItemClickListener() { - public boolean onMenuItemClick(MenuItem item) { + addToWordlist.setOnMenuItemClickListener(new android.view.MenuItem.OnMenuItemClickListener() { + public boolean onMenuItemClick(android.view.MenuItem item) { onAppendToWordList(row); return false; } }); - final MenuItem share = menu.add("Share"); - share.setOnMenuItemClickListener(new OnMenuItemClickListener() { - public boolean onMenuItemClick(MenuItem item) { + final android.view.MenuItem share = menu.add("Share"); + share.setOnMenuItemClickListener(new android.view.MenuItem.OnMenuItemClickListener() { + public boolean onMenuItemClick(android.view.MenuItem item) { Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, row.getTokenRow(true).getToken()); @@ -799,9 +861,9 @@ public class DictionaryActivity extends ListActivity { } }); - final MenuItem copy = menu.add(android.R.string.copy); - copy.setOnMenuItemClickListener(new OnMenuItemClickListener() { - public boolean onMenuItemClick(MenuItem item) { + final android.view.MenuItem copy = menu.add(android.R.string.copy); + copy.setOnMenuItemClickListener(new android.view.MenuItem.OnMenuItemClickListener() { + public boolean onMenuItemClick(android.view.MenuItem item) { onCopy(row); return false; } @@ -809,10 +871,10 @@ public class DictionaryActivity extends ListActivity { if (selectedSpannableText != null) { final String selectedText = selectedSpannableText; - final MenuItem searchForSelection = menu.add(getString(R.string.searchForSelection, + final android.view.MenuItem searchForSelection = menu.add(getString(R.string.searchForSelection, selectedSpannableText)); - searchForSelection.setOnMenuItemClickListener(new OnMenuItemClickListener() { - public boolean onMenuItemClick(MenuItem item) { + searchForSelection.setOnMenuItemClickListener(new android.view.MenuItem.OnMenuItemClickListener() { + public boolean onMenuItemClick(android.view.MenuItem item) { jumpToTextFromHyperLink(selectedText, selectedSpannableIndex); return false; } @@ -820,10 +882,10 @@ public class DictionaryActivity extends ListActivity { } if (row instanceof TokenRow && ttsReady) { - final MenuItem speak = menu.add(R.string.speak); - speak.setOnMenuItemClickListener(new OnMenuItemClickListener() { + final android.view.MenuItem speak = menu.add(R.string.speak); + speak.setOnMenuItemClickListener(new android.view.MenuItem.OnMenuItemClickListener() { @Override - public boolean onMenuItemClick(MenuItem item) { + public boolean onMenuItemClick(android.view.MenuItem item) { textToSpeech.speak(((TokenRow) row).getToken(), TextToSpeech.QUEUE_FLUSH, new HashMap()); return false; @@ -871,6 +933,7 @@ public class DictionaryActivity extends ListActivity { } } + @SuppressLint("SimpleDateFormat") void onAppendToWordList(final RowBase row) { defocusSearchText(); @@ -1465,15 +1528,19 @@ public class DictionaryActivity extends ListActivity { } void setFiltered(final SearchOperation searchOperation) { - ((ImageButton) findViewById(R.id.UpButton)).setEnabled(false); - ((ImageButton) findViewById(R.id.DownButton)).setEnabled(false); + if (nextWordMenuItem != null) { + nextWordMenuItem.setEnabled(false); + previousWordMenuItem.setEnabled(false); + } rowsToShow = searchOperation.multiWordSearchResult; setListAdapter(new IndexAdapter(index, rowsToShow, searchOperation.searchTokens)); } void clearFiltered() { - ((ImageButton) findViewById(R.id.UpButton)).setEnabled(true); - ((ImageButton) findViewById(R.id.DownButton)).setEnabled(true); + if (nextWordMenuItem != null) { + nextWordMenuItem.setEnabled(true); + previousWordMenuItem.setEnabled(true); + } setListAdapter(new IndexAdapter(index)); rowsToShow = null; }