TrackDetailView: show markerListMenu only as action if not recording as the icon is reused in this case.

This commit is contained in:
Dennis Guse
2019-07-20 14:01:06 +02:00
parent e22ff7742e
commit 5b22487059
2 changed files with 17 additions and 30 deletions
@@ -16,15 +16,16 @@
package com.google.android.apps.mytracks; package com.google.android.apps.mytracks;
import com.google.android.apps.mytracks.util.TrackIconUtils;
import android.app.ActionBar; import android.app.ActionBar;
import android.os.Bundle; import android.os.Bundle;
import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech;
import androidx.fragment.app.FragmentActivity;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import androidx.fragment.app.FragmentActivity;
import com.google.android.apps.mytracks.util.TrackIconUtils;
/** /**
* An abstract class for all My Tracks activities. * An abstract class for all My Tracks activities.
* *
@@ -57,7 +58,7 @@ public abstract class AbstractActivity extends FragmentActivity {
protected abstract int getLayoutResId(); protected abstract int getLayoutResId();
/** /**
* Returns true to configure the action bar home button as the up button. * Returns true to configure the action bar home button as the up button (go to previous activity).
*/ */
protected boolean configureActionBarHomeAsUp() { protected boolean configureActionBarHomeAsUp() {
return true; return true;
@@ -65,17 +66,13 @@ public abstract class AbstractActivity extends FragmentActivity {
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
// Set menu icon color
TrackIconUtils.setMenuIconColor(menu); TrackIconUtils.setMenuIconColor(menu);
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
// Handles actionBar's home menu item (arrow top left corner) and triggers, up navigation to previous activity.
// Handle home menu item, up navigation
if (item.getItemId() == android.R.id.home) { if (item.getItemId() == android.R.id.home) {
onHomeSelected(); onHomeSelected();
return true; return true;
@@ -84,8 +81,7 @@ public abstract class AbstractActivity extends FragmentActivity {
} }
/** /**
* Callback when the home menu item is selected. E.g., setup the back stack * Callback when the home menu item is selected. E.g., setup the back stack when home is selected.
* when home is selected.
*/ */
protected void onHomeSelected() { protected void onHomeSelected() {
finish(); finish();
@@ -110,6 +110,7 @@ public class TrackDetailActivity extends AbstractTrackActivity
private MenuItem insertMarkerMenuItem; private MenuItem insertMarkerMenuItem;
private MenuItem insertPhotoMenuItem; private MenuItem insertPhotoMenuItem;
private MenuItem markerListMenuItem;
private MenuItem shareMenuItem; private MenuItem shareMenuItem;
private MenuItem voiceFrequencyMenuItem; private MenuItem voiceFrequencyMenuItem;
private MenuItem splitFrequencyMenuItem; private MenuItem splitFrequencyMenuItem;
@@ -334,6 +335,8 @@ public class TrackDetailActivity extends AbstractTrackActivity
voiceFrequencyMenuItem = menu.findItem(R.id.track_detail_voice_frequency); voiceFrequencyMenuItem = menu.findItem(R.id.track_detail_voice_frequency);
splitFrequencyMenuItem = menu.findItem(R.id.track_detail_split_frequency); splitFrequencyMenuItem = menu.findItem(R.id.track_detail_split_frequency);
markerListMenuItem = menu.findItem(R.id.track_detail_markers);
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }
@@ -358,7 +361,6 @@ public class TrackDetailActivity extends AbstractTrackActivity
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE);
return false; return false;
} }
takePicture(); takePicture();
return true; return true;
case R.id.track_detail_markers: case R.id.track_detail_markers:
@@ -486,22 +488,12 @@ public class TrackDetailActivity extends AbstractTrackActivity
* Updates the menu items. * Updates the menu items.
*/ */
private void updateMenuItems(boolean isPaused) { private void updateMenuItems(boolean isPaused) {
if (insertMarkerMenuItem != null) { insertMarkerMenuItem.setVisible(isRecording() && !isPaused);
insertMarkerMenuItem.setVisible(isRecording() && !isPaused); insertPhotoMenuItem.setVisible(hasCamera && isRecording() && !isPaused);
} shareMenuItem.setVisible(!isRecording());
if (insertPhotoMenuItem != null) { markerListMenuItem.setShowAsAction(isRecording() ? MenuItem.SHOW_AS_ACTION_NEVER : MenuItem.SHOW_AS_ACTION_IF_ROOM);
insertPhotoMenuItem.setVisible(hasCamera && isRecording() && !isPaused); voiceFrequencyMenuItem.setVisible(isRecording());
} splitFrequencyMenuItem.setVisible(isRecording());
if (shareMenuItem != null && shareMenuItem.isEnabled()) {
shareMenuItem.setVisible(!isRecording());
}
if (voiceFrequencyMenuItem != null) {
voiceFrequencyMenuItem.setVisible(isRecording());
}
if (splitFrequencyMenuItem != null) {
splitFrequencyMenuItem.setVisible(isRecording());
}
String title; String title;
if (isRecording()) { if (isRecording()) {
title = getString(isPaused ? R.string.generic_paused : R.string.generic_recording); title = getString(isPaused ? R.string.generic_paused : R.string.generic_recording);
@@ -513,8 +505,7 @@ public class TrackDetailActivity extends AbstractTrackActivity
} }
public void chooseActivityType(String category) { public void chooseActivityType(String category) {
ChooseActivityTypeDialogFragment.newInstance(category).show(getSupportFragmentManager(), ChooseActivityTypeDialogFragment.newInstance(category).show(getSupportFragmentManager(), ChooseActivityTypeDialogFragment.CHOOSE_ACTIVITY_TYPE_DIALOG_TAG);
ChooseActivityTypeDialogFragment.CHOOSE_ACTIVITY_TYPE_DIALOG_TAG);
} }
@Override @Override