diff --git a/F-Droid/src/com/google/zxing/encode/Contents.java b/F-Droid/src/com/google/zxing/encode/Contents.java
index bc10515b4..0a8ed3341 100755
--- a/F-Droid/src/com/google/zxing/encode/Contents.java
+++ b/F-Droid/src/com/google/zxing/encode/Contents.java
@@ -90,25 +90,25 @@ public final class Contents {
     public static final String[] PHONE_KEYS = {
         ContactsContract.Intents.Insert.PHONE,
         ContactsContract.Intents.Insert.SECONDARY_PHONE,
-        ContactsContract.Intents.Insert.TERTIARY_PHONE
+        ContactsContract.Intents.Insert.TERTIARY_PHONE,
     };
 
     public static final String[] PHONE_TYPE_KEYS = {
         ContactsContract.Intents.Insert.PHONE_TYPE,
         ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE,
-        ContactsContract.Intents.Insert.TERTIARY_PHONE_TYPE
+        ContactsContract.Intents.Insert.TERTIARY_PHONE_TYPE,
     };
 
     public static final String[] EMAIL_KEYS = {
         ContactsContract.Intents.Insert.EMAIL,
         ContactsContract.Intents.Insert.SECONDARY_EMAIL,
-        ContactsContract.Intents.Insert.TERTIARY_EMAIL
+        ContactsContract.Intents.Insert.TERTIARY_EMAIL,
     };
 
     public static final String[] EMAIL_TYPE_KEYS = {
         ContactsContract.Intents.Insert.EMAIL_TYPE,
         ContactsContract.Intents.Insert.SECONDARY_EMAIL_TYPE,
-        ContactsContract.Intents.Insert.TERTIARY_EMAIL_TYPE
+        ContactsContract.Intents.Insert.TERTIARY_EMAIL_TYPE,
     };
 
 }
diff --git a/F-Droid/src/org/fdroid/fdroid/AppDetails.java b/F-Droid/src/org/fdroid/fdroid/AppDetails.java
index be214734d..a1516b57e 100644
--- a/F-Droid/src/org/fdroid/fdroid/AppDetails.java
+++ b/F-Droid/src/org/fdroid/fdroid/AppDetails.java
@@ -302,7 +302,7 @@ public class AppDetails extends AppCompatActivity implements ProgressListener, A
                 holder.api,
                 holder.buildtype,
                 holder.added,
-                holder.nativecode
+                holder.nativecode,
             };
 
             for (final View v : views) {
diff --git a/F-Droid/src/org/fdroid/fdroid/UpdateService.java b/F-Droid/src/org/fdroid/fdroid/UpdateService.java
index acb741e04..b4ec136f3 100644
--- a/F-Droid/src/org/fdroid/fdroid/UpdateService.java
+++ b/F-Droid/src/org/fdroid/fdroid/UpdateService.java
@@ -100,7 +100,7 @@ public class UpdateService extends IntentService implements ProgressListener {
      */
     private static final String[] APP_FIELDS_TO_IGNORE = {
         AppProvider.DataColumns.IGNORE_ALLUPDATES,
-        AppProvider.DataColumns.IGNORE_THISUPDATE
+        AppProvider.DataColumns.IGNORE_THISUPDATE,
     };
 
     public static void updateNow(Context context) {
@@ -645,7 +645,7 @@ public class UpdateService extends IntentService implements ProgressListener {
         final String[] fields = {
             ApkProvider.DataColumns.APK_ID,
             ApkProvider.DataColumns.VERSION,
-            ApkProvider.DataColumns.VERSION_CODE
+            ApkProvider.DataColumns.VERSION_CODE,
         };
         return ApkProvider.Helper.knownApks(this, apks, fields);
     }
diff --git a/F-Droid/src/org/fdroid/fdroid/Utils.java b/F-Droid/src/org/fdroid/fdroid/Utils.java
index 133452c50..c2b01aee3 100644
--- a/F-Droid/src/org/fdroid/fdroid/Utils.java
+++ b/F-Droid/src/org/fdroid/fdroid/Utils.java
@@ -83,7 +83,8 @@ public final class Utils {
             new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss", Locale.ENGLISH);
 
     private static final String[] FRIENDLY_SIZE_FORMAT = {
-        "%.0f B", "%.0f KiB", "%.1f MiB", "%.2f GiB" };
+        "%.0f B", "%.0f KiB", "%.1f MiB", "%.2f GiB",
+    };
 
     public static final String FALLBACK_ICONS_DIR = "/icons/";
 
@@ -225,7 +226,7 @@ public final class Utils {
         "4.4W",  // 20
         "5.0",   // 21
         "5.1",   // 22
-        "6.0"    // 23
+        "6.0",   // 23
     };
 
     public static String getAndroidVersionName(int sdkLevel) {
diff --git a/F-Droid/src/org/fdroid/fdroid/compat/FileCompat.java b/F-Droid/src/org/fdroid/fdroid/compat/FileCompat.java
index e7fcdc91a..def9164c4 100644
--- a/F-Droid/src/org/fdroid/fdroid/compat/FileCompat.java
+++ b/F-Droid/src/org/fdroid/fdroid/compat/FileCompat.java
@@ -55,7 +55,7 @@ public class FileCompat extends Compatibility {
         String[] commands = {
             "/system/bin/ln",
             source.getAbsolutePath(),
-            dest.getAbsolutePath()
+            dest.getAbsolutePath(),
         };
         try {
             Utils.debugLog(TAG, "Executing command: " + commands[0] + " " + commands[1] + " " + commands[2]);
@@ -102,7 +102,7 @@ public class FileCompat extends Compatibility {
         final String[] args = {
             "/system/bin/chmod",
             mode,
-            file.getAbsolutePath()
+            file.getAbsolutePath(),
         };
 
         try {
diff --git a/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java b/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java
index 4955c45d1..26d5bb83d 100644
--- a/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java
+++ b/F-Droid/src/org/fdroid/fdroid/data/ApkProvider.java
@@ -201,7 +201,7 @@ public class ApkProvider extends FDroidProvider {
             _ID, APK_ID, VERSION, REPO_ID, HASH, VERSION_CODE, NAME, SIZE,
             SIGNATURE, SOURCE_NAME, MIN_SDK_VERSION, MAX_SDK_VERSION,
             PERMISSIONS, FEATURES, NATIVE_CODE, HASH_TYPE, ADDED_DATE,
-            IS_COMPATIBLE, REPO_VERSION, REPO_ADDRESS, INCOMPATIBLE_REASONS
+            IS_COMPATIBLE, REPO_VERSION, REPO_ADDRESS, INCOMPATIBLE_REASONS,
         };
     }
 
@@ -349,7 +349,7 @@ public class ApkProvider extends FDroidProvider {
             // First (0th) path segment is the word "apk",
             // and we are not interested in it.
             uri.getPathSegments().get(1),
-            uri.getPathSegments().get(2)
+            uri.getPathSegments().get(2),
         };
         return new QuerySelection(selection, args);
     }
diff --git a/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java b/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java
index d84ff757d..fca8891d4 100644
--- a/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java
+++ b/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java
@@ -219,7 +219,7 @@ public class AppProvider extends FDroidProvider {
             CATEGORIES, ANTI_FEATURES, REQUIREMENTS, IGNORE_ALLUPDATES,
             IGNORE_THISUPDATE, ICON_URL, ICON_URL_LARGE,
             SUGGESTED_VERSION_CODE, SuggestedApk.VERSION,
-            InstalledApp.VERSION_CODE, InstalledApp.VERSION_NAME
+            InstalledApp.VERSION_CODE, InstalledApp.VERSION_NAME,
         };
     }
 
@@ -974,7 +974,8 @@ public class AppProvider extends FDroidProvider {
         String query = getIconUpdateQuery();
         final String[] params = {
             repoVersion, iconsDir, Utils.FALLBACK_ICONS_DIR,
-            repoVersion, iconsDirLarge, Utils.FALLBACK_ICONS_DIR };
+            repoVersion, iconsDirLarge, Utils.FALLBACK_ICONS_DIR,
+        };
         db.execSQL(query, params);
     }
 
diff --git a/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java b/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java
index 208dedfd9..06895ff41 100644
--- a/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java
+++ b/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java
@@ -330,7 +330,7 @@ public class DBHelper extends SQLiteOpenHelper {
         values.put("name", context.getString(nameResId));
         values.put("description", context.getString(descriptionResId));
         db.update(TABLE_REPO, values, "address = ?", new String[] {
-                context.getString(addressResId)
+                context.getString(addressResId),
         });
     }
 
diff --git a/F-Droid/src/org/fdroid/fdroid/data/RepoProvider.java b/F-Droid/src/org/fdroid/fdroid/data/RepoProvider.java
index ee1d44841..5e27df4c2 100644
--- a/F-Droid/src/org/fdroid/fdroid/data/RepoProvider.java
+++ b/F-Droid/src/org/fdroid/fdroid/data/RepoProvider.java
@@ -227,7 +227,7 @@ public class RepoProvider extends FDroidProvider {
 
         String[] ALL = {
             _ID, ADDRESS, NAME, DESCRIPTION, IN_USE, PRIORITY, PUBLIC_KEY,
-            FINGERPRINT, MAX_AGE, LAST_UPDATED, LAST_ETAG, VERSION, IS_SWAP
+            FINGERPRINT, MAX_AGE, LAST_UPDATED, LAST_ETAG, VERSION, IS_SWAP,
         };
     }
 
diff --git a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java
index 236d54656..b1a2a6125 100644
--- a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java
+++ b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java
@@ -161,7 +161,7 @@ public final class LocalRepoKeyStore {
             KeyManager wrappedKeyManager = new KerplappKeyManager(
                     (X509KeyManager) defaultKeyManager);
             keyManagers = new KeyManager[] {
-                wrappedKeyManager
+                wrappedKeyManager,
             };
         } catch (UnrecoverableKeyException | KeyStoreException | NoSuchAlgorithmException | CertificateException | OperatorCreationException | IOException e) {
             Log.e(TAG, "Error loading keystore", e);
@@ -255,7 +255,7 @@ public final class LocalRepoKeyStore {
     private void addToStore(String alias, KeyPair kp, Certificate cert) throws KeyStoreException,
             NoSuchAlgorithmException, CertificateException, IOException, UnrecoverableKeyException {
         Certificate[] chain = {
-            cert
+            cert,
         };
         keyStore.setKeyEntry(alias, kp.getPrivate(),
                 "".toCharArray(), chain);
@@ -274,7 +274,7 @@ public final class LocalRepoKeyStore {
         KeyManager defaultKeyManager = keyManagerFactory.getKeyManagers()[0];
         KeyManager wrappedKeyManager = new KerplappKeyManager((X509KeyManager) defaultKeyManager);
         keyManagers = new KeyManager[] {
-            wrappedKeyManager
+            wrappedKeyManager,
         };
     }
 
diff --git a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java
index b1cd2df54..7a9bc8f31 100644
--- a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java
+++ b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java
@@ -76,7 +76,7 @@ public final class LocalRepoManager {
     private static final String[] WEB_ROOT_ASSET_FILES = {
         "swap-icon.png",
         "swap-tick-done.png",
-        "swap-tick-not-done.png"
+        "swap-tick-not-done.png",
     };
 
     private final Map<String, App> apps = new HashMap<>();
diff --git a/F-Droid/src/org/fdroid/fdroid/views/AppListAdapter.java b/F-Droid/src/org/fdroid/fdroid/views/AppListAdapter.java
index 766d3ded9..563a411a0 100644
--- a/F-Droid/src/org/fdroid/fdroid/views/AppListAdapter.java
+++ b/F-Droid/src/org/fdroid/fdroid/views/AppListAdapter.java
@@ -108,7 +108,7 @@ public abstract class AppListAdapter extends CursorAdapter {
             holder.status,
             holder.summary,
             holder.license,
-            holder.name
+            holder.name,
         };
 
         for (View v : views) {
diff --git a/F-Droid/src/org/fdroid/fdroid/views/ManageReposActivity.java b/F-Droid/src/org/fdroid/fdroid/views/ManageReposActivity.java
index 4788c73fc..463e8bc0d 100644
--- a/F-Droid/src/org/fdroid/fdroid/views/ManageReposActivity.java
+++ b/F-Droid/src/org/fdroid/fdroid/views/ManageReposActivity.java
@@ -653,7 +653,7 @@ public class ManageReposActivity extends ActionBarActivity {
                 RepoProvider.DataColumns.NAME,
                 RepoProvider.DataColumns.PUBLIC_KEY,
                 RepoProvider.DataColumns.FINGERPRINT,
-                RepoProvider.DataColumns.IN_USE
+                RepoProvider.DataColumns.IN_USE,
             };
             return new CursorLoader(getActivity(), uri, projection, null, null, null);
         }
diff --git a/F-Droid/src/org/fdroid/fdroid/views/RepoDetailsActivity.java b/F-Droid/src/org/fdroid/fdroid/views/RepoDetailsActivity.java
index 05149e763..5c12c9b83 100644
--- a/F-Droid/src/org/fdroid/fdroid/views/RepoDetailsActivity.java
+++ b/F-Droid/src/org/fdroid/fdroid/views/RepoDetailsActivity.java
@@ -56,7 +56,7 @@ public class RepoDetailsActivity extends ActionBarActivity {
         R.id.text_last_update,
         R.id.label_repo_fingerprint,
         R.id.text_repo_fingerprint,
-        R.id.text_repo_fingerprint_description
+        R.id.text_repo_fingerprint_description,
     };
     /**
      * If the repo has <em>not</em> been updated yet, then we only show
@@ -97,7 +97,7 @@ public class RepoDetailsActivity extends ActionBarActivity {
         final String[] projection = {
             RepoProvider.DataColumns.NAME,
             RepoProvider.DataColumns.ADDRESS,
-            RepoProvider.DataColumns.FINGERPRINT
+            RepoProvider.DataColumns.FINGERPRINT,
         };
         repo = RepoProvider.Helper.findById(this, repoId, projection);
 
diff --git a/Privileged-Extension/src/main/java/org/fdroid/fdroid/privileged/PrivilegedService.java b/Privileged-Extension/src/main/java/org/fdroid/fdroid/privileged/PrivilegedService.java
index fb97b835e..4b36ff1ef 100644
--- a/Privileged-Extension/src/main/java/org/fdroid/fdroid/privileged/PrivilegedService.java
+++ b/Privileged-Extension/src/main/java/org/fdroid/fdroid/privileged/PrivilegedService.java
@@ -143,11 +143,11 @@ public class PrivilegedService extends Service {
         try {
             Class<?>[] installTypes = {
                 Uri.class, IPackageInstallObserver.class, int.class,
-                String.class
+                String.class,
             };
             Class<?>[] deleteTypes = {
                 String.class, IPackageDeleteObserver.class,
-                int.class
+                int.class,
             };
 
             PackageManager pm = getPackageManager();
diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml
index badc37e66..d73d44235 100644
--- a/config/checkstyle/checkstyle.xml
+++ b/config/checkstyle/checkstyle.xml
@@ -70,6 +70,7 @@
         <!--<module name="VisibilityModifier" />-->
 
         <module name="ArrayTypeStyle" />
+        <module name="ArrayTrailingComma" />
         <module name="UpperEll" />
 
         <module name="StringLiteralEquality" />