use of com.amaze.filemanager.fragments.MainFragment in project AmazeFileManager by TeamAmaze.
the class MainActivity method onNewIntent.
@Override
public void onNewIntent(Intent i) {
intent = i;
path = i.getStringExtra("path");
if (path != null) {
if (new File(path).isDirectory()) {
MainFragment ma = getCurrentMainFragment();
if (ma != null) {
ma.loadlist(path, false, OpenMode.FILE);
} else
goToMain(path);
} else
FileUtils.openFile(new File(path), mainActivity, getPrefs());
} else if (i.getStringArrayListExtra(TAG_INTENT_FILTER_FAILED_OPS) != null) {
ArrayList<HybridFileParcelable> failedOps = i.getParcelableArrayListExtra(TAG_INTENT_FILTER_FAILED_OPS);
if (failedOps != null) {
mainActivityHelper.showFailedOperationDialog(failedOps, this);
}
} else if (i.getCategories() != null && i.getCategories().contains(CLOUD_AUTHENTICATOR_GDRIVE)) {
// we used an external authenticator instead of APIs. Probably for Google Drive
CloudRail.setAuthenticationResponse(intent);
} else if ((openProcesses = i.getBooleanExtra(KEY_INTENT_PROCESS_VIEWER, false))) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content_frame, new ProcessViewerFragment(), KEY_INTENT_PROCESS_VIEWER);
// transaction.addToBackStack(null);
drawer.setSomethingSelected(true);
openProcesses = false;
// title.setText(utils.getString(con, R.string.process_viewer));
// Commit the transaction
transaction.commitAllowingStateLoss();
supportInvalidateOptionsMenu();
} else if (intent.getAction() != null) {
checkForExternalIntent(intent);
if (SDK_INT >= Build.VERSION_CODES.KITKAT) {
if (intent.getAction().equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)) {
if (getPrefs().getString(KEY_PREF_OTG, null) == null) {
getPrefs().edit().putString(KEY_PREF_OTG, VALUE_PREF_OTG_NULL).apply();
drawer.refreshDrawer();
}
} else if (intent.getAction().equals(UsbManager.ACTION_USB_DEVICE_DETACHED)) {
getPrefs().edit().putString(KEY_PREF_OTG, null).apply();
drawer.refreshDrawer();
}
}
}
}
use of com.amaze.filemanager.fragments.MainFragment in project AmazeFileManager by TeamAmaze.
the class FileHandler method handleMessage.
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
MainFragment main = mainFragment.get();
String path = (String) msg.obj;
switch(msg.what) {
case CustomFileObserver.GOBACK:
main.goBack();
break;
case CustomFileObserver.NEW_ITEM:
HybridFile fileCreated = new HybridFile(main.openMode, main.getCurrentPath() + "/" + path);
main.getElementsList().add(fileCreated.generateLayoutElement(useThumbs));
break;
case CustomFileObserver.DELETED_ITEM:
for (int i = 0; i < main.getElementsList().size(); i++) {
File currentFile = new File(main.getElementsList().get(i).desc);
if (currentFile.getName().equals(path)) {
main.getElementsList().remove(i);
break;
}
}
break;
default:
// Pass along other messages from the UI
super.handleMessage(msg);
return;
}
if (listView.getVisibility() == View.VISIBLE) {
if (main.getElementsList().size() == 0) {
// no item left in list, recreate views
main.reloadListElements(true, main.results, !main.IS_LIST);
} else {
// we already have some elements in list view, invalidate the adapter
((RecyclerAdapter) listView.getAdapter()).setItems(listView, main.getElementsList());
}
} else {
// there was no list view, means the directory was empty
main.loadlist(main.getCurrentPath(), true, main.openMode);
}
main.computeScroll();
}
use of com.amaze.filemanager.fragments.MainFragment in project AmazeFileManager by TeamAmaze.
the class MainActivity method onPrepareOptionsMenu.
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem s = menu.findItem(R.id.view);
MenuItem search = menu.findItem(R.id.search);
MenuItem paste = menu.findItem(R.id.paste);
Fragment fragment = getFragmentAtFrame();
if (fragment instanceof TabFragment) {
appbar.setTitle(R.string.appbar_name);
if (getBoolean(PREFERENCE_VIEW)) {
s.setTitle(getResources().getString(R.string.gridview));
} else {
s.setTitle(getResources().getString(R.string.listview));
}
try {
MainFragment ma = getCurrentMainFragment();
if (ma.IS_LIST)
s.setTitle(R.string.gridview);
else
s.setTitle(R.string.listview);
appbar.getBottomBar().updatePath(ma.getCurrentPath(), ma.results, MainActivityHelper.SEARCH_TEXT, ma.openMode, ma.folder_count, ma.file_count, ma);
} catch (Exception e) {
}
appbar.getBottomBar().setClickListener();
invalidatePasteButton(paste);
search.setVisible(true);
if (indicator_layout != null)
indicator_layout.setVisibility(View.VISIBLE);
menu.findItem(R.id.search).setVisible(true);
menu.findItem(R.id.home).setVisible(true);
menu.findItem(R.id.history).setVisible(true);
menu.findItem(R.id.sethome).setVisible(true);
menu.findItem(R.id.sort).setVisible(true);
if (getBoolean(PREFERENCE_SHOW_HIDDENFILES))
menu.findItem(R.id.hiddenitems).setVisible(true);
menu.findItem(R.id.view).setVisible(true);
menu.findItem(R.id.extract).setVisible(false);
invalidatePasteButton(menu.findItem(R.id.paste));
findViewById(R.id.buttonbarframe).setVisibility(View.VISIBLE);
} else if (fragment instanceof AppsListFragment || fragment instanceof ProcessViewerFragment || fragment instanceof FTPServerFragment) {
appBarLayout.setExpanded(true);
menu.findItem(R.id.sethome).setVisible(false);
if (indicator_layout != null)
indicator_layout.setVisibility(View.GONE);
findViewById(R.id.buttonbarframe).setVisibility(View.GONE);
menu.findItem(R.id.search).setVisible(false);
menu.findItem(R.id.home).setVisible(false);
menu.findItem(R.id.history).setVisible(false);
menu.findItem(R.id.extract).setVisible(false);
if (fragment instanceof ProcessViewerFragment) {
menu.findItem(R.id.sort).setVisible(false);
} else {
menu.findItem(R.id.dsort).setVisible(false);
menu.findItem(R.id.sortby).setVisible(false);
}
menu.findItem(R.id.hiddenitems).setVisible(false);
menu.findItem(R.id.view).setVisible(false);
menu.findItem(R.id.paste).setVisible(false);
} else if (fragment instanceof CompressedExplorerFragment) {
appbar.setTitle(R.string.appbar_name);
menu.findItem(R.id.sethome).setVisible(false);
if (indicator_layout != null)
indicator_layout.setVisibility(View.GONE);
getAppbar().getBottomBar().resetClickListener();
menu.findItem(R.id.search).setVisible(false);
menu.findItem(R.id.home).setVisible(false);
menu.findItem(R.id.history).setVisible(false);
menu.findItem(R.id.sort).setVisible(false);
menu.findItem(R.id.hiddenitems).setVisible(false);
menu.findItem(R.id.view).setVisible(false);
menu.findItem(R.id.paste).setVisible(false);
menu.findItem(R.id.extract).setVisible(true);
}
return super.onPrepareOptionsMenu(menu);
}
use of com.amaze.filemanager.fragments.MainFragment in project AmazeFileManager by TeamAmaze.
the class MainActivity method onCreate.
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initialisePreferences();
initializeInteractiveShell();
dataUtils.registerOnDataChangedListener(this);
CustomSshJConfig.init();
AppConfig.setActivityContext(con);
setContentView(R.layout.main_toolbar);
appbar = new AppBar(this, getPrefs(), queue -> {
if (!queue.isEmpty()) {
mainActivityHelper.search(getPrefs(), queue);
}
});
initialiseViews();
tabHandler = new TabHandler(this);
utilsHandler = AppConfig.getInstance().getUtilsHandler();
cloudHandler = new CloudHandler(this);
mainActivityHelper = new MainActivityHelper(this);
// TODO: 7/12/2017 not init when actionIntent != null
initialiseFab();
if (CloudSheetFragment.isCloudProviderAvailable(this)) {
getSupportLoaderManager().initLoader(REQUEST_CODE_CLOUD_LIST_KEYS, null, this);
}
path = getIntent().getStringExtra("path");
openProcesses = getIntent().getBooleanExtra(KEY_INTENT_PROCESS_VIEWER, false);
intent = getIntent();
if (intent.getStringArrayListExtra(TAG_INTENT_FILTER_FAILED_OPS) != null) {
ArrayList<HybridFileParcelable> failedOps = intent.getParcelableArrayListExtra(TAG_INTENT_FILTER_FAILED_OPS);
if (failedOps != null) {
mainActivityHelper.showFailedOperationDialog(failedOps, this);
}
}
checkForExternalIntent(intent);
if (savedInstanceState != null) {
drawer.setSomethingSelected(savedInstanceState.getBoolean(KEY_DRAWER_SELECTED));
}
// setting window background color instead of each item, in order to reduce pixel overdraw
if (getAppTheme().equals(AppTheme.LIGHT)) {
/*if(Main.IS_LIST)
getWindow().setBackgroundDrawableResource(android.R.color.white);
else
getWindow().setBackgroundDrawableResource(R.color.grid_background_light);
*/
getWindow().setBackgroundDrawableResource(android.R.color.white);
} else if (getAppTheme().equals(AppTheme.BLACK)) {
getWindow().setBackgroundDrawableResource(android.R.color.black);
} else {
getWindow().setBackgroundDrawableResource(R.color.holo_dark_background);
}
/*findViewById(R.id.drawer_buttton).setOnClickListener(new ImageView.OnClickListener() {
@Override
public void onClick(View view) {
if (mDrawerLayout.isOpen(mDrawerLinear)) {
mDrawerLayout.close(mDrawerLinear);
} else mDrawerLayout.openDrawer(mDrawerLinear);
}
});*/
drawer.setDrawerIndicatorEnabled();
// recents header color implementation
if (SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ActivityManager.TaskDescription taskDescription = new ActivityManager.TaskDescription("Amaze", ((BitmapDrawable) getResources().getDrawable(R.mipmap.ic_launcher)).getBitmap(), getColorPreference().getColor(ColorUsage.getPrimary(MainActivity.currentTab)));
setTaskDescription(taskDescription);
}
if (!getBoolean(PREFERENCE_BOOKMARKS_ADDED)) {
utilsHandler.addCommonBookmarks();
getPrefs().edit().putBoolean(PREFERENCE_BOOKMARKS_ADDED, true).commit();
}
AppConfig.runInBackground(new AppConfig.CustomAsyncCallbacks() {
@Override
public <E> E doInBackground() {
dataUtils.setHiddenFiles(utilsHandler.getHiddenFilesConcurrentRadixTree());
dataUtils.setHistory(utilsHandler.getHistoryLinkedList());
dataUtils.setGridfiles(utilsHandler.getGridViewList());
dataUtils.setListfiles(utilsHandler.getListViewList());
dataUtils.setBooks(utilsHandler.getBookmarksList());
ArrayList<String[]> servers = new ArrayList<String[]>();
servers.addAll(utilsHandler.getSmbList());
servers.addAll(utilsHandler.getSftpList());
dataUtils.setServers(servers);
return null;
}
@Override
public Void onPostExecute(Object result) {
drawer.refreshDrawer();
if (savedInstanceState == null) {
if (openProcesses) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content_frame, new ProcessViewerFragment(), KEY_INTENT_PROCESS_VIEWER);
// transaction.addToBackStack(null);
drawer.setSomethingSelected(true);
openProcesses = false;
// title.setText(utils.getString(con, R.string.process_viewer));
// Commit the transaction
transaction.commit();
supportInvalidateOptionsMenu();
} else if (intent.getAction() != null && intent.getAction().equals(TileService.ACTION_QS_TILE_PREFERENCES)) {
// tile preferences, open ftp fragment
FragmentTransaction transaction2 = getSupportFragmentManager().beginTransaction();
transaction2.replace(R.id.content_frame, new FTPServerFragment());
appBarLayout.animate().translationY(0).setInterpolator(new DecelerateInterpolator(2)).start();
drawer.setSomethingSelected(true);
drawer.deselectEverything();
transaction2.commit();
} else {
if (path != null && path.length() > 0) {
HybridFile file = new HybridFile(OpenMode.UNKNOWN, path);
file.generateMode(MainActivity.this);
if (file.isDirectory(MainActivity.this))
goToMain(path);
else {
goToMain(null);
FileUtils.openFile(new File(path), MainActivity.this, getPrefs());
}
} else {
goToMain(null);
}
}
} else {
pasteHelper = savedInstanceState.getParcelable(PASTEHELPER_BUNDLE);
oppathe = savedInstanceState.getString(KEY_OPERATION_PATH);
oppathe1 = savedInstanceState.getString(KEY_OPERATED_ON_PATH);
oparrayList = savedInstanceState.getParcelableArrayList(KEY_OPERATIONS_PATH_LIST);
operation = savedInstanceState.getInt(KEY_OPERATION);
// mainFragment = (Main) savedInstanceState.getParcelable("main_fragment");
}
return null;
}
@Override
public Void onPreExecute() {
return null;
}
@Override
public Void publishResult(Object... result) {
return null;
}
@Override
public <T> T[] params() {
return null;
}
});
}
use of com.amaze.filemanager.fragments.MainFragment in project AmazeFileManager by TeamAmaze.
the class MainActivity method onActivityResult.
protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
if (requestCode == Drawer.image_selector_request_code) {
drawer.onActivityResult(requestCode, responseCode, intent);
} else if (requestCode == 3) {
Uri treeUri;
if (responseCode == Activity.RESULT_OK) {
// Get Uri from Storage Access Framework.
treeUri = intent.getData();
// Persist URI - this is required for verification of writability.
if (treeUri != null)
getPrefs().edit().putString(PreferencesConstants.PREFERENCE_URI, treeUri.toString()).commit();
} else {
/* DialogUtil.displayError(getActivity(), R.string.message_dialog_cannot_write_to_folder_saf, false, currentFolder);
||!FileUtil.isWritableNormalOrSaf(currentFolder)*/
return;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getContentResolver().takePersistableUriPermission(treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
}
switch(operation) {
case // deletion
DataUtils.DELETE:
new DeleteTask(null, mainActivity).execute((oparrayList));
break;
case // copying
DataUtils.COPY:
// legacy compatibility
if (oparrayList != null && oparrayList.size() != 0) {
oparrayListList = new ArrayList<>();
oparrayListList.add(oparrayList);
oparrayList = null;
oppatheList = new ArrayList<>();
oppatheList.add(oppathe);
oppathe = "";
}
for (int i = 0; i < oparrayListList.size(); i++) {
ArrayList<HybridFileParcelable> sourceList = oparrayListList.get(i);
Intent intent1 = new Intent(con, CopyService.class);
intent1.putExtra(CopyService.TAG_COPY_SOURCES, sourceList);
intent1.putExtra(CopyService.TAG_COPY_TARGET, oppatheList.get(i));
ServiceWatcherUtil.runService(this, intent1);
}
break;
case // moving
DataUtils.MOVE:
// legacy compatibility
if (oparrayList != null && oparrayList.size() != 0) {
oparrayListList = new ArrayList<>();
oparrayListList.add(oparrayList);
oparrayList = null;
oppatheList = new ArrayList<>();
oppatheList.add(oppathe);
oppathe = "";
}
new MoveFiles(oparrayListList, getCurrentMainFragment(), getCurrentMainFragment().getActivity(), OpenMode.FILE).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, oppatheList);
break;
case // mkdir
DataUtils.NEW_FOLDER:
mainActivityHelper.mkDir(RootHelper.generateBaseFile(new File(oppathe), true), getCurrentMainFragment());
break;
case DataUtils.RENAME:
MainFragment ma = getCurrentMainFragment();
mainActivityHelper.rename(ma.openMode, (oppathe), (oppathe1), mainActivity, isRootExplorer());
ma.updateList();
break;
case DataUtils.NEW_FILE:
mainActivityHelper.mkFile(new HybridFile(OpenMode.FILE, oppathe), getCurrentMainFragment());
break;
case DataUtils.EXTRACT:
mainActivityHelper.extractFile(new File(oppathe));
break;
case DataUtils.COMPRESS:
mainActivityHelper.compressFiles(new File(oppathe), oparrayList);
}
operation = -1;
} else if (requestCode == REQUEST_CODE_SAF && responseCode == Activity.RESULT_OK) {
// otg access
getPrefs().edit().putString(KEY_PREF_OTG, intent.getData().toString()).apply();
drawer.closeIfNotLocked();
if (drawer.isLocked())
drawer.onDrawerClosed();
} else if (requestCode == REQUEST_CODE_SAF && responseCode != Activity.RESULT_OK) {
// otg access not provided
drawer.resetPendingPath();
}
}
Aggregations