From e2dfe5a21739dd6a55ab6a1fe5382d912e83238d Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Mon, 18 Jun 2012 01:48:17 +0000 Subject: [PATCH] Change around the handling for navigation from the action bar. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@785 180e2498-e6e9-4542-8430-84ac67f01cd8 --- .../src/net/sf/openrocket/android/ActivityHelpers.java | 3 ++- android/src/net/sf/openrocket/android/Main.java | 8 +++++--- .../sf/openrocket/android/motor/MotorBrowserActivity.java | 4 +++- .../sf/openrocket/android/rocket/OpenRocketViewer.java | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/android/src/net/sf/openrocket/android/ActivityHelpers.java b/android/src/net/sf/openrocket/android/ActivityHelpers.java index 76017641..95ce5393 100644 --- a/android/src/net/sf/openrocket/android/ActivityHelpers.java +++ b/android/src/net/sf/openrocket/android/ActivityHelpers.java @@ -11,7 +11,8 @@ public abstract class ActivityHelpers { public static void goHome( Activity parent ) { Intent i = new Intent(parent, Main.class); - i.addFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP); + i.putExtra(Main.restartFlag, true); + i.addFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP + Intent.FLAG_ACTIVITY_NEW_TASK ); parent.startActivity(i); } diff --git a/android/src/net/sf/openrocket/android/Main.java b/android/src/net/sf/openrocket/android/Main.java index 9fe6d825..9c94130d 100644 --- a/android/src/net/sf/openrocket/android/Main.java +++ b/android/src/net/sf/openrocket/android/Main.java @@ -2,6 +2,7 @@ package net.sf.openrocket.android; import net.sf.openrocket.R; import net.sf.openrocket.android.rocket.OpenRocketLoaderActivity; +import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; @@ -12,15 +13,16 @@ import com.actionbarsherlock.view.MenuItem; public class Main extends OpenRocketLoaderActivity { + public final static String restartFlag = "restart"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); - // Rocket already loaded. go to viewer. - if ( CurrentRocketHolder.getCurrentRocket().getRocketDocument() != null ) { + Intent i = getIntent(); + // Rocket already loaded. go to viewer unless we want to restart. + if ( ( i.getBooleanExtra(restartFlag, false) == false) && CurrentRocketHolder.getCurrentRocket().getRocketDocument() != null ) { moveOnToViewer(); - return; } setContentView(R.layout.main); ((Button) findViewById(R.id.main_open)).setOnClickListener( diff --git a/android/src/net/sf/openrocket/android/motor/MotorBrowserActivity.java b/android/src/net/sf/openrocket/android/motor/MotorBrowserActivity.java index 84f9b6f4..60bb7be1 100644 --- a/android/src/net/sf/openrocket/android/motor/MotorBrowserActivity.java +++ b/android/src/net/sf/openrocket/android/motor/MotorBrowserActivity.java @@ -53,7 +53,9 @@ implements MotorListFragment.OnMotorSelectedListener AndroidLogWrapper.d(MotorBrowserActivity.class,"onMenuItemSelected" + item.getItemId()); switch(item.getItemId()) { case android.R.id.home: - ActivityHelpers.goHome(this); + // we implement home in the motor browser as "back" since then it will return to + // either main or the viewer. + finish(); return true; case R.id.download_from_thrustcurve_menu_option: ActivityHelpers.downloadFromThrustcurve(this,DOWNLOAD_REQUEST_CODE); diff --git a/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java b/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java index 7f341dd6..801fb709 100644 --- a/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java +++ b/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java @@ -42,7 +42,7 @@ implements Simulations.OnSimulationSelectedListener super.onCreate(savedInstanceState); setTitle(CurrentRocketHolder.getCurrentRocket().getRocketDocument().getRocket().getName()); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setHomeButtonEnabled(true); setContentView(R.layout.openrocketviewer); ViewPager viewPager = (ViewPager)findViewById(R.id.pager); -- 2.47.2