Skip to content

Commit

Permalink
removed EditExerciseViewHelper
Browse files Browse the repository at this point in the history
  • Loading branch information
avalax committed Jun 5, 2018
1 parent e55b278 commit 1db86c7
Show file tree
Hide file tree
Showing 14 changed files with 126 additions and 195 deletions.
Expand Up @@ -33,7 +33,6 @@
import de.avalax.fitbuddy.port.adapter.service.ad_mob.GmsAdMobProvider;
import de.avalax.fitbuddy.port.adapter.service.billing.GooglePlayBillingProvider;
import de.avalax.fitbuddy.port.adapter.service.billing.HttpNotificationProvider;
import de.avalax.fitbuddy.presentation.edit.exercise.EditExerciseViewHelper;
import de.avalax.fitbuddy.presentation.edit.workout.EditWorkoutViewHelper;
import de.avalax.fitbuddy.presentation.helper.ExerciseViewHelper;
import de.avalax.fitbuddy.presentation.summary.FinishedExerciseViewHelper;
Expand Down Expand Up @@ -94,8 +93,8 @@ public EditWorkoutService provideManageWorkout() {

@Provides
@Singleton
public EditWorkoutViewHelper provideEditWorkoutViewHelper(EditExerciseViewHelper editExerciseViewHelper) {
return new EditWorkoutViewHelper(context, editExerciseViewHelper);
public EditWorkoutViewHelper provideEditWorkoutViewHelper() {
return new EditWorkoutViewHelper(context);
}

@Provides
Expand All @@ -110,12 +109,6 @@ public FinishedExerciseViewHelper provideFinishedExerciseViewHelper() {
return new FinishedExerciseViewHelper();
}

@Provides
@Singleton
public EditExerciseViewHelper provideEditExerciseViewHelper() {
return new EditExerciseViewHelper(context);
}

@Provides
@Singleton
public BillingProvider provideBillingProvider() {
Expand Down
@@ -1,6 +1,7 @@
package de.avalax.fitbuddy.presentation.edit.exercise;

import android.app.Activity;
import android.arch.lifecycle.ViewModelProviders;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
Expand Down Expand Up @@ -32,6 +33,8 @@ public class EditExerciseActivity extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_exercise);
ViewModelProviders.of(this).get(EditExerciseViewModel.class);

Toolbar toolbar = findViewById(R.id.toolbar_exercise_edit);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
Expand Down
Expand Up @@ -10,12 +10,9 @@
import android.view.View;
import android.view.ViewGroup;

import javax.inject.Inject;

import de.avalax.fitbuddy.R;
import de.avalax.fitbuddy.databinding.EditExerciseBinding;
import de.avalax.fitbuddy.domain.model.exercise.Exercise;
import de.avalax.fitbuddy.presentation.FitbuddyApplication;

import static android.support.v7.widget.DividerItemDecoration.VERTICAL;

Expand All @@ -25,9 +22,6 @@ public class EditExerciseFragment extends Fragment {
private EditExerciseViewModel viewModel;
private EditExerciseBinding binding;

@Inject
protected EditExerciseViewHelper editExerciseViewHelper;

public static EditExerciseFragment forExercise(Exercise exercise) {
EditExerciseFragment fragment = new EditExerciseFragment();
Bundle bundle = new Bundle();
Expand All @@ -40,8 +34,7 @@ public static EditExerciseFragment forExercise(Exercise exercise) {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = DataBindingUtil.inflate(inflater, R.layout.edit_exercise, container, false);
((FitbuddyApplication) getActivity().getApplication()).getComponent().inject(this);
viewModel = ViewModelProviders.of(this).get(EditExerciseViewModel.class);
viewModel = ViewModelProviders.of(getActivity()).get(EditExerciseViewModel.class);
binding.setEditExerciseViewModel(viewModel);
binding.setLifecycleOwner(this);

Expand All @@ -55,7 +48,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Exercise exercise = (Exercise) getArguments().getSerializable(KEY_EXERCISE);
viewModel.init(getActivity(), editExerciseViewHelper, exercise);
viewModel.init(getActivity(), exercise);
binding.list.setAdapter(viewModel.getSetAdapter());
}

Expand Down

This file was deleted.

Expand Up @@ -9,8 +9,8 @@ public class EditExerciseViewModel extends ViewModel {
private SetAdapter setAdapter;
private Exercise exercise;

public void init(Activity activity, EditExerciseViewHelper editExerciseViewHelper, Exercise exercise) {
setAdapter = new SetAdapter(activity, exercise.getSets(), editExerciseViewHelper);
public void init(Activity activity, Exercise exercise) {
setAdapter = new SetAdapter(activity, exercise.getSets());
this.exercise = exercise;
}

Expand Down
Expand Up @@ -2,6 +2,7 @@

import android.app.Activity;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v4.util.ArraySet;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
Expand All @@ -19,20 +20,19 @@

import static android.graphics.Color.TRANSPARENT;
import static de.avalax.fitbuddy.presentation.FitbuddyApplication.EDIT_SET;
import static de.avalax.fitbuddy.presentation.edit.set.SetBindingAdapter.setRepsFromSet;
import static de.avalax.fitbuddy.presentation.edit.set.SetBindingAdapter.setWeightFromSet;

public class SetAdapter extends RecyclerView.Adapter<SetAdapter.SetViewHolder> {
private Sets sets;
private EditExerciseViewHelper editExerciseViewHelper;
private Activity activity;
private java.util.Set<Set> selections;

public SetAdapter(Activity activity,
Sets sets,
EditExerciseViewHelper editExerciseViewHelper) {
Sets sets) {
super();
this.activity = activity;
this.sets = sets;
this.editExerciseViewHelper = editExerciseViewHelper;
this.selections = new ArraySet<>();
}

Expand All @@ -45,14 +45,13 @@ public SetViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
}

@Override
public void onBindViewHolder(SetViewHolder holder, int position) {
public void onBindViewHolder(@NonNull SetViewHolder holder, int position) {
try {
Set set = sets.get(position);
String title = editExerciseViewHelper.repsFrom(set);
String subtitle = editExerciseViewHelper.weightFrom(set);

holder.getTitleTextView().setText(title);
holder.getSubtitleTextView().setText(subtitle);
setRepsFromSet(holder.getTitleTextView(), set);
setWeightFromSet(holder.getSubtitleTextView(), set);

holder.setSelected(selections.contains(set));

holder.getView().setOnClickListener(view -> {
Expand Down
Expand Up @@ -12,15 +12,9 @@
import de.avalax.fitbuddy.domain.model.set.Set;

public class EditSetViewModel extends ViewModel {
private static DecimalFormat decimalFormat;

private MutableLiveData<Set> liveDataSet;
private Set set;

static {
decimalFormat = new DecimalFormat("0.###");
}

public void init(Set set) {
this.set = set;
this.liveDataSet = new MutableLiveData<>();
Expand All @@ -40,27 +34,5 @@ public void setWeight(double weight) {
public LiveData<Set> getSet() {
return liveDataSet;
}

@BindingAdapter("reps")
public static void repsFromSet(TextView textView, Set set) {
String label = textView.getContext().getResources()
.getQuantityString(R.plurals.reps_label, set.getMaxReps(), set.getMaxReps());
textView.setText(label);
}

@BindingAdapter("weight")
public static void setWeightFromSet(TextView textView, Set set) {
int quantity = set.getWeight() == 0 ? 0 : 1;
String value = decimalFormat.format(set.getWeight());
String label;
if (quantity == 0) {
label = textView.getContext().getResources()
.getString(R.string.default_set_weight);
} else {
label = textView.getContext().getResources()
.getQuantityString(R.plurals.weight_label, quantity, value);
}
textView.setText(label);
}
}

@@ -0,0 +1,39 @@
package de.avalax.fitbuddy.presentation.edit.set;

import android.databinding.BindingAdapter;
import android.widget.TextView;

import java.text.DecimalFormat;

import de.avalax.fitbuddy.R;
import de.avalax.fitbuddy.domain.model.set.Set;

public class SetBindingAdapter {
private static DecimalFormat decimalFormat;

static {
decimalFormat = new DecimalFormat("0.###");
}

@BindingAdapter("reps")
public static void setRepsFromSet(TextView textView, Set set) {
String label = textView.getContext().getResources()
.getQuantityString(R.plurals.reps_label, set.getMaxReps(), set.getMaxReps());
textView.setText(label);
}

@BindingAdapter("weight")
public static void setWeightFromSet(TextView textView, Set set) {
int quantity = set.getWeight() == 0 ? 0 : 1;
String value = decimalFormat.format(set.getWeight());
String label;
if (quantity == 0) {
label = textView.getContext().getResources()
.getString(R.string.default_set_weight);
} else {
label = textView.getContext().getResources()
.getQuantityString(R.plurals.weight_label, quantity, value);
}
textView.setText(label);
}
}
Expand Up @@ -2,23 +2,37 @@

import android.content.Context;

import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.LinkedHashSet;

import de.avalax.fitbuddy.R;
import de.avalax.fitbuddy.domain.model.exercise.Exercise;
import de.avalax.fitbuddy.domain.model.set.Set;
import de.avalax.fitbuddy.presentation.edit.exercise.EditExerciseViewHelper;

import static android.text.TextUtils.join;

@Deprecated
public class EditWorkoutViewHelper {

private final String defaultWeight;
private EditExerciseViewHelper editExerciseViewHelper;
private final String weightSuffix;
private final DecimalFormat decimalFormat;

public EditWorkoutViewHelper(Context context, EditExerciseViewHelper editExerciseViewHelper) {
this.editExerciseViewHelper = editExerciseViewHelper;
public EditWorkoutViewHelper(Context context) {
defaultWeight = context.getResources().getString(R.string.default_set_weight);
weightSuffix = " " + context.getResources().getString(R.string.weight_suffix);
String decimalSeparator = context.getResources().getString(R.string.decimal_separator);
String groupingSeparator = context.getResources().getString(R.string.grouping_separator);
DecimalFormatSymbols otherSymbols = formatSymbols(decimalSeparator, groupingSeparator);
decimalFormat = new DecimalFormat("0.###", otherSymbols);
}

private DecimalFormatSymbols formatSymbols(String decimalSeparator, String groupingSeparator) {
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols();
otherSymbols.setDecimalSeparator(decimalSeparator.charAt(0));
otherSymbols.setGroupingSeparator(groupingSeparator.charAt(0));
return otherSymbols;
}

public String title(Exercise exercise) {
Expand Down Expand Up @@ -53,9 +67,21 @@ public String weight(Exercise exercise) {
double setWeight = set.getWeight();
if (setWeight > exerciseWeight) {
exerciseWeight = setWeight;
weight = editExerciseViewHelper.weightFrom(set);
weight = weightFrom(set);
}
}
return weight;
}

private String weightFrom(Set set) {
String weight = weightValue(set);
if ("0".equals(weight)) {
return defaultWeight;
}
return weight + weightSuffix;
}

private String weightValue(Set set) {
return decimalFormat.format(set.getWeight());
}
}
Expand Up @@ -6,17 +6,12 @@
import android.view.View;
import android.widget.TextView;

import javax.inject.Inject;

import de.avalax.fitbuddy.R;
import de.avalax.fitbuddy.domain.model.finished_workout.FinishedWorkout;
import de.avalax.fitbuddy.presentation.edit.exercise.EditExerciseViewHelper;

import static de.avalax.fitbuddy.presentation.summary.FinishedWorkoutDetailFragment.ARGS_FINISHED_WORKOUT;

public class FinishedWorkoutDetailActivity extends AppCompatActivity {
@Inject
protected EditExerciseViewHelper editExerciseViewHelper;

@Override
public void onCreate(Bundle savedInstanceState) {
Expand Down
Expand Up @@ -20,8 +20,6 @@ public class EditExerciseViewModelTest {
@Mock
private Exercise exercise;

@Mock
private EditExerciseViewHelper editExerciseViewHelper;
private EditExerciseViewModel editExerciseViewModel;

@Before
Expand All @@ -33,7 +31,7 @@ public void setUp() throws Exception {

@Test
public void onInit_shouldSetWeightAndReps() {
editExerciseViewModel.init(null, editExerciseViewHelper, exercise);
editExerciseViewModel.init(null, exercise);

assertThat(editExerciseViewModel.getName()).isEqualTo("exercise name");
assertThat(editExerciseViewModel.getSetAdapter()).isInstanceOf(SetAdapter.class);
Expand Down

0 comments on commit 1db86c7

Please sign in to comment.