Loading QKSMS/build.gradle +4 −2 Original line number Diff line number Diff line Loading @@ -81,6 +81,8 @@ buildscript { } } String leakCanaryVersion = '1.4-beta2' dependencies { // Open source libraries compile 'com.mcxiaoke.volley:library:1.0.19' Loading @@ -91,8 +93,8 @@ dependencies { compile 'com.googlecode.libphonenumber:libphonenumber:6.2' compile 'com.nispok:snackbar:2.10.6' compile 'com.github.lzyzsd:circleprogress:1.1.0' debugCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' debugCompile "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion" releaseCompile "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion" compile 'com.vdurmont:emoji-java:1.1.1' compile 'me.leolin:ShortcutBadger:1.1.1' compile 'com.googlecode.ez-vcard:ez-vcard:0.9.6' Loading QKSMS/src/main/java/com/moez/QKSMS/common/DonationManager.java +11 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,13 @@ public class DonationManager { return sInstance; } public static void clearInstance() { if (null != sInstance) { sInstance.destroy(); } sInstance = null; } private DonationManager(QKActivity context) { mContext = context; mRes = mContext.getResources(); Loading Loading @@ -77,6 +84,10 @@ public class DonationManager { if (mHelper != null) { mHelper.dispose(); } mHelper = null; mContext = null; mRes = null; mBillingServiceReady = false; } // Callback for when a purchase is finished Loading QKSMS/src/main/java/com/moez/QKSMS/common/LifecycleHandler.java +10 −0 Original line number Diff line number Diff line Loading @@ -15,13 +15,19 @@ public class LifecycleHandler implements Application.ActivityLifecycleCallbacks private static int sPaused; private static int sStarted; private static int sStopped; private static int sActivityCounter; @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { sActivityCounter++; } @Override public void onActivityDestroyed(Activity activity) { sActivityCounter--; if (isNoActivitiesAlive()) { DonationManager.clearInstance(); } } @Override Loading Loading @@ -57,4 +63,8 @@ public class LifecycleHandler implements Application.ActivityLifecycleCallbacks public static boolean isApplicationInForeground() { return sResumed > sPaused; } public static boolean isNoActivitiesAlive() { return sActivityCounter <= 0; } } No newline at end of file QKSMS/src/main/java/com/moez/QKSMS/ui/conversationlist/ConversationListFragment.java +16 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.moez.QKSMS.R; import com.moez.QKSMS.common.BlockedConversationHelper; import com.moez.QKSMS.common.DialogHelper; import com.moez.QKSMS.common.LiveViewManager; import com.moez.QKSMS.data.Contact; import com.moez.QKSMS.ui.dialog.conversationdetails.ConversationDetailsDialog; import com.moez.QKSMS.enums.QKPreference; import com.moez.QKSMS.common.utils.ColorUtils; Loading Loading @@ -282,6 +283,21 @@ public class ConversationListFragment extends QKFragment implements LoaderManage public void onDestroy() { super.onDestroy(); BlockedConversationHelper.FutureBlockedConversationObservable.getInstance().deleteObserver(this); if (null == mRecyclerView) { return; } try { for (int i = 0; i < mRecyclerView.getChildCount(); i++) { View child = mRecyclerView.getChildAt(i); RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(child); if (holder instanceof ConversationListViewHolder) { Contact.removeListener((ConversationListViewHolder) holder); } } } catch (Exception ignored) { // } } public Loader<Cursor> onCreateLoader(int id, Bundle args) { Loading QKSMS/src/main/java/com/moez/QKSMS/ui/conversationlist/ConversationListViewHolder.java +4 −7 Original line number Diff line number Diff line Loading @@ -85,13 +85,10 @@ public class ConversationListViewHolder extends ClickyViewHolder<Conversation> i final ConversationLegacy conversationLegacy = new ConversationLegacy(mContext, mData.getThreadId()); if (shouldUpdate) { ((MainActivity) mContext).runOnUiThread(new Runnable() { @Override public void run() { mContext.runOnUiThread(() -> { mAvatarView.setImageDrawable(drawable); mAvatarView.setContactName(name); fromView.setText(formatMessage(mData, conversationLegacy)); } }); } } Loading Loading
QKSMS/build.gradle +4 −2 Original line number Diff line number Diff line Loading @@ -81,6 +81,8 @@ buildscript { } } String leakCanaryVersion = '1.4-beta2' dependencies { // Open source libraries compile 'com.mcxiaoke.volley:library:1.0.19' Loading @@ -91,8 +93,8 @@ dependencies { compile 'com.googlecode.libphonenumber:libphonenumber:6.2' compile 'com.nispok:snackbar:2.10.6' compile 'com.github.lzyzsd:circleprogress:1.1.0' debugCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' debugCompile "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion" releaseCompile "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion" compile 'com.vdurmont:emoji-java:1.1.1' compile 'me.leolin:ShortcutBadger:1.1.1' compile 'com.googlecode.ez-vcard:ez-vcard:0.9.6' Loading
QKSMS/src/main/java/com/moez/QKSMS/common/DonationManager.java +11 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,13 @@ public class DonationManager { return sInstance; } public static void clearInstance() { if (null != sInstance) { sInstance.destroy(); } sInstance = null; } private DonationManager(QKActivity context) { mContext = context; mRes = mContext.getResources(); Loading Loading @@ -77,6 +84,10 @@ public class DonationManager { if (mHelper != null) { mHelper.dispose(); } mHelper = null; mContext = null; mRes = null; mBillingServiceReady = false; } // Callback for when a purchase is finished Loading
QKSMS/src/main/java/com/moez/QKSMS/common/LifecycleHandler.java +10 −0 Original line number Diff line number Diff line Loading @@ -15,13 +15,19 @@ public class LifecycleHandler implements Application.ActivityLifecycleCallbacks private static int sPaused; private static int sStarted; private static int sStopped; private static int sActivityCounter; @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { sActivityCounter++; } @Override public void onActivityDestroyed(Activity activity) { sActivityCounter--; if (isNoActivitiesAlive()) { DonationManager.clearInstance(); } } @Override Loading Loading @@ -57,4 +63,8 @@ public class LifecycleHandler implements Application.ActivityLifecycleCallbacks public static boolean isApplicationInForeground() { return sResumed > sPaused; } public static boolean isNoActivitiesAlive() { return sActivityCounter <= 0; } } No newline at end of file
QKSMS/src/main/java/com/moez/QKSMS/ui/conversationlist/ConversationListFragment.java +16 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.moez.QKSMS.R; import com.moez.QKSMS.common.BlockedConversationHelper; import com.moez.QKSMS.common.DialogHelper; import com.moez.QKSMS.common.LiveViewManager; import com.moez.QKSMS.data.Contact; import com.moez.QKSMS.ui.dialog.conversationdetails.ConversationDetailsDialog; import com.moez.QKSMS.enums.QKPreference; import com.moez.QKSMS.common.utils.ColorUtils; Loading Loading @@ -282,6 +283,21 @@ public class ConversationListFragment extends QKFragment implements LoaderManage public void onDestroy() { super.onDestroy(); BlockedConversationHelper.FutureBlockedConversationObservable.getInstance().deleteObserver(this); if (null == mRecyclerView) { return; } try { for (int i = 0; i < mRecyclerView.getChildCount(); i++) { View child = mRecyclerView.getChildAt(i); RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(child); if (holder instanceof ConversationListViewHolder) { Contact.removeListener((ConversationListViewHolder) holder); } } } catch (Exception ignored) { // } } public Loader<Cursor> onCreateLoader(int id, Bundle args) { Loading
QKSMS/src/main/java/com/moez/QKSMS/ui/conversationlist/ConversationListViewHolder.java +4 −7 Original line number Diff line number Diff line Loading @@ -85,13 +85,10 @@ public class ConversationListViewHolder extends ClickyViewHolder<Conversation> i final ConversationLegacy conversationLegacy = new ConversationLegacy(mContext, mData.getThreadId()); if (shouldUpdate) { ((MainActivity) mContext).runOnUiThread(new Runnable() { @Override public void run() { mContext.runOnUiThread(() -> { mAvatarView.setImageDrawable(drawable); mAvatarView.setContactName(name); fromView.setText(formatMessage(mData, conversationLegacy)); } }); } } Loading