Add attendance (#58)
This commit is contained in:

committed by
Rafał Borcz

parent
828e76821b
commit
3799fa910b
152
app/src/main/res/layout/attendance_dialog.xml
Normal file
152
app/src/main/res/layout/attendance_dialog.xml
Normal file
@ -0,0 +1,152 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="300dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/attendance_dialog_relative_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingRight="20dp"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingTop="10dp"
|
||||
tools:ignore="UselessParent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_dialog_details"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_gravity="start"
|
||||
android:gravity="center_vertical"
|
||||
android:maxLines="5"
|
||||
android:minHeight="60dp"
|
||||
android:minLines="2"
|
||||
android:paddingTop="10dp"
|
||||
android:text="@string/generic_dialog_details"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="20sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_dialog_subject"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/attendance_dialog_details"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/attendance_dialog_subject"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="17sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_dialog_subject_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/attendance_dialog_subject"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/generic_app_no_data"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_dialog_description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/attendance_dialog_subject_value"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/attendance_dialog_description"
|
||||
android:textSize="17sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_dialog_description_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/attendance_dialog_description"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/generic_app_no_data"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_dialog_date"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/attendance_dialog_description_value"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/attendance_dialog_date"
|
||||
android:textSize="17sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_dialog_date_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/attendance_dialog_date"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/generic_app_no_data"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_dialog_number"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/attendance_dialog_date_value"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/attendance_dialog_number"
|
||||
android:textSize="17sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_dialog_number_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/attendance_dialog_number"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/generic_app_no_data"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/attendance_dialog_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignTop="@+id/attendance_dialog_number_value"
|
||||
android:layout_marginTop="25dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:focusable="true"
|
||||
android:text="@string/generic_dialog_close"
|
||||
android:textAllCaps="true"
|
||||
android:textSize="15sp" />
|
||||
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
86
app/src/main/res/layout/attendance_header.xml
Normal file
86
app/src/main/res/layout/attendance_header.xml
Normal file
@ -0,0 +1,86 @@
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/ic_border"
|
||||
android:foreground="?attr/selectableItemBackgroundBorderless">
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_header_day"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:layout_marginRight="15dp"
|
||||
android:layout_toLeftOf="@id/attendance_header_alert_image"
|
||||
android:layout_toStartOf="@+id/attendance_header_alert_image"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/app_name"
|
||||
android:textSize="19sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_header_date"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/attendance_header_day"
|
||||
android:layout_marginTop="5dp"
|
||||
android:maxLines="1"
|
||||
android:text="@string/app_name"
|
||||
android:textColor="@color/secondary_text"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_header_description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toEndOf="@+id/attendance_header_date"
|
||||
android:layout_toRightOf="@+id/attendance_header_date"
|
||||
android:layout_below="@+id/attendance_header_day"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:maxLines="1"
|
||||
android:text="@string/app_name"
|
||||
android:textColor="@color/secondary_text"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_header_free_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="180dp"
|
||||
android:layout_marginStart="180dp"
|
||||
android:gravity="end"
|
||||
android:maxLines="2"
|
||||
android:text="@string/attendance_no_entries"
|
||||
android:textColor="@color/secondary_text"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/attendance_header_alert_image"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginTop="10dp"
|
||||
app:srcCompat="@drawable/ic_exclamation_24dp"
|
||||
tools:ignore="contentDescription" />
|
||||
|
||||
</RelativeLayout>
|
||||
</FrameLayout>
|
78
app/src/main/res/layout/attendance_subitem.xml
Normal file
78
app/src/main/res/layout/attendance_subitem.xml
Normal file
@ -0,0 +1,78 @@
|
||||
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tool="http://schemas.android.com/tools"
|
||||
android:id="@+id/attendance_subItem_cardView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="7dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:foreground="?attr/selectableItemBackgroundBorderless"
|
||||
card_view:cardElevation="0dp">
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="7dp"
|
||||
android:layout_marginEnd="7dp"
|
||||
android:layout_marginLeft="7dp"
|
||||
android:layout_marginRight="7dp"
|
||||
android:layout_marginStart="7dp"
|
||||
android:layout_marginTop="7dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_subItem_number"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:gravity="center"
|
||||
android:maxLength="2"
|
||||
android:text="0"
|
||||
android:textSize="32sp"
|
||||
tool:ignore="all"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_subItem_lesson"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="40dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_toEndOf="@+id/attendance_subItem_number"
|
||||
android:layout_toRightOf="@+id/attendance_subItem_number"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/app_name"
|
||||
android:textSize="17sp"
|
||||
tool:ignore="all"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_subItem_description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignBottom="@+id/attendance_subItem_number"
|
||||
android:layout_alignLeft="@id/attendance_subItem_lesson"
|
||||
android:layout_alignStart="@id/attendance_subItem_lesson"
|
||||
android:maxLines="1"
|
||||
android:text="@string/grades_text"
|
||||
android:textColor="@color/secondary_text"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/attendance_subItem_alert_image"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginTop="10dp"
|
||||
app:srcCompat="@drawable/ic_exclamation_24dp"
|
||||
tool:ignore="contentDescription"/>
|
||||
|
||||
</RelativeLayout>
|
||||
</android.support.v7.widget.CardView>
|
@ -1,36 +1,25 @@
|
||||
<android.support.design.widget.CoordinatorLayout 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"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:context="io.github.wulkanowy.ui.main.attendance.AttendanceFragment">
|
||||
android:layout_alignParentBottom="true"
|
||||
android:id="@+id/attendance_fragment_container">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/wrench_under_construction"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/textView3"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="45dp"
|
||||
android:contentDescription="@string/activity_dashboard_text"
|
||||
android:minHeight="100dp"
|
||||
android:minWidth="100dp"
|
||||
app:srcCompat="@drawable/ic_wrench_24dp" />
|
||||
|
||||
<TextView
|
||||
<android.support.design.widget.TabLayout
|
||||
android:id="@+id/attendance_fragment_tab_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="47dp"
|
||||
android:text="@string/activity_under_construction"
|
||||
android:textSize="17sp"
|
||||
android:gravity="center"
|
||||
android:textAlignment="center"
|
||||
android:id="@+id/textView3" />
|
||||
</RelativeLayout>
|
||||
app:tabMinWidth="125dp"
|
||||
app:tabMode="scrollable"/>
|
||||
|
||||
<android.support.v4.view.ViewPager
|
||||
android:id="@+id/attendance_fragment_viewpager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@id/attendance_fragment_tab_layout" />
|
||||
</RelativeLayout>
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
|
63
app/src/main/res/layout/fragment_attendance_tab.xml
Normal file
63
app/src/main/res/layout/fragment_attendance_tab.xml
Normal file
@ -0,0 +1,63 @@
|
||||
<android.support.design.widget.CoordinatorLayout 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:id="@+id/attendance_tab_fragment_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="io.github.wulkanowy.ui.main.grades.GradesFragment">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/attendance_tab_fragment_progress_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:visibility="gone">
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:indeterminate="true" />
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/attendance_tab_fragment_no_item_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/attendance_tab_fragment_no_item_image"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/attendance_tab_fragment_no_item_text"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="40dp"
|
||||
android:minHeight="100dp"
|
||||
android:minWidth="100dp"
|
||||
android:tint="@android:color/black"
|
||||
app:srcCompat="@drawable/ic_menu_attendance_24dp"
|
||||
tools:ignore="contentDescription" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/attendance_tab_fragment_no_item_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="46dp"
|
||||
android:text="@string/attendance_no_entries"
|
||||
android:textAlignment="center"
|
||||
android:textSize="20sp" />
|
||||
</RelativeLayout>
|
||||
|
||||
<android.support.v4.widget.SwipeRefreshLayout
|
||||
android:id="@+id/attendance_tab_fragment_swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/attendance_tab_fragment_recycler"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</android.support.v4.widget.SwipeRefreshLayout>
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
@ -22,4 +22,4 @@
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@id/timetable_fragment_tab_layout" />
|
||||
</RelativeLayout>
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
|
@ -96,4 +96,22 @@
|
||||
<item quantity="many">Dostałeś %1$d ocen</item>
|
||||
<item quantity="other">Dostałeś %1$d ocen</item>
|
||||
</plurals>
|
||||
|
||||
<string name="attendance_absence_for_school_reasons">Nieobecny z przyczyn szkolnych</string>
|
||||
<string name="attendance_absence_excused">Nieobecność usprawiedliwiona</string>
|
||||
<string name="attendance_absence_unexcused">Nieobecność nieusprawiedliwiona</string>
|
||||
<string name="attendance_exemption">Zwolniony</string>
|
||||
<string name="attendance_excused_lateness">Spóźnienie usprawiedliowione</string>
|
||||
<string name="attendance_unexcused_lateness">Spóźnienie nieusprawiedliwione</string>
|
||||
<string name="attendance_present">Obecny</string>
|
||||
<string name="attendance_dialog_description">Opis</string>
|
||||
<string name="attendance_dialog_date">Data</string>
|
||||
<string name="attendance_dialog_subject">Przedmiot</string>
|
||||
<string name="attendance_dialog_number">Numer lekcji</string>
|
||||
<string name="attendance_no_entries">Brak wpisów</string>
|
||||
<plurals name="numberOfAbsences">
|
||||
<item quantity="one">%1$d nieobecność</item>
|
||||
<item quantity="few">%1$d nieobecności</item>
|
||||
<item quantity="many">%1$d nieobecności</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
|
@ -91,4 +91,23 @@
|
||||
<item quantity="one">You received %1$d grade</item>
|
||||
<item quantity="other">You received %1$d grades</item>
|
||||
</plurals>
|
||||
|
||||
<string name="attendance_absence_for_school_reasons">Absence for school reasons</string>
|
||||
<string name="attendance_absence_excused">Absence excused</string>
|
||||
<string name="attendance_absence_unexcused">Unexcused absence</string>
|
||||
<string name="attendance_exemption">Exemption</string>
|
||||
<string name="attendance_excused_lateness">Excused lateness</string>
|
||||
<string name="attendance_unexcused_lateness">Unexcused lateness</string>
|
||||
<string name="attendance_present">Present</string>
|
||||
<string name="attendance_dialog_description">Description</string>
|
||||
<string name="attendance_dialog_date">Date</string>
|
||||
<string name="attendance_dialog_subject">Subject</string>
|
||||
<string name="attendance_dialog_number">Lesson number</string>
|
||||
<string name="attendance_no_entries">No entries</string>
|
||||
<plurals name="numberOfAbsences">
|
||||
<item quantity="one">%1$d absence</item>
|
||||
<item quantity="few">%1$d absences</item>
|
||||
<item quantity="many">%1$d absences</item>
|
||||
<item quantity="other">%1$d absences</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
|
Reference in New Issue
Block a user