From 8238738720e7214170ff807e1f7f38ea76b48231 Mon Sep 17 00:00:00 2001 From: Yuji Konishi Date: Thu, 5 Apr 2012 17:47:37 +0900 Subject: [PATCH] init --- .gitignore | 4 + memo.txt | 0 workspace/EverClip/.classpath | 7 + workspace/EverClip/.project | 33 +++++ .../EverClip/.settings/org.eclipse.jdt.core.prefs | 5 + workspace/EverClip/AndroidManifest.xml | 18 +++ workspace/EverClip/default.properties | 11 ++ workspace/EverClip/gen/com/yuji/ec/R.java | 23 ++++ workspace/EverClip/proguard.cfg | 36 +++++ workspace/EverClip/res/drawable-hdpi/icon.png | Bin 0 -> 4147 bytes workspace/EverClip/res/drawable-ldpi/icon.png | Bin 0 -> 1723 bytes workspace/EverClip/res/drawable-mdpi/icon.png | Bin 0 -> 2574 bytes workspace/EverClip/res/layout/main.xml | 12 ++ workspace/EverClip/res/values/strings.xml | 5 + .../EverClip/src/com/yuji/ec/EverClipActivity.java | 13 ++ workspace/EverClip/src/com/yuji/ec/Initialize.java | 18 +++ .../src/com/yuji/ec/db/DatabaseHelper.java | 73 +++++++++++ workspace/EverClip/src/com/yuji/ec/db/IDao.java | 13 ++ workspace/EverClip/src/com/yuji/ec/db/Note.java | 29 ++++ workspace/EverClip/src/com/yuji/ec/db/NoteDao.java | 115 ++++++++++++++++ .../src/com/yuji/ec/utility/BaseActivity.java | 146 +++++++++++++++++++++ .../EverClip/src/com/yuji/ec/utility/Debug.java | 118 +++++++++++++++++ .../src/com/yuji/ec/utility/ECException.java | 5 + .../src/com/yuji/ec/utility/EditPrefUtil.java | 99 ++++++++++++++ .../EverClip/src/com/yuji/ec/utility/PrefUtil.java | 11 ++ .../src/com/yuji/ec/utility/PrefUtilImpl.java | 80 +++++++++++ 26 files changed, 874 insertions(+) create mode 100644 .gitignore create mode 100644 memo.txt create mode 100644 workspace/EverClip/.classpath create mode 100644 workspace/EverClip/.project create mode 100644 workspace/EverClip/.settings/org.eclipse.jdt.core.prefs create mode 100644 workspace/EverClip/AndroidManifest.xml create mode 100644 workspace/EverClip/default.properties create mode 100644 workspace/EverClip/gen/com/yuji/ec/R.java create mode 100644 workspace/EverClip/proguard.cfg create mode 100644 workspace/EverClip/res/drawable-hdpi/icon.png create mode 100644 workspace/EverClip/res/drawable-ldpi/icon.png create mode 100644 workspace/EverClip/res/drawable-mdpi/icon.png create mode 100644 workspace/EverClip/res/layout/main.xml create mode 100644 workspace/EverClip/res/values/strings.xml create mode 100644 workspace/EverClip/src/com/yuji/ec/EverClipActivity.java create mode 100644 workspace/EverClip/src/com/yuji/ec/Initialize.java create mode 100644 workspace/EverClip/src/com/yuji/ec/db/DatabaseHelper.java create mode 100644 workspace/EverClip/src/com/yuji/ec/db/IDao.java create mode 100644 workspace/EverClip/src/com/yuji/ec/db/Note.java create mode 100644 workspace/EverClip/src/com/yuji/ec/db/NoteDao.java create mode 100644 workspace/EverClip/src/com/yuji/ec/utility/BaseActivity.java create mode 100644 workspace/EverClip/src/com/yuji/ec/utility/Debug.java create mode 100644 workspace/EverClip/src/com/yuji/ec/utility/ECException.java create mode 100644 workspace/EverClip/src/com/yuji/ec/utility/EditPrefUtil.java create mode 100644 workspace/EverClip/src/com/yuji/ec/utility/PrefUtil.java create mode 100644 workspace/EverClip/src/com/yuji/ec/utility/PrefUtilImpl.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9c35e3b --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +workspace/.metadata +*.class +workspace/EverClip/bin +.DS_Store diff --git a/memo.txt b/memo.txt new file mode 100644 index 0000000..e69de29 diff --git a/workspace/EverClip/.classpath b/workspace/EverClip/.classpath new file mode 100644 index 0000000..6e9239f --- /dev/null +++ b/workspace/EverClip/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/workspace/EverClip/.project b/workspace/EverClip/.project new file mode 100644 index 0000000..2ff97a1 --- /dev/null +++ b/workspace/EverClip/.project @@ -0,0 +1,33 @@ + + + EverClip + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/workspace/EverClip/.settings/org.eclipse.jdt.core.prefs b/workspace/EverClip/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..42318a6 --- /dev/null +++ b/workspace/EverClip/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +#Thu Apr 05 15:34:06 JST 2012 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/workspace/EverClip/AndroidManifest.xml b/workspace/EverClip/AndroidManifest.xml new file mode 100644 index 0000000..3b4affd --- /dev/null +++ b/workspace/EverClip/AndroidManifest.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workspace/EverClip/default.properties b/workspace/EverClip/default.properties new file mode 100644 index 0000000..46769a7 --- /dev/null +++ b/workspace/EverClip/default.properties @@ -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 index 0000000..4404b79 --- /dev/null +++ b/workspace/EverClip/gen/com/yuji/ec/R.java @@ -0,0 +1,23 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package com.yuji.ec; + +public final class R { + public static final class attr { + } + public static final class drawable { + public static final int icon=0x7f020000; + } + public static final class layout { + public static final int main=0x7f030000; + } + public static final class string { + public static final int app_name=0x7f040001; + public static final int hello=0x7f040000; + } +} diff --git a/workspace/EverClip/proguard.cfg b/workspace/EverClip/proguard.cfg new file mode 100644 index 0000000..12dd039 --- /dev/null +++ b/workspace/EverClip/proguard.cfg @@ -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 ; +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet); +} + +-keepclasseswithmembernames class * { + public (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 index 0000000000000000000000000000000000000000..8074c4c571b8cd19e27f4ee5545df367420686d7 GIT binary patch literal 4147 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 literal 0 HcmV?d00001 diff --git a/workspace/EverClip/res/drawable-ldpi/icon.png b/workspace/EverClip/res/drawable-ldpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1095584ec21f71cd0afc9e0993aa2209671b590c GIT binary patch literal 1723 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 + + + diff --git a/workspace/EverClip/res/values/strings.xml b/workspace/EverClip/res/values/strings.xml new file mode 100644 index 0000000..3881d9c --- /dev/null +++ b/workspace/EverClip/res/values/strings.xml @@ -0,0 +1,5 @@ + + + Hello World, EverClipActivity! + EverClip + diff --git a/workspace/EverClip/src/com/yuji/ec/EverClipActivity.java b/workspace/EverClip/src/com/yuji/ec/EverClipActivity.java new file mode 100644 index 0000000..8c0e2e9 --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/EverClipActivity.java @@ -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 index 0000000..585a0c7 --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/Initialize.java @@ -0,0 +1,18 @@ +package com.yuji.ec; + +import android.content.Context; + +public class Initialize { + private static boolean isInit = true; + + public static void initialize(Context context) { + if (!isInit) { + return; + } + isInit = false; + } + + public static void setInitialize() { + isInit = true; + } +} 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 index 0000000..fe3b5f4 --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/db/DatabaseHelper.java @@ -0,0 +1,73 @@ +package com.yuji.ec.db; + +import java.util.ArrayList; +import java.util.List; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + +import com.yuji.ec.utility.Debug; +import com.yuji.ec.utility.ECException; + +public class DatabaseHelper extends SQLiteOpenHelper { + private static DatabaseHelper instance = null; + private static List daoList = null; + + public static DatabaseHelper getInstance() { + return instance; + } + + public static void init(Context context) throws ECException { + if (instance != null) { + return; + } + daoList = new ArrayList(); + daoList.add(NoteDao.getInstance()); + + DatabaseHelper helper = new DatabaseHelper(context); + SQLiteDatabase db = helper.getWritableDatabase(); + + try { + for (IDao dao : daoList) { + dao.start(db); + } + } catch (Exception e) { + // TODO + // Debug.d(context, null, e); + } + } + + public DatabaseHelper(Context context) { + super(context, "EverClip.db", null, 1); + instance = this; + } + + @Override + public void onCreate(SQLiteDatabase db) { + try { + for (IDao dao : daoList) { + dao.onCreate(db); + dao.init(db); + } + + db.beginTransaction(); + try { + for (IDao dao : daoList) { + dao.start(db); + } + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + } catch (Exception e) { + Debug.d(this, null, e); + } + } + + @Override + public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { + + } + +} 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 index 0000000..f853aa1 --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/db/IDao.java @@ -0,0 +1,13 @@ +package com.yuji.ec.db; + +import java.util.List; + +import android.database.sqlite.SQLiteDatabase; + +public interface IDao { + public void onCreate(SQLiteDatabase db); + public void init(SQLiteDatabase db); + public void start(SQLiteDatabase db); + public List search(); + public void add(T arg0); +} \ 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 index 0000000..4c73e85 --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/db/Note.java @@ -0,0 +1,29 @@ +package com.yuji.ec.db; + +public class Note { + private long id = -1; + private String guid; + private String text; + + public Note(long id, String guid, String text){ + this.id = id; + this.guid = guid; + this.text = text; + } + + public Note(String guid, String text){ + this(-1, guid, text); + } + + public long getId(){ + return id; + } + + public String getGuid() { + return guid; + } + + public String getText() { + return text; + } +} 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 index 0000000..d164c1a --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/db/NoteDao.java @@ -0,0 +1,115 @@ +package com.yuji.ec.db; + +import java.util.ArrayList; +import java.util.List; + +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteStatement; + +public class NoteDao implements IDao { + private static IDao instance = null; + private SQLiteStatement insertStmt = null; + + public static IDao getInstance(){ + if (instance == null){ + instance = new NoteDao(); + } + return instance; + } + + private NoteDao(){ + + } + + public void onCreate(SQLiteDatabase db) { + db.execSQL( + "CREATE TABLE NOTE (" + + android.provider.BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + + "GUID TEXT," + + "TEXT TEXT" + + ");"); + } + + public void init(SQLiteDatabase db) { + insertStmt = db.compileStatement( + "INSERT INTO NOTE (" + + "GUID," + + "TEXT" + + ") VALUES (" + + "?,?" + + ");"); + } + + public void start(SQLiteDatabase db) { + Note note; + + note = new Note("id0", "ƒTƒ“ƒvƒ‹A"); + add(note); + note = new Note("id1", "ƒTƒ“ƒvƒ‹B"); + add(note); + note = new Note("id2", "ƒTƒ“ƒvƒ‹C"); + add(note); + } + + public List search(){ + return search(null, null, "TEXT"); + } + + private List search(String selection, String[] selectionArgs, String orderBy){ + List list = new ArrayList(); + try { + DatabaseHelper helper = DatabaseHelper.getInstance(); + SQLiteDatabase db = helper.getReadableDatabase(); + + Cursor cursor = db.query( + "Note", + new String[] { + android.provider.BaseColumns._ID, "GUID", "TEXT"}, + selection, selectionArgs, null, null, orderBy); + cursor.moveToFirst(); + int size = cursor.getCount(); + for (int i = 0; i < size; i++) { + Note note = new Note( + cursor.getInt(0), + cursor.getString(1), + cursor.getString(2)); + list.add(note); + cursor.moveToNext(); + } + cursor.close(); +// } catch (SQLException e){ +// // TODO +// Debug.d(this, null, e); + } catch (Exception e){ + // TODO +// Debug.d(this, null, e); + } + finally { + // TODO + } + return list; + } + + public void add(Note note) { + DatabaseHelper helper = DatabaseHelper.getInstance(); + SQLiteDatabase db = helper.getWritableDatabase(); + add(db, note); + } + + private long add(SQLiteDatabase db, Note note) { + long id = -1; + db.beginTransaction(); + try { + int i = 1; + SQLiteStatement stmt = insertStmt; + stmt.bindString(i++, note.getGuid()); + stmt.bindString(i++, note.getText()); + id = stmt.executeInsert(); + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + return id; + } +} 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 index 0000000..1779008 --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/utility/BaseActivity.java @@ -0,0 +1,146 @@ +package com.yuji.ec.utility; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.view.KeyEvent; +import android.view.Window; +import android.view.WindowManager; + +import com.yuji.ec.Initialize; + +public class BaseActivity extends Activity { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Debug.d(this, Debug.ON_CREATE); + + Context context = getApplicationContext(); + // Thread.setDefaultUncaughtExceptionHandler(new + // TrainDelayedUncaughtExceptionHandler( + // context)); + // DatabaseHelper.init(context); + Initialize.initialize(context); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } + + @Override + protected void onRestart() { + super.onRestart(); + Debug.d(this, Debug.ON_RESTART); + } + + @Override + protected void onResume() { + super.onResume(); + Debug.d(this, Debug.ON_RESUME); + } + + @Override + protected void onStart() { + super.onStart(); + Debug.d(this, Debug.ON_START); + } + + @Override + protected void onPause() { + super.onPause(); + Debug.d(this, Debug.ON_PAUSE); + } + + @Override + protected void onStop() { + super.onStop(); + Debug.d(this, Debug.ON_STOP); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + Debug.d(this, Debug.ON_DESTROY); + } + + // @Override + // public boolean onCreateOptionsMenu(Menu menu) { + // boolean ret = super.onCreateOptionsMenu(menu); + // menu.add(0, Menu.FIRST, Menu.NONE, R.string.help); + // return ret; + // } + // + // @Override + // public boolean onOptionsItemSelected(MenuItem item) { + // try { + // Intent intent = new Intent(this, (Class)Help.class); + // startActivity(intent); + // } + // catch (Exception e){ + // terminate(e); + // } + // return super.onOptionsItemSelected(item); + // } + + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + if (event.getAction() == KeyEvent.ACTION_DOWN) { + switch (event.getKeyCode()) { + case KeyEvent.KEYCODE_SEARCH: + return true; + } + } + return super.dispatchKeyEvent(event); + } + + protected void setFullscreen() { + requestWindowFeature(Window.FEATURE_NO_TITLE); + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, + WindowManager.LayoutParams.FLAG_FULLSCREEN); + } + + protected void showDialog(String title, String msg, final boolean isFinish) { + new AlertDialog.Builder(this) + .setTitle(title) + .setMessage(msg) + .setNeutralButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, + int whichButton) { + if (isFinish) { + finish(); + } + } + }).show(); + } + + protected void showDialog(String title, String msg) { + showDialog(title, msg, false); + } + + protected void showDialog(Object target, Throwable t) { + if (t != null) { + Debug.d(target, null, t); + } + // TODO +// showDialog(getString(R.string.dialogErrorTitle), +// getString(R.string.dialogSystemError)); + } + + public void terminate(Throwable t) { + if (t != null) { + Debug.d(this, null, t); + + // TODO +// Toast.makeText( +// this, +// getString(R.string.toastSystem) + ":" +// + t.getLocalizedMessage(), Toast.LENGTH_LONG); + } + moveTaskToBack(true); + } +} 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 index 0000000..f4b28f0 --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/utility/Debug.java @@ -0,0 +1,118 @@ +package com.yuji.ec.utility; + +import android.util.Log; + +public class Debug { + public static final String ON_CREATE = "onCreate"; + public static final String ON_DESTROY = "onDestroy"; + public static final String ON_START = "onStart"; + public static final String ON_STOP = "onStop"; + public static final String ON_PAUSE = "onPause"; + public static final String ON_RESTART = "onRestart"; + public static final String ON_RESUME = "onResume"; + public static final String ON_REBIND = "onRebind"; + public static final String ON_UNBIND = "onUnbind"; + + private static final String FILTER = "com.yuji.ec"; + + public static void d(Object target, String msg1, String msg2){ + d(target, msg1, msg2, null, null, null); + } + + public static void d(Object target, String msg1, String msg2, String msg3){ + d(target, msg1, msg2, msg3, null, null); + } + + public static void d(Object target, String msg1, String msg2, String msg3, String msg4){ + d(target, msg1, msg2, msg3, msg4, null); + } + + public static void d(Object target, String msg1, String msg2, String msg3, String msg4, String msg5){ + if (!Log.isLoggable(FILTER, Log.DEBUG)){ + return; + } + StringBuffer sb = new StringBuffer(); + if (msg1 != null){ + sb.append(msg1); + } + if (msg2 != null){ + sb.append(msg2); + } + if (msg3 != null){ + sb.append(msg3); + } + if (msg4 != null){ + sb.append(msg4); + } + if (msg5 != null){ + sb.append(msg5); + } + d(target, sb.toString(), (Throwable)null); + } + + public static void d(Object target, String msg){ + d(target, msg, null, Log.DEBUG); + } + + public static void d(Object target, String msg, Throwable t){ +// if (t != null){ +// l(t.getMessage()); +// } + d(target, msg, t, Log.DEBUG); + } + + public static void i(Object target, String msg){ + i(target, msg, null); + } + + public static void i(Object target, String msg, Throwable t){ + d(target, msg, t, Log.INFO); + } + + private static void d(Object target, String msg, Throwable t, int level){ + if (!Log.isLoggable(FILTER, level)){ + return; + } + + String text = target.getClass().getName(); + if (msg != null){ + text += " " + msg; + } + if (t == null){ + Log.d(FILTER, text); + } + else { + Log.d(FILTER, text, t); + } + } + +// public static void t(Context context, String msg){ +// if (!Log.isLoggable(FILTER, Log.DEBUG)){ +// return; +// } +// if (context == null){ +// return; +// } +// Intent intent = new Intent(DelayReceiver.DEBUG); +// intent.putExtra("TEXT", msg); +// context.sendBroadcast(intent); +// } +// +// public static void l(String msg){ +// if (!Log.isLoggable(FILTER, Log.DEBUG)){ +// return; +// } +// Calendar cal = Calendar.getInstance(); +// Date date = cal.getTime(); +// int ymd = DateUtil.getYmd(date); +// int hm = DateUtil.getHm(date); +// com.td.db.Log log = new com.td.db.Log(ymd, hm, msg); +// +// LogDao dao = LogDao.getInstance(); +// dao.add(log); +// } + + public static boolean isDebug(){ + return Log.isLoggable(FILTER, Log.DEBUG); + } +} 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 index 0000000..5e34e5b --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/utility/ECException.java @@ -0,0 +1,5 @@ +package com.yuji.ec.utility; + +public class ECException extends Exception { + +} 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 index 0000000..187d2e0 --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/utility/EditPrefUtil.java @@ -0,0 +1,99 @@ +package com.yuji.ec.utility; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import android.content.Context; + +public class EditPrefUtil implements PrefUtil { + private static final String DELM = "\t"; + private Map hash = new HashMap(); + private PrefUtil pref; + + public EditPrefUtil(Context context){ + pref = new PrefUtilImpl(context); + } + + public void put(String key, String value) { + hash.put(key, value); + } + + public void put(String key, int value) { + hash.put(key, String.valueOf(value)); + } + + public String get(String key) { + String value = hash.get(key); + if (value != null){ + return value; + } + value = pref.get(key); + + return value; + } + + public int getInt(String key) { + return Integer.parseInt(get(key)); + } + + public String get(String key, String initValue) { + String value = get(key); + if (value != null){ + return value; + } + hash.put(key, initValue); + return initValue; + } + + public int getInt(String key, int initValue) { + return Integer.valueOf(get(key, String.valueOf(initValue))); + } + + public void update(){ + Set> set = hash.entrySet(); + for (Iterator> it = set.iterator(); it.hasNext(); ){ + Entry entry = it.next(); + String key = entry.getKey(); + String value = entry.getValue(); + pref.put(key, value); + } + hash.clear(); + } + + public void remove(String key) { + hash.put(key, null); + } + + public void save(String key){ + StringBuffer sb = new StringBuffer(); + + Set> set = hash.entrySet(); + for (Iterator> it = set.iterator(); it.hasNext(); ){ + Entry entry = it.next(); + String prefKey = entry.getKey(); + String prefValue = entry.getValue(); + + sb.append(prefKey); + sb.append(DELM); + sb.append(prefValue); + sb.append(DELM); + } + pref.put(key, sb.toString()); + } + + public void restore(String key){ + hash.clear(); + + String data = pref.get(key); + String[] str = data.split(DELM); + for (int i = 0; i < str.length / 2; i++){ + String prefKey = str[i * 2]; + String prefValue = str[i * 2 + 1]; + put(prefKey, prefValue); + } + } + +} 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 index 0000000..c8d5d1c --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/utility/PrefUtil.java @@ -0,0 +1,11 @@ +package com.yuji.ec.utility; + +public interface PrefUtil { + void put(String key, String value); + void put(String key, int value); + String get(String key); + int getInt(String key); + String get(String key, String initValue); + int getInt(String key, int initValue); + void remove(String key); +} 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 index 0000000..91b06cf --- /dev/null +++ b/workspace/EverClip/src/com/yuji/ec/utility/PrefUtilImpl.java @@ -0,0 +1,80 @@ +package com.yuji.ec.utility; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; +import android.content.pm.PackageManager.NameNotFoundException; + +public class PrefUtilImpl implements PrefUtil { + private static final String EVER_CLIP_ACTIVITY = "EverClipActivity"; + private static final String PACKAGE_COM_YUJI_EC = "com.yuji.ec"; + private Context context; + + public PrefUtilImpl(Context context) { + this.context = context; + } + + public void put(String key, String value) { + synchronized (this) { + SharedPreferences pref = null; + try { + Context ctxt = context.createPackageContext(PACKAGE_COM_YUJI_EC, + Context.CONTEXT_RESTRICTED); + pref = ctxt.getSharedPreferences(EVER_CLIP_ACTIVITY, + Context.MODE_PRIVATE); + } catch (NameNotFoundException e) { + Debug.d(this, null, e); + return; + } + + Editor e = pref.edit(); + e.putString(key, value); + e.commit(); + } + } + + public void put(String key, int value) { + put(key, String.valueOf(value)); + } + + public String get(String key) { + String val; + + synchronized (this) { + SharedPreferences pref = null; + try { + Context ctxt = context.createPackageContext(PACKAGE_COM_YUJI_EC, + Context.CONTEXT_RESTRICTED); + pref = ctxt.getSharedPreferences(EVER_CLIP_ACTIVITY, + Context.MODE_WORLD_READABLE); + } catch (NameNotFoundException e) { + Debug.d(this, null, e); + return null; + } + val = pref.getString(key, null); + } + + return val; + } + + public int getInt(String key) { + return Integer.parseInt(get(key)); + } + + public String get(String key, String initValue) { + String value = get(key); + if (value != null) { + return value; + } + put(key, initValue); + return initValue; + } + + public int getInt(String key, int initValue) { + return Integer.valueOf(get(key, String.valueOf(initValue))); + } + + public void remove(String key) { + put(key, null); + } +} -- 2.11.0