From: tobiasKaminsky Date: Wed, 22 Oct 2014 06:09:47 +0000 (+0200) Subject: Merge remote-tracking branch 'upstream/develop' into triggerMediaScan X-Git-Tag: oc-android-1.7.0_signed~90^2~25 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/d7b32ecc1754cc06023de2e6f2bbbf3555514d74?hp=25a36a4fe70423625e454b172aa46cbe48a3cfc9 Merge remote-tracking branch 'upstream/develop' into triggerMediaScan Conflicts: src/com/owncloud/android/ui/fragment/OCFileListFragment.java src/com/owncloud/android/ui/preview/PreviewImageActivity.java src/com/owncloud/android/ui/preview/PreviewImageFragment.java --- diff --git a/project.properties b/project.properties index 28edd993..c149c453 100644 --- a/project.properties +++ b/project.properties @@ -10,4 +10,4 @@ # Project target. target=android-19 android.library.reference.1=actionbarsherlock/library -android.library.reference.2=owncloud-android-library +android.library.reference.2=../android-library/android-library diff --git a/src/com/owncloud/android/files/FileOperationsHelper.java b/src/com/owncloud/android/files/FileOperationsHelper.java index e1ab1953..65e8d835 100644 --- a/src/com/owncloud/android/files/FileOperationsHelper.java +++ b/src/com/owncloud/android/files/FileOperationsHelper.java @@ -22,6 +22,7 @@ import org.apache.http.protocol.HTTP; import android.accounts.Account; import android.accounts.AccountManager; import android.content.Intent; +import android.media.MediaScannerConnection; import android.net.Uri; import android.support.v4.app.DialogFragment; import android.webkit.MimeTypeMap; @@ -31,7 +32,6 @@ import com.owncloud.android.R; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; - import com.owncloud.android.lib.common.accounts.AccountUtils.Constants; import com.owncloud.android.lib.common.network.WebdavUtils; import com.owncloud.android.lib.common.utils.Log_OC; @@ -293,6 +293,4 @@ public class FileOperationsHelper { public void setOpIdWaitingFor(long waitingForOpId) { mWaitingForOpId = waitingForOpId; } - - } diff --git a/src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java b/src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java index a78584ae..8158a5a2 100644 --- a/src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java +++ b/src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java @@ -24,6 +24,7 @@ package com.owncloud.android.ui.dialog; * * @author David A. Velasco */ +import java.io.File; import java.util.Vector; import com.owncloud.android.R; @@ -33,6 +34,7 @@ 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 @@ -95,7 +97,9 @@ implements ConfirmationDialogFragmentListener { ComponentsGetter cg = (ComponentsGetter)getSherlockActivity(); FileDataStorageManager storageManager = cg.getStorageManager(); if (storageManager.getFileById(mTargetFile.getFileId()) != null) { + String path = new File(mTargetFile.getStoragePath()).getParent(); cg.getFileOperationsHelper().removeFile(mTargetFile, false); + triggerMediaScan(path); } } @@ -104,6 +108,7 @@ implements ConfirmationDialogFragmentListener { */ @Override public void onNeutral(String callerTag) { + String path = new File(mTargetFile.getStoragePath()).getParent(); ComponentsGetter cg = (ComponentsGetter)getSherlockActivity(); cg.getFileOperationsHelper() .removeFile(mTargetFile, true); @@ -132,8 +137,11 @@ implements ConfirmationDialogFragmentListener { } folder.setEtag(""); - storageManager.saveFile(folder); + storageManager.saveFile(folder); } + + // Trigger MediaScan + triggerMediaScan(path); } @Override @@ -141,4 +149,10 @@ implements ConfirmationDialogFragmentListener { // nothing to do here } -} + private void triggerMediaScan(String path){ + MediaScannerConnection.scanFile( + getActivity().getApplicationContext(), + new String[]{path}, + null,null); + } +} \ No newline at end of file diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index 3665fe0b..37991beb 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -19,9 +19,12 @@ package com.owncloud.android.ui.fragment; import java.io.File; +import android.accounts.Account; import android.app.Activity; import android.content.Intent; +import android.media.MediaScannerConnection; import android.os.Bundle; +import android.os.Handler; import android.support.v4.widget.SwipeRefreshLayout; import android.view.ContextMenu; import android.view.MenuInflater; @@ -31,10 +34,15 @@ import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; import com.owncloud.android.R; +import com.owncloud.android.authentication.AccountUtils; import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.FileMenuFilter; +import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; +import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; import com.owncloud.android.lib.common.utils.Log_OC; +import com.owncloud.android.operations.RemoveFileOperation; +import com.owncloud.android.operations.RenameFileOperation; import com.owncloud.android.ui.activity.FileDisplayActivity; import com.owncloud.android.ui.activity.MoveActivity; import com.owncloud.android.ui.activity.OnEnforceableRefreshListener; @@ -71,6 +79,7 @@ public class OCFileListFragment extends ExtendedListFragment { private OCFile mFile = null; private FileListListAdapter mAdapter; + private Handler mHandler; private OCFile mTargetFile; @@ -299,6 +308,7 @@ public class OCFileListFragment extends ExtendedListFragment { case R.id.action_download_file: case R.id.action_sync_file: { mContainerActivity.getFileOperationsHelper().syncFile(mTargetFile); + triggerMediaScan(mTargetFile.getStoragePath()); return true; } case R.id.action_cancel_download: @@ -333,6 +343,7 @@ public class OCFileListFragment extends ExtendedListFragment { return super.onContextItemSelected(item); } } + /** @@ -387,4 +398,10 @@ public class OCFileListFragment extends ExtendedListFragment { } } + private void triggerMediaScan(String path){ + MediaScannerConnection.scanFile( + getActivity().getApplicationContext(), + new String[]{path}, + null,null); + } } diff --git a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java index c06f341f..09c2f587 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java +++ b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java @@ -23,6 +23,9 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; +import android.media.MediaScannerConnection; +import android.media.MediaScannerConnection.OnScanCompletedListener; +import android.net.Uri; import android.content.SharedPreferences; import android.os.Build; import android.os.Bundle; @@ -432,6 +435,9 @@ ViewPager.OnPageChangeListener, OnRemoteOperationListener { public void onReceive(Context context, Intent intent) { String accountName = intent.getStringExtra(FileDownloader.ACCOUNT_NAME); String downloadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH); + + + if (getAccount().name.equals(accountName) && downloadedRemotePath != null) { @@ -440,6 +446,14 @@ ViewPager.OnPageChangeListener, OnRemoteOperationListener { boolean downloadWasFine = intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false); //boolean isOffscreen = Math.abs((mViewPager.getCurrentItem() - position)) <= mViewPager.getOffscreenPageLimit(); + if (downloadWasFine){ + // Trigger Mediascan + MediaScannerConnection.scanFile( + context, + new String[]{file.getStoragePath()}, + null,null); + } + if (position >= 0 && intent.getAction().equals(FileDownloader.getDownloadFinishMessage())) { if (downloadWasFine) { mPreviewImagePagerAdapter.updateFile(position, file); diff --git a/src/com/owncloud/android/ui/preview/PreviewImageFragment.java b/src/com/owncloud/android/ui/preview/PreviewImageFragment.java index 4dd5c436..a3814c77 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImageFragment.java +++ b/src/com/owncloud/android/ui/preview/PreviewImageFragment.java @@ -328,7 +328,7 @@ public class PreviewImageFragment extends FileFragment { finish(); } - + private class BitmapLoader extends AsyncTask { /**