Fix issue with Android 3.0 by obtaining the action bar after

setting the content view.
See issue 1107.
This commit is contained in:
Jimmy Shih
2012-09-14 10:27:32 -07:00
parent 260410b554
commit 3e03f24ec3
10 changed files with 52 additions and 10 deletions
@@ -28,15 +28,21 @@ import android.view.MenuItem;
* *
* @author Jimmy Shih * @author Jimmy Shih
*/ */
public class AbstractMyTracksActivity extends FragmentActivity { public abstract class AbstractMyTracksActivity extends FragmentActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM); setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
setContentView(getLayoutResId());
ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this); ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this);
} }
/**
* Gets the layout resource id.
*/
protected abstract int getLayoutResId();
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() != android.R.id.home) { if (item.getItemId() != android.R.id.home) {
@@ -36,11 +36,15 @@ public class AggregatedStatsActivity extends AbstractMyTracksActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.aggregated_stats);
StatsUtils.setTripStatisticsValues(this, getTripStatistics()); StatsUtils.setTripStatisticsValues(this, getTripStatistics());
StatsUtils.setLocationValues(this, null, false); StatsUtils.setLocationValues(this, null, false);
} }
@Override
protected int getLayoutResId() {
return R.layout.aggregated_stats;
}
/** /**
* Gets the aggregated trip statistics for all the recorded tracks or null if * Gets the aggregated trip statistics for all the recorded tracks or null if
* there is no track. * there is no track.
@@ -35,7 +35,6 @@ public class HelpActivity extends AbstractMyTracksActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.help);
TextView mapsPublicUnlisted = (TextView) findViewById(R.id.help_maps_public_unlisted_answer); TextView mapsPublicUnlisted = (TextView) findViewById(R.id.help_maps_public_unlisted_answer);
mapsPublicUnlisted.setText(StringUtils.getHtml( mapsPublicUnlisted.setText(StringUtils.getHtml(
@@ -58,4 +57,9 @@ public class HelpActivity extends AbstractMyTracksActivity {
} }
}); });
} }
@Override
protected int getLayoutResId() {
return R.layout.help;
}
} }
@@ -51,7 +51,6 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity {
@Override @Override
protected void onCreate(Bundle bundle) { protected void onCreate(Bundle bundle) {
super.onCreate(bundle); super.onCreate(bundle);
setContentView(R.layout.marker_detail);
markerId = getIntent().getLongExtra(EXTRA_MARKER_ID, -1L); markerId = getIntent().getLongExtra(EXTRA_MARKER_ID, -1L);
if (markerId == -1L) { if (markerId == -1L) {
@@ -64,6 +63,11 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity {
statisticsSection = findViewById(R.id.marker_detail_statistics_section); statisticsSection = findViewById(R.id.marker_detail_statistics_section);
} }
@Override
protected int getLayoutResId() {
return R.layout.marker_detail;
}
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
@@ -62,7 +62,6 @@ public class MarkerEditActivity extends AbstractMyTracksActivity {
@Override @Override
protected void onCreate(Bundle bundle) { protected void onCreate(Bundle bundle) {
super.onCreate(bundle); super.onCreate(bundle);
setContentView(R.layout.marker_edit);
trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L); trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L);
markerId = getIntent().getLongExtra(EXTRA_MARKER_ID, -1L); markerId = getIntent().getLongExtra(EXTRA_MARKER_ID, -1L);
@@ -91,6 +90,11 @@ public class MarkerEditActivity extends AbstractMyTracksActivity {
updateUiByMarkerId(); updateUiByMarkerId();
} }
@Override
protected int getLayoutResId() {
return R.layout.marker_edit;
}
/** /**
* Updates the UI based on the marker id. * Updates the UI based on the marker id.
*/ */
@@ -113,7 +113,6 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
} }
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
setContentView(R.layout.marker_list);
getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE) getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); .registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
@@ -179,6 +178,11 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
}); });
} }
@Override
protected int getLayoutResId() {
return R.layout.marker_list;
}
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.marker_list, menu); getMenuInflater().inflate(R.menu.marker_list, menu);
@@ -137,7 +137,6 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
setContentView(R.layout.search_list);
trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null); trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null);
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this); myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
@@ -202,6 +201,11 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
handleIntent(getIntent()); handleIntent(getIntent());
} }
@Override
protected int getLayoutResId() {
return R.layout.search_list;
}
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
@@ -92,10 +92,14 @@ public class SensorStateActivity extends AbstractMyTracksActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.sensor_state);
trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null); trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null);
} }
@Override
protected int getLayoutResId() {
return R.layout.sensor_state;
}
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
@@ -192,7 +192,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
handleIntent(getIntent()); handleIntent(getIntent());
ApiAdapterFactory.getApiAdapter().hideTitle(this); ApiAdapterFactory.getApiAdapter().hideTitle(this);
setContentView(R.layout.track_detail);
SharedPreferences sharedPreferences = getSharedPreferences( SharedPreferences sharedPreferences = getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE); Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
@@ -226,6 +225,11 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
showMarker(); showMarker();
} }
@Override
protected int getLayoutResId() {
return R.layout.track_detail;
}
@Override @Override
protected void onStart() { protected void onStart() {
super.onStart(); super.onStart();
@@ -57,7 +57,6 @@ public class TrackEditActivity extends AbstractMyTracksActivity {
@Override @Override
protected void onCreate(Bundle bundle) { protected void onCreate(Bundle bundle) {
super.onCreate(bundle); super.onCreate(bundle);
setContentView(R.layout.track_edit);
trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L); trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L);
if (trackId == -1L) { if (trackId == -1L) {
@@ -143,6 +142,11 @@ public class TrackEditActivity extends AbstractMyTracksActivity {
} }
} }
@Override
protected int getLayoutResId() {
return R.layout.track_edit;
}
/** /**
* Sets the activity type icon. * Sets the activity type icon.
* *