From 93ba12cbed32622121638b57217d5dec240fd4f6 Mon Sep 17 00:00:00 2001 From: Jake Powell Date: Wed, 16 May 2018 19:38:50 -0400 Subject: [PATCH] Change panel visibility based on type --- .../habits/edit/EditHabitDialog.java | 28 ++++++++++++------- .../habits/edit/views/TypePanel.java | 11 ++------ 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitDialog.java b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitDialog.java index f4d8a8149..bffeb1de3 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitDialog.java +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitDialog.java @@ -41,6 +41,7 @@ import org.isoron.uhabits.core.preferences.*; import butterknife.*; import static android.view.View.GONE; +import static android.view.View.VISIBLE; import static org.isoron.uhabits.core.ui.ThemeSwitcher.THEME_LIGHT; public class EditHabitDialog extends AppCompatDialogFragment @@ -210,24 +211,30 @@ public class EditHabitDialog extends AppCompatDialogFragment if (originalHabit != null) habit.copyFrom(originalHabit); - if (habit.isNumerical()) - { - frequencyPanel.setVisibility(GONE); - } - else - { - targetPanel.setVisibility(GONE); - } - namePanel.populateFrom(habit); typePanel.setType(habit.getType()); typePanel.setEnabled(originalHabit == null); + setPanelsForType(habit.getType()); frequencyPanel.setFrequency(habit.getFrequency()); targetPanel.setTargetValue(habit.getTargetValue()); targetPanel.setUnit(habit.getUnit()); if (habit.hasReminder()) reminderPanel.setReminder(habit.getReminder()); } + private void setPanelsForType(Integer type) + { + if (typePanel.getType() == Habit.NUMBER_HABIT) + { + targetPanel.setVisibility(VISIBLE); + frequencyPanel.setVisibility(GONE); + } + else + { + targetPanel.setVisibility(GONE); + frequencyPanel.setVisibility(VISIBLE); + } + } + private void setupNameController() { namePanel.setController(new NameDescriptionPanel.Controller() @@ -256,7 +263,8 @@ public class EditHabitDialog extends AppCompatDialogFragment @Override public void onTypeSelected(Integer previousType) { - Log.d("YOUREIT", "Prev: " + previousType.toString() + " Sel: " + typePanel.getType().toString()); + Integer currentType = typePanel.getType(); + setPanelsForType(currentType); } }); } diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/views/TypePanel.java b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/views/TypePanel.java index dfbe11524..8e7879d8d 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/views/TypePanel.java +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/edit/views/TypePanel.java @@ -19,28 +19,21 @@ package org.isoron.uhabits.activities.habits.edit.views; -import android.annotation.SuppressLint; import android.content.Context; -import android.content.res.Resources; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.View; -import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.Spinner; -import android.widget.TextView; import org.isoron.uhabits.R; -import org.isoron.uhabits.core.models.Frequency; import org.isoron.uhabits.core.models.Habit; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnItemSelected; -import static org.isoron.uhabits.R.id.numerator; - public class TypePanel extends FrameLayout { @@ -83,7 +76,7 @@ public class TypePanel extends FrameLayout { if (position < 0 || position > 1) throw new IllegalArgumentException(); Integer previousType = type; - type = getTypeFromQuickSelect(position); + type = getTypeFromQuickSelectPosition(position); controller.onTypeSelected(previousType); } @@ -99,7 +92,7 @@ public class TypePanel extends FrameLayout default void onTypeSelected(Integer previousType) {} } - private Integer getTypeFromQuickSelect(@NonNull Integer position) + private Integer getTypeFromQuickSelectPosition(@NonNull Integer position) { if (position.equals(0)) return Habit.YES_NO_HABIT; if (position.equals(1)) return Habit.NUMBER_HABIT;