Add quick selection for commonly used habit frequencies

Closes #25
This commit is contained in:
2016-03-19 09:46:42 -04:00
parent d39e1978a2
commit c3ff1fbe03
11 changed files with 255 additions and 66 deletions

View File

@@ -17,12 +17,13 @@
~ with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
<LinearLayout
android:id="@+id/container"
style="@style/dialogForm"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.isoron.uhabits.fragments.EditHabitFragment"
tools:ignore="MergeRootFrame"
style="@style/dialogForm">
tools:ignore="MergeRootFrame">
<LinearLayout
android:id="@+id/formPanel"
@@ -34,72 +35,97 @@
<EditText
android:id="@+id/input_name"
android:hint="@string/name"
android:inputType="textCapSentences"
style="@style/dialogFormInput">
style="@style/dialogFormInput"
android:hint="@string/name">
<requestFocus />
<requestFocus/>
</EditText>
<ImageButton
android:id="@+id/buttonPickColor"
android:src="@drawable/ic_action_color_light"
style="@style/dialogFormInputColor"
android:contentDescription="@string/color_picker_default_title"
style="@style/dialogFormInputColor" />
android:src="@drawable/ic_action_color_light"/>
</LinearLayout>
<EditText
android:id="@+id/input_description"
android:hint="@string/description_hint"
android:inputType="textCapSentences"
style="@style/dialogFormInputMultiline" />
style="@style/dialogFormInputMultiline"
android:hint="@string/description_hint"/>
<LinearLayout
style="@style/dialogFormRow"
android:gravity="start">
style="@style/dialogFormRow">
<TextView
android:id="@+id/textView1"
style="@style/dialogFormLabel"
android:text="@string/repeat" />
android:text="@string/repeat"/>
<EditText
android:id="@+id/input_freq_num"
style="@style/dialogFormInputSmallNumber" />
<TextView
android:id="@+id/textView3"
<Spinner
android:id="@+id/sFrequency"
style="@style/dialogFormSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/times_every" />
android:entries="@array/frequencyQuickSelect"
android:visibility="gone"/>
<EditText
android:id="@+id/input_freq_den"
style="@style/dialogFormInputSmallNumber" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
<org.apmem.tools.layouts.FlowLayout
android:id="@+id/llCustomFrequency"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/days" />
android:visibility="visible"
android:gravity="fill">
<EditText
android:id="@+id/input_freq_num"
style="@style/dialogFormInputSmallNumber"/>
<TextView
android:id="@+id/textView3"
style="@style/dialogFormText"
android:text="@string/times_every"
android:gravity="center"/>
<EditText
android:id="@+id/input_freq_den"
style="@style/dialogFormInputSmallNumber"/>
<TextView
android:id="@+id/textView5"
style="@style/dialogFormText"
android:text="@string/days"
android:gravity="center_vertical"
android:paddingLeft="12dp"/>
</org.apmem.tools.layouts.FlowLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/reminedPanel"
android:id="@+id/reminderPanel"
style="@style/dialogFormRow">
<TextView
android:id="@+id/TextView2"
style="@style/dialogFormLabel"
android:text="@string/reminder" />
android:text="@string/reminder"/>
<TextView
android:id="@+id/inputReminderTime"
style="@style/dialogFormTimePicker" />
style="@style/dialogFormSpinner"/>
</LinearLayout>
<LinearLayout
android:id="@+id/llReminderDays"
style="@style/dialogFormRow">
<TextView
android:id="@+id/TextView3"
style="@style/dialogFormLabel"
android:text=""/>
<TextView
android:id="@+id/inputReminderDays"
style="@style/dialogFormTimePicker" />
style="@style/dialogFormSpinner"/>
</LinearLayout>
</LinearLayout>
@@ -110,20 +136,22 @@
android:layout_height="wrap_content"
android:gravity="end"
android:paddingEnd="16dp"
android:paddingRight="16dp">
android:paddingLeft="0dp"
android:paddingRight="16dp"
android:paddingStart="0dp">
<Button
android:id="@+id/buttonDiscard"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/discard" />
android:text="@string/discard"/>
<Button
android:id="@+id/buttonSave"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save" />
android:text="@string/save"/>
</LinearLayout>
</LinearLayout>

View File

@@ -31,6 +31,8 @@
</style>
<style name="MyDialogStyle" parent="android:Theme.Material.Light.Dialog">
<item name="android:spinnerItemStyle">@style/dialogFormText</item>
<item name="android:spinnerDropDownItemStyle">@style/dialogFormSpinnerDropDown</item>
</style>
<style name="cardStyle" parent="cardBasicStyle">

View File

@@ -19,6 +19,8 @@
<color name="primary">#37474f</color>
<color name="primary_darker">#263238</color>
<color name="windowBackground">#e6e6e6</color>
<color name="dialogTextColor">@color/grey_800</color>
<color name="dialogFadedTextColor">@color/grey_600</color>
<color name="white">#ffffff</color>
@@ -312,14 +314,14 @@
<!--<color name="orange_A400">#FF9100</color>-->
<!--<color name="orange_A700">#FF6D00</color>-->
<!--<color name="grey_50">#FAFAFA</color>-->
<color name="grey_50">#FAFAFA</color>
<color name="grey_100">#F5F5F5</color>
<!--<color name="grey_200">#EEEEEE</color>-->
<!--<color name="grey_300">#E0E0E0</color>-->
<color name="grey_200">#EEEEEE</color>
<color name="grey_300">#E0E0E0</color>
<color name="grey_400">#BDBDBD</color>
<color name="grey_500">#9E9E9E</color>
<!--<color name="grey_600">#757575</color>-->
<!--<color name="grey_700">#616161</color>-->
<!--<color name="grey_800">#424242</color>-->
<!--<color name="grey_900">#212121</color>-->
<color name="grey_600">#757575</color>
<color name="grey_700">#616161</color>
<color name="grey_800">#424242</color>
<color name="grey_900">#212121</color>
</resources>

View File

@@ -42,5 +42,13 @@
<item>480</item>
</string-array>
<string-array name="frequencyQuickSelect" translatable="false">
<item>@string/every_day</item>
<item>@string/every_week</item>
<item>@string/two_times_per_week</item>
<item>@string/five_times_per_week</item>
<item>@string/custom_frequency</item>
</string-array>
<string name="snooze_interval_default" translatable="false">15</string>
</resources>

View File

@@ -131,4 +131,10 @@
<string name="last_x_months">Last %d months</string>
<string name="last_x_years">Last %d years</string>
<string name="all_time">All time</string>
<string name="every_day">Every day</string>
<string name="every_week">Every week</string>
<string name="two_times_per_week">2 times per week</string>
<string name="five_times_per_week">2 times per week</string>
<string name="custom_frequency">Custom …</string>
</resources>

View File

@@ -19,7 +19,10 @@
<resources>
<style name="AppBaseTheme" parent="android:Theme.Holo.Light" />
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<item name="android:spinnerItemStyle">@style/dialogFormText</item>
<item name="android:spinnerDropDownItemStyle">@style/dialogFormSpinnerDropDown</item>
</style>
<style name="time_label">
<item name="android:textSize">@dimen/time_label_size</item>
@@ -33,7 +36,7 @@
<item name="android:textStyle">bold</item>
</style>
<style name="day_of_week_label_condensed" />
<style name="day_of_week_label_condensed"/>
<style name="cardsListStyle">
<item name="android:layout_width">match_parent</item>

View File

@@ -20,7 +20,7 @@
<resources>
<style name="dialogFormInputMultiline">
<style name="dialogFormInputMultiline" parent="dialogFormInput">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:ems">10</item>
@@ -34,7 +34,7 @@
<item name="android:background">?android:attr/selectableItemBackground</item>
</style>
<style name="dialogFormInputSmallNumber">
<style name="dialogFormInputSmallNumber" parent="dialogFormInput">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:ems">2</item>
@@ -43,40 +43,57 @@
<item name="android:maxLength">2</item>
</style>
<style name="dialogFormInput">
<style name="dialogFormText">
<item name="android:textSize">16sp</item>
<item name="android:textColor">@color/dialogTextColor</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
</style>
<style name="dialogFormSpinnerDropDown" parent="dialogFormText">
<item name="android:padding">12dp</item>
<item name="android:textColor">@color/dialogTextColor</item>
</style>
<style name="dialogFormInput" parent="dialogFormText">
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">10</item>
<item name="android:ems">10</item>
<item name="android:inputType">textCapSentences</item>
</style>
<style name="dialogFormLabel">
<style name="dialogFormLabel" parent="dialogFormText">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:width">80dp</item>
<item name="android:gravity">right</item>
<item name="android:paddingRight">9dp</item>
<item name="android:width">100dp</item>
<item name="android:gravity">left</item>
<item name="android:paddingLeft">6dp</item>
<item name="android:textColor">@color/dialogFadedTextColor</item>
</style>
<style name="dialogFormTimePicker" parent="android:Widget.DeviceDefault.Light.Spinner">
<item name="android:layout_width">wrap_content</item>
<style name="dialogFormSpinner" parent="android:Widget.DeviceDefault.Light.Spinner">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:paddingLeft">12dp</item>
<item name="android:textSize">16sp</item>
<item name="android:minWidth">400dp</item>
<item name="android:textColor">@color/dialogTextColor</item>
</style>
<style name="dialogFormRow">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginTop">8dp</item>
<item name="android:layout_marginTop">12dp</item>
<item name="android:orientation">horizontal</item>
<item name="android:minWidth">300dp</item>
<item name="android:gravity">start|center_vertical</item>
</style>
<style name="dialogForm">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:orientation">vertical</item>
<item name="android:paddingBottom">8dp</item>
</style>
<style name="dialogFormPanel">