Dbrant has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/368211 )

Change subject: Update styling of Reference bottom sheet.
......................................................................

Update styling of Reference bottom sheet.

Bug: T171469
Change-Id: I212c028447c6cc808ce626a1fce3062525872534
---
M app/src/main/assets/bundle.js
M app/src/main/assets/preview.js
M app/src/main/java/org/wikipedia/page/PageFragment.java
M app/src/main/java/org/wikipedia/page/ReferenceDialog.java
M app/src/main/java/org/wikipedia/page/ReferenceHandler.java
M app/src/main/res/layout/dialog_reference.xml
M app/src/main/res/values-qq/strings.xml
M app/src/main/res/values/strings.xml
M www/js/actions.js
9 files changed, 53 insertions(+), 26 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/11/368211/1

diff --git a/app/src/main/assets/bundle.js b/app/src/main/assets/bundle.js
index 4fe2f3e..68e0df6 100644
--- a/app/src/main/assets/bundle.js
+++ b/app/src/main/assets/bundle.js
@@ -19,7 +19,7 @@
     handleReference( payload.anchor, false );
 });
 
-function handleReference( targetId, backlink ) {
+function handleReference( targetId, backlink, linkText ) {
     var targetElem = document.getElementById( targetId );
     if ( targetElem === null ) {
         console.log( "reference target not found: " + targetId );
@@ -29,7 +29,7 @@
             if ( refTexts.length > 0 ) {
                 targetElem = refTexts[0];
             }
-            bridge.sendMessage( 'referenceClicked', { "ref": 
targetElem.innerHTML } );
+            bridge.sendMessage( 'referenceClicked', { "ref": 
targetElem.innerHTML, "linkText": linkText } );
         } catch (e) {
             targetElem.scrollIntoView();
         }
@@ -63,7 +63,7 @@
             var href = sourceNode.getAttribute( "href" );
             if ( href[0] === "#" ) {
                 var targetId = href.slice(1);
-                handleReference( targetId, util.ancestorContainsClass( 
sourceNode, "mw-cite-backlink" ) );
+                handleReference( targetId, util.ancestorContainsClass( 
sourceNode, "mw-cite-backlink" ), sourceNode.textContent );
             } else if (sourceNode.classList.contains( 'app_media' )) {
                 bridge.sendMessage( 'mediaClicked', { "href": href } );
             } else if (sourceNode.classList.contains( 'image' )) {
diff --git a/app/src/main/assets/preview.js b/app/src/main/assets/preview.js
index fe98d07..9d5e90e 100644
--- a/app/src/main/assets/preview.js
+++ b/app/src/main/assets/preview.js
@@ -19,7 +19,7 @@
     handleReference( payload.anchor, false );
 });
 
-function handleReference( targetId, backlink ) {
+function handleReference( targetId, backlink, linkText ) {
     var targetElem = document.getElementById( targetId );
     if ( targetElem === null ) {
         console.log( "reference target not found: " + targetId );
@@ -29,7 +29,7 @@
             if ( refTexts.length > 0 ) {
                 targetElem = refTexts[0];
             }
-            bridge.sendMessage( 'referenceClicked', { "ref": 
targetElem.innerHTML } );
+            bridge.sendMessage( 'referenceClicked', { "ref": 
targetElem.innerHTML, "linkText": linkText } );
         } catch (e) {
             targetElem.scrollIntoView();
         }
@@ -63,7 +63,7 @@
             var href = sourceNode.getAttribute( "href" );
             if ( href[0] === "#" ) {
                 var targetId = href.slice(1);
-                handleReference( targetId, util.ancestorContainsClass( 
sourceNode, "mw-cite-backlink" ) );
+                handleReference( targetId, util.ancestorContainsClass( 
sourceNode, "mw-cite-backlink" ), sourceNode.textContent );
             } else if (sourceNode.classList.contains( 'app_media' )) {
                 bridge.sendMessage( 'mediaClicked', { "href": href } );
             } else if (sourceNode.classList.contains( 'image' )) {
diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java 
b/app/src/main/java/org/wikipedia/page/PageFragment.java
index e9e4203..50a54dc 100755
--- a/app/src/main/java/org/wikipedia/page/PageFragment.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.java
@@ -32,6 +32,7 @@
 
 import com.appenguin.onboarding.ToolTip;
 
+import org.apache.commons.lang3.StringUtils;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.wikipedia.BackPressedHandler;
@@ -1102,12 +1103,14 @@
         bridge.addListener("linkClicked", linkHandler);
 
         bridge.addListener("referenceClicked", new ReferenceHandler() {
-            @Override protected void onReferenceClicked(String refHtml) {
+            @Override
+            protected void onReferenceClicked(@NonNull String refHtml, 
@Nullable String refLinkText) {
                 if (!isAdded()) {
                     Log.d("PageFragment", "Detached from activity, so stopping 
reference click.");
                     return;
                 }
-                showBottomSheet(new ReferenceDialog(getActivity(), 
linkHandler, refHtml));
+                showBottomSheet(new ReferenceDialog(getActivity(), 
linkHandler, refHtml,
+                        StringUtils.defaultString(refLinkText)));
             }
         });
         bridge.addListener("ipaSpan", new 
CommunicationBridge.JSEventListener() {
diff --git a/app/src/main/java/org/wikipedia/page/ReferenceDialog.java 
b/app/src/main/java/org/wikipedia/page/ReferenceDialog.java
index b3065fa..c5f0262 100644
--- a/app/src/main/java/org/wikipedia/page/ReferenceDialog.java
+++ b/app/src/main/java/org/wikipedia/page/ReferenceDialog.java
@@ -1,6 +1,8 @@
 package org.wikipedia.page;
 
 import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.design.widget.BottomSheetDialog;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.TextView;
@@ -11,8 +13,9 @@
 /**
  * A dialog that displays the currently clicked reference.
  */
-public class ReferenceDialog extends NoDimBottomSheetDialog {
-    public ReferenceDialog(Context context, LinkHandler linkHandler, String 
html) {
+public class ReferenceDialog extends BottomSheetDialog {
+    public ReferenceDialog(@NonNull Context context, @NonNull LinkHandler 
linkHandler,
+                           @NonNull String html, @NonNull String linkText) {
         super(context);
         View rootView = 
LayoutInflater.from(context).inflate(R.layout.dialog_reference, null);
         setContentView(rootView);
@@ -20,5 +23,8 @@
         TextView referenceText = (TextView) 
rootView.findViewById(R.id.reference_text);
         referenceText.setText(StringUtil.fromHtml(html));
         referenceText.setMovementMethod(new 
LinkMovementMethodExt(linkHandler));
+
+        TextView titleText = (TextView) 
rootView.findViewById(R.id.reference_title_text);
+        titleText.setText(getContext().getString(R.string.reference_title, 
linkText));
     }
 }
diff --git a/app/src/main/java/org/wikipedia/page/ReferenceHandler.java 
b/app/src/main/java/org/wikipedia/page/ReferenceHandler.java
index 1df8910..c64a40b 100644
--- a/app/src/main/java/org/wikipedia/page/ReferenceHandler.java
+++ b/app/src/main/java/org/wikipedia/page/ReferenceHandler.java
@@ -1,5 +1,8 @@
 package org.wikipedia.page;
 
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.wikipedia.bridge.CommunicationBridge;
@@ -12,13 +15,13 @@
     /**
      * Called when a reference link was clicked.
      */
-    protected abstract void onReferenceClicked(String refHtml);
+    protected abstract void onReferenceClicked(@NonNull String refHtml, 
@Nullable String refLinkText);
 
     // message from JS bridge:
     @Override
     public void onMessage(String messageType, JSONObject messagePayload) {
         try {
-            onReferenceClicked(messagePayload.getString("ref"));
+            onReferenceClicked(messagePayload.getString("ref"), 
messagePayload.optString("linkText"));
         } catch (JSONException e) {
             throw new RuntimeException(e);
         }
diff --git a/app/src/main/res/layout/dialog_reference.xml 
b/app/src/main/res/layout/dialog_reference.xml
index 1b85874..edbbb48 100644
--- a/app/src/main/res/layout/dialog_reference.xml
+++ b/app/src/main/res/layout/dialog_reference.xml
@@ -4,26 +4,39 @@
     xmlns:tools="http://schemas.android.com/tools";
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:background="@color/darkest_gray"
-    android:orientation="vertical">
+    android:background="?attr/bottom_sheet_background_color"
+    android:orientation="vertical"
+    android:padding="16dp">
 
-    <View android:layout_width="match_parent" android:layout_height="0.5dp" 
android:background="@color/nav_border" />
+    <org.wikipedia.views.AppTextView
+        android:id="@+id/reference_title_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        style="@style/RtlAwareTextView"
+        android:textSize="16sp"
+        android:fontFamily="sans-serif-medium"
+        android:textColor="?attr/feed_text_primary_color"
+        tools:text="Reference [1]"/>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0.5dp"
+        android:layout_marginTop="16dp"
+        android:layout_marginBottom="16dp"
+        android:background="@color/list_separator_light" />
 
     <org.wikipedia.views.AppTextView
         android:id="@+id/reference_text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginBottom="4dp"
         style="@style/RtlAwareTextView"
         android:layout_gravity="start|center_vertical"
-        android:paddingTop="24dp"
-        android:paddingBottom="24dp"
-        android:paddingLeft="16dp"
-        android:paddingRight="16dp"
         android:textIsSelectable="true"
-        tools:text="Reference text"
-        android:textColor="@color/foundation_gray"
+        android:textColor="?attr/feed_text_primary_color"
         android:textColorLink="?attr/colorAccent"
-        android:textSize="18sp"
-        android:lineSpacingMultiplier="1.4" />
+        android:textSize="16sp"
+        android:lineSpacingMultiplier="1.4"
+        tools:text="Reference text"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values-qq/strings.xml 
b/app/src/main/res/values-qq/strings.xml
index 066d05a..d042e10 100644
--- a/app/src/main/res/values-qq/strings.xml
+++ b/app/src/main/res/values-qq/strings.xml
@@ -256,6 +256,7 @@
   <string name="view_link_preview_error_button_dismiss">Button label for a 
button to dismiss a link preview\n{{Identical|Dismiss}}</string>
   <string name="error_page_does_not_exist">Error message informing the user 
that the requested page does not exist</string>
   <string name="view_wiki_error_message_offline">Error message shown when 
network cannot be reached when loading a page</string>
+  <string name="reference_title">Title shown on the popup dialog for a 
reference clicked by the user. The %s symbol is replaced with the link text of 
the clicked reference.</string>
   <string name="crash_report_dialog_title">Title of the dialog that pops up 
when the app crashes, asking user to send a report</string>
   <string name="crash_report_dialog_text">Text asking the user to send us a 
crash report</string>
   <string name="crash_report_dialog_dont_send_button">In the dialog that pops 
up when the app crashes, text for button that doesn\'t send a crash 
report.\n{{Identical|Skip}}</string>
diff --git a/app/src/main/res/values/strings.xml 
b/app/src/main/res/values/strings.xml
index 6830b46..eed9782 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -271,6 +271,7 @@
     <string name="view_link_preview_error_button_dismiss">Dismiss</string>
     <string name="error_page_does_not_exist">This page does not exist</string>
     <string name="view_wiki_error_message_offline">Cannot connect to 
internet</string>
+    <string name="reference_title">Reference %s</string>
 
     <!-- Crash reporter -->
     <string name="crash_report_dialog_title">Sorry, app crashed last 
time</string>
diff --git a/www/js/actions.js b/www/js/actions.js
index 851f574..17930cd 100644
--- a/www/js/actions.js
+++ b/www/js/actions.js
@@ -18,7 +18,7 @@
     handleReference( payload.anchor, false );
 });
 
-function handleReference( targetId, backlink ) {
+function handleReference( targetId, backlink, linkText ) {
     var targetElem = document.getElementById( targetId );
     if ( targetElem === null ) {
         console.log( "reference target not found: " + targetId );
@@ -28,7 +28,7 @@
             if ( refTexts.length > 0 ) {
                 targetElem = refTexts[0];
             }
-            bridge.sendMessage( 'referenceClicked', { "ref": 
targetElem.innerHTML } );
+            bridge.sendMessage( 'referenceClicked', { "ref": 
targetElem.innerHTML, "linkText": linkText } );
         } catch (e) {
             targetElem.scrollIntoView();
         }
@@ -62,7 +62,7 @@
             var href = sourceNode.getAttribute( "href" );
             if ( href[0] === "#" ) {
                 var targetId = href.slice(1);
-                handleReference( targetId, util.ancestorContainsClass( 
sourceNode, "mw-cite-backlink" ) );
+                handleReference( targetId, util.ancestorContainsClass( 
sourceNode, "mw-cite-backlink" ), sourceNode.textContent );
             } else if (sourceNode.classList.contains( 'app_media' )) {
                 bridge.sendMessage( 'mediaClicked', { "href": href } );
             } else if (sourceNode.classList.contains( 'image' )) {

-- 
To view, visit https://gerrit.wikimedia.org/r/368211
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I212c028447c6cc808ce626a1fce3062525872534
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to