Niedzielski has uploaded a new change for review.
https://gerrit.wikimedia.org/r/319241
Change subject: Update deprecated APIs
......................................................................
Update deprecated APIs
Bug: T144318
Change-Id: I9cdc208f2f61c940ba6aeedb153703ca16d83a05
---
M app/src/androidTest/java/org/wikipedia/test/TranslationTests.java
M app/src/androidTest/java/org/wikipedia/test/view/ViewTest.java
M app/src/main/java/org/wikipedia/ViewAnimations.java
M app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppExceptionHandler.java
M app/src/main/java/org/wikipedia/editing/preview/EditPreviewFragment.java
M app/src/main/java/org/wikipedia/editing/richtext/SyntaxHighlighter.java
M app/src/main/java/org/wikipedia/editing/summaries/EditSummaryHandler.java
M app/src/main/java/org/wikipedia/editing/summaries/EditSummaryTag.java
M app/src/main/java/org/wikipedia/feed/continuereading/LastPageReadTask.java
M app/src/main/java/org/wikipedia/news/NewsFragment.java
M app/src/main/java/org/wikipedia/page/PageFragment.java
M app/src/main/java/org/wikipedia/page/PageToolbarHideHandler.java
M app/src/main/java/org/wikipedia/page/ToCHandler.java
M
app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
M app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
M app/src/main/java/org/wikipedia/page/leadimages/ArticleHeaderImageView.java
M app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
M app/src/main/java/org/wikipedia/page/snippet/SnippetImage.java
M app/src/main/java/org/wikipedia/readinglist/ReadingListDetailView.java
M app/src/main/java/org/wikipedia/richtext/AudioUrlSpan.java
M app/src/main/java/org/wikipedia/tooltip/ToolTipUtil.java
A app/src/main/java/org/wikipedia/util/ConfigurationCompat.java
A app/src/main/java/org/wikipedia/util/ContentProviderClientCompat.java
M app/src/main/java/org/wikipedia/util/L10nUtil.java
M app/src/main/java/org/wikipedia/util/StringUtil.java
M app/src/main/java/org/wikipedia/views/DontInterceptTouchListener.java
M app/src/main/java/org/wikipedia/views/DrawableItemDecoration.java
M app/src/main/java/org/wikipedia/views/FaceAndColorDetectImageView.java
M app/src/test/java/org/wikipedia/page/NamespaceTest.java
M app/src/test/java/org/wikipedia/zero/ZeroConfigTypeAdapterTest.java
30 files changed, 186 insertions(+), 163 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/41/319241/1
diff --git a/app/src/androidTest/java/org/wikipedia/test/TranslationTests.java
b/app/src/androidTest/java/org/wikipedia/test/TranslationTests.java
index 0a9a15f..9b7df81 100644
--- a/app/src/androidTest/java/org/wikipedia/test/TranslationTests.java
+++ b/app/src/androidTest/java/org/wikipedia/test/TranslationTests.java
@@ -11,6 +11,7 @@
import org.junit.Test;
import org.wikipedia.R;
import org.wikipedia.model.BaseModel;
+import org.wikipedia.util.ConfigurationCompat;
import org.wikipedia.util.log.L;
import java.lang.reflect.Field;
@@ -114,7 +115,7 @@
Locale.setDefault(myLocale);
DisplayMetrics dm = getResources().getDisplayMetrics();
Configuration conf = getResources().getConfiguration();
- conf.locale = myLocale;
+ ConfigurationCompat.setLocale(conf, myLocale);
getResources().updateConfiguration(conf, dm);
}
diff --git a/app/src/androidTest/java/org/wikipedia/test/view/ViewTest.java
b/app/src/androidTest/java/org/wikipedia/test/view/ViewTest.java
index 3373afc..bfe0b0b 100644
--- a/app/src/androidTest/java/org/wikipedia/test/view/ViewTest.java
+++ b/app/src/androidTest/java/org/wikipedia/test/view/ViewTest.java
@@ -12,7 +12,6 @@
import android.support.annotation.StringRes;
import android.support.test.InstrumentationRegistry;
import android.support.v4.text.TextUtilsCompat;
-import android.support.v4.view.ViewCompat;
import android.support.v7.view.ContextThemeWrapper;
import android.view.View;
import android.widget.TextView;
@@ -83,7 +82,7 @@
protected void snap(@NonNull View subject, @Nullable String... dataPoints)
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
int rtl = layoutDirection == LayoutDirection.RTL
- ? ViewCompat.LAYOUT_DIRECTION_RTL
+ ? View.LAYOUT_DIRECTION_RTL
: TextUtilsCompat.getLayoutDirectionFromLocale(locale);
//noinspection WrongConstant
subject.setLayoutDirection(rtl);
diff --git a/app/src/main/java/org/wikipedia/ViewAnimations.java
b/app/src/main/java/org/wikipedia/ViewAnimations.java
index 652ad32..731813d 100644
--- a/app/src/main/java/org/wikipedia/ViewAnimations.java
+++ b/app/src/main/java/org/wikipedia/ViewAnimations.java
@@ -1,12 +1,10 @@
package org.wikipedia;
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
import android.content.res.Resources;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.ViewPropertyAnimatorListener;
-import android.support.v4.view.ViewPropertyAnimatorListenerAdapter;
+import android.support.annotation.Nullable;
import android.view.View;
-
-import static android.support.v4.view.ViewCompat.animate;
/**
* Contains convenient methods for performing various animations on Views.
@@ -27,7 +25,7 @@
* @param curView The view that is currently visible
* @param newView The new view that should be faded in
*/
- public static void crossFade(final View curView, final View newView) {
+ public static void crossFade(View curView, View newView) {
fadeIn(newView);
fadeOut(curView);
}
@@ -38,7 +36,7 @@
* @param newView The new view that should be faded in
* @param runOnComplete Optional Runnable to be run when the animation is
complete (may be null).
*/
- public static void crossFade(final View curView, final View newView, final
Runnable runOnComplete) {
+ public static void crossFade(View curView, View newView, Runnable
runOnComplete) {
fadeIn(newView);
fadeOut(curView, runOnComplete);
}
@@ -47,7 +45,7 @@
* Fades in a view.
* @param view The currently invisible view to be faded in
*/
- public static void fadeIn(final View view) {
+ public static void fadeIn(View view) {
fadeIn(view, null);
}
@@ -56,23 +54,15 @@
* @param view The currently invisible view to be faded in
* @param runOnComplete Optional Runnable to be run when the animation is
complete (may be null).
*/
- public static void fadeIn(View view, final Runnable runOnComplete) {
- ViewCompat.setAlpha(view, 0f);
+ public static void fadeIn(View view, @Nullable final Runnable
runOnComplete) {
+ view.setAlpha(0);
view.setVisibility(View.VISIBLE);
- animate(view)
- .alpha(1.0f)
+ view.animate()
+ .alpha(1)
.setDuration(MEDIUM_ANIMATION_DURATION)
- .setListener(new ViewPropertyAnimatorListenerAdapter() {
- private boolean wasCanceled = false;
-
- @Override
- public void onAnimationCancel(View view) {
- wasCanceled = true;
- }
-
- @Override
- public void onAnimationEnd(View view) {
- if (!wasCanceled) {
+ .setListener(new CancelStateAnimatorListenerAdapter() {
+ @Override public void onAnimationEnd(Animator animation) {
+ if (!canceled()) {
if (runOnComplete != null) {
runOnComplete.run();
}
@@ -96,82 +86,21 @@
* @param runOnComplete Optional Runnable to be run when the animation is
complete (may be null).
*/
public static void fadeOut(final View view, final Runnable runOnComplete) {
- animate(view)
- .alpha(0f)
+ view.animate().cancel();
+ view.animate()
+ .alpha(0)
.setDuration(MEDIUM_ANIMATION_DURATION)
- .setListener(new ViewPropertyAnimatorListenerAdapter() {
- private boolean wasCanceled = false;
-
- @Override
- public void onAnimationCancel(View view) {
- wasCanceled = true;
- }
-
- @Override
- public void onAnimationEnd(View view) {
- if (!wasCanceled) {
+ .setListener(new CancelStateAnimatorListenerAdapter() {
+ @Override public void onAnimationEnd(Animator animation) {
+ if (!canceled()) {
// Detect if we got canceled, and if so DON'T
hide...
// There's another animation now pushing the alpha
back up
view.setVisibility(View.GONE);
- ViewCompat.setAlpha(view, 1.0f);
+ view.setAlpha(1);
if (runOnComplete != null) {
runOnComplete.run();
}
}
- }
- })
- .start();
- }
-
- /**
- * Slides a view back in (after being slid to the left or right), and
makes it VISIBLE again.
- * @param view The view to slide in
- * @param listener Listener for receiving animation events (may be null)
- */
- public static void slideIn(View view, ViewPropertyAnimatorListener
listener) {
- animate(view)
- .translationX(0)
- .setDuration(SHORT_ANIMATION_DURATION)
- .setListener(listener != null ? listener : new
ViewPropertyAnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(View view) {
- view.setVisibility(View.VISIBLE);
- }
- })
- .start();
- }
-
- /**
- * Slides a view out to the left (and makes it GONE).
- * @param view The view to slide out
- * @param listener Listener for receiving animation events (may be null)
- */
- public static void slideOutLeft(View view, ViewPropertyAnimatorListener
listener) {
- animate(view)
- .translationX(-view.getWidth())
- .setDuration(SHORT_ANIMATION_DURATION)
- .setListener(listener != null ? listener : new
ViewPropertyAnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(View view) {
- view.setVisibility(View.GONE);
- }
- })
- .start();
- }
-
- /**
- * Slides a view out to the right (and makes it GONE).
- * @param view The view to slide out
- * @param listener Listener for receiving animation events (may be null)
- */
- public static void slideOutRight(View view, ViewPropertyAnimatorListener
listener) {
- animate(view)
- .translationX(view.getWidth())
- .setDuration(SHORT_ANIMATION_DURATION)
- .setListener(listener != null ? listener : new
ViewPropertyAnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(View view) {
- view.setVisibility(View.GONE);
}
})
.start();
@@ -187,21 +116,19 @@
*/
public static void ensureTranslationY(View view, int translation) {
if (view.getTranslationY() != translation) {
-
animate(view).translationY(translation).setDuration(SHORT_ANIMATION_DURATION).start();
+
view.animate().translationY(translation).setDuration(SHORT_ANIMATION_DURATION).start();
}
}
- /**
- * Ensures that the translationX of a particular view is the given value.
- *
- * If it isn't the current value, then it performs a short animation to
make it so.
- *
- * @param view The view to translate
- * @param translation The value to ensure it is translated by
- */
- public static void ensureTranslationX(View view, int translation) {
- if (view.getTranslationX() != translation) {
-
animate(view).translationX(translation).setDuration(SHORT_ANIMATION_DURATION).start();
+ private static class CancelStateAnimatorListenerAdapter extends
AnimatorListenerAdapter {
+ private boolean canceled;
+
+ @Override public void onAnimationCancel(Animator animation) {
+ canceled = true;
+ }
+
+ protected boolean canceled() {
+ return canceled;
}
}
-}
+}
\ No newline at end of file
diff --git
a/app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppExceptionHandler.java
b/app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppExceptionHandler.java
index 11bcfcb..4bd0806 100644
---
a/app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppExceptionHandler.java
+++
b/app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppExceptionHandler.java
@@ -39,7 +39,7 @@
// Always call the default handler instead
defaultExceptionHandler.uncaughtException(thread, exception);
} else {
- saveException(exception, listener);
+ saveException(exception, null, listener);
if (!ignoreDefaultHandler) {
defaultExceptionHandler.uncaughtException(thread, exception);
diff --git
a/app/src/main/java/org/wikipedia/editing/preview/EditPreviewFragment.java
b/app/src/main/java/org/wikipedia/editing/preview/EditPreviewFragment.java
index 2645d59..ed25eb7 100644
--- a/app/src/main/java/org/wikipedia/editing/preview/EditPreviewFragment.java
+++ b/app/src/main/java/org/wikipedia/editing/preview/EditPreviewFragment.java
@@ -32,6 +32,7 @@
import org.wikipedia.page.LinkHandler;
import org.wikipedia.page.PageActivity;
import org.wikipedia.page.PageTitle;
+import org.wikipedia.util.ConfigurationCompat;
import org.wikipedia.util.L10nUtil;
import org.wikipedia.util.UriUtil;
import org.wikipedia.util.log.L;
@@ -93,12 +94,12 @@
Resources oldResources = getResources();
AssetManager assets = oldResources.getAssets();
DisplayMetrics metrics = oldResources.getDisplayMetrics();
- Locale oldLocale = oldResources.getConfiguration().locale;
+ Locale oldLocale =
ConfigurationCompat.getLocale(oldResources.getConfiguration());
Locale newLocale = new Locale(pageTitle.getWikiSite().languageCode());
Configuration config = new
Configuration(oldResources.getConfiguration());
Resources tempResources = getResources();
if (!oldLocale.getLanguage().equals(newLocale.getLanguage())) {
- config.locale = newLocale;
+ ConfigurationCompat.setLocale(config, newLocale);
tempResources = new Resources(assets, metrics, config);
}
@@ -145,7 +146,7 @@
with the original Locale (from above)
*/
if (!oldLocale.getLanguage().equals(newLocale.getLanguage())) {
- config.locale = oldLocale;
+ ConfigurationCompat.setLocale(config, oldLocale);
new Resources(assets, metrics, config);
}
@@ -423,4 +424,4 @@
}
super.onDetach();
}
-}
+}
\ No newline at end of file
diff --git
a/app/src/main/java/org/wikipedia/editing/richtext/SyntaxHighlighter.java
b/app/src/main/java/org/wikipedia/editing/richtext/SyntaxHighlighter.java
index 8ba8421..d5143a6 100644
--- a/app/src/main/java/org/wikipedia/editing/richtext/SyntaxHighlighter.java
+++ b/app/src/main/java/org/wikipedia/editing/richtext/SyntaxHighlighter.java
@@ -5,8 +5,11 @@
import android.graphics.Typeface;
import android.os.Handler;
import android.os.Looper;
+import android.support.annotation.ColorInt;
+import android.support.annotation.ColorRes;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
+import android.support.v4.content.ContextCompat;
import android.text.Editable;
import android.text.Spanned;
import android.text.TextWatcher;
@@ -58,7 +61,7 @@
syntaxRules.add(new SyntaxRule("{{", "}}", new
SyntaxRule.SyntaxRuleStyle() {
@Override
public SpanExtents createSpan(int spanStart, SyntaxRule
syntaxItem) {
- return new
ColorSpanEx(context.getResources().getColor(getThemedAttributeId(context,
R.attr.syntax_highlight_template_color)),
+ return new ColorSpanEx(getColor(getThemedAttributeId(context,
R.attr.syntax_highlight_template_color)),
Color.TRANSPARENT, spanStart,
syntaxItem);
}
}));
@@ -67,7 +70,7 @@
syntaxRules.add(new SyntaxRule("[[", "]]", new
SyntaxRule.SyntaxRuleStyle() {
@Override
public SpanExtents createSpan(int spanStart, SyntaxRule
syntaxItem) {
- return new
ColorSpanEx(context.getResources().getColor(getThemedAttributeId(context,
R.attr.link_color)),
+ return new ColorSpanEx(getColor(getThemedAttributeId(context,
R.attr.link_color)),
Color.TRANSPARENT, spanStart,
syntaxItem);
}
}));
@@ -76,7 +79,7 @@
syntaxRules.add(new SyntaxRule("[", "]", new
SyntaxRule.SyntaxRuleStyle() {
@Override
public SpanExtents createSpan(int spanStart, SyntaxRule
syntaxItem) {
- return new
ColorSpanEx(context.getResources().getColor(getThemedAttributeId(context,
R.attr.link_color)),
+ return new ColorSpanEx(getColor(getThemedAttributeId(context,
R.attr.link_color)),
Color.TRANSPARENT, spanStart,
syntaxItem);
}
}));
@@ -85,7 +88,7 @@
syntaxRules.add(new SyntaxRule("<", ">", new
SyntaxRule.SyntaxRuleStyle() {
@Override
public SpanExtents createSpan(int spanStart, SyntaxRule
syntaxItem) {
- return new
ColorSpanEx(context.getResources().getColor(R.color.dark_green),
+ return new ColorSpanEx(getColor(R.color.dark_green),
Color.TRANSPARENT, spanStart,
syntaxItem);
}
}));
@@ -308,4 +311,7 @@
}
}
-}
+ @ColorInt private int getColor(@ColorRes int id) {
+ return ContextCompat.getColor(context, id);
+ }
+}
\ No newline at end of file
diff --git
a/app/src/main/java/org/wikipedia/editing/summaries/EditSummaryHandler.java
b/app/src/main/java/org/wikipedia/editing/summaries/EditSummaryHandler.java
index 446c560..45efec0 100644
--- a/app/src/main/java/org/wikipedia/editing/summaries/EditSummaryHandler.java
+++ b/app/src/main/java/org/wikipedia/editing/summaries/EditSummaryHandler.java
@@ -15,6 +15,7 @@
import org.wikipedia.WikipediaApp;
import org.wikipedia.database.contract.EditHistoryContract;
import org.wikipedia.page.PageTitle;
+import org.wikipedia.util.ContentProviderClientCompat;
import java.util.Date;
@@ -54,7 +55,7 @@
} catch (RemoteException e) {
throw new RuntimeException(e);
} finally {
- client.release();
+ ContentProviderClientCompat.close(client);
}
}
});
diff --git
a/app/src/main/java/org/wikipedia/editing/summaries/EditSummaryTag.java
b/app/src/main/java/org/wikipedia/editing/summaries/EditSummaryTag.java
index bbdc1de..84e5f9b 100644
--- a/app/src/main/java/org/wikipedia/editing/summaries/EditSummaryTag.java
+++ b/app/src/main/java/org/wikipedia/editing/summaries/EditSummaryTag.java
@@ -2,6 +2,8 @@
import android.content.Context;
import android.content.res.Resources;
+import android.support.annotation.ColorInt;
+import android.support.v4.content.res.ResourcesCompat;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout.LayoutParams;
@@ -75,6 +77,7 @@
private void updateState() {
setBackgroundResource(selected ?
R.drawable.editpage_improve_tag_selected :
R.drawable.editpage_improve_tag_unselected);
- setTextColor(resources.getColor(selected ? android.R.color.white :
R.color.foundation_blue));
+ @ColorInt int textColor = ResourcesCompat.getColor(resources, selected
? android.R.color.white : R.color.foundation_blue, null);
+ setTextColor(textColor);
}
}
diff --git
a/app/src/main/java/org/wikipedia/feed/continuereading/LastPageReadTask.java
b/app/src/main/java/org/wikipedia/feed/continuereading/LastPageReadTask.java
index 7e5c5bb..bdc409a 100644
--- a/app/src/main/java/org/wikipedia/feed/continuereading/LastPageReadTask.java
+++ b/app/src/main/java/org/wikipedia/feed/continuereading/LastPageReadTask.java
@@ -13,6 +13,7 @@
import org.wikipedia.database.contract.PageHistoryContract;
import org.wikipedia.database.contract.PageImageHistoryContract;
import org.wikipedia.history.HistoryEntry;
+import org.wikipedia.util.ContentProviderClientCompat;
import java.util.Date;
@@ -61,7 +62,7 @@
} catch (RemoteException e) {
throw new RuntimeException(e);
} finally {
- client.release();
+ ContentProviderClientCompat.close(client);
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/org/wikipedia/news/NewsFragment.java
b/app/src/main/java/org/wikipedia/news/NewsFragment.java
index 91d3196..9aa8e13 100644
--- a/app/src/main/java/org/wikipedia/news/NewsFragment.java
+++ b/app/src/main/java/org/wikipedia/news/NewsFragment.java
@@ -5,6 +5,7 @@
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
+import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
@@ -76,7 +77,7 @@
ViewUtil.setTopPaddingDp(toolbar, (int)
DimenUtil.getTranslucentStatusBarHeight(getContext()));
ViewUtil.setBackgroundDrawable(toolbar, GradientUtil.getCubicGradient(
- getResources().getColor(R.color.lead_gradient_start),
Gravity.TOP));
+ ContextCompat.getColor(getContext(),
R.color.lead_gradient_start), Gravity.TOP));
getAppCompatActivity().setSupportActionBar(toolbar);
getAppCompatActivity().getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getAppCompatActivity().getSupportActionBar().setTitle("");
diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java
b/app/src/main/java/org/wikipedia/page/PageFragment.java
index a91527a..2b4c885 100755
--- a/app/src/main/java/org/wikipedia/page/PageFragment.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.java
@@ -11,6 +11,7 @@
import android.support.design.widget.BottomSheetDialogFragment;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
+import android.support.v4.content.ContextCompat;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AlertDialog;
@@ -309,7 +310,7 @@
// Explicitly set background color of the WebView (independently of
CSS, because
// the background may be shown momentarily while the WebView loads
content,
// creating a seizure-inducing effect, or at the very least, a
migraine with aura).
- webView.setBackgroundColor(getResources().getColor(
+ webView.setBackgroundColor(ContextCompat.getColor(getContext(),
getThemedAttributeId(getActivity(),
R.attr.page_background_color)));
bridge = new CommunicationBridge(webView,
"file:///android_asset/index.html");
diff --git a/app/src/main/java/org/wikipedia/page/PageToolbarHideHandler.java
b/app/src/main/java/org/wikipedia/page/PageToolbarHideHandler.java
index 7dd12c5..90be3a4 100644
--- a/app/src/main/java/org/wikipedia/page/PageToolbarHideHandler.java
+++ b/app/src/main/java/org/wikipedia/page/PageToolbarHideHandler.java
@@ -1,12 +1,12 @@
package org.wikipedia.page;
import android.content.Context;
-import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.support.annotation.ColorInt;
import android.support.annotation.ColorRes;
import android.support.annotation.NonNull;
+import android.support.v4.content.ContextCompat;
import android.view.Gravity;
import android.view.View;
@@ -82,10 +82,6 @@
}
@ColorInt private int getColor(@ColorRes int id) {
- return getResources().getColor(id);
- }
-
- @NonNull private Resources getResources() {
- return context.getResources();
+ return ContextCompat.getColor(context, id);
}
}
diff --git a/app/src/main/java/org/wikipedia/page/ToCHandler.java
b/app/src/main/java/org/wikipedia/page/ToCHandler.java
index 4dd67f9..45e9573 100755
--- a/app/src/main/java/org/wikipedia/page/ToCHandler.java
+++ b/app/src/main/java/org/wikipedia/page/ToCHandler.java
@@ -1,6 +1,10 @@
package org.wikipedia.page;
+import android.support.annotation.ColorInt;
+import android.support.annotation.ColorRes;
+import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
+import android.support.v4.content.ContextCompat;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.view.Gravity;
@@ -49,6 +53,7 @@
private final TextView headerView;
private final PageFragment fragment;
private ToCInteractionFunnel funnel;
+ @Nullable private DrawerLayout.DrawerListener drawerListener;
/**
* Flag to track if the drawer is closing because a link was clicked.
@@ -101,7 +106,7 @@
funnel = new ToCInteractionFunnel(WikipediaApp.getInstance(),
WikipediaApp.getInstance().getWikiSite(), 0, 0);
- slidingPane.setDrawerListener(new DrawerLayout.SimpleDrawerListener() {
+ drawerListener = new DrawerLayout.SimpleDrawerListener() {
private boolean sectionRequested = false;
@Override
@@ -134,7 +139,8 @@
sectionRequested = true;
}
}
- });
+ };
+ slidingPane.addDrawerListener(drawerListener); // todo: remove what
was added
}
public void scrollToSection(String sectionAnchor) {
@@ -265,10 +271,10 @@
if (section.getLevel() > 1) {
sectionHeading.setTextColor(
-
WikipediaApp.getInstance().getResources().getColor(getThemedAttributeId(fragment.getContext(),
R.attr.toc_subsection_text_color)));
+ getColor(getThemedAttributeId(fragment.getContext(),
R.attr.toc_subsection_text_color)));
} else {
sectionHeading.setTextColor(
-
WikipediaApp.getInstance().getResources().getColor(getThemedAttributeId(fragment.getContext(),
R.attr.toc_section_text_color)));
+ getColor(getThemedAttributeId(fragment.getContext(),
R.attr.toc_section_text_color)));
}
return convertView;
}
@@ -293,4 +299,8 @@
L.w("ToC onboarding failed", e);
}
}
-}
+
+ @ColorInt private int getColor(@ColorRes int id) {
+ return ContextCompat.getColor(WikipediaApp.getInstance(), id);
+ }
+}
\ No newline at end of file
diff --git
a/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
b/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
index eb5217a..3adb737 100644
---
a/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
+++
b/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
@@ -10,6 +10,7 @@
import org.wikipedia.database.contract.PageHistoryContract;
import org.wikipedia.database.contract.PageImageHistoryContract;
import org.wikipedia.history.HistoryEntry;
+import org.wikipedia.util.ContentProviderClientCompat;
/**
* Get a Read More topic for the main page. This is looking at the history
table.
@@ -58,7 +59,7 @@
} catch (RemoteException e) {
throw new RuntimeException(e);
} finally {
- client.release();
+ ContentProviderClientCompat.close(client);
}
}
}
diff --git a/app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
b/app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
index 7ec2747..c7e3ce9 100644
--- a/app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
+++ b/app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
@@ -7,14 +7,16 @@
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Bundle;
+import android.support.annotation.ColorInt;
+import android.support.annotation.ColorRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
+import android.support.v4.content.ContextCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.Toolbar;
-import android.text.Html;
import android.text.TextUtils;
import android.util.SparseArray;
import android.view.Gravity;
@@ -82,6 +84,7 @@
private ImageView licenseIcon;
private TextView creditText;
private boolean controlsShowing = true;
+ @Nullable private ViewPager.OnPageChangeListener pageChangeListener;
@Nullable private GalleryFunnel funnel;
@Nullable protected GalleryFunnel getFunnel() {
@@ -171,7 +174,7 @@
progressBar = (ProgressBar) findViewById(R.id.gallery_progressbar);
descriptionText = (TextView)
findViewById(R.id.gallery_description_text);
- descriptionText.setShadowLayer(2, 1, 1,
getResources().getColor(R.color.lead_text_shadow));
+ descriptionText.setShadowLayer(2, 1, 1,
color(R.color.lead_text_shadow));
descriptionText.setMovementMethod(linkMovementMethod);
licenseIcon = (ImageView) findViewById(R.id.gallery_license_icon);
@@ -179,7 +182,7 @@
licenseIcon.setOnLongClickListener(licenseLongClickListener);
creditText = (TextView) findViewById(R.id.gallery_credit_text);
- creditText.setShadowLayer(2, 1, 1,
getResources().getColor(R.color.lead_text_shadow));
+ creditText.setShadowLayer(2, 1, 1, color(R.color.lead_text_shadow));
pageTitle = getIntent().getParcelableExtra(EXTRA_PAGETITLE);
initialFilename = getIntent().getStringExtra(EXTRA_FILENAME);
@@ -189,7 +192,8 @@
galleryAdapter = new GalleryItemAdapter(this);
galleryPager = (ViewPager) findViewById(R.id.gallery_item_pager);
galleryPager.setAdapter(galleryAdapter);
- galleryPager.setOnPageChangeListener(new GalleryPageChangeListener());
+ pageChangeListener = new GalleryPageChangeListener();
+ galleryPager.addOnPageChangeListener(pageChangeListener);
funnel = new GalleryFunnel(app, wiki,
getIntent().getIntExtra(EXTRA_SOURCE, 0));
@@ -255,6 +259,12 @@
}
});
}
+ }
+
+ @Override public void onDestroy() {
+ galleryPager.removeOnPageChangeListener(pageChangeListener);
+ pageChangeListener = null;
+ super.onDestroy();
}
private void loadGalleryItemFor(FeaturedImage image) {
@@ -496,11 +506,9 @@
CharSequence descriptionStr = "";
if (item.getMetadata().containsKey("ImageDescription")) {
- descriptionStr = Html
- .fromHtml(item.getMetadata().get("ImageDescription"));
+ descriptionStr =
StringUtil.fromHtml(item.getMetadata().get("ImageDescription"));
} else if (item.getMetadata().containsKey("ObjectName")) {
- descriptionStr = Html
- .fromHtml(item.getMetadata().get("ObjectName"));
+ descriptionStr =
StringUtil.fromHtml(item.getMetadata().get("ObjectName"));
}
if (descriptionStr.length() > 0) {
descriptionText.setText(trim(descriptionStr));
@@ -546,7 +554,7 @@
private void setBackgroundGradient(View view, int gravity) {
ViewUtil.setBackgroundDrawable(view, GradientUtil.getCubicGradient(
- getResources().getColor(R.color.lead_gradient_start),
gravity));
+ color(R.color.lead_gradient_start), gravity));
}
private void initToolbar() {
@@ -623,4 +631,7 @@
}
}
+ @ColorInt private int color(@ColorRes int id) {
+ return ContextCompat.getColor(this, id);
+ }
}
diff --git
a/app/src/main/java/org/wikipedia/page/leadimages/ArticleHeaderImageView.java
b/app/src/main/java/org/wikipedia/page/leadimages/ArticleHeaderImageView.java
index d8acc36..a35c096 100644
---
a/app/src/main/java/org/wikipedia/page/leadimages/ArticleHeaderImageView.java
+++
b/app/src/main/java/org/wikipedia/page/leadimages/ArticleHeaderImageView.java
@@ -6,7 +6,9 @@
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
+import android.support.annotation.ColorInt;
import android.support.annotation.Nullable;
+import android.support.v4.content.ContextCompat;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.Gravity;
@@ -87,8 +89,8 @@
inflate(getContext(), R.layout.view_article_header_image, this);
ButterKnife.bind(this);
- Drawable gradient = getCubicGradient(
- getResources().getColor(R.color.new_lead_gradient_start),
Gravity.BOTTOM);
+ @ColorInt int color = ContextCompat.getColor(getContext(),
R.color.new_lead_gradient_start);
+ Drawable gradient = getCubicGradient(color, Gravity.BOTTOM);
ViewUtil.setBackgroundDrawable(gradientView, gradient);
}
}
diff --git a/app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
b/app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
index 2774cd6..7d706d4 100755
--- a/app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
+++ b/app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
@@ -9,6 +9,7 @@
import android.support.annotation.IntegerRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.v4.content.ContextCompat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -236,7 +237,7 @@
@ColorInt
private int getColor(@ColorRes int id) {
- return getResources().getColor(id);
+ return ContextCompat.getColor(fragment.getContext(), id);
}
private int getInteger(@IntegerRes int id) {
diff --git a/app/src/main/java/org/wikipedia/page/snippet/SnippetImage.java
b/app/src/main/java/org/wikipedia/page/snippet/SnippetImage.java
index 2f99a09..7641131 100644
--- a/app/src/main/java/org/wikipedia/page/snippet/SnippetImage.java
+++ b/app/src/main/java/org/wikipedia/page/snippet/SnippetImage.java
@@ -11,6 +11,7 @@
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Build;
+import android.support.v4.content.ContextCompat;
import android.text.Layout;
import android.text.Spanned;
import android.text.StaticLayout;
@@ -226,7 +227,7 @@
left = right - SnippetImage.ICONS_WIDTH;
}
- Drawable d =
context.getResources().getDrawable(shouldDefaultToCCLicense() ?
R.drawable.ic_license_cc : license.getLicenseIcon());
+ Drawable d = ContextCompat.getDrawable(context,
shouldDefaultToCCLicense() ? R.drawable.ic_license_cc :
license.getLicenseIcon());
d.setBounds(left, top, right, bottom);
d.draw(canvas);
}
@@ -246,7 +247,7 @@
final int bottom = HEIGHT - BOTTOM_PADDING;
final int top = bottom - height;
- Drawable d =
context.getResources().getDrawable(R.drawable.wp_wordmark);
+ Drawable d = ContextCompat.getDrawable(context,
R.drawable.wp_wordmark);
DrawableUtil.setTint(d, Color.LTGRAY);
int left = WIDTH - HORIZONTAL_PADDING - width;
diff --git
a/app/src/main/java/org/wikipedia/readinglist/ReadingListDetailView.java
b/app/src/main/java/org/wikipedia/readinglist/ReadingListDetailView.java
index 8a775a2..5a21fa4 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListDetailView.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListDetailView.java
@@ -11,6 +11,7 @@
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.graphics.drawable.VectorDrawableCompat;
+import android.support.v4.content.ContextCompat;
import android.support.v7.widget.LinearLayoutCompat;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
@@ -285,7 +286,8 @@
deleteBackgroundPaint.setStyle(Paint.Style.FILL);
deleteBackgroundPaint.setColor(Color.RED);
itemBackgroundPaint.setStyle(Paint.Style.FILL);
-
itemBackgroundPaint.setColor(getResources().getColor(ResourceUtil.getThemedAttributeId(getContext(),
R.attr.window_background_color)));
+ itemBackgroundPaint.setColor(ContextCompat.getColor(getContext(),
+ ResourceUtil.getThemedAttributeId(getContext(),
R.attr.window_background_color)));
}
@Override
diff --git a/app/src/main/java/org/wikipedia/richtext/AudioUrlSpan.java
b/app/src/main/java/org/wikipedia/richtext/AudioUrlSpan.java
index 35c0972..8d78502 100644
--- a/app/src/main/java/org/wikipedia/richtext/AudioUrlSpan.java
+++ b/app/src/main/java/org/wikipedia/richtext/AudioUrlSpan.java
@@ -12,6 +12,7 @@
import android.support.annotation.DimenRes;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
+import android.support.v4.content.ContextCompat;
import android.view.View;
import android.widget.TextView;
@@ -150,7 +151,7 @@
}
private static Drawable getDrawable(Context context, @DrawableRes int id) {
- return context.getResources().getDrawable(id);
+ return ContextCompat.getDrawable(context, id);
}
private static int getDimensionPixelSize(Context context, @DimenRes int
id) {
diff --git a/app/src/main/java/org/wikipedia/tooltip/ToolTipUtil.java
b/app/src/main/java/org/wikipedia/tooltip/ToolTipUtil.java
index 048e396..b8bcbe8 100644
--- a/app/src/main/java/org/wikipedia/tooltip/ToolTipUtil.java
+++ b/app/src/main/java/org/wikipedia/tooltip/ToolTipUtil.java
@@ -5,6 +5,7 @@
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.v4.content.ContextCompat;
import android.view.View;
import android.view.ViewGroup;
@@ -42,7 +43,7 @@
View targetView,
@LayoutRes int contentLayout,
ToolTip.Position position) {
- int color =
activity.getResources().getColor(getThemedAttributeId(activity,
R.attr.tool_tip_default_color));
+ int color = ContextCompat.getColor(activity,
getThemedAttributeId(activity, R.attr.tool_tip_default_color));
showToolTip(activity, targetView, contentLayout, color, position);
}
diff --git a/app/src/main/java/org/wikipedia/util/ConfigurationCompat.java
b/app/src/main/java/org/wikipedia/util/ConfigurationCompat.java
new file mode 100644
index 0000000..9c77fb5
--- /dev/null
+++ b/app/src/main/java/org/wikipedia/util/ConfigurationCompat.java
@@ -0,0 +1,29 @@
+package org.wikipedia.util;
+
+import android.content.res.Configuration;
+import android.os.Build;
+import android.support.annotation.NonNull;
+
+import java.util.Locale;
+
+public final class ConfigurationCompat {
+ public static void setLocale(@NonNull Configuration cfg, @NonNull Locale
locale) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
+ cfg.setLocale(locale);
+ } else {
+ //noinspection deprecation
+ cfg.locale = locale;
+ }
+ }
+
+ @NonNull public static Locale getLocale(@NonNull Configuration cfg) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ return cfg.getLocales().get(0);
+ }
+ //noinspection deprecation
+ return cfg.locale;
+ }
+
+
+ private ConfigurationCompat() { }
+}
\ No newline at end of file
diff --git
a/app/src/main/java/org/wikipedia/util/ContentProviderClientCompat.java
b/app/src/main/java/org/wikipedia/util/ContentProviderClientCompat.java
new file mode 100644
index 0000000..ef76f1f
--- /dev/null
+++ b/app/src/main/java/org/wikipedia/util/ContentProviderClientCompat.java
@@ -0,0 +1,18 @@
+package org.wikipedia.util;
+
+import android.content.ContentProviderClient;
+import android.os.Build;
+import android.support.annotation.NonNull;
+
+public final class ContentProviderClientCompat {
+ public static void close(@NonNull ContentProviderClient client) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ client.close();
+ } else {
+ //noinspection deprecation
+ client.release();
+ }
+ }
+
+ private ContentProviderClientCompat() { }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/wikipedia/util/L10nUtil.java
b/app/src/main/java/org/wikipedia/util/L10nUtil.java
index 3aa3be3..4224bd1 100644
--- a/app/src/main/java/org/wikipedia/util/L10nUtil.java
+++ b/app/src/main/java/org/wikipedia/util/L10nUtil.java
@@ -152,10 +152,10 @@
*/
private static SparseArray<String> getStringsForLocale(Locale
targetLocale, @StringRes int[] strings) {
Configuration config = getCurrentConfiguration();
- Locale systemLocale = config.locale;
- config.locale = targetLocale;
+ Locale systemLocale = ConfigurationCompat.getLocale(config);
+ ConfigurationCompat.setLocale(config, targetLocale);
SparseArray<String> localizedStrings = getTargetStrings(strings,
config);
- config.locale = systemLocale;
+ ConfigurationCompat.setLocale(config, systemLocale);
resetConfiguration(config);
return localizedStrings;
}
diff --git a/app/src/main/java/org/wikipedia/util/StringUtil.java
b/app/src/main/java/org/wikipedia/util/StringUtil.java
index 597bacb..6b78830 100644
--- a/app/src/main/java/org/wikipedia/util/StringUtil.java
+++ b/app/src/main/java/org/wikipedia/util/StringUtil.java
@@ -201,6 +201,7 @@
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY);
} else {
+ //noinspection deprecation
return Html.fromHtml(source);
}
}
@@ -215,6 +216,7 @@
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY,
imageGetter, tagHandler);
} else {
+ //noinspection deprecation
return Html.fromHtml(source, imageGetter, tagHandler);
}
}
diff --git
a/app/src/main/java/org/wikipedia/views/DontInterceptTouchListener.java
b/app/src/main/java/org/wikipedia/views/DontInterceptTouchListener.java
index 78f288d..088d7b6 100644
--- a/app/src/main/java/org/wikipedia/views/DontInterceptTouchListener.java
+++ b/app/src/main/java/org/wikipedia/views/DontInterceptTouchListener.java
@@ -1,6 +1,5 @@
package org.wikipedia.views;
-import android.support.v4.view.MotionEventCompat;
import android.support.v7.widget.RecyclerView;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
@@ -12,10 +11,10 @@
private boolean disallowInterception;
@Override public boolean onInterceptTouchEvent(RecyclerView view,
MotionEvent event) {
- int action = MotionEventCompat.getActionMasked(event);
+ int action = event.getActionMasked();
switch(action) {
case MotionEvent.ACTION_DOWN:
- pointerId = MotionEventCompat.getPointerId(event, 0);
+ pointerId = event.getPointerId(0);
x = event.getX();
y = event.getY();
break;
@@ -24,14 +23,14 @@
break;
}
- int pointerIndex = MotionEventCompat.findPointerIndex(event,
pointerId);
+ int pointerIndex = event.findPointerIndex(pointerId);
if (pointerIndex < 0) {
view.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
- float dy = Math.abs(y - MotionEventCompat.getY(event,
pointerIndex));
- float dx = Math.abs(x - MotionEventCompat.getX(event,
pointerIndex));
+ float dy = Math.abs(y - event.getY(pointerIndex));
+ float dx = Math.abs(x - event.getX(pointerIndex));
int slop =
ViewConfiguration.get(view.getContext()).getScaledTouchSlop();
if (dx > slop) {
diff --git a/app/src/main/java/org/wikipedia/views/DrawableItemDecoration.java
b/app/src/main/java/org/wikipedia/views/DrawableItemDecoration.java
index ffb794d..51fe4be 100644
--- a/app/src/main/java/org/wikipedia/views/DrawableItemDecoration.java
+++ b/app/src/main/java/org/wikipedia/views/DrawableItemDecoration.java
@@ -11,6 +11,7 @@
import android.support.v7.widget.RecyclerView;
import android.view.View;
+// todo: replace with DividerItemDecoration once it supports headers and
footers
public class DrawableItemDecoration extends RecyclerView.ItemDecoration {
@Nullable private final Drawable drawable;
private final boolean drawEnds;
diff --git
a/app/src/main/java/org/wikipedia/views/FaceAndColorDetectImageView.java
b/app/src/main/java/org/wikipedia/views/FaceAndColorDetectImageView.java
index 0e7ba67..64377c3 100644
--- a/app/src/main/java/org/wikipedia/views/FaceAndColorDetectImageView.java
+++ b/app/src/main/java/org/wikipedia/views/FaceAndColorDetectImageView.java
@@ -12,6 +12,7 @@
import android.support.annotation.ColorInt;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.v4.content.ContextCompat;
import android.support.v7.graphics.Palette;
import android.util.AttributeSet;
@@ -132,7 +133,7 @@
Bitmap testBmp = new565ScaledBitmap(sourceBitmap);
Palette colorPalette = Palette.from(testBmp).generate();
PointF facePos = detectFace(testBmp);
- int defaultColor =
getContext().getResources().getColor(R.color.dark_gray);
+ int defaultColor = ContextCompat.getColor(getContext(),
R.color.dark_gray);
listener.onImageLoaded(destBitmap.getHeight(), facePos,
extractMainColor(colorPalette, defaultColor));
} else {
listener.onImageFailed();
diff --git a/app/src/test/java/org/wikipedia/page/NamespaceTest.java
b/app/src/test/java/org/wikipedia/page/NamespaceTest.java
index 733cf1d..b6d18ca 100644
--- a/app/src/test/java/org/wikipedia/page/NamespaceTest.java
+++ b/app/src/test/java/org/wikipedia/page/NamespaceTest.java
@@ -35,18 +35,22 @@
}
@Test public void testFromLegacyStringMain() {
+ //noinspection deprecation
assertThat(Namespace.fromLegacyString(WikiSite.forLanguageCode("test"), null),
is(MAIN));
}
@Test public void testFromLegacyStringFile() {
+ //noinspection deprecation
assertThat(Namespace.fromLegacyString(WikiSite.forLanguageCode("he"),
"קובץ"), is(FILE));
}
@Test public void testFromLegacyStringSpecial() {
+ //noinspection deprecation
assertThat(Namespace.fromLegacyString(WikiSite.forLanguageCode("lez"),
"Служебная"), is(SPECIAL));
}
@Test public void testFromLegacyStringTalk() {
+ //noinspection deprecation
assertThat(Namespace.fromLegacyString(WikiSite.forLanguageCode("en"),
"stringTalk"), is(TALK));
}
@@ -84,10 +88,12 @@
}
@Test public void testToLegacyStringMain() {
+ //noinspection deprecation
assertThat(MAIN.toLegacyString(), nullValue());
}
@Test public void testToLegacyStringNonMain() {
+ //noinspection deprecation
assertThat(TALK.toLegacyString(), is("Talk"));
}
}
\ No newline at end of file
diff --git
a/app/src/test/java/org/wikipedia/zero/ZeroConfigTypeAdapterTest.java
b/app/src/test/java/org/wikipedia/zero/ZeroConfigTypeAdapterTest.java
index 2d66244..69592bb 100644
--- a/app/src/test/java/org/wikipedia/zero/ZeroConfigTypeAdapterTest.java
+++ b/app/src/test/java/org/wikipedia/zero/ZeroConfigTypeAdapterTest.java
@@ -17,8 +17,8 @@
@SuppressWarnings("checkstyle:magicnumber")
@RunWith(TestRunner.class)
public class ZeroConfigTypeAdapterTest {
- private static int CYAN = -16711681;
- private static int WHITE = -1;
+ private static final int CYAN = -16711681;
+ private static final int WHITE = -1;
@Test
public void testEligible() throws Throwable {
--
To view, visit https://gerrit.wikimedia.org/r/319241
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9cdc208f2f61c940ba6aeedb153703ca16d83a05
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Niedzielski <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits