From ee071341390e97231469e8e04f8b06c64d841ba8 Mon Sep 17 00:00:00 2001 From: Majeur Date: Thu, 31 Dec 2015 20:11:10 +0100 Subject: [PATCH 1/3] Redesigned implementation with interfaces to fix context leak issue --- .../shortcutbadger/example/MainActivity.java | 20 +++- .../src/main/res/layout/activity_main.xml | 6 + .../java/me/leolin/shortcutbadger/Badger.java | 25 ++++ .../leolin/shortcutbadger/ShortcutBadger.java | 109 +++++++++--------- .../shortcutbadger/impl/AdwHomeBadger.java | 15 ++- .../shortcutbadger/impl/ApexHomeBadger.java | 16 ++- .../shortcutbadger/impl/AsusHomeLauncher.java | 17 ++- .../shortcutbadger/impl/DefaultBadger.java | 18 +-- .../shortcutbadger/impl/LGHomeBadger.java | 18 +-- .../shortcutbadger/impl/NewHtcHomeBadger.java | 19 ++- .../shortcutbadger/impl/NovaHomeBadger.java | 15 ++- .../impl/SamsungHomeBadger.java | 27 +++-- .../shortcutbadger/impl/SolidHomeBadger.java | 28 +++-- .../shortcutbadger/impl/SonyHomeBadger.java | 19 ++- .../shortcutbadger/impl/XiaomiHomeBadger.java | 15 ++- 15 files changed, 198 insertions(+), 169 deletions(-) create mode 100644 ShortcutBadger/src/main/java/me/leolin/shortcutbadger/Badger.java 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 93cdcd3..387b00e 100644 --- a/SampleApp/src/main/java/me/leolin/shortcutbadger/example/MainActivity.java +++ b/SampleApp/src/main/java/me/leolin/shortcutbadger/example/MainActivity.java @@ -11,18 +11,17 @@ import android.widget.TextView; import android.widget.Toast; import me.leolin.shortcutbadger.ShortcutBadger; +import me.leolin.shortcutbadger.impl.ApexHomeBadger; public class MainActivity extends Activity { - private EditText numInput; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - numInput = (EditText) findViewById(R.id.numInput); + final EditText numInput = (EditText) findViewById(R.id.numInput); Button button = (Button) findViewById(R.id.btnSetBadge); button.setOnClickListener(new View.OnClickListener() { @@ -35,10 +34,19 @@ public void onClick(View v) { Toast.makeText(getApplicationContext(), "Error input", Toast.LENGTH_SHORT).show(); } -// ShortcutBadger.setBadge(getApplicationContext(), badgeCount); - ShortcutBadger.with(getApplicationContext()).count(badgeCount); + boolean success = ShortcutBadger.applyCount(MainActivity.this, badgeCount); + + Toast.makeText(getApplicationContext(), "Set count=" + badgeCount + ", success=" + success, Toast.LENGTH_SHORT).show(); + } + }); + + Button removeBadgeBtn = (Button) findViewById(R.id.btnRemoveBadge); + removeBadgeBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + boolean success = ShortcutBadger.removeCount(MainActivity.this); - Toast.makeText(getApplicationContext(), "Set count=" + badgeCount, Toast.LENGTH_SHORT).show(); + Toast.makeText(getApplicationContext(), "success=" + success, Toast.LENGTH_SHORT).show(); } }); diff --git a/SampleApp/src/main/res/layout/activity_main.xml b/SampleApp/src/main/res/layout/activity_main.xml index fdc9b49..b069a8e 100644 --- a/SampleApp/src/main/res/layout/activity_main.xml +++ b/SampleApp/src/main/res/layout/activity_main.xml @@ -27,5 +27,11 @@ android:text="Set badge" android:layout_centerVertical="true" android:layout_centerHorizontal="true"/> +