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

Change subject: One more thing with language variants in WikiSite.
......................................................................

One more thing with language variants in WikiSite.

This correctly extracts the subdomain from any arbitrary language variant
of the form {base-variant}, including variants that aren't currently known
to the app, such as "zh-sg", "en-redneck".

Change-Id: I683f0ad85ca05cbcbdb62e6aa17fb2ff2256f523
---
M app/src/main/java/org/wikipedia/dataclient/WikiSite.java
M app/src/test/java/org/wikipedia/dataclient/WikiSiteTest.java
2 files changed, 22 insertions(+), 1 deletion(-)


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

diff --git a/app/src/main/java/org/wikipedia/dataclient/WikiSite.java 
b/app/src/main/java/org/wikipedia/dataclient/WikiSite.java
index 0802c8e..75d2a36 100644
--- a/app/src/main/java/org/wikipedia/dataclient/WikiSite.java
+++ b/app/src/main/java/org/wikipedia/dataclient/WikiSite.java
@@ -261,8 +261,18 @@
             case AppLanguageLookUpTable.NORWEGIAN_BOKMAL_LANGUAGE_CODE:
                 return AppLanguageLookUpTable.NORWEGIAN_LEGACY_LANGUAGE_CODE; 
// T114042
             default:
-                return languageCode;
+                break;
         }
+        if (languageCode.contains("-")) {
+            // Handle any arbitrary language variant of the form 
{"base-variant"}
+            // whereby the "base" becomes the subdomain, regardless of the 
variant remainder,
+            // such as "zh-tw" or "en-cockney".
+            String[] parts = languageCode.split("-");
+            if (parts.length > 0 && !TextUtils.isEmpty(parts[0])) {
+                return parts[0];
+            }
+        }
+        return languageCode;
     }
 
     @NonNull private static String authorityToLanguageCode(@NonNull String 
authority) {
diff --git a/app/src/test/java/org/wikipedia/dataclient/WikiSiteTest.java 
b/app/src/test/java/org/wikipedia/dataclient/WikiSiteTest.java
index b394001..2e7de0b 100644
--- a/app/src/test/java/org/wikipedia/dataclient/WikiSiteTest.java
+++ b/app/src/test/java/org/wikipedia/dataclient/WikiSiteTest.java
@@ -118,6 +118,17 @@
         assertThat(subject.url(), is("http://zh.wikipedia.org";));
     }
 
+    @Test public void testCtorUriArbitraryLangVariant() {
+        WikiSite subject = new WikiSite("en.wikipedia.org/en-cockney/Foo");
+        assertThat(subject.authority(), is("en.wikipedia.org"));
+        assertThat(subject.mobileAuthority(), is("en.m.wikipedia.org"));
+        assertThat(subject.subdomain(), is("en"));
+        assertThat(subject.languageCode(), is("en-cockney"));
+        assertThat(subject.scheme(), is("https"));
+        assertThat(subject.dbName(), is("enwiki"));
+        assertThat(subject.url(), is("https://en.wikipedia.org";));
+    }
+
     @Test public void testCtorParcel() throws Throwable {
         WikiSite subject = WikiSite.forLanguageCode("test");
         TestParcelUtil.test(subject);

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I683f0ad85ca05cbcbdb62e6aa17fb2ff2256f523
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