package com.fastaccess.ui.modules.changelog; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.View; import android.widget.ProgressBar; import com.fastaccess.R; import com.fastaccess.helper.PrefGetter; import com.fastaccess.helper.RxHelper; import com.fastaccess.provider.changelog.ChangelogProvider; import com.fastaccess.ui.base.BaseBottomSheetDialog; import com.fastaccess.ui.widgets.FontButton; import com.fastaccess.ui.widgets.FontTextView; import com.prettifier.pretty.PrettifyWebView; import butterknife.BindView; import butterknife.OnClick; import icepick.State; import rx.Subscription; /** * Created by Kosh on 26 Mar 2017, 10:15 PM */ public class ChangelogBottomSheetDialog extends BaseBottomSheetDialog { @BindView(R.id.title) FontTextView title; @BindView(R.id.message) FontTextView message; @BindView(R.id.cancel) FontButton cancel; @BindView(R.id.messageLayout) View messageLayout; @BindView(R.id.prettifyWebView) PrettifyWebView prettifyWebView; @BindView(R.id.webProgress) ProgressBar webProgress; @State String html; private Subscription subscription; @OnClick(R.id.ok) void onOk() { dismiss(); } @Override protected int layoutRes() { return R.layout.message_dialog; } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); if (savedInstanceState == null) { PrefGetter.setWhatsNewVersion(); } webProgress.setVisibility(View.VISIBLE); cancel.setVisibility(View.GONE); title.setText(R.string.changelog); if (html == null) { subscription = RxHelper.getObserver(ChangelogProvider.getChangelog(getContext())) .subscribe(s -> { this.html = s; showChangelog(); }); } else { showChangelog(); } } private void showChangelog() { webProgress.setVisibility(View.GONE); if (html != null) { message.setVisibility(View.GONE); prettifyWebView.setVisibility(View.VISIBLE); prettifyWebView.setGithubContent(html, null, true); prettifyWebView.setNestedScrollingEnabled(false); } } @Override public void onDestroyView() { if (subscription != null && !subscription.isUnsubscribed()) { subscription.unsubscribe(); } super.onDestroyView(); } }