From 4edff860bf3655db1ebdaa9f80265ff68dcb3c6a Mon Sep 17 00:00:00 2001 From: cyBerta Date: Wed, 7 Feb 2018 23:41:18 +0100 Subject: #8829 fixes notification handling after ui changes and fixes also memory leak #8838 --- app/src/main/AndroidManifest.xml | 3 ++- .../main/java/se/leap/bitmaskclient/Dashboard.java | 4 ++-- .../java/se/leap/bitmaskclient/EipFragment.java | 20 +++++++++++++++----- .../java/se/leap/bitmaskclient/MainActivity.java | 22 +++++++--------------- .../java/se/leap/bitmaskclient/StartActivity.java | 2 ++ .../leap/bitmaskclient/VpnNotificationManager.java | 22 +++++++++++----------- .../userstatus/UserStatusFragment.java | 6 ++++-- 7 files changed, 43 insertions(+), 36 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2ffb54f4..6a1d40aa 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -90,7 +90,8 @@ + android:label="@string/title_activity_main" + android:launchMode="singleTop" /> Date: Wed, 7 Feb 2018 23:42:19 +0100 Subject: fixes memory leak #8839 --- .../main/java/se/leap/bitmaskclient/eip/EIP.java | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java b/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java index eca5b881..23b4f2de 100644 --- a/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java +++ b/app/src/main/java/se/leap/bitmaskclient/eip/EIP.java @@ -27,6 +27,8 @@ import android.util.Log; import org.json.JSONException; import org.json.JSONObject; +import java.lang.ref.WeakReference; + import de.blinkt.openvpn.LaunchVPN; import se.leap.bitmaskclient.OnBootReceiver; @@ -57,12 +59,12 @@ public final class EIP extends IntentService { public final static String TAG = EIP.class.getSimpleName(); public final static String SERVICE_API_PATH = "config/eip-service.json"; - private static ResultReceiver mReceiver; - private static SharedPreferences preferences; + private WeakReference mReceiverRef = new WeakReference<>(null); + private SharedPreferences preferences; - private static JSONObject eipDefinition; + private JSONObject eipDefinition; private GatewaysManager gatewaysManager = new GatewaysManager(); - private static Gateway gateway; + private Gateway gateway; public EIP() { super(TAG); @@ -80,7 +82,9 @@ public final class EIP extends IntentService { @Override protected void onHandleIntent(Intent intent) { String action = intent.getAction(); - mReceiver = intent.getParcelableExtra(EIP_RECEIVER); + if (intent.getParcelableExtra(EIP_RECEIVER) != null) { + mReceiverRef = new WeakReference<>((ResultReceiver) intent.getParcelableExtra(EIP_RECEIVER)); + } if (action == null) { return; @@ -241,10 +245,10 @@ public final class EIP extends IntentService { } private void tellToReceiver(String action, int resultCode) { - if (mReceiver != null) { - Bundle resultData = new Bundle(); - resultData.putString(EIP_REQUEST, action); - mReceiver.send(resultCode, resultData); + Bundle resultData = new Bundle(); + resultData.putString(EIP_REQUEST, action); + if (mReceiverRef.get() != null) { + mReceiverRef.get().send(resultCode, resultData); } } } -- cgit v1.2.3 From 6cd010c331cfd98078e657bb8d1107651daca49e Mon Sep 17 00:00:00 2001 From: cyBerta Date: Wed, 7 Feb 2018 23:44:14 +0100 Subject: #8841 fixes multidex issue on Android devices with API < 20 --- app/src/main/java/se/leap/bitmaskclient/BitmaskApp.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/java/se/leap/bitmaskclient/BitmaskApp.java b/app/src/main/java/se/leap/bitmaskclient/BitmaskApp.java index f9e45b79..15fd85f8 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BitmaskApp.java +++ b/app/src/main/java/se/leap/bitmaskclient/BitmaskApp.java @@ -1,7 +1,7 @@ package se.leap.bitmaskclient; -import android.app.Application; import android.content.Context; +import android.support.multidex.MultiDexApplication; import com.squareup.leakcanary.LeakCanary; import com.squareup.leakcanary.RefWatcher; @@ -10,7 +10,7 @@ import com.squareup.leakcanary.RefWatcher; * Created by cyberta on 24.10.17. */ -public class BitmaskApp extends Application { +public class BitmaskApp extends MultiDexApplication { private RefWatcher refWatcher; -- cgit v1.2.3