Search in sources :

Example 1 with BookSorter

use of com.amaze.filemanager.utils.BookSorter in project AmazeFileManager by TeamAmaze.

the class Drawer method refreshDrawer.

public void refreshDrawer() {
    Menu menu = navView.getMenu();
    menu.clear();
    actionViewStateManager.deselectCurrentActionView();
    int order = 0;
    ArrayList<String> storageDirectories = mainActivity.getStorageDirectories();
    storage_count = 0;
    for (String file : storageDirectories) {
        File f = new File(file);
        String name;
        @DrawableRes int icon1 = R.drawable.ic_sd_storage_white_24dp;
        if ("/storage/emulated/legacy".equals(file) || "/storage/emulated/0".equals(file)) {
            name = resources.getString(R.string.storage);
        } else if ("/storage/sdcard1".equals(file)) {
            name = resources.getString(R.string.extstorage);
        } else if ("/".equals(file)) {
            name = resources.getString(R.string.rootdirectory);
            icon1 = R.drawable.ic_drawer_root_white;
        } else if (file.contains(OTGUtil.PREFIX_OTG)) {
            name = "OTG";
            icon1 = R.drawable.ic_usb_white_24dp;
        } else
            name = f.getName();
        if (!f.isDirectory() || f.canExecute()) {
            addNewItem(menu, STORAGES_GROUP, order++, name, new MenuMetadata(file), icon1, R.drawable.ic_show_chart_black_24dp);
            if (storage_count == 0)
                firstPath = file;
            else if (storage_count == 1)
                secondPath = file;
            storage_count++;
        }
    }
    dataUtils.setStorages(storageDirectories);
    if (dataUtils.getServers().size() > 0) {
        Collections.sort(dataUtils.getServers(), new BookSorter());
        synchronized (dataUtils.getServers()) {
            for (String[] file : dataUtils.getServers()) {
                addNewItem(menu, SERVERS_GROUP, order++, file[0], new MenuMetadata(file[1]), R.drawable.ic_settings_remote_white_24dp, R.drawable.ic_edit_24dp);
            }
        }
    }
    ArrayList<String[]> accountAuthenticationList = new ArrayList<>();
    if (CloudSheetFragment.isCloudProviderAvailable(mainActivity)) {
        for (CloudStorage cloudStorage : dataUtils.getAccounts()) {
            if (cloudStorage instanceof Dropbox) {
                addNewItem(menu, CLOUDS_GROUP, order++, CloudHandler.CLOUD_NAME_DROPBOX, new MenuMetadata(CloudHandler.CLOUD_PREFIX_DROPBOX + "/"), R.drawable.ic_dropbox_white_24dp, R.drawable.ic_edit_24dp);
                accountAuthenticationList.add(new String[] { CloudHandler.CLOUD_NAME_DROPBOX, CloudHandler.CLOUD_PREFIX_DROPBOX + "/" });
            } else if (cloudStorage instanceof Box) {
                addNewItem(menu, CLOUDS_GROUP, order++, CloudHandler.CLOUD_NAME_BOX, new MenuMetadata(CloudHandler.CLOUD_PREFIX_BOX + "/"), R.drawable.ic_box_white_24dp, R.drawable.ic_edit_24dp);
                accountAuthenticationList.add(new String[] { CloudHandler.CLOUD_NAME_BOX, CloudHandler.CLOUD_PREFIX_BOX + "/" });
            } else if (cloudStorage instanceof OneDrive) {
                addNewItem(menu, CLOUDS_GROUP, order++, CloudHandler.CLOUD_NAME_ONE_DRIVE, new MenuMetadata(CloudHandler.CLOUD_PREFIX_ONE_DRIVE + "/"), R.drawable.ic_onedrive_white_24dp, R.drawable.ic_edit_24dp);
                accountAuthenticationList.add(new String[] { CloudHandler.CLOUD_NAME_ONE_DRIVE, CloudHandler.CLOUD_PREFIX_ONE_DRIVE + "/" });
            } else if (cloudStorage instanceof GoogleDrive) {
                addNewItem(menu, CLOUDS_GROUP, order++, CloudHandler.CLOUD_NAME_GOOGLE_DRIVE, new MenuMetadata(CloudHandler.CLOUD_PREFIX_GOOGLE_DRIVE + "/"), R.drawable.ic_google_drive_white_24dp, R.drawable.ic_edit_24dp);
                accountAuthenticationList.add(new String[] { CloudHandler.CLOUD_NAME_GOOGLE_DRIVE, CloudHandler.CLOUD_PREFIX_GOOGLE_DRIVE + "/" });
            }
        }
        Collections.sort(accountAuthenticationList, new BookSorter());
    }
    if (mainActivity.getBoolean(PREFERENCE_SHOW_SIDEBAR_FOLDERS)) {
        if (dataUtils.getBooks().size() > 0) {
            Collections.sort(dataUtils.getBooks(), new BookSorter());
            synchronized (dataUtils.getBooks()) {
                for (String[] file : dataUtils.getBooks()) {
                    addNewItem(menu, FOLDERS_GROUP, order++, file[0], new MenuMetadata(file[1]), R.drawable.ic_folder_white_24dp, R.drawable.ic_edit_24dp);
                }
            }
        }
    }
    Boolean[] quickAccessPref = TinyDB.getBooleanArray(mainActivity.getPrefs(), QuickAccessPref.KEY, QuickAccessPref.DEFAULT);
    if (mainActivity.getBoolean(PREFERENCE_SHOW_SIDEBAR_QUICKACCESSES)) {
        if (quickAccessPref[0]) {
            addNewItem(menu, QUICKACCESSES_GROUP, order++, R.string.quick, new MenuMetadata("5"), R.drawable.ic_star_white_24dp, null);
        }
        if (quickAccessPref[1]) {
            addNewItem(menu, QUICKACCESSES_GROUP, order++, R.string.recent, new MenuMetadata("6"), R.drawable.ic_history_white_24dp, null);
        }
        if (quickAccessPref[2]) {
            addNewItem(menu, QUICKACCESSES_GROUP, order++, R.string.images, new MenuMetadata("0"), R.drawable.ic_photo_library_white_24dp, null);
        }
        if (quickAccessPref[3]) {
            addNewItem(menu, QUICKACCESSES_GROUP, order++, R.string.videos, new MenuMetadata("1"), R.drawable.ic_video_library_white_24dp, null);
        }
        if (quickAccessPref[4]) {
            addNewItem(menu, QUICKACCESSES_GROUP, order++, R.string.audio, new MenuMetadata("2"), R.drawable.ic_library_music_white_24dp, null);
        }
        if (quickAccessPref[5]) {
            addNewItem(menu, QUICKACCESSES_GROUP, order++, R.string.documents, new MenuMetadata("3"), R.drawable.ic_library_books_white_24dp, null);
        }
        if (quickAccessPref[6]) {
            addNewItem(menu, QUICKACCESSES_GROUP, order++, R.string.apks, new MenuMetadata("4"), R.drawable.ic_apk_library_white_24dp, null);
        }
    }
    addNewItem(menu, LASTGROUP, order++, R.string.ftp, new MenuMetadata(() -> {
        FragmentTransaction transaction2 = mainActivity.getSupportFragmentManager().beginTransaction();
        transaction2.replace(R.id.content_frame, new FTPServerFragment());
        mainActivity.getAppbar().getAppbarLayout().animate().translationY(0).setInterpolator(new DecelerateInterpolator(2)).start();
        pending_fragmentTransaction = transaction2;
        if (!isDrawerLocked)
            close();
        else
            onDrawerClosed();
    }), R.drawable.ic_ftp_white_24dp, null);
    addNewItem(menu, LASTGROUP, order++, R.string.apps, new MenuMetadata(() -> {
        FragmentTransaction transaction2 = mainActivity.getSupportFragmentManager().beginTransaction();
        transaction2.replace(R.id.content_frame, new AppsListFragment());
        mainActivity.getAppbar().getAppbarLayout().animate().translationY(0).setInterpolator(new DecelerateInterpolator(2)).start();
        pending_fragmentTransaction = transaction2;
        if (!isDrawerLocked)
            close();
        else
            onDrawerClosed();
    }), R.drawable.ic_android_white_24dp, null);
    addNewItem(menu, LASTGROUP, order++, R.string.setting, new MenuMetadata(() -> {
        Intent in = new Intent(mainActivity, PreferencesActivity.class);
        mainActivity.startActivity(in);
    }), R.drawable.ic_settings_white_24dp, null);
    for (int i = 0; i < navView.getMenu().size(); i++) {
        navView.getMenu().getItem(i).setEnabled(true);
    }
    for (int group : GROUPS) {
        menu.setGroupCheckable(group, true, true);
    }
    MenuItem item = navView.getSelected();
    if (item != null) {
        item.setChecked(true);
        actionViewStateManager.selectActionView(item);
        isSomethingSelected = true;
    }
}
Also used : DecelerateInterpolator(android.view.animation.DecelerateInterpolator) PreferencesActivity(com.amaze.filemanager.activities.PreferencesActivity) ArrayList(java.util.ArrayList) GoogleDrive(com.cloudrail.si.services.GoogleDrive) CloudStorage(com.cloudrail.si.interfaces.CloudStorage) OneDrive(com.cloudrail.si.services.OneDrive) FragmentTransaction(android.support.v4.app.FragmentTransaction) BookSorter(com.amaze.filemanager.utils.BookSorter) Menu(android.view.Menu) Dropbox(com.cloudrail.si.services.Dropbox) DrawableRes(android.support.annotation.DrawableRes) FTPServerFragment(com.amaze.filemanager.fragments.FTPServerFragment) Box(com.cloudrail.si.services.Box) Intent(android.content.Intent) MenuItem(android.view.MenuItem) AppsListFragment(com.amaze.filemanager.fragments.AppsListFragment) HybridFile(com.amaze.filemanager.filesystem.HybridFile) File(java.io.File)

Example 2 with BookSorter

use of com.amaze.filemanager.utils.BookSorter in project AmazeFileManager by TeamAmaze.

the class MainActivity method addConnection.

@Override
public void addConnection(boolean edit, final String name, final String path, final String encryptedPath, final String oldname, final String oldPath) {
    String[] s = new String[] { name, path };
    if (!edit) {
        if ((dataUtils.containsServer(path)) == -1) {
            dataUtils.addServer(s);
            drawer.refreshDrawer();
            AppConfig.runInBackground(() -> {
                utilsHandler.addSmb(name, encryptedPath);
            });
            // grid.addPath(name, encryptedPath, DataUtils.SMB, 1);
            MainFragment ma = getCurrentMainFragment();
            if (ma != null)
                getCurrentMainFragment().loadlist(path, false, OpenMode.UNKNOWN);
        } else {
            Snackbar.make(findViewById(R.id.navigation), getString(R.string.connection_exists), Snackbar.LENGTH_SHORT).show();
        }
    } else {
        int i = dataUtils.containsServer(new String[] { oldname, oldPath });
        if (i != -1) {
            dataUtils.removeServer(i);
            AppConfig.runInBackground(() -> {
                utilsHandler.renameSMB(oldname, oldPath, name, path);
            });
        // mainActivity.grid.removePath(oldname, oldPath, DataUtils.SMB);
        }
        dataUtils.addServer(s);
        Collections.sort(dataUtils.getServers(), new BookSorter());
        drawer.refreshDrawer();
    // mainActivity.grid.addPath(name, encryptedPath, DataUtils.SMB, 1);
    }
}
Also used : MainFragment(com.amaze.filemanager.fragments.MainFragment) BookSorter(com.amaze.filemanager.utils.BookSorter)

Example 3 with BookSorter

use of com.amaze.filemanager.utils.BookSorter in project AmazeFileManager by TeamAmaze.

the class SftpConnectDialog method authenticateAndSaveSetup.

private boolean authenticateAndSaveSetup(String connectionName, String hostname, int port, String hostKeyFingerprint, String username, String password, String selectedParsedKeyPairName, KeyPair selectedParsedKeyPair, boolean isEdit) {
    if (isEdit)
        password = getArguments().getString("password", null);
    final String path = deriveSftpPathFrom(hostname, port, username, password, selectedParsedKeyPair);
    final String encryptedPath = SshClientUtils.encryptSshPathAsNecessary(path);
    if (!isEdit) {
        try {
            AsyncTaskResult<SSHClient> taskResult = new SshAuthenticationTask(hostname, port, hostKeyFingerprint, username, password, selectedParsedKeyPair).execute().get();
            SSHClient result = taskResult.result;
            if (result != null) {
                if (DataUtils.getInstance().containsServer(path) == -1) {
                    DataUtils.getInstance().addServer(new String[] { connectionName, path });
                    ((MainActivity) getActivity()).getDrawer().refreshDrawer();
                    utilsHandler.addSsh(connectionName, encryptedPath, hostKeyFingerprint, selectedParsedKeyPairName, getPemContents());
                    MainFragment ma = ((MainActivity) getActivity()).getCurrentMainFragment();
                    ma.loadlist(path, false, OpenMode.UNKNOWN);
                    dismiss();
                } else {
                    Snackbar.make(getActivity().findViewById(R.id.content_frame), getResources().getString(R.string.connection_exists), Snackbar.LENGTH_SHORT).show();
                    dismiss();
                }
                return true;
            } else {
                return false;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    } else {
        DataUtils.getInstance().removeServer(DataUtils.getInstance().containsServer(path));
        DataUtils.getInstance().addServer(new String[] { connectionName, path });
        Collections.sort(DataUtils.getInstance().getServers(), new BookSorter());
        ((MainActivity) getActivity()).getDrawer().refreshDrawer();
        AppConfig.runInBackground(() -> {
            utilsHandler.updateSsh(connectionName, getArguments().getString("name"), encryptedPath, selectedParsedKeyPairName, getPemContents());
        });
        dismiss();
        return true;
    }
}
Also used : MainFragment(com.amaze.filemanager.fragments.MainFragment) BookSorter(com.amaze.filemanager.utils.BookSorter) SSHClient(net.schmizz.sshj.SSHClient) SshAuthenticationTask(com.amaze.filemanager.asynchronous.asynctasks.ssh.SshAuthenticationTask) MainActivity(com.amaze.filemanager.activities.MainActivity) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException)

Aggregations

BookSorter (com.amaze.filemanager.utils.BookSorter)3 MainFragment (com.amaze.filemanager.fragments.MainFragment)2 Intent (android.content.Intent)1 DrawableRes (android.support.annotation.DrawableRes)1 FragmentTransaction (android.support.v4.app.FragmentTransaction)1 Menu (android.view.Menu)1 MenuItem (android.view.MenuItem)1 DecelerateInterpolator (android.view.animation.DecelerateInterpolator)1 MainActivity (com.amaze.filemanager.activities.MainActivity)1 PreferencesActivity (com.amaze.filemanager.activities.PreferencesActivity)1 SshAuthenticationTask (com.amaze.filemanager.asynchronous.asynctasks.ssh.SshAuthenticationTask)1 HybridFile (com.amaze.filemanager.filesystem.HybridFile)1 AppsListFragment (com.amaze.filemanager.fragments.AppsListFragment)1 FTPServerFragment (com.amaze.filemanager.fragments.FTPServerFragment)1 CloudStorage (com.cloudrail.si.interfaces.CloudStorage)1 Box (com.cloudrail.si.services.Box)1 Dropbox (com.cloudrail.si.services.Dropbox)1 GoogleDrive (com.cloudrail.si.services.GoogleDrive)1 OneDrive (com.cloudrail.si.services.OneDrive)1 File (java.io.File)1