summaryrefslogtreecommitdiffstats
path: root/java/FileUtil.java
diff options
context:
space:
mode:
authorxC3FFF0E <78732474+xC3FFF0E@users.noreply.github.com>2021-02-08 18:54:16 +0100
committerGitHub <noreply@github.com>2021-02-08 18:54:16 +0100
commitff195ef6bc9bb6408e33b19c85959381909af8de (patch)
tree555a872c2abb1c93b1d98140e165cb10e0793fe0 /java/FileUtil.java
parentDelete AndroidManifest.xml (diff)
downloadxManager-ff195ef6bc9bb6408e33b19c85959381909af8de.tar
xManager-ff195ef6bc9bb6408e33b19c85959381909af8de.tar.gz
xManager-ff195ef6bc9bb6408e33b19c85959381909af8de.tar.bz2
xManager-ff195ef6bc9bb6408e33b19c85959381909af8de.tar.lz
xManager-ff195ef6bc9bb6408e33b19c85959381909af8de.tar.xz
xManager-ff195ef6bc9bb6408e33b19c85959381909af8de.tar.zst
xManager-ff195ef6bc9bb6408e33b19c85959381909af8de.zip
Diffstat (limited to 'java/FileUtil.java')
-rw-r--r--java/FileUtil.java604
1 files changed, 0 insertions, 604 deletions
diff --git a/java/FileUtil.java b/java/FileUtil.java
deleted file mode 100644
index d995925..0000000
--- a/java/FileUtil.java
+++ /dev/null
@@ -1,604 +0,0 @@
-package com.xc3fff0e.xmanager;
-
-import android.content.ContentResolver;
-import android.content.ContentUris;
-import android.content.Context;
-import android.database.Cursor;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
-import android.graphics.ColorFilter;
-import android.graphics.ColorMatrix;
-import android.graphics.ColorMatrixColorFilter;
-import android.graphics.LightingColorFilter;
-import android.graphics.Matrix;
-import android.graphics.Paint;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffXfermode;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.media.ExifInterface;
-import android.net.Uri;
-import android.os.Environment;
-import android.provider.DocumentsContract;
-import android.provider.MediaStore;
-import android.text.TextUtils;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.net.URLDecoder;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-
-public class FileUtil {
-
-private static void createNewFile(String path) {
-int lastSep = path.lastIndexOf(File.separator);
-if (lastSep > 0) {
-String dirPath = path.substring(0, lastSep);
-makeDir(dirPath);
-}
-
-File file = new File(path);
-
-try {
-if (!file.exists())
-file.createNewFile();
-} catch (IOException e) {
-e.printStackTrace();
-}
-}
-
-public static String readFile(String path) {
-createNewFile(path);
-
-StringBuilder sb = new StringBuilder();
-FileReader fr = null;
-try {
-fr = new FileReader(new File(path));
-
-char[] buff = new char[1024];
-int length = 0;
-
-while ((length = fr.read(buff)) > 0) {
-sb.append(new String(buff, 0, length));
-}
-} catch (IOException e) {
-e.printStackTrace();
-} finally {
-if (fr != null) {
-try {
-fr.close();
-} catch (Exception e) {
-e.printStackTrace();
-}
-}
-}
-
-return sb.toString();
-}
-
-public static void writeFile(String path, String str) {
-createNewFile(path);
-FileWriter fileWriter = null;
-
-try {
-fileWriter = new FileWriter(new File(path), false);
-fileWriter.write(str);
-fileWriter.flush();
-} catch (IOException e) {
-e.printStackTrace();
-} finally {
-try {
-if (fileWriter != null)
-fileWriter.close();
-} catch (IOException e) {
-e.printStackTrace();
-}
-}
-}
-
-public static void copyFile(String sourcePath, String destPath) {
-if (!isExistFile(sourcePath)) return;
-createNewFile(destPath);
-
-FileInputStream fis = null;
-FileOutputStream fos = null;
-
-try {
-fis = new FileInputStream(sourcePath);
-fos = new FileOutputStream(destPath, false);
-
-byte[] buff = new byte[1024];
-int length = 0;
-
-while ((length = fis.read(buff)) > 0) {
-fos.write(buff, 0, length);
-}
-} catch (IOException e) {
-e.printStackTrace();
-} finally {
-if (fis != null) {
-try {
-fis.close();
-} catch (IOException e) {
-e.printStackTrace();
-}
-}
-if (fos != null) {
-try {
-fos.close();
-} catch (IOException e) {
-e.printStackTrace();
-}
-}
-}
-}
-
-public static void moveFile(String sourcePath, String destPath) {
-copyFile(sourcePath, destPath);
-deleteFile(sourcePath);
-}
-
-public static void deleteFile(String path) {
-File file = new File(path);
-
-if (!file.exists()) return;
-
-if (file.isFile()) {
-file.delete();
-return;
-}
-
-File[] fileArr = file.listFiles();
-
-if (fileArr != null) {
-for (File subFile : fileArr) {
-if (subFile.isDirectory()) {
-deleteFile(subFile.getAbsolutePath());
-}
-
-if (subFile.isFile()) {
-subFile.delete();
-}
-}
-}
-
-file.delete();
-}
-
-public static boolean isExistFile(String path) {
-File file = new File(path);
-return file.exists();
-}
-
-public static void makeDir(String path) {
-if (!isExistFile(path)) {
-File file = new File(path);
-file.mkdirs();
-}
-}
-
-public static void listDir(String path, ArrayList<String> list) {
-File dir = new File(path);
-if (!dir.exists() || dir.isFile()) return;
-
-File[] listFiles = dir.listFiles();
-if (listFiles == null || listFiles.length <= 0) return;
-
-if (list == null) return;
-list.clear();
-for (File file : listFiles) {
-list.add(file.getAbsolutePath());
-}
-}
-
-public static boolean isDirectory(String path) {
-if (!isExistFile(path)) return false;
-return new File(path).isDirectory();
-}
-
-public static boolean isFile(String path) {
-if (!isExistFile(path)) return false;
-return new File(path).isFile();
-}
-
-public static long getFileLength(String path) {
-if (!isExistFile(path)) return 0;
-return new File(path).length();
-}
-
-public static String getExternalStorageDir() {
-return Environment.getExternalStorageDirectory().getAbsolutePath();
-}
-
-public static String getPackageDataDir(Context context) {
-return context.getExternalFilesDir(null).getAbsolutePath();
-}
-
-public static String getPublicDir(String type) {
-return Environment.getExternalStoragePublicDirectory(type).getAbsolutePath();
-}
-
-public static String convertUriToFilePath(final Context context, final Uri uri) {
-String path = null;
-if (DocumentsContract.isDocumentUri(context, uri)) {
-if (isExternalStorageDocument(uri)) {
-final String docId = DocumentsContract.getDocumentId(uri);
-final String[] split = docId.split(":");
-final String type = split[0];
-
-if ("primary".equalsIgnoreCase(type)) {
-path = Environment.getExternalStorageDirectory() + "/" + split[1];
-}
-} else if (isDownloadsDocument(uri)) {
-final String id = DocumentsContract.getDocumentId(uri);
-
-if (!TextUtils.isEmpty(id)) {
-if (id.startsWith("raw:")) {
-return id.replaceFirst("raw:", "");
-}
-}
-
-final Uri contentUri = ContentUris
-.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
-
-path = getDataColumn(context, contentUri, null, null);
-} else if (isMediaDocument(uri)) {
-final String docId = DocumentsContract.getDocumentId(uri);
-final String[] split = docId.split(":");
-final String type = split[0];
-
-Uri contentUri = null;
-if ("image".equals(type)) {
-contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
-} else if ("video".equals(type)) {
-contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
-} else if ("audio".equals(type)) {
-contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
-}
-
-final String selection = MediaStore.Audio.Media._ID + "=?";
-final String[] selectionArgs = new String[]{
-split[1]
-};
-
-path = getDataColumn(context, contentUri, selection, selectionArgs);
-}
-} else if (ContentResolver.SCHEME_CONTENT.equalsIgnoreCase(uri.getScheme())) {
-path = getDataColumn(context, uri, null, null);
-} else if (ContentResolver.SCHEME_FILE.equalsIgnoreCase(uri.getScheme())) {
-path = uri.getPath();
-}
-
-if (path != null) {
-try {
-return URLDecoder.decode(path, "UTF-8");
-}catch(Exception e){
-return null;
-}
-}
-return null;
-}
-
-private static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) {
-Cursor cursor = null;
-
-final String column = MediaStore.Images.Media.DATA;
-final String[] projection = {
-column
-};
-
-try {
-cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null);
-if (cursor != null && cursor.moveToFirst()) {
-final int column_index = cursor.getColumnIndexOrThrow(column);
-return cursor.getString(column_index);
-}
-} catch (Exception e) {
-
-} finally {
-if (cursor != null) {
-cursor.close();
-}
-}
-return null;
-}
-
-
-private static boolean isExternalStorageDocument(Uri uri) {
-return "com.android.externalstorage.documents".equals(uri.getAuthority());
-}
-
-private static boolean isDownloadsDocument(Uri uri) {
-return "com.android.providers.downloads.documents".equals(uri.getAuthority());
-}
-
-private static boolean isMediaDocument(Uri uri) {
-return "com.android.providers.media.documents".equals(uri.getAuthority());
-}
-
-private static void saveBitmap(Bitmap bitmap, String destPath) {
-FileOutputStream out = null;
-FileUtil.createNewFile(destPath);
-try {
-out = new FileOutputStream(new File(destPath));
-bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
-} catch (Exception e) {
-e.printStackTrace();
-} finally {
-try {
-if (out != null) {
-out.close();
-}
-} catch (IOException e) {
-e.printStackTrace();
-}
-}
-}
-
-public static Bitmap getScaledBitmap(String path, int max) {
-Bitmap src = BitmapFactory.decodeFile(path);
-
-int width = src.getWidth();
-int height = src.getHeight();
-float rate = 0.0f;
-
-if (width > height) {
-rate = max / (float) width;
-height = (int) (height * rate);
-width = max;
-} else {
-rate = max / (float) height;
-width = (int) (width * rate);
-height = max;
-}
-
-return Bitmap.createScaledBitmap(src, width, height, true);
-}
-
-public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
-final int width = options.outWidth;
-final int height = options.outHeight;
-int inSampleSize = 1;
-
-if (height > reqHeight || width > reqWidth) {
-final int halfHeight = height / 2;
-final int halfWidth = width / 2;
-
-while ((halfHeight / inSampleSize) >= reqHeight && (halfWidth / inSampleSize) >= reqWidth) {
-inSampleSize *= 2;
-}
-}
-
-return inSampleSize;
-}
-
-public static Bitmap decodeSampleBitmapFromPath(String path, int reqWidth, int reqHeight) {
-final BitmapFactory.Options options = new BitmapFactory.Options();
-options.inJustDecodeBounds = true;
-BitmapFactory.decodeFile(path, options);
-
-options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
-
-options.inJustDecodeBounds = false;
-return BitmapFactory.decodeFile(path, options);
-}
-
-public static void resizeBitmapFileRetainRatio(String fromPath, String destPath, int max) {
-if (!isExistFile(fromPath)) return;
-Bitmap bitmap = getScaledBitmap(fromPath, max);
-saveBitmap(bitmap, destPath);
-}
-
-public static void resizeBitmapFileToSquare(String fromPath, String destPath, int max) {
-if (!isExistFile(fromPath)) return;
-Bitmap src = BitmapFactory.decodeFile(fromPath);
-Bitmap bitmap = Bitmap.createScaledBitmap(src, max, max, true);
-saveBitmap(bitmap, destPath);
-}
-
-public static void resizeBitmapFileToCircle(String fromPath, String destPath) {
-if (!isExistFile(fromPath)) return;
-Bitmap src = BitmapFactory.decodeFile(fromPath);
-Bitmap bitmap = Bitmap.createBitmap(src.getWidth(),
-src.getHeight(), Bitmap.Config.ARGB_8888);
-Canvas canvas = new Canvas(bitmap);
-
-final int color = 0xff424242;
-final Paint paint = new Paint();
-final Rect rect = new Rect(0, 0, src.getWidth(), src.getHeight());
-
-paint.setAntiAlias(true);
-canvas.drawARGB(0, 0, 0, 0);
-paint.setColor(color);
-canvas.drawCircle(src.getWidth() / 2, src.getHeight() / 2,
-src.getWidth() / 2, paint);
-paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
-canvas.drawBitmap(src, rect, rect, paint);
-
-saveBitmap(bitmap, destPath);
-}
-
-public static void resizeBitmapFileWithRoundedBorder(String fromPath, String destPath, int pixels) {
-if (!isExistFile(fromPath)) return;
-Bitmap src = BitmapFactory.decodeFile(fromPath);
-Bitmap bitmap = Bitmap.createBitmap(src.getWidth(), src
-.getHeight(), Bitmap.Config.ARGB_8888);
-Canvas canvas = new Canvas(bitmap);
-
-final int color = 0xff424242;
-final Paint paint = new Paint();
-final Rect rect = new Rect(0, 0, src.getWidth(), src.getHeight());
-final RectF rectF = new RectF(rect);
-final float roundPx = pixels;
-
-paint.setAntiAlias(true);
-canvas.drawARGB(0, 0, 0, 0);
-paint.setColor(color);
-canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
-
-paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
-canvas.drawBitmap(src, rect, rect, paint);
-
-saveBitmap(bitmap, destPath);
-}
-
-public static void cropBitmapFileFromCenter(String fromPath, String destPath, int w, int h) {
-if (!isExistFile(fromPath)) return;
-Bitmap src = BitmapFactory.decodeFile(fromPath);
-
-int width = src.getWidth();
-int height = src.getHeight();
-
-if (width < w && height < h)
-return;
-
-int x = 0;
-int y = 0;
-
-if (width > w)
-x = (width - w) / 2;
-
-if (height > h)
-y = (height - h) / 2;
-
-int cw = w;
-int ch = h;
-
-if (w > width)
-cw = width;
-
-if (h > height)
-ch = height;
-
-Bitmap bitmap = Bitmap.createBitmap(src, x, y, cw, ch);
-saveBitmap(bitmap, destPath);
-}
-
-public static void rotateBitmapFile(String fromPath, String destPath, float angle) {
-if (!isExistFile(fromPath)) return;
-Bitmap src = BitmapFactory.decodeFile(fromPath);
-Matrix matrix = new Matrix();
-matrix.postRotate(angle);
-Bitmap bitmap = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true);
-saveBitmap(bitmap, destPath);
-}
-
-public static void scaleBitmapFile(String fromPath, String destPath, float x, float y) {
-if (!isExistFile(fromPath)) return;
-Bitmap src = BitmapFactory.decodeFile(fromPath);
-Matrix matrix = new Matrix();
-matrix.postScale(x, y);
-
-int w = src.getWidth();
-int h = src.getHeight();
-
-Bitmap bitmap = Bitmap.createBitmap(src, 0, 0, w, h, matrix, true);
-saveBitmap(bitmap, destPath);
-}
-
-public static void skewBitmapFile(String fromPath, String destPath, float x, float y) {
-if (!isExistFile(fromPath)) return;
-Bitmap src = BitmapFactory.decodeFile(fromPath);
-Matrix matrix = new Matrix();
-matrix.postSkew(x, y);
-
-int w = src.getWidth();
-int h = src.getHeight();
-
-Bitmap bitmap = Bitmap.createBitmap(src, 0, 0, w, h, matrix, true);
-saveBitmap(bitmap, destPath);
-}
-
-public static void setBitmapFileColorFilter(String fromPath, String destPath, int color) {
-if (!isExistFile(fromPath)) return;
-Bitmap src = BitmapFactory.decodeFile(fromPath);
-Bitmap bitmap = Bitmap.createBitmap(src, 0, 0,
-src.getWidth() - 1, src.getHeight() - 1);
-Paint p = new Paint();
-ColorFilter filter = new LightingColorFilter(color, 1);
-p.setColorFilter(filter);
-Canvas canvas = new Canvas(bitmap);
-canvas.drawBitmap(bitmap, 0, 0, p);
-saveBitmap(bitmap, destPath);
-}
-
-public static void setBitmapFileBrightness(String fromPath, String destPath, float brightness) {
-if (!isExistFile(fromPath)) return;
-Bitmap src = BitmapFactory.decodeFile(fromPath);
-ColorMatrix cm = new ColorMatrix(new float[]
-{
-1, 0, 0, 0, brightness,
-0, 1, 0, 0, brightness,
-0, 0, 1, 0, brightness,
-0, 0, 0, 1, 0
-});
-
-Bitmap bitmap = Bitmap.createBitmap(src.getWidth(), src.getHeight(), src.getConfig());
-Canvas canvas = new Canvas(bitmap);
-Paint paint = new Paint();
-paint.setColorFilter(new ColorMatrixColorFilter(cm));
-canvas.drawBitmap(src, 0, 0, paint);
-saveBitmap(bitmap, destPath);
-}
-
-public static void setBitmapFileContrast(String fromPath, String destPath, float contrast) {
-if (!isExistFile(fromPath)) return;
-Bitmap src = BitmapFactory.decodeFile(fromPath);
-ColorMatrix cm = new ColorMatrix(new float[]
-{
-contrast, 0, 0, 0, 0,
-0, contrast, 0, 0, 0,
-0, 0, contrast, 0, 0,
-0, 0, 0, 1, 0
-});
-
-Bitmap bitmap = Bitmap.createBitmap(src.getWidth(), src.getHeight(), src.getConfig());
-Canvas canvas = new Canvas(bitmap);
-Paint paint = new Paint();
-paint.setColorFilter(new ColorMatrixColorFilter(cm));
-canvas.drawBitmap(src, 0, 0, paint);
-
-saveBitmap(bitmap, destPath);
-}
-
-public static int getJpegRotate(String filePath) {
-int rotate = 0;
-try {
-ExifInterface exif = new ExifInterface(filePath);
-int iOrientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, -1);
-
-switch (iOrientation) {
-case ExifInterface.ORIENTATION_ROTATE_90:
-rotate = 90;
-break;
-case ExifInterface.ORIENTATION_ROTATE_180:
-rotate = 180;
-break;
-case ExifInterface.ORIENTATION_ROTATE_270:
-rotate = 270;
-break;
-default:
-rotate = 0;
-break;
-}
-}
-catch (IOException e) {
-return 0;
-}
-
-return rotate;
-}
-public static File createNewPictureFile(Context context) {
-SimpleDateFormat date = new SimpleDateFormat("yyyyMMdd_HHmmss");
-String fileName = date.format(new Date()) + ".jpg";
-File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_DCIM).getAbsolutePath() + File.separator + fileName);
-return file;
-}
-} \ No newline at end of file