From 2c155379a503ce6e741efffb3c2055f034887a61 Mon Sep 17 00:00:00 2001 From: Majeur Date: Thu, 5 Mar 2015 19:16:44 +0100 Subject: [PATCH 1/8] Added support for Solid launcher --- README.md | 3 +- README.md~ | 75 ++++++++++ ShortcutBadger/src/main/AndroidManifest.xml | 3 + ShortcutBadger/src/main/AndroidManifest.xml~ | 26 ++++ .../leolin/shortcutbadger/ShortcutBadger.java | 3 + .../shortcutbadger/ShortcutBadger.java~ | 137 ++++++++++++++++++ .../shortcutbadger/impl/SolidHomeBadger.java | 32 ++++ .../shortcutbadger/impl/SolidHomeBadger.java~ | 32 ++++ 8 files changed, 310 insertions(+), 1 deletion(-) create mode 100644 README.md~ create mode 100644 ShortcutBadger/src/main/AndroidManifest.xml~ create mode 100644 ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java~ create mode 100644 ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java create mode 100644 ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java~ diff --git a/README.md b/README.md index 30d0671..416a7f7 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ HTC Launcher
Nova launcher with TeslaUnread,Apex launcher,Adw Launcher provided by notz +Solid launcher provided by notz @@ -72,4 +73,4 @@ LICENSE 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/README.md~ b/README.md~ new file mode 100644 index 0000000..30d0671 --- /dev/null +++ b/README.md~ @@ -0,0 +1,75 @@ +ShortcutBadger: +=================================== + +The ShortcutBadger makes your Android App showing the count of unread messages as a badge on your App shortcut! + +# Currently support launchers:
+ +Android native Launcher(Not support Android L)
+![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_android.png) + +Sony Home Launcher
+![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_sony.png) + +Samsung Touchwiz
+![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_samsung.png) + +LG Launcher
+![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_lg.png) + +HTC Launcher
+![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_htc.png) + + +Nova launcher with TeslaUnread,Apex launcher,Adw Launcher provided by notz + + + +HOW TO USE +=================================== +
1. Download the ShortcutBadger-aar.zip and put it into your project. +
2. Add the repositories path in your build.gradle. + + repositories { + jcenter() + maven { + url 'file://'+project.rootDir+"/ShortcutBadger-aar" + } + } +
3. Add dependencies for Shortcutbadger + + dependencies { + compile 'me.leolin:ShortcutBadger:1.0.3@aar' + } + +
4. Add the codes below: + + int badgeCount = 1; + try { + ShortcutBadger.setBadge(getApplicationContext(), badgeCount); + } catch (ShortcutBadgeException e) { + //handle the Exception + } +
5. If you want to remove the badge, just set the badgeCount as 0. +
+
+
+
+LICENSE +=================================== +
+ + Copyright 2014 Leo Lin + + 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/ShortcutBadger/src/main/AndroidManifest.xml b/ShortcutBadger/src/main/AndroidManifest.xml index f1b48fd..c1ddd27 100644 --- a/ShortcutBadger/src/main/AndroidManifest.xml +++ b/ShortcutBadger/src/main/AndroidManifest.xml @@ -23,4 +23,7 @@ + + + diff --git a/ShortcutBadger/src/main/AndroidManifest.xml~ b/ShortcutBadger/src/main/AndroidManifest.xml~ new file mode 100644 index 0000000..f1b48fd --- /dev/null +++ b/ShortcutBadger/src/main/AndroidManifest.xml~ @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java index c51ad78..d50744f 100644 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java @@ -31,6 +31,7 @@ public abstract class ShortcutBadger { private static final String HOME_PACKAGE_ANDROID1 = "com.android.launcher"; private static final String HOME_PACKAGE_ANDROID2 = "com.android.launcher2"; private static final String HOME_PACKAGE_ANDROID3 = "com.google.android.googlequicksearchbox"; + private static final String HOME_PACKAGE_SOLID = "com.majeur.launcher"; private static final String MESSAGE_NOT_SUPPORT_BADGE_COUNT = "ShortBadger is currently not support the badgeCount \"%d\""; @@ -117,6 +118,8 @@ private static ShortcutBadger getShortcutBadger(String currentHomePackage, Conte sShortcutBadger = new AdwHomeBadger(context); } else if (HOME_PACKAGE_NOVA.equals(currentHomePackage)) { sShortcutBadger = new NovaHomeBadger(context); + } else if (HOME_PACKAGE_SOLID.equals(currentHomePackage)) { + sShortcutBadger = new SolidHomeBadger(context); } diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java~ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java~ new file mode 100644 index 0000000..d50744f --- /dev/null +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java~ @@ -0,0 +1,137 @@ +package me.leolin.shortcutbadger; + +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.os.Build; +import me.leolin.shortcutbadger.impl.*; + + +/** + * Created with IntelliJ IDEA. + * User: leolin + * Date: 2013/11/14 + * Time: 下午5:51 + * To change this template use File | Settings | File Templates. + */ +public abstract class ShortcutBadger { + private static final String HOME_PACKAGE_SONY1 = "com.sonyericsson.home"; + private static final String HOME_PACKAGE_SONY2 = "com.anddoes.launcher"; + private static final String HOME_PACKAGE_SAMSUNG1 = "com.sec.android.app.launcher"; + private static final String HOME_PACKAGE_SAMSUNG2 = "com.sec.android.app.twlauncher"; + private static final String HOME_PACKAGE_LG1 = "com.lge.launcher"; + private static final String HOME_PACKAGE_LG2 = "com.lge.launcher2"; + private static final String HOME_PACKAGE_HTC = "com.htc.launcher"; + private static final String HOME_PACKAGE_APEX = "com.anddoes.launcher"; + private static final String HOME_PACKAGE_ADW = "org.adw.launcher"; + private static final String HOME_PACKAGE_ADW_EX = "org.adwfreak.launcher"; + private static final String HOME_PACKAGE_NOVA = "com.teslacoilsw.launcher"; + private static final String HOME_PACKAGE_ANDROID1 = "com.android.launcher"; + private static final String HOME_PACKAGE_ANDROID2 = "com.android.launcher2"; + private static final String HOME_PACKAGE_ANDROID3 = "com.google.android.googlequicksearchbox"; + private static final String HOME_PACKAGE_SOLID = "com.majeur.launcher"; + + + private static final String MESSAGE_NOT_SUPPORT_BADGE_COUNT = "ShortBadger is currently not support the badgeCount \"%d\""; + private static final String MESSAGE_NOT_SUPPORT_THIS_HOME = "ShortcutBadger is currently not support the home launcher package \"%s\""; + + private static final int MIN_BADGE_COUNT = 0; + private static final int MAX_BADGE_COUNT = 99; + + private static ShortcutBadger sShortcutBadger; + + private ShortcutBadger() { + } + + protected Context mContext; + + protected ShortcutBadger(Context context) { + this.mContext = context; + } + + protected abstract void executeBadge(int badgeCount) throws ShortcutBadgeException; + + public static void setBadge(Context context, int badgeCount) throws ShortcutBadgeException { + //badgeCount should between 0 to 99 + if (badgeCount < MIN_BADGE_COUNT || badgeCount > MAX_BADGE_COUNT) { + String exceptionMessage = String.format(MESSAGE_NOT_SUPPORT_BADGE_COUNT, badgeCount); + throw new ShortcutBadgeException(exceptionMessage); + } + + //find the home launcher Package + Intent intent = new Intent(Intent.ACTION_MAIN); + intent.addCategory(Intent.CATEGORY_HOME); + ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); + String currentHomePackage = resolveInfo.activityInfo.packageName; + + + ShortcutBadger shortcutBadger = getShortcutBadger(currentHomePackage, context); + + //not support this home launcher package + if (shortcutBadger == null) { + String exceptionMessage = String.format(MESSAGE_NOT_SUPPORT_THIS_HOME, currentHomePackage); + throw new ShortcutBadgeException(exceptionMessage); + } + try { + shortcutBadger.executeBadge(badgeCount); + } catch (Throwable e) { + throw new ShortcutBadgeException("Unable to execute badge:" + e.getMessage()); + } + shortcutBadger.executeBadge(badgeCount); + + } + + private static ShortcutBadger getShortcutBadger(String currentHomePackage, Context context) { + if (sShortcutBadger != null) { + return sShortcutBadger; + } + + // Workaround for Meizu: + // Meizu declare 'com.android.launcher', but hold something else + // Icons get duplicated on restart after badge change + if (Build.MANUFACTURER.toLowerCase().contains("meizu")) { + return null; + } + + + if (HOME_PACKAGE_SONY1.equals(currentHomePackage) || + HOME_PACKAGE_SONY2.equals(currentHomePackage)) { + sShortcutBadger = new SonyHomeBadger(context); + } else if (HOME_PACKAGE_SAMSUNG1.equals(currentHomePackage) || + HOME_PACKAGE_SAMSUNG2.equals(currentHomePackage)) { + sShortcutBadger = new SamsungHomeBadger(context); + } else if (HOME_PACKAGE_LG1.equals(currentHomePackage) || + HOME_PACKAGE_LG2.equals(currentHomePackage)) { + sShortcutBadger = new LGHomeBadger(context); + } else if (HOME_PACKAGE_HTC.equals(currentHomePackage)) { + sShortcutBadger = new NewHtcHomeBadger(context); + } else if (HOME_PACKAGE_ANDROID1.equals(currentHomePackage) || + HOME_PACKAGE_ANDROID2.equals(currentHomePackage) || + HOME_PACKAGE_ANDROID3.equals(currentHomePackage)) { + sShortcutBadger = new AndroidHomeBadger(context); + } else if (HOME_PACKAGE_APEX.equals(currentHomePackage)) { + sShortcutBadger = new ApexHomeBadger(context); + } else if (HOME_PACKAGE_ADW.equals(currentHomePackage) + || HOME_PACKAGE_ADW_EX.equals(currentHomePackage)) { + sShortcutBadger = new AdwHomeBadger(context); + } else if (HOME_PACKAGE_NOVA.equals(currentHomePackage)) { + sShortcutBadger = new NovaHomeBadger(context); + } else if (HOME_PACKAGE_SOLID.equals(currentHomePackage)) { + sShortcutBadger = new SolidHomeBadger(context); + } + + + return sShortcutBadger; + } + + protected String getEntryActivityName() { + ComponentName componentName = mContext.getPackageManager().getLaunchIntentForPackage(mContext.getPackageName()).getComponent(); + return componentName.getClassName(); + } + + protected String getContextPackageName() { + return mContext.getPackageName(); + } +} diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java new file mode 100644 index 0000000..1a41cf0 --- /dev/null +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java @@ -0,0 +1,32 @@ +package me.leolin.shortcutbadger.impl; + +import android.content.Context; +import android.content.Intent; + +import me.leolin.shortcutbadger.ShortcutBadgeException; +import me.leolin.shortcutbadger.ShortcutBadger; + +/** + * @author MajeurAndroid + */ +public class SolidHomeBadger extends ShortcutBadger { + + private static final String INTENT_UPDATE_COUNTER = "com.majeur.launcher.intent.action.UPDATE_BADGE"; + private static final String PACKAGENAME = "com.majeur.launcher.intent.extra.BADGE_PACKAGE"; + private static final String COUNT = "com.majeur.launcher.intent.extra.BADGE_COUNT"; + private static final String CLASS = "com.majeur.launcher.intent.extra.BADGE_CLASS"; + + public ApexHomeBadger(Context context) { + super(context); + } + + @Override + protected void executeBadge(int badgeCount) throws ShortcutBadgeException { + + Intent intent = new Intent(INTENT_UPDATE_COUNTER); + intent.putExtra(PACKAGENAME, getContextPackageName()); + intent.putExtra(COUNT, badgeCount); + intent.putExtra(CLASS, getEntryActivityName()); + mContext.sendBroadcast(intent); + } +} diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java~ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java~ new file mode 100644 index 0000000..546c9ab --- /dev/null +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java~ @@ -0,0 +1,32 @@ +package me.leolin.shortcutbadger.impl; + +import android.content.Context; +import android.content.Intent; + +import me.leolin.shortcutbadger.ShortcutBadgeException; +import me.leolin.shortcutbadger.ShortcutBadger; + +/** + * @author Majeur + */ +public class SolidHomeBadger extends ShortcutBadger { + + private static final String INTENT_UPDATE_COUNTER = "com.majeur.launcher.intent.action.UPDATE_BADGE"; + private static final String PACKAGENAME = "com.majeur.launcher.intent.extra.BADGE_PACKAGE"; + private static final String COUNT = "com.majeur.launcher.intent.extra.BADGE_COUNT"; + private static final String CLASS = "com.majeur.launcher.intent.extra.BADGE_CLASS"; + + public ApexHomeBadger(Context context) { + super(context); + } + + @Override + protected void executeBadge(int badgeCount) throws ShortcutBadgeException { + + Intent intent = new Intent(INTENT_UPDATE_COUNTER); + intent.putExtra(PACKAGENAME, getContextPackageName()); + intent.putExtra(COUNT, badgeCount); + intent.putExtra(CLASS, getEntryActivityName()); + mContext.sendBroadcast(intent); + } +} From 970e9ad14dacb8ccbec6944192ad4aaa19981c58 Mon Sep 17 00:00:00 2001 From: Majeur Date: Thu, 5 Mar 2015 19:17:56 +0100 Subject: [PATCH 2/8] Remove temp files --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 566a4b7..5cc3ac8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ *.iml build .gradle -local.properties \ No newline at end of file +local.properties +*~ From 68e879425d65f677d266572203f97633ae563427 Mon Sep 17 00:00:00 2001 From: Majeur Date: Thu, 5 Mar 2015 19:22:47 +0100 Subject: [PATCH 3/8] Fixed readme --- README.md | 4 +- README.md~ | 75 ---------- ShortcutBadger/src/main/AndroidManifest.xml~ | 26 ---- .../shortcutbadger/ShortcutBadger.java~ | 137 ------------------ .../shortcutbadger/impl/SolidHomeBadger.java~ | 32 ---- 5 files changed, 2 insertions(+), 272 deletions(-) delete mode 100644 README.md~ delete mode 100644 ShortcutBadger/src/main/AndroidManifest.xml~ delete mode 100644 ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java~ delete mode 100644 ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java~ diff --git a/README.md b/README.md index 416a7f7..9599d04 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,8 @@ HTC Launcher
![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_htc.png) -Nova launcher with TeslaUnread,Apex launcher,Adw Launcher provided by notz -Solid launcher provided by notz +Nova launcher with TeslaUnread,Apex launcher,Adw Launcher provided by notz
+Solid launcher provided by MajeurAndroid diff --git a/README.md~ b/README.md~ deleted file mode 100644 index 30d0671..0000000 --- a/README.md~ +++ /dev/null @@ -1,75 +0,0 @@ -ShortcutBadger: -=================================== - -The ShortcutBadger makes your Android App showing the count of unread messages as a badge on your App shortcut! - -# Currently support launchers:
- -Android native Launcher(Not support Android L)
-![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_android.png) - -Sony Home Launcher
-![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_sony.png) - -Samsung Touchwiz
-![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_samsung.png) - -LG Launcher
-![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_lg.png) - -HTC Launcher
-![ScreenShot](https://raw.github.com/leolin310148/ShortcutBadger/master/screenshots/ss_htc.png) - - -Nova launcher with TeslaUnread,Apex launcher,Adw Launcher provided by notz - - - -HOW TO USE -=================================== -
1. Download the ShortcutBadger-aar.zip and put it into your project. -
2. Add the repositories path in your build.gradle. - - repositories { - jcenter() - maven { - url 'file://'+project.rootDir+"/ShortcutBadger-aar" - } - } -
3. Add dependencies for Shortcutbadger - - dependencies { - compile 'me.leolin:ShortcutBadger:1.0.3@aar' - } - -
4. Add the codes below: - - int badgeCount = 1; - try { - ShortcutBadger.setBadge(getApplicationContext(), badgeCount); - } catch (ShortcutBadgeException e) { - //handle the Exception - } -
5. If you want to remove the badge, just set the badgeCount as 0. -
-
-
-
-LICENSE -=================================== -
- - Copyright 2014 Leo Lin - - 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/ShortcutBadger/src/main/AndroidManifest.xml~ b/ShortcutBadger/src/main/AndroidManifest.xml~ deleted file mode 100644 index f1b48fd..0000000 --- a/ShortcutBadger/src/main/AndroidManifest.xml~ +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java~ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java~ deleted file mode 100644 index d50744f..0000000 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java~ +++ /dev/null @@ -1,137 +0,0 @@ -package me.leolin.shortcutbadger; - -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; -import android.os.Build; -import me.leolin.shortcutbadger.impl.*; - - -/** - * Created with IntelliJ IDEA. - * User: leolin - * Date: 2013/11/14 - * Time: 下午5:51 - * To change this template use File | Settings | File Templates. - */ -public abstract class ShortcutBadger { - private static final String HOME_PACKAGE_SONY1 = "com.sonyericsson.home"; - private static final String HOME_PACKAGE_SONY2 = "com.anddoes.launcher"; - private static final String HOME_PACKAGE_SAMSUNG1 = "com.sec.android.app.launcher"; - private static final String HOME_PACKAGE_SAMSUNG2 = "com.sec.android.app.twlauncher"; - private static final String HOME_PACKAGE_LG1 = "com.lge.launcher"; - private static final String HOME_PACKAGE_LG2 = "com.lge.launcher2"; - private static final String HOME_PACKAGE_HTC = "com.htc.launcher"; - private static final String HOME_PACKAGE_APEX = "com.anddoes.launcher"; - private static final String HOME_PACKAGE_ADW = "org.adw.launcher"; - private static final String HOME_PACKAGE_ADW_EX = "org.adwfreak.launcher"; - private static final String HOME_PACKAGE_NOVA = "com.teslacoilsw.launcher"; - private static final String HOME_PACKAGE_ANDROID1 = "com.android.launcher"; - private static final String HOME_PACKAGE_ANDROID2 = "com.android.launcher2"; - private static final String HOME_PACKAGE_ANDROID3 = "com.google.android.googlequicksearchbox"; - private static final String HOME_PACKAGE_SOLID = "com.majeur.launcher"; - - - private static final String MESSAGE_NOT_SUPPORT_BADGE_COUNT = "ShortBadger is currently not support the badgeCount \"%d\""; - private static final String MESSAGE_NOT_SUPPORT_THIS_HOME = "ShortcutBadger is currently not support the home launcher package \"%s\""; - - private static final int MIN_BADGE_COUNT = 0; - private static final int MAX_BADGE_COUNT = 99; - - private static ShortcutBadger sShortcutBadger; - - private ShortcutBadger() { - } - - protected Context mContext; - - protected ShortcutBadger(Context context) { - this.mContext = context; - } - - protected abstract void executeBadge(int badgeCount) throws ShortcutBadgeException; - - public static void setBadge(Context context, int badgeCount) throws ShortcutBadgeException { - //badgeCount should between 0 to 99 - if (badgeCount < MIN_BADGE_COUNT || badgeCount > MAX_BADGE_COUNT) { - String exceptionMessage = String.format(MESSAGE_NOT_SUPPORT_BADGE_COUNT, badgeCount); - throw new ShortcutBadgeException(exceptionMessage); - } - - //find the home launcher Package - Intent intent = new Intent(Intent.ACTION_MAIN); - intent.addCategory(Intent.CATEGORY_HOME); - ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); - String currentHomePackage = resolveInfo.activityInfo.packageName; - - - ShortcutBadger shortcutBadger = getShortcutBadger(currentHomePackage, context); - - //not support this home launcher package - if (shortcutBadger == null) { - String exceptionMessage = String.format(MESSAGE_NOT_SUPPORT_THIS_HOME, currentHomePackage); - throw new ShortcutBadgeException(exceptionMessage); - } - try { - shortcutBadger.executeBadge(badgeCount); - } catch (Throwable e) { - throw new ShortcutBadgeException("Unable to execute badge:" + e.getMessage()); - } - shortcutBadger.executeBadge(badgeCount); - - } - - private static ShortcutBadger getShortcutBadger(String currentHomePackage, Context context) { - if (sShortcutBadger != null) { - return sShortcutBadger; - } - - // Workaround for Meizu: - // Meizu declare 'com.android.launcher', but hold something else - // Icons get duplicated on restart after badge change - if (Build.MANUFACTURER.toLowerCase().contains("meizu")) { - return null; - } - - - if (HOME_PACKAGE_SONY1.equals(currentHomePackage) || - HOME_PACKAGE_SONY2.equals(currentHomePackage)) { - sShortcutBadger = new SonyHomeBadger(context); - } else if (HOME_PACKAGE_SAMSUNG1.equals(currentHomePackage) || - HOME_PACKAGE_SAMSUNG2.equals(currentHomePackage)) { - sShortcutBadger = new SamsungHomeBadger(context); - } else if (HOME_PACKAGE_LG1.equals(currentHomePackage) || - HOME_PACKAGE_LG2.equals(currentHomePackage)) { - sShortcutBadger = new LGHomeBadger(context); - } else if (HOME_PACKAGE_HTC.equals(currentHomePackage)) { - sShortcutBadger = new NewHtcHomeBadger(context); - } else if (HOME_PACKAGE_ANDROID1.equals(currentHomePackage) || - HOME_PACKAGE_ANDROID2.equals(currentHomePackage) || - HOME_PACKAGE_ANDROID3.equals(currentHomePackage)) { - sShortcutBadger = new AndroidHomeBadger(context); - } else if (HOME_PACKAGE_APEX.equals(currentHomePackage)) { - sShortcutBadger = new ApexHomeBadger(context); - } else if (HOME_PACKAGE_ADW.equals(currentHomePackage) - || HOME_PACKAGE_ADW_EX.equals(currentHomePackage)) { - sShortcutBadger = new AdwHomeBadger(context); - } else if (HOME_PACKAGE_NOVA.equals(currentHomePackage)) { - sShortcutBadger = new NovaHomeBadger(context); - } else if (HOME_PACKAGE_SOLID.equals(currentHomePackage)) { - sShortcutBadger = new SolidHomeBadger(context); - } - - - return sShortcutBadger; - } - - protected String getEntryActivityName() { - ComponentName componentName = mContext.getPackageManager().getLaunchIntentForPackage(mContext.getPackageName()).getComponent(); - return componentName.getClassName(); - } - - protected String getContextPackageName() { - return mContext.getPackageName(); - } -} diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java~ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java~ deleted file mode 100644 index 546c9ab..0000000 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java~ +++ /dev/null @@ -1,32 +0,0 @@ -package me.leolin.shortcutbadger.impl; - -import android.content.Context; -import android.content.Intent; - -import me.leolin.shortcutbadger.ShortcutBadgeException; -import me.leolin.shortcutbadger.ShortcutBadger; - -/** - * @author Majeur - */ -public class SolidHomeBadger extends ShortcutBadger { - - private static final String INTENT_UPDATE_COUNTER = "com.majeur.launcher.intent.action.UPDATE_BADGE"; - private static final String PACKAGENAME = "com.majeur.launcher.intent.extra.BADGE_PACKAGE"; - private static final String COUNT = "com.majeur.launcher.intent.extra.BADGE_COUNT"; - private static final String CLASS = "com.majeur.launcher.intent.extra.BADGE_CLASS"; - - public ApexHomeBadger(Context context) { - super(context); - } - - @Override - protected void executeBadge(int badgeCount) throws ShortcutBadgeException { - - Intent intent = new Intent(INTENT_UPDATE_COUNTER); - intent.putExtra(PACKAGENAME, getContextPackageName()); - intent.putExtra(COUNT, badgeCount); - intent.putExtra(CLASS, getEntryActivityName()); - mContext.sendBroadcast(intent); - } -} From 120f1584ec345cfb0e7e40ec02984fa13bc44c33 Mon Sep 17 00:00:00 2001 From: Majeur Date: Thu, 5 Mar 2015 20:06:19 +0100 Subject: [PATCH 4/8] Optimize app icon process, fix glitched circles --- .../leolin/shortcutbadger/util/ImageUtil.java | 48 ++++++++----------- 1 file changed, 20 insertions(+), 28 deletions(-) diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/util/ImageUtil.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/util/ImageUtil.java index ba822e3..548758e 100644 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/util/ImageUtil.java +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/util/ImageUtil.java @@ -1,7 +1,7 @@ package me.leolin.shortcutbadger.util; import android.content.Context; -import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; import android.graphics.*; import android.graphics.drawable.Drawable; import me.leolin.shortcutbadger.ShortcutBadgeException; @@ -41,19 +41,18 @@ public static byte[] bitmapToByteArray(Bitmap bitmap) { public static byte[] drawBadgeOnAppIcon(Context context, int badgeCount) throws ShortcutBadgeException { - Bitmap appIcon = null; + Bitmap appIcon; String gText = String.valueOf(badgeCount); - List packages = context.getPackageManager().getInstalledPackages(0); - for (PackageInfo packageInfo : packages) { - if (context.getPackageName().equals(packageInfo.packageName)) { - Drawable drawable = packageInfo.applicationInfo.loadIcon(context.getPackageManager()); - appIcon = drawableToBitmap(drawable); - } + try { + Drawable iconDrawable = context.getPackageManager().getApplicationIcon(context.getPackageName()); + appIcon = drawableToBitmap(iconDrawable); + } catch (PackageManager.NameNotFoundException e) { + throw new ShortcutBadgeException("Could not load the app Icon"); } if (appIcon == null) { - throw new ShortcutBadgeException("count not load the app Icon"); + throw new ShortcutBadgeException("Could not load the app Icon"); } if (badgeCount == 0) { @@ -78,38 +77,31 @@ public static byte[] drawBadgeOnAppIcon(Context context, int badgeCount) throws float cx = appIcon.getWidth() - radius; float cy = radius; - - Paint paint_red = new Paint(); - paint_red.setColor(Color.RED); - Paint paint_white = new Paint(); - paint_white.setColor(Color.WHITE); Canvas canvas = new Canvas(appIcon); - canvas.drawCircle(cx, cy, radius, paint_white); - - - canvas.drawCircle(cx, cy, radius * 6 / 7, paint_red); - - - // new antialised Paint - Paint paint_text = new Paint(Paint.ANTI_ALIAS_FLAG); - // text color - #3D3D3D - paint_text.setColor(Color.WHITE); + //ANTI_ALIAS to avoid glitched circles + Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); + paint.setColor(Color.WHITE); + canvas.drawCircle(cx, cy, radius, paint); + paint.setColor(Color.RED); + canvas.drawCircle(cx, cy, radius * 6 / 7, paint); + + paint.setColor(Color.WHITE); // text size in pixels int textSize = (int)(radius*0.7); if (gText.length() > 1) { textSize = (int)(radius*0.5); } - paint_text.setTextSize((int) (textSize * scale)); - paint_text.setFakeBoldText(true); + paint.setTextSize((int) (textSize * scale)); + paint.setFakeBoldText(true); // draw text to the Canvas center Rect bounds = new Rect(); - paint_text.getTextBounds(gText, 0, gText.length(), bounds); + paint.getTextBounds(gText, 0, gText.length(), bounds); float bw = bounds.width() / 2; if (gText.endsWith("1")) { bw *= 1.25; } float bh = bounds.height() / 2; - canvas.drawText(gText, cx - bw, cy + bh, paint_text); + canvas.drawText(gText, cx - bw, cy + bh, paint); return bitmapToByteArray(appIcon); } From 1c7742b1a9298c306b0df852b5b4ba8a95bb55e0 Mon Sep 17 00:00:00 2001 From: evgeniysharafan Date: Thu, 12 Mar 2015 12:35:54 +0200 Subject: [PATCH 5/8] Fix for showing badges on Samsung. --- .../me/leolin/shortcutbadger/impl/SamsungHomeBadger.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SamsungHomeBadger.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SamsungHomeBadger.java index ea9f2c5..d135ed1 100644 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SamsungHomeBadger.java +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SamsungHomeBadger.java @@ -44,9 +44,13 @@ protected void executeBadge(int badgeCount) throws ShortcutBadgeException { private ContentValues getContentValues(int badgeCount) { ContentValues contentValues = new ContentValues(); - contentValues.put("package", getContextPackageName()); - contentValues.put("class", getEntryActivityName()); + if (isInsert) { + contentValues.put("package", getContextPackageName()); + contentValues.put("class", getEntryActivityName()); + } + contentValues.put("badgecount", badgeCount); + return contentValues; } } From 168bf0d4042c1ec64e9c24523aae88bd603c1a68 Mon Sep 17 00:00:00 2001 From: evgeniysharafan Date: Thu, 12 Mar 2015 12:37:11 +0200 Subject: [PATCH 6/8] Fix for compilation error. --- .../java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java index 1a41cf0..bdc2338 100644 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SolidHomeBadger.java @@ -16,13 +16,12 @@ public class SolidHomeBadger extends ShortcutBadger { private static final String COUNT = "com.majeur.launcher.intent.extra.BADGE_COUNT"; private static final String CLASS = "com.majeur.launcher.intent.extra.BADGE_CLASS"; - public ApexHomeBadger(Context context) { + public SolidHomeBadger(Context context) { super(context); } @Override protected void executeBadge(int badgeCount) throws ShortcutBadgeException { - Intent intent = new Intent(INTENT_UPDATE_COUNTER); intent.putExtra(PACKAGENAME, getContextPackageName()); intent.putExtra(COUNT, badgeCount); From a1109fc303a7dab3db7b5e6fbb414f7ae4ddeda3 Mon Sep 17 00:00:00 2001 From: evgeniysharafan Date: Thu, 12 Mar 2015 12:58:26 +0200 Subject: [PATCH 7/8] Fix for showing badges on Samsung. Sorry, I did it in online github editor and forgot to copy paste all needed code :) --- .../me/leolin/shortcutbadger/impl/SamsungHomeBadger.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SamsungHomeBadger.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SamsungHomeBadger.java index d135ed1..aa79d45 100644 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SamsungHomeBadger.java +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/SamsungHomeBadger.java @@ -30,11 +30,11 @@ protected void executeBadge(int badgeCount) throws ShortcutBadgeException { if (cursor != null) { while (cursor.moveToNext()) { int id = cursor.getInt(0); - ContentValues contentValues = getContentValues(badgeCount); + ContentValues contentValues = getContentValues(badgeCount, false); contentResolver.update(mUri, contentValues, "_id=?", new String[]{String.valueOf(id)}); } } else { - ContentValues contentValues = getContentValues(badgeCount); + ContentValues contentValues = getContentValues(badgeCount, true); contentResolver.insert(mUri, contentValues); } } finally { @@ -42,7 +42,7 @@ protected void executeBadge(int badgeCount) throws ShortcutBadgeException { } } - private ContentValues getContentValues(int badgeCount) { + private ContentValues getContentValues(int badgeCount, boolean isInsert) { ContentValues contentValues = new ContentValues(); if (isInsert) { contentValues.put("package", getContextPackageName()); From 1842d6567ef29bb736f4936abf0dbb6e8ee86845 Mon Sep 17 00:00:00 2001 From: Leo Lin Date: Thu, 12 Mar 2015 21:25:40 +0800 Subject: [PATCH 8/8] update to 1.0.4 --- README.md | 2 +- SampleApp/build.gradle | 2 +- ShortcutBadger-aar-1.0.3.zip | Bin 18638 -> 0 bytes ShortcutBadger-aar-1.0.4.zip | Bin 0 -> 19195 bytes .../1.0.3/ShortcutBadger-1.0.3.aar | Bin 14977 -> 0 bytes .../1.0.3/ShortcutBadger-1.0.3.aar.md5 | 1 - .../1.0.3/ShortcutBadger-1.0.3.aar.sha1 | 1 - .../1.0.3/ShortcutBadger-1.0.3.pom.md5 | 1 - .../1.0.3/ShortcutBadger-1.0.3.pom.sha1 | 1 - .../1.0.4/ShortcutBadger-1.0.4.aar | Bin 0 -> 15525 bytes .../1.0.4/ShortcutBadger-1.0.4.aar.md5 | 1 + .../1.0.4/ShortcutBadger-1.0.4.aar.sha1 | 1 + .../ShortcutBadger-1.0.4.pom} | 2 +- .../1.0.4/ShortcutBadger-1.0.4.pom.md5 | 1 + .../1.0.4/ShortcutBadger-1.0.4.pom.sha1 | 1 + .../me/leolin/ShortcutBadger/maven-metadata.xml | 3 ++- .../ShortcutBadger/maven-metadata.xml.md5 | 2 +- .../ShortcutBadger/maven-metadata.xml.sha1 | 2 +- ShortcutBadger/build.gradle | 2 +- .../leolin/shortcutbadger/ShortcutBadger.java | 1 - gradle/wrapper/gradle-wrapper.properties | 2 +- 21 files changed, 13 insertions(+), 13 deletions(-) delete mode 100644 ShortcutBadger-aar-1.0.3.zip create mode 100644 ShortcutBadger-aar-1.0.4.zip delete mode 100644 ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.aar delete mode 100644 ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.aar.md5 delete mode 100644 ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.aar.sha1 delete mode 100644 ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom.md5 delete mode 100644 ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom.sha1 create mode 100644 ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar create mode 100644 ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar.md5 create mode 100644 ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar.sha1 rename ShortcutBadger-aar/me/leolin/ShortcutBadger/{1.0.3/ShortcutBadger-1.0.3.pom => 1.0.4/ShortcutBadger-1.0.4.pom} (93%) create mode 100644 ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom.md5 create mode 100644 ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom.sha1 diff --git a/README.md b/README.md index 9599d04..8cf88eb 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ HOW TO USE
3. Add dependencies for Shortcutbadger dependencies { - compile 'me.leolin:ShortcutBadger:1.0.3@aar' + compile 'me.leolin:ShortcutBadger:1.0.4@aar' }
4. Add the codes below: diff --git a/SampleApp/build.gradle b/SampleApp/build.gradle index 04ecd4d..aaa8d22 100644 --- a/SampleApp/build.gradle +++ b/SampleApp/build.gradle @@ -24,5 +24,5 @@ android { dependencies { - compile 'me.leolin:ShortcutBadger:1.0.3@aar' + compile 'me.leolin:ShortcutBadger:1.0.4@aar' } diff --git a/ShortcutBadger-aar-1.0.3.zip b/ShortcutBadger-aar-1.0.3.zip deleted file mode 100644 index fb7d136221dd50a60407a25adcd79b26bae09112..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18638 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%0AOhGEc-vL1Ldrv6inYfnr5CUVI|6)jh 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 E0y{yPbN~PV diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.aar.md5 b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.aar.md5 deleted file mode 100644 index 8ff6026..0000000 --- a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.aar.md5 +++ /dev/null @@ -1 +0,0 @@ -ee8f6331443e3ea26830f9e705d5251c \ No newline at end of file diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.aar.sha1 b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.aar.sha1 deleted file mode 100644 index 71f31d0..0000000 --- a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.aar.sha1 +++ /dev/null @@ -1 +0,0 @@ -2f44ad503773983506d34f79f3ba120419e73ae1 \ No newline at end of file diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom.md5 b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom.md5 deleted file mode 100644 index 8386c1d..0000000 --- a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -9ee85a9301c732d1bce11cc80f9b5015 \ No newline at end of file diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom.sha1 b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom.sha1 deleted file mode 100644 index 737ee90..0000000 --- a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -46d1890ad18cce96a5ac9108d49b8ad7a8e4f875 \ No newline at end of file diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar new file mode 100644 index 0000000000000000000000000000000000000000..f65ea94f578591c7428ad3989b903bb8095d888f GIT binary patch literal 15525 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 BtxNy_ literal 0 HcmV?d00001 diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar.md5 b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar.md5 new file mode 100644 index 0000000..83f2152 --- /dev/null +++ b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar.md5 @@ -0,0 +1 @@ +d338c83eb5ab8947599271a2abaa85f7 \ No newline at end of file diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar.sha1 b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar.sha1 new file mode 100644 index 0000000..758d3d3 --- /dev/null +++ b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.aar.sha1 @@ -0,0 +1 @@ +3ad42a21e3d09f121924ea36f00851a70cd7e6da \ No newline at end of file diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom similarity index 93% rename from ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom rename to ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom index 8d2c3d8..7a2ed6c 100644 --- a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.3/ShortcutBadger-1.0.3.pom +++ b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom @@ -4,6 +4,6 @@ 4.0.0 me.leolin ShortcutBadger - 1.0.3 + 1.0.4 aar diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom.md5 b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom.md5 new file mode 100644 index 0000000..6edde63 --- /dev/null +++ b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom.md5 @@ -0,0 +1 @@ +ef60b76b30086fafc29a95deaf9abb22 \ No newline at end of file diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom.sha1 b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom.sha1 new file mode 100644 index 0000000..b3393b9 --- /dev/null +++ b/ShortcutBadger-aar/me/leolin/ShortcutBadger/1.0.4/ShortcutBadger-1.0.4.pom.sha1 @@ -0,0 +1 @@ +65f1280082e22d5b11b712dcccbb2bf7f212136e \ No newline at end of file diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml b/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml index 4eaeeb9..2746dd4 100644 --- a/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml +++ b/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml @@ -6,7 +6,8 @@ 1.0.3 + 1.0.4 - 20150304021027 + 20150312132318 diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml.md5 b/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml.md5 index 7c50665..bf9409b 100644 --- a/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml.md5 +++ b/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml.md5 @@ -1 +1 @@ -7a43d19b9a0683a04b55544f0bca97c6 \ No newline at end of file +2254cce943f461fa33138c7e20fe0974 \ No newline at end of file diff --git a/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml.sha1 b/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml.sha1 index 79ffc88..282f7ce 100644 --- a/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml.sha1 +++ b/ShortcutBadger-aar/me/leolin/ShortcutBadger/maven-metadata.xml.sha1 @@ -1 +1 @@ -59df476ad64380e00b68ef5705d07da81623fa9e \ No newline at end of file +5bb373d7e833ba2ef3e7634fa3b2d345e842706e \ No newline at end of file diff --git a/ShortcutBadger/build.gradle b/ShortcutBadger/build.gradle index ccb5881..11df1d5 100644 --- a/ShortcutBadger/build.gradle +++ b/ShortcutBadger/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'android-library' apply plugin: 'maven' group = 'me.leolin' -version = '1.0.3' +version = '1.0.4' android { diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java index d50744f..62d4274 100644 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java @@ -79,7 +79,6 @@ public static void setBadge(Context context, int badgeCount) throws ShortcutBadg } catch (Throwable e) { throw new ShortcutBadgeException("Unable to execute badge:" + e.getMessage()); } - shortcutBadger.executeBadge(badgeCount); } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 311d753..9a70bec 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -#Wed Mar 04 10:08:25 CST 2015 +#Thu Mar 12 21:22:24 CST 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME