mirror of
https://github.com/nextcloud/android.git
synced 2024-12-18 06:51:55 +03:00
trigger Media Scan on:
- download - delete local (on list and details) - delete local & remote (on list and details)
This commit is contained in:
parent
a8d55d09dd
commit
e5515c1a2d
3 changed files with 45 additions and 5 deletions
|
@ -43,9 +43,9 @@ import com.owncloud.android.ui.fragment.ConfirmationDialogFragment.ConfirmationD
|
||||||
import com.owncloud.android.ui.preview.PreviewImageFragment;
|
import com.owncloud.android.ui.preview.PreviewImageFragment;
|
||||||
import com.owncloud.android.ui.preview.PreviewMediaFragment;
|
import com.owncloud.android.ui.preview.PreviewMediaFragment;
|
||||||
|
|
||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.media.MediaScannerConnection;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.view.ContextMenu;
|
import android.view.ContextMenu;
|
||||||
|
@ -472,19 +472,26 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
|
||||||
public void onConfirmation(String callerTag) {
|
public void onConfirmation(String callerTag) {
|
||||||
if (callerTag.equals(FileDetailFragment.FTAG_CONFIRMATION)) {
|
if (callerTag.equals(FileDetailFragment.FTAG_CONFIRMATION)) {
|
||||||
if (mContainerActivity.getStorageManager().getFileById(mTargetFile.getFileId()) != null) {
|
if (mContainerActivity.getStorageManager().getFileById(mTargetFile.getFileId()) != null) {
|
||||||
|
String path = new File(mTargetFile.getStoragePath()).getParent();
|
||||||
RemoteOperation operation = new RemoveFileOperation( mTargetFile,
|
RemoteOperation operation = new RemoveFileOperation( mTargetFile,
|
||||||
true,
|
true,
|
||||||
mContainerActivity.getStorageManager());
|
mContainerActivity.getStorageManager());
|
||||||
operation.execute(AccountUtils.getCurrentOwnCloudAccount(getSherlockActivity()), getSherlockActivity(), mContainerActivity, mHandler, getSherlockActivity());
|
operation.execute(AccountUtils.getCurrentOwnCloudAccount(getSherlockActivity()), getSherlockActivity(), mContainerActivity, mHandler, getSherlockActivity());
|
||||||
|
|
||||||
((FileDisplayActivity) getActivity()).showLoadingDialog();
|
((FileDisplayActivity) getActivity()).showLoadingDialog();
|
||||||
|
|
||||||
|
triggerMediaScan(path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNeutral(String callerTag) {
|
public void onNeutral(String callerTag) {
|
||||||
|
String path = new File(mTargetFile.getStoragePath()).getParent();
|
||||||
mContainerActivity.getStorageManager().removeFile(mTargetFile, false, true); // TODO perform in background task / new thread
|
mContainerActivity.getStorageManager().removeFile(mTargetFile, false, true); // TODO perform in background task / new thread
|
||||||
|
|
||||||
|
triggerMediaScan(path);
|
||||||
|
|
||||||
listDirectory();
|
listDirectory();
|
||||||
mContainerActivity.onTransferStateChanged(mTargetFile, false, false);
|
mContainerActivity.onTransferStateChanged(mTargetFile, false, false);
|
||||||
}
|
}
|
||||||
|
@ -493,6 +500,11 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
|
||||||
public void onCancel(String callerTag) {
|
public void onCancel(String callerTag) {
|
||||||
Log_OC.d(TAG, "REMOVAL CANCELED");
|
Log_OC.d(TAG, "REMOVAL CANCELED");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void triggerMediaScan(String path){
|
||||||
|
MediaScannerConnection.scanFile(
|
||||||
|
getActivity().getApplicationContext(),
|
||||||
|
new String[]{path},
|
||||||
|
null,null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,9 @@ import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
|
import android.media.MediaScannerConnection;
|
||||||
|
import android.media.MediaScannerConnection.OnScanCompletedListener;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
|
@ -372,14 +375,25 @@ public class PreviewImageActivity extends FileActivity implements FileFragment.C
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
String accountName = intent.getStringExtra(FileDownloader.ACCOUNT_NAME);
|
String accountName = intent.getStringExtra(FileDownloader.ACCOUNT_NAME);
|
||||||
String downloadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH);
|
String downloadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (getAccount().name.equals(accountName) &&
|
if (getAccount().name.equals(accountName) &&
|
||||||
downloadedRemotePath != null) {
|
downloadedRemotePath != null) {
|
||||||
|
|
||||||
OCFile file = mStorageManager.getFileByPath(downloadedRemotePath);
|
final OCFile file = mStorageManager.getFileByPath(downloadedRemotePath);
|
||||||
int position = mPreviewImagePagerAdapter.getFilePosition(file);
|
int position = mPreviewImagePagerAdapter.getFilePosition(file);
|
||||||
boolean downloadWasFine = intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false);
|
boolean downloadWasFine = intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false);
|
||||||
//boolean isOffscreen = Math.abs((mViewPager.getCurrentItem() - position)) <= mViewPager.getOffscreenPageLimit();
|
//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 (position >= 0 && intent.getAction().equals(FileDownloader.getDownloadFinishMessage())) {
|
||||||
if (downloadWasFine) {
|
if (downloadWasFine) {
|
||||||
mPreviewImagePagerAdapter.updateFile(position, file);
|
mPreviewImagePagerAdapter.updateFile(position, file);
|
||||||
|
|
|
@ -21,7 +21,6 @@ import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
@ -31,6 +30,7 @@ import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.graphics.BitmapFactory.Options;
|
import android.graphics.BitmapFactory.Options;
|
||||||
import android.graphics.Point;
|
import android.graphics.Point;
|
||||||
|
import android.media.MediaScannerConnection;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -374,12 +374,15 @@ public class PreviewImageFragment extends FileFragment implements OnRemoteOper
|
||||||
@Override
|
@Override
|
||||||
public void onConfirmation(String callerTag) {
|
public void onConfirmation(String callerTag) {
|
||||||
if (mStorageManager.getFileById(getFile().getFileId()) != null) { // check that the file is still there;
|
if (mStorageManager.getFileById(getFile().getFileId()) != null) { // check that the file is still there;
|
||||||
|
String path = new File(getFile().getStoragePath()).getParent();
|
||||||
mLastRemoteOperation = new RemoveFileOperation( getFile(), // TODO we need to review the interface with RemoteOperations, and use OCFile IDs instead of OCFile objects as parameters
|
mLastRemoteOperation = new RemoveFileOperation( getFile(), // TODO we need to review the interface with RemoteOperations, and use OCFile IDs instead of OCFile objects as parameters
|
||||||
true,
|
true,
|
||||||
mStorageManager);
|
mStorageManager);
|
||||||
mLastRemoteOperation.execute(mAccount, getSherlockActivity(), this, mHandler, getSherlockActivity());
|
mLastRemoteOperation.execute(mAccount, getSherlockActivity(), this, mHandler, getSherlockActivity());
|
||||||
|
|
||||||
((PreviewImageActivity) getActivity()).showLoadingDialog();
|
((PreviewImageActivity) getActivity()).showLoadingDialog();
|
||||||
|
|
||||||
|
triggerMediaScan(path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,7 +396,11 @@ public class PreviewImageFragment extends FileFragment implements OnRemoteOper
|
||||||
OCFile file = getFile();
|
OCFile file = getFile();
|
||||||
if (file.isDown()) { // checks it is still there
|
if (file.isDown()) { // checks it is still there
|
||||||
File f = new File(file.getStoragePath());
|
File f = new File(file.getStoragePath());
|
||||||
|
String path = f.getParent();
|
||||||
f.delete();
|
f.delete();
|
||||||
|
|
||||||
|
triggerMediaScan(path);
|
||||||
|
|
||||||
file.setStoragePath(null);
|
file.setStoragePath(null);
|
||||||
mStorageManager.saveFile(file);
|
mStorageManager.saveFile(file);
|
||||||
finish();
|
finish();
|
||||||
|
@ -408,6 +415,13 @@ public class PreviewImageFragment extends FileFragment implements OnRemoteOper
|
||||||
// nothing to do here
|
// nothing to do here
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void triggerMediaScan(String path){
|
||||||
|
MediaScannerConnection.scanFile(
|
||||||
|
getActivity().getApplicationContext(),
|
||||||
|
new String[]{path},
|
||||||
|
null,null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private class BitmapLoader extends AsyncTask<String, Void, Bitmap> {
|
private class BitmapLoader extends AsyncTask<String, Void, Bitmap> {
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue