Fix freeze when quitting the app trough back button

This commit is contained in:
Gabriel Calero 2018-05-10 18:01:50 -03:00
parent 843282739e
commit c6f93a17eb
3 changed files with 23 additions and 4 deletions

View file

@ -25,6 +25,8 @@ import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import org.qtproject.qt5.android.bindings.QtActivity;
import io.highfidelity.hifiinterface.view.DomainAdapter; import io.highfidelity.hifiinterface.view.DomainAdapter;
public class HomeActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { public class HomeActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
@ -234,7 +236,8 @@ public class HomeActivity extends AppCompatActivity implements NavigationView.On
} }
@Override @Override
public void onBackPressed() { public void onBackPressed() {
finishAffinity(); QtActivity.forceQuit();
finish();
} }
public void onSearchClear(View view) { public void onSearchClear(View view) {

View file

@ -63,7 +63,6 @@ public class PermissionChecker extends Activity {
} }
private void launchActivityWithPermissions(){ private void launchActivityWithPermissions(){
finish();
Intent i = new Intent(this, InterfaceActivity.class); Intent i = new Intent(this, InterfaceActivity.class);
startActivity(i); startActivity(i);
finish(); finish();

View file

@ -69,6 +69,9 @@ public class QtActivity extends Activity {
private QtActivityLoader m_loader = new QtActivityLoader(this); private QtActivityLoader m_loader = new QtActivityLoader(this);
public boolean isLoading; public boolean isLoading;
private boolean forcedQuit;
public static QtActivity instance;
public QtActivity() { public QtActivity() {
} }
@ -237,6 +240,7 @@ public class QtActivity extends Activity {
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
onCreateHook(savedInstanceState); onCreateHook(savedInstanceState);
instance = this;
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -362,6 +366,7 @@ public class QtActivity extends Activity {
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
QtApplication.invokeDelegate(); 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 // GC: this trick allow us to show a splash activity until Qt app finishes
// loading // loading
if (!isLoading) { if (!isLoading) {
//QtApplication.invokeDelegate(); QtApplication.invokeDelegate();
} }
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -638,14 +643,26 @@ public class QtActivity extends Activity {
protected void onStart() { protected void onStart() {
super.onStart(); super.onStart();
QtApplication.invokeDelegate(); QtApplication.invokeDelegate();
if (forcedQuit) {
finish();
}
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); super.onStop();
//QtApplication.invokeDelegate(); if (forcedQuit) {
QtApplication.invokeDelegate();
}
} }
public static void forceQuit() {
if (instance != null) {
instance.forcedQuit = true;
}
}
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@Override @Override