1
0

Add grade statistics (#251)

This commit is contained in:
Mikołaj Pich
2019-03-04 12:13:37 +01:00
committed by Rafał Borcz
parent cae4f140e6
commit dcab8df4b9
30 changed files with 881 additions and 25 deletions

View File

@ -5,32 +5,33 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
<io.github.wulkanowy.ui.modules.grade.CustomTabLayout
android:id="@+id/gradeTabLayout"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@color/colorPrimary"
android:elevation="5dp"
android:visibility="invisible"
app:tabGravity="fill"
app:tabIndicatorColor="@android:color/white"
app:tabMaxWidth="0dp"
app:tabMode="fixed"
app:tabTextColor="@android:color/white" />
app:tabMode="scrollable"
app:tabTextColor="@android:color/white"
tools:visibility="visible" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/gradeViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="48dp"
android:visibility="invisible" />
android:visibility="invisible"
tools:visibility="visible" />
<ProgressBar
android:id="@+id/gradeProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true" />
android:indeterminate="true"
tools:visibility="invisible" />
<LinearLayout
android:id="@+id/gradeEmpty"
@ -38,7 +39,8 @@
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:visibility="invisible">
android:visibility="invisible"
tools:visibility="visible">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"

View File

@ -2,7 +2,8 @@
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:layout_height="match_parent"
tools:context=".ui.modules.grade.details.GradeDetailsFragment">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/gradeDetailsSwipe"
@ -20,7 +21,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true" />
android:indeterminate="true"
tools:visibility="gone" />
<LinearLayout
android:id="@+id/gradeDetailsEmpty"

View File

@ -0,0 +1,128 @@
<LinearLayout 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:orientation="vertical"
tools:context=".ui.modules.grade.statistics.GradeStatisticsFragment">
<LinearLayout
android:id="@+id/gradeStatisticsSubjectsContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/windowBackground"
android:elevation="5dp"
android:padding="5dp"
android:visibility="invisible"
tools:listitem="@layout/item_attendance_summary"
tools:targetApi="lollipop"
tools:visibility="visible">
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/gradeStatisticsSubjects"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="middle"
android:entries="@array/endpoints_keys"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:paddingEnd="30dp"
android:paddingRight="30dp"
android:paddingBottom="10dp"
android:spinnerMode="dialog" />
</LinearLayout>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/gradeStatisticsSwipe"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioGroup
android:id="@+id/gradeStatisticsTypeSwitch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
android:paddingTop="5dp">
<RadioButton
android:id="@+id/gradeStatisticsTypePartial"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:tag="partial"
android:text="@string/grade_statistics_partial" />
<RadioButton
android:id="@+id/gradeStatisticsTypeSemester"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tag="annual"
android:text="@string/grade_statistics_semester" />
</RadioGroup>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/gradeStatisticsChart"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/windowBackground"
android:minHeight="400dp"
android:visibility="gone"
android:layout_margin="10dp"
tools:visibility="visible" />
<ProgressBar
android:id="@+id/gradeStatisticsProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"
tools:visibility="gone" />
<LinearLayout
android:id="@+id/gradeStatisticsEmpty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:visibility="invisible">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="100dp"
android:minHeight="100dp"
app:srcCompat="@drawable/ic_menu_main_grade_26dp"
app:tint="?android:attr/textColorPrimary"
tools:ignore="contentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center"
android:text="@string/grade_no_items"
android:textSize="20sp" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</ScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</LinearLayout>

View File

@ -2,7 +2,8 @@
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:layout_height="match_parent"
tools:context=".ui.modules.grade.summary.GradeSummaryFragment">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/gradeSummarySwipe"
@ -20,7 +21,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true" />
android:indeterminate="true"
tools:visibility="gone" />
<LinearLayout
android:id="@+id/gradeSummaryEmpty"

View File

@ -16,7 +16,7 @@
android:layout_height="40dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:tint="?android:attr/textColorPrimary"
android:tint="@android:color/black"
app:srcCompat="@drawable/ic_all_account_24dp" />
<TextView

View File

@ -60,7 +60,10 @@
<string name="grade_summary_calculated_average">Obliczona średnia</string>
<string name="grade_summary_final_average">Końcowa średnia</string>
<string name="grade_menu_summary">Podsumowanie</string>
<string name="grade_menu_statistics">Oceny klasy</string>
<string name="grade_menu_read">Oznacz jako przeczytane</string>
<string name="grade_statistics_partial">Oceny cząstkowe</string>
<string name="grade_statistics_semester">Oceny semestralne</string>
<plurals name="grade_number_item">
<item quantity="one">%d ocena</item>
<item quantity="few">%d oceny</item>

View File

@ -60,7 +60,10 @@
<string name="grade_summary_calculated_average">Calculated average</string>
<string name="grade_summary_final_average">Final average</string>
<string name="grade_menu_summary">Summary</string>
<string name="grade_menu_statistics">Class grades</string>
<string name="grade_menu_read">Mark as read</string>
<string name="grade_statistics_partial">Partial grades</string>
<string name="grade_statistics_semester">Semester grades</string>
<plurals name="grade_number_item">
<item quantity="one">%d grade</item>
<item quantity="other">%d grades</item>