Search in sources :

Example 1 with MarkdownModel

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

the class CommitPagerPresenter method onActivityCreated.

@Override
public void onActivityCreated(@Nullable Intent intent) {
    if (intent != null && intent.getExtras() != null) {
        sha = intent.getExtras().getString(BundleConstant.ID);
        login = intent.getExtras().getString(BundleConstant.EXTRA);
        repoId = intent.getExtras().getString(BundleConstant.EXTRA_TWO);
        showToRepoBtn = intent.getExtras().getBoolean(BundleConstant.EXTRA_THREE);
        if (commitModel != null) {
            sendToView(CommitPagerMvp.View::onSetup);
            return;
        } else if (!InputHelper.isEmpty(sha) && !InputHelper.isEmpty(login) && !InputHelper.isEmpty(repoId)) {
            makeRestCall(RestProvider.getRepoService(isEnterprise()).getCommit(login, repoId, sha).flatMap(commit -> {
                if (commit.getGitCommit() != null && commit.getGitCommit().getMessage() != null) {
                    MarkdownModel markdownModel = new MarkdownModel();
                    markdownModel.setContext(login + "/" + repoId);
                    markdownModel.setText(commit.getGitCommit().getMessage());
                    return RestProvider.getRepoService(isEnterprise()).convertReadmeToHtml(markdownModel);
                }
                return Observable.just(commit);
            }, (commit, u) -> {
                if (!InputHelper.isEmpty(u) && u instanceof String) {
                    commit.getGitCommit().setMessage(u.toString());
                }
                return commit;
            }), commit -> {
                commitModel = commit;
                commitModel.setRepoId(repoId);
                commitModel.setLogin(login);
                sendToView(CommitPagerMvp.View::onSetup);
                manageObservable(commitModel.save(commitModel).toObservable());
            });
            return;
        }
    }
    sendToView(CommitPagerMvp.View::onSetup);
}
Also used : BundleConstant(com.fastaccess.helper.BundleConstant) CommentRequestModel(com.fastaccess.data.dao.CommentRequestModel) Commit(com.fastaccess.data.dao.model.Commit) RestProvider(com.fastaccess.provider.rest.RestProvider) MarkdownModel(com.fastaccess.data.dao.MarkdownModel) InputHelper(com.fastaccess.helper.InputHelper) Intent(android.content.Intent) NonNull(android.support.annotation.NonNull) ArrayList(java.util.ArrayList) RxHelper(com.fastaccess.helper.RxHelper) Observable(io.reactivex.Observable) Nullable(android.support.annotation.Nullable) BasePresenter(com.fastaccess.ui.base.mvp.presenter.BasePresenter) MarkdownModel(com.fastaccess.data.dao.MarkdownModel)

Example 2 with MarkdownModel

use of com.fastaccess.data.dao.MarkdownModel 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

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