X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=android_pandora.git;a=blobdiff_plain;f=apps%2Foi-filemanager%2FFileManager%2Fsrc%2Forg%2Fopenintents%2Ffilemanager%2Futil%2FCompressManager.java;fp=apps%2Foi-filemanager%2FFileManager%2Fsrc%2Forg%2Fopenintents%2Ffilemanager%2Futil%2FCompressManager.java;h=0000000000000000000000000000000000000000;hp=d18f8637c2b3b6e84dc374bc120cb561703e502a;hb=86591c820f761cc27e31f78790c5a447b8411a33;hpb=ebcf0cf7399e3ec5ba51c5a904553fbcc55725e5 diff --git a/apps/oi-filemanager/FileManager/src/org/openintents/filemanager/util/CompressManager.java b/apps/oi-filemanager/FileManager/src/org/openintents/filemanager/util/CompressManager.java deleted file mode 100644 index d18f863..0000000 --- a/apps/oi-filemanager/FileManager/src/org/openintents/filemanager/util/CompressManager.java +++ /dev/null @@ -1,147 +0,0 @@ -package org.openintents.filemanager.util; - -import android.app.ProgressDialog; -import android.content.Intent; -import android.os.AsyncTask; -import android.util.Log; -import android.widget.Toast; -import org.openintents.filemanager.FileManagerActivity; -import org.openintents.filemanager.R; -import org.openintents.intents.FileManagerIntents; - -import java.io.*; -import java.util.ArrayList; -import java.util.List; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - -public class CompressManager { - /** - * TAG for log messages. - */ - static final String TAG = "CompressManager"; - - private static final int BUFFER_SIZE = 1024; - private FileManagerActivity activity; - private ProgressDialog progressDialog; - private int fileCount; - private String fileOut; - - public CompressManager(FileManagerActivity activity) { - this.activity = activity; - } - - public void compress(File f, String out) { - List list = new ArrayList(); - list.add(f); - compress(list, out); - } - - public void compress(List list, String out) { - if (list.isEmpty()){ - Log.v(TAG, "couldn't compress empty file list"); - return; - } - this.fileOut = list.get(0).getParent()+File.separator+out; - fileCount=0; - for (File f: list){ - fileCount += FileUtils.getFileCount(f); - } - new CompressTask().execute(list); - } - - private class CompressTask extends AsyncTask { - private static final int success = 0; - private static final int error = 1; - private ZipOutputStream zos; - - /** - * count of compressed file to update the progress bar - */ - private int isCompressed = 0; - - /** - * Recursively compress file or directory - * @returns 0 if successful, error value otherwise. - */ - private void compressFile(File file, String path) throws IOException { - if (!file.isDirectory()){ - byte[] buf = new byte[BUFFER_SIZE]; - int len; - FileInputStream in = new FileInputStream(file); - zos.putNextEntry(new ZipEntry(path + "/" + file.getName())); - while ((len = in.read(buf)) > 0) { - zos.write(buf, 0, len); - } - in.close(); - return; - } - if (file.list() == null){ - return; - } - for (String fileName: file.list()){ - File f = new File(file.getAbsolutePath()+File.separator+fileName); - compressFile(f, path + File.separator + file.getName()); - isCompressed++; - progressDialog.setProgress((isCompressed * 100)/ fileCount); - } - } - - @Override - protected void onPreExecute() { - FileOutputStream out = null; - progressDialog = new ProgressDialog(activity); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setMessage(activity.getResources().getString(R.string.compressing)); - progressDialog.show(); - progressDialog.setProgress(0); - try { - out = new FileOutputStream(new File(fileOut)); - zos = new ZipOutputStream(new BufferedOutputStream(out)); - } catch (FileNotFoundException e) { - Log.e(TAG, "error while creating ZipOutputStream"); - } - } - - @Override - protected Integer doInBackground(Object... params) { - if (zos == null){ - return error; - } - List list = (List) params[0]; - for (File file:list){ - try { - compressFile(file, ""); - } catch (IOException e) { - Log.e(TAG, "Error while compressing", e); - return error; - } - } - return success; - } - - @Override - protected void onPostExecute(Integer result) { - try { - zos.flush(); - zos.close(); - } catch (IOException e) { - Log.e(TAG, "error while closing zos", e); - } - progressDialog.cancel(); - if (result == error){ - Toast.makeText(activity, R.string.compressing_error, Toast.LENGTH_SHORT).show(); - } else if (result == success){ - Toast.makeText(activity, R.string.compressing_success, Toast.LENGTH_SHORT).show(); - } - - if (activity.getIntent().getAction().equals(FileManagerIntents.ACTION_MULTI_SELECT)){ - Intent intent = activity.getIntent(); - activity.setResult(activity.RESULT_OK, intent); - activity.finish(); - } else { - activity.refreshList(); - } - } - } -}