[MediaWiki-commits] [Gerrit] Make sure dir attribute is set on RTL pages - change (apps...wikipedia)
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)
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