Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a497fa6 authored by Moez Bhatti's avatar Moez Bhatti
Browse files

Merge pull request #501 from laysionqet/memory_leak_pr

Fix two memory leaks
parents 362f3ce2 7844e8c6
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -81,6 +81,8 @@ buildscript {
    }
}

String leakCanaryVersion = '1.4-beta2'

dependencies {
    // Open source libraries
    compile 'com.mcxiaoke.volley:library:1.0.19'
@@ -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'
+11 −0
Original line number Diff line number Diff line
@@ -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();
@@ -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
+10 −0
Original line number Diff line number Diff line
@@ -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
@@ -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
+16 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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) {
+4 −7
Original line number Diff line number Diff line
@@ -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));
                }
            });
        }
    }