diff --git a/app/src/main/java/org/itxtech/daedalus/activity/MainActivity.java b/app/src/main/java/org/itxtech/daedalus/activity/MainActivity.java index 2c78f49..28deee4 100644 --- a/app/src/main/java/org/itxtech/daedalus/activity/MainActivity.java +++ b/app/src/main/java/org/itxtech/daedalus/activity/MainActivity.java @@ -9,6 +9,7 @@ import android.os.Bundle; import android.preference.PreferenceManager; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; +import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -99,6 +100,7 @@ public class MainActivity extends AppCompatActivity { } private void updateUserInterface(Intent intent) { + Log.d("MainActivity", "Updating user interface"); int launchAction = intent.getIntExtra(LAUNCH_ACTION, LAUNCH_ACTION_NONE); if (launchAction == LAUNCH_ACTION_ACTIVATE) { Daedalus.updateShortcut(this); diff --git a/app/src/main/java/org/itxtech/daedalus/receiver/StatusBarBroadcastReceiver.java b/app/src/main/java/org/itxtech/daedalus/receiver/StatusBarBroadcastReceiver.java index 3fc5dd1..9e9403f 100644 --- a/app/src/main/java/org/itxtech/daedalus/receiver/StatusBarBroadcastReceiver.java +++ b/app/src/main/java/org/itxtech/daedalus/receiver/StatusBarBroadcastReceiver.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.Intent; import android.util.Log; import android.widget.Button; +import org.itxtech.daedalus.Daedalus; import org.itxtech.daedalus.R; import org.itxtech.daedalus.activity.MainActivity; import org.itxtech.daedalus.activity.SettingsActivity; @@ -32,6 +33,7 @@ public class StatusBarBroadcastReceiver extends BroadcastReceiver { Intent serviceIntent = new Intent(context, DaedalusVpnService.class); context.startService(serviceIntent.setAction(DaedalusVpnService.ACTION_DEACTIVATE)); context.stopService(serviceIntent); + Daedalus.updateShortcut(context); if (MainActivity.getInstance() != null) { ((Button) MainActivity.getInstance().findViewById(R.id.button_activate)).setText(R.string.button_text_activate); } diff --git a/app/src/main/java/org/itxtech/daedalus/service/DaedalusVpnService.java b/app/src/main/java/org/itxtech/daedalus/service/DaedalusVpnService.java index 4a5297d..fc01d91 100644 --- a/app/src/main/java/org/itxtech/daedalus/service/DaedalusVpnService.java +++ b/app/src/main/java/org/itxtech/daedalus/service/DaedalusVpnService.java @@ -140,12 +140,14 @@ public class DaedalusVpnService extends VpnService implements Runnable { @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void stopThread() { + boolean shouldRefresh = false; try { if (this.descriptor != null) { this.descriptor.close(); this.descriptor = null; } if (this.mThread != null) { + shouldRefresh = true; this.running = false; this.mThread.interrupt(); if (mInterruptFd != null) { @@ -166,9 +168,9 @@ public class DaedalusVpnService extends VpnService implements Runnable { } stopSelf(); - if (MainActivity.getInstance() != null && MainActivity.getInstance().isAppOnForeground()) { + if (shouldRefresh && MainActivity.getInstance() != null && MainActivity.getInstance().isAppOnForeground()) { startActivity(new Intent(this, MainActivity.class).putExtra(MainActivity.LAUNCH_ACTION, MainActivity.LAUNCH_ACTION_NONE)); - } else { + } else if (shouldRefresh) { Daedalus.updateShortcut(this); } }