OSDN Git Service

サーバ側のデータをとりあえず全部取得してAndroidローカルに保存する処理を実装した。次はちゃんと同期をとる。
[andro-memo/andro-memo.git] / andro-memo-android / src / jp / gr / java_conf / u6k / andro_memo / android / ListActivity.java
index db3de34..3fef2b2 100644 (file)
@@ -4,7 +4,6 @@ package jp.gr.java_conf.u6k.andro_memo.android;
 import java.util.List;\r
 \r
 import android.app.Activity;\r
-import android.app.AlertDialog;\r
 import android.content.Context;\r
 import android.content.Intent;\r
 import android.database.sqlite.SQLiteDatabase;\r
@@ -63,25 +62,69 @@ public class ListActivity extends Activity {
             this.startActivity(intent);\r
 \r
         } else if (item.getItemId() == R.id.menuSync) {\r
-            String result;\r
+            this.syncPull();\r
+\r
+            // String result;\r
+            //\r
+            // try {\r
+            // UserServiceClient c = new UserServiceClient(this);\r
+            // result = c.login();\r
+            // } catch (Exception e) {\r
+            // result = "エラー";\r
+            // Log.e("andro-memo", "error", e);\r
+            // }\r
+            //\r
+            // AlertDialog.Builder adb = new AlertDialog.Builder(this);\r
+            // adb.setTitle(R.string.sync);\r
+            // adb.setMessage(result);\r
+            // adb.setPositiveButton("OK", null);\r
+            // AlertDialog ad = adb.create();\r
+            // ad.show();\r
+        }\r
+\r
+        return super.onOptionsItemSelected(item);\r
+    }\r
+\r
+    private void syncPull() {\r
+        UserServiceClient userService = new UserServiceClient(this);\r
+        MemoServiceClient memoService = new MemoServiceClient(this);\r
+\r
+        String loginTicketKey = userService.login();\r
 \r
+        Log.d("andro-memo", "findAll");\r
+\r
+        List<MemoEntity> memoList = memoService.findAll(loginTicketKey);\r
+\r
+        SQLiteOpenHelperImpl con = new SQLiteOpenHelperImpl(this);\r
+        try {\r
+            SQLiteDatabase db = con.getWritableDatabase();\r
             try {\r
-                UserServiceClient c = new UserServiceClient(this);\r
-                result = c.login();\r
-            } catch (Exception e) {\r
-                result = "エラー";\r
-                Log.e("andro-memo", "error", e);\r
-            }\r
+                db.beginTransaction();\r
+                try {\r
+                    MemoDao memoDao = new MemoDao(db);\r
+\r
+                    for (MemoEntity memoTemp : memoList) {\r
+                        Log.d("andro-memo", "findByKey: " + memoTemp.getMemoKey());\r
 \r
-            AlertDialog.Builder adb = new AlertDialog.Builder(this);\r
-            adb.setTitle(R.string.sync);\r
-            adb.setMessage(result);\r
-            adb.setPositiveButton("OK", null);\r
-            AlertDialog ad = adb.create();\r
-            ad.show();\r
+                        MemoEntity memo = memoService.findByKey(loginTicketKey, memoTemp.getMemoKey());\r
+\r
+                        Log.d("andro-memo", "memoDao.create");\r
+\r
+                        memoDao.create(memo.getMemoKey(), memo.getTitle(), memo.getTag(), memo.getContent(), memo.getState(), memo.getUpdateDatetime());\r
+                    }\r
+\r
+                    db.setTransactionSuccessful();\r
+                } finally {\r
+                    db.endTransaction();\r
+                }\r
+            } finally {\r
+                db.close();\r
+            }\r
+        } finally {\r
+            con.close();\r
         }\r
 \r
-        return super.onOptionsItemSelected(item);\r
+        this.selectMemo();\r
     }\r
 \r
     @Override\r