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

Reply via email to