/** * Method that returns to previous activity. * * @param cancelled Indicates if the activity was cancelled * @param item The fso * @hide */ void back(final boolean cancelled, FileSystemObject item, boolean isChecked) { Intent intent = new Intent(); if (cancelled) { if (SearchActivity.this.mDrawingSearchResultTask != null && SearchActivity.this.mDrawingSearchResultTask.isRunning()) { SearchActivity.this.mDrawingSearchResultTask.cancel(true); } if (this.mRestoreState != null) { intent.putExtra( NavigationActivity.EXTRA_SEARCH_LAST_SEARCH_DATA, (Parcelable) this.mRestoreState); } setResult(RESULT_CANCELED, intent); } else { // Check that the bookmark exists try { FileSystemObject fso = item; if (!isChecked) { fso = CommandHelper.getFileInfo(this, item.getFullPath(), null); } if (fso != null) { if (FileHelper.isDirectory(fso)) { intent.putExtra(NavigationActivity.EXTRA_SEARCH_ENTRY_SELECTION, fso); intent.putExtra( NavigationActivity.EXTRA_SEARCH_LAST_SEARCH_DATA, (Parcelable) createSearchInfo()); setResult(RESULT_OK, intent); } else { // Open the file here, so when focus back to the app, the search activity // its in top of the stack IntentsActionPolicy.openFileSystemObject(this, fso, false, null, null); return; } } else { // The fso not exists, delete the fso from the search try { removeItem(item); } catch (Exception ex) { /** NON BLOCK* */ } } } catch (Exception e) { // Capture the exception ExceptionUtil.translateException(this, e); if (e instanceof NoSuchFileOrDirectory || e instanceof FileNotFoundException) { // The fso not exists, delete the fso from the search try { removeItem(item); } catch (Exception ex) { /** NON BLOCK* */ } } return; } } finish(); }
/** * Method that returns the supported compression modes * * @param ctx The current context * @param fsos The list of file system objects to compress * @return String[] An array with the compression mode labels */ private static String[] getSupportedCompressionModesLabels( Context ctx, List<FileSystemObject> fsos) { String[] labels = ctx.getResources().getStringArray(R.array.compression_modes_labels); if (fsos.size() > 1 || (fsos.size() == 1 && FileHelper.isDirectory(fsos.get(0)))) { // If more that a file is requested, compression is not available // The same applies if the unique item is a folder ArrayList<String> validLabels = new ArrayList<String>(); CompressionMode[] values = CompressionMode.values(); int cc = values.length; for (int i = 0; i < cc; i++) { if (values[i].mArchive) { validLabels.add(labels[i]); } } labels = validLabels.toArray(new String[] {}); } return labels; }