From e420d43557faab9cacc7f296d752976bb244e2ae Mon Sep 17 00:00:00 2001 From: Leo Lin Date: Fri, 15 May 2015 01:04:57 +0800 Subject: [PATCH] Update to 1.1.1. Add more launcher screenshot. Add DefaultBadger. --- README.md | 109 ++++++++++------- .../shortcutbadger/example/MainActivity.java | 22 ++-- .../ShortcutBadgeException.java | 8 +- .../leolin/shortcutbadger/ShortcutBadger.java | 115 +++++++++--------- .../impl/Android2HomeBadger.java | 47 ------- .../impl/AndroidHomeBadger.java | 46 ------- .../shortcutbadger/impl/DefaultBadger.java | 36 ++++++ .../leolin/shortcutbadger/util/ImageUtil.java | 109 ----------------- screenshots/ss_adw.png | Bin 0 -> 18467 bytes screenshots/ss_apex.png | Bin 0 -> 21567 bytes screenshots/ss_nova.png | Bin 0 -> 26835 bytes 11 files changed, 167 insertions(+), 325 deletions(-) delete mode 100644 ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/Android2HomeBadger.java delete mode 100644 ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/AndroidHomeBadger.java create mode 100644 ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/DefaultBadger.java delete mode 100644 ShortcutBadger/src/main/java/me/leolin/shortcutbadger/util/ImageUtil.java create mode 100644 screenshots/ss_adw.png create mode 100644 screenshots/ss_apex.png create mode 100644 screenshots/ss_nova.png diff --git a/README.md b/README.md index 3122655..b88b8ab 100644 --- a/README.md +++ b/README.md @@ -7,54 +7,69 @@ The ShortcutBadger makes your Android App showing the count of unread messages a - - - + + + - - - + + + + + + + + - - +
-

Android

-
(before 4.4)
-
(Deprecated since 1.1.0)
-
- -
-

Sony

-
- -
-

Samsung

-
- -
+

Sony

+
+ +
+

Samsung

+
+ +
+

LG

+
+ +
-

LG

-
- -
-

HTC

-
- -
-

Xiaomi

-
- -
+

HTC

+
+ +
+

Xiaomi

+
+ +
+

ASUS

+
+ +
+

ADW

+
+ +
+

APEX

+
+ +
+

NOVA

+
+ +
-

ASUS

+

Android

+
(before 4.4)
+
(Deprecated since 1.1.0)

- -
- +
+ Nova launcher with TeslaUnread,Apex launcher,Adw Launcher provided by [notz](https://github.com/notz)
Solid launcher provided by [MajeurAndroid](https://github.com/MajeurAndroid) @@ -70,18 +85,17 @@ USAGE
2. Add dependencies for ShortcutBadger, it's available from maven now. dependencies { - compile 'me.leolin:ShortcutBadger:1.1.0@aar' + compile 'me.leolin:ShortcutBadger:1.1.1@aar' }
3. Add the codes below: int badgeCount = 1; - try { - ShortcutBadger.setBadge(getApplicationContext(), badgeCount); - } catch (ShortcutBadgeException e) { - //handle the Exception - } -
4. If you want to remove the badge, just set the badgeCount as 0. + ShortcutBadger.with(getApplicationContext()).count(badgeCount); + +
4. If you want to remove the badge + + ShortcutBadger.with(getApplicationContext()).remove();


@@ -105,6 +119,11 @@ Please use version 1.1.0+ CHANGE LOG =================================== +1.1.1:
+Add DefaultBadger because some launchers use android.intent.action.BADGE_COUNT_UPDATE to update count. +
+Since the ShortcutBadgerException is helpless. So change api to set badge and never have to handle the exception again. +

1.1.0:
Remove Android Launcher support due to Google Play Developer Term Violation since 4.4

diff --git a/SampleApp/src/main/java/me/leolin/shortcutbadger/example/MainActivity.java b/SampleApp/src/main/java/me/leolin/shortcutbadger/example/MainActivity.java index f58a07c..93cdcd3 100644 --- a/SampleApp/src/main/java/me/leolin/shortcutbadger/example/MainActivity.java +++ b/SampleApp/src/main/java/me/leolin/shortcutbadger/example/MainActivity.java @@ -10,7 +10,6 @@ import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; -import me.leolin.shortcutbadger.ShortcutBadgeException; import me.leolin.shortcutbadger.ShortcutBadger; @@ -29,20 +28,17 @@ protected void onCreate(Bundle savedInstanceState) { button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + int badgeCount = 0; try { - int badgeCount = 0; - try { - badgeCount = Integer.parseInt(numInput.getText().toString()); - } catch (NumberFormatException e) { - Toast.makeText(getApplicationContext(), "Error input", Toast.LENGTH_SHORT).show(); - } - - ShortcutBadger.setBadge(getApplicationContext(), badgeCount); - - Toast.makeText(getApplicationContext(), "Set count=" + badgeCount, Toast.LENGTH_SHORT).show(); - } catch (ShortcutBadgeException e) { - Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); + badgeCount = Integer.parseInt(numInput.getText().toString()); + } catch (NumberFormatException e) { + Toast.makeText(getApplicationContext(), "Error input", Toast.LENGTH_SHORT).show(); } + +// ShortcutBadger.setBadge(getApplicationContext(), badgeCount); + ShortcutBadger.with(getApplicationContext()).count(badgeCount); + + Toast.makeText(getApplicationContext(), "Set count=" + badgeCount, Toast.LENGTH_SHORT).show(); } }); diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadgeException.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadgeException.java index f6fdc55..5aad647 100644 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadgeException.java +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadgeException.java @@ -1,12 +1,6 @@ package me.leolin.shortcutbadger; -/** - * Created with IntelliJ IDEA. - * User: leolin - * Date: 2013/11/14 - * Time: 下午6:19 - * To change this template use File | Settings | File Templates. - */ +@Deprecated public class ShortcutBadgeException extends Exception { public ShortcutBadgeException(String message) { super(message); diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java index c03d4be..7abfd68 100644 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/ShortcutBadger.java @@ -6,10 +6,10 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Build; +import android.util.Log; import me.leolin.shortcutbadger.impl.*; import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; import java.util.LinkedList; import java.util.List; @@ -19,12 +19,12 @@ */ public abstract class ShortcutBadger { + private static final String LOG_TAG = ShortcutBadger.class.getSimpleName(); + private static final List> BADGERS = new LinkedList>(); static { BADGERS.add(AdwHomeBadger.class); -// BADGERS.add(AndroidHomeBadger.class); -// BADGERS.add(Android2HomeBadger.class); BADGERS.add(ApexHomeBadger.class); BADGERS.add(LGHomeBadger.class); BADGERS.add(NewHtcHomeBadger.class); @@ -36,86 +36,73 @@ public abstract class ShortcutBadger { BADGERS.add(AsusHomeLauncher.class); } - 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 mShortcutBadger; - private ShortcutBadger() { - } - - protected Context mContext; - - protected ShortcutBadger(Context context) { - this.mContext = context; + public static ShortcutBadger with(Context context) { + return getShortcutBadger(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; - - try { - 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); - } - - shortcutBadger.executeBadge(badgeCount); + getShortcutBadger(context).executeBadge(badgeCount); } catch (Throwable e) { throw new ShortcutBadgeException("Unable to execute badge:" + e.getMessage()); } } - private static ShortcutBadger getShortcutBadger(String currentHomePackage, Context context) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException { + private static ShortcutBadger getShortcutBadger(Context context) { if (mShortcutBadger != null) { return mShortcutBadger; } + Log.d(LOG_TAG, "Finding badger"); - // 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 (Build.MANUFACTURER.equalsIgnoreCase("Xiaomi")) { - mShortcutBadger = new XiaomiHomeBadger(context); - return mShortcutBadger; - } + //find the home launcher Package + try { + 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; + + if (Build.MANUFACTURER.equalsIgnoreCase("Xiaomi")) { + mShortcutBadger = new XiaomiHomeBadger(context); + return mShortcutBadger; + } - for (Class badger : BADGERS) { - Constructor constructor = badger.getConstructor(Context.class); - ShortcutBadger shortcutBadger = constructor.newInstance(context); - if (shortcutBadger.getSupportLaunchers().contains(currentHomePackage)) { - mShortcutBadger = shortcutBadger; - break; + for (Class badger : BADGERS) { + Constructor constructor = badger.getConstructor(Context.class); + ShortcutBadger shortcutBadger = constructor.newInstance(context); + if (shortcutBadger.getSupportLaunchers().contains(currentHomePackage)) { + mShortcutBadger = shortcutBadger; + break; + } } + } catch (Exception e) { + Log.e(LOG_TAG, e.getMessage(), e); } + if (mShortcutBadger == null) { + mShortcutBadger = new DefaultBadger(context); + } + Log.d(LOG_TAG, "Returning badger:" + mShortcutBadger.getClass().getCanonicalName()); return mShortcutBadger; } - public abstract List getSupportLaunchers(); + + private ShortcutBadger() { + } + + protected Context mContext; + + protected ShortcutBadger(Context context) { + this.mContext = context; + } + + protected abstract void executeBadge(int badgeCount) throws ShortcutBadgeException; + + protected abstract List getSupportLaunchers(); protected String getEntryActivityName() { ComponentName componentName = mContext.getPackageManager().getLaunchIntentForPackage(mContext.getPackageName()).getComponent(); @@ -125,4 +112,16 @@ protected String getEntryActivityName() { protected String getContextPackageName() { return mContext.getPackageName(); } + + public void count(int count) { + try { + executeBadge(count); + } catch (Exception e) { + Log.e(LOG_TAG, e.getMessage(), e); + } + } + + public void remove() { + count(0); + } } diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/Android2HomeBadger.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/Android2HomeBadger.java deleted file mode 100644 index e27b848..0000000 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/Android2HomeBadger.java +++ /dev/null @@ -1,47 +0,0 @@ -package me.leolin.shortcutbadger.impl; - -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.net.Uri; -import me.leolin.shortcutbadger.ShortcutBadgeException; -import me.leolin.shortcutbadger.ShortcutBadger; -import me.leolin.shortcutbadger.util.ImageUtil; - -import java.util.Arrays; -import java.util.List; - -/** - * @author Leo Lin - */ -@Deprecated -public class Android2HomeBadger extends ShortcutBadger { - private static final String CONTENT_URI = "content://com.android.launcher2.settings/favorites?notify=true"; - - public Android2HomeBadger(Context context) { - super(context); - } - - @Override - protected void executeBadge(int badgeCount) throws ShortcutBadgeException { - byte[] bytes = ImageUtil.drawBadgeOnAppIcon(mContext, badgeCount); - String appName = mContext.getResources().getText(mContext.getResources().getIdentifier("app_name", - "string", getContextPackageName())).toString(); - - Uri mUri = Uri.parse(CONTENT_URI); - ContentResolver contentResolver = mContext.getContentResolver(); - ContentValues contentValues = new ContentValues(); - contentValues.put("iconType", 1); - contentValues.put("itemType", 1); - contentValues.put("icon", bytes); - contentResolver.update(mUri, contentValues, "title=?", new String[]{appName}); - } - - @Override - public List getSupportLaunchers() { - return Arrays.asList( - "com.android.launcher2", - "com.google.android.googlequicksearchbox" - ); - } -} diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/AndroidHomeBadger.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/AndroidHomeBadger.java deleted file mode 100644 index 8f4e83f..0000000 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/AndroidHomeBadger.java +++ /dev/null @@ -1,46 +0,0 @@ -package me.leolin.shortcutbadger.impl; - -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.net.Uri; -import me.leolin.shortcutbadger.ShortcutBadgeException; -import me.leolin.shortcutbadger.ShortcutBadger; -import me.leolin.shortcutbadger.util.ImageUtil; - -import java.util.Arrays; -import java.util.List; - -/** - * @author Leo Lin - */ -@Deprecated -public class AndroidHomeBadger extends ShortcutBadger { - private static final String CONTENT_URI = "content://com.android.launcher2.settings/favorites?notify=true"; - - public AndroidHomeBadger(Context context) { - super(context); - } - - @Override - protected void executeBadge(int badgeCount) throws ShortcutBadgeException { - byte[] bytes = ImageUtil.drawBadgeOnAppIcon(mContext, badgeCount); - String appName = mContext.getResources().getText(mContext.getResources().getIdentifier("app_name", - "string", getContextPackageName())).toString(); - - Uri mUri = Uri.parse(CONTENT_URI); - ContentResolver contentResolver = mContext.getContentResolver(); - ContentValues contentValues = new ContentValues(); - contentValues.put("iconType", 1); - contentValues.put("itemType", 1); - contentValues.put("icon", bytes); - contentResolver.update(mUri, contentValues, "title=?", new String[]{appName}); - } - - @Override - public List getSupportLaunchers() { - return Arrays.asList( - "com.android.launcher" - ); - } -} diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/DefaultBadger.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/DefaultBadger.java new file mode 100644 index 0000000..2963b5b --- /dev/null +++ b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/impl/DefaultBadger.java @@ -0,0 +1,36 @@ +package me.leolin.shortcutbadger.impl; + +import android.content.Context; +import android.content.Intent; +import me.leolin.shortcutbadger.ShortcutBadger; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author leolin + */ +public class DefaultBadger extends ShortcutBadger { + private static final String INTENT_ACTION = "android.intent.action.BADGE_COUNT_UPDATE"; + private static final String INTENT_EXTRA_BADGE_COUNT = "badge_count"; + private static final String INTENT_EXTRA_PACKAGENAME = "badge_count_package_name"; + private static final String INTENT_EXTRA_ACTIVITY_NAME = "badge_count_class_name"; + + public DefaultBadger(Context context) { + super(context); + } + + @Override + protected void executeBadge(int badgeCount) { + Intent intent = new Intent(INTENT_ACTION); + intent.putExtra(INTENT_EXTRA_BADGE_COUNT, badgeCount); + intent.putExtra(INTENT_EXTRA_PACKAGENAME, getContextPackageName()); + intent.putExtra(INTENT_EXTRA_ACTIVITY_NAME, getEntryActivityName()); + mContext.sendBroadcast(intent); + } + + @Override + public List getSupportLaunchers() { + return new ArrayList(0); + } +} diff --git a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/util/ImageUtil.java b/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/util/ImageUtil.java deleted file mode 100644 index 8c67d04..0000000 --- a/ShortcutBadger/src/main/java/me/leolin/shortcutbadger/util/ImageUtil.java +++ /dev/null @@ -1,109 +0,0 @@ -package me.leolin.shortcutbadger.util; - -import android.content.Context; -import android.content.pm.PackageManager; -import android.graphics.*; -import android.graphics.drawable.Drawable; -import me.leolin.shortcutbadger.ShortcutBadgeException; - -import java.io.ByteArrayOutputStream; - -/** - * Created with IntelliJ IDEA. - * User: leolin - * Date: 2013/11/14 - * Time: 下午7:15 - * To change this template use File | Settings | File Templates. - */ -public class ImageUtil { - public static Bitmap drawableToBitmap(Drawable drawable) { - - Bitmap bitmap = Bitmap - .createBitmap( - drawable.getIntrinsicWidth(), - drawable.getIntrinsicHeight(), - drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 - : Bitmap.Config.RGB_565); - Canvas canvas = new Canvas(bitmap); - - drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); - drawable.draw(canvas); - return bitmap; - } - - public static byte[] bitmapToByteArray(Bitmap bitmap) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); - return baos.toByteArray(); - - } - - public static byte[] drawBadgeOnAppIcon(Context context, int badgeCount) throws ShortcutBadgeException { - - Bitmap appIcon; - String gText = String.valueOf(badgeCount); - - 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("Could not load the app Icon"); - } - - if (badgeCount == 0) { - return bitmapToByteArray(appIcon); - } - - float scale = context.getResources().getDisplayMetrics().density; - - android.graphics.Bitmap.Config bitmapConfig = - appIcon.getConfig(); - // set default bitmap config if none - if (bitmapConfig == null) { - bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888; - } - // resource bitmaps are imutable, - // so we need to convert it to mutable one - appIcon = appIcon.copy(bitmapConfig, true); - - float width = appIcon.getWidth(); - float height = appIcon.getHeight(); - float radius = ((width > height ? width : height) / 4); - float cx = appIcon.getWidth() - radius; - float cy = radius; - - Canvas canvas = new Canvas(appIcon); - //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.setTextSize((int) (textSize * scale)); - paint.setFakeBoldText(true); - // draw text to the Canvas center - Rect bounds = new Rect(); - 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); - - return bitmapToByteArray(appIcon); - } - - -} diff --git a/screenshots/ss_adw.png b/screenshots/ss_adw.png new file mode 100644 index 0000000000000000000000000000000000000000..35ba93fae5a87567058b8f8cf264dd07979e46c3 GIT binary patch literal 18467 zcmZ^}18^qMw=ep|Uu;fn+qP}nwrv{|+qTU~CdtIc#J2h7f6jgPo~rv^SMA1L>$lk5 zyL;7&Qk0i~hrxjX008h(lA_B0j)DJ101)!up5kp13IKq^uo4kbloAmkRCIPQx3V<@ z03@T*GN4pbeqoFs(@=$mVnha}{>dinmA)1eHJqANNu z1ToN&M~8?F>tTthY0ixY!zZ)R{v7-GY0UpyPcFh^uhK?0&e zbB2DIS%~n10P22W0Pg{WuEO1eo4i3kcZAi^g@XV{zl`Nmn$mx&l-SbUMn&C)T|fac zCyk*O0E$S*7DvqshWHR5rZ)T$;}JcuO;9|!qd}WsUdrxIxD(N;6J=C8hf?qDIaK>x zS~V?B>G5L96aGEALKrq*-&}a#-KG{%V{d;V(z58`qEQmCXEuUvDk4? zE(acq{<&^`mK_R7d%^K3(hN_WZ>LQfN>q6kwEC#8;d%j!zVn}((T#@ln?NPje9zvA1heJ#;=y&51 z7*KhVO%q?UN9ZsCiZkFULWr@jiE;E0;)t=YyJL#2U{@jCBA<#pGXrcvWcG*>dvQKP zja-7~&oE;9)P2*337=7qegfi|dV{)yLS@8ey8YK3D+yY@{n;c4AMl@Zs5()2O-0iN+@=jjED}u$GgV72j1=j9%hoMkfgUcCiZ8h zP#u6fT*0rx`r6+33qSmmI)5ATZ&;%&EU%A&0B)c4-d;V26Mfr}$I=|ya?Am`(gjSH z*>Profy#2gpB=wu?4Ixq8$3Wc&l<5&-(q+S0k|MYw4;S30M8I0`}e195Q!t0{s2K} zAP@-*WssKh{FLxVRURxxuvr0CYOtFj>MD$TFyAhK6D~f;`w#d`P|Pm%2{^}~UkCf! zAS@&Jb`UbSkR%YkkOU`^-Z)f~uq~2hFX)BDND?hMl9a>>NPtWPn{+5ir5tW6=1#IS zQ9nU-fa{EXDttxUI{~=Ec?~tDL{}4QRWfm9K8y7(F0_Q>MwJtB`2*Sl)C*BBP&*-N zLEwwf7jr1$JArk@0{h83Ht@hG^Benql(>PE79G_%rV*tEw|XevFz!arVBEVw=z>Ik zyc9%Gc~JfT+NrW7(M233Np z?7A?wD7VZR`C|%y;^D6@QypgjSJZC`%;c$GP`@lDwhk-~kh#dXNVqgQfn4#MzMZYk zK8HAmb-x~`;uKS<$k9Bc;mAUoVwHusggXVj1ieTY80s0Wi3Q~HDEd|Vgug02$X@kd z6I9WwxRx@wL#T`D3a`r9Rj!qH{#de_WMR@prAz3DRF~zJ^A-6i7SL!?fzvpmrBkX> zFH*VE^r)t)uqr>O=agy|Xx4e^-e&C;B85604tX^%0D(T$ZuucP)*I8xMPIhqPThd!U7F7+;U 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 literal 0 HcmV?d00001 diff --git a/screenshots/ss_apex.png b/screenshots/ss_apex.png new file mode 100644 index 0000000000000000000000000000000000000000..a660e8b9dd91f0e05d8b1fc8a05979d2411063fe GIT binary patch literal 21567 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 FV1fkM(vScE literal 0 HcmV?d00001 diff --git a/screenshots/ss_nova.png b/screenshots/ss_nova.png new file mode 100644 index 0000000000000000000000000000000000000000..ce26b1d3409ae9471595273d1ce149448d5c97bd GIT binary patch literal 26835 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