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 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);
}
});
}

@ -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;

Loading…
Cancel
Save