Skip to content

Commit

Permalink
simplified bottom navigation
Browse files Browse the repository at this point in the history
  • Loading branch information
avalax committed Jan 12, 2018
1 parent 8591d38 commit e1bcf8e
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,18 @@ public void initialStart_shouldShowEmptyStartFragment() throws Exception {
application.showsStartBottomNavAsActive();
application.hasShownAddNewWorkoutHint();
application.showsSupportMenuItem();
application.showsWorkoutBottomNavAsDisabled();
application.showsFinishedWorkoutBottomNavAsDisabled();
application.showsAdMob();
}

@Test
public void initialStart_shouldShowMe() throws Exception {
activityRule.launchActivity(null);

application.navigateToWorkout();

application.hasShownSelectWorkoutFirst();
}

@Test
public void newWorkout_shouldBeDisplayed() throws Exception {
activityRule.launchActivity(null);
Expand Down Expand Up @@ -217,13 +224,14 @@ public void activeWorkoutGiven_shouldNavigateBetweenFragments() throws Exception
application.showsWorkoutIsActive(0);

application.navigateToWorkout();
application.showsWorkoutBottomNavAsActive();
application.showsActiveExercise("an exercise:", "42 kg");

application.backPressed();
application.showsWorkoutIsActive(0);

application.switchToSummary();
application.showsFinishedWorkoutBottomNavAsActive();
application.navigateToSummary();
application.showsSummaryBottomNavAsActive();
application.showsFinishedWorkoutOverview(0, "a workout", "Today", "normal");

application.selectFinishedWorkout(0);
Expand Down Expand Up @@ -323,7 +331,7 @@ public void aFinishedWorkout_shouldBeDeleted() throws Exception {

activityRule.launchActivity(null);

application.switchToSummary();
application.navigateToSummary();
application.deleteFinishedWorkout(0);

application.hasShownAddNoFinishedWorkoutsHint();
Expand All @@ -339,7 +347,7 @@ public void aFinishedWorkout_shouldShowExerciseDetails() throws Exception {

activityRule.launchActivity(null);

application.switchToSummary();
application.navigateToSummary();
application.showsFinishedWorkoutOverview(0, "a workout", "Today", "normal");
application.showsAdMob();

Expand All @@ -359,7 +367,7 @@ public void paidApp_shouldNotShowAds() throws Exception {
activityRule.launchActivity(null);
application.notDisplayAdMob();

application.switchToSummary();
application.navigateToSummary();
application.notDisplayAdMob();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,16 @@ public void showsStartBottomNavAsActive() {
onView(withId(R.id.navigation_summary_item)).check(matches(bottomNavItemIsNotChecked()));
}

public void showsFinishedWorkoutBottomNavAsActive() {
public void showsWorkoutBottomNavAsActive() {
onView(withId(R.id.navigation_start_item)).check(matches(bottomNavItemIsNotChecked()));
onView(withId(R.id.navigation_workout_item)).check(matches(bottomNavItemIsNotChecked()));
onView(withId(R.id.navigation_summary_item)).check(matches(bottomNavItemIsChecked()));
onView(withId(R.id.navigation_workout_item)).check(matches(bottomNavItemIsChecked()));
onView(withId(R.id.navigation_summary_item)).check(matches(bottomNavItemIsNotChecked()));
}

public void showsWorkoutBottomNavAsDisabled() {
onView(withId(R.id.navigation_workout_item)).check(matches(not(isEnabled())));
public void showsSummaryBottomNavAsActive() {
onView(withId(R.id.navigation_start_item)).check(matches(bottomNavItemIsNotChecked()));
onView(withId(R.id.navigation_workout_item)).check(matches(bottomNavItemIsNotChecked()));
onView(withId(R.id.navigation_summary_item)).check(matches(bottomNavItemIsChecked()));
}

public void showsFinishedWorkoutBottomNavAsDisabled() {
Expand All @@ -77,7 +79,7 @@ public void notDisplayAdMob() {
onView(withId(R.id.adView)).check(matches(not(isDisplayed())));
}

public void switchToSummary() {
public void navigateToSummary() {
onView(withId(R.id.navigation_summary_item)).perform(click());
}

Expand Down Expand Up @@ -276,6 +278,10 @@ public void hasShownCantSaveWorkoutWithoutExercices() {
onView(withText(R.string.message_save_workout_without_exercices)).inRoot(isToast()).check(matches(isDisplayed()));
}

public void hasShownSelectWorkoutFirst() {
onView(withText(R.string.message_select_workout_first)).inRoot(isToast()).check(matches(isDisplayed()));
}

public void saveExercise() {
onView(withId(R.id.toolbar_save_exercise)).perform(click());
}
Expand Down
32 changes: 17 additions & 15 deletions src/main/java/de/avalax/fitbuddy/presentation/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package de.avalax.fitbuddy.presentation;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
Expand Down Expand Up @@ -28,6 +29,9 @@
import de.avalax.fitbuddy.presentation.welcome_screen.WorkoutListFragment;
import de.avalax.fitbuddy.presentation.workout.ExerciseFragment;

import static android.widget.Toast.LENGTH_SHORT;
import static android.widget.Toast.makeText;

public class MainActivity extends AppCompatActivity
implements BottomNavigationView.OnNavigationItemSelectedListener {

Expand Down Expand Up @@ -58,14 +62,6 @@ protected void onCreate(Bundle savedInstanceState) {

bottomNavigation = findViewById(R.id.bottom_navigation);
bottomNavigation.setOnNavigationItemSelectedListener(this);
updateBottomNavigation();
}

public void updateBottomNavigation() {
MenuItem itemWorkout = bottomNavigation.getMenu().getItem(1);
MenuItem itemFinishedWorkout = bottomNavigation.getMenu().getItem(2);
itemWorkout.setEnabled(workoutService.hasActiveWorkout());
itemFinishedWorkout.setEnabled(finishedWorkoutService.hasFinishedWorkouts());
}

@Override
Expand Down Expand Up @@ -161,7 +157,6 @@ public void mainToolbar() {
public void selectWorkout(Workout workout) {
try {
workoutService.switchWorkout(workout);
updateBottomNavigation();
} catch (WorkoutException e) {
Log.e("WorkoutException", e.getMessage(), e);
}
Expand All @@ -175,12 +170,19 @@ public void showSummary() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == R.id.navigation_workout_item) {
Fragment exerciseFragment = new ExerciseFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_content, exerciseFragment)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.commit();
return true;
boolean hasActiveWorkout = workoutService.hasActiveWorkout();
if (hasActiveWorkout) {
Fragment exerciseFragment = new ExerciseFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_content, exerciseFragment)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.commit();
} else {
Context context = getApplicationContext();
makeText(context, R.string.message_select_workout_first, LENGTH_SHORT)
.show();
}
return hasActiveWorkout;
}
if (item.getItemId() == R.id.navigation_start_item) {
Fragment workoutListFragment = new WorkoutListFragment();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@ void finishWorkout() {
.setPositiveButton(android.R.string.yes, (dialog, which) -> {
try {
workoutService.finishCurrentWorkout();
((MainActivity) getActivity()).updateBottomNavigation();
((MainActivity) getActivity()).showSummary();
} catch (ResourceException e) {
Log.d("Can't finish workout", e.getMessage(), e);
Expand Down
5 changes: 2 additions & 3 deletions src/main/res/drawable/navigation_colors.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/primaryDarkColor" android:state_checked="false" android:state_enabled="true" />
<item android:color="@color/statusBarColor" android:state_enabled="false" />
<item android:color="@color/primaryLightColor" android:state_checked="true" />
<item android:color="@color/primaryColor" android:state_checked="true"/>
<item android:color="@android:color/darker_gray" android:state_checked="false" />
</selector>
1 change: 1 addition & 0 deletions src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,5 @@
<string name="weight_suffix">kg</string>
<string name="edit_set_toolbar_title">Edit set</string>
<string name="summary_tendency_normal">normal</string>
<string name="message_select_workout_first">Select a workout first</string>
</resources>

0 comments on commit e1bcf8e

Please sign in to comment.