Add timetable to Wulkanowy (#38)
* Add timetable entities, synchronization and UI * Add better code hub config * Update SDK tools * Change activity to ui * [API] fix lesson room, when division into groups * [API] Rewrite lesson parser * [API] Add support for new lesson type * [API] Fix for substitutions in the timetable
This commit is contained in:

committed by
Mikołaj Pich

parent
647ed08460
commit
c111e43f18
8
app/src/main/res/drawable/ic_generic_exclamation.xml
Normal file
8
app/src/main/res/drawable/ic_generic_exclamation.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<!-- drawable/exclamation.xml -->
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:height="24dp"
|
||||
android:width="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path android:fillColor="@color/colorPrimary" android:pathData="M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z" />
|
||||
</vector>
|
9
app/src/main/res/drawable/ic_timetable_swap.xml
Normal file
9
app/src/main/res/drawable/ic_timetable_swap.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="30dp"
|
||||
android:height="30dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:pathData="M6.99,11L3,15l3.99,4v-3H14v-2H6.99v-3zM21,9l-3.99,-4v3H10v2h7.01v3L21,9z"
|
||||
android:fillColor="@color/colorPrimary"/>
|
||||
</vector>
|
@ -7,7 +7,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:weightSum="1"
|
||||
tools:context="io.github.wulkanowy.activity.dashboard.DashboardActivity">
|
||||
tools:context="io.github.wulkanowy.ui.main.DashboardActivity">
|
||||
|
||||
<android.support.design.widget.CoordinatorLayout
|
||||
android:id="@+id/fragment_container"
|
||||
|
@ -7,7 +7,7 @@
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
android:id="@+id/coordinatorLayout"
|
||||
tools:context="io.github.wulkanowy.activity.login.LoginActivity"
|
||||
tools:context="io.github.wulkanowy.ui.login.LoginActivity"
|
||||
>
|
||||
|
||||
<!-- Login progress -->
|
||||
@ -77,7 +77,6 @@
|
||||
android:hint="@string/prompt_email"
|
||||
android:inputType="textEmailAddress"
|
||||
android:maxLines="1"
|
||||
android:importantForAutofill="noExcludeDescendants"
|
||||
/>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
@ -98,7 +97,6 @@
|
||||
android:imeActionLabel="@string/action_sign_in"
|
||||
android:imeOptions="actionDone"
|
||||
android:fontFamily="sans-serif"
|
||||
android:importantForAutofill="noExcludeDescendants"
|
||||
/>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
@ -3,7 +3,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:context="io.github.wulkanowy.activity.dashboard.attendance.AttendanceFragment">
|
||||
tools:context="io.github.wulkanowy.ui.main.attendance.AttendanceFragment">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
@ -25,9 +25,10 @@
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="46dp"
|
||||
android:layout_marginTop="47dp"
|
||||
android:text="@string/activity_under_construction"
|
||||
android:textSize="17sp"
|
||||
android:gravity="center"
|
||||
android:textAlignment="center"
|
||||
android:id="@+id/textView3" />
|
||||
</RelativeLayout>
|
||||
|
@ -3,7 +3,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="io.github.wulkanowy.activity.dashboard.board.BoardFragment">
|
||||
tools:context="io.github.wulkanowy.ui.main.board.BoardFragment">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
@ -25,9 +25,10 @@
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="46dp"
|
||||
android:layout_marginTop="47dp"
|
||||
android:text="@string/activity_under_construction"
|
||||
android:textSize="17sp"
|
||||
android:gravity="center"
|
||||
android:textAlignment="center"
|
||||
android:id="@+id/textView3" />
|
||||
</RelativeLayout>
|
||||
|
@ -4,7 +4,7 @@
|
||||
android:id="@+id/coordinator_grade"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="io.github.wulkanowy.activity.dashboard.grades.GradesFragment">
|
||||
tools:context="io.github.wulkanowy.ui.main.grades.GradesFragment">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -1,35 +0,0 @@
|
||||
<android.support.design.widget.CoordinatorLayout 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"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:context="io.github.wulkanowy.activity.dashboard.lessonplan.LessonPlanFragment">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center">
|
||||
|
||||
<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_construction" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="46dp"
|
||||
android:text="@string/activity_under_construction"
|
||||
android:textSize="17sp"
|
||||
android:textAlignment="center"
|
||||
android:id="@+id/textView3" />
|
||||
</RelativeLayout>
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
36
app/src/main/res/layout/fragment_timetable.xml
Normal file
36
app/src/main/res/layout/fragment_timetable.xml
Normal file
@ -0,0 +1,36 @@
|
||||
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/timetable_tab_progress_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center">
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:indeterminate="true" />
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.design.widget.TabLayout
|
||||
android:id="@+id/timetable_fragment_tab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:tabMinWidth="125dp"
|
||||
app:tabMode="scrollable"/>
|
||||
|
||||
<android.support.v4.view.ViewPager
|
||||
android:id="@+id/timetable_fragment_viewpager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@id/timetable_fragment_tab" />
|
||||
</RelativeLayout>
|
||||
</android.support.design.widget.CoordinatorLayout>
|
32
app/src/main/res/layout/fragment_timetable_tab.xml
Normal file
32
app/src/main/res/layout/fragment_timetable_tab.xml
Normal file
@ -0,0 +1,32 @@
|
||||
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/coordinator_grade"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="io.github.wulkanowy.ui.main.grades.GradesFragment">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/timetable_progress_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center">
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:indeterminate="true" />
|
||||
</RelativeLayout>
|
||||
|
||||
<android.support.v4.widget.SwipeRefreshLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/timetable_refresh_layout">
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/timetable_recycler"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</android.support.v4.widget.SwipeRefreshLayout>
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
@ -1,6 +1,7 @@
|
||||
<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/grade_cardview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@ -45,7 +46,8 @@
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/app_name"
|
||||
android:textSize="15sp" />
|
||||
android:textSize="15sp"
|
||||
tool:ignore="all"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/grade_date_text"
|
||||
@ -64,7 +66,8 @@
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginTop="10dp"
|
||||
app:srcCompat="@drawable/subject_alert_circle" />
|
||||
app:srcCompat="@drawable/subject_alert_circle"
|
||||
tool:ignore="contentDescription"/>
|
||||
|
||||
</RelativeLayout>
|
||||
</android.support.v7.widget.CardView>
|
@ -8,7 +8,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="450dp"
|
||||
android:minWidth="325dp"
|
||||
android:minWidth="300dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
||||
@ -176,7 +176,7 @@
|
||||
android:layout_alignParentRight="true"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:focusable="true"
|
||||
android:text="@string/dialog_close"
|
||||
android:text="@string/generic_dialog_close"
|
||||
android:textAllCaps="true"
|
||||
android:textSize="15sp"
|
||||
/>
|
||||
|
@ -2,6 +2,7 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:tool="http://schemas.android.com/tools"
|
||||
android:background="@drawable/subject_border_1px"
|
||||
android:foreground="?attr/selectableItemBackgroundBorderless"
|
||||
android:padding="15dp">
|
||||
@ -48,5 +49,6 @@
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginTop="10dp"
|
||||
app:srcCompat="@drawable/subject_alert_circle" />
|
||||
app:srcCompat="@drawable/subject_alert_circle"
|
||||
tool:ignore="contentDescription"/>
|
||||
</RelativeLayout>
|
200
app/src/main/res/layout/timetable_dialog.xml
Normal file
200
app/src/main/res/layout/timetable_dialog.xml
Normal file
@ -0,0 +1,200 @@
|
||||
<?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/timetable_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/timetable_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/timetable_dialog_description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_dialog_details"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/timetable_dialog_description"
|
||||
android:textColor="@color/colorPrimaryDark"
|
||||
android:textSize="17sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_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/timetable_dialog_description"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/generic_app_no_data"
|
||||
android:textColor="@color/colorPrimaryDark"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_dialog_lesson"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_dialog_description_value"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/timetable_dialog_lesson"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="17sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_dialog_lesson_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_dialog_lesson"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/generic_app_no_data"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_dialog_teacher"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_dialog_lesson_value"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/generic_dialog_teacher"
|
||||
android:textSize="17sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_dialog_teacher_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_dialog_teacher"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/generic_app_no_data"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_dialog_group"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_dialog_teacher_value"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/timetable_dialog_group"
|
||||
android:textSize="17sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_dialog_group_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_dialog_group"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/generic_app_no_data"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_dialog_room"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_dialog_group_value"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/timetable_dialog_room"
|
||||
android:textSize="17sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_dialog_room_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@id/timetable_dialog_room"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/generic_app_no_data"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_dialog_time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_dialog_room_value"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/timetable_dialog_time"
|
||||
android:textSize="17sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_dialog_time_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_dialog_time"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/generic_app_no_data"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/timetable_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/timetable_dialog_time_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>
|
48
app/src/main/res/layout/timetable_header.xml
Normal file
48
app/src/main/res/layout/timetable_header.xml
Normal file
@ -0,0 +1,48 @@
|
||||
<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="wrap_content"
|
||||
android:background="@drawable/subject_border_1px"
|
||||
android:foreground="?attr/selectableItemBackgroundBorderless"
|
||||
android:padding="15dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_header_dayName_text"
|
||||
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/timetable_header_alert_image"
|
||||
android:layout_toStartOf="@+id/timetable_header_alert_image"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/app_name"
|
||||
android:textSize="19sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_header_date_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@+id/timetable_header_dayName_text"
|
||||
android:layout_marginTop="5dp"
|
||||
android:maxLines="1"
|
||||
android:text="@string/app_name"
|
||||
android:textColor="#4C4C4C"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/timetable_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_generic_exclamation"
|
||||
tools:ignore="contentDescription" />
|
||||
|
||||
</RelativeLayout>
|
95
app/src/main/res/layout/timetable_subitem.xml
Normal file
95
app/src/main/res/layout/timetable_subitem.xml
Normal file
@ -0,0 +1,95 @@
|
||||
<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/timetable_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/timetable_subItem_number_of_lesson"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:gravity="center"
|
||||
android:maxLength="1"
|
||||
android:text="0"
|
||||
android:textSize="32sp"
|
||||
tool:ignore="all"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_subItem_lesson_text"
|
||||
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/timetable_subItem_number_of_lesson"
|
||||
android:layout_toRightOf="@+id/timetable_subItem_number_of_lesson"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/app_name"
|
||||
android:textSize="17sp"
|
||||
tool:ignore="all"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_subItem_time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignBottom="@+id/timetable_subItem_number_of_lesson"
|
||||
android:layout_alignLeft="@id/timetable_subItem_lesson_text"
|
||||
android:layout_alignStart="@id/timetable_subItem_lesson_text"
|
||||
android:maxLines="1"
|
||||
android:text="@string/grades_text"
|
||||
android:textColor="#4C4C4C"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/timetable_subItem_room"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignBottom="@+id/timetable_subItem_number_of_lesson"
|
||||
android:layout_marginEnd="40dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="40dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_toEndOf="@+id/timetable_subItem_time"
|
||||
android:layout_toRightOf="@+id/timetable_subItem_time"
|
||||
android:maxLines="1"
|
||||
android:text="@string/grades_text"
|
||||
android:textColor="#4C4C4C"
|
||||
android:textSize="12sp"
|
||||
tool:ignore="all"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/timetable_subItem_change_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_timetable_swap"
|
||||
tool:ignore="contentDescription"/>
|
||||
|
||||
</RelativeLayout>
|
||||
</android.support.v7.widget.CardView>
|
@ -51,13 +51,28 @@
|
||||
<string name="dialog_teacher_text">Nauczyciel</string>
|
||||
<string name="dialog_date_text">Data</string>
|
||||
<string name="dialog_color_text">Kolor</string>
|
||||
<string name="dialog_close">Zamknij</string>
|
||||
|
||||
<string name="timetable_dialog_lesson">Lekcja</string>
|
||||
<string name="timetable_dialog_room">Sala</string>
|
||||
<string name="timetable_dialog_group">Grupa</string>
|
||||
<string name="timetable_dialog_time">Godziny</string>
|
||||
<string name="timetable_dialog_description">Zmiany</string>
|
||||
|
||||
<string name="timetable_refresh_success">Poprawnie zsynchronizowano</string>
|
||||
|
||||
<string name="generic_dialog_details">Szczegóły</string>
|
||||
<string name="generic_dialog_close">Zamknij</string>
|
||||
<string name="generic_dialog_teacher">Nauczyciel</string>
|
||||
|
||||
<string name="generic_app_no_data">Brak danych</string>
|
||||
<string name="generic_timeout_error">Zbyt długie oczekiwanie na połączenie</string>
|
||||
|
||||
<string name="snackbar_no_grades">Brak nowych ocen</string>
|
||||
<string name="snackbar_new_grade">Ilość nowych ocen: %1$d</string>
|
||||
|
||||
<string name="info_average_grades">Średnia: %1$.2f</string>
|
||||
<string name="info_no_average">Brak średniej</string>
|
||||
<string name="timetable_subitem_room">Sala %s</string>
|
||||
|
||||
<plurals name="numberOfGradesPlurals">
|
||||
<item quantity="one">%d ocena</item>
|
||||
|
@ -51,7 +51,21 @@
|
||||
<string name="dialog_teacher_text">Teacher</string>
|
||||
<string name="dialog_date_text">Date</string>
|
||||
<string name="dialog_color_text">Color</string>
|
||||
<string name="dialog_close">Close</string>
|
||||
|
||||
<string name="timetable_dialog_lesson">Lesson</string>
|
||||
<string name="timetable_dialog_room">Room</string>
|
||||
<string name="timetable_dialog_group">Group</string>
|
||||
<string name="timetable_dialog_time">Times</string>
|
||||
<string name="timetable_dialog_description">Changes</string>
|
||||
|
||||
<string name="timetable_refresh_success">Successful synchronisation</string>
|
||||
|
||||
<string name="generic_dialog_details">Details</string>
|
||||
<string name="generic_dialog_close">Close</string>
|
||||
<string name="generic_dialog_teacher">Teacher</string>
|
||||
|
||||
<string name="generic_app_no_data">No data</string>
|
||||
<string name="generic_timeout_error">Too long wait for connection</string>
|
||||
|
||||
<string name="snackbar_no_grades">No new grades</string>
|
||||
<string name="snackbar_new_grade">Number of new grades: %1$d</string>
|
||||
@ -59,6 +73,8 @@
|
||||
<string name="info_average_grades">Average: %1$.2f</string>
|
||||
<string name="info_no_average">No average</string>
|
||||
|
||||
<string name="timetable_subitem_room">Room %s</string>
|
||||
|
||||
<plurals name="numberOfGradesPlurals">
|
||||
<item quantity="one">%d grade</item>
|
||||
<item quantity="other">%d grades</item>
|
||||
|
Reference in New Issue
Block a user