From 3ffa079e24e7c9d6641c8e8ef2434b18ff1f67a8 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sat, 28 May 2016 13:03:37 -0400 Subject: [PATCH] Remove code duplication --- .../ui/habits/edit/BaseDialogFragment.java | 15 ++++++++++++--- .../habits/edit/CreateHabitDialogFragment.java | 18 ++++-------------- .../habits/edit/EditHabitDialogFragment.java | 16 ++++------------ 3 files changed, 20 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/ui/habits/edit/BaseDialogFragment.java b/app/src/main/java/org/isoron/uhabits/ui/habits/edit/BaseDialogFragment.java index 5be97cbe8..96182853c 100644 --- a/app/src/main/java/org/isoron/uhabits/ui/habits/edit/BaseDialogFragment.java +++ b/app/src/main/java/org/isoron/uhabits/ui/habits/edit/BaseDialogFragment.java @@ -56,11 +56,22 @@ public abstract class BaseDialogFragment extends AppCompatDialogFragment Bundle savedInstanceState) { View view = inflater.inflate(R.layout.edit_habit, container, false); - helper = new BaseDialogHelper(this, view); ButterKnife.bind(this, view); + + helper = new BaseDialogHelper(this, view); + getDialog().setTitle(getTitle()); + initializeHabits(); + restoreSavedInstance(savedInstanceState); + helper.populateForm(modifiedHabit); return view; } + protected abstract void initializeHabits(); + + protected abstract void saveHabit(); + + protected abstract int getTitle(); + @Override @SuppressWarnings("ConstantConditions") public void onSaveInstanceState(Bundle outState) @@ -138,8 +149,6 @@ public abstract class BaseDialogFragment extends AppCompatDialogFragment helper.populateFrequencyFields(modifiedHabit); } - protected abstract void saveHabit(); - @OnClick(R.id.buttonPickColor) void showColorPicker() { diff --git a/app/src/main/java/org/isoron/uhabits/ui/habits/edit/CreateHabitDialogFragment.java b/app/src/main/java/org/isoron/uhabits/ui/habits/edit/CreateHabitDialogFragment.java index 8cd92750d..077a2c750 100644 --- a/app/src/main/java/org/isoron/uhabits/ui/habits/edit/CreateHabitDialogFragment.java +++ b/app/src/main/java/org/isoron/uhabits/ui/habits/edit/CreateHabitDialogFragment.java @@ -19,11 +19,6 @@ package org.isoron.uhabits.ui.habits.edit; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - import org.isoron.uhabits.R; import org.isoron.uhabits.commands.Command; import org.isoron.uhabits.commands.CommandRunner; @@ -33,18 +28,13 @@ import org.isoron.uhabits.models.Habit; public class CreateHabitDialogFragment extends BaseDialogFragment { @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) + protected int getTitle() { - View view = super.onCreateView(inflater, container, savedInstanceState); - getDialog().setTitle(R.string.create_habit); - initializeHabits(); - restoreSavedInstance(savedInstanceState); - helper.populateForm(modifiedHabit); - return view; + return R.string.create_habit; } - private void initializeHabits() + @Override + protected void initializeHabits() { modifiedHabit = new Habit(); modifiedHabit.freqNum = 1; diff --git a/app/src/main/java/org/isoron/uhabits/ui/habits/edit/EditHabitDialogFragment.java b/app/src/main/java/org/isoron/uhabits/ui/habits/edit/EditHabitDialogFragment.java index 413a298cb..7ffff0aac 100644 --- a/app/src/main/java/org/isoron/uhabits/ui/habits/edit/EditHabitDialogFragment.java +++ b/app/src/main/java/org/isoron/uhabits/ui/habits/edit/EditHabitDialogFragment.java @@ -20,9 +20,6 @@ package org.isoron.uhabits.ui.habits.edit; import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; import org.isoron.uhabits.R; import org.isoron.uhabits.commands.Command; @@ -42,18 +39,13 @@ public class EditHabitDialogFragment extends BaseDialogFragment } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) + protected int getTitle() { - View view = super.onCreateView(inflater, container, savedInstanceState); - getDialog().setTitle(R.string.edit_habit); - initializeHabits(); - restoreSavedInstance(savedInstanceState); - helper.populateForm(modifiedHabit); - return view; + return R.string.edit_habit; } - private void initializeHabits() + @Override + protected void initializeHabits() { Long habitId = (Long) getArguments().get("habitId"); if(habitId == null) throw new IllegalArgumentException("habitId must be specified");