[MediaWiki-commits] [Gerrit] Make sure dir attribute is set on RTL pages - change (apps...wikipedia)

2014-02-27 Thread Yuvipanda (Code Review)
Yuvipanda has uploaded a new change for review.

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

Change subject: Make sure dir attribute is set on RTL pages
..

Make sure dir attribute is set on RTL pages

Bug: 61867
Change-Id: Ib1479511c99e188eb2f79262255048142d2a276d
---
M wikipedia/assets/abusefilter.js
M wikipedia/assets/bundle.js
M wikipedia/assets/preview.js
M wikipedia/src/main/java/org/wikipedia/Utils.java
M wikipedia/src/main/java/org/wikipedia/editing/EditPreviewFragment.java
M wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
M wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
M www/Gruntfile.js
M www/abusefilter.js
A www/js/rtlsupport.js
M www/preview.js
11 files changed, 87 insertions(+), 18 deletions(-)


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

diff --git a/wikipedia/assets/abusefilter.js b/wikipedia/assets/abusefilter.js
index 0c16147..00a511b 100644
--- a/wikipedia/assets/abusefilter.js
+++ b/wikipedia/assets/abusefilter.js
@@ -21,7 +21,7 @@
 content.appendChild( warning );
 } );
 
-},{./bridge:2,./transformer:3}],2:[function(require,module,exports){
+},{./bridge:2,./transformer:4}],2:[function(require,module,exports){
 function Bridge() {
 }
 
@@ -60,6 +60,12 @@
 module.exports.sendMessage( DOMLoaded, {} );
 };
 },{}],3:[function(require,module,exports){
+var bridge = require(./bridge);
+
+bridge.registerListener( setDirectionality, function( payload ) {
+document.getElementsByTagName( html )[0].setAttribute( dir, 
payload.dir );
+} );
+},{./bridge:2}],4:[function(require,module,exports){
 function Transformer() {
 }
 
@@ -83,4 +89,4 @@
 
 module.exports = new Transformer();
 
-},{}]},{},[2,1])
\ No newline at end of file
+},{}]},{},[2,1,3])
\ No newline at end of file
diff --git a/wikipedia/assets/bundle.js b/wikipedia/assets/bundle.js
index 9089297..98ac29b 100644
--- a/wikipedia/assets/bundle.js
+++ b/wikipedia/assets/bundle.js
@@ -98,6 +98,12 @@
 } );
 },{./bridge:2}],5:[function(require,module,exports){
 var bridge = require(./bridge);
+
+bridge.registerListener( setDirectionality, function( payload ) {
+document.getElementsByTagName( html )[0].setAttribute( dir, 
payload.dir );
+} );
+},{./bridge:2}],6:[function(require,module,exports){
+var bridge = require(./bridge);
 var transformer = require(./transformer);
 
 bridge.registerListener( displayLeadSection, function( payload ) {
@@ -164,7 +170,7 @@
 window.scrollTo(0, scrollY);
 });
 
-},{./bridge:2,./transformer:6}],6:[function(require,module,exports){
+},{./bridge:2,./transformer:7}],7:[function(require,module,exports){
 function Transformer() {
 }
 
@@ -188,7 +194,7 @@
 
 module.exports = new Transformer();
 
-},{}],7:[function(require,module,exports){
+},{}],8:[function(require,module,exports){
 var bridge = require(./bridge);
 var transformer = require(./transformer);
 
@@ -226,4 +232,4 @@
 return content;
 } );
 
-},{./bridge:2,./transformer:6}]},{},[4,6,7,2,1,3,5])
\ No newline at end of file
+},{./bridge:2,./transformer:7}]},{},[4,7,8,2,1,3,6,5])
\ No newline at end of file
diff --git a/wikipedia/assets/preview.js b/wikipedia/assets/preview.js
index da569cf..1e8c969 100644
--- a/wikipedia/assets/preview.js
+++ b/wikipedia/assets/preview.js
@@ -77,4 +77,10 @@
 content.innerHTML = payload.html;
 } );
 
-},{./bridge:2}]},{},[2,1,3])
\ No newline at end of file
+},{./bridge:2}],4:[function(require,module,exports){
+var bridge = require(./bridge);
+
+bridge.registerListener( setDirectionality, function( payload ) {
+document.getElementsByTagName( html )[0].setAttribute( dir, 
payload.dir );
+} );
+},{./bridge:2}]},{},[2,1,3,4])
\ No newline at end of file
diff --git a/wikipedia/src/main/java/org/wikipedia/Utils.java 
b/wikipedia/src/main/java/org/wikipedia/Utils.java
index a669489..1af1563 100644
--- a/wikipedia/src/main/java/org/wikipedia/Utils.java
+++ b/wikipedia/src/main/java/org/wikipedia/Utils.java
@@ -294,5 +294,30 @@
 return wikipedia-android-official;
 }
 }
+
+/**
+ * List of wiki language codes for which the content is primarily RTL.
+ *
+ * Ensure that this is always sorted alphabetically.
+ */
+private static String[] rtlLangs = {
+arc, arz, ar, bcc, bqi, ckb, dv, fa, glk, ha, 
he,
+khw, ks, mzn, pnb, ps, sd, ug, ur, yi
+};
+public static void setupDirectionality(String lang, CommunicationBridge 
bridge) {
+JSONObject payload = new JSONObject();
+try {
+if (Arrays.binarySearch(rtlLangs, lang, null)  0) {
+payload.put(dir, ltr);
+} else {
+payload.put(dir, rtl);
+}
+Log.d(Wikipedia, lang);
+Log.d(Wikipedia, payload.toString(4));
+} catch (JSONException e) {
+throw new RuntimeException(e);
+}
+

[MediaWiki-commits] [Gerrit] Make sure dir attribute is set on RTL pages - change (apps...wikipedia)

2014-02-27 Thread Brion VIBBER (Code Review)
Brion VIBBER has submitted this change and it was merged.

Change subject: Make sure dir attribute is set on RTL pages
..


Make sure dir attribute is set on RTL pages

Bug: 61867
Change-Id: Ib1479511c99e188eb2f79262255048142d2a276d
---
M wikipedia/assets/abusefilter.js
M wikipedia/assets/bundle.js
M wikipedia/assets/preview.js
M wikipedia/src/main/java/org/wikipedia/Utils.java
M wikipedia/src/main/java/org/wikipedia/editing/EditPreviewFragment.java
M wikipedia/src/main/java/org/wikipedia/editing/EditSectionActivity.java
M wikipedia/src/main/java/org/wikipedia/page/PageViewFragment.java
M www/Gruntfile.js
M www/abusefilter.js
A www/js/rtlsupport.js
M www/preview.js
11 files changed, 88 insertions(+), 18 deletions(-)

Approvals:
  Brion VIBBER: Verified; Looks good to me, approved



diff --git a/wikipedia/assets/abusefilter.js b/wikipedia/assets/abusefilter.js
index 0c16147..00a511b 100644
--- a/wikipedia/assets/abusefilter.js
+++ b/wikipedia/assets/abusefilter.js
@@ -21,7 +21,7 @@
 content.appendChild( warning );
 } );
 
-},{./bridge:2,./transformer:3}],2:[function(require,module,exports){
+},{./bridge:2,./transformer:4}],2:[function(require,module,exports){
 function Bridge() {
 }
 
@@ -60,6 +60,12 @@
 module.exports.sendMessage( DOMLoaded, {} );
 };
 },{}],3:[function(require,module,exports){
+var bridge = require(./bridge);
+
+bridge.registerListener( setDirectionality, function( payload ) {
+document.getElementsByTagName( html )[0].setAttribute( dir, 
payload.dir );
+} );
+},{./bridge:2}],4:[function(require,module,exports){
 function Transformer() {
 }
 
@@ -83,4 +89,4 @@
 
 module.exports = new Transformer();
 
-},{}]},{},[2,1])
\ No newline at end of file
+},{}]},{},[2,1,3])
\ No newline at end of file
diff --git a/wikipedia/assets/bundle.js b/wikipedia/assets/bundle.js
index 9089297..98ac29b 100644
--- a/wikipedia/assets/bundle.js
+++ b/wikipedia/assets/bundle.js
@@ -98,6 +98,12 @@
 } );
 },{./bridge:2}],5:[function(require,module,exports){
 var bridge = require(./bridge);
+
+bridge.registerListener( setDirectionality, function( payload ) {
+document.getElementsByTagName( html )[0].setAttribute( dir, 
payload.dir );
+} );
+},{./bridge:2}],6:[function(require,module,exports){
+var bridge = require(./bridge);
 var transformer = require(./transformer);
 
 bridge.registerListener( displayLeadSection, function( payload ) {
@@ -164,7 +170,7 @@
 window.scrollTo(0, scrollY);
 });
 
-},{./bridge:2,./transformer:6}],6:[function(require,module,exports){
+},{./bridge:2,./transformer:7}],7:[function(require,module,exports){
 function Transformer() {
 }
 
@@ -188,7 +194,7 @@
 
 module.exports = new Transformer();
 
-},{}],7:[function(require,module,exports){
+},{}],8:[function(require,module,exports){
 var bridge = require(./bridge);
 var transformer = require(./transformer);
 
@@ -226,4 +232,4 @@
 return content;
 } );
 
-},{./bridge:2,./transformer:6}]},{},[4,6,7,2,1,3,5])
\ No newline at end of file
+},{./bridge:2,./transformer:7}]},{},[4,7,8,2,1,3,6,5])
\ No newline at end of file
diff --git a/wikipedia/assets/preview.js b/wikipedia/assets/preview.js
index da569cf..1e8c969 100644
--- a/wikipedia/assets/preview.js
+++ b/wikipedia/assets/preview.js
@@ -77,4 +77,10 @@
 content.innerHTML = payload.html;
 } );
 
-},{./bridge:2}]},{},[2,1,3])
\ No newline at end of file
+},{./bridge:2}],4:[function(require,module,exports){
+var bridge = require(./bridge);
+
+bridge.registerListener( setDirectionality, function( payload ) {
+document.getElementsByTagName( html )[0].setAttribute( dir, 
payload.dir );
+} );
+},{./bridge:2}]},{},[2,1,3,4])
\ No newline at end of file
diff --git a/wikipedia/src/main/java/org/wikipedia/Utils.java 
b/wikipedia/src/main/java/org/wikipedia/Utils.java
index b394b5c..b2b7388 100644
--- a/wikipedia/src/main/java/org/wikipedia/Utils.java
+++ b/wikipedia/src/main/java/org/wikipedia/Utils.java
@@ -305,5 +305,30 @@
 return wikipedia-android-official;
 }
 }
+
+/**
+ * List of wiki language codes for which the content is primarily RTL.
+ *
+ * Ensure that this is always sorted alphabetically.
+ */
+private static String[] rtlLangs = {
+arc, arz, ar, bcc, bqi, ckb, dv, fa, glk, ha, 
he,
+khw, ks, mzn, pnb, ps, sd, ug, ur, yi
+};
+public static void setupDirectionality(String lang, CommunicationBridge 
bridge) {
+JSONObject payload = new JSONObject();
+try {
+if (Arrays.binarySearch(rtlLangs, lang, null)  0) {
+payload.put(dir, ltr);
+} else {
+payload.put(dir, rtl);
+}
+Log.d(Wikipedia, lang);
+Log.d(Wikipedia, payload.toString(4));
+} catch (JSONException e) {
+throw new RuntimeException(e);
+}
+bridge.sendMessage(setDirectionality, payload);
+}
 }
 
diff --git