Change panel visibility based on type

pull/419/head
Jake Powell 7 years ago
parent 6f6a386954
commit 93ba12cbed

@ -41,6 +41,7 @@ import org.isoron.uhabits.core.preferences.*;
import butterknife.*; import butterknife.*;
import static android.view.View.GONE; import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static org.isoron.uhabits.core.ui.ThemeSwitcher.THEME_LIGHT; import static org.isoron.uhabits.core.ui.ThemeSwitcher.THEME_LIGHT;
public class EditHabitDialog extends AppCompatDialogFragment public class EditHabitDialog extends AppCompatDialogFragment
@ -210,24 +211,30 @@ public class EditHabitDialog extends AppCompatDialogFragment
if (originalHabit != null) habit.copyFrom(originalHabit); if (originalHabit != null) habit.copyFrom(originalHabit);
if (habit.isNumerical())
{
frequencyPanel.setVisibility(GONE);
}
else
{
targetPanel.setVisibility(GONE);
}
namePanel.populateFrom(habit); namePanel.populateFrom(habit);
typePanel.setType(habit.getType()); typePanel.setType(habit.getType());
typePanel.setEnabled(originalHabit == null); typePanel.setEnabled(originalHabit == null);
setPanelsForType(habit.getType());
frequencyPanel.setFrequency(habit.getFrequency()); frequencyPanel.setFrequency(habit.getFrequency());
targetPanel.setTargetValue(habit.getTargetValue()); targetPanel.setTargetValue(habit.getTargetValue());
targetPanel.setUnit(habit.getUnit()); targetPanel.setUnit(habit.getUnit());
if (habit.hasReminder()) reminderPanel.setReminder(habit.getReminder()); 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() private void setupNameController()
{ {
namePanel.setController(new NameDescriptionPanel.Controller() namePanel.setController(new NameDescriptionPanel.Controller()
@ -256,7 +263,8 @@ public class EditHabitDialog extends AppCompatDialogFragment
@Override @Override
public void onTypeSelected(Integer previousType) public void onTypeSelected(Integer previousType)
{ {
Log.d("YOUREIT", "Prev: " + previousType.toString() + " Sel: " + typePanel.getType().toString()); Integer currentType = typePanel.getType();
setPanelsForType(currentType);
} }
}); });
} }

@ -19,28 +19,21 @@
package org.isoron.uhabits.activities.habits.edit.views; package org.isoron.uhabits.activities.habits.edit.views;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.content.res.Resources;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.TextView;
import org.isoron.uhabits.R; import org.isoron.uhabits.R;
import org.isoron.uhabits.core.models.Frequency;
import org.isoron.uhabits.core.models.Habit; import org.isoron.uhabits.core.models.Habit;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnItemSelected; import butterknife.OnItemSelected;
import static org.isoron.uhabits.R.id.numerator;
public class TypePanel extends FrameLayout public class TypePanel extends FrameLayout
{ {
@ -83,7 +76,7 @@ public class TypePanel extends FrameLayout
{ {
if (position < 0 || position > 1) throw new IllegalArgumentException(); if (position < 0 || position > 1) throw new IllegalArgumentException();
Integer previousType = type; Integer previousType = type;
type = getTypeFromQuickSelect(position); type = getTypeFromQuickSelectPosition(position);
controller.onTypeSelected(previousType); controller.onTypeSelected(previousType);
} }
@ -99,7 +92,7 @@ public class TypePanel extends FrameLayout
default void onTypeSelected(Integer previousType) {} 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(0)) return Habit.YES_NO_HABIT;
if (position.equals(1)) return Habit.NUMBER_HABIT; if (position.equals(1)) return Habit.NUMBER_HABIT;

Loading…
Cancel
Save