OSDN Git Service

TrainEditActivity追加 service
authorYuji Konishi <yuji.k64613@gmail.com>
Tue, 26 Jul 2011 14:49:25 +0000 (23:49 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Tue, 26 Jul 2011 14:49:25 +0000 (23:49 +0900)
workspace/LogcatViewer/bin/LogcatViewer.apk
workspace/LogcatViewer/bin/resources.ap_
workspace/TrainDelayed/AndroidManifest.xml
workspace/TrainDelayed/gen/com/td/R.java
workspace/TrainDelayed/res/layout/train_edit.xml [new file with mode: 0644]
workspace/TrainDelayed/src/com/td/TrainEditActivity.java [new file with mode: 0644]
workspace/TrainDelayed/src/com/td/TrainListActivity.java
workspace/TrainDelayed/src/com/td/WaitActivity.java
workspace/TrainDelayed/src/com/td/db/TrainDao.java
workspace/TrainDelayed/src/com/td/service/TrainService.java

index 931c5d5..a8ef6b1 100644 (file)
Binary files a/workspace/LogcatViewer/bin/LogcatViewer.apk and b/workspace/LogcatViewer/bin/LogcatViewer.apk differ
index 01d410e..8bc5ece 100644 (file)
Binary files a/workspace/LogcatViewer/bin/resources.ap_ and b/workspace/LogcatViewer/bin/resources.ap_ differ
index 15c8eed..1c652c6 100644 (file)
@@ -21,6 +21,8 @@
                <activity android:name=".MonitorTimeActivity" />
                <activity android:name=".SearchWordActivity" />
                <activity android:name=".WaitActivity" />
+               <activity android:name=".TrainEditActivity" />
+               
 
 <!--           
        <service android:enabled="true" android:name="com.td.service.TrainDelayedServiceImpl" />
index 9a2f62c..c6c91be 100644 (file)
@@ -16,6 +16,7 @@ public final class R {
         public static final int on=0x7f020002;\r
     }\r
     public static final class id {\r
+        public static final int LinearLayout34=0x7f050044;\r
         public static final int LinearLayout64=0x7f05002b;\r
         public static final int LinearLayout74=0x7f05000a;\r
         public static final int button01=0x7f050011;\r
@@ -28,8 +29,10 @@ public final class R {
         public static final int button09=0x7f05001f;\r
         public static final int button11=0x7f050005;\r
         public static final int button12=0x7f050006;\r
+        public static final int button31=0x7f050045;\r
+        public static final int button32=0x7f050046;\r
         public static final int button41=0x7f050034;\r
-        public static final int button51=0x7f050040;\r
+        public static final int button51=0x7f050049;\r
         public static final int button61=0x7f05002c;\r
         public static final int button62=0x7f05002d;\r
         public static final int button63=0x7f05002e;\r
@@ -44,8 +47,10 @@ public final class R {
         public static final int button84=0x7f05003b;\r
         public static final int button85=0x7f05003c;\r
         public static final int button86=0x7f05003d;\r
-        public static final int buttona1=0x7f050046;\r
+        public static final int buttona1=0x7f05004f;\r
         public static final int checkBox=0x7f050000;\r
+        public static final int checkBox31=0x7f050042;\r
+        public static final int checkBox32=0x7f050043;\r
         public static final int checkBox61=0x7f050022;\r
         public static final int checkBox62=0x7f050023;\r
         public static final int checkBox63=0x7f050024;\r
@@ -53,13 +58,15 @@ public final class R {
         public static final int checkBox65=0x7f050026;\r
         public static final int checkBox66=0x7f050027;\r
         public static final int checkBox67=0x7f050028;\r
+        public static final int editText31=0x7f050040;\r
+        public static final int editText32=0x7f050041;\r
         public static final int editText61=0x7f050029;\r
         public static final int editText62=0x7f05002a;\r
         public static final int editText71=0x7f050008;\r
         public static final int editText72=0x7f050009;\r
         public static final int editText81=0x7f050037;\r
         public static final int historyView11=0x7f050004;\r
-        public static final int imageView1=0x7f050041;\r
+        public static final int imageView1=0x7f05004a;\r
         public static final int linearLayout00=0x7f05000d;\r
         public static final int linearLayout01=0x7f050010;\r
         public static final int linearLayout02=0x7f050012;\r
@@ -69,24 +76,26 @@ public final class R {
         public static final int linearLayout06=0x7f05001a;\r
         public static final int linearLayout07=0x7f05001c;\r
         public static final int linearLayout09=0x7f05001e;\r
-        public static final int linearLayouta0=0x7f050043;\r
+        public static final int linearLayout30=0x7f05003e;\r
+        public static final int linearLayouta0=0x7f05004c;\r
         public static final int listView61=0x7f050020;\r
         public static final int listView81=0x7f050036;\r
         public static final int menu41=0x7f050033;\r
-        public static final int menu51=0x7f05003f;\r
+        public static final int menu51=0x7f050048;\r
         public static final int scrollView01=0x7f05000f;\r
         public static final int scrollView11=0x7f050003;\r
         public static final int scrollView61=0x7f050021;\r
         public static final int spinner71=0x7f050007;\r
         public static final int text2=0x7f050001;\r
         public static final int textView01=0x7f05000e;\r
-        public static final int textView1=0x7f050042;\r
+        public static final int textView1=0x7f05004b;\r
         public static final int textView11=0x7f050002;\r
+        public static final int textView31=0x7f05003f;\r
         public static final int textView41=0x7f050032;\r
-        public static final int textView51=0x7f05003e;\r
+        public static final int textView51=0x7f050047;\r
         public static final int textView81=0x7f050035;\r
-        public static final int textViewa1=0x7f050044;\r
-        public static final int waitViewa1=0x7f050045;\r
+        public static final int textViewa1=0x7f05004d;\r
+        public static final int waitViewa1=0x7f05004e;\r
     }\r
     public static final class layout {\r
         public static final int check_list_item_1=0x7f030000;\r
@@ -97,9 +106,10 @@ public final class R {
         public static final int prefecture_list=0x7f030005;\r
         public static final int search_word=0x7f030006;\r
         public static final int simple_list_item_1=0x7f030007;\r
-        public static final int train_list=0x7f030008;\r
-        public static final int train_row=0x7f030009;\r
-        public static final int wait=0x7f03000a;\r
+        public static final int train_edit=0x7f030008;\r
+        public static final int train_list=0x7f030009;\r
+        public static final int train_row=0x7f03000a;\r
+        public static final int wait=0x7f03000b;\r
     }\r
     public static final class string {\r
         public static final int add_button=0x7f040029;\r
diff --git a/workspace/TrainDelayed/res/layout/train_edit.xml b/workspace/TrainDelayed/res/layout/train_edit.xml
new file mode 100644 (file)
index 0000000..d04111f
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" ?> \r
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">\r
+<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1">\r
+<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">\r
+       <LinearLayout\r
+               android:id="@+id/linearLayout30"\r
+               android:layout_height="wrap_content"\r
+               android:background="#999999"\r
+               android:padding="3dip"\r
+               android:layout_width="fill_parent">\r
+               <TextView android:text="Twitterを検索する際に使用する路線名を設定します。検索に引っかかりやすい路線名に変更してください。"\r
+                       android:textAppearance="?android:attr/textAppearanceMedium"\r
+               android:background="#cccccc"\r
+                       android:id="@+id/textView31"\r
+                       android:layout_width="fill_parent"\r
+                       android:layout_height="wrap_content">\r
+                       </TextView>\r
+       </LinearLayout>\r
+       <TextView android:text="路線名(編集不可)" android:background="#999999" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>\r
+       <EditText android:layout_height="wrap_content" android:id="@+id/editText31" android:layout_width="wrap_content" editable="false" android:focusable="false" android:cursorVisible="false" android:inputType="time" />\r
+       <TextView android:text="検索時に使用する路線名" android:background="#999999" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>\r
+       <EditText android:layout_height="wrap_content" android:id="@+id/editText32" android:layout_width="wrap_content" editable="false" android:focusable="false" android:cursorVisible="false" android:inputType="time" />\r
+       <TextView android:text="編集内容" android:background="#999999" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>\r
+       <CheckBox android:layout_width="fill_parent" android:text="「線」を削除する" android:id="@+id/checkBox31" android:layout_height="fill_parent"></CheckBox>\r
+       <CheckBox android:layout_width="fill_parent" android:text="「JR」を削除する" android:id="@+id/checkBox32" android:layout_height="fill_parent"></CheckBox>\r
+</LinearLayout>\r
+</ScrollView>\r
+<LinearLayout android:id="@+id/LinearLayout34" android:layout_width="fill_parent" android:layout_height="wrap_content">\r
+       <Button android:text="@+string/def_button" android:layout_weight="1" android:id="@+id/button31" android:layout_width="fill_parent" android:layout_height="wrap_content" /> \r
+       <Button android:text="@+string/return_button" android:layout_weight="1" android:id="@+id/button32" android:layout_width="fill_parent" android:layout_height="wrap_content" /> \r
+</LinearLayout>\r
+</LinearLayout>\r
diff --git a/workspace/TrainDelayed/src/com/td/TrainEditActivity.java b/workspace/TrainDelayed/src/com/td/TrainEditActivity.java
new file mode 100644 (file)
index 0000000..4eb14d9
--- /dev/null
@@ -0,0 +1,131 @@
+package com.td;\r
+\r
+import android.app.Activity;\r
+import android.os.Bundle;\r
+import android.text.Editable;\r
+import android.text.TextWatcher;\r
+import android.view.View;\r
+import android.view.View.OnClickListener;\r
+import android.widget.Button;\r
+import android.widget.CheckBox;\r
+import android.widget.EditText;\r
+\r
+import com.td.db.Train;\r
+import com.td.db.TrainDao;\r
+\r
+public class TrainEditActivity extends Activity {\r
+       private static final String JR = "JR";\r
+       private static final String LINE = "\90ü";\r
+       private EditText editText1;\r
+       private EditText editText2;\r
+       private CheckBox checkBox1;\r
+       private CheckBox checkBox2;\r
+       private Button button1;\r
+       private Button button2;\r
+       private long id;\r
+\r
+       @Override\r
+       public void onCreate(Bundle savedInstanceState) {\r
+               super.onCreate(savedInstanceState);\r
+               setContentView(R.layout.train_edit);\r
+               \r
+               editText1 = (EditText) findViewById(R.id.editText31);\r
+               editText2 = (EditText) findViewById(R.id.editText32);\r
+               checkBox1 = (CheckBox) findViewById(R.id.checkBox31);\r
+               checkBox2 = (CheckBox) findViewById(R.id.checkBox32);\r
+               button1 = (Button) findViewById(R.id.button31);\r
+               button2 = (Button) findViewById(R.id.button32);\r
+               \r
+               button2.setOnClickListener(new OnClickListener(){\r
+                       public void onClick(View view) {\r
+                               TrainEditActivity.this.finish();\r
+                       }});\r
+               editText1.setEnabled(false);\r
+               \r
+           Bundle extras = getIntent().getExtras();\r
+           id = extras.getLong("ID");\r
+               Train train = TrainDao.getInstance().searchById(id);\r
+               if (train != null){\r
+                       String name = train.getName();\r
+                       String sname = train.getSearchText();\r
+                       editText1.setText(name);\r
+                       editText2.setText(sname);\r
+                       editText();\r
+               }\r
+               \r
+               editText2.addTextChangedListener(new TextWatcher() {\r
+                       public void afterTextChanged(Editable editable) {\r
+                               editText();\r
+                       }\r
+\r
+                       public void beforeTextChanged(CharSequence s, int start, int count,\r
+                                       int after) {\r
+                               ;\r
+                       }\r
+\r
+                       public void onTextChanged(CharSequence s, int start, int before,\r
+                                       int count) {\r
+                               ;\r
+                       }\r
+               });\r
+               \r
+               checkBox1.setOnClickListener(new OnClickListener(){\r
+                       public void onClick(View view) {\r
+                               String sname = editText2.getText().toString();\r
+                               if (checkBox1.isChecked()){\r
+                                       int len = sname.length();\r
+                                       sname = sname.substring(0, len - 1);\r
+                               }\r
+                               else {\r
+                                       sname += LINE;\r
+                               }\r
+                               editText2.setText(sname);\r
+                       }});\r
+               checkBox2.setOnClickListener(new OnClickListener(){\r
+                       public void onClick(View view) {\r
+                               String sname = editText2.getText().toString();\r
+                               if (checkBox2.isChecked()){\r
+                                       int len = sname.length();\r
+                                       sname = sname.substring(2, len);\r
+                               }\r
+                               else {\r
+                                       sname = JR + sname;\r
+                               }                               \r
+                               editText2.setText(sname);\r
+                       }});\r
+               button1.setOnClickListener(new OnClickListener(){\r
+                       public void onClick(View view) {\r
+                               String sname = editText2.getText().toString();\r
+                               TrainDao.getInstance().set(id, sname);\r
+                               TrainEditActivity.this.finish();\r
+                       }});\r
+               button2.setOnClickListener(new OnClickListener(){\r
+                       public void onClick(View view) {\r
+                               TrainEditActivity.this.finish();\r
+                       }});\r
+       }\r
+       \r
+       private void editText(){\r
+               String name = editText1.getText().toString();\r
+               String sname = editText2.getText().toString();\r
+                \r
+                int len = name.length();\r
+                String ch = name.substring(len - 1, len);\r
+                if (!ch.equals(LINE)){\r
+                        checkBox1.setEnabled(false);\r
+                }\r
+                else {\r
+                        String ch2 = sname.substring(len - 1, len);\r
+                        checkBox1.setChecked(ch2.equals(LINE));\r
+                }\r
+                \r
+                ch = name.substring(0, 2);\r
+                if (!ch.equals(JR)){\r
+                        checkBox2.setEnabled(false);\r
+                }                                      \r
+                else {\r
+                        String ch2 = name.substring(0, 2);\r
+                        checkBox2.setChecked(ch2.equals(JR));\r
+                }\r
+       }\r
+}\r
index 598e260..f56aa08 100644 (file)
@@ -2,6 +2,7 @@ package com.td;
 \r
 import java.util.List;\r
 \r
+import android.content.Intent;\r
 import android.os.Bundle;\r
 import android.view.View;\r
 import android.view.View.OnClickListener;\r
@@ -53,6 +54,13 @@ public class TrainListActivity extends BaseActivity {
        \r
                                pref.put(TrainDelayedServiceImpl.PREF_SVS_DBFLG, 0);\r
                                pref.update();\r
+                               \r
+                               if (selected){\r
+                                       Intent intent = new Intent(TrainListActivity.this,\r
+                                                       (Class<?>) TrainEditActivity.class);\r
+                                       intent.putExtra("ID", item.getId());\r
+                                       startActivityForResult(intent, -1);                                     \r
+                               }\r
                        }\r
                });\r
                \r
index 7e7fcfc..f1becd1 100644 (file)
@@ -52,6 +52,7 @@ public class WaitActivity extends BaseActivity implements ServiceConnection {
 //     intent.setClassName(this, "com.td.SampleService");\r
        Intent intent = new Intent(this, TrainService.class);\r
        \r
+       this.\r
        bindService(intent,  this, Context.BIND_AUTO_CREATE);\r
        \r
        // Activity\82ª\8e\80\82ñ\82Å\82à\83T\81[\83r\83X\82ð\8fI\97¹\82³\82¹\82È\82¢\82½\82ß\r
@@ -76,6 +77,7 @@ public class WaitActivity extends BaseActivity implements ServiceConnection {
        \r
        public void onServiceConnected(ComponentName name, IBinder service) {\r
                serviceImpl = ITrainService.Stub.asInterface(service);\r
+               \r
                try {\r
                        serviceImpl.setListener(interfaceImpl);\r
                        \r
@@ -87,6 +89,7 @@ public class WaitActivity extends BaseActivity implements ServiceConnection {
        }\r
 \r
        public void onServiceDisconnected(ComponentName name) {\r
+               // Service\82Æ\82Ì\90Ú\91±\82ª\97\\8aú\82¹\82¸\90Ø\82ê\82½\81iKILL\82³\82ê\82é\82È\82Ç\81j\8fê\8d\87\82É\8cÄ\82Î\82ê\82é\r
                serviceImpl = null;             \r
        }\r
        \r
index 54c5df6..039f37d 100644 (file)
@@ -14,6 +14,7 @@ public class TrainDao {
        private static TrainDao instance = null;\r
        private SQLiteStatement insertStmt = null;\r
        private SQLiteStatement updateStmt = null;\r
+       private SQLiteStatement updateStmt2 = null;\r
        private SQLiteStatement deleteStmt = null;\r
        \r
        public static TrainDao getInstance(){\r
@@ -52,6 +53,10 @@ public class TrainDao {
                                "UPDATE TRAIN SET "\r
                                + "SELECTED = ? "\r
                                + "WHERE " + android.provider.BaseColumns._ID + " = ?;");\r
+               updateStmt2 = db.compileStatement(\r
+                               "UPDATE TRAIN SET "\r
+                               + "SEARCH_TEXT = ? "\r
+                               + "WHERE " + android.provider.BaseColumns._ID + " = ?;");\r
                deleteStmt = db.compileStatement(\r
                                "DELETE FROM TRAIN");\r
                }\r
@@ -78,6 +83,16 @@ public class TrainDao {
                return search(selection, selectionArgs, android.provider.BaseColumns._ID);\r
        }\r
        \r
+       public Train searchById(long id){\r
+               String selection = android.provider.BaseColumns._ID + " = ?";\r
+               String[] selectionArgs = new String[1];\r
+               \r
+               selectionArgs[0] = String.valueOf(id);\r
+               \r
+               List<Train> list = search(selection, selectionArgs, null);\r
+               return (list.size() > 0)? list.get(0) : null;\r
+       }\r
+       \r
        private List<Train> search(String selection, String[] selectionArgs, String orderBy){\r
                List<Train> list = new ArrayList<Train>();\r
                try {\r
@@ -232,6 +247,25 @@ public class TrainDao {
                }\r
        }\r
        \r
+       public void set(long id, String searchText) {\r
+               DatabaseHelper helper = DatabaseHelper.getInstance();\r
+               SQLiteDatabase db = helper.getWritableDatabase();\r
+               db.beginTransaction();\r
+               try {\r
+                       int i = 1;\r
+                       SQLiteStatement stmt = updateStmt2;\r
+                       stmt.bindString(i++, searchText);\r
+                       stmt.bindLong(i++, id);\r
+                       stmt.execute();\r
+                       db.setTransactionSuccessful();\r
+               } catch (Exception e){\r
+                       // TODO\r
+                       Debug.d(this, null, e);\r
+               } finally {\r
+                       db.endTransaction();\r
+               }\r
+       }\r
+\r
        public void deleteNT() {\r
                SQLiteStatement stmt = deleteStmt;\r
                stmt.execute();\r
index ca63aa2..9c71595 100644 (file)
@@ -7,7 +7,9 @@ import android.content.Intent;
 import android.os.IBinder;\r
 import android.os.RemoteException;\r
 \r
+import com.td.db.DatabaseHelper;\r
 import com.td.utility.Debug;\r
+import com.td.utility.TdException;\r
 import com.td.webapi.RouteUpdater;\r
 \r
 public class TrainService extends Service {\r
@@ -16,15 +18,16 @@ public class TrainService extends Service {
        // 2\8fd\8bN\93®\97}\8e~\r
        private boolean isStart = false;\r
        \r
-//     public TrainService(){\r
-//             Debug.t(this, "TrainService create");           \r
-//     }\r
-       \r
        private ITrainService.Stub impl = new ITrainService.Stub(){\r
                public int doExecute(String branch) throws RemoteException {\r
                        if (isStart){\r
                                return -1;\r
                        }\r
+                       try {\r
+                               DatabaseHelper.init(getApplicationContext());\r
+                       } catch (TdException e) {\r
+                               // TODO \91S\91Ì\82ðtry\82Å\88Í\82Þ\r
+                       }\r
                        thread = new Thread(){\r
                                public void run(){\r
                                        if (isStart){\r
@@ -35,11 +38,14 @@ public class TrainService extends Service {
                                                Debug.t(TrainService.this, "TrainService start");\r
                                                RouteUpdater ru = new RouteUpdater();\r
                                                ru.update();\r
-                                               ITrainServiceCallback callback = callbackRef.get();\r
-                                               if (callback != null){\r
-                                                       callbackRef.clear();\r
-                                                       callback.notify("msg");\r
-                                                       callback = null;\r
+                                               ru = null;\r
+                                               if (callbackRef != null){\r
+                                                       ITrainServiceCallback callback = callbackRef.get();\r
+                                                       if (callback != null){\r
+                                                               callbackRef.clear();\r
+                                                               callback.notify("msg");\r
+                                                               callback = null;\r
+                                                       }\r
                                                }\r
                                                Debug.t(TrainService.this, "TrainService end");\r
                                        } catch (RemoteException e) {\r