Android Open Source - MaterialManager Ls Parser






From Project

Back to project page MaterialManager.

License

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.

Java Source Code

package com.afollestad.cabinet.file.root;
//from w  w  w  . j  ava2  s.c  o m
import android.app.Activity;

import com.afollestad.cabinet.file.base.File;
import com.afollestad.cabinet.file.base.FileFilter;

import java.util.ArrayList;
import java.util.List;

public class LsParser {

    private Activity mContext;
    private String mPath;
    private FileFilter mFilter;
    private List<File> mFiles;
    public RootFile file;
    private boolean includeHidden;

    private LsParser() {
        mFiles = new ArrayList<File>();
    }

    public static LsParser parse(Activity context, String path, List<String> response, FileFilter filter, boolean includeHidden) {
        if (path.equals("/")) path = "";
        LsParser parser = new LsParser();
        parser.mContext = context;
        parser.mPath = path;
        parser.mFilter = filter;
        parser.includeHidden = includeHidden;
        for (String line : response) {
            parser.processLine(line);
        }
        return parser;
    }

    protected void processLine(String line) {
        file = new RootFile(mContext);
        LsTokenizer tokenizer = new LsTokenizer(line);
        int index = 0;
        String token;
        while ((token = tokenizer.nextToken()) != null) {
            if (index == 0) file.permissions = token;
            else if (index == 1) file.owner = token;
            else if (index == 2) file.creator = token;
            else if (index == 3) {
                if (token.contains("-")) {
                    file.date = token;
                    index++; // since there's no size, skip to next token
                } else {
                    file.size = Long.parseLong(token);
                }
            } else if (index == 4) {
                file.date = token;
            } else if (index == 5) {
                file.time = token;
            } else if (index == 6) {
                // Store the original name for the case that this is a link (name is displayed but path is different)
                file.originalName = token;
                file.setPath(mPath + "/" + token);
            } else {
                file.setPath(token); // this is a link to another file/folder
            }
            index++;
        }
        boolean skip = includeHidden && file.getName().startsWith(".");
        if ((mFilter == null || mFilter.accept(file)) && !skip)
            mFiles.add(file);
    }

    public List<File> getFiles() {
        return mFiles;
    }
}




Java Source Code List

com.afollestad.cabinet.App.java
com.afollestad.cabinet.ApplicationTest.java
com.afollestad.cabinet.adapters.FileAdapter.java
com.afollestad.cabinet.adapters.NavigationDrawerAdapter.java
com.afollestad.cabinet.cab.CopyCab.java
com.afollestad.cabinet.cab.CutCab.java
com.afollestad.cabinet.cab.MainCab.java
com.afollestad.cabinet.cab.PickerCab.java
com.afollestad.cabinet.cab.base.BaseCab.java
com.afollestad.cabinet.cab.base.BaseFileCab.java
com.afollestad.cabinet.comparators.AlphabeticalComparator.java
com.afollestad.cabinet.comparators.ExtensionComparator.java
com.afollestad.cabinet.comparators.FoldersFirstComparator.java
com.afollestad.cabinet.comparators.HighLowSizeComparator.java
com.afollestad.cabinet.comparators.LastModifiedComparator.java
com.afollestad.cabinet.comparators.LowHighSizeComparator.java
com.afollestad.cabinet.file.CloudFile.java
com.afollestad.cabinet.file.LocalFile.java
com.afollestad.cabinet.file.Remote.java
com.afollestad.cabinet.file.base.FileFilter.java
com.afollestad.cabinet.file.base.File.java
com.afollestad.cabinet.file.root.LsParser.java
com.afollestad.cabinet.file.root.LsTokenizer.java
com.afollestad.cabinet.file.root.RootFile.java
com.afollestad.cabinet.fragments.AboutDialog.java
com.afollestad.cabinet.fragments.DetailsDialog.java
com.afollestad.cabinet.fragments.DirectoryFragment.java
com.afollestad.cabinet.fragments.NavigationDrawerFragment.java
com.afollestad.cabinet.fragments.RemoteConnectionDialog.java
com.afollestad.cabinet.fragments.WelcomeFragment.java
com.afollestad.cabinet.services.NetworkService.java
com.afollestad.cabinet.sftp.FileNotExistsException.java
com.afollestad.cabinet.sftp.SftpClient.java
com.afollestad.cabinet.ui.DrawerActivity.java
com.afollestad.cabinet.ui.SettingsActivity.java
com.afollestad.cabinet.ui.TextEditor.java
com.afollestad.cabinet.ui.base.NetworkedActivity.java
com.afollestad.cabinet.ui.base.ThemableActivity.java
com.afollestad.cabinet.utils.APKIconDownloader.java
com.afollestad.cabinet.utils.PauseOnScrollListener.java
com.afollestad.cabinet.utils.Perm.java
com.afollestad.cabinet.utils.Pins.java
com.afollestad.cabinet.utils.StorageHelper.java
com.afollestad.cabinet.utils.ThemeUtils.java
com.afollestad.cabinet.utils.TimeUtils.java
com.afollestad.cabinet.utils.Utils.java
com.afollestad.cabinet.zip.Unzipper.java
com.afollestad.cabinet.zip.Zipper.java
eu.chainfire.libsuperuser.ApplicationTest.java
eu.chainfire.libsuperuser.Application.java
eu.chainfire.libsuperuser.Debug.java
eu.chainfire.libsuperuser.HideOverlaysReceiver.java
eu.chainfire.libsuperuser.ShellNotClosedException.java
eu.chainfire.libsuperuser.ShellOnMainThreadException.java
eu.chainfire.libsuperuser.Shell.java
eu.chainfire.libsuperuser.StreamGobbler.java