<string-array name="alerts">
<item>0|None</item>
<item>5|5 minutes</item>
<item>15|15 minutes</item>
<item>30|30 minutes</item>
<item>60|1 hour</item>
<item>180|3 hours</item>
<item>300|5 hours</item>
</string-array>
Thursday, 11 June 2015
Style xml
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="actionModeBackground">@color/action_bar</item> // pre lollipop
<item name="android:actionModeBackground">@color/action_bar</item> // lollipop
</style>
<style name="BottomSheet.StyleDialog" parent="BottomSheet.Dialog">
<item name="android:backgroundDimAmount">0.5</item>
<item name="android:windowAnimationStyle">@style/BottomSheet.Animation</item>
<item name="android:textColorPrimary">#DDffffff</item>
<item name="android:textColorSecondary">#8Affffff</item>
<item name="android:textColorHint">#42ffffff</item>
<item name="bs_dialogBackground">@color/action_bar</item>
<item name="bs_dividerColor">@color/abc_search_url_text_pressed</item>
<item name="bs_numColumns">4</item>
</style>
</resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="actionModeBackground">@color/action_bar</item> // pre lollipop
<item name="android:actionModeBackground">@color/action_bar</item> // lollipop
</style>
<style name="BottomSheet.StyleDialog" parent="BottomSheet.Dialog">
<item name="android:backgroundDimAmount">0.5</item>
<item name="android:windowAnimationStyle">@style/BottomSheet.Animation</item>
<item name="android:textColorPrimary">#DDffffff</item>
<item name="android:textColorSecondary">#8Affffff</item>
<item name="android:textColorHint">#42ffffff</item>
<item name="bs_dialogBackground">@color/action_bar</item>
<item name="bs_dividerColor">@color/abc_search_url_text_pressed</item>
<item name="bs_numColumns">4</item>
</style>
</resources>
Row layout xml
<FrameLayout
android:id="@+id/containerMain"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants">
<RelativeLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:padding="10dp"
android:background="@drawable/rounded_corner_layout">
<TextView
android:id="@+id/title"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textStyle="italic|bold"
android:text="title"
android:textColor="@color/textColor"/>
<View
android:id="@+id/hline"
android:layout_below="@+id/title"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#ffe0e8ee"
android:layout_toLeftOf="@+id/switch_checkbox"
android:layout_toStartOf="@+id/switch_checkbox"/>
<TextView
android:id="@+id/location"
android:layout_below="@+id/hline"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Location"
android:textSize="14sp"
android:textColor="@color/textColor2"/>
<View
android:id="@+id/hline2"
android:layout_below="@+id/location"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#ffe0e8ee"
android:layout_toLeftOf="@+id/switch_checkbox"
android:layout_toStartOf="@+id/switch_checkbox"/>
<TextView
android:id="@+id/time"
android:layout_below="@+id/hline2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="time"
android:textColor="@color/textColor2"/>
<View
android:id="@+id/hline3"
android:layout_below="@+id/time"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#ffe0e8ee"
android:layout_toLeftOf="@+id/switch_checkbox"
android:layout_toStartOf="@+id/switch_checkbox"/>
<TextView
android:id="@+id/repeat"
android:layout_below="@+id/hline3"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="Repeat after 5 hours"
android:textColor="@color/textColor2"/>
<RelativeLayout
android:id="@+id/switch_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true">
<android.support.v7.widget.SwitchCompat
android:id="@+id/on_off"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
</RelativeLayout>
</FrameLayout>
android:id="@+id/containerMain"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants">
<RelativeLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:padding="10dp"
android:background="@drawable/rounded_corner_layout">
<TextView
android:id="@+id/title"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textStyle="italic|bold"
android:text="title"
android:textColor="@color/textColor"/>
<View
android:id="@+id/hline"
android:layout_below="@+id/title"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#ffe0e8ee"
android:layout_toLeftOf="@+id/switch_checkbox"
android:layout_toStartOf="@+id/switch_checkbox"/>
<TextView
android:id="@+id/location"
android:layout_below="@+id/hline"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Location"
android:textSize="14sp"
android:textColor="@color/textColor2"/>
<View
android:id="@+id/hline2"
android:layout_below="@+id/location"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#ffe0e8ee"
android:layout_toLeftOf="@+id/switch_checkbox"
android:layout_toStartOf="@+id/switch_checkbox"/>
<TextView
android:id="@+id/time"
android:layout_below="@+id/hline2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="time"
android:textColor="@color/textColor2"/>
<View
android:id="@+id/hline3"
android:layout_below="@+id/time"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#ffe0e8ee"
android:layout_toLeftOf="@+id/switch_checkbox"
android:layout_toStartOf="@+id/switch_checkbox"/>
<TextView
android:id="@+id/repeat"
android:layout_below="@+id/hline3"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="Repeat after 5 hours"
android:textColor="@color/textColor2"/>
<RelativeLayout
android:id="@+id/switch_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true">
<android.support.v7.widget.SwitchCompat
android:id="@+id/on_off"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
</RelativeLayout>
</FrameLayout>
3 Number pickers xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true">
<RelativeLayout
android:id="@+id/one"
android:padding="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp">
<TextView
android:id="@+id/days"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Days"
android:textSize="20sp"
android:layout_marginBottom="10dp"/>
<NumberPicker
android:id="@+id/picker1"
android:layout_below="@+id/days"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/two"
android:padding="10dp"
android:layout_toRightOf="@+id/one"
android:layout_toEndOf="@+id/one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp">
<TextView
android:id="@+id/hours"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Hours"
android:textSize="20sp"
android:layout_marginBottom="10dp" />
<NumberPicker
android:id="@+id/picker2"
android:layout_below="@+id/hours"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/three"
android:padding="10dp"
android:layout_toRightOf="@+id/two"
android:layout_toEndOf="@+id/two"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/minutes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Min"
android:textSize="20sp"
android:layout_marginBottom="10dp" />
<NumberPicker
android:id="@+id/picker3"
android:layout_below="@+id/minutes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"/>
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true">
<RelativeLayout
android:id="@+id/one"
android:padding="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp">
<TextView
android:id="@+id/days"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Days"
android:textSize="20sp"
android:layout_marginBottom="10dp"/>
<NumberPicker
android:id="@+id/picker1"
android:layout_below="@+id/days"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/two"
android:padding="10dp"
android:layout_toRightOf="@+id/one"
android:layout_toEndOf="@+id/one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp">
<TextView
android:id="@+id/hours"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Hours"
android:textSize="20sp"
android:layout_marginBottom="10dp" />
<NumberPicker
android:id="@+id/picker2"
android:layout_below="@+id/hours"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/three"
android:padding="10dp"
android:layout_toRightOf="@+id/two"
android:layout_toEndOf="@+id/two"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/minutes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Min"
android:textSize="20sp"
android:layout_marginBottom="10dp" />
<NumberPicker
android:id="@+id/picker3"
android:layout_below="@+id/minutes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"/>
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
New alarm xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_gravity="center_horizontal"
android:scrollbarStyle="outsideOverlay">
<RelativeLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:layout_marginTop="20dp"
android:layout_marginLeft="15dp"
android:layout_marginStart="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp">
<RelativeLayout
android:id="@+id/date_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="2dp"
android:paddingBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/time_date_label"
android:id="@+id/time_date_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"
android:layout_marginBottom="5dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/date_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/time_value"
android:text="Set Date"
android:textSize="14sp"
android:clickable="true"
android:background="@drawable/color2"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/time_value"
android:layout_marginTop="5dp"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/time_date_label"
android:layout_marginBottom="5dp"
android:text="Set Time"
android:textSize="14sp"
android:clickable="true"
android:background="@drawable/color2"/>
</RelativeLayout>
<View
android:id="@+id/line1"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/date_time"/>
<RelativeLayout
android:id="@+id/interval"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line1">
<TextView
android:id="@+id/interval_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/interval_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:id="@+id/interval_value"
android:layout_below="@+id/interval_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/minHourDay"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="5dp"
android:textSize="14sp"
android:clickable="true"
android:background="@drawable/color2"/>
</RelativeLayout>
<View
android:id="@+id/line2"
android:layout_below="@+id/interval"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"/>
<RelativeLayout
android:id="@+id/alarm_repeat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line2"
android:clickable="true"
android:background="@drawable/color">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/repeat"
android:id="@+id/alarm_repeat_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"
android:layout_centerVertical="true"/>
<CheckBox
android:id="@+id/alarm_repeat_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/alarm_repeat_label"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
<View
android:id="@+id/line3"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/alarm_repeat"/>
<RelativeLayout
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line3">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/title"
android:id="@+id/title_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/title_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/title_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line4"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/title"/>
<RelativeLayout
android:id="@+id/alerts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line4">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/alerts"
android:id="@+id/alerts_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/alerts_description"
android:id="@+id/alerts_description"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="12sp"
android:layout_below="@+id/alerts_label"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert1"
android:text="@string/no_alert"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/alerts_description"
android:layout_marginBottom="5dp"
android:textSize="14sp"
android:clickable="true"
android:background="@drawable/color2"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert2"
android:text="@string/no_alert"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/alert1"
android:textSize="14sp"
android:clickable="true"
android:background="@drawable/color2"/>
</RelativeLayout>
<View
android:id="@+id/line5"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/alerts"/>
<RelativeLayout
android:id="@+id/snooze"
android:layout_below="@+id/line5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:clickable="true"
android:background="@drawable/color">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/snooze_time"
android:id="@+id/snooze_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/snooze_value"
android:text="@string/default_snooze"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/snooze_label"
android:textSize="12sp"/>
</RelativeLayout>
<View
android:id="@+id/line5_"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/snooze"/>
<RelativeLayout
android:id="@+id/location"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line5_">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/location"
android:id="@+id/location_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/loaction_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/location_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line6"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/location"/>
<RelativeLayout
android:id="@+id/url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line6">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/url"
android:id="@+id/url_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/url_value"
android:padding="3dp"
android:inputType="textUri"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/url_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line7"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/url"/>
<RelativeLayout
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="40dp"
android:layout_below="@+id/line7">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/description"
android:id="@+id/description_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="80dp"
android:inputType="textMultiLine"
android:ems="10"
android:id="@+id/decription_value"
android:padding="3dp"
android:layout_alignLeft="@+id/description_label"
android:layout_alignStart="@+id/description_label"
android:layout_below="@+id/description_label"
android:textSize="14sp"
android:background="#ffdedde8"/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_gravity="center_horizontal"
android:scrollbarStyle="outsideOverlay">
<RelativeLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:layout_marginTop="20dp"
android:layout_marginLeft="15dp"
android:layout_marginStart="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp">
<RelativeLayout
android:id="@+id/date_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="2dp"
android:paddingBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/time_date_label"
android:id="@+id/time_date_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"
android:layout_marginBottom="5dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/date_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/time_value"
android:text="Set Date"
android:textSize="14sp"
android:clickable="true"
android:background="@drawable/color2"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/time_value"
android:layout_marginTop="5dp"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/time_date_label"
android:layout_marginBottom="5dp"
android:text="Set Time"
android:textSize="14sp"
android:clickable="true"
android:background="@drawable/color2"/>
</RelativeLayout>
<View
android:id="@+id/line1"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/date_time"/>
<RelativeLayout
android:id="@+id/interval"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line1">
<TextView
android:id="@+id/interval_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/interval_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:id="@+id/interval_value"
android:layout_below="@+id/interval_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/minHourDay"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="5dp"
android:textSize="14sp"
android:clickable="true"
android:background="@drawable/color2"/>
</RelativeLayout>
<View
android:id="@+id/line2"
android:layout_below="@+id/interval"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"/>
<RelativeLayout
android:id="@+id/alarm_repeat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line2"
android:clickable="true"
android:background="@drawable/color">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/repeat"
android:id="@+id/alarm_repeat_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"
android:layout_centerVertical="true"/>
<CheckBox
android:id="@+id/alarm_repeat_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/alarm_repeat_label"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
<View
android:id="@+id/line3"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/alarm_repeat"/>
<RelativeLayout
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line3">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/title"
android:id="@+id/title_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/title_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/title_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line4"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/title"/>
<RelativeLayout
android:id="@+id/alerts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line4">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/alerts"
android:id="@+id/alerts_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/alerts_description"
android:id="@+id/alerts_description"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="12sp"
android:layout_below="@+id/alerts_label"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert1"
android:text="@string/no_alert"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/alerts_description"
android:layout_marginBottom="5dp"
android:textSize="14sp"
android:clickable="true"
android:background="@drawable/color2"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert2"
android:text="@string/no_alert"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/alert1"
android:textSize="14sp"
android:clickable="true"
android:background="@drawable/color2"/>
</RelativeLayout>
<View
android:id="@+id/line5"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/alerts"/>
<RelativeLayout
android:id="@+id/snooze"
android:layout_below="@+id/line5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:clickable="true"
android:background="@drawable/color">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/snooze_time"
android:id="@+id/snooze_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/snooze_value"
android:text="@string/default_snooze"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/snooze_label"
android:textSize="12sp"/>
</RelativeLayout>
<View
android:id="@+id/line5_"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/snooze"/>
<RelativeLayout
android:id="@+id/location"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line5_">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/location"
android:id="@+id/location_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/loaction_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/location_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line6"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/location"/>
<RelativeLayout
android:id="@+id/url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line6">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/url"
android:id="@+id/url_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/url_value"
android:padding="3dp"
android:inputType="textUri"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/url_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line7"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/url"/>
<RelativeLayout
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="40dp"
android:layout_below="@+id/line7">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/description"
android:id="@+id/description_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="80dp"
android:inputType="textMultiLine"
android:ems="10"
android:id="@+id/decription_value"
android:padding="3dp"
android:layout_alignLeft="@+id/description_label"
android:layout_alignStart="@+id/description_label"
android:layout_below="@+id/description_label"
android:textSize="14sp"
android:background="#ffdedde8"/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
Main activity xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Home">
<com.siliconicpro.admin.ialarm.SlidingTabs.SlidingTabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<com.siliconicpro.admin.ialarm.CustomViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Home">
<com.siliconicpro.admin.ialarm.SlidingTabs.SlidingTabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<com.siliconicpro.admin.ialarm.CustomViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
Alarm screen xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/theme">
<LinearLayout
android:id="@+id/container"
android:layout_marginTop="50dp"
android:layout_marginRight="50dp"
android:layout_marginEnd="50dp"
android:layout_marginLeft="50dp"
android:layout_marginStart="50dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="Title"
android:layout_gravity="center_horizontal"
android:textSize="25sp" />
<TextView
android:id="@+id/location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="Location"
android:textSize="22sp"/>
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="Time"
android:textSize="22sp"/>
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="Date"
android:textSize="22sp"/>
<ImageView
android:id="@+id/stop_alarm"
android:src="@drawable/stop_button"
android:layout_width="125dp"
android:layout_height="125dp"
android:layout_marginTop="20dp"
android:layout_gravity="center_horizontal"
android:clickable="true"/>
</LinearLayout>
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/theme">
<LinearLayout
android:id="@+id/container"
android:layout_marginTop="50dp"
android:layout_marginRight="50dp"
android:layout_marginEnd="50dp"
android:layout_marginLeft="50dp"
android:layout_marginStart="50dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="Title"
android:layout_gravity="center_horizontal"
android:textSize="25sp" />
<TextView
android:id="@+id/location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="Location"
android:textSize="22sp"/>
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="Time"
android:textSize="22sp"/>
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="Date"
android:textSize="22sp"/>
<ImageView
android:id="@+id/stop_alarm"
android:src="@drawable/stop_button"
android:layout_width="125dp"
android:layout_height="125dp"
android:layout_marginTop="20dp"
android:layout_gravity="center_horizontal"
android:clickable="true"/>
</LinearLayout>
</RelativeLayout>
Alarm details xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_gravity="center_horizontal"
android:scrollbarStyle="outsideOverlay">
<RelativeLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:layout_marginTop="15dp"
android:layout_marginLeft="15dp"
android:layout_marginStart="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp">
<RelativeLayout
android:id="@+id/date_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="2dp"
android:paddingBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/time_date_label"
android:id="@+id/time_date_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10:00 pm"
android:layout_below="@+id/time_date_label"
android:id="@+id/time_value"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="12sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Apr 17, 2015"
android:id="@+id/date_value"
android:textSize="12sp"
android:layout_below="@+id/time_value"/>
<android.support.v7.widget.SwitchCompat
android:id="@+id/switch_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
<View
android:id="@+id/line1"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/date_time"/>
<RelativeLayout
android:id="@+id/input_hours"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line1">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/interval_label"
android:id="@+id/input_hours_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/input_hours_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/input_hours_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line2"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/input_hours"/>
<RelativeLayout
android:id="@+id/alarm_repeat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line2"
android:background="@drawable/color">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/repeat"
android:id="@+id/alarm_repeat_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Yes"
android:id="@+id/alarm_repeat_value"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="12sp"
android:layout_below="@+id/alarm_repeat_label"/>
</RelativeLayout>
<View
android:id="@+id/line3"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/alarm_repeat"/>
<RelativeLayout
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line3">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/title"
android:id="@+id/title_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/title_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/title_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line4"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/title"/>
<RelativeLayout
android:id="@+id/alerts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line4">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/alerts"
android:id="@+id/alerts_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert1"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/alerts_label"
android:background="#ffdedde8"
android:layout_marginBottom="5dp"
android:textSize="14sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert2"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/alert1"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line5"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/alerts"/>
<RelativeLayout
android:id="@+id/snooze"
android:layout_below="@+id/line5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:clickable="false"
android:background="@drawable/color">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/snooze_time"
android:id="@+id/snooze_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/snooze_value"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/snooze_label"
android:textSize="12sp"/>
</RelativeLayout>
<View
android:id="@+id/line5_"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/snooze"/>
<RelativeLayout
android:id="@+id/location"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line5_">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/location"
android:id="@+id/location_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/location_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/location_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line6"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/location"/>
<RelativeLayout
android:id="@+id/url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line6">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/url"
android:id="@+id/url_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/url_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/url_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line7"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/url"/>
<RelativeLayout
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="40dp"
android:layout_below="@+id/line7">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/description"
android:id="@+id/description_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="80dp"
android:id="@+id/description_value"
android:padding="3dp"
android:layout_alignLeft="@+id/description_label"
android:layout_alignStart="@+id/description_label"
android:layout_below="@+id/description_label"
android:textSize="14sp"
android:background="#ffdedde8"/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:layout_gravity="center_horizontal"
android:scrollbarStyle="outsideOverlay">
<RelativeLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:layout_marginTop="15dp"
android:layout_marginLeft="15dp"
android:layout_marginStart="15dp"
android:layout_marginRight="15dp"
android:layout_marginEnd="15dp">
<RelativeLayout
android:id="@+id/date_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="2dp"
android:paddingBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/time_date_label"
android:id="@+id/time_date_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10:00 pm"
android:layout_below="@+id/time_date_label"
android:id="@+id/time_value"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="12sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Apr 17, 2015"
android:id="@+id/date_value"
android:textSize="12sp"
android:layout_below="@+id/time_value"/>
<android.support.v7.widget.SwitchCompat
android:id="@+id/switch_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
<View
android:id="@+id/line1"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/date_time"/>
<RelativeLayout
android:id="@+id/input_hours"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line1">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/interval_label"
android:id="@+id/input_hours_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/input_hours_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/input_hours_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line2"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/input_hours"/>
<RelativeLayout
android:id="@+id/alarm_repeat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line2"
android:background="@drawable/color">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/repeat"
android:id="@+id/alarm_repeat_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Yes"
android:id="@+id/alarm_repeat_value"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="12sp"
android:layout_below="@+id/alarm_repeat_label"/>
</RelativeLayout>
<View
android:id="@+id/line3"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/alarm_repeat"/>
<RelativeLayout
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line3">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/title"
android:id="@+id/title_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/title_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/title_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line4"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/title"/>
<RelativeLayout
android:id="@+id/alerts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line4">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/alerts"
android:id="@+id/alerts_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert1"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/alerts_label"
android:background="#ffdedde8"
android:layout_marginBottom="5dp"
android:textSize="14sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert2"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/alert1"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line5"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/alerts"/>
<RelativeLayout
android:id="@+id/snooze"
android:layout_below="@+id/line5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:clickable="false"
android:background="@drawable/color">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/snooze_time"
android:id="@+id/snooze_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/snooze_value"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/snooze_label"
android:textSize="12sp"/>
</RelativeLayout>
<View
android:id="@+id/line5_"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/snooze"/>
<RelativeLayout
android:id="@+id/location"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line5_">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/location"
android:id="@+id/location_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/location_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/location_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line6"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/location"/>
<RelativeLayout
android:id="@+id/url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_below="@+id/line6">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/url"
android:id="@+id/url_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/url_value"
android:padding="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/url_label"
android:background="#ffdedde8"
android:textSize="14sp"/>
</RelativeLayout>
<View
android:id="@+id/line7"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#DADADA"
android:layout_below="@+id/url"/>
<RelativeLayout
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="40dp"
android:layout_below="@+id/line7">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/description"
android:id="@+id/description_label"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="16sp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="80dp"
android:id="@+id/description_value"
android:padding="3dp"
android:layout_alignLeft="@+id/description_label"
android:layout_alignStart="@+id/description_label"
android:layout_below="@+id/description_label"
android:textSize="14sp"
android:background="#ffdedde8"/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
Active alarms xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Home">
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:divider="@null"
android:dividerHeight="0dp"
android:listSelector="@android:color/transparent"/>
<ImageView
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@drawable/no_alarms"
android:id="@android:id/empty"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Home">
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:divider="@null"
android:dividerHeight="0dp"
android:listSelector="@android:color/transparent"/>
<ImageView
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@drawable/no_alarms"
android:id="@android:id/empty"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
Rounded corner layout
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/alarm_panel_not_pressed" android:state_pressed="false"/>
<item android:drawable="@drawable/alarm_panel_pressed" android:state_pressed="true"/>
</selector>
//////////////////////////////////////////
alarm_panel_not_pressed
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="90"
android:startColor="@color/startColor"
android:endColor="@color/endColor"/>
<stroke android:width="0.5dp" android:color="@color/alarmBorder"/>
<corners android:radius="3dp"/>
</shape>
//////////////////////////////////////////
alarm_panel_pressed
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/alarmPressed"/>
<stroke android:width="1dp" android:color="@color/alarmPressed"/>
<corners android:radius="3dp"/>
</shape>
Update alarm class
package com.siliconicpro.admin.ialarm;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.inputmethod.InputMethodManager;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.NumberPicker;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;
import com.cocosw.bottomsheet.BottomSheet;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class UpdateAlarm extends ActionBarActivity implements View.OnClickListener{
private RelativeLayout repeat, snooze_;
private EditText title, location, url, description;
private CheckBox repeatCheck;
private static TextView alert1, alert2, snooze, interval;
private static Boolean snoozeForAll = false;
private TextView time, date;
private String id;
private Calendar time_cal, date_cal;
private DateFormat timeFormat = new SimpleDateFormat("hh:mm aa");
private DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
private int days, hours, min;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.update_alarm);
ActionBar ab = getSupportActionBar();
ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ff156514"));
ab.setBackgroundDrawable(colorDrawable);
repeat = (RelativeLayout)findViewById(R.id.alarm_repeat);
snooze_ = (RelativeLayout)findViewById(R.id.snooze);
interval = (TextView)findViewById(R.id.interval_value);
repeatCheck = (CheckBox)findViewById(R.id.alarm_repeat_check);
time = (TextView)findViewById(R.id.time_value);
date = (TextView)findViewById(R.id.date_value);
title = (EditText)findViewById(R.id.title_value);
alert1 = (TextView)findViewById(R.id.alert1);
alert2 = (TextView)findViewById(R.id.alert2);
snooze = (TextView)findViewById(R.id.snooze_value);
location = (EditText)findViewById(R.id.location_value);
url = (EditText)findViewById(R.id.url_value);
description = (EditText)findViewById(R.id.description_value);
time_cal = Calendar.getInstance();
date_cal = Calendar.getInstance();
// Showing data from Database
showAllData();
// To Check if Soft Keyboard is Opened/Closed
final View activityRootView = findViewById(R.id.scrollView);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
//r will be populated with the coordinates of your view that area still visible.
activityRootView.getWindowVisibleDisplayFrame(r);
int heightDiff = activityRootView.getRootView().getHeight() - (r.bottom - r.top);
// Opened
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
// Disabling Click Events on Screen
//set_Clickable(false);
}
// Closed
else{
// Enabling Click Events on Screen
//set_Clickable(true);
}
}
});
time.setOnClickListener(this);
date.setOnClickListener(this);
interval.setOnClickListener(this);
alert1.setOnClickListener(this);
alert2.setOnClickListener(this);
snooze_.setOnClickListener(this);
repeat.setOnClickListener(this);
}
private void showAllData() {
id = getIntent().getExtras().getString("id");
time.setText(getIntent().getExtras().getString("time"));
date.setText(getIntent().getExtras().getString("date"));
int interval_ = Integer.parseInt(getIntent().getExtras().getString("interval"));
// Getting values of days, hours, minutes
getDaysHoursMin(interval_);
interval.setText(Home.minutesToIntervalLabel(this, interval_));
String s = getIntent().getExtras().getString("repeat"); // getting state of repeat Checkbox
if(s.equals("Yes")){
repeatCheck.setChecked(true);
}
else{
repeatCheck.setChecked(false);
}
title.setText(getIntent().getExtras().getString("title"));
alert1.setText(getIntent().getExtras().getString("alert1"));
alert2.setText(getIntent().getExtras().getString("alert2"));
snooze.setText(getIntent().getExtras().getString("snooze"));
location.setText(getIntent().getExtras().getString("location"));
url.setText(getIntent().getExtras().getString("url"));
description.setText(getIntent().getExtras().getString("description"));
// choosing Screen Title
String screenTitle;
if(title.getText().toString().equals("")){
screenTitle = "No Title";
}
else{
screenTitle = title.getText().toString();
}
// setting Screen Title
getSupportActionBar().setTitle(screenTitle);
}
// Setting Clickable States if Keyboard is Opened/Closed
public void set_Clickable(Boolean clickable){
time.setClickable(clickable);
date.setClickable(clickable);
interval.setClickable(clickable);
repeat.setClickable(clickable);
alert1.setClickable(clickable);
alert2.setClickable(clickable);
snooze_.setClickable(clickable);
interval.setClickable(clickable);
title.setClickable(clickable);
description.setClickable(clickable);
url.setClickable(clickable);
location.setClickable(clickable);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.time_value:
// Launch Time Picker dialog
TimePickerDialog tpd = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
// Display Selected time in textView
time_cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
time_cal.set(Calendar.MINUTE, minute);
time.setText(timeFormat.format(time_cal.getTime()));
}
}, time_cal.get(Calendar.HOUR_OF_DAY), time_cal.get(Calendar.MINUTE), false);
tpd.show();
break;
case R.id.date_value:
// Launch Date Picker Dialog
DatePickerDialog dpd = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// Display Selected date in textView
date_cal.set(Calendar.YEAR, year);
date_cal.set(Calendar.MONTH, monthOfYear);
date_cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
date.setText(dateFormat.format(date_cal.getTime()));
}
}, date_cal.get(Calendar.YEAR), date_cal.get(Calendar.MONTH), date_cal.get(Calendar.DAY_OF_MONTH));
dpd.show();
break;
case R.id.interval_value:
// Showing Dialog for Minutes, Hours, Days
showIntervalPicker();
break;
case R.id.alarm_repeat:
repeatCheck.toggle();
break;
case R.id.alert1:
AlertDialog_ alert1 = new AlertDialog_();
Bundle args1 = new Bundle();
args1.putInt("flag", 1);
alert1.setArguments(args1);
alert1.show(getSupportFragmentManager(), "alert1");
break;
case R.id.alert2:
AlertDialog_ alert2 = new AlertDialog_();
Bundle args2 = new Bundle();
args2.putInt("flag", 2);
alert2.setArguments(args2);
alert2.show(getSupportFragmentManager(), "alert2");
break;
case R.id.snooze:
AutoSilence autoSilenceDialog = new AutoSilence();
autoSilenceDialog.show(getSupportFragmentManager(), "autoSilenceDialog");
break;
}
}
// To Hide Keyboard on Outside Touch
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
View v = getCurrentFocus();
if (v != null) {
Rect outRect = new Rect();
v.getGlobalVisibleRect(outRect);
if (!outRect.contains((int)event.getRawX(), (int)event.getRawY())) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
}
return super.dispatchTouchEvent(event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.update_alarm, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.cancel:
finish();
break;
case R.id.save:
// Updating Alarm in Database
String title_ = title.getText().toString();
String time_ = time.getText().toString();
String date_ = date.getText().toString();
int interval_ = getIntervalMinutes();
int repeat_ = (repeatCheck.isChecked()? 1 : 0);
String alert1_ = alert1.getText().toString();
String alert2_ = alert2.getText().toString();
String snooze_ = snooze.getText().toString();
String location_ = location.getText().toString();
String url_ = url.getText().toString();
String description_ = description.getText().toString();
// Getting Alarm Ring Time
long ringTime = Home.getRingTime(time_, date_, interval_);
// When Ring Time is greater than system time
if(ringTime > System.currentTimeMillis()) {
// Updating alarm in database
AlarmsTable.updateAlarm(id, time_, date_, interval_, repeat_, title_, alert1_, alert2_,
snooze_, location_, url_, description_, Home.getDop());
if(snoozeForAll){
AlarmsTable.setSnoozeTimeForAll(snooze_, Home.getDop());
}
// Turn on if alarm is off
if(AlarmsTable.getAlarmStatus(Integer.parseInt(id), Home.getDop()) == 0) {
AlarmsTable.updateAlarmStatus(Integer.parseInt(id), 1, Home.getDop());
}
// Updating alarm in System
Home.setNewAlarm(this, time_, date_, interval_, repeat_, Long.parseLong(id), alert1_, alert2_);
String ring_time = Home.ringTime(time_, date_, interval_);
Toast.makeText(this, "Alarm set on " + ring_time, Toast.LENGTH_LONG).show();
finish();
}
// When date is parsed but Ring Time is less than system time
else if(ringTime < System.currentTimeMillis() && ringTime != 0){
Toast.makeText(this, "Not updated as alarm time is in the past", Toast.LENGTH_LONG).show();
}
// When date is not parsed
else{
Toast.makeText(this, "Alarm not updated!", Toast.LENGTH_LONG).show();
}
break;
}
return super.onOptionsItemSelected(item);
}
private int getIntervalMinutes() {
int daysInMinutes = days * 24 * 60;
int hoursInMinutes = hours * 60;
return daysInMinutes + hoursInMinutes + min;
}
@Override
protected void onSaveInstanceState(Bundle savedInstanceState){
// Save the state before orientation change
savedInstanceState.putString("time", time.getText().toString());
savedInstanceState.putString("date", date.getText().toString());
savedInstanceState.putString("interval", interval.getText().toString());
savedInstanceState.putString("alert1", alert1.getText().toString());
savedInstanceState.putString("alert2", alert2.getText().toString());
savedInstanceState.putString("snooze", snooze.getText().toString());
super.onSaveInstanceState(savedInstanceState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
// Restore the state after orientation change
time.setText(savedInstanceState.getString("time"));
date.setText(savedInstanceState.getString("date"));
interval.setText(savedInstanceState.getString("interval"));
alert1.setText(savedInstanceState.getString("alert1"));
alert2.setText(savedInstanceState.getString("alert2"));
snooze.setText(savedInstanceState.getString("snooze"));
}
// Dialog for Alert Times
public static class AlertDialog_ extends DialogFragment {
// Array of list values shown in dialog
private String selected;
private int index = -1;
private int flag;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final String alerts[] = Home.getStringArray(getResources().getStringArray(R.array.alerts));
flag = getArguments().getInt("flag");
// determine selected index
for(int i=0; i<alerts.length; i++){
if(flag == 1) {
if (alerts[i].equals(alert1.getText().toString())) {
index = i;
}
}
else{
if (alerts[i].equals(alert2.getText().toString())) {
index = i;
}
}
}
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Alert me before")
.setSingleChoiceItems(alerts, index, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
selected = alerts[which];
if(flag == 1){
alert1.setText(selected);
}
else{
alert2.setText(selected);
}
dialog.cancel();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return builder.create();
}
}
// Select Auto-Silence-Duration Alert Dialog
public static class AutoSilence extends DialogFragment {
// Array of list values shown in dialog
private String[] durations;
private String selected;
private int index;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
durations = getResources().getStringArray(R.array.snooze);
// determine selected index
for(int i=0; i<durations.length; i++){
if(durations[i].equals(snooze.getText().toString())){
index = i;
}
}
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Select Snooze Time")
.setSingleChoiceItems(durations, index, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final DialogInterface snoozeDialog = dialog;
selected = durations[which];
new BottomSheet.Builder(getActivity(), R.style.BottomSheet_StyleDialog)
.sheet(R.menu.bottomsheet)
.listener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case R.id.for_this:
snoozeForAll = false;
snooze.setText(selected);
snoozeDialog.cancel();
break;
case R.id.for_all:
snoozeForAll = true;
snooze.setText(selected);
snoozeDialog.cancel();
break;
case R.id.cancel:
snoozeDialog.cancel();
break;
}
}
}).show();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return builder.create();
}
}
// Days/hours/min Picker Dialog
public void showIntervalPicker(){
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.number_picker, null);
final NumberPicker daysPicker = (NumberPicker) view.findViewById(R.id.picker1);
final NumberPicker hoursPicker = (NumberPicker) view.findViewById(R.id.picker2);
final NumberPicker minPicker = (NumberPicker) view.findViewById(R.id.picker3);
final Context ctx = this;
daysPicker.setMaxValue(31);
daysPicker.setMinValue(0);
daysPicker.setValue(days);
daysPicker.setWrapSelectorWheel(true);
hoursPicker.setMaxValue(23);
hoursPicker.setMinValue(0);
hoursPicker.setValue(hours);
hoursPicker.setWrapSelectorWheel(true);
minPicker.setMaxValue(59);
minPicker.setMinValue(0);
minPicker.setValue(min);
minPicker.setWrapSelectorWheel(true);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(view);
builder.setTitle("Remind After");
builder.setPositiveButton("Set Value", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
days = daysPicker.getValue();
hours = hoursPicker.getValue();
min = minPicker.getValue();
interval.setText(Home.getIntervalLabel(ctx, days, hours, min));
}
});
builder.setNegativeButton("Go Back", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create();
builder.show();
}
public void getDaysHoursMin(int minutes) {
int days = 0, hours = 0;
if (minutes >= 1440) {
days = minutes / 1440;
minutes = minutes % 1440;
if (minutes >= 60) {
hours = minutes / 60;
minutes = minutes % 60;
}
} else if (minutes < 1440) {
if (minutes >= 60) {
hours = minutes / 60;
minutes = minutes % 60;
}
}
this.days = days;
this.hours = hours;
this.min = minutes;
}
}
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.inputmethod.InputMethodManager;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.NumberPicker;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;
import com.cocosw.bottomsheet.BottomSheet;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class UpdateAlarm extends ActionBarActivity implements View.OnClickListener{
private RelativeLayout repeat, snooze_;
private EditText title, location, url, description;
private CheckBox repeatCheck;
private static TextView alert1, alert2, snooze, interval;
private static Boolean snoozeForAll = false;
private TextView time, date;
private String id;
private Calendar time_cal, date_cal;
private DateFormat timeFormat = new SimpleDateFormat("hh:mm aa");
private DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
private int days, hours, min;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.update_alarm);
ActionBar ab = getSupportActionBar();
ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ff156514"));
ab.setBackgroundDrawable(colorDrawable);
repeat = (RelativeLayout)findViewById(R.id.alarm_repeat);
snooze_ = (RelativeLayout)findViewById(R.id.snooze);
interval = (TextView)findViewById(R.id.interval_value);
repeatCheck = (CheckBox)findViewById(R.id.alarm_repeat_check);
time = (TextView)findViewById(R.id.time_value);
date = (TextView)findViewById(R.id.date_value);
title = (EditText)findViewById(R.id.title_value);
alert1 = (TextView)findViewById(R.id.alert1);
alert2 = (TextView)findViewById(R.id.alert2);
snooze = (TextView)findViewById(R.id.snooze_value);
location = (EditText)findViewById(R.id.location_value);
url = (EditText)findViewById(R.id.url_value);
description = (EditText)findViewById(R.id.description_value);
time_cal = Calendar.getInstance();
date_cal = Calendar.getInstance();
// Showing data from Database
showAllData();
// To Check if Soft Keyboard is Opened/Closed
final View activityRootView = findViewById(R.id.scrollView);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
//r will be populated with the coordinates of your view that area still visible.
activityRootView.getWindowVisibleDisplayFrame(r);
int heightDiff = activityRootView.getRootView().getHeight() - (r.bottom - r.top);
// Opened
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
// Disabling Click Events on Screen
//set_Clickable(false);
}
// Closed
else{
// Enabling Click Events on Screen
//set_Clickable(true);
}
}
});
time.setOnClickListener(this);
date.setOnClickListener(this);
interval.setOnClickListener(this);
alert1.setOnClickListener(this);
alert2.setOnClickListener(this);
snooze_.setOnClickListener(this);
repeat.setOnClickListener(this);
}
private void showAllData() {
id = getIntent().getExtras().getString("id");
time.setText(getIntent().getExtras().getString("time"));
date.setText(getIntent().getExtras().getString("date"));
int interval_ = Integer.parseInt(getIntent().getExtras().getString("interval"));
// Getting values of days, hours, minutes
getDaysHoursMin(interval_);
interval.setText(Home.minutesToIntervalLabel(this, interval_));
String s = getIntent().getExtras().getString("repeat"); // getting state of repeat Checkbox
if(s.equals("Yes")){
repeatCheck.setChecked(true);
}
else{
repeatCheck.setChecked(false);
}
title.setText(getIntent().getExtras().getString("title"));
alert1.setText(getIntent().getExtras().getString("alert1"));
alert2.setText(getIntent().getExtras().getString("alert2"));
snooze.setText(getIntent().getExtras().getString("snooze"));
location.setText(getIntent().getExtras().getString("location"));
url.setText(getIntent().getExtras().getString("url"));
description.setText(getIntent().getExtras().getString("description"));
// choosing Screen Title
String screenTitle;
if(title.getText().toString().equals("")){
screenTitle = "No Title";
}
else{
screenTitle = title.getText().toString();
}
// setting Screen Title
getSupportActionBar().setTitle(screenTitle);
}
// Setting Clickable States if Keyboard is Opened/Closed
public void set_Clickable(Boolean clickable){
time.setClickable(clickable);
date.setClickable(clickable);
interval.setClickable(clickable);
repeat.setClickable(clickable);
alert1.setClickable(clickable);
alert2.setClickable(clickable);
snooze_.setClickable(clickable);
interval.setClickable(clickable);
title.setClickable(clickable);
description.setClickable(clickable);
url.setClickable(clickable);
location.setClickable(clickable);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.time_value:
// Launch Time Picker dialog
TimePickerDialog tpd = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
// Display Selected time in textView
time_cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
time_cal.set(Calendar.MINUTE, minute);
time.setText(timeFormat.format(time_cal.getTime()));
}
}, time_cal.get(Calendar.HOUR_OF_DAY), time_cal.get(Calendar.MINUTE), false);
tpd.show();
break;
case R.id.date_value:
// Launch Date Picker Dialog
DatePickerDialog dpd = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// Display Selected date in textView
date_cal.set(Calendar.YEAR, year);
date_cal.set(Calendar.MONTH, monthOfYear);
date_cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
date.setText(dateFormat.format(date_cal.getTime()));
}
}, date_cal.get(Calendar.YEAR), date_cal.get(Calendar.MONTH), date_cal.get(Calendar.DAY_OF_MONTH));
dpd.show();
break;
case R.id.interval_value:
// Showing Dialog for Minutes, Hours, Days
showIntervalPicker();
break;
case R.id.alarm_repeat:
repeatCheck.toggle();
break;
case R.id.alert1:
AlertDialog_ alert1 = new AlertDialog_();
Bundle args1 = new Bundle();
args1.putInt("flag", 1);
alert1.setArguments(args1);
alert1.show(getSupportFragmentManager(), "alert1");
break;
case R.id.alert2:
AlertDialog_ alert2 = new AlertDialog_();
Bundle args2 = new Bundle();
args2.putInt("flag", 2);
alert2.setArguments(args2);
alert2.show(getSupportFragmentManager(), "alert2");
break;
case R.id.snooze:
AutoSilence autoSilenceDialog = new AutoSilence();
autoSilenceDialog.show(getSupportFragmentManager(), "autoSilenceDialog");
break;
}
}
// To Hide Keyboard on Outside Touch
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
View v = getCurrentFocus();
if (v != null) {
Rect outRect = new Rect();
v.getGlobalVisibleRect(outRect);
if (!outRect.contains((int)event.getRawX(), (int)event.getRawY())) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
}
return super.dispatchTouchEvent(event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.update_alarm, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.cancel:
finish();
break;
case R.id.save:
// Updating Alarm in Database
String title_ = title.getText().toString();
String time_ = time.getText().toString();
String date_ = date.getText().toString();
int interval_ = getIntervalMinutes();
int repeat_ = (repeatCheck.isChecked()? 1 : 0);
String alert1_ = alert1.getText().toString();
String alert2_ = alert2.getText().toString();
String snooze_ = snooze.getText().toString();
String location_ = location.getText().toString();
String url_ = url.getText().toString();
String description_ = description.getText().toString();
// Getting Alarm Ring Time
long ringTime = Home.getRingTime(time_, date_, interval_);
// When Ring Time is greater than system time
if(ringTime > System.currentTimeMillis()) {
// Updating alarm in database
AlarmsTable.updateAlarm(id, time_, date_, interval_, repeat_, title_, alert1_, alert2_,
snooze_, location_, url_, description_, Home.getDop());
if(snoozeForAll){
AlarmsTable.setSnoozeTimeForAll(snooze_, Home.getDop());
}
// Turn on if alarm is off
if(AlarmsTable.getAlarmStatus(Integer.parseInt(id), Home.getDop()) == 0) {
AlarmsTable.updateAlarmStatus(Integer.parseInt(id), 1, Home.getDop());
}
// Updating alarm in System
Home.setNewAlarm(this, time_, date_, interval_, repeat_, Long.parseLong(id), alert1_, alert2_);
String ring_time = Home.ringTime(time_, date_, interval_);
Toast.makeText(this, "Alarm set on " + ring_time, Toast.LENGTH_LONG).show();
finish();
}
// When date is parsed but Ring Time is less than system time
else if(ringTime < System.currentTimeMillis() && ringTime != 0){
Toast.makeText(this, "Not updated as alarm time is in the past", Toast.LENGTH_LONG).show();
}
// When date is not parsed
else{
Toast.makeText(this, "Alarm not updated!", Toast.LENGTH_LONG).show();
}
break;
}
return super.onOptionsItemSelected(item);
}
private int getIntervalMinutes() {
int daysInMinutes = days * 24 * 60;
int hoursInMinutes = hours * 60;
return daysInMinutes + hoursInMinutes + min;
}
@Override
protected void onSaveInstanceState(Bundle savedInstanceState){
// Save the state before orientation change
savedInstanceState.putString("time", time.getText().toString());
savedInstanceState.putString("date", date.getText().toString());
savedInstanceState.putString("interval", interval.getText().toString());
savedInstanceState.putString("alert1", alert1.getText().toString());
savedInstanceState.putString("alert2", alert2.getText().toString());
savedInstanceState.putString("snooze", snooze.getText().toString());
super.onSaveInstanceState(savedInstanceState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
// Restore the state after orientation change
time.setText(savedInstanceState.getString("time"));
date.setText(savedInstanceState.getString("date"));
interval.setText(savedInstanceState.getString("interval"));
alert1.setText(savedInstanceState.getString("alert1"));
alert2.setText(savedInstanceState.getString("alert2"));
snooze.setText(savedInstanceState.getString("snooze"));
}
// Dialog for Alert Times
public static class AlertDialog_ extends DialogFragment {
// Array of list values shown in dialog
private String selected;
private int index = -1;
private int flag;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final String alerts[] = Home.getStringArray(getResources().getStringArray(R.array.alerts));
flag = getArguments().getInt("flag");
// determine selected index
for(int i=0; i<alerts.length; i++){
if(flag == 1) {
if (alerts[i].equals(alert1.getText().toString())) {
index = i;
}
}
else{
if (alerts[i].equals(alert2.getText().toString())) {
index = i;
}
}
}
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Alert me before")
.setSingleChoiceItems(alerts, index, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
selected = alerts[which];
if(flag == 1){
alert1.setText(selected);
}
else{
alert2.setText(selected);
}
dialog.cancel();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return builder.create();
}
}
// Select Auto-Silence-Duration Alert Dialog
public static class AutoSilence extends DialogFragment {
// Array of list values shown in dialog
private String[] durations;
private String selected;
private int index;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
durations = getResources().getStringArray(R.array.snooze);
// determine selected index
for(int i=0; i<durations.length; i++){
if(durations[i].equals(snooze.getText().toString())){
index = i;
}
}
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Select Snooze Time")
.setSingleChoiceItems(durations, index, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final DialogInterface snoozeDialog = dialog;
selected = durations[which];
new BottomSheet.Builder(getActivity(), R.style.BottomSheet_StyleDialog)
.sheet(R.menu.bottomsheet)
.listener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case R.id.for_this:
snoozeForAll = false;
snooze.setText(selected);
snoozeDialog.cancel();
break;
case R.id.for_all:
snoozeForAll = true;
snooze.setText(selected);
snoozeDialog.cancel();
break;
case R.id.cancel:
snoozeDialog.cancel();
break;
}
}
}).show();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return builder.create();
}
}
// Days/hours/min Picker Dialog
public void showIntervalPicker(){
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.number_picker, null);
final NumberPicker daysPicker = (NumberPicker) view.findViewById(R.id.picker1);
final NumberPicker hoursPicker = (NumberPicker) view.findViewById(R.id.picker2);
final NumberPicker minPicker = (NumberPicker) view.findViewById(R.id.picker3);
final Context ctx = this;
daysPicker.setMaxValue(31);
daysPicker.setMinValue(0);
daysPicker.setValue(days);
daysPicker.setWrapSelectorWheel(true);
hoursPicker.setMaxValue(23);
hoursPicker.setMinValue(0);
hoursPicker.setValue(hours);
hoursPicker.setWrapSelectorWheel(true);
minPicker.setMaxValue(59);
minPicker.setMinValue(0);
minPicker.setValue(min);
minPicker.setWrapSelectorWheel(true);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(view);
builder.setTitle("Remind After");
builder.setPositiveButton("Set Value", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
days = daysPicker.getValue();
hours = hoursPicker.getValue();
min = minPicker.getValue();
interval.setText(Home.getIntervalLabel(ctx, days, hours, min));
}
});
builder.setNegativeButton("Go Back", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create();
builder.show();
}
public void getDaysHoursMin(int minutes) {
int days = 0, hours = 0;
if (minutes >= 1440) {
days = minutes / 1440;
minutes = minutes % 1440;
if (minutes >= 60) {
hours = minutes / 60;
minutes = minutes % 60;
}
} else if (minutes < 1440) {
if (minutes >= 60) {
hours = minutes / 60;
minutes = minutes % 60;
}
}
this.days = days;
this.hours = hours;
this.min = minutes;
}
}
Subscribe to:
Comments (Atom)