diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java b/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java index 803483d724..5476460b38 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java @@ -25,6 +25,8 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; +import org.qtproject.qt5.android.bindings.QtActivity; + import io.highfidelity.hifiinterface.view.DomainAdapter; public class HomeActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { @@ -234,7 +236,8 @@ public class HomeActivity extends AppCompatActivity implements NavigationView.On } @Override public void onBackPressed() { - finishAffinity(); + QtActivity.forceQuit(); + finish(); } public void onSearchClear(View view) { diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/PermissionChecker.java b/android/app/src/main/java/io/highfidelity/hifiinterface/PermissionChecker.java index 2b48d85a48..45060d6d0c 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/PermissionChecker.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/PermissionChecker.java @@ -63,7 +63,6 @@ public class PermissionChecker extends Activity { } private void launchActivityWithPermissions(){ - finish(); Intent i = new Intent(this, InterfaceActivity.class); startActivity(i); finish(); diff --git a/android/app/src/main/java/org/qtproject/qt5/android/bindings/QtActivity.java b/android/app/src/main/java/org/qtproject/qt5/android/bindings/QtActivity.java index 0639c66f38..517008cf9a 100644 --- a/android/app/src/main/java/org/qtproject/qt5/android/bindings/QtActivity.java +++ b/android/app/src/main/java/org/qtproject/qt5/android/bindings/QtActivity.java @@ -69,6 +69,9 @@ public class QtActivity extends Activity { private QtActivityLoader m_loader = new QtActivityLoader(this); public boolean isLoading; + private boolean forcedQuit; + + public static QtActivity instance; public QtActivity() { } @@ -237,6 +240,7 @@ public class QtActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); onCreateHook(savedInstanceState); + instance = this; } //--------------------------------------------------------------------------- @@ -362,6 +366,7 @@ public class QtActivity extends Activity { protected void onDestroy() { super.onDestroy(); QtApplication.invokeDelegate(); + instance = null; } //--------------------------------------------------------------------------- @@ -504,7 +509,7 @@ public class QtActivity extends Activity { // GC: this trick allow us to show a splash activity until Qt app finishes // loading if (!isLoading) { - //QtApplication.invokeDelegate(); + QtApplication.invokeDelegate(); } } //--------------------------------------------------------------------------- @@ -638,14 +643,26 @@ public class QtActivity extends Activity { protected void onStart() { super.onStart(); QtApplication.invokeDelegate(); + if (forcedQuit) { + finish(); + } } //--------------------------------------------------------------------------- @Override protected void onStop() { super.onStop(); - //QtApplication.invokeDelegate(); + if (forcedQuit) { + QtApplication.invokeDelegate(); + } } + + public static void forceQuit() { + if (instance != null) { + instance.forcedQuit = true; + } + } + //--------------------------------------------------------------------------- @Override