OSDN Git Service

init
authorYuji Konishi <yuji.k64613@gmail.com>
Thu, 5 Apr 2012 08:47:37 +0000 (17:47 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Thu, 5 Apr 2012 08:47:37 +0000 (17:47 +0900)
26 files changed:
.gitignore [new file with mode: 0644]
memo.txt [new file with mode: 0644]
workspace/EverClip/.classpath [new file with mode: 0644]
workspace/EverClip/.project [new file with mode: 0644]
workspace/EverClip/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
workspace/EverClip/AndroidManifest.xml [new file with mode: 0644]
workspace/EverClip/default.properties [new file with mode: 0644]
workspace/EverClip/gen/com/yuji/ec/R.java [new file with mode: 0644]
workspace/EverClip/proguard.cfg [new file with mode: 0644]
workspace/EverClip/res/drawable-hdpi/icon.png [new file with mode: 0644]
workspace/EverClip/res/drawable-ldpi/icon.png [new file with mode: 0644]
workspace/EverClip/res/drawable-mdpi/icon.png [new file with mode: 0644]
workspace/EverClip/res/layout/main.xml [new file with mode: 0644]
workspace/EverClip/res/values/strings.xml [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/EverClipActivity.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/Initialize.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/db/DatabaseHelper.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/db/IDao.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/db/Note.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/db/NoteDao.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/utility/BaseActivity.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/utility/Debug.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/utility/ECException.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/utility/EditPrefUtil.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/utility/PrefUtil.java [new file with mode: 0644]
workspace/EverClip/src/com/yuji/ec/utility/PrefUtilImpl.java [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..9c35e3b
--- /dev/null
@@ -0,0 +1,4 @@
+workspace/.metadata\r
+*.class\r
+workspace/EverClip/bin\r
+.DS_Store\r
diff --git a/memo.txt b/memo.txt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/workspace/EverClip/.classpath b/workspace/EverClip/.classpath
new file mode 100644 (file)
index 0000000..6e9239f
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+       <classpathentry kind="src" path="src"/>\r
+       <classpathentry kind="src" path="gen"/>\r
+       <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>\r
+       <classpathentry kind="output" path="bin"/>\r
+</classpath>\r
diff --git a/workspace/EverClip/.project b/workspace/EverClip/.project
new file mode 100644 (file)
index 0000000..2ff97a1
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>EverClip</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.jdt.core.javabuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>com.android.ide.eclipse.adt.ApkBuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>com.android.ide.eclipse.adt.AndroidNature</nature>\r
+               <nature>org.eclipse.jdt.core.javanature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/workspace/EverClip/.settings/org.eclipse.jdt.core.prefs b/workspace/EverClip/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..42318a6
--- /dev/null
@@ -0,0 +1,5 @@
+#Thu Apr 05 15:34:06 JST 2012\r
+eclipse.preferences.version=1\r
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
+org.eclipse.jdt.core.compiler.compliance=1.5\r
+org.eclipse.jdt.core.compiler.source=1.5\r
diff --git a/workspace/EverClip/AndroidManifest.xml b/workspace/EverClip/AndroidManifest.xml
new file mode 100644 (file)
index 0000000..3b4affd
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+      package="com.yuji.ec"
+      android:versionCode="1"
+      android:versionName="1.0">
+    <uses-sdk android:minSdkVersion="7" />
+
+    <application android:icon="@drawable/icon" android:label="@string/app_name">
+        <activity android:name=".EverClipActivity"
+                  android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+    </application>
+</manifest>
\ No newline at end of file
diff --git a/workspace/EverClip/default.properties b/workspace/EverClip/default.properties
new file mode 100644 (file)
index 0000000..46769a7
--- /dev/null
@@ -0,0 +1,11 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-7
diff --git a/workspace/EverClip/gen/com/yuji/ec/R.java b/workspace/EverClip/gen/com/yuji/ec/R.java
new file mode 100644 (file)
index 0000000..4404b79
--- /dev/null
@@ -0,0 +1,23 @@
+/* AUTO-GENERATED FILE.  DO NOT MODIFY.\r
+ *\r
+ * This class was automatically generated by the\r
+ * aapt tool from the resource data it found.  It\r
+ * should not be modified by hand.\r
+ */\r
+\r
+package com.yuji.ec;\r
+\r
+public final class R {\r
+    public static final class attr {\r
+    }\r
+    public static final class drawable {\r
+        public static final int icon=0x7f020000;\r
+    }\r
+    public static final class layout {\r
+        public static final int main=0x7f030000;\r
+    }\r
+    public static final class string {\r
+        public static final int app_name=0x7f040001;\r
+        public static final int hello=0x7f040000;\r
+    }\r
+}\r
diff --git a/workspace/EverClip/proguard.cfg b/workspace/EverClip/proguard.cfg
new file mode 100644 (file)
index 0000000..12dd039
--- /dev/null
@@ -0,0 +1,36 @@
+-optimizationpasses 5
+-dontusemixedcaseclassnames
+-dontskipnonpubliclibraryclasses
+-dontpreverify
+-verbose
+-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
+
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class * extends android.app.backup.BackupAgentHelper
+-keep public class * extends android.preference.Preference
+-keep public class com.android.vending.licensing.ILicensingService
+
+-keepclasseswithmembernames class * {
+    native <methods>;
+}
+
+-keepclasseswithmembernames class * {
+    public <init>(android.content.Context, android.util.AttributeSet);
+}
+
+-keepclasseswithmembernames class * {
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+
+-keep class * implements android.os.Parcelable {
+  public static final android.os.Parcelable$Creator *;
+}
diff --git a/workspace/EverClip/res/drawable-hdpi/icon.png b/workspace/EverClip/res/drawable-hdpi/icon.png
new file mode 100644 (file)
index 0000000..8074c4c
Binary files /dev/null and b/workspace/EverClip/res/drawable-hdpi/icon.png differ
diff --git a/workspace/EverClip/res/drawable-ldpi/icon.png b/workspace/EverClip/res/drawable-ldpi/icon.png
new file mode 100644 (file)
index 0000000..1095584
Binary files /dev/null and b/workspace/EverClip/res/drawable-ldpi/icon.png differ
diff --git a/workspace/EverClip/res/drawable-mdpi/icon.png b/workspace/EverClip/res/drawable-mdpi/icon.png
new file mode 100644 (file)
index 0000000..a07c69f
Binary files /dev/null and b/workspace/EverClip/res/drawable-mdpi/icon.png differ
diff --git a/workspace/EverClip/res/layout/main.xml b/workspace/EverClip/res/layout/main.xml
new file mode 100644 (file)
index 0000000..3a5f117
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    >
+<TextView  
+    android:layout_width="fill_parent" 
+    android:layout_height="wrap_content" 
+    android:text="@string/hello"
+    />
+</LinearLayout>
diff --git a/workspace/EverClip/res/values/strings.xml b/workspace/EverClip/res/values/strings.xml
new file mode 100644 (file)
index 0000000..3881d9c
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="hello">Hello World, EverClipActivity!</string>
+    <string name="app_name">EverClip</string>
+</resources>
diff --git a/workspace/EverClip/src/com/yuji/ec/EverClipActivity.java b/workspace/EverClip/src/com/yuji/ec/EverClipActivity.java
new file mode 100644 (file)
index 0000000..8c0e2e9
--- /dev/null
@@ -0,0 +1,13 @@
+package com.yuji.ec;
+
+import android.os.Bundle;
+
+import com.yuji.ec.utility.BaseActivity;
+
+public class EverClipActivity extends BaseActivity {
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.main);
+    }
+}
\ No newline at end of file
diff --git a/workspace/EverClip/src/com/yuji/ec/Initialize.java b/workspace/EverClip/src/com/yuji/ec/Initialize.java
new file mode 100644 (file)
index 0000000..585a0c7
--- /dev/null
@@ -0,0 +1,18 @@
+package com.yuji.ec;\r
+\r
+import android.content.Context;\r
+\r
+public class Initialize {\r
+       private static boolean isInit = true;\r
+\r
+       public static void initialize(Context context) {\r
+               if (!isInit) {\r
+                       return;\r
+               }\r
+               isInit = false;\r
+       }\r
+\r
+       public static void setInitialize() {\r
+               isInit = true;\r
+       }\r
+}\r
diff --git a/workspace/EverClip/src/com/yuji/ec/db/DatabaseHelper.java b/workspace/EverClip/src/com/yuji/ec/db/DatabaseHelper.java
new file mode 100644 (file)
index 0000000..fe3b5f4
--- /dev/null
@@ -0,0 +1,73 @@
+package com.yuji.ec.db;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import android.content.Context;\r
+import android.database.sqlite.SQLiteDatabase;\r
+import android.database.sqlite.SQLiteOpenHelper;\r
+\r
+import com.yuji.ec.utility.Debug;\r
+import com.yuji.ec.utility.ECException;\r
+\r
+public class DatabaseHelper extends SQLiteOpenHelper {\r
+       private static DatabaseHelper instance = null;\r
+       private static List<IDao> daoList = null;\r
+\r
+       public static DatabaseHelper getInstance() {\r
+               return instance;\r
+       }\r
+\r
+       public static void init(Context context) throws ECException {\r
+               if (instance != null) {\r
+                       return;\r
+               }\r
+               daoList = new ArrayList<IDao>();\r
+               daoList.add(NoteDao.getInstance());\r
+\r
+               DatabaseHelper helper = new DatabaseHelper(context);\r
+               SQLiteDatabase db = helper.getWritableDatabase();\r
+\r
+               try {\r
+                       for (IDao dao : daoList) {\r
+                               dao.start(db);\r
+                       }\r
+               } catch (Exception e) {\r
+                       // TODO\r
+                       // Debug.d(context, null, e);\r
+               }\r
+       }\r
+\r
+       public DatabaseHelper(Context context) {\r
+               super(context, "EverClip.db", null, 1);\r
+               instance = this;\r
+       }\r
+\r
+       @Override\r
+       public void onCreate(SQLiteDatabase db) {\r
+               try {\r
+                       for (IDao dao : daoList) {\r
+                               dao.onCreate(db);\r
+                               dao.init(db);\r
+                       }\r
+\r
+                       db.beginTransaction();\r
+                       try {\r
+                               for (IDao dao : daoList) {\r
+                                       dao.start(db);\r
+                               }\r
+                               db.setTransactionSuccessful();\r
+                       } finally {\r
+                               db.endTransaction();\r
+                       }\r
+               } catch (Exception e) {\r
+                       Debug.d(this, null, e);\r
+               }\r
+       }\r
+\r
+       @Override\r
+       public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {\r
+\r
+       }\r
+\r
+}\r
diff --git a/workspace/EverClip/src/com/yuji/ec/db/IDao.java b/workspace/EverClip/src/com/yuji/ec/db/IDao.java
new file mode 100644 (file)
index 0000000..f853aa1
--- /dev/null
@@ -0,0 +1,13 @@
+package com.yuji.ec.db;\r
+\r
+import java.util.List;\r
+\r
+import android.database.sqlite.SQLiteDatabase;\r
+\r
+public interface IDao<T> {\r
+       public void onCreate(SQLiteDatabase db);\r
+       public void init(SQLiteDatabase db);\r
+       public void start(SQLiteDatabase db);\r
+       public List<Note> search();\r
+       public void add(T arg0);\r
+}
\ No newline at end of file
diff --git a/workspace/EverClip/src/com/yuji/ec/db/Note.java b/workspace/EverClip/src/com/yuji/ec/db/Note.java
new file mode 100644 (file)
index 0000000..4c73e85
--- /dev/null
@@ -0,0 +1,29 @@
+package com.yuji.ec.db;\r
+\r
+public class Note {\r
+       private long id = -1;\r
+       private String guid;\r
+       private String text;\r
+       \r
+       public Note(long id, String guid, String text){\r
+               this.id = id;\r
+               this.guid = guid;\r
+               this.text = text;\r
+       }\r
+\r
+       public Note(String guid, String text){\r
+               this(-1, guid, text);\r
+       }\r
+\r
+       public long getId(){\r
+               return id;\r
+       }\r
+       \r
+       public String getGuid() {\r
+               return guid;\r
+       }\r
+\r
+       public String getText() {\r
+               return text;\r
+       }\r
+}\r
diff --git a/workspace/EverClip/src/com/yuji/ec/db/NoteDao.java b/workspace/EverClip/src/com/yuji/ec/db/NoteDao.java
new file mode 100644 (file)
index 0000000..d164c1a
--- /dev/null
@@ -0,0 +1,115 @@
+package com.yuji.ec.db;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import android.database.Cursor;\r
+import android.database.sqlite.SQLiteDatabase;\r
+import android.database.sqlite.SQLiteStatement;\r
+\r
+public class NoteDao implements IDao<Note> {\r
+       private static IDao<Note> instance = null;\r
+       private SQLiteStatement insertStmt = null;\r
+\r
+       public static IDao<Note> getInstance(){\r
+               if (instance == null){\r
+                       instance = new NoteDao();\r
+               }\r
+               return instance;\r
+       }       \r
+       \r
+       private NoteDao(){\r
+\r
+       }\r
+       \r
+       public void onCreate(SQLiteDatabase db) {\r
+               db.execSQL(\r
+                               "CREATE TABLE NOTE ("\r
+                               + android.provider.BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"\r
+                               + "GUID TEXT,"\r
+                               + "TEXT TEXT"\r
+                               + ");");\r
+       }\r
+       \r
+       public void init(SQLiteDatabase db) {\r
+               insertStmt = db.compileStatement(\r
+                               "INSERT INTO NOTE ("\r
+                                               + "GUID,"\r
+                                               + "TEXT"\r
+                               + ") VALUES ("\r
+                               + "?,?"\r
+                               + ");");                \r
+       }\r
+       \r
+       public void start(SQLiteDatabase db) {\r
+               Note note;\r
+               \r
+               note = new Note("id0", "\83T\83\93\83v\83\8bA");\r
+               add(note);\r
+               note = new Note("id1", "\83T\83\93\83v\83\8bB");\r
+               add(note);\r
+               note = new Note("id2", "\83T\83\93\83v\83\8bC");\r
+               add(note);\r
+       }\r
+\r
+       public List<Note> search(){\r
+               return search(null, null, "TEXT");\r
+       }\r
+       \r
+       private List<Note> search(String selection, String[] selectionArgs, String orderBy){\r
+               List<Note> list = new ArrayList<Note>();\r
+               try {\r
+                       DatabaseHelper helper = DatabaseHelper.getInstance();\r
+                       SQLiteDatabase db = helper.getReadableDatabase();\r
+\r
+                       Cursor cursor = db.query(\r
+                                       "Note",\r
+                                       new String[] {\r
+                                       android.provider.BaseColumns._ID, "GUID", "TEXT"},\r
+                                                       selection, selectionArgs, null, null, orderBy);\r
+                       cursor.moveToFirst();\r
+                       int size = cursor.getCount();\r
+                       for (int i = 0; i < size; i++) {\r
+                               Note note = new Note(\r
+                                               cursor.getInt(0),\r
+                                               cursor.getString(1),\r
+                                               cursor.getString(2));\r
+                               list.add(note);\r
+                           cursor.moveToNext();\r
+                       }\r
+                       cursor.close();\r
+//             } catch (SQLException e){\r
+//                     // TODO\r
+//                     Debug.d(this, null, e);\r
+               } catch (Exception e){\r
+                       // TODO\r
+//                     Debug.d(this, null, e);\r
+               }\r
+               finally {\r
+                       // TODO\r
+               }\r
+               return list;\r
+       }\r
+\r
+       public void add(Note note) {\r
+               DatabaseHelper helper = DatabaseHelper.getInstance();\r
+               SQLiteDatabase db = helper.getWritableDatabase();\r
+               add(db, note);\r
+       }\r
+       \r
+       private long add(SQLiteDatabase db, Note note) {\r
+               long id = -1;\r
+               db.beginTransaction();\r
+               try {\r
+                       int i = 1;\r
+                       SQLiteStatement stmt = insertStmt;\r
+                       stmt.bindString(i++, note.getGuid());\r
+                       stmt.bindString(i++, note.getText());\r
+                       id = stmt.executeInsert();\r
+                       db.setTransactionSuccessful();\r
+               } finally {\r
+                       db.endTransaction();\r
+               }\r
+               return id;\r
+       }\r
+}\r
diff --git a/workspace/EverClip/src/com/yuji/ec/utility/BaseActivity.java b/workspace/EverClip/src/com/yuji/ec/utility/BaseActivity.java
new file mode 100644 (file)
index 0000000..1779008
--- /dev/null
@@ -0,0 +1,146 @@
+package com.yuji.ec.utility;\r
+\r
+import android.app.Activity;\r
+import android.app.AlertDialog;\r
+import android.content.Context;\r
+import android.content.DialogInterface;\r
+import android.content.Intent;\r
+import android.os.Bundle;\r
+import android.view.KeyEvent;\r
+import android.view.Window;\r
+import android.view.WindowManager;\r
+\r
+import com.yuji.ec.Initialize;\r
+\r
+public class BaseActivity extends Activity {\r
+       @Override\r
+       public void onCreate(Bundle savedInstanceState) {\r
+               super.onCreate(savedInstanceState);\r
+               Debug.d(this, Debug.ON_CREATE);\r
+\r
+               Context context = getApplicationContext();\r
+               // Thread.setDefaultUncaughtExceptionHandler(new\r
+               // TrainDelayedUncaughtExceptionHandler(\r
+               // context));\r
+               // DatabaseHelper.init(context);\r
+               Initialize.initialize(context);\r
+       }\r
+\r
+       @Override\r
+       protected void onActivityResult(int requestCode, int resultCode, Intent data) {\r
+               super.onActivityResult(requestCode, resultCode, data);\r
+       }\r
+\r
+       @Override\r
+       protected void onRestart() {\r
+               super.onRestart();\r
+               Debug.d(this, Debug.ON_RESTART);\r
+       }\r
+\r
+       @Override\r
+       protected void onResume() {\r
+               super.onResume();\r
+               Debug.d(this, Debug.ON_RESUME);\r
+       }\r
+\r
+       @Override\r
+       protected void onStart() {\r
+               super.onStart();\r
+               Debug.d(this, Debug.ON_START);\r
+       }\r
+\r
+       @Override\r
+       protected void onPause() {\r
+               super.onPause();\r
+               Debug.d(this, Debug.ON_PAUSE);\r
+       }\r
+\r
+       @Override\r
+       protected void onStop() {\r
+               super.onStop();\r
+               Debug.d(this, Debug.ON_STOP);\r
+       }\r
+\r
+       @Override\r
+       protected void onDestroy() {\r
+               super.onDestroy();\r
+               Debug.d(this, Debug.ON_DESTROY);\r
+       }\r
+\r
+       // @Override\r
+       // public boolean onCreateOptionsMenu(Menu menu) {\r
+       // boolean ret = super.onCreateOptionsMenu(menu);\r
+       // menu.add(0, Menu.FIRST, Menu.NONE, R.string.help);\r
+       // return ret;\r
+       // }\r
+       //\r
+       // @Override\r
+       // public boolean onOptionsItemSelected(MenuItem item) {\r
+       // try {\r
+       // Intent intent = new Intent(this, (Class<?>)Help.class);\r
+       // startActivity(intent);\r
+       // }\r
+       // catch (Exception e){\r
+       // terminate(e);\r
+       // }\r
+       // return super.onOptionsItemSelected(item);\r
+       // }\r
+\r
+       @Override\r
+       public boolean dispatchKeyEvent(KeyEvent event) {\r
+               if (event.getAction() == KeyEvent.ACTION_DOWN) {\r
+                       switch (event.getKeyCode()) {\r
+                       case KeyEvent.KEYCODE_SEARCH:\r
+                               return true;\r
+                       }\r
+               }\r
+               return super.dispatchKeyEvent(event);\r
+       }\r
+\r
+       protected void setFullscreen() {\r
+               requestWindowFeature(Window.FEATURE_NO_TITLE);\r
+               getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,\r
+                               WindowManager.LayoutParams.FLAG_FULLSCREEN);\r
+       }\r
+\r
+       protected void showDialog(String title, String msg, final boolean isFinish) {\r
+               new AlertDialog.Builder(this)\r
+                               .setTitle(title)\r
+                               .setMessage(msg)\r
+                               .setNeutralButton(android.R.string.ok,\r
+                                               new DialogInterface.OnClickListener() {\r
+                                                       public void onClick(DialogInterface dialog,\r
+                                                                       int whichButton) {\r
+                                                               if (isFinish) {\r
+                                                                       finish();\r
+                                                               }\r
+                                                       }\r
+                                               }).show();\r
+       }\r
+\r
+       protected void showDialog(String title, String msg) {\r
+               showDialog(title, msg, false);\r
+       }\r
+\r
+       protected void showDialog(Object target, Throwable t) {\r
+               if (t != null) {\r
+                       Debug.d(target, null, t);\r
+               }\r
+               // TODO\r
+//             showDialog(getString(R.string.dialogErrorTitle),\r
+//                             getString(R.string.dialogSystemError));\r
+       }\r
+\r
+       public void terminate(Throwable t) {\r
+               if (t != null) {\r
+                       Debug.d(this, null, t);\r
+\r
+                       // TODO\r
+//                     Toast.makeText(\r
+//                                     this,\r
+//                                     getString(R.string.toastSystem) + ":"\r
+//                                                     + t.getLocalizedMessage(), Toast.LENGTH_LONG);\r
+               }\r
+               moveTaskToBack(true);\r
+       }\r
+}\r
diff --git a/workspace/EverClip/src/com/yuji/ec/utility/Debug.java b/workspace/EverClip/src/com/yuji/ec/utility/Debug.java
new file mode 100644 (file)
index 0000000..f4b28f0
--- /dev/null
@@ -0,0 +1,118 @@
+package com.yuji.ec.utility;\r
+\r
+import android.util.Log;\r
+\r
+public class Debug {\r
+       public static final String ON_CREATE = "onCreate";\r
+       public static final String ON_DESTROY = "onDestroy";\r
+       public static final String ON_START = "onStart";\r
+       public static final String ON_STOP = "onStop";\r
+       public static final String ON_PAUSE = "onPause";\r
+       public static final String ON_RESTART = "onRestart";\r
+       public static final String ON_RESUME = "onResume";\r
+       public static final String ON_REBIND = "onRebind";\r
+       public static final String ON_UNBIND = "onUnbind";\r
+\r
+       private static final String FILTER = "com.yuji.ec";\r
+\r
+       public static void d(Object target, String msg1, String msg2){\r
+               d(target, msg1, msg2, null, null, null);\r
+       }\r
+       \r
+       public static void d(Object target, String msg1, String msg2, String msg3){\r
+               d(target, msg1, msg2, msg3, null, null);\r
+       }\r
+       \r
+       public static void d(Object target, String msg1, String msg2, String msg3, String msg4){\r
+               d(target, msg1, msg2, msg3, msg4, null);\r
+       }\r
+       \r
+       public static void d(Object target, String msg1, String msg2, String msg3, String msg4, String msg5){\r
+               if (!Log.isLoggable(FILTER, Log.DEBUG)){\r
+                       return;\r
+               }\r
+               StringBuffer sb = new StringBuffer();\r
+               if (msg1 != null){\r
+                       sb.append(msg1);\r
+               }\r
+               if (msg2 != null){\r
+                       sb.append(msg2);\r
+               }\r
+               if (msg3 != null){\r
+                       sb.append(msg3);\r
+               }\r
+               if (msg4 != null){\r
+                       sb.append(msg4);\r
+               }\r
+               if (msg5 != null){\r
+                       sb.append(msg5);\r
+               }\r
+               d(target, sb.toString(), (Throwable)null);\r
+       }\r
+       \r
+       public static void d(Object target, String msg){\r
+               d(target, msg, null, Log.DEBUG);\r
+       }\r
+\r
+       public static void d(Object target, String msg, Throwable t){\r
+//             if (t != null){\r
+//                     l(t.getMessage());\r
+//             }\r
+               d(target, msg, t, Log.DEBUG);\r
+       }\r
+\r
+       public static void i(Object target, String msg){\r
+               i(target, msg, null);\r
+       }\r
+\r
+       public static void i(Object target, String msg, Throwable t){\r
+               d(target, msg, t, Log.INFO);\r
+       }\r
+\r
+       private static void d(Object target, String msg, Throwable t, int level){\r
+               if (!Log.isLoggable(FILTER, level)){\r
+                       return;\r
+               }\r
+       \r
+               String text = target.getClass().getName();\r
+               if (msg != null){\r
+                        text += " " + msg;                     \r
+               }\r
+               if (t == null){\r
+                       Log.d(FILTER, text);\r
+               }\r
+               else {\r
+                       Log.d(FILTER, text, t);                 \r
+               }\r
+       }\r
+       \r
+//     public static void t(Context context, String msg){\r
+//             if (!Log.isLoggable(FILTER, Log.DEBUG)){\r
+//                     return;\r
+//             }\r
+//             if (context == null){\r
+//                     return;\r
+//             }\r
+//             Intent intent = new Intent(DelayReceiver.DEBUG);\r
+//             intent.putExtra("TEXT", msg);\r
+//             context.sendBroadcast(intent);\r
+//     }\r
+//     \r
+//     public static void l(String msg){\r
+//             if (!Log.isLoggable(FILTER, Log.DEBUG)){\r
+//                     return;\r
+//             }\r
+//             Calendar cal = Calendar.getInstance();\r
+//             Date date = cal.getTime();\r
+//             int ymd = DateUtil.getYmd(date);\r
+//             int hm = DateUtil.getHm(date);\r
+//             com.td.db.Log log = new com.td.db.Log(ymd, hm, msg);\r
+//             \r
+//             LogDao dao = LogDao.getInstance();\r
+//             dao.add(log);\r
+//     }\r
+       \r
+       public static boolean isDebug(){\r
+               return Log.isLoggable(FILTER, Log.DEBUG);\r
+       }\r
+}\r
diff --git a/workspace/EverClip/src/com/yuji/ec/utility/ECException.java b/workspace/EverClip/src/com/yuji/ec/utility/ECException.java
new file mode 100644 (file)
index 0000000..5e34e5b
--- /dev/null
@@ -0,0 +1,5 @@
+package com.yuji.ec.utility;\r
+\r
+public class ECException extends Exception {\r
+\r
+}\r
diff --git a/workspace/EverClip/src/com/yuji/ec/utility/EditPrefUtil.java b/workspace/EverClip/src/com/yuji/ec/utility/EditPrefUtil.java
new file mode 100644 (file)
index 0000000..187d2e0
--- /dev/null
@@ -0,0 +1,99 @@
+package com.yuji.ec.utility;\r
+\r
+import java.util.HashMap;\r
+import java.util.Iterator;\r
+import java.util.Map;\r
+import java.util.Map.Entry;\r
+import java.util.Set;\r
+\r
+import android.content.Context;\r
+\r
+public class EditPrefUtil implements PrefUtil {\r
+       private static final String DELM = "\t";\r
+       private Map<String, String> hash = new HashMap<String, String>();\r
+       private PrefUtil pref;\r
+       \r
+       public EditPrefUtil(Context context){\r
+               pref = new PrefUtilImpl(context);\r
+       }\r
+       \r
+       public void put(String key, String value) {\r
+               hash.put(key, value);\r
+       }\r
+\r
+       public void put(String key, int value) {\r
+               hash.put(key, String.valueOf(value));\r
+       }\r
+\r
+       public String get(String key) {\r
+               String value = hash.get(key);\r
+               if (value != null){\r
+                       return value;\r
+               }\r
+               value = pref.get(key);\r
+               \r
+               return value;\r
+       }\r
+\r
+       public int getInt(String key) {\r
+               return Integer.parseInt(get(key));\r
+       }\r
+\r
+       public String get(String key, String initValue) {\r
+               String value = get(key);\r
+               if (value != null){\r
+                       return value;\r
+               }\r
+               hash.put(key, initValue);\r
+               return initValue;\r
+       }\r
+\r
+       public int getInt(String key, int initValue) {\r
+               return Integer.valueOf(get(key, String.valueOf(initValue)));\r
+       }\r
+       \r
+       public void update(){\r
+               Set<Entry<String, String>> set = hash.entrySet();\r
+               for (Iterator<Entry<String, String>> it = set.iterator(); it.hasNext(); ){\r
+                       Entry<String, String> entry = it.next();\r
+                       String key = entry.getKey();\r
+                       String value = entry.getValue();\r
+                       pref.put(key, value);\r
+               }\r
+               hash.clear();\r
+       }\r
+\r
+       public void remove(String key) {\r
+               hash.put(key, null);\r
+       }\r
+       \r
+       public void save(String key){\r
+               StringBuffer sb = new StringBuffer();\r
+               \r
+               Set<Entry<String, String>> set = hash.entrySet();\r
+               for (Iterator<Entry<String, String>> it = set.iterator(); it.hasNext(); ){\r
+                       Entry<String, String> entry = it.next();\r
+                       String prefKey = entry.getKey();\r
+                       String prefValue = entry.getValue();\r
+                       \r
+                       sb.append(prefKey);\r
+                       sb.append(DELM);\r
+                       sb.append(prefValue);\r
+                       sb.append(DELM);\r
+               }\r
+               pref.put(key, sb.toString());\r
+       }\r
+       \r
+       public void restore(String key){\r
+               hash.clear();\r
+\r
+               String data = pref.get(key);\r
+               String[] str = data.split(DELM);\r
+               for (int i = 0; i < str.length / 2; i++){\r
+                       String prefKey = str[i * 2];\r
+                       String prefValue = str[i * 2 + 1];\r
+                       put(prefKey, prefValue);\r
+               }\r
+       }\r
+\r
+}\r
diff --git a/workspace/EverClip/src/com/yuji/ec/utility/PrefUtil.java b/workspace/EverClip/src/com/yuji/ec/utility/PrefUtil.java
new file mode 100644 (file)
index 0000000..c8d5d1c
--- /dev/null
@@ -0,0 +1,11 @@
+package com.yuji.ec.utility;\r
+\r
+public interface PrefUtil {\r
+       void put(String key, String value);\r
+       void put(String key, int value);\r
+       String get(String key);\r
+       int getInt(String key);\r
+       String get(String key, String initValue);\r
+       int getInt(String key, int initValue);\r
+       void remove(String key);\r
+}\r
diff --git a/workspace/EverClip/src/com/yuji/ec/utility/PrefUtilImpl.java b/workspace/EverClip/src/com/yuji/ec/utility/PrefUtilImpl.java
new file mode 100644 (file)
index 0000000..91b06cf
--- /dev/null
@@ -0,0 +1,80 @@
+package com.yuji.ec.utility;\r
+\r
+import android.content.Context;\r
+import android.content.SharedPreferences;\r
+import android.content.SharedPreferences.Editor;\r
+import android.content.pm.PackageManager.NameNotFoundException;\r
+\r
+public class PrefUtilImpl implements PrefUtil {\r
+       private static final String EVER_CLIP_ACTIVITY = "EverClipActivity";\r
+       private static final String PACKAGE_COM_YUJI_EC = "com.yuji.ec";\r
+       private Context context;\r
+\r
+       public PrefUtilImpl(Context context) {\r
+               this.context = context;\r
+       }\r
+\r
+       public void put(String key, String value) {\r
+               synchronized (this) {\r
+                       SharedPreferences pref = null;\r
+                       try {\r
+                               Context ctxt = context.createPackageContext(PACKAGE_COM_YUJI_EC,\r
+                                               Context.CONTEXT_RESTRICTED);\r
+                               pref = ctxt.getSharedPreferences(EVER_CLIP_ACTIVITY,\r
+                                               Context.MODE_PRIVATE);\r
+                       } catch (NameNotFoundException e) {\r
+                               Debug.d(this, null, e);\r
+                               return;\r
+                       }\r
+\r
+                       Editor e = pref.edit();\r
+                       e.putString(key, value);\r
+                       e.commit();\r
+               }\r
+       }\r
+\r
+       public void put(String key, int value) {\r
+               put(key, String.valueOf(value));\r
+       }\r
+\r
+       public String get(String key) {\r
+               String val;\r
+               \r
+               synchronized (this) {\r
+                       SharedPreferences pref = null;\r
+                       try {\r
+                               Context ctxt = context.createPackageContext(PACKAGE_COM_YUJI_EC,\r
+                                               Context.CONTEXT_RESTRICTED);\r
+                               pref = ctxt.getSharedPreferences(EVER_CLIP_ACTIVITY,\r
+                                               Context.MODE_WORLD_READABLE);\r
+                       } catch (NameNotFoundException e) {\r
+                               Debug.d(this, null, e);\r
+                               return null;\r
+                       }\r
+                       val = pref.getString(key, null);\r
+               }\r
+\r
+               return val;\r
+       }\r
+\r
+       public int getInt(String key) {\r
+               return Integer.parseInt(get(key));\r
+       }\r
+\r
+       public String get(String key, String initValue) {\r
+               String value = get(key);\r
+               if (value != null) {\r
+                       return value;\r
+               }\r
+               put(key, initValue);\r
+               return initValue;\r
+       }\r
+\r
+       public int getInt(String key, int initValue) {\r
+               return Integer.valueOf(get(key, String.valueOf(initValue)));\r
+       }\r
+\r
+       public void remove(String key) {\r
+               put(key, null);\r
+       }\r
+}\r