OSDN Git Service

T29307
[everfolder/source.git] / source / workspace / EverFolder / src / com / yuji / ef / EverFolderActivity.java
index 8cb9bcc..2375da6 100644 (file)
@@ -8,10 +8,8 @@ import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.res.Resources;
 import android.database.sqlite.SQLiteDatabase;
 import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
 import android.graphics.PixelFormat;
 import android.os.Bundle;
 import android.text.Editable;
@@ -22,6 +20,7 @@ import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.LinearLayout;
@@ -149,8 +148,12 @@ public class EverFolderActivity extends BaseActivity {
 
                        msgEditText.addTextChangedListener(new TextWatcher() {
                                public void afterTextChanged(Editable s) {
-                                       String text = s.toString();
-                                       msgOkButton.setEnabled(text.length() > 0);
+                                       if (status != ScreenStatus.DeleteNode) {
+                                               String text = s.toString();
+                                               msgOkButton.setEnabled(text.length() > 0);
+                                       } else {
+                                               msgOkButton.setEnabled(true);
+                                       }
                                }
 
                                public void beforeTextChanged(CharSequence s, int start,
@@ -167,13 +170,13 @@ public class EverFolderActivity extends BaseActivity {
                        msgOkButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
-                                       msgOkButtonOnClick();
+                                       msgOkButtonOnClick(v);
                                }
                        });
                        msgCancelButton.setOnClickListener(new OnClickListener() {
                                @Override
                                public void onClick(View v) {
-                                       msgCancelOnClick();
+                                       msgCancelOnClick(v);
                                }
                        });
 
@@ -215,6 +218,11 @@ public class EverFolderActivity extends BaseActivity {
        public boolean onMenuOpened(int featureId, Menu menu) {
                boolean ret = super.onMenuOpened(featureId, menu);
 
+               // #29304
+               if (menu == null){
+                       return false;
+               }
+               
                MenuItem item;
 
                boolean cutButtonFlag = false;
@@ -446,9 +454,20 @@ public class EverFolderActivity extends BaseActivity {
                // }
                updateList(parent, 0);
                layout.setMinimumHeight(viewY);
-               layout.invalidate();
-       }
+               
+               scrollView.invalidate();
+               
+//             layout.invalidate();
 
+//             this.runOnUiThread(new Runnable() {
+//                     @Override
+//                     public void run() {
+//                             // ビューを再描画し,UI上で画像変更を反映
+//                             scrollView.invalidate();
+//                     }
+//             });
+       }
+       
        private void updateList(Node node, int depth) {
                int N = (int) (bmpWidth * 0.6);
                int M = (int) (bmpWidth * 1.2);
@@ -490,6 +509,16 @@ public class EverFolderActivity extends BaseActivity {
                NodeDao dao = (NodeDao) NodeCacheDao.getInstance();
                for (Long id : idList) {
                        Node n = dao.searchById(id);
+                       if (n == null){
+                               // TODO
+                               continue;
+                       }
+                       if (n instanceof DirNode){
+                               DirNode d = (DirNode)n;
+                               if (isNoteBook(d) && !d.isSelected()){
+                                       continue;
+                               }
+                       }
                        list.add(n);
                }
                Collections.sort(list, nodeComparator);
@@ -558,7 +587,7 @@ public class EverFolderActivity extends BaseActivity {
                                isInit = true;
                        }
                }
-               
+
                LockDao lockDao = (LockDao) LockDao.getInstance();
                lock = lockDao.lock(this, Constant.LOCK_UPDATE_NOTE);
 
@@ -633,7 +662,7 @@ public class EverFolderActivity extends BaseActivity {
        // }
        // }
 
-       private void msgOkButtonOnClick() {
+       private void msgOkButtonOnClick(View v) {
                FolderUtil util = FolderUtil.getInstance();
                LabelIconView target = layout.getSelectedTarget();
                NodeDao dao = (NodeDao) NodeCacheDao.getInstance();
@@ -647,8 +676,7 @@ public class EverFolderActivity extends BaseActivity {
                                util.addDirNode(parent, node);
                        }
                        layout.setCutTarget(null, false);
-               }
-               else if (status == ScreenStatus.DeleteNode) {
+               } else if (status == ScreenStatus.DeleteNode) {
                        long id = target.getNodeId();
                        Node node = dao.searchById(id);
                        if (node != null) {
@@ -666,15 +694,25 @@ public class EverFolderActivity extends BaseActivity {
                        }
                        layout.setCutTarget(null, false);
                }
+               
+               closeIME(v);
+               
                layout.clearTarget();
                updateList();
                setStatus(ScreenStatus.Normal);
        }
 
-       private void msgCancelOnClick() {
+       private void msgCancelOnClick(View v) {
+               closeIME(v);
+               
                setStatus(ScreenStatus.Normal);
        }
 
+       private void closeIME(View v){
+               InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
+               imm.hideSoftInputFromWindow(v.getWindowToken(),0);
+       }
+       
        public void execute(long srcId, long dstId) {
                try {
                        removeAllNodeView();