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;
import com.google.android.apps.mytracks.util.TrackIconUtils;
import android.app.ActionBar;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import androidx.fragment.app.FragmentActivity;
import android.view.Menu;
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.
*
@@ -57,7 +58,7 @@ public abstract class AbstractActivity extends FragmentActivity {
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() {
return true;
@@ -65,17 +66,13 @@ public abstract class AbstractActivity extends FragmentActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Set menu icon color
TrackIconUtils.setMenuIconColor(menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle home menu item, up navigation
// Handles actionBar's home menu item (arrow top left corner) and triggers, up navigation to previous activity.
if (item.getItemId() == android.R.id.home) {
onHomeSelected();
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
* when home is selected.
* Callback when the home menu item is selected. E.g., setup the back stack when home is selected.
*/
protected void onHomeSelected() {
finish();
@@ -110,6 +110,7 @@ public class TrackDetailActivity extends AbstractTrackActivity
private MenuItem insertMarkerMenuItem;
private MenuItem insertPhotoMenuItem;
private MenuItem markerListMenuItem;
private MenuItem shareMenuItem;
private MenuItem voiceFrequencyMenuItem;
private MenuItem splitFrequencyMenuItem;
@@ -334,6 +335,8 @@ public class TrackDetailActivity extends AbstractTrackActivity
voiceFrequencyMenuItem = menu.findItem(R.id.track_detail_voice_frequency);
splitFrequencyMenuItem = menu.findItem(R.id.track_detail_split_frequency);
markerListMenuItem = menu.findItem(R.id.track_detail_markers);
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);
return false;
}
takePicture();
return true;
case R.id.track_detail_markers:
@@ -486,22 +488,12 @@ public class TrackDetailActivity extends AbstractTrackActivity
* Updates the menu items.
*/
private void updateMenuItems(boolean isPaused) {
if (insertMarkerMenuItem != null) {
insertMarkerMenuItem.setVisible(isRecording() && !isPaused);
}
if (insertPhotoMenuItem != null) {
insertPhotoMenuItem.setVisible(hasCamera && isRecording() && !isPaused);
}
if (shareMenuItem != null && shareMenuItem.isEnabled()) {
shareMenuItem.setVisible(!isRecording());
}
if (voiceFrequencyMenuItem != null) {
voiceFrequencyMenuItem.setVisible(isRecording());
}
if (splitFrequencyMenuItem != null) {
splitFrequencyMenuItem.setVisible(isRecording());
}
insertMarkerMenuItem.setVisible(isRecording() && !isPaused);
insertPhotoMenuItem.setVisible(hasCamera && isRecording() && !isPaused);
shareMenuItem.setVisible(!isRecording());
markerListMenuItem.setShowAsAction(isRecording() ? MenuItem.SHOW_AS_ACTION_NEVER : MenuItem.SHOW_AS_ACTION_IF_ROOM);
voiceFrequencyMenuItem.setVisible(isRecording());
splitFrequencyMenuItem.setVisible(isRecording());
String title;
if (isRecording()) {
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) {
ChooseActivityTypeDialogFragment.newInstance(category).show(getSupportFragmentManager(),
ChooseActivityTypeDialogFragment.CHOOSE_ACTIVITY_TYPE_DIALOG_TAG);
ChooseActivityTypeDialogFragment.newInstance(category).show(getSupportFragmentManager(), ChooseActivityTypeDialogFragment.CHOOSE_ACTIVITY_TYPE_DIALOG_TAG);
}
@Override