]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/DictionaryListActivity.java
go
[Dictionary.git] / src / com / hughes / android / dictionary / DictionaryListActivity.java
index 26f7075563ddb7c57b1ade9ecf720bcc1085bc4c..286f2497e98e035d7255f6e3e90b675ef087ad70 100644 (file)
@@ -1,8 +1,13 @@
 package com.hughes.android.dictionary;
 
+import android.app.AlertDialog;
 import android.app.ListActivity;
+import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.SharedPreferences;
 import android.os.Bundle;
+import android.preference.PreferenceManager;
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.Menu;
@@ -11,6 +16,7 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.view.ContextMenu.ContextMenuInfo;
 import android.view.MenuItem.OnMenuItemClickListener;
+import android.webkit.WebView;
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.TableLayout;
@@ -28,21 +34,14 @@ public class DictionaryListActivity extends ListActivity {
   
   
   public void onCreate(Bundle savedInstanceState) {
+    ((DictionaryApplication)getApplication()).applyTheme(this);
+
     super.onCreate(savedInstanceState);
     Log.d(LOG, "onCreate:" + this);
 
     // UI init.
     setContentView(R.layout.list_activity);
 
-    /*
-    getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
-      public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int row,
-          long arg3) {
-        return false;
-      }
-    });
-    */
-
     getListView().setOnItemClickListener(new OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> arg0, View arg1, int index,
@@ -53,25 +52,56 @@ public class DictionaryListActivity extends ListActivity {
 
     // ContextMenu.
     registerForContextMenu(getListView());
-    
+
+    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+    final int introMessageId = -1;
+    if (prefs.getInt(C.INTRO_MESSAGE_SHOWN, 0) < introMessageId) {
+      final AlertDialog.Builder builder = new AlertDialog.Builder(this);
+      builder.setCancelable(false);
+      final WebView webView = new WebView(getApplicationContext());
+      webView.loadData(getString(R.string.thanksForUpdating), "text/html", "utf-8");
+      builder.setView(webView);
+      builder.setNegativeButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+          public void onClick(DialogInterface dialog, int id) {
+               dialog.cancel();
+          }
+      });
+      final AlertDialog alert = builder.create();
+      alert.show();
+      prefs.edit().putInt(C.INTRO_MESSAGE_SHOWN, introMessageId).commit();
+    }
   }
   
   private void onClick(int dictIndex) {
-    final Intent intent = DictionaryActivity.getIntent(dictIndex, 0, "");
+    final Intent intent = DictionaryActivity.getIntent(this, dictIndex, 0, "");
     startActivity(intent);
   }
   
   @Override
   protected void onResume() {
     super.onResume();
+    
+    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+    if (prefs.contains(C.DICT_INDEX) && prefs.contains(C.INDEX_INDEX)) {
+      Log.d(LOG, "Skipping Dictionary List, going straight to dictionary.");
+      startActivity(DictionaryActivity.getIntent(this, prefs.getInt(C.DICT_INDEX, 0), prefs.getInt(C.INDEX_INDEX, 0), prefs.getString(C.SEARCH_TOKEN, "")));
+      //finish();
+      return;
+    }
 
     quickDicConfig = PersistentObjectCache.init(this).read(C.DICTIONARY_CONFIGS, QuickDicConfig.class);
     if (quickDicConfig == null) {
       quickDicConfig = new QuickDicConfig();
       PersistentObjectCache.getInstance().write(C.DICTIONARY_CONFIGS, quickDicConfig);
     }
+    if (quickDicConfig.currentVersion < QuickDicConfig.LATEST_VERSION) {
+      Log.d(LOG, "Dictionary list is old, updating it.");
+      quickDicConfig.addDefaultDictionaries();
+      quickDicConfig.currentVersion = QuickDicConfig.LATEST_VERSION;
+    }
 
     setListAdapter(new Adapter());
+    
   }
 
   public boolean onCreateOptionsMenu(final Menu menu) {
@@ -85,6 +115,34 @@ public class DictionaryListActivity extends ListActivity {
             return false;
           }
         });
+
+    final MenuItem addDefaultDictionariesMenuItem = menu.add(R.string.addDefaultDictionaries);
+    addDefaultDictionariesMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
+          public boolean onMenuItemClick(final MenuItem menuItem) {
+            quickDicConfig.addDefaultDictionaries();
+            dictionaryConfigsChanged();
+            return false;
+          }
+        });
+
+    final MenuItem about = menu.add(getString(R.string.about));
+    about.setOnMenuItemClickListener(new OnMenuItemClickListener() {
+      public boolean onMenuItemClick(final MenuItem menuItem) {
+        final Intent intent = new Intent().setClassName(AboutActivity.class
+            .getPackage().getName(), AboutActivity.class.getCanonicalName());
+        startActivity(intent);
+        return false;
+      }
+    });
+    
+    final MenuItem preferences = menu.add(getString(R.string.preferences));
+    preferences.setOnMenuItemClickListener(new OnMenuItemClickListener() {
+      public boolean onMenuItemClick(final MenuItem menuItem) {
+        startActivity(new Intent(DictionaryListActivity.this,
+            PreferenceActivity.class));
+        return false;
+      }
+    });
     
     return true;
   }
@@ -168,5 +226,12 @@ public class DictionaryListActivity extends ListActivity {
     
   }
 
+  public static Intent getIntent(final Context context) {
+    DictionaryActivity.clearDictionaryPrefs(context);
+    final Intent intent = new Intent();
+    intent.setClassName(DictionaryListActivity.class.getPackage().getName(),
+        DictionaryListActivity.class.getName());
+    return intent;
+  }
 
 }