tobiasKaminsky 10 years ago
parent
commit
f98665bc2d

+ 16 - 1
src/com/owncloud/android/datamodel/OCFile.java

@@ -20,9 +20,12 @@ package com.owncloud.android.datamodel;
 
 import java.io.File;
 
+import com.owncloud.android.MainApp;
 import com.owncloud.android.lib.common.utils.Log_OC;
-import third_parties.daveKoeller.AlphanumComparator;
 
+import third_parties.daveKoeller.AlphanumComparator;
+import android.content.Intent;
+import android.net.Uri;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.webkit.MimeTypeMap;
@@ -296,6 +299,18 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
                 mRemotePath += PATH_SEPARATOR;
             }
             Log_OC.d(TAG, "OCFile name changed to " + mRemotePath);
+            
+            // Notify MediaScanner about removed file
+            Intent intent1 = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+            intent1.setData(Uri.fromFile(new File(this.getStoragePath())));
+            MainApp.getAppContext().sendBroadcast(intent1);
+            
+            // Notify MediaScanner about new file
+            Intent intent2 = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+            String folder = new File(this.getStoragePath()).getParent();
+            Log_OC.d(TAG, "uri: " + folder+PATH_SEPARATOR+name);
+            intent2.setData(Uri.fromFile(new File(folder+ PATH_SEPARATOR+name)));
+            MainApp.getAppContext().sendBroadcast(intent2);
         }
     }
 

+ 18 - 12
src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java

@@ -27,16 +27,20 @@ package com.owncloud.android.ui.dialog;
 import java.io.File;
 import java.util.Vector;
 
+import android.app.Dialog;
+import android.content.Intent;
+import android.media.MediaScannerConnection;
+import android.net.Uri;
+import android.os.Bundle;
+
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.activity.ComponentsGetter;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
 
-import android.app.Dialog;
-import android.media.MediaScannerConnection;
-import android.os.Bundle;
-
 public class RemoveFileDialogFragment extends ConfirmationDialogFragment 
 implements ConfirmationDialogFragmentListener {
 
@@ -97,7 +101,7 @@ implements ConfirmationDialogFragmentListener {
         ComponentsGetter cg = (ComponentsGetter)getSherlockActivity();
         FileDataStorageManager storageManager = cg.getStorageManager();
         if (storageManager.getFileById(mTargetFile.getFileId()) != null) {
-            String path = new File(mTargetFile.getStoragePath()).getParent();
+            String path = mTargetFile.getStoragePath();
             cg.getFileOperationsHelper().removeFile(mTargetFile, false);
             triggerMediaScan(path);
         }
@@ -108,10 +112,9 @@ implements ConfirmationDialogFragmentListener {
      */
     @Override
     public void onNeutral(String callerTag) {
-        String path = new File(mTargetFile.getStoragePath()).getParent();
+        String path = mTargetFile.getStoragePath();
         ComponentsGetter cg = (ComponentsGetter)getSherlockActivity();
-        cg.getFileOperationsHelper()
-            .removeFile(mTargetFile, true);
+        cg.getFileOperationsHelper().removeFile(mTargetFile, true);
         
         FileDataStorageManager storageManager = cg.getStorageManager();
         
@@ -150,9 +153,12 @@ implements ConfirmationDialogFragmentListener {
     }
     
     private void triggerMediaScan(String path){
-        MediaScannerConnection.scanFile(
-                getActivity().getApplicationContext(), 
-                new String[]{path}, 
-                null,null);
+        try {
+            Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+            intent.setData(Uri.fromFile(new File(path)));
+            MainApp.getAppContext().sendBroadcast(intent);
+        } catch (Exception e){
+            Log_OC.d("Trigger", "exception: " + e);
+        }
     }
 }

+ 8 - 12
src/com/owncloud/android/ui/dialog/RenameFileDialogFragment.java

@@ -22,12 +22,6 @@ package com.owncloud.android.ui.dialog;
  * 
  *  Triggers the rename operation. 
  */
-import com.actionbarsherlock.app.SherlockDialogFragment;
-import com.owncloud.android.R;
-import com.owncloud.android.datamodel.OCFile;
-import com.owncloud.android.lib.resources.files.FileUtils;
-import com.owncloud.android.ui.activity.ComponentsGetter;
-
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.content.DialogInterface;
@@ -39,6 +33,12 @@ import android.widget.EditText;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.actionbarsherlock.app.SherlockDialogFragment;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.resources.files.FileUtils;
+import com.owncloud.android.ui.activity.ComponentsGetter;
+
 
 /**
  *  Dialog to input a new name for a file or folder to rename.  
@@ -125,12 +125,8 @@ extends SherlockDialogFragment implements DialogInterface.OnClickListener {
                         Toast.LENGTH_LONG).show();
                 return;
             }
-            
-            ((ComponentsGetter)getSherlockActivity()).
-                getFileOperationsHelper().renameFile(mTargetFile, newFileName);
-            
-            
+
+            ((ComponentsGetter)getSherlockActivity()).getFileOperationsHelper().renameFile(mTargetFile, newFileName);
         }
     }
-    
 }