From 15181d47f54055b51f51edf1ea7e47859db7f208 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 10 Oct 2016 09:44:18 +0200 Subject: [PATCH 1/5] use apply() with all SharedPreferences if the code does not check the result of commit() it should use apply() since that runs in the background. --- .../main/java/org/fdroid/fdroid/localrepo/SwapService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/localrepo/SwapService.java b/app/src/main/java/org/fdroid/fdroid/localrepo/SwapService.java index 19f8d9161..ec0619e1b 100644 --- a/app/src/main/java/org/fdroid/fdroid/localrepo/SwapService.java +++ b/app/src/main/java/org/fdroid/fdroid/localrepo/SwapService.java @@ -331,7 +331,7 @@ public class SwapService extends Service { // ========================================== private void persistAppsToSwap() { - persistence().edit().putString(KEY_APPS_TO_SWAP, serializePackages(appsToSwap)).commit(); + persistence().edit().putString(KEY_APPS_TO_SWAP, serializePackages(appsToSwap)).apply(); } /** @@ -398,7 +398,7 @@ public class SwapService extends Service { persistence().edit() .putBoolean(KEY_BLUETOOTH_ENABLED, bluetoothSwap.isConnected()) .putBoolean(KEY_WIFI_ENABLED, wifiSwap.isConnected()) - .commit(); + .apply(); } }; From c71590c6fa71c1c1a38765d3fe0140aaa2f14b54 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 10 Oct 2016 09:36:12 +0200 Subject: [PATCH 2/5] fix lint StringFormatCount app/src/main/res/values-nb/strings.xml:344: Conflicting number of arguments here --- app/src/main/res/values-nb/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 7f5b91d02..ef2192587 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -341,7 +341,7 @@ For alltid Feil ved installasjon av %s - Feil ved avinstallering + Feil ved avinstallering av %s Installerer… From a16589eab03e6ba32356f069e3ab74fb57ef6501 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 10 Oct 2016 09:38:02 +0200 Subject: [PATCH 3/5] bump to errors: AppCompatMethod, NestedScrolling, StringFormatCount These are things that we definitely want to be checking, and making them lint errors rather than warnings means the CI build will fail. --- app/build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index aa707606b..750c5313b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -202,6 +202,8 @@ android { // to make CI fail on errors until this is fixed https://github.com/rtyley/spongycastle/issues/7 warning 'InvalidPackage' + + error 'AppCompatMethod', 'NestedScrolling', 'StringFormatCount' } packagingOptions { From e2256d3d8ca96deb842f2fb9933ff185eb867103 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 10 Oct 2016 20:01:15 +0200 Subject: [PATCH 4/5] fix "Repeated word "en" in message: possible typo" --- app/src/main/res/values-nb/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index ef2192587..0675f7987 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -56,7 +56,7 @@ Dette registret er allerede satt opp, dette vil legge til ny informasjon om nøkler. Dette registret er allerede satt opp, bekreft at du vil skru det på igjen. Oppstrøms-pakkebrønnen er allerede satt opp og påskrudd. - Du må først slette denne pakkebrønnen før du kan legge til en med en en annen nøkkel. + Du må først slette denne pakkebrønnen før du kan legge til en med en annen nøkkel. Ignorerer ugyldig pakkebrønnsadresse: %s Oppdater pakkebrønnene Pakkebrønner From a5a90954bc8bc7fdf83969c9121da87aab02d8c6 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 10 Oct 2016 20:13:41 +0200 Subject: [PATCH 5/5] fix lint UnsafeProtectedBroadcastReceiver Android won't protect us from other apps sending other Intents to these receivers, so at least check that the action string matches what its looking for. This is based on a lint recommendation. --- app/build.gradle | 2 +- .../org/fdroid/fdroid/receiver/StartupReceiver.java | 8 +++++++- .../fdroid/receiver/WifiStateChangeReceiver.java | 11 +++++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 750c5313b..b99c16ec1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -203,7 +203,7 @@ android { // to make CI fail on errors until this is fixed https://github.com/rtyley/spongycastle/issues/7 warning 'InvalidPackage' - error 'AppCompatMethod', 'NestedScrolling', 'StringFormatCount' + error 'AppCompatMethod', 'NestedScrolling', 'StringFormatCount', 'UnsafeProtectedBroadcastReceiver' } packagingOptions { diff --git a/app/src/main/java/org/fdroid/fdroid/receiver/StartupReceiver.java b/app/src/main/java/org/fdroid/fdroid/receiver/StartupReceiver.java index 126696d65..86b35b9f6 100644 --- a/app/src/main/java/org/fdroid/fdroid/receiver/StartupReceiver.java +++ b/app/src/main/java/org/fdroid/fdroid/receiver/StartupReceiver.java @@ -23,12 +23,18 @@ import android.content.Context; import android.content.Intent; import org.fdroid.fdroid.UpdateService; +import org.fdroid.fdroid.Utils; public class StartupReceiver extends BroadcastReceiver { + private static final String TAG = "StartupReceiver"; @Override public void onReceive(Context ctx, Intent intent) { - UpdateService.schedule(ctx); + if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { + UpdateService.schedule(ctx); + } else { + Utils.debugLog(TAG, "received unsupported Intent " + intent); + } } } diff --git a/app/src/main/java/org/fdroid/fdroid/receiver/WifiStateChangeReceiver.java b/app/src/main/java/org/fdroid/fdroid/receiver/WifiStateChangeReceiver.java index 67dfe38d8..8521d1cad 100644 --- a/app/src/main/java/org/fdroid/fdroid/receiver/WifiStateChangeReceiver.java +++ b/app/src/main/java/org/fdroid/fdroid/receiver/WifiStateChangeReceiver.java @@ -4,14 +4,21 @@ import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.net.wifi.WifiManager; +import org.fdroid.fdroid.Utils; import org.fdroid.fdroid.net.WifiStateChangeService; public class WifiStateChangeReceiver extends BroadcastReceiver { + private static final String TAG = "WifiStateChangeReceiver"; @Override public void onReceive(Context context, Intent intent) { - intent.setComponent(new ComponentName(context, WifiStateChangeService.class)); - context.startService(intent); + if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(intent.getAction())) { + intent.setComponent(new ComponentName(context, WifiStateChangeService.class)); + context.startService(intent); + } else { + Utils.debugLog(TAG, "received unsupported Intent: " + intent); + } } }