Search in sources :

Example 1 with ViewerFile

use of com.fastaccess.data.dao.model.ViewerFile in project FastHub by k0shk0sh.

the class ViewerPresenter method onWorkOnline.

@Override
public void onWorkOnline() {
    isImage = MarkDownProvider.isImage(url);
    if (isImage) {
        if ("svg".equalsIgnoreCase(MimeTypeMap.getFileExtensionFromUrl(url))) {
            makeRestCall(RestProvider.getRepoService(isEnterprise()).getFileAsStream(url), s -> sendToView(view -> view.onSetImageUrl(s, true)));
            return;
        }
        sendToView(view -> view.onSetImageUrl(url, false));
        return;
    }
    Observable<String> streamObservable = MarkDownProvider.isMarkdown(url) ? RestProvider.getRepoService(isEnterprise()).getFileAsHtmlStream(url) : RestProvider.getRepoService(isEnterprise()).getFileAsStream(url);
    Observable<String> observable = isRepo ? RestProvider.getRepoService(isEnterprise()).getReadmeHtml(url) : streamObservable;
    makeRestCall(observable, content -> {
        downloadedStream = content;
        ViewerFile fileModel = new ViewerFile();
        fileModel.setContent(downloadedStream);
        fileModel.setFullUrl(url);
        fileModel.setRepo(isRepo);
        if (isRepo) {
            fileModel.setMarkdown(true);
            isMarkdown = true;
            isRepo = true;
            sendToView(view -> view.onSetMdText(downloadedStream, htmlUrl == null ? url : htmlUrl, false));
        } else {
            isMarkdown = MarkDownProvider.isMarkdown(url);
            if (isMarkdown) {
                MarkdownModel model = new MarkdownModel();
                model.setText(downloadedStream);
                Uri uri = Uri.parse(url);
                StringBuilder baseUrl = new StringBuilder();
                for (String s : uri.getPathSegments()) {
                    if (!s.equalsIgnoreCase(uri.getLastPathSegment())) {
                        baseUrl.append("/").append(s);
                    }
                }
                model.setContext(baseUrl.toString());
                makeRestCall(RestProvider.getRepoService(isEnterprise()).convertReadmeToHtml(model), string -> {
                    isMarkdown = true;
                    downloadedStream = string;
                    fileModel.setMarkdown(true);
                    fileModel.setContent(downloadedStream);
                    manageObservable(fileModel.save(fileModel).toObservable());
                    sendToView(view -> view.onSetMdText(downloadedStream, htmlUrl == null ? url : htmlUrl, true));
                });
                return;
            }
            fileModel.setMarkdown(false);
            sendToView(view -> view.onSetCode(downloadedStream));
        }
        manageObservable(fileModel.save(fileModel).toObservable());
    });
}
Also used : BundleConstant(com.fastaccess.helper.BundleConstant) Bundle(android.os.Bundle) RestProvider(com.fastaccess.provider.rest.RestProvider) BaseMvp(com.fastaccess.ui.base.mvp.BaseMvp) MarkDownProvider(com.fastaccess.provider.markdown.MarkDownProvider) Uri(android.net.Uri) MarkdownModel(com.fastaccess.data.dao.MarkdownModel) InputHelper(com.fastaccess.helper.InputHelper) NonNull(android.support.annotation.NonNull) ViewerFile(com.fastaccess.data.dao.model.ViewerFile) RxHelper(com.fastaccess.helper.RxHelper) R(com.fastaccess.R) Observable(io.reactivex.Observable) Nullable(android.support.annotation.Nullable) BasePresenter(com.fastaccess.ui.base.mvp.presenter.BasePresenter) MimeTypeMap(android.webkit.MimeTypeMap) MarkdownModel(com.fastaccess.data.dao.MarkdownModel) ViewerFile(com.fastaccess.data.dao.model.ViewerFile) Uri(android.net.Uri)

Aggregations

Uri (android.net.Uri)1 Bundle (android.os.Bundle)1 NonNull (android.support.annotation.NonNull)1 Nullable (android.support.annotation.Nullable)1 MimeTypeMap (android.webkit.MimeTypeMap)1 R (com.fastaccess.R)1 MarkdownModel (com.fastaccess.data.dao.MarkdownModel)1 ViewerFile (com.fastaccess.data.dao.model.ViewerFile)1 BundleConstant (com.fastaccess.helper.BundleConstant)1 InputHelper (com.fastaccess.helper.InputHelper)1 RxHelper (com.fastaccess.helper.RxHelper)1 MarkDownProvider (com.fastaccess.provider.markdown.MarkDownProvider)1 RestProvider (com.fastaccess.provider.rest.RestProvider)1 BaseMvp (com.fastaccess.ui.base.mvp.BaseMvp)1 BasePresenter (com.fastaccess.ui.base.mvp.presenter.BasePresenter)1 Observable (io.reactivex.Observable)1