From 5c376918b12b83264238b451de6a36134b5e1b8d Mon Sep 17 00:00:00 2001 From: Fung Go Date: Sun, 15 Jan 2017 20:29:08 +0800 Subject: [PATCH] TileReceiver: Fix crash below Android N Signed-off-by: Fung Go --- app/build.gradle | 4 ++-- app/proguard-rules.pro | 8 +++++++- .../java/info/papdt/blackblub/receiver/TileReceiver.java | 9 ++++++--- .../info/papdt/blackblub/services/MaskTileService.java | 3 +++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 27a012f..f306dbc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "info.papdt.blackblub" minSdkVersion 21 targetSdkVersion 25 - versionCode 8 - versionName "1.2.0" + versionCode 9 + versionName "1.2.1" } buildTypes { release { diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index aae162c..7db80e1 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -41,4 +41,10 @@ } -keepclassmembers class **.R$* { public static ; -} \ No newline at end of file +} + +-keep class info.papdt.blackblub.receiver.** {*;} +-keep class info.papdt.blackblub.services.** {*;} +-keep class info.papdt.blackblub.ui.** {*;} +-keep class info.papdt.blackblub.ui.LaunchActivity$MessageReceiver {*;} +-keep class info.papdt.blackblub.ui.shortcut.ToggleActivity$MessageReceiver {*;} \ No newline at end of file diff --git a/app/src/main/java/info/papdt/blackblub/receiver/TileReceiver.java b/app/src/main/java/info/papdt/blackblub/receiver/TileReceiver.java index e7a607e..41cde66 100644 --- a/app/src/main/java/info/papdt/blackblub/receiver/TileReceiver.java +++ b/app/src/main/java/info/papdt/blackblub/receiver/TileReceiver.java @@ -3,6 +3,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.os.Build; import android.util.Log; import info.papdt.blackblub.C; @@ -49,9 +50,11 @@ public void onReceive(Context context, Intent intent) { break; } - Intent tileUpdateIntent = new Intent(context, MaskTileService.class); - tileUpdateIntent.putExtra(C.EXTRA_ACTION, action); - context.startService(tileUpdateIntent); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + Intent tileUpdateIntent = new Intent(context, MaskTileService.class); + tileUpdateIntent.putExtra(C.EXTRA_ACTION, action); + context.startService(tileUpdateIntent); + } } } diff --git a/app/src/main/java/info/papdt/blackblub/services/MaskTileService.java b/app/src/main/java/info/papdt/blackblub/services/MaskTileService.java index 8cee981..1f2e876 100644 --- a/app/src/main/java/info/papdt/blackblub/services/MaskTileService.java +++ b/app/src/main/java/info/papdt/blackblub/services/MaskTileService.java @@ -1,5 +1,6 @@ package info.papdt.blackblub.services; +import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.graphics.drawable.Icon; import android.os.Build; @@ -12,6 +13,7 @@ import info.papdt.blackblub.R; import info.papdt.blackblub.receiver.TileReceiver; +@SuppressLint("Override") @TargetApi(Build.VERSION_CODES.N) public class MaskTileService extends TileService { @@ -23,6 +25,7 @@ public void onClick(){ Log.i(TAG, "Tile service onClick method called"); super.onClick(); Tile tile = getQsTile(); + if (tile == null) return; int status = tile.getState(); Log.i(TAG, "status:"+status+"\t receive");