package org.wikipedia.descriptions;
import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.StringRes;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.text.style.BulletSpan;
import android.widget.ScrollView;
import android.widget.TextView;
import org.wikipedia.R;
import org.wikipedia.WikipediaApp;
import org.wikipedia.util.DimenUtil;
import org.wikipedia.util.StringUtil;
import butterknife.BindView;
import butterknife.ButterKnife;
public class DescriptionEditRevertHelpView extends ScrollView {
@BindView(R.id.view_description_edit_revert_help_contents) TextView helpText;
public DescriptionEditRevertHelpView(@NonNull Context context, @NonNull String qNumber) {
super(context);
init(qNumber);
}
@SuppressWarnings("checkstyle:magicnumber") private void init(@NonNull String qNumber) {
inflate(getContext(), R.layout.view_description_edit_revert_help, this);
ButterKnife.bind(this);
helpText.setMovementMethod(new LinkMovementMethod());
Spanned helpStr = StringUtil.fromHtml(getString(R.string.description_edit_revert_help_body)
.replaceAll(":revertSubtitle", getString(R.string.description_edit_revert_subtitle))
.replaceAll(":revertIntro", getString(R.string.description_edit_revert_intro))
.replaceAll(":revertHistory",
String.format(getString(R.string.description_edit_revert_history), getHistoryUri(qNumber))));
int gapWidth = DimenUtil.roundedDpToPx(8);
SpannableString revertReason1 = new SpannableString(StringUtil.fromHtml(String.format(getString(R.string.description_edit_revert_reason1), getString(R.string.wikidata_description_guide_url))));
SpannableString revertReason2 = new SpannableString(StringUtil.fromHtml(getString(R.string.description_edit_revert_reason2)));
revertReason1.setSpan(new BulletSpan(gapWidth), 0, revertReason1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
revertReason2.setSpan(new BulletSpan(gapWidth), 0, revertReason2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
SpannableString helpSpan = new SpannableString(TextUtils.expandTemplate(helpStr, revertReason1, revertReason2));
helpText.setText(helpSpan);
}
private Uri getHistoryUri(@NonNull String qNumber) {
return new Uri.Builder()
.scheme(WikipediaApp.getInstance().getWikiSite().scheme())
.authority("m.wikidata.org")
.appendPath("wiki")
.appendPath("Special:History")
.appendPath(qNumber)
.build();
}
private String getString(@StringRes int id) {
return getContext().getString(id);
}
}