Back to project page MaterialManager.
The source code is released under:
There is no license, someone decided to pretty much republish Cabinet with no credit so I?m taking away the license altogether.
If you think the Android project MaterialManager listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.afollestad.cabinet.cab; // w ww . jav a 2 s.c om import android.app.ProgressDialog; import android.support.v7.view.ActionMode; import android.text.Html; import android.text.Spanned; import android.view.MenuItem; import android.widget.Toast; import com.afollestad.cabinet.R; import com.afollestad.cabinet.cab.base.BaseFileCab; import com.afollestad.cabinet.file.CloudFile; import com.afollestad.cabinet.file.LocalFile; import com.afollestad.cabinet.file.base.File; import com.afollestad.cabinet.sftp.SftpClient; import com.afollestad.cabinet.utils.Utils; public class CutCab extends BaseFileCab { public CutCab() { super(); } @Override public Spanned getTitle() { if (getFiles().size() == 1) return Html.fromHtml(getContext().getString(R.string.cut_x, getFiles().get(0).getName())); return Html.fromHtml(getContext().getString(R.string.cut_xfiles, getFiles().size())); } private transient boolean shouldCancel; private transient int cutCount; private transient int cutTotal; @Override public boolean canShowFab() { return true; } @Override public void paste() { Utils.lockOrientation(getContext()); final ProgressDialog mDialog = new ProgressDialog(getContext()); mDialog.setMessage(getContext().getString(R.string.copying)); if (getFiles().size() > 1) { mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); mDialog.setMax(getFiles().size()); } else mDialog.setIndeterminate(true); mDialog.setCancelable(false); mDialog.show(); cutCount = 0; cutTotal = getFiles().size(); new Thread(new Runnable() { @Override public void run() { for (final File file : getFiles()) { if (shouldCancel) break; final File newFile = getDirectory().isRemote() ? new CloudFile(getContext(), (CloudFile) getDirectory(), file.getName(), file.isDirectory()) : new LocalFile(getContext(), getDirectory(), file.getName()); getContext().runOnUiThread(new Runnable() { @Override public void run() { file.rename(newFile, new SftpClient.FileCallback() { @Override public void onComplete(File file) { getFragment().getAdapter().add(file); getFragment().setListShown(true); if (getFiles().size() > 0) mDialog.setProgress(mDialog.getProgress() + 1); cutCount++; if (cutCount == cutTotal) { Utils.unlockOrientation(getContext()); if (getDirectory().isRemote()) { Toast.makeText(getContext(), getContext().getString(R.string.uploaded_to, getDirectory().getPath()), Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getContext(), getContext().getString(R.string.moved_to, newFile.getPath()), Toast.LENGTH_SHORT).show(); } } } @Override public void onError(Exception e) { Utils.unlockOrientation(getContext()); shouldCancel = true; } }); } }); } getContext().runOnUiThread(new Runnable() { @Override public void run() { mDialog.dismiss(); finish(); } }); } }).start(); } @Override public PasteMode canPaste() { return isActive() ? PasteMode.ENABLED : PasteMode.DISABLED; } @Override public boolean canPasteIntoSameDir() { return false; } @Override public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) { return false; } }