jenkins-bot has submitted this change and it was merged. (
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(-)
Approvals:
jenkins-bot: Verified
Mholloway: Looks good to me, approved
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: merged
Gerrit-Change-Id: I212c028447c6cc808ce626a1fce3062525872534
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Mholloway <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits