BearND has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/171442

Change subject: WIP: Disambiguation and page issues more like search results
......................................................................

WIP: Disambiguation and page issues more like search results

Change-Id: I8e4a9d9564625115a7a886a26dee3520b6972d6a
---
M wikipedia/assets/bundle.js
A wikipedia/res/layout/dialog_page_info.xml
M wikipedia/res/layout/fragment_page.xml
A wikipedia/res/layout/group_page_info_headers.xml
M wikipedia/res/layout/item_issue.xml
M wikipedia/res/values/colors.xml
M wikipedia/res/values/strings.xml
M wikipedia/res/values/styles.xml
A wikipedia/src/main/java/org/wikipedia/page/BottomDialog.java
M wikipedia/src/main/java/org/wikipedia/page/DisambigHandler.java
M wikipedia/src/main/java/org/wikipedia/page/IssuesHandler.java
A wikipedia/src/main/java/org/wikipedia/page/PageInfoDialog.java
A wikipedia/src/main/java/org/wikipedia/page/PageInfoHandler.java
M wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
M wikipedia/src/main/java/org/wikipedia/page/ReferenceDialog.java
M wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
M www/js/actions.js
M www/js/issues.js
M www/js/sections.js
19 files changed, 310 insertions(+), 150 deletions(-)


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

diff --git a/wikipedia/assets/bundle.js b/wikipedia/assets/bundle.js
index 04b7957..c194417 100644
--- a/wikipedia/assets/bundle.js
+++ b/wikipedia/assets/bundle.js
@@ -441,30 +441,19 @@
 
     content = transformer.transform( "leadSection", content );
     content = transformer.transform( "section", content );
-    content = transformer.transform("displayDisambigLink", content);
-    content = transformer.transform("displayIssuesLink", content);
 
-    //if there were no page issues, then hide the container
-    if (!issuesContainer.hasChildNodes()) {
-        document.getElementById( "content" ).removeChild(issuesContainer);
+    var hasDisambig = false;
+    var hatnotes = content.querySelectorAll( "div.hatnote" );
+    if ( hatnotes.length > 0 ) {
+        hasDisambig = true;
     }
-    //update the text of the disambiguation link, if there is one
-    var disambigBtn = document.getElementById( "disambig_button" );
-    if (disambigBtn !== null) {
-        disambigBtn.innerText = payload.string_page_similar_titles;
+    var hasIssues = false;
+    var issues = content.querySelectorAll( 
"table.ambox:not([class*='ambox-multiple_issues']):not([class*='ambox-notice'])"
 );
+    if ( issues.length > 0 ) {
+        hasIssues = true;
     }
-    //update the text of the page-issues link, if there is one
-    var issuesBtn = document.getElementById( "issues_button" );
-    if (issuesBtn !== null) {
-        issuesBtn.innerText = payload.string_page_issues;
-    }
-    //if we have both issues and disambiguation, then insert the separator
-    if (issuesBtn !== null && disambigBtn !== null) {
-        var separator = document.createElement( 'span' );
-        separator.innerText = '|';
-        separator.className = 'issues_separator';
-        issuesContainer.insertBefore(separator, issuesBtn.parentNode);
-    }
+    console.log( "BBB: " + hasDisambig + ", hasIssues" + hasIssues );
+    bridge.sendMessage( "pageInfo", { "hasDisambig": hasDisambig, "hasIssues": 
hasIssues } );
 
     document.getElementById( "content" ).appendChild( content );
 
diff --git a/wikipedia/res/layout/dialog_page_info.xml 
b/wikipedia/res/layout/dialog_page_info.xml
new file mode 100644
index 0000000..ab992ec
--- /dev/null
+++ b/wikipedia/res/layout/dialog_page_info.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android";
+    xmlns:tools="http://schemas.android.com/tools";
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:background="?attr/page_background_color"
+    >
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0.5dp"
+        android:background="@color/nav_border" />
+
+    <include layout="@layout/group_page_info_headers" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="?android:listDivider" />
+
+    <ListView
+        android:id="@+id/page_info_list"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="start"
+        android:paddingBottom="0dp"
+        android:paddingLeft="16dp"
+        android:paddingRight="16dp"
+        android:paddingTop="0dp"
+        />
+
+</LinearLayout>
diff --git a/wikipedia/res/layout/fragment_page.xml 
b/wikipedia/res/layout/fragment_page.xml
index ec17a32..04a2a69 100644
--- a/wikipedia/res/layout/fragment_page.xml
+++ b/wikipedia/res/layout/fragment_page.xml
@@ -17,11 +17,20 @@
             android:layout_height="match_parent"
             >
 
-            <org.wikipedia.views.ObservableWebView
-                android:id="@+id/page_web_view"
+            <LinearLayout
+                android:orientation="vertical"
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                />
+                android:layout_height="wrap_content"
+                >
+
+                <include layout="@layout/group_page_info_headers" />
+
+                <org.wikipedia.views.ObservableWebView
+                    android:id="@+id/page_web_view"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    />
+            </LinearLayout>
 
             <FrameLayout
                 android:id="@+id/page_images_container"
@@ -49,6 +58,7 @@
                         android:paddingBottom="16dp"
                         android:paddingRight="16dp"
                         android:paddingLeft="16dp"/>
+
                 </LinearLayout>
             </FrameLayout>
 
diff --git a/wikipedia/res/layout/group_page_info_headers.xml 
b/wikipedia/res/layout/group_page_info_headers.xml
new file mode 100644
index 0000000..8707c10
--- /dev/null
+++ b/wikipedia/res/layout/group_page_info_headers.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:tools="http://schemas.android.com/tools";
+    xmlns:android="http://schemas.android.com/apk/res/android";
+    android:id="@+id/page_info_headers"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="8dp"
+    android:orientation="horizontal"
+    android:visibility="visible"
+    tools:showIn="@layout/dialog_page_info">
+
+<TextView
+        android:id="@+id/page_info_similar_titles_heading"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_margin="8dp"
+        style="@style/text_heading_gray"
+        android:text="@string/page_similar_titles" />
+
+    <TextView
+        android:id="@+id/page_info_heading_separator"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="8dp"
+        android:layout_marginTop="8dp"
+        android:layout_marginLeft="7dp"
+        android:layout_marginRight="7dp"
+        style="@style/text_heading_gray"
+        android:text="|"
+        tools:ignore="HardcodedText" />
+
+    <TextView
+        android:id="@+id/page_info_page_issues_heading"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_margin="8dp"
+        style="@style/text_heading_gray"
+        android:text="@string/dialog_page_issues" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/wikipedia/res/layout/item_issue.xml 
b/wikipedia/res/layout/item_issue.xml
index cc92f7b..029802d 100644
--- a/wikipedia/res/layout/item_issue.xml
+++ b/wikipedia/res/layout/item_issue.xml
@@ -11,7 +11,6 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginTop="8dp"
-        android:layout_marginLeft="8dp"
         android:src="@drawable/ic_flag" />
 
     <LinearLayout
@@ -21,17 +20,17 @@
         android:padding="8dp">
         <TextView
             android:id="@+id/issue_text"
-            style="?android:textAppearanceMedium"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center" />
-        <TextView
-            android:id="@+id/issue_subtext"
-            style="?android:textAppearanceSmall"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_gravity="center"
-            android:layout_marginTop="8dp"
+            android:textSize="16sp" />
+        <TextView
+            android:id="@+id/issue_subtext"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginTop="2dp"
+            android:textSize="12sp"
             android:textColor="@color/issues_subtext"
             android:textAllCaps="true"/>
 
diff --git a/wikipedia/res/values/colors.xml b/wikipedia/res/values/colors.xml
index 1159f25..be9d50d 100644
--- a/wikipedia/res/values/colors.xml
+++ b/wikipedia/res/values/colors.xml
@@ -28,6 +28,7 @@
     <color name="fulltext_search_highlight">#00AF89</color>
     <color name="announcement_background">#0C0C0C</color>
     <color name="announcement_text">#AAAAAA</color>
+    <color name="page_info_heading">#555555</color>
 
     <color name="link_light">#ff347BFF</color>
     <color name="button_light">#ff777777</color>
diff --git a/wikipedia/res/values/strings.xml b/wikipedia/res/values/strings.xml
index f5d84cf..2843485 100644
--- a/wikipedia/res/values/strings.xml
+++ b/wikipedia/res/values/strings.xml
@@ -239,7 +239,7 @@
     <string name="color_theme_select">Theme</string>
     <string name="color_theme_light">Light</string>
     <string name="color_theme_dark">Dark</string>
-    <string name="page_similar_titles">Similar pages</string>
+    <string name="page_similar_titles">Other meanings</string>
     <string name="search_within_pages">Search within pages…</string>
     <string name="search_no_results">No results found for \"%s\".</string>
     <string name="search_did_you_mean">Did you mean \"%s\"?</string>
diff --git a/wikipedia/res/values/styles.xml b/wikipedia/res/values/styles.xml
index 87fc704..582a0b4 100644
--- a/wikipedia/res/values/styles.xml
+++ b/wikipedia/res/values/styles.xml
@@ -33,4 +33,9 @@
         <item name="android:background">@drawable/button_selector_gray</item>
     </style>
 
+    <style name="text_heading_gray" 
parent="@android:style/TextAppearance.Medium">
+        <item name="android:textSize">16sp</item>
+        <item name="android:textColor">@color/page_info_heading</item>
+    </style>
+
 </resources>
diff --git a/wikipedia/src/main/java/org/wikipedia/page/BottomDialog.java 
b/wikipedia/src/main/java/org/wikipedia/page/BottomDialog.java
new file mode 100644
index 0000000..6002864
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/page/BottomDialog.java
@@ -0,0 +1,42 @@
+package org.wikipedia.page;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.os.Build;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+/**
+ * A dialog that appears at the bottom of the page.
+ */
+public class BottomDialog extends Dialog {
+    private View dialogLayout;
+
+    public BottomDialog(Context context, int dialogLayoutResId) {
+        super(context);
+
+        LayoutInflater inflater = (LayoutInflater) 
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        dialogLayout = inflater.inflate(dialogLayoutResId, null);
+
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
+            getWindow().setDimAmount(0.0f);
+        }
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+        setContentView(dialogLayout);
+
+        getWindow().setBackgroundDrawable(null);
+        WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
+        lp.copyFrom(getWindow().getAttributes());
+        lp.width = WindowManager.LayoutParams.MATCH_PARENT;
+        lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
+        lp.gravity = Gravity.BOTTOM;
+        getWindow().setAttributes(lp);
+    }
+
+    protected View getDialogLayout() {
+        return dialogLayout;
+    }
+}
diff --git a/wikipedia/src/main/java/org/wikipedia/page/DisambigHandler.java 
b/wikipedia/src/main/java/org/wikipedia/page/DisambigHandler.java
index 8c2d507..28cefb7 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/DisambigHandler.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/DisambigHandler.java
@@ -1,8 +1,6 @@
 package org.wikipedia.page;
 
 import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
 import android.text.Html;
 import android.text.Spannable;
 import android.text.TextPaint;
@@ -28,7 +26,6 @@
  */
 public abstract class DisambigHandler implements 
CommunicationBridge.JSEventListener {
     private final Activity activity;
-    private Dialog dlg;
 
     public DisambigHandler(Activity activity, CommunicationBridge bridge) {
         this.activity = activity;
@@ -48,7 +45,7 @@
     public void show(final String[] items) {
         final WikipediaApp app = (WikipediaApp) 
activity.getApplicationContext();
 
-        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+        final PageInfoDialog dialog = new PageInfoDialog(activity);
         ListAdapter adapter = new ArrayAdapter<String>(activity, 0, items) {
             private ViewHolder holder;
 
@@ -80,8 +77,8 @@
                     @Override
                     public boolean onTouchEvent(final TextView widget, final 
Spannable buffer, final MotionEvent event) {
                         boolean ret = super.onTouchEvent(widget, buffer, 
event);
-                        if (ret && event.getAction() == MotionEvent.ACTION_UP 
&& dlg != null) {
-                            dlg.dismiss();
+                        if (ret && event.getAction() == MotionEvent.ACTION_UP) 
{
+                            dialog.dismiss();
                         }
                         return ret;
                     }
@@ -111,10 +108,9 @@
             }
         };
 
-        builder.setAdapter(adapter, null);
-        builder.setTitle(R.string.page_similar_titles);
-        dlg = builder.create();
-        dlg.show();
+        dialog.setAdapter(adapter);
+        dialog.highlightHeading(R.id.page_info_similar_titles_heading);
+        dialog.show();
     }
 
     public abstract LinkHandler getLinkHandler();
diff --git a/wikipedia/src/main/java/org/wikipedia/page/IssuesHandler.java 
b/wikipedia/src/main/java/org/wikipedia/page/IssuesHandler.java
index 6e5747d..2479ac7 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/IssuesHandler.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/IssuesHandler.java
@@ -45,7 +45,7 @@
     public void show(final String[] items) {
         final WikipediaApp app = (WikipediaApp) 
activity.getApplicationContext();
 
-        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+        PageInfoDialog dialog = new PageInfoDialog(activity);
         ListAdapter adapter = new ArrayAdapter<String>(activity, 0, items) {
             private ViewHolder holder;
 
@@ -96,9 +96,8 @@
             }
         };
 
-        builder.setAdapter(adapter, null);
-        builder.setTitle(R.string.dialog_page_issues);
-
-        builder.create().show();
+        dialog.setAdapter(adapter);
+        dialog.highlightHeading(R.id.page_info_page_issues_heading);
+        dialog.show();
     }
 }
diff --git a/wikipedia/src/main/java/org/wikipedia/page/PageInfoDialog.java 
b/wikipedia/src/main/java/org/wikipedia/page/PageInfoDialog.java
new file mode 100644
index 0000000..0406c4c
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageInfoDialog.java
@@ -0,0 +1,28 @@
+package org.wikipedia.page;
+
+import org.wikipedia.R;
+import android.content.Context;
+import android.graphics.Typeface;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+
+/**
+ * A dialog to host disambig and page issues information.
+ */
+public class PageInfoDialog extends BottomDialog {
+    private ListView list;
+
+    public PageInfoDialog(Context context) {
+        super(context, R.layout.dialog_page_info);
+        list = (ListView) getDialogLayout().findViewById(R.id.page_info_list);
+    }
+
+    public void setAdapter(ListAdapter adapter) {
+        list.setAdapter(adapter);
+    }
+
+    public void highlightHeading(int textResId) {
+        ((TextView) 
getDialogLayout().findViewById(textResId)).setTypeface(null, Typeface.BOLD);
+    }
+}
diff --git a/wikipedia/src/main/java/org/wikipedia/page/PageInfoHandler.java 
b/wikipedia/src/main/java/org/wikipedia/page/PageInfoHandler.java
new file mode 100644
index 0000000..8b35ddb
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageInfoHandler.java
@@ -0,0 +1,55 @@
+package org.wikipedia.page;
+
+import org.wikipedia.R;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+
+/**
+ * Links for disambig and page issues.
+ */
+public class PageInfoHandler {
+    private final View headersView;
+
+    public PageInfoHandler(View headersView) {
+        this.headersView = headersView;
+    }
+
+    void showLinks(final boolean disambig, final boolean issues) {
+        if (disambig || issues) {
+            headersView.setVisibility(View.VISIBLE);
+//            headersView.setLayoutParams(new 
ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
ViewGroup.LayoutParams.WRAP_CONTENT));
+            if (!disambig) {
+                View disambigTV = 
headersView.findViewById(R.id.page_info_similar_titles_heading);
+                disambigTV.setVisibility(View.GONE);
+                disambigTV.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        showDisambig();
+                    }
+                });
+            }
+            if (!issues) {
+                View issuesTV = 
headersView.findViewById(R.id.page_info_page_issues_heading);
+                issuesTV.setVisibility(View.GONE);
+                issuesTV.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        showIssues();
+                    }
+                });
+            }
+            if (!(disambig && issues)) {
+                
headersView.findViewById(R.id.page_info_heading_separator).setVisibility(View.GONE);
+            }
+        }
+    }
+
+    private void showDisambig() {
+
+    }
+
+    private void showIssues() {
+
+    }
+}
diff --git 
a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java 
b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
index d2e03bd..befab72 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageViewFragmentInternal.java
@@ -119,6 +119,7 @@
 
     private CommunicationBridge bridge;
     private LinkHandler linkHandler;
+    private PageInfoHandler pageInfoHandler;
     private ReferenceDialog referenceDialog;
     private EditHandler editHandler;
     private NightModeHandler nightModeHandler;
@@ -255,7 +256,7 @@
         retryButton = rootView.findViewById(R.id.page_error_retry);
         pageDoesNotExistError = 
rootView.findViewById(R.id.page_does_not_exist);
         tocDrawer = (DisableableDrawerLayout) 
rootView.findViewById(R.id.page_toc_drawer);
-
+        pageInfoHandler = new 
PageInfoHandler(rootView.findViewById(R.id.page_info_headers));
         return rootView;
     }
 
@@ -404,6 +405,19 @@
     }
 
     private void setupMessageHandlers() {
+        bridge.addListener("pageInfo", new 
CommunicationBridge.JSEventListener() {
+            @Override
+            public void onMessage(String messageType, JSONObject 
messagePayload) {
+                if (!isAdded()) {
+                    return;
+                }
+                try {
+                    
pageInfoHandler.showLinks(messagePayload.getBoolean("hasDisambig"), 
messagePayload.getBoolean("hasIssues"));
+                } catch (JSONException e) {
+                    throw new RuntimeException("fix yer JS");
+                }
+            }
+        });
         bridge.addListener("requestSection", new 
CommunicationBridge.JSEventListener() {
             @Override
             public void onMessage(String messageType, JSONObject 
messagePayload) {
diff --git a/wikipedia/src/main/java/org/wikipedia/page/ReferenceDialog.java 
b/wikipedia/src/main/java/org/wikipedia/page/ReferenceDialog.java
index 58b639a..e9ad170 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/ReferenceDialog.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/ReferenceDialog.java
@@ -1,45 +1,22 @@
 package org.wikipedia.page;
 
-import android.app.Dialog;
+import org.wikipedia.R;
 import android.content.Context;
-import android.os.Build;
 import android.text.Html;
 import android.text.Spanned;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.Window;
-import android.view.WindowManager;
 import android.widget.TextView;
-import org.wikipedia.R;
 
-/** Display the currently clicked reference */
-public class ReferenceDialog extends Dialog {
+/**
+ * A dialog that displays the currently clicked reference.
+ */
+public class ReferenceDialog extends BottomDialog {
     private final LinkHandler linkHandler;
     private final TextView referenceText;
 
     public ReferenceDialog(Context context, LinkHandler linkHandler) {
-        super(context);
+        super(context, R.layout.dialog_reference);
         this.linkHandler = linkHandler;
-
-        LayoutInflater inflater = (LayoutInflater) 
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        View dlgLayout = inflater.inflate(R.layout.dialog_reference, null);
-
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
-            getWindow().setDimAmount(0.0f);
-        }
-        requestWindowFeature(Window.FEATURE_NO_TITLE);
-        setContentView(dlgLayout);
-
-        getWindow().setBackgroundDrawable(null);
-        WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
-        lp.copyFrom(getWindow().getAttributes());
-        lp.width = WindowManager.LayoutParams.MATCH_PARENT;
-        lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
-        lp.gravity = Gravity.BOTTOM;
-        getWindow().setAttributes(lp);
-
-        referenceText = (TextView) dlgLayout.findViewById(R.id.reference_text);
+        referenceText = (TextView) 
getDialogLayout().findViewById(R.id.reference_text);
     }
 
     void updateReference(String refHtml) {
diff --git 
a/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java 
b/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
index 63a9abe..6bb09aa 100644
--- 
a/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
+++ 
b/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
@@ -8,6 +8,7 @@
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.nineoldandroids.view.ViewHelper;
@@ -253,7 +254,7 @@
             webViewPadding = (int) ((pageTitleContainer.getHeight() / 
displayDensity))
                     + DISABLED_OFFSET_DP;
             imageContainer.setLayoutParams(new 
FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
-                    FrameLayout.LayoutParams.WRAP_CONTENT));
+                                                                         
FrameLayout.LayoutParams.WRAP_CONTENT));
             // hide the lead image
             image1.setVisibility(View.GONE);
             // set the color of the title
diff --git a/www/js/actions.js b/www/js/actions.js
index cb1a786..7e113bb 100644
--- a/www/js/actions.js
+++ b/www/js/actions.js
@@ -65,30 +65,6 @@
         curNode = curNode.parentNode;
     }
 
-    function collectIssues( sourceNode ) {
-        var res = [];
-        var issues = sourceNode.parentNode.querySelectorAll( 'table.ambox' );
-        var i = 0,
-            len = issues.length;
-        for (; i < len; i++) {
-            // .ambox- is used e.g. on eswiki
-            res.push( issues[i].querySelector( '.mbox-text, .ambox-text' 
).innerHTML );
-        }
-
-        bridge.sendMessage( 'issuesClicked', { "issues": res } );
-    }
-
-    function handleDisambig( sourceNode ) {
-        var res = [];
-        var hatnotes = sourceNode.parentNode.querySelectorAll( 'div.hatnote' );
-        var i = 0,
-            len = hatnotes.length;
-        for (; i < len; i++) {
-            res.push( hatnotes[i].innerHTML );
-        }
-        bridge.sendMessage( 'disambigClicked', { "hatnotes": res } );
-    }
-
     if (sourceNode) {
         if ( sourceNode.hasAttribute( "data-action" ) ) {
             var action = sourceNode.getAttribute( "data-action" );
@@ -115,4 +91,32 @@
     }
 };
 
+bridge.registerListener( "collectDisambig", function( payload ) {
+    collectDisambig( payload.anchor, false );
+});
+
+function collectDisambig( sourceNode ) {
+    var res = [];
+    var hatnotes = sourceNode.parentNode.querySelectorAll( 'div.hatnote' );
+    var i = 0,
+        len = hatnotes.length;
+    for (; i < len; i++) {
+        res.push( hatnotes[i].innerHTML );
+    }
+    bridge.sendMessage( 'disambigClicked', { "hatnotes": res } );
+}
+
+function collectIssues( sourceNode ) {
+    var res = [];
+    var issues = sourceNode.parentNode.querySelectorAll( 'table.ambox' );
+    var i = 0,
+        len = issues.length;
+    for (; i < len; i++) {
+        // .ambox- is used e.g. on eswiki
+        res.push( issues[i].querySelector( '.mbox-text, .ambox-text' 
).innerHTML );
+    }
+
+    bridge.sendMessage( 'issuesClicked', { "issues": res } );
+}
+
 module.exports = new ActionsHandler();
diff --git a/www/js/issues.js b/www/js/issues.js
index 098c1c9..e69de29 100644
--- a/www/js/issues.js
+++ b/www/js/issues.js
@@ -1,23 +0,0 @@
-var transformer = require('./transformer');
-
-transformer.register( 'displayIssuesLink', function( content ) {
-    var issues = content.querySelectorAll( 
"table.ambox:not([class*='ambox-multiple_issues']):not([class*='ambox-notice'])"
 );
-    if ( issues.length > 0 ) {
-        var el = issues[0];
-        var container = document.getElementById( "issues_container" );
-        var wrapper = document.createElement( 'div' );
-        var link = document.createElement( 'a' );
-        link.setAttribute( 'href', '#issues' );
-        link.className = 'issues_button';
-        link.id = 'issues_button';
-        wrapper.appendChild( link );
-        el.parentNode.replaceChild( wrapper, el );
-        var i = 0,
-            len = issues.length;
-        for (; i < len; i++) {
-            wrapper.appendChild( issues[i] );
-        }
-        container.appendChild( wrapper );
-    }
-    return content;
-} );
diff --git a/www/js/sections.js b/www/js/sections.js
index 0450ee3..9bddb17 100644
--- a/www/js/sections.js
+++ b/www/js/sections.js
@@ -37,30 +37,19 @@
 
     content = transformer.transform( "leadSection", content );
     content = transformer.transform( "section", content );
-    content = transformer.transform("displayDisambigLink", content);
-    content = transformer.transform("displayIssuesLink", content);
 
-    //if there were no page issues, then hide the container
-    if (!issuesContainer.hasChildNodes()) {
-        document.getElementById( "content" ).removeChild(issuesContainer);
+    var hasDisambig = false;
+    var hatnotes = content.querySelectorAll( "div.hatnote" );
+    if ( hatnotes.length > 0 ) {
+        hasDisambig = true;
     }
-    //update the text of the disambiguation link, if there is one
-    var disambigBtn = document.getElementById( "disambig_button" );
-    if (disambigBtn !== null) {
-        disambigBtn.innerText = payload.string_page_similar_titles;
+    var hasIssues = false;
+    var issues = content.querySelectorAll( 
"table.ambox:not([class*='ambox-multiple_issues']):not([class*='ambox-notice'])"
 );
+    if ( issues.length > 0 ) {
+        hasIssues = true;
     }
-    //update the text of the page-issues link, if there is one
-    var issuesBtn = document.getElementById( "issues_button" );
-    if (issuesBtn !== null) {
-        issuesBtn.innerText = payload.string_page_issues;
-    }
-    //if we have both issues and disambiguation, then insert the separator
-    if (issuesBtn !== null && disambigBtn !== null) {
-        var separator = document.createElement( 'span' );
-        separator.innerText = '|';
-        separator.className = 'issues_separator';
-        issuesContainer.insertBefore(separator, issuesBtn.parentNode);
-    }
+    console.log( "BBB: " + hasDisambig + ", hasIssues" + hasIssues );
+    bridge.sendMessage( "pageInfo", { "hasDisambig": hasDisambig, "hasIssues": 
hasIssues } );
 
     document.getElementById( "content" ).appendChild( content );
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8e4a9d9564625115a7a886a26dee3520b6972d6a
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: BearND <bsitzm...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to