Merge branch 'develop' into api-v2

# Conflicts:
#	app/src/main/java/pl/szczodrzynski/edziennik/data/db/AppDb.java
This commit is contained in:
Kacper Ziubryniewicz 2019-10-21 00:34:48 +02:00
commit 0395598efb
7 changed files with 58 additions and 14 deletions

View File

@ -31,6 +31,13 @@
</head>
<body>
<h3>Wersja 3.1.1, 2019-10-09</h3>
<ul>
<li>Librus: poprawiona synchronizacja kategorii i kolorów ocen.</li>
<li>Zmieniony kolor dolnego paska w ciemnym motywie.</li>
<li>Zaktualizowany licznik czasu lekcji.</li>
</ul>
<h3>Wersja 3.1, 2019-09-29</h3>
<ul>
<li>Poprawiony interfejs zadań domowych.</li>

View File

@ -21,14 +21,11 @@ import com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem
import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem
import pl.szczodrzynski.edziennik.data.db.modules.metadata.Metadata.*
import pl.szczodrzynski.edziennik.utils.Themes
import pl.szczodrzynski.navlib.NavView
import pl.szczodrzynski.navlib.SystemBarsUtil
import pl.szczodrzynski.navlib.SystemBarsUtil.Companion.COLOR_HALF_TRANSPARENT
import pl.szczodrzynski.navlib.bottomsheet.NavBottomSheet
import pl.szczodrzynski.navlib.drawer.NavDrawer
import pl.szczodrzynski.navlib.drawer.items.DrawerPrimaryItem
import pl.szczodrzynski.navlib.drawer.items.withAppTitle
import pl.szczodrzynski.navlib.getColorFromAttr
import androidx.appcompat.widget.PopupMenu
import androidx.core.graphics.ColorUtils
import androidx.navigation.NavOptions
@ -39,6 +36,7 @@ import com.mikepenz.iconics.IconicsSize
import com.mikepenz.materialdrawer.model.DividerDrawerItem
import com.mikepenz.materialdrawer.model.ProfileDrawerItem
import com.mikepenz.materialdrawer.model.interfaces.IProfile
import me.zhanghai.android.materialprogressbar.internal.ThemeUtils
import pl.droidsonroids.gif.GifDrawable
import pl.szczodrzynski.edziennik.App.APP_URL
import pl.szczodrzynski.edziennik.data.api.AppError
@ -72,6 +70,8 @@ import pl.szczodrzynski.edziennik.ui.modules.settings.SettingsNewFragment
import pl.szczodrzynski.edziennik.ui.modules.timetable.TimetableFragment
import pl.szczodrzynski.edziennik.utils.SwipeRefreshLayoutNoTouch
import pl.szczodrzynski.edziennik.utils.Utils
import pl.szczodrzynski.edziennik.utils.Utils.dpToPx
import pl.szczodrzynski.navlib.*
import pl.szczodrzynski.navlib.bottomsheet.items.BottomSheetPrimaryItem
import pl.szczodrzynski.navlib.bottomsheet.items.BottomSheetSeparatorItem
import java.io.File
@ -277,6 +277,13 @@ class MainActivity : AppCompatActivity() {
fabExtendable = true
fabExtended = false
fabGravity = Gravity.CENTER
if (Themes.isDark) {
setBackgroundColor(blendColors(
getColorFromAttr(context, R.attr.colorSurface),
getColorFromRes(R.color.colorSurface_4dp)
))
elevation = dpToPx(4).toFloat()
}
}
bottomSheet.apply {

View File

@ -273,8 +273,8 @@ public class Librus implements EdziennikInterface {
targetEndpoints.add("Users");
targetEndpoints.add("Subjects");
targetEndpoints.add("Classrooms");
targetEndpoints.add("Timetables");
targetEndpoints.add("Substitutions");
targetEndpoints.add("Timetables");
targetEndpoints.add("Colors");
targetEndpoints.add("SavedGradeCategories");
@ -342,8 +342,8 @@ public class Librus implements EdziennikInterface {
switch (feature) {
case FEATURE_TIMETABLE:
targetEndpoints.add("Classrooms");
targetEndpoints.add("Timetables");
targetEndpoints.add("Substitutions");
targetEndpoints.add("Timetables");
break;
case FEATURE_AGENDA:
targetEndpoints.add("Events");
@ -1658,6 +1658,7 @@ public class Librus implements EdziennikInterface {
try {
for (Map.Entry<String, JsonElement> dayEl: timetables.entrySet()) {
JsonArray day = dayEl.getValue().getAsJsonArray();
Date lessonDate = Date.fromY_m_d(dayEl.getKey());
for (JsonElement lessonGroupEl: day) {
if ((lessonGroupEl instanceof JsonArray && ((JsonArray) lessonGroupEl).size() == 0) || lessonGroupEl instanceof JsonNull || lessonGroupEl == null) {
continue;
@ -1732,7 +1733,26 @@ public class Librus implements EdziennikInterface {
}
JsonElement classroom;
if ((classroom = lesson.get(substitution && !cancelled ? "OrgClassroom" : "Classroom")) != null) {
JsonElement substitutionClassroom;
if (substitution && !cancelled) {
classroom = lesson.get("OrgClassroom");
substitutionClassroom = lesson.get("Classroom");
if (classroom != null)
lessonObject.classroomName = classrooms.get(classroom.getAsJsonObject().get("Id").getAsInt());
if (substitutionClassroom != null) {
for (LessonChange lessonChange : lessonChangeList) {
if(lessonChange.lessonDate.compareTo(lessonDate) == 0) {
lessonChange.classroomName
= classrooms.get(substitutionClassroom.getAsJsonObject().get("Id").getAsInt());
break;
}
}
}
} else {
classroom = lesson.get("Classroom");
if (classroom != null)
lessonObject.classroomName = classrooms.get(classroom.getAsJsonObject().get("Id").getAsInt());
}
@ -1931,7 +1951,7 @@ public class Librus implements EdziennikInterface {
return;
}
// not a full sync. Will get all grade categories. Clear the current list.
gradeCategoryList.clear();
//gradeCategoryList.clear();
callback.onActionStarted(R.string.sync_action_syncing_grade_categories);
apiRequest("Grades/Categories", data -> {

View File

@ -291,7 +291,15 @@ public class HomeFragment extends Fragment {
activity.getBottomSheet().close();
setNumberDialog();
}),
new BottomSheetSeparatorItem(true)
new BottomSheetSeparatorItem(true),
new BottomSheetPrimaryItem(true)
.withTitle(R.string.menu_mark_everything_as_read)
.withIcon(CommunityMaterial.Icon.cmd_eye_check)
.withOnClickListener(v3 -> {
activity.getBottomSheet().close();
AsyncTask.execute(() -> app.db.metadataDao().setAllSeen(App.profileId, true));
Toast.makeText(activity, R.string.main_menu_mark_as_read_success, Toast.LENGTH_SHORT).show();
})
);
activity.gainAttention();
}
@ -322,15 +330,15 @@ public class HomeFragment extends Fragment {
if (app.appConfig.countInSeconds) {
return 1000-(System.currentTimeMillis() % 1000);
}
if (diff.minute > 5) {
if (diff.minute > 10) {
//Log.d(TAG, "60 secs");
return 60000-(System.currentTimeMillis() % 60000);
}
else if (diff.minute >= 1) {
else if (diff.minute >= 1 && false) {
//Log.d(TAG, "3 secs");
return 3000-(System.currentTimeMillis() % 3000);
}
else if (diff.second >= 40) {
else if (diff.second >= 40 && false) {
//Log.d(TAG, "2 secs");
return 2000-(System.currentTimeMillis() % 2000);
}

View File

@ -858,4 +858,5 @@
<string name="sync_action_syncing_grade_comments">Getting grade comments</string>
<string name="sync_action_syncing_school_free_days">Getting school free days</string>
<string name="settings_register_show_teacher_absences_text">Show teacher absences in Agenda</string>
<string name="menu_mark_everything_as_read">Mark everything as read</string>
</resources>

View File

@ -435,6 +435,7 @@
<string name="menu_homework">Zadania domowe</string>
<string name="menu_manage_profiles">Zarządzaj profilami</string>
<string name="menu_mark_as_read">Oznacz jako przeczytane</string>
<string name="menu_mark_everything_as_read">Oznacz wszystko jako przeczytane</string>
<string name="menu_messages">Wiadomości</string>
<string name="menu_messages_inbox">Odebrane</string>
<string name="menu_messages_sent">Wysłane</string>

View File

@ -5,8 +5,8 @@ buildscript {
kotlin_version = '1.3.50'
release = [
versionName: "3.1",
versionCode: 3010099
versionName: "3.1.1",
versionCode: 3010199
]
setup = [