Skip to content

Commit 00618ea

Browse files
Move all file type (as in mime type) checks to MimeTypeUtil
1 parent 24bac65 commit 00618ea

23 files changed

+187
-195
lines changed

src/com/owncloud/android/datamodel/FileDataStorageManager.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import com.owncloud.android.lib.resources.status.OCCapability;
4444
import com.owncloud.android.utils.FileStorageUtils;
4545
import com.owncloud.android.utils.MimeType;
46+
import com.owncloud.android.utils.MimeTypeUtil;
4647

4748
import java.io.File;
4849
import java.io.FileInputStream;
@@ -161,7 +162,7 @@ public Vector<OCFile> getFolderImages(OCFile folder, boolean onlyOnDevice) {
161162
OCFile current = null;
162163
for (int i=0; i<tmp.size(); i++) {
163164
current = tmp.get(i);
164-
if (current.isImage()) {
165+
if (MimeTypeUtil.isImage(current)) {
165166
ret.add(current);
166167
}
167168
}
@@ -1689,31 +1690,31 @@ public void deleteFileInMediaScan(String path) {
16891690
ContentResolver contentResolver = getContentResolver();
16901691

16911692
if (contentResolver != null) {
1692-
if (mimetypeString.startsWith("image/")) {
1693+
if (MimeTypeUtil.isImage(mimetypeString)) {
16931694
// Images
16941695
contentResolver.delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
16951696
MediaStore.Images.Media.DATA + "=?", new String[]{path});
1696-
} else if (mimetypeString.startsWith("audio/")) {
1697+
} else if (MimeTypeUtil.isAudio(mimetypeString)) {
16971698
// Audio
16981699
contentResolver.delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
16991700
MediaStore.Audio.Media.DATA + "=?", new String[]{path});
1700-
} else if (mimetypeString.startsWith("video/")) {
1701+
} else if (MimeTypeUtil.isVideo(mimetypeString)) {
17011702
// Video
17021703
contentResolver.delete(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
17031704
MediaStore.Video.Media.DATA + "=?", new String[]{path});
17041705
}
17051706
} else {
17061707
ContentProviderClient contentProviderClient = getContentProviderClient();
17071708
try {
1708-
if (mimetypeString.startsWith("image/")) {
1709+
if (MimeTypeUtil.isImage(mimetypeString)) {
17091710
// Images
17101711
contentProviderClient.delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
17111712
MediaStore.Images.Media.DATA + "=?", new String[]{path});
1712-
} else if (mimetypeString.startsWith("audio/")) {
1713+
} else if (MimeTypeUtil.isAudio(mimetypeString)) {
17131714
// Audio
17141715
contentProviderClient.delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
17151716
MediaStore.Audio.Media.DATA + "=?", new String[]{path});
1716-
} else if (mimetypeString.startsWith("video/")) {
1717+
} else if (MimeTypeUtil.isVideo(mimetypeString)) {
17171718
// Video
17181719
contentProviderClient.delete(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
17191720
MediaStore.Video.Media.DATA + "=?", new String[]{path});
@@ -1722,7 +1723,6 @@ public void deleteFileInMediaScan(String path) {
17221723
Log_OC.e(TAG, "Exception deleting media file in MediaStore " + e.getMessage());
17231724
}
17241725
}
1725-
17261726
}
17271727

17281728
public void saveConflict(OCFile file, String etagInConflict) {

src/com/owncloud/android/datamodel/OCFile.java

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import android.net.Uri;
2828
import android.os.Parcel;
2929
import android.os.Parcelable;
30-
import android.webkit.MimeTypeMap;
3130

3231
import com.owncloud.android.lib.common.utils.Log_OC;
3332
import com.owncloud.android.utils.MimeType;
@@ -562,53 +561,6 @@ public long getLocalModificationTimestamp() {
562561
return 0;
563562
}
564563

565-
/**
566-
* @return 'True' if the file contains audio
567-
*/
568-
public boolean isAudio() {
569-
return (mMimeType != null && mMimeType.startsWith("audio/"));
570-
}
571-
572-
/**
573-
* @return 'True' if the file contains video
574-
*/
575-
public boolean isVideo() {
576-
return (mMimeType != null && mMimeType.startsWith("video/"));
577-
}
578-
579-
/**
580-
* @return 'True' if the file contains an image
581-
*/
582-
public boolean isImage() {
583-
String mimeType;
584-
if (mMimeType != null) {
585-
mimeType = mMimeType;
586-
} else {
587-
mimeType = getMimeTypeFromName();
588-
}
589-
590-
return (mimeType.startsWith("image/") && !mimeType.contains("djvu"));
591-
}
592-
593-
/**
594-
* @return 'True' if the file is simple text (e.g. not application-dependent, like .doc or .docx)
595-
*/
596-
public boolean isText() {
597-
return ((mMimeType != null && mMimeType.startsWith("text/")) ||
598-
getMimeTypeFromName().startsWith("text/"));
599-
}
600-
601-
public String getMimeTypeFromName() {
602-
String extension = "";
603-
int pos = mRemotePath.lastIndexOf('.');
604-
if (pos >= 0) {
605-
extension = mRemotePath.substring(pos + 1);
606-
}
607-
String result = MimeTypeMap.getSingleton().
608-
getMimeTypeFromExtension(extension.toLowerCase());
609-
return (result != null) ? result : "";
610-
}
611-
612564
/**
613565
* @return 'True' if the file is hidden
614566
*/

src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,6 @@
2121

2222
package com.owncloud.android.datamodel;
2323

24-
import java.io.File;
25-
import java.io.InputStream;
26-
import java.lang.ref.WeakReference;
27-
import java.net.FileNameMap;
28-
import java.net.URLConnection;
29-
30-
import org.apache.commons.httpclient.HttpStatus;
31-
import org.apache.commons.httpclient.methods.GetMethod;
32-
3324
import android.accounts.Account;
3425
import android.content.res.Resources;
3526
import android.graphics.Bitmap;
@@ -39,7 +30,6 @@
3930
import android.graphics.Paint;
4031
import android.graphics.drawable.BitmapDrawable;
4132
import android.graphics.drawable.Drawable;
42-
import android.media.Image;
4333
import android.media.ThumbnailUtils;
4434
import android.net.Uri;
4535
import android.os.AsyncTask;
@@ -56,16 +46,16 @@
5646
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
5747
import com.owncloud.android.ui.adapter.DiskLruImageCache;
5848
import com.owncloud.android.utils.BitmapUtils;
59-
import com.owncloud.android.utils.DisplayUtils;
6049
import com.owncloud.android.utils.DisplayUtils.AvatarGenerationListener;
50+
import com.owncloud.android.utils.FileStorageUtils;
51+
import com.owncloud.android.utils.MimeTypeUtil;
6152

6253
import org.apache.commons.httpclient.HttpStatus;
6354
import org.apache.commons.httpclient.methods.GetMethod;
6455

6556
import java.io.File;
6657
import java.io.InputStream;
6758
import java.lang.ref.WeakReference;
68-
import com.owncloud.android.utils.FileStorageUtils;
6959

7060
/**
7161
* Manager for concurrent access to thumbnails cache.
@@ -212,7 +202,7 @@ protected Bitmap doInBackground(Object... params) {
212202
if (mFile instanceof OCFile) {
213203
thumbnail = doOCFileInBackground();
214204

215-
if (((OCFile) mFile).isVideo() && thumbnail != null){
205+
if (MimeTypeUtil.isVideo((OCFile) mFile) && thumbnail != null) {
216206
thumbnail = addVideoOverlay(thumbnail);
217207
}
218208
} else if (mFile instanceof File) {
@@ -221,7 +211,7 @@ protected Bitmap doInBackground(Object... params) {
221211
String url = ((File) mFile).getAbsolutePath();
222212
String mMimeType = FileStorageUtils.getMimeTypeFromName(url);
223213

224-
if (mMimeType != null && mMimeType.startsWith("video/") && thumbnail != null){
214+
if (MimeTypeUtil.isVideo(mMimeType) && thumbnail != null) {
225215
thumbnail = addVideoOverlay(thumbnail);
226216
}
227217
//} else { do nothing

src/com/owncloud/android/db/OCUpload.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import com.owncloud.android.files.services.FileUploader;
3535
import com.owncloud.android.lib.common.utils.Log_OC;
3636
import com.owncloud.android.operations.UploadFileOperation;
37-
import com.owncloud.android.utils.MimetypeIconUtil;
37+
import com.owncloud.android.utils.MimeTypeUtil;
3838

3939
import java.io.File;
4040

@@ -235,7 +235,7 @@ public void setFileSize(long fileSize) {
235235
* @return the mimeType
236236
*/
237237
public String getMimeType() {
238-
return MimetypeIconUtil.getBestMimeTypeByFilename(mLocalPath);
238+
return MimeTypeUtil.getBestMimeTypeByFilename(mLocalPath);
239239
}
240240

241241
/**

src/com/owncloud/android/operations/RefreshFolderOperation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import com.owncloud.android.lib.resources.shares.OCShare;
4040
import com.owncloud.android.syncadapter.FileSyncAdapter;
4141
import com.owncloud.android.utils.FileStorageUtils;
42+
import com.owncloud.android.utils.MimeTypeUtil;
4243

4344
import java.util.ArrayList;
4445
import java.util.HashMap;
@@ -404,7 +405,7 @@ private void synchronizeData(ArrayList<Object> folderAndFiles, OwnCloudClient cl
404405
updatedFile.setEtag(localFile.getEtag());
405406
if (updatedFile.isFolder()) {
406407
updatedFile.setFileLength(remoteFile.getFileLength());
407-
} else if (mRemoteFolderChanged && remoteFile.isImage() &&
408+
} else if (mRemoteFolderChanged && MimeTypeUtil.isImage(remoteFile) &&
408409
remoteFile.getModificationTimestamp() !=
409410
localFile.getModificationTimestamp()) {
410411
updatedFile.setNeedsUpdateThumbnail(true);

src/com/owncloud/android/operations/SynchronizeFolderOperation.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,11 @@
2020

2121
package com.owncloud.android.operations;
2222

23-
import java.io.File;
24-
import java.util.ArrayList;
25-
import java.util.HashMap;
26-
import java.util.List;
27-
import java.util.Map;
28-
import java.util.Vector;
29-
3023
import android.accounts.Account;
3124
import android.content.Context;
3225
import android.content.Intent;
3326
import android.util.Log;
3427

35-
3628
import com.owncloud.android.datamodel.FileDataStorageManager;
3729
import com.owncloud.android.datamodel.OCFile;
3830
import com.owncloud.android.files.services.FileDownloader;
@@ -47,7 +39,14 @@
4739
import com.owncloud.android.operations.common.SyncOperation;
4840
import com.owncloud.android.services.OperationsService;
4941
import com.owncloud.android.utils.FileStorageUtils;
42+
import com.owncloud.android.utils.MimeTypeUtil;
5043

44+
import java.io.File;
45+
import java.util.ArrayList;
46+
import java.util.HashMap;
47+
import java.util.List;
48+
import java.util.Map;
49+
import java.util.Vector;
5150
import java.util.concurrent.atomic.AtomicBoolean;
5251

5352

@@ -329,7 +328,7 @@ private void synchronizeData(ArrayList<Object> folderAndFiles, OwnCloudClient cl
329328
if (updatedFile.isFolder()) {
330329
updatedFile.setFileLength(localFile.getFileLength());
331330
// TODO move operations about size of folders to FileContentProvider
332-
} else if (mRemoteFolderChanged && remoteFile.isImage() &&
331+
} else if (mRemoteFolderChanged && MimeTypeUtil.isImage(remoteFile) &&
333332
remoteFile.getModificationTimestamp() !=
334333
localFile.getModificationTimestamp()) {
335334
updatedFile.setNeedsUpdateThumbnail(true);

src/com/owncloud/android/operations/UploadFileOperation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
import com.owncloud.android.utils.ConnectivityUtils;
4848
import com.owncloud.android.utils.FileStorageUtils;
4949
import com.owncloud.android.utils.MimeType;
50-
import com.owncloud.android.utils.MimetypeIconUtil;
50+
import com.owncloud.android.utils.MimeTypeUtil;
5151
import com.owncloud.android.utils.UriUtils;
5252

5353
import org.apache.commons.httpclient.HttpStatus;
@@ -80,7 +80,7 @@ public static OCFile obtainNewOCFileToUpload(String remotePath, String localPath
8080

8181
// MIME type
8282
if (mimeType == null || mimeType.length() <= 0) {
83-
mimeType = MimetypeIconUtil.getBestMimeTypeByFilename(localPath);
83+
mimeType = MimeTypeUtil.getBestMimeTypeByFilename(localPath);
8484
}
8585

8686
OCFile newFile = new OCFile(remotePath);

src/com/owncloud/android/ui/activity/UploadListActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
import com.owncloud.android.lib.common.utils.Log_OC;
5353
import com.owncloud.android.operations.CheckCurrentCredentialsOperation;
5454
import com.owncloud.android.ui.fragment.UploadListFragment;
55-
import com.owncloud.android.utils.MimetypeIconUtil;
55+
import com.owncloud.android.utils.MimeTypeUtil;
5656

5757
import java.io.File;
5858

@@ -161,7 +161,7 @@ public boolean onUploadItemClick(OCUpload file) {
161161
private void openFileWithDefault(String localPath) {
162162
Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW);
163163
File file = new File(localPath);
164-
String mimetype = MimetypeIconUtil.getBestMimeTypeByFilename(localPath);
164+
String mimetype = MimeTypeUtil.getBestMimeTypeByFilename(localPath);
165165
if ("application/octet-stream".equals(mimetype)) {
166166
mimetype = "*/*";
167167
}

src/com/owncloud/android/ui/adapter/ExpandableUploadListAdapter.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,8 @@
4848
import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
4949
import com.owncloud.android.lib.common.utils.Log_OC;
5050
import com.owncloud.android.ui.activity.FileActivity;
51-
import com.owncloud.android.utils.BitmapUtils;
5251
import com.owncloud.android.utils.DisplayUtils;
53-
import com.owncloud.android.utils.MimetypeIconUtil;
52+
import com.owncloud.android.utils.MimeTypeUtil;
5453

5554
import java.io.File;
5655
import java.lang.ref.WeakReference;
@@ -408,7 +407,7 @@ public void onClick(View v) {
408407
);
409408

410409
// TODO this code is duplicated; refactor to a common place
411-
if ((fakeFileToCheatThumbnailsCacheManagerInterface.isImage()
410+
if ((MimeTypeUtil.isImage(fakeFileToCheatThumbnailsCacheManagerInterface)
412411
&& fakeFileToCheatThumbnailsCacheManagerInterface.getRemoteId() != null &&
413412
upload.getUploadStatus() == UploadStatus.UPLOAD_SUCCEEDED)) {
414413
// Thumbnail in Cache?
@@ -425,7 +424,7 @@ public void onClick(View v) {
425424
fileIcon, mParentActivity.getStorageManager(), mParentActivity.getAccount()
426425
);
427426
if (thumbnail == null) {
428-
if (fakeFileToCheatThumbnailsCacheManagerInterface.isVideo()) {
427+
if (MimeTypeUtil.isVideo(fakeFileToCheatThumbnailsCacheManagerInterface)) {
429428
thumbnail = ThumbnailsCacheManager.mDefaultVideo;
430429
} else {
431430
thumbnail = ThumbnailsCacheManager.mDefaultImg;
@@ -448,7 +447,7 @@ public void onClick(View v) {
448447
}
449448

450449

451-
} else if (fakeFileToCheatThumbnailsCacheManagerInterface.isImage()) {
450+
} else if (MimeTypeUtil.isImage(fakeFileToCheatThumbnailsCacheManagerInterface)) {
452451
File file = new File(upload.getLocalPath());
453452
// Thumbnail in Cache?
454453
Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(
@@ -461,7 +460,7 @@ public void onClick(View v) {
461460
final ThumbnailsCacheManager.ThumbnailGenerationTask task =
462461
new ThumbnailsCacheManager.ThumbnailGenerationTask(fileIcon);
463462
if (thumbnail == null) {
464-
if (BitmapUtils.isVideo(file)) {
463+
if (MimeTypeUtil.isVideo(file)) {
465464
thumbnail = ThumbnailsCacheManager.mDefaultVideo;
466465
} else {
467466
thumbnail = ThumbnailsCacheManager.mDefaultImg;
@@ -484,7 +483,7 @@ public void onClick(View v) {
484483
.getColor(R.color.background_color));
485484
}
486485
} else {
487-
fileIcon.setImageResource(MimetypeIconUtil.getFileTypeIconId(
486+
fileIcon.setImageResource(MimeTypeUtil.getFileTypeIconId(
488487
upload.getMimeType(),
489488
fileName
490489
));

0 commit comments

Comments
 (0)