jenkins-bot has submitted this change and it was merged.

Change subject: Add Butter Knife and upgrade Checkstyle
......................................................................


Add Butter Knife and upgrade Checkstyle

The Android app wants to do more with native Views. In this interest,
Butter Knife v7.0.1 is added, a tool that is helpful in eliminating some
of the boilerplate of native Views.

BK increases the size of the dev release apk from 4201830B to 4220733B,
about ~18KiB.

To verify that the library is working properly, one usage of BK is made
in ArticleHeaderView.

BK uses annotations and requires annotated fields to be non-private
which violates Checkstyle rules. The implicit Checkstyle version was
v5.9[0] which does not support the ignoreAnnotationCanonicalNames
property of the VisibilityModifier module. This patch upgrades
Checkstyle to the latest, v6.11.2, adds the BK @Bind annotated property
exception, and fixes all new violations of type "Redundant 'public'
modifier".

[0] 
https://github.com/gradle/gradle/blob/master/subprojects/code-quality/src/main/groovy/org/gradle/api/plugins/quality/CheckstylePlugin.groovy#L21

Change-Id: I08af3779dba038f4e349a68f1e600782cda1fc52
---
M app/build.gradle
M app/proguard-rules.pro
M app/src/androidTest/java/org/wikipedia/test/TranslationTests.java
A app/src/main/assets/licenses/ButterKnife
M app/src/main/java/org/wikipedia/analytics/EventLoggingEvent.java
M app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppCrashReporter.java
M app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppExceptionHandler.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/history/HistoryFragment.java
M app/src/main/java/org/wikipedia/nearby/NearbyFragment.java
M app/src/main/java/org/wikipedia/nearby/NearbyFragmentOld.java
M app/src/main/java/org/wikipedia/nearby/NearbyPage.java
M app/src/main/java/org/wikipedia/nearby/NearbyResult.java
M app/src/main/java/org/wikipedia/page/DisambigListAdapter.java
M app/src/main/java/org/wikipedia/page/IssuesListAdapter.java
M app/src/main/java/org/wikipedia/page/PageActivity.java
M app/src/main/java/org/wikipedia/page/PageCache.java
M app/src/main/java/org/wikipedia/page/PageFragment.java
M app/src/main/java/org/wikipedia/page/PageInfoDialog.java
M app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
M app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
M app/src/main/java/org/wikipedia/page/gallery/GalleryThumbnailScrollView.java
M app/src/main/java/org/wikipedia/page/leadimages/ImageViewWithFace.java
M app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java
M app/src/main/java/org/wikipedia/page/linkpreview/SwipeableBottomDialog.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/page/tabs/TabsProvider.java
M app/src/main/java/org/wikipedia/richtext/RelativeLineHeightSpan.java
M app/src/main/java/org/wikipedia/savedpages/SavedPagesFragment.java
M app/src/main/java/org/wikipedia/search/RecentSearchesFragment.java
M app/src/main/java/org/wikipedia/search/SearchArticlesFragment.java
M app/src/main/java/org/wikipedia/search/SearchResultsFragment.java
M app/src/main/java/org/wikipedia/settings/AboutActivity.java
M 
app/src/main/java/org/wikipedia/settings/DeveloperSettingsPreferenceLoader.java
M app/src/main/java/org/wikipedia/util/NetworkUtils.java
M app/src/main/java/org/wikipedia/views/ArticleHeaderView.java
M app/src/main/java/org/wikipedia/views/ViewUtil.java
M app/src/main/res/values/credits.xml
M app/src/test/java/org/wikipedia/zero/WikipediaZeroTaskTest.java
M config/checkstyle.xml
M config/quality.gradle
43 files changed, 115 insertions(+), 111 deletions(-)

Approvals:
  Mholloway: Looks good to me, but someone else must approve
  Dbrant: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/app/build.gradle b/app/build.gradle
index 829b7d9..9cbe2d0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -126,6 +126,11 @@
     lintOptions {
         disable 'MissingTranslation'
         warning 'NewApi' // until 
https://code.google.com/p/android/issues/detail?id=137195 is released
+        disable 'InvalidPackage' // required by Butter Knife
+    }
+
+    packagingOptions {
+        exclude 'META-INF/services/javax.annotation.processing.Processor' // 
required by Butter Knife
     }
 }
 
@@ -157,6 +162,7 @@
     compile 'com.mobsandgeeks:android-saripaar:1.0.3'
     compile 'com.github.chrisbanes.photoview:library:1.2.3'
     compile 'com.github.ryanjohn1:onboarding:1.0.3'
+    compile 'com.jakewharton:butterknife:7.0.1'
     compile 'com.jakewharton:disklrucache:2.0.2'
     compile('com.mapbox.mapboxsdk:mapbox-android-sdk:0.7.4@aar') {
         transitive = true
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 720ec12..4c03ad1 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -51,6 +51,20 @@
 -keepattributes Exceptions
 # --- /Retrofit ---
 
+# --- Butter Knife ---
+-keep class butterknife.** { *; }
+-dontwarn butterknife.internal.**
+-keep class **$$ViewBinder { *; }
+
+-keepclasseswithmembernames class * {
+    @butterknife.* <fields>;
+}
+
+-keepclasseswithmembernames class * {
+    @butterknife.* <methods>;
+}
+# --- /Butter Knife ---
+
 # --- Gson ---
 # 
https://github.com/google/gson/blob/master/examples/android-proguard-example/proguard.cfg
 
diff --git a/app/src/androidTest/java/org/wikipedia/test/TranslationTests.java 
b/app/src/androidTest/java/org/wikipedia/test/TranslationTests.java
index 1713e67..a817bea 100644
--- a/app/src/androidTest/java/org/wikipedia/test/TranslationTests.java
+++ b/app/src/androidTest/java/org/wikipedia/test/TranslationTests.java
@@ -302,7 +302,7 @@
         private final int id;
         private final String name;
 
-        public Res(int id, String name) {
+        Res(int id, String name) {
             this.id = id;
             this.name = name;
         }
diff --git a/app/src/main/assets/licenses/ButterKnife 
b/app/src/main/assets/licenses/ButterKnife
new file mode 100644
index 0000000..5a0cb31
--- /dev/null
+++ b/app/src/main/assets/licenses/ButterKnife
@@ -0,0 +1,13 @@
+Copyright 2013 Jake Wharton
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
\ No newline at end of file
diff --git a/app/src/main/java/org/wikipedia/analytics/EventLoggingEvent.java 
b/app/src/main/java/org/wikipedia/analytics/EventLoggingEvent.java
index e2113b0..d38ec87 100644
--- a/app/src/main/java/org/wikipedia/analytics/EventLoggingEvent.java
+++ b/app/src/main/java/org/wikipedia/analytics/EventLoggingEvent.java
@@ -59,7 +59,7 @@
 
     private class LogEventTask extends SaneAsyncTask<Integer> {
         private final JSONObject data;
-        public LogEventTask(JSONObject data) {
+        LogEventTask(JSONObject data) {
             super(SINGLE_THREAD);
             this.data = data;
         }
diff --git 
a/app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppCrashReporter.java 
b/app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppCrashReporter.java
index 687535f..a875dd4 100644
--- 
a/app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppCrashReporter.java
+++ 
b/app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppCrashReporter.java
@@ -49,7 +49,7 @@
 
     private class CrashListener extends HockeyAppCrashListener {
         @NonNull private final AutoUploadConsentAccessor consentAccessor;
-        public CrashListener(@NonNull AutoUploadConsentAccessor 
consentAccessor) {
+        CrashListener(@NonNull AutoUploadConsentAccessor consentAccessor) {
             this.consentAccessor = consentAccessor;
         }
 
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 af20542..11bcfcb 100644
--- 
a/app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppExceptionHandler.java
+++ 
b/app/src/main/java/org/wikipedia/crash/hockeyapp/HockeyAppExceptionHandler.java
@@ -12,14 +12,14 @@
     private final Thread.UncaughtExceptionHandler defaultExceptionHandler;
     @Nullable private HockeyAppCrashListener listener;
 
-    public HockeyAppExceptionHandler(@Nullable HockeyAppCrashListener listener,
-                                     boolean ignoreDefaultHandler) {
+    HockeyAppExceptionHandler(@Nullable HockeyAppCrashListener listener,
+                              boolean ignoreDefaultHandler) {
         this(Thread.getDefaultUncaughtExceptionHandler(), listener, 
ignoreDefaultHandler);
     }
 
-    public HockeyAppExceptionHandler(Thread.UncaughtExceptionHandler 
defaultExceptionHandler,
-                                     @Nullable HockeyAppCrashListener listener,
-                                     boolean ignoreDefaultHandler) {
+    HockeyAppExceptionHandler(Thread.UncaughtExceptionHandler 
defaultExceptionHandler,
+                              @Nullable HockeyAppCrashListener listener,
+                              boolean ignoreDefaultHandler) {
         super(defaultExceptionHandler, listener, ignoreDefaultHandler);
         this.defaultExceptionHandler = defaultExceptionHandler;
         this.listener = listener;
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 a8af86d..e5db810 100644
--- a/app/src/main/java/org/wikipedia/editing/richtext/SyntaxHighlighter.java
+++ b/app/src/main/java/org/wikipedia/editing/richtext/SyntaxHighlighter.java
@@ -172,7 +172,7 @@
     };
 
     private class SyntaxHighlightTask extends SaneAsyncTask<List<SpanExtents>> 
{
-        public SyntaxHighlightTask(Editable text) {
+        SyntaxHighlightTask(Editable text) {
             super(SINGLE_THREAD);
             this.text = text;
         }
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 bac5910..20ce8d2 100644
--- a/app/src/main/java/org/wikipedia/editing/summaries/EditSummaryHandler.java
+++ b/app/src/main/java/org/wikipedia/editing/summaries/EditSummaryHandler.java
@@ -81,7 +81,7 @@
     }
 
     private  class EditSummaryAdapter extends 
android.support.v4.widget.CursorAdapter {
-        public EditSummaryAdapter(Context context, Cursor c, boolean 
autoRequery) {
+        EditSummaryAdapter(Context context, Cursor c, boolean autoRequery) {
             super(context, c, autoRequery);
         }
 
diff --git a/app/src/main/java/org/wikipedia/history/HistoryFragment.java 
b/app/src/main/java/org/wikipedia/history/HistoryFragment.java
index 5eecf48..2151567 100644
--- a/app/src/main/java/org/wikipedia/history/HistoryFragment.java
+++ b/app/src/main/java/org/wikipedia/history/HistoryFragment.java
@@ -243,7 +243,7 @@
     }
 
     private class HistoryEntryAdapter extends CursorAdapter {
-        public HistoryEntryAdapter(Context context, Cursor c, boolean 
autoRequery) {
+        HistoryEntryAdapter(Context context, Cursor c, boolean autoRequery) {
             super(context, c, autoRequery);
         }
 
diff --git a/app/src/main/java/org/wikipedia/nearby/NearbyFragment.java 
b/app/src/main/java/org/wikipedia/nearby/NearbyFragment.java
index 85a1669..54d40a9 100644
--- a/app/src/main/java/org/wikipedia/nearby/NearbyFragment.java
+++ b/app/src/main/java/org/wikipedia/nearby/NearbyFragment.java
@@ -635,7 +635,7 @@
     private class NearbyAdapter extends ArrayAdapter<NearbyPage> {
         private static final int LAYOUT_ID = R.layout.item_nearby_entry;
 
-        public NearbyAdapter(Context context, ArrayList<NearbyPage> pages) {
+        NearbyAdapter(Context context, ArrayList<NearbyPage> pages) {
             super(context, LAYOUT_ID, pages);
         }
 
@@ -798,7 +798,7 @@
 
     private class LongPressHandler extends PageActivityLongPressHandler
             implements PageLongPressHandler.ListViewContextMenuListener {
-        public LongPressHandler(@NonNull PageActivity activity) {
+        LongPressHandler(@NonNull PageActivity activity) {
             super(activity);
         }
 
diff --git a/app/src/main/java/org/wikipedia/nearby/NearbyFragmentOld.java 
b/app/src/main/java/org/wikipedia/nearby/NearbyFragmentOld.java
index 69c8632..be41395 100644
--- a/app/src/main/java/org/wikipedia/nearby/NearbyFragmentOld.java
+++ b/app/src/main/java/org/wikipedia/nearby/NearbyFragmentOld.java
@@ -563,7 +563,7 @@
     private class NearbyAdapter extends ArrayAdapter<NearbyPage> {
         private static final int LAYOUT_ID = R.layout.item_nearby_entry;
 
-        public NearbyAdapter(Context context, ArrayList<NearbyPage> pages) {
+        NearbyAdapter(Context context, ArrayList<NearbyPage> pages) {
             super(context, LAYOUT_ID, pages);
         }
 
@@ -730,7 +730,7 @@
 
     private class LongPressHandler extends PageActivityLongPressHandler
             implements PageLongPressHandler.ListViewContextMenuListener {
-        public LongPressHandler(@NonNull PageActivity activity) {
+        LongPressHandler(@NonNull PageActivity activity) {
             super(activity);
         }
 
diff --git a/app/src/main/java/org/wikipedia/nearby/NearbyPage.java 
b/app/src/main/java/org/wikipedia/nearby/NearbyPage.java
index 1f40068..920ee76 100644
--- a/app/src/main/java/org/wikipedia/nearby/NearbyPage.java
+++ b/app/src/main/java/org/wikipedia/nearby/NearbyPage.java
@@ -29,7 +29,7 @@
  * }
  * </pre>
  */
-class NearbyPage {
+public class NearbyPage {
 
     private String title;
     private String thumblUrl;
diff --git a/app/src/main/java/org/wikipedia/nearby/NearbyResult.java 
b/app/src/main/java/org/wikipedia/nearby/NearbyResult.java
index 9bf435b..e4b553e 100644
--- a/app/src/main/java/org/wikipedia/nearby/NearbyResult.java
+++ b/app/src/main/java/org/wikipedia/nearby/NearbyResult.java
@@ -16,7 +16,7 @@
     private final ArrayList<NearbyPage> list;
 
     /** empty result */
-    public NearbyResult() {
+    NearbyResult() {
         jsonObject = new JSONObject();
         list = new ArrayList<>();
     }
diff --git a/app/src/main/java/org/wikipedia/page/DisambigListAdapter.java 
b/app/src/main/java/org/wikipedia/page/DisambigListAdapter.java
index e145cd9..7a08d10 100644
--- a/app/src/main/java/org/wikipedia/page/DisambigListAdapter.java
+++ b/app/src/main/java/org/wikipedia/page/DisambigListAdapter.java
@@ -36,7 +36,7 @@
      * @param activity The current activity.
      * @param items The objects to represent in the ListView.
      */
-    public DisambigListAdapter(Activity activity, DisambigResult[] items) {
+    DisambigListAdapter(Activity activity, DisambigResult[] items) {
         super(activity, 0, items);
         this.activity = activity;
         this.items = items;
diff --git a/app/src/main/java/org/wikipedia/page/IssuesListAdapter.java 
b/app/src/main/java/org/wikipedia/page/IssuesListAdapter.java
index 624dff3..30b4be3 100644
--- a/app/src/main/java/org/wikipedia/page/IssuesListAdapter.java
+++ b/app/src/main/java/org/wikipedia/page/IssuesListAdapter.java
@@ -27,7 +27,7 @@
      * @param activity The current activity.
      * @param items The objects to represent in the ListView.
      */
-    public IssuesListAdapter(Activity activity, String[] items) {
+    IssuesListAdapter(Activity activity, String[] items) {
         super(activity, 0, items);
         this.activity = activity;
         this.items = items;
diff --git a/app/src/main/java/org/wikipedia/page/PageActivity.java 
b/app/src/main/java/org/wikipedia/page/PageActivity.java
index 8f0bfb3..f973658 100644
--- a/app/src/main/java/org/wikipedia/page/PageActivity.java
+++ b/app/src/main/java/org/wikipedia/page/PageActivity.java
@@ -274,9 +274,9 @@
     private class MainDrawerToggle extends ActionBarDrawerToggle {
         private boolean oncePerSlideLock = false;
 
-        public MainDrawerToggle(android.app.Activity activity,
-                                android.support.v4.widget.DrawerLayout 
drawerLayout,
-                                int openDrawerContentDescRes, int 
closeDrawerContentDescRes) {
+        MainDrawerToggle(android.app.Activity activity,
+                         android.support.v4.widget.DrawerLayout drawerLayout,
+                         int openDrawerContentDescRes, int 
closeDrawerContentDescRes) {
             super(activity, drawerLayout, openDrawerContentDescRes, 
closeDrawerContentDescRes);
         }
 
diff --git a/app/src/main/java/org/wikipedia/page/PageCache.java 
b/app/src/main/java/org/wikipedia/page/PageCache.java
index 6ba7ab9..9485113 100644
--- a/app/src/main/java/org/wikipedia/page/PageCache.java
+++ b/app/src/main/java/org/wikipedia/page/PageCache.java
@@ -36,7 +36,7 @@
     private class InitDiskCacheTask extends SaneAsyncTask<Void> {
         private final File cacheDir;
 
-        public InitDiskCacheTask(File cacheDir) {
+        InitDiskCacheTask(File cacheDir) {
             super(SINGLE_THREAD);
             this.cacheDir = cacheDir;
         }
@@ -80,7 +80,7 @@
         private final PageTitle title;
         private final Page page;
 
-        public AddPageToCacheTask(PageTitle title, Page page) {
+        AddPageToCacheTask(PageTitle title, Page page) {
             super(SINGLE_THREAD);
             this.title = title;
             this.page = page;
@@ -136,7 +136,7 @@
     private class GetPageFromCacheTask extends SaneAsyncTask<Page> {
         private final PageTitle title;
 
-        public GetPageFromCacheTask(PageTitle title) {
+        GetPageFromCacheTask(PageTitle title) {
             super(SINGLE_THREAD);
             this.title = title;
         }
diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.java 
b/app/src/main/java/org/wikipedia/page/PageFragment.java
index 8bfd426..1218fcd 100755
--- a/app/src/main/java/org/wikipedia/page/PageFragment.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.java
@@ -77,7 +77,7 @@
 
 import javax.net.ssl.SSLException;
 
-import static org.wikipedia.views.ViewUtil.findView;
+import static butterknife.ButterKnife.findById;
 
 public class PageFragment extends Fragment implements BackPressedHandler {
     public static final int TOC_ACTION_SHOW = 0;
@@ -344,7 +344,7 @@
         tocHandler = new ToCHandler(getPageActivity(), tocDrawer, bridge);
 
         // TODO: initialize View references in onCreateView().
-        articleHeaderView = findView(getView(), R.id.page_header_view);
+        articleHeaderView = findById(getView(), R.id.page_header_view);
         leadImagesHandler = new LeadImagesHandler(this, bridge, webView, 
articleHeaderView);
         searchBarHideHandler = getPageActivity().getSearchBarHideHandler();
         searchBarHideHandler.setScrollView(webView);
@@ -1128,7 +1128,7 @@
 
     private class LongPressHandler extends PageActivityLongPressHandler
             implements PageLongPressHandler.WebViewContextMenuListener {
-        public LongPressHandler(@NonNull PageActivity activity) {
+        LongPressHandler(@NonNull PageActivity activity) {
             super(activity);
         }
 
diff --git a/app/src/main/java/org/wikipedia/page/PageInfoDialog.java 
b/app/src/main/java/org/wikipedia/page/PageInfoDialog.java
index 3c1d474..bd0a67c 100644
--- a/app/src/main/java/org/wikipedia/page/PageInfoDialog.java
+++ b/app/src/main/java/org/wikipedia/page/PageInfoDialog.java
@@ -114,7 +114,7 @@
 
     private class LongPressHandler extends PageActivityLongPressHandler
             implements PageLongPressHandler.ListViewContextMenuListener {
-        public LongPressHandler(@NonNull PageActivity activity) {
+        LongPressHandler(@NonNull PageActivity activity) {
             super(activity);
         }
 
diff --git 
a/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java 
b/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
index 666121c..b5c8455 100644
--- 
a/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
+++ 
b/app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java
@@ -378,7 +378,7 @@
     private class LongPressHandler extends PageActivityLongPressHandler
             implements PageLongPressHandler.ListViewContextMenuListener {
         private int lastPosition;
-        public LongPressHandler(@NonNull PageActivity activity) {
+        LongPressHandler(@NonNull PageActivity activity) {
             super(activity);
         }
 
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 7fd7f40..8150c83 100644
--- a/app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
+++ b/app/src/main/java/org/wikipedia/page/gallery/GalleryActivity.java
@@ -514,7 +514,7 @@
         private GalleryCollection galleryCollection;
         private SparseArray<GalleryItemFragment> fragmentArray;
 
-        public GalleryItemAdapter(ThemedActionBarActivity activity) {
+        GalleryItemAdapter(ThemedActionBarActivity activity) {
             super(activity.getSupportFragmentManager());
             fragmentArray = new SparseArray<>();
         }
diff --git 
a/app/src/main/java/org/wikipedia/page/gallery/GalleryThumbnailScrollView.java 
b/app/src/main/java/org/wikipedia/page/gallery/GalleryThumbnailScrollView.java
index 81faa60..f180160 100644
--- 
a/app/src/main/java/org/wikipedia/page/gallery/GalleryThumbnailScrollView.java
+++ 
b/app/src/main/java/org/wikipedia/page/gallery/GalleryThumbnailScrollView.java
@@ -59,7 +59,7 @@
         private final ImageView mImageView;
         private GalleryItem mGalleryItem;
 
-        public GalleryItemHolder(View itemView) {
+        GalleryItemHolder(View itemView) {
             super(itemView);
             mImageView = (ImageView) 
itemView.findViewById(R.id.gallery_thumbnail_image);
         }
@@ -105,7 +105,7 @@
     private final class GalleryViewAdapter extends 
RecyclerView.Adapter<GalleryItemHolder> {
         @NonNull private final GalleryCollection mCollection;
 
-        public GalleryViewAdapter(@NonNull GalleryCollection collection) {
+        GalleryViewAdapter(@NonNull GalleryCollection collection) {
             mCollection = collection;
         }
 
diff --git 
a/app/src/main/java/org/wikipedia/page/leadimages/ImageViewWithFace.java 
b/app/src/main/java/org/wikipedia/page/leadimages/ImageViewWithFace.java
index 7115a51..eae0c6b 100644
--- a/app/src/main/java/org/wikipedia/page/leadimages/ImageViewWithFace.java
+++ b/app/src/main/java/org/wikipedia/page/leadimages/ImageViewWithFace.java
@@ -96,7 +96,7 @@
 
         @NonNull private final Bitmap srcBitmap;
 
-        public FaceDetectionTask(int concurrency, @NonNull Bitmap bitmap) {
+        FaceDetectionTask(int concurrency, @NonNull Bitmap bitmap) {
             super(concurrency);
             srcBitmap = bitmap;
         }
diff --git 
a/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java 
b/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java
index 23ea8c4..9cd2097 100755
--- a/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java
+++ b/app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java
@@ -265,7 +265,7 @@
     }
 
     private class LinkPreviewMwapiFetchTask extends PreviewFetchTask {
-        public LinkPreviewMwapiFetchTask(Api api, PageTitle title) {
+        LinkPreviewMwapiFetchTask(Api api, PageTitle title) {
             super(api, title);
         }
 
@@ -302,7 +302,7 @@
     }
 
     private class GalleryThumbnailFetchTask extends GalleryCollectionFetchTask 
{
-        public GalleryThumbnailFetchTask(PageTitle title) {
+        GalleryThumbnailFetchTask(PageTitle title) {
             super(WikipediaApp.getInstance().getAPIForSite(title.getSite()), 
title.getSite(), title,
                     true);
         }
@@ -330,7 +330,7 @@
     }
 
     private class LongPressHandler extends PageActivityLongPressHandler {
-        public LongPressHandler(@NonNull PageActivity activity) {
+        LongPressHandler(@NonNull PageActivity activity) {
             super(activity);
         }
     }
diff --git 
a/app/src/main/java/org/wikipedia/page/linkpreview/SwipeableBottomDialog.java 
b/app/src/main/java/org/wikipedia/page/linkpreview/SwipeableBottomDialog.java
index 3a2a62e..d788d4d 100644
--- 
a/app/src/main/java/org/wikipedia/page/linkpreview/SwipeableBottomDialog.java
+++ 
b/app/src/main/java/org/wikipedia/page/linkpreview/SwipeableBottomDialog.java
@@ -200,7 +200,7 @@
     private static final class SwipeableAdapter extends BaseAdapter {
         @NonNull private final List<View> views;
 
-        public SwipeableAdapter(@NonNull List<View> views) {
+        SwipeableAdapter(@NonNull List<View> views) {
             this.views = views;
         }
 
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 11b9ccf..e9c98f5 100755
--- a/app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
+++ b/app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java
@@ -238,7 +238,7 @@
 
     private class RequestTextSelectOnMenuItemClickListener implements 
MenuItem.OnMenuItemClickListener {
         @NonNull private final String purpose;
-        public RequestTextSelectOnMenuItemClickListener(@NonNull String 
purpose) {
+        RequestTextSelectOnMenuItemClickListener(@NonNull String purpose) {
             this.purpose = purpose;
         }
 
@@ -275,9 +275,9 @@
 class PreviewDialog extends BottomDialog {
     private boolean completed = false;
 
-    public PreviewDialog(final PageActivity activity, final Bitmap 
resultBitmap,
-                         final String title, final String introText, final 
String selectedText,
-                         final ShareAFactFunnel funnel) {
+    PreviewDialog(final PageActivity activity, final Bitmap resultBitmap,
+                  final String title, final String introText, final String 
selectedText,
+                  final ShareAFactFunnel funnel) {
         super(activity, R.layout.dialog_share_preview);
         ImageView previewImage = (ImageView) 
getDialogLayout().findViewById(R.id.preview_img);
         previewImage.setImageBitmap(resultBitmap);
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 c0868c1..5d3135f 100644
--- a/app/src/main/java/org/wikipedia/page/snippet/SnippetImage.java
+++ b/app/src/main/java/org/wikipedia/page/snippet/SnippetImage.java
@@ -421,8 +421,17 @@
         private final float spacingMultiplier;
         private final Layout.Alignment align;
 
-        private TextLayoutParams(CharSequence text, TextPaint textPaint, int 
lineWidth,
-                                 float spacingMultiplier, Layout.Alignment 
align) {
+        /** Copy constructor with updated text */
+        TextLayoutParams(TextLayoutParams other, CharSequence text) {
+            this.text = text;
+            this.textPaint = other.textPaint;
+            this.lineWidth = other.lineWidth;
+            this.spacingMultiplier = other.spacingMultiplier;
+            this.align = other.align;
+        }
+
+        TextLayoutParams(CharSequence text, TextPaint textPaint, int lineWidth,
+                         float spacingMultiplier, Layout.Alignment align) {
             this.text = text;
             this.textPaint = textPaint;
             this.lineWidth = lineWidth;
@@ -433,15 +442,6 @@
         private TextLayoutParams(CharSequence text, TextPaint textPaint, int 
lineWidth,
                                  float spacingMultiplier) {
             this(text, textPaint, lineWidth, spacingMultiplier, ALIGN_NORMAL);
-        }
-
-        /** Copy constructor with updated text */
-        public TextLayoutParams(TextLayoutParams other, CharSequence text) {
-            this.text = text;
-            this.textPaint = other.textPaint;
-            this.lineWidth = other.lineWidth;
-            this.spacingMultiplier = other.spacingMultiplier;
-            this.align = other.align;
         }
     }
 }
diff --git a/app/src/main/java/org/wikipedia/page/tabs/TabsProvider.java 
b/app/src/main/java/org/wikipedia/page/tabs/TabsProvider.java
index 108bf05..61c7655 100644
--- a/app/src/main/java/org/wikipedia/page/tabs/TabsProvider.java
+++ b/app/src/main/java/org/wikipedia/page/tabs/TabsProvider.java
@@ -123,7 +123,7 @@
         private static final String TAB_ACTION_MODE_TAG = "actionModeTabList";
         private final Runnable onTabModeEntered;
 
-        public TabActionModeCallback(Runnable onTabModeEntered) {
+        TabActionModeCallback(Runnable onTabModeEntered) {
             this.onTabModeEntered = onTabModeEntered;
         }
 
@@ -371,7 +371,7 @@
     private final class TabListAdapter extends BaseAdapter {
         private final LayoutInflater inflater;
 
-        private TabListAdapter(LayoutInflater inflater) {
+        TabListAdapter(LayoutInflater inflater) {
             this.inflater = inflater;
         }
 
diff --git 
a/app/src/main/java/org/wikipedia/richtext/RelativeLineHeightSpan.java 
b/app/src/main/java/org/wikipedia/richtext/RelativeLineHeightSpan.java
index 8ae7c29..22eed0f 100644
--- a/app/src/main/java/org/wikipedia/richtext/RelativeLineHeightSpan.java
+++ b/app/src/main/java/org/wikipedia/richtext/RelativeLineHeightSpan.java
@@ -7,7 +7,7 @@
 /*package*/ abstract class RelativeLineHeightSpan implements LineHeightSpan {
     private final float scalar;
 
-    public RelativeLineHeightSpan(float scalar) {
+    RelativeLineHeightSpan(float scalar) {
         this.scalar = scalar;
     }
 
diff --git a/app/src/main/java/org/wikipedia/savedpages/SavedPagesFragment.java 
b/app/src/main/java/org/wikipedia/savedpages/SavedPagesFragment.java
index 627c63c..809469d 100644
--- a/app/src/main/java/org/wikipedia/savedpages/SavedPagesFragment.java
+++ b/app/src/main/java/org/wikipedia/savedpages/SavedPagesFragment.java
@@ -274,7 +274,7 @@
     }
 
     private class SavedPagesAdapter extends CursorAdapter {
-        public SavedPagesAdapter(Context context, Cursor c, boolean 
autoRequery) {
+        SavedPagesAdapter(Context context, Cursor c, boolean autoRequery) {
             super(context, c, autoRequery);
         }
 
diff --git a/app/src/main/java/org/wikipedia/search/RecentSearchesFragment.java 
b/app/src/main/java/org/wikipedia/search/RecentSearchesFragment.java
index 5b07374..abe8d97 100644
--- a/app/src/main/java/org/wikipedia/search/RecentSearchesFragment.java
+++ b/app/src/main/java/org/wikipedia/search/RecentSearchesFragment.java
@@ -107,7 +107,7 @@
     }
 
     private class RecentSearchesAdapter extends CursorAdapter {
-        public RecentSearchesAdapter(Context context, Cursor c, boolean 
autoRequery) {
+        RecentSearchesAdapter(Context context, Cursor c, boolean autoRequery) {
             super(context, c, autoRequery);
         }
 
diff --git a/app/src/main/java/org/wikipedia/search/SearchArticlesFragment.java 
b/app/src/main/java/org/wikipedia/search/SearchArticlesFragment.java
index d08097a..4d695bb 100644
--- a/app/src/main/java/org/wikipedia/search/SearchArticlesFragment.java
+++ b/app/src/main/java/org/wikipedia/search/SearchArticlesFragment.java
@@ -419,7 +419,7 @@
 
     private final class SaveRecentSearchTask extends SaneAsyncTask<Void> {
         private final RecentSearch entry;
-        public SaveRecentSearchTask(RecentSearch entry) {
+        SaveRecentSearchTask(RecentSearch entry) {
             super(SINGLE_THREAD);
             this.entry = entry;
         }
diff --git a/app/src/main/java/org/wikipedia/search/SearchResultsFragment.java 
b/app/src/main/java/org/wikipedia/search/SearchResultsFragment.java
index 8d7b46b..599ce7a 100644
--- a/app/src/main/java/org/wikipedia/search/SearchResultsFragment.java
+++ b/app/src/main/java/org/wikipedia/search/SearchResultsFragment.java
@@ -405,7 +405,7 @@
 
     private class LongPressHandler extends PageActivityLongPressHandler
             implements PageLongPressHandler.ListViewContextMenuListener {
-        public LongPressHandler(@NonNull PageActivity activity) {
+        LongPressHandler(@NonNull PageActivity activity) {
             super(activity);
         }
 
@@ -428,7 +428,7 @@
     private final class SearchResultAdapter extends BaseAdapter {
         private final LayoutInflater inflater;
 
-        private SearchResultAdapter(LayoutInflater inflater) {
+        SearchResultAdapter(LayoutInflater inflater) {
             this.inflater = inflater;
         }
 
diff --git a/app/src/main/java/org/wikipedia/settings/AboutActivity.java 
b/app/src/main/java/org/wikipedia/settings/AboutActivity.java
index 1505821..6cade3f 100644
--- a/app/src/main/java/org/wikipedia/settings/AboutActivity.java
+++ b/app/src/main/java/org/wikipedia/settings/AboutActivity.java
@@ -101,7 +101,7 @@
         private final Activity mActivity;
         private int mSecretClickCount;
 
-        public AboutLogoClickListener(Activity activity) {
+        AboutLogoClickListener(Activity activity) {
             mActivity = activity;
         }
 
diff --git 
a/app/src/main/java/org/wikipedia/settings/DeveloperSettingsPreferenceLoader.java
 
b/app/src/main/java/org/wikipedia/settings/DeveloperSettingsPreferenceLoader.java
index 8ecc2d8..eaf4402 100644
--- 
a/app/src/main/java/org/wikipedia/settings/DeveloperSettingsPreferenceLoader.java
+++ 
b/app/src/main/java/org/wikipedia/settings/DeveloperSettingsPreferenceLoader.java
@@ -104,7 +104,7 @@
     }
 
     private static class TestException extends RuntimeException {
-        public TestException(String message) {
+        TestException(String message) {
             super(message);
         }
     }
diff --git a/app/src/main/java/org/wikipedia/util/NetworkUtils.java 
b/app/src/main/java/org/wikipedia/util/NetworkUtils.java
index cde2543..6ae6f47 100644
--- a/app/src/main/java/org/wikipedia/util/NetworkUtils.java
+++ b/app/src/main/java/org/wikipedia/util/NetworkUtils.java
@@ -29,8 +29,7 @@
             ConnectivityManager conn = (ConnectivityManager) 
ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
             NetworkInfo networkInfo = conn.getActiveNetworkInfo();
             if (networkInfo != null && networkInfo.getState() == 
NetworkInfo.State.CONNECTED
-                    && (networkInfo.getType() == 
ConnectivityManager.TYPE_MOBILE || networkInfo.getType() == 
ConnectivityManager.TYPE_WIMAX))
-            {
+                    && (networkInfo.getType() == 
ConnectivityManager.TYPE_MOBILE || networkInfo.getType() == 
ConnectivityManager.TYPE_WIMAX)) {
                 TelephonyManager t = 
(TelephonyManager)ctx.getSystemService(WikipediaApp.TELEPHONY_SERVICE);
                 if (t != null && t.getPhoneType() >= 0) {
                     mccMncNetwork = t.getNetworkOperator();
diff --git a/app/src/main/java/org/wikipedia/views/ArticleHeaderView.java 
b/app/src/main/java/org/wikipedia/views/ArticleHeaderView.java
index fbac51c..6f0f8e4 100644
--- a/app/src/main/java/org/wikipedia/views/ArticleHeaderView.java
+++ b/app/src/main/java/org/wikipedia/views/ArticleHeaderView.java
@@ -3,19 +3,20 @@
 import android.annotation.TargetApi;
 import android.content.Context;
 import android.os.Build;
-import android.support.annotation.IdRes;
 import android.util.AttributeSet;
-import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 
 import org.wikipedia.R;
 import org.wikipedia.page.leadimages.ImageViewWithFace;
 
+import butterknife.Bind;
+import butterknife.ButterKnife;
+
 public class ArticleHeaderView extends FrameLayout {
-    private ImageViewWithFace image;
-    private ImageView placeholder;
-    private AppTextView text;
+    @Bind(R.id.image) ImageViewWithFace image;
+    @Bind(R.id.placeholder) ImageView placeholder;
+    @Bind(R.id.text) AppTextView text;
 
     public ArticleHeaderView(Context context) {
         super(context);
@@ -52,21 +53,10 @@
 
     private void init() {
         inflate();
-        findViews();
+        ButterKnife.bind(this);
     }
 
     private void inflate() {
         inflate(getContext(), R.layout.view_article_header, this);
-    }
-
-    private void findViews() {
-        // TODO: replace manual assignments with Butter Knife annotations.
-        image = findView(R.id.image);
-        placeholder = findView(R.id.placeholder);
-        text = findView(R.id.text);
-    }
-
-    private <T extends View> T findView(@IdRes int id) {
-        return ViewUtil.findView(this, id);
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/org/wikipedia/views/ViewUtil.java 
b/app/src/main/java/org/wikipedia/views/ViewUtil.java
index 34457b8..2a6eb5c 100644
--- a/app/src/main/java/org/wikipedia/views/ViewUtil.java
+++ b/app/src/main/java/org/wikipedia/views/ViewUtil.java
@@ -1,11 +1,8 @@
 package org.wikipedia.views;
 
 import android.annotation.TargetApi;
-import android.app.Activity;
 import android.graphics.drawable.Drawable;
 import android.os.Build;
-import android.support.annotation.IdRes;
-import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.view.View;
 import android.view.ViewManager;
@@ -35,16 +32,6 @@
     public static void setBottomPaddingDp(View view, int padding) {
         view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), 
view.getPaddingRight(),
                 (int) (padding * 
view.getContext().getResources().getDisplayMetrics().density));
-    }
-
-    @Nullable public static <T extends View> T findView(@NonNull View view, 
@IdRes int id) {
-        //noinspection unchecked
-        return (T) view.findViewById(id);
-    }
-
-    @Nullable public static <T extends View> T findView(@NonNull Activity 
activity, @IdRes int id) {
-        //noinspection unchecked
-        return (T) activity.findViewById(id);
     }
 
     public static void setAnimationMatrix(View view, Animation animation) {
diff --git a/app/src/main/res/values/credits.xml 
b/app/src/main/res/values/credits.xml
index 94b5649..9983142 100644
--- a/app/src/main/res/values/credits.xml
+++ b/app/src/main/res/values/credits.xml
@@ -1,7 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources xmlns:tools="http://schemas.android.com/tools"; 
tools:ignore="MissingTranslation">
     <string name="contributors_list">Adam Baso, Amir E. Aharoni, Anirudh S, 
Bernd Sitzmann, Brion Vibber, Dan Garry, Dmitry Brant, Elena Tonkovidova, Kenan 
Wang, Maryana Pinchuk, Matanya Moses, Max Semenik, Michael Holloway, Moiz Syed, 
Monte Hurd, Mun May Tee, Nicole Borrelli, Niklas Laxström, Rummana Yasmeen, 
Stephen Niedzielski, Thomas PT, Tomasz Finc, Vibha Bamba, Yuvi Panda</string>
-    <string name="libraries_list"><a 
href="https://github.com/JakeWharton/DiskLruCache";>DiskLruCache</a>
+    <string name="libraries_list"><a 
href="https://github.com/JakeWharton/ButterKnife";>ButterKnife</a>
+        <!-- 
https://github.com/JakeWharton/ButterKnife/blob/master/LICENSE.txt -->
+        (<a href="file:///android_asset/licenses/ButterKnife">license</a>),
+
+        <a href="https://github.com/JakeWharton/DiskLruCache";>DiskLruCache</a>
         <!-- 
https://github.com/JakeWharton/DiskLruCache/blob/master/LICENSE.txt -->
         (<a href="file:///android_asset/licenses/DiskLruCache">license</a>),
 
diff --git a/app/src/test/java/org/wikipedia/zero/WikipediaZeroTaskTest.java 
b/app/src/test/java/org/wikipedia/zero/WikipediaZeroTaskTest.java
index 655f81c..fe72833 100644
--- a/app/src/test/java/org/wikipedia/zero/WikipediaZeroTaskTest.java
+++ b/app/src/test/java/org/wikipedia/zero/WikipediaZeroTaskTest.java
@@ -64,7 +64,7 @@
         @Nullable
         private final ZeroMessage expected;
 
-        public Subject(@NonNull TestLatch latch, @Nullable ZeroMessage 
expected) {
+        Subject(@NonNull TestLatch latch, @Nullable ZeroMessage expected) {
             super(new ImmediateExecutor(), new TestApi(server), "userAgent");
             this.latch = latch;
             this.expected = expected;
diff --git a/config/checkstyle.xml b/config/checkstyle.xml
index 908b1fa..2744504 100644
--- a/config/checkstyle.xml
+++ b/config/checkstyle.xml
@@ -148,17 +148,6 @@
         </module>
         <module name="MissingSwitchDefault"/>
 
-        <!-- For the Gradle checkstyle task. I kept getting something like 
this:-->
-        <!--<file 
name=".../android-wikipedia/app/src/main/java/org/wikipedia/Utils.java">-->
-            <!--<error line="515" column="71" severity="error" message="Unable 
to get class information for JSONException." 
source="com.puppycrawl.tools.checkstyle.checks.coding.RedundantThrowsCheck"/>-->
-        <!--</file>-->
-        <!-- Ideally, we would get the Exception classes included in the 
checkstyle specific classpath. -->
-        <module name="RedundantThrows">
-            <property name="allowUnchecked" value="true"/>
-            <property name="allowSubclasses" value="true"/>
-            <property name="suppressLoadErrors" value="true"/>
-        </module>
-
         <module name="SimplifyBooleanExpression"/>
         <module name="SimplifyBooleanReturn"/>
 
@@ -167,9 +156,10 @@
         <module name="FinalClass"/>
         <module name="HideUtilityClassConstructor"/>
         <module name="InterfaceIsType"/>
-        <module name="VisibilityModifier"/>
-
-
+        <module name="VisibilityModifier">
+            <!-- Butter Knife -->
+            <property name="ignoreAnnotationCanonicalNames" value="Bind" />
+        </module>
         <!-- Miscellaneous other checks.                   -->
         <!-- See http://checkstyle.sf.net/config_misc.html -->
         <module name="ArrayTypeStyle"/>
diff --git a/config/quality.gradle b/config/quality.gradle
index c0f7c1c..8070c82 100644
--- a/config/quality.gradle
+++ b/config/quality.gradle
@@ -6,6 +6,7 @@
 
 checkstyle {
     configFile = file('../config/checkstyle.xml')
+    toolVersion = '6.11.2'
 }
 
 task checkstyle(type: Checkstyle) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I08af3779dba038f4e349a68f1e600782cda1fc52
Gerrit-PatchSet: 5
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Niedzielski <[email protected]>
Gerrit-Reviewer: BearND <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Dbrant <[email protected]>
Gerrit-Reviewer: Mholloway <[email protected]>
Gerrit-Reviewer: Niedzielski <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to