Brion VIBBER has submitted this change and it was merged. Change subject: Add simple Edit Summary option to preview window ......................................................................
Add simple Edit Summary option to preview window Change-Id: I321f8e79bab9f6684e66e76f1e300a52d68bb2e8 --- M wikipedia-it/src/main/java/org/wikipedia/test/DoEditTaskTests.java M wikipedia-it/src/main/java/org/wikipedia/test/TriggerAbuseFilterTest.java M wikipedia-it/src/main/java/org/wikipedia/test/TriggerEditCaptchaTest.java M wikipedia/res/layout/activity_edit_section.xml A wikipedia/res/layout/group_edit_summary.xml M wikipedia/res/values/strings.xml M wikipedia/src/main/java/org/wikipedia/editing/DoEditTask.java M wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java A wikipedia/src/main/java/org/wikipedia/editing/EditSummaryHandler.java A wikipedia/src/main/java/org/wikipedia/styledviews/StyledAutocompleteEditText.java 10 files changed, 133 insertions(+), 16 deletions(-) Approvals: Brion VIBBER: Verified; Looks good to me, approved diff --git a/wikipedia-it/src/main/java/org/wikipedia/test/DoEditTaskTests.java b/wikipedia-it/src/main/java/org/wikipedia/test/DoEditTaskTests.java index 71072c0..f26c7d5 100644 --- a/wikipedia-it/src/main/java/org/wikipedia/test/DoEditTaskTests.java +++ b/wikipedia-it/src/main/java/org/wikipedia/test/DoEditTaskTests.java @@ -27,7 +27,7 @@ app.getEditTokenStorage().get(title.getSite(), new EditTokenStorage.TokenRetreivedCallback() { @Override public void onTokenRetreived(String token) { - new DoEditTask(getInstrumentation().getTargetContext(), title, wikitext, 3, token) { + new DoEditTask(getInstrumentation().getTargetContext(), title, wikitext, 3, token, "") { @Override public void onFinish(EditingResult result) { assertNotNull(result); diff --git a/wikipedia-it/src/main/java/org/wikipedia/test/TriggerAbuseFilterTest.java b/wikipedia-it/src/main/java/org/wikipedia/test/TriggerAbuseFilterTest.java index c711c84..91780be 100644 --- a/wikipedia-it/src/main/java/org/wikipedia/test/TriggerAbuseFilterTest.java +++ b/wikipedia-it/src/main/java/org/wikipedia/test/TriggerAbuseFilterTest.java @@ -23,7 +23,7 @@ runTestOnUiThread(new Runnable() { @Override public void run() { - new DoEditTask(getInstrumentation().getTargetContext(), title, wikitext, 0, "+\\") { + new DoEditTask(getInstrumentation().getTargetContext(), title, wikitext, 0, "+\\", "") { @Override public void onFinish(EditingResult result) { assertNotNull(result); @@ -45,7 +45,7 @@ runTestOnUiThread(new Runnable() { @Override public void run() { - new DoEditTask(getInstrumentation().getTargetContext(), title, wikitext, 0, "+\\") { + new DoEditTask(getInstrumentation().getTargetContext(), title, wikitext, 0, "+\\", "") { @Override public void onFinish(EditingResult result) { assertNotNull(result); diff --git a/wikipedia-it/src/main/java/org/wikipedia/test/TriggerEditCaptchaTest.java b/wikipedia-it/src/main/java/org/wikipedia/test/TriggerEditCaptchaTest.java index 35648cc..4be0494 100644 --- a/wikipedia-it/src/main/java/org/wikipedia/test/TriggerEditCaptchaTest.java +++ b/wikipedia-it/src/main/java/org/wikipedia/test/TriggerEditCaptchaTest.java @@ -23,7 +23,7 @@ runTestOnUiThread(new Runnable() { @Override public void run() { - new DoEditTask(getInstrumentation().getTargetContext(), title, wikitext, 0, "+\\") { + new DoEditTask(getInstrumentation().getTargetContext(), title, wikitext, 0, "+\\", "") { @Override public void onFinish(EditingResult result) { assertNotNull(result); diff --git a/wikipedia/res/layout/activity_edit_section.xml b/wikipedia/res/layout/activity_edit_section.xml index c243235..6c959c5 100644 --- a/wikipedia/res/layout/activity_edit_section.xml +++ b/wikipedia/res/layout/activity_edit_section.xml @@ -78,8 +78,18 @@ </LinearLayout> </ScrollView> - <fragment android:layout_width="match_parent" android:layout_height="match_parent" - android:id="@+id/edit_section_preview_fragment" - class="org.wikipedia.editing.EditPreviewFragment" - /> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:id="@+id/edit_section_preview_container" + android:orientation="vertical" + > + <fragment android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" + android:id="@+id/edit_section_preview_fragment" + class="org.wikipedia.editing.EditPreviewFragment" + /> + <include layout="@layout/group_edit_summary" /> + </LinearLayout> </FrameLayout> diff --git a/wikipedia/res/layout/group_edit_summary.xml b/wikipedia/res/layout/group_edit_summary.xml new file mode 100644 index 0000000..e45d13d --- /dev/null +++ b/wikipedia/res/layout/group_edit_summary.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:id="@+id/group_edit_summary_container" + android:background="#ffffff" + android:visibility="gone" + > + <View android:layout_width="match_parent" android:layout_height="1dp" + android:background="@color/border" /> + + <org.wikipedia.styledviews.StyledTextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/edit_summary_guide_text" + style="?android:textAppearanceSmall" + android:paddingTop="8dp" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:textColor="#666" + /> + <org.wikipedia.styledviews.StyledAutocompleteEditText + android:id="@+id/group_edit_summary_edit" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:singleLine="true" + /> +</LinearLayout> \ No newline at end of file diff --git a/wikipedia/res/values/strings.xml b/wikipedia/res/values/strings.xml index ca74299..2f68d6b 100644 --- a/wikipedia/res/values/strings.xml +++ b/wikipedia/res/values/strings.xml @@ -112,4 +112,6 @@ <string name="edit_preview_activity_title">Preview edit</string> <string name="create_account_logging_in">Logging in...</string> <string name="nav_item_send_feedback">Send feedback</string> + <string name="edit_summary_guide_text">Tell us how you improved this article. This helps other editors review your edit quickly.</string> + <string name="edit_summary_hint">Edit summary</string> </resources> diff --git a/wikipedia/src/main/java/org/wikipedia/editing/DoEditTask.java b/wikipedia/src/main/java/org/wikipedia/editing/DoEditTask.java index 3de6f27..6e43425 100644 --- a/wikipedia/src/main/java/org/wikipedia/editing/DoEditTask.java +++ b/wikipedia/src/main/java/org/wikipedia/editing/DoEditTask.java @@ -7,16 +7,15 @@ import org.wikipedia.*; import org.wikipedia.concurrency.*; -import java.util.concurrent.Executor; - public class DoEditTask extends ApiTask<EditingResult> { private final PageTitle title; private final String sectionWikitext; private final int sectionID; + private final String summary; private final String editToken; private final WikipediaApp app; - public DoEditTask(Context context, PageTitle title, String sectionWikitext, int sectionID, String editToken) { + public DoEditTask(Context context, PageTitle title, String sectionWikitext, int sectionID, String editToken, String summary) { super( ExecutorService.getSingleton().getExecutor(DoEditTask.class, 1), ((WikipediaApp)context.getApplicationContext()).getAPIForSite(title.getSite()) @@ -25,6 +24,7 @@ this.sectionWikitext = sectionWikitext; this.sectionID = sectionID; this.editToken = editToken; + this.summary = summary; this.app = (WikipediaApp)context.getApplicationContext(); } @@ -34,7 +34,8 @@ .param("title", title.getPrefixedText()) .param("section", String.valueOf(sectionID)) .param("text", sectionWikitext) - .param("token", editToken); + .param("token", editToken) + .param("summary", summary); } @Override diff --git a/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java b/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java index 08f2142..d727653 100644 --- a/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java +++ b/wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java @@ -42,6 +42,7 @@ private AbuseFilterEditResult abusefilterEditResult; private CaptchaHandler captchaHandler; + private EditSummaryHandler editSummaryHandler; private EditPreviewFragment editPreviewFragment; @@ -77,7 +78,7 @@ abuseFilterBackAction = findViewById(R.id.edit_section_abusefilter_back); captchaHandler = new CaptchaHandler(this, title.getSite(), progressDialog, sectionContainer, R.string.edit_section_activity_title); - + editSummaryHandler = new EditSummaryHandler(this); editPreviewFragment = (EditPreviewFragment) getSupportFragmentManager().findFragmentById(R.id.edit_section_preview_fragment); if (savedInstanceState != null && savedInstanceState.containsKey("sectionWikitext")) { @@ -119,7 +120,7 @@ @Override public void onTokenRetreived(final String token) { - new DoEditTask(EditSectionActivity.this, title, sectionText.getText().toString(), section.getId(), token) { + new DoEditTask(EditSectionActivity.this, title, sectionText.getText().toString(), section.getId(), token, editSummaryHandler.getSummary(section.getHeading())) { @Override public void onBeforeExecute() { progressDialog.show(); @@ -235,10 +236,11 @@ finish(); return true; case R.id.menu_save_section: - if (editPreviewFragment.handleBackPressed()) { + if (editPreviewFragment.handleBackPressed() && editSummaryHandler.handleBackPressed()) { doSave(); } else { editPreviewFragment.showPreview(title, sectionText.getText().toString()); + editSummaryHandler.show(); } return true; default: @@ -291,7 +293,7 @@ @Override public void onBackPressed() { - if (!editPreviewFragment.handleBackPressed()) { + if (!(editPreviewFragment.handleBackPressed() && editSummaryHandler.handleBackPressed())) { if (!captchaHandler.cancelCaptcha() && abusefilterEditResult != null) { cancelAbuseFilter(); } else { diff --git a/wikipedia/src/main/java/org/wikipedia/editing/EditSummaryHandler.java b/wikipedia/src/main/java/org/wikipedia/editing/EditSummaryHandler.java new file mode 100644 index 0000000..ec70158 --- /dev/null +++ b/wikipedia/src/main/java/org/wikipedia/editing/EditSummaryHandler.java @@ -0,0 +1,47 @@ +package org.wikipedia.editing; + +import android.app.*; +import android.text.*; +import android.view.*; +import android.widget.*; +import org.wikipedia.*; + +public class EditSummaryHandler { + private final Activity activity; + private final View container; + private final EditText summary_edit; + + public EditSummaryHandler(Activity activity) { + this.activity = activity; + + container = activity.findViewById(R.id.group_edit_summary_container); + summary_edit = (EditText)activity.findViewById(R.id.group_edit_summary_edit); + + container.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + summary_edit.requestFocus(); + } + }); + } + + public void show() { + container.setVisibility(View.VISIBLE); + } + + public String getSummary(String sectionHeader) { + if (TextUtils.isEmpty(sectionHeader)) { + return summary_edit.getText().toString(); + } else { + return "/* " + sectionHeader + " */ " + summary_edit.getText().toString(); + } + } + + public boolean handleBackPressed() { + if (container.getVisibility() == View.VISIBLE) { + container.setVisibility(View.GONE); + return true; + } + return false; + } +} diff --git a/wikipedia/src/main/java/org/wikipedia/styledviews/StyledAutocompleteEditText.java b/wikipedia/src/main/java/org/wikipedia/styledviews/StyledAutocompleteEditText.java new file mode 100644 index 0000000..d00cf74 --- /dev/null +++ b/wikipedia/src/main/java/org/wikipedia/styledviews/StyledAutocompleteEditText.java @@ -0,0 +1,23 @@ +package org.wikipedia.styledviews; + +import android.content.*; +import android.util.*; +import android.widget.*; +import org.wikipedia.*; + +public class StyledAutocompleteEditText extends AutoCompleteTextView { + public StyledAutocompleteEditText(Context context) { + this(context, null); + } + + public StyledAutocompleteEditText(Context context, AttributeSet attrs) { + this(context, attrs, android.R.attr.editTextStyle); + } + + public StyledAutocompleteEditText(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + if (!isInEditMode()) { + setTypeface(((WikipediaApp)context.getApplicationContext()).getPrimaryType()); + } + } +} -- To view, visit https://gerrit.wikimedia.org/r/118057 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I321f8e79bab9f6684e66e76f1e300a52d68bb2e8 Gerrit-PatchSet: 3 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: Yuvipanda <yuvipa...@gmail.com> Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits