diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4300d4cc..1d99e178 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -111,9 +111,6 @@
android:name=".ui.modules.webpush.WebPushConfigActivity"
android:configChanges="orientation|keyboardHidden"
android:theme="@style/AppTheme.Dark" />
-
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt b/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt
index 5b648a6c..3b6572a7 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt
@@ -72,7 +72,7 @@ import pl.szczodrzynski.edziennik.ui.modules.messages.MessagesListFragment
import pl.szczodrzynski.edziennik.ui.modules.notifications.NotificationsFragment
import pl.szczodrzynski.edziennik.ui.modules.settings.ProfileManagerFragment
import pl.szczodrzynski.edziennik.ui.modules.settings.SettingsNewFragment
-import pl.szczodrzynski.edziennik.ui.modules.timetable.v2.TimetableFragment
+import pl.szczodrzynski.edziennik.ui.modules.timetable.TimetableFragment
import pl.szczodrzynski.edziennik.ui.modules.webpush.WebPushFragment
import pl.szczodrzynski.edziennik.utils.SwipeRefreshLayoutNoTouch
import pl.szczodrzynski.edziennik.utils.Themes
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebTimetable.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebTimetable.kt
index 72862060..f270efd6 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebTimetable.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/edudziennik/data/web/EdudziennikWebTimetable.kt
@@ -12,7 +12,7 @@ import pl.szczodrzynski.edziennik.data.api.edziennik.edudziennik.ENDPOINT_EDUDZI
import pl.szczodrzynski.edziennik.data.api.edziennik.edudziennik.data.EdudziennikWeb
import pl.szczodrzynski.edziennik.data.api.models.DataRemoveModel
import pl.szczodrzynski.edziennik.data.db.modules.api.SYNC_ALWAYS
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonRange
+import pl.szczodrzynski.edziennik.data.db.modules.lessonrange.LessonRange
import pl.szczodrzynski.edziennik.data.db.modules.metadata.Metadata
import pl.szczodrzynski.edziennik.data.db.modules.timetable.Lesson
import pl.szczodrzynski.edziennik.get
@@ -111,7 +111,7 @@ class EdudziennikWebTimetable(override val data: DataEdudziennik,
it.id = it.buildId()
}
- data.lessonNewList.add(lessonObject)
+ data.lessonList.add(lessonObject)
dataDays.remove(lessonObject.date!!.value)
if (type != Lesson.TYPE_NORMAL) {
@@ -132,7 +132,7 @@ class EdudziennikWebTimetable(override val data: DataEdudziennik,
for (day in dataDays) {
val lessonDate = Date.fromValue(day)
- data.lessonNewList += Lesson(profileId, lessonDate.value.toLong()).apply {
+ data.lessonList += Lesson(profileId, lessonDate.value.toLong()).apply {
type = Lesson.TYPE_NO_LESSONS
date = lessonDate
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/idziennik/data/web/IdziennikWebTimetable.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/idziennik/data/web/IdziennikWebTimetable.kt
index dbef2a62..c3b4e7b2 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/idziennik/data/web/IdziennikWebTimetable.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/idziennik/data/web/IdziennikWebTimetable.kt
@@ -14,7 +14,7 @@ import pl.szczodrzynski.edziennik.data.api.edziennik.idziennik.data.IdziennikWeb
import pl.szczodrzynski.edziennik.data.api.models.ApiError
import pl.szczodrzynski.edziennik.data.api.models.DataRemoveModel
import pl.szczodrzynski.edziennik.data.db.modules.api.SYNC_ALWAYS
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonRange
+import pl.szczodrzynski.edziennik.data.db.modules.lessonrange.LessonRange
import pl.szczodrzynski.edziennik.data.db.modules.metadata.Metadata
import pl.szczodrzynski.edziennik.data.db.modules.timetable.Lesson
import pl.szczodrzynski.edziennik.utils.Utils.d
@@ -182,7 +182,7 @@ class IdziennikWebTimetable(override val data: DataIdziennik,
d(TAG, "Clearing lessons between ${weekStart.stringY_m_d} and ${weekEnd.stringY_m_d} - timetable downloaded for $getDate")
- data.lessonNewList.addAll(lessons)
+ data.lessonList.addAll(lessons)
data.toRemove.add(DataRemoveModel.Timetable.between(weekStart, weekEnd))
data.setSyncNext(ENDPOINT_IDZIENNIK_WEB_TIMETABLE, SYNC_ALWAYS)
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiSchools.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiSchools.kt
index c47347e0..1f59669a 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiSchools.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiSchools.kt
@@ -8,7 +8,7 @@ import pl.szczodrzynski.edziennik.*
import pl.szczodrzynski.edziennik.data.api.edziennik.librus.DataLibrus
import pl.szczodrzynski.edziennik.data.api.edziennik.librus.ENDPOINT_LIBRUS_API_SCHOOLS
import pl.szczodrzynski.edziennik.data.api.edziennik.librus.data.LibrusApi
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonRange
+import pl.szczodrzynski.edziennik.data.db.modules.lessonrange.LessonRange
import pl.szczodrzynski.edziennik.utils.models.Time
import java.util.*
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiTimetables.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiTimetables.kt
index a43d6e34..cd671abe 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiTimetables.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiTimetables.kt
@@ -60,7 +60,7 @@ class LibrusApiTimetables(override val data: DataLibrus,
}
if (day.isNullOrEmpty() || !lessonsFound) {
- data.lessonNewList.add(Lesson(profileId, lessonDate.value.toLong()).apply {
+ data.lessonList.add(Lesson(profileId, lessonDate.value.toLong()).apply {
type = Lesson.TYPE_NO_LESSONS
date = lessonDate
})
@@ -200,6 +200,6 @@ class LibrusApiTimetables(override val data: DataLibrus,
System.currentTimeMillis()
))
}
- data.lessonNewList.add(lessonObject)
+ data.lessonList.add(lessonObject)
}}
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/api/MobidziennikApiTimetable.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/api/MobidziennikApiTimetable.kt
index 1832e2fe..502c90e4 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/api/MobidziennikApiTimetable.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/mobidziennik/data/api/MobidziennikApiTimetable.kt
@@ -89,13 +89,13 @@ class MobidziennikApiTimetable(val data: DataMobidziennik, rows: List) {
System.currentTimeMillis()
))
}
- data.lessonNewList += it
+ data.lessonList += it
}
}
for (day in dataDays) {
val lessonDate = Date.fromValue(day)
- data.lessonNewList += Lesson(data.profileId, lessonDate.value.toLong()).apply {
+ data.lessonList += Lesson(data.profileId, lessonDate.value.toLong()).apply {
type = Lesson.TYPE_NO_LESSONS
date = lessonDate
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiDictionaries.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiDictionaries.kt
index b5ef18e1..e831dad0 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiDictionaries.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiDictionaries.kt
@@ -13,7 +13,7 @@ import pl.szczodrzynski.edziennik.data.api.edziennik.vulcan.data.VulcanApi
import pl.szczodrzynski.edziennik.data.db.modules.attendance.Attendance
import pl.szczodrzynski.edziennik.data.db.modules.attendance.AttendanceType
import pl.szczodrzynski.edziennik.data.db.modules.grades.GradeCategory
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonRange
+import pl.szczodrzynski.edziennik.data.db.modules.lessonrange.LessonRange
import pl.szczodrzynski.edziennik.data.db.modules.notices.NoticeType
import pl.szczodrzynski.edziennik.data.db.modules.subjects.Subject
import pl.szczodrzynski.edziennik.data.db.modules.teachers.Teacher
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiTimetable.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiTimetable.kt
index c2ec8f97..2d9e614c 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiTimetable.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/api/VulcanApiTimetable.kt
@@ -203,7 +203,7 @@ class VulcanApiTimetable(override val data: DataVulcan, val onSuccess: () -> Uni
d(TAG, "Clearing lessons between ${weekStart.stringY_m_d} and ${weekEnd.stringY_m_d} - timetable downloaded for $getDate")
- data.lessonNewList.addAll(lessons)
+ data.lessonList.addAll(lessons)
data.toRemove.add(DataRemoveModel.Timetable.between(weekStart, weekEnd))
data.setSyncNext(ENDPOINT_VULCAN_API_TIMETABLE, SYNC_ALWAYS)
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/models/Data.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/models/Data.kt
index 25858560..77e06132 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/models/Data.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/models/Data.kt
@@ -19,9 +19,7 @@ import pl.szczodrzynski.edziennik.data.db.modules.events.Event
import pl.szczodrzynski.edziennik.data.db.modules.events.EventType
import pl.szczodrzynski.edziennik.data.db.modules.grades.Grade
import pl.szczodrzynski.edziennik.data.db.modules.grades.GradeCategory
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.Lesson
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonRange
+import pl.szczodrzynski.edziennik.data.db.modules.lessonrange.LessonRange
import pl.szczodrzynski.edziennik.data.db.modules.login.LoginStore
import pl.szczodrzynski.edziennik.data.db.modules.luckynumber.LuckyNumber
import pl.szczodrzynski.edziennik.data.db.modules.messages.Message
@@ -36,6 +34,7 @@ import pl.szczodrzynski.edziennik.data.db.modules.teachers.Teacher
import pl.szczodrzynski.edziennik.data.db.modules.teachers.TeacherAbsence
import pl.szczodrzynski.edziennik.data.db.modules.teachers.TeacherAbsenceType
import pl.szczodrzynski.edziennik.data.db.modules.teams.Team
+import pl.szczodrzynski.edziennik.data.db.modules.timetable.Lesson
import pl.szczodrzynski.edziennik.singleOrNull
import pl.szczodrzynski.edziennik.toSparseArray
import pl.szczodrzynski.edziennik.utils.Utils.d
@@ -138,8 +137,6 @@ abstract class Data(val app: App, val profile: Profile?, val loginStore: LoginSt
var toRemove = mutableListOf()
val lessonList = mutableListOf()
- val lessonChangeList = mutableListOf()
- val lessonNewList = mutableListOf()
val gradeList = mutableListOf()
@@ -199,8 +196,6 @@ abstract class Data(val app: App, val profile: Profile?, val loginStore: LoginSt
teacherAbsenceTypes.clear()
lessonList.clear()
- lessonChangeList.clear()
- lessonNewList.clear()
gradeList.clear()
noticeList.clear()
attendanceList.clear()
@@ -284,15 +279,8 @@ abstract class Data(val app: App, val profile: Profile?, val loginStore: LoginSt
if (setSeenMetadataList.isNotEmpty())
db.metadataDao().setSeen(setSeenMetadataList)
- // not extracted from DB - always new data
if (lessonList.isNotEmpty()) {
- db.lessonDao().clear(profile.id)
- db.lessonDao().addAll(lessonList)
- }
- if (lessonChangeList.isNotEmpty())
- db.lessonChangeDao().addAll(lessonChangeList)
- if (lessonNewList.isNotEmpty()) {
- db.timetableDao() += lessonNewList
+ db.timetableDao() += lessonList
}
if (gradeList.isNotEmpty()) {
db.gradeDao().addAll(gradeList)
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/AppDb.java b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/AppDb.java
index 3b074235..40106fd9 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/AppDb.java
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/AppDb.java
@@ -42,12 +42,8 @@ import pl.szczodrzynski.edziennik.data.db.modules.grades.Grade;
import pl.szczodrzynski.edziennik.data.db.modules.grades.GradeCategory;
import pl.szczodrzynski.edziennik.data.db.modules.grades.GradeCategoryDao;
import pl.szczodrzynski.edziennik.data.db.modules.grades.GradeDao;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.Lesson;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChangeDao;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonDao;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonRange;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonRangeDao;
+import pl.szczodrzynski.edziennik.data.db.modules.lessonrange.LessonRange;
+import pl.szczodrzynski.edziennik.data.db.modules.lessonrange.LessonRangeDao;
import pl.szczodrzynski.edziennik.data.db.modules.login.LoginStore;
import pl.szczodrzynski.edziennik.data.db.modules.login.LoginStoreDao;
import pl.szczodrzynski.edziennik.data.db.modules.luckynumber.LuckyNumber;
@@ -87,8 +83,6 @@ import pl.szczodrzynski.edziennik.utils.models.Date;
TeacherAbsenceType.class,
Subject.class,
Notice.class,
- Lesson.class,
- LessonChange.class,
Team.class,
Attendance.class,
Event.class,
@@ -110,7 +104,7 @@ import pl.szczodrzynski.edziennik.utils.models.Date;
AttendanceType.class,
pl.szczodrzynski.edziennik.data.db.modules.timetable.Lesson.class,
ConfigEntry.class,
- Metadata.class}, version = 72)
+ Metadata.class}, version = 73)
@TypeConverters({
ConverterTime.class,
ConverterDate.class,
@@ -127,8 +121,6 @@ public abstract class AppDb extends RoomDatabase {
public abstract TeacherAbsenceTypeDao teacherAbsenceTypeDao();
public abstract SubjectDao subjectDao();
public abstract NoticeDao noticeDao();
- public abstract LessonDao lessonDao();
- public abstract LessonChangeDao lessonChangeDao();
public abstract TeamDao teamDao();
public abstract AttendanceDao attendanceDao();
public abstract EventDao eventDao();
@@ -959,6 +951,16 @@ public abstract class AppDb extends RoomDatabase {
database.execSQL("DROP TABLE _userCodes;");
}
};
+ public static final Migration MIGRATION_72_73 = new Migration(72, 73) {
+ @Override
+ public void migrate(@NonNull SupportSQLiteDatabase database) {
+ // Mark as seen all lucky number metadata.
+ database.execSQL("UPDATE metadata SET seen=1 WHERE thingType=10");
+
+ database.execSQL("DROP TABLE lessons");
+ database.execSQL("DROP TABLE lessonChanges");
+ }
+ };
public static AppDb getDatabase(final Context context) {
@@ -1028,7 +1030,8 @@ public abstract class AppDb extends RoomDatabase {
MIGRATION_68_69,
MIGRATION_69_70,
MIGRATION_70_71,
- MIGRATION_71_72
+ MIGRATION_71_72,
+ MIGRATION_72_73
)
.allowMainThreadQueries()
//.fallbackToDestructiveMigration()
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonRange.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessonrange/LessonRange.kt
similarity index 89%
rename from app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonRange.kt
rename to app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessonrange/LessonRange.kt
index 61c8c814..0cb41dbc 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonRange.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessonrange/LessonRange.kt
@@ -2,7 +2,7 @@
* Copyright (c) Kuba SzczodrzyĆski 2019-10-4.
*/
-package pl.szczodrzynski.edziennik.data.db.modules.lessons
+package pl.szczodrzynski.edziennik.data.db.modules.lessonrange
import androidx.room.ColumnInfo
import androidx.room.Entity
@@ -22,4 +22,4 @@ class LessonRange (
@ColumnInfo(name = "lessonRangeEnd")
val endTime: Time
-)
\ No newline at end of file
+)
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonRangeDao.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessonrange/LessonRangeDao.kt
similarity index 90%
rename from app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonRangeDao.kt
rename to app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessonrange/LessonRangeDao.kt
index 38bb27db..ed52572b 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonRangeDao.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessonrange/LessonRangeDao.kt
@@ -2,7 +2,7 @@
* Copyright (c) Kuba SzczodrzyĆski 2019-10-5.
*/
-package pl.szczodrzynski.edziennik.data.db.modules.lessons
+package pl.szczodrzynski.edziennik.data.db.modules.lessonrange
import androidx.room.Dao
import androidx.room.Insert
@@ -23,4 +23,4 @@ interface LessonRangeDao {
@Query("DELETE FROM lessonRanges WHERE profileId = :profileId")
fun clear(profileId: Int)
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/Lesson.java b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/Lesson.java
deleted file mode 100644
index 95402750..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/Lesson.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package pl.szczodrzynski.edziennik.data.db.modules.lessons;
-
-import java.util.List;
-
-import androidx.room.ColumnInfo;
-import androidx.room.Entity;
-import androidx.room.Ignore;
-import androidx.room.Index;
-import androidx.annotation.NonNull;
-
-import pl.szczodrzynski.edziennik.utils.models.Time;
-import pl.szczodrzynski.edziennik.utils.models.Week;
-
-@Entity(tableName = "lessons",
- primaryKeys = {"profileId", "lessonWeekDay", "lessonStartTime", "lessonEndTime"},
- indices = {@Index(value = {"profileId", "lessonWeekDay"})})
-public class Lesson {
- public int profileId;
-
- @ColumnInfo(name = "lessonWeekDay")
- public int weekDay;
- @NonNull
- @ColumnInfo(name = "lessonStartTime")
- public Time startTime;
- @NonNull
- @ColumnInfo(name = "lessonEndTime")
- public Time endTime;
- @ColumnInfo(name = "lessonClassroomName")
- public String classroomName;
-
- public long teacherId;
- public long subjectId;
- public long teamId;
-
- @Ignore
- public Lesson() {
- this.profileId = -1;
- this.startTime = new Time();
- this.endTime = new Time();
- }
-
- public Lesson(int profileId, int weekDay, @NonNull Time startTime, @NonNull Time endTime) {
- this.profileId = profileId;
- this.weekDay = weekDay;
- this.startTime = startTime;
- this.endTime = endTime;
- this.teacherId = -1;
- this.subjectId = -1;
- this.teamId = -1;
- }
-
- public Lesson(int profileId, int weekDay, String startTime, String endTime) {
- this(profileId, weekDay, new Time().parseFromYmdHm(startTime), new Time().parseFromYmdHm(endTime));
- }
-
- public Lesson(int profileId, String dateStr, String startTime, String endTime) {
- this(profileId, Week.getWeekDayFromDate(dateStr), startTime, endTime);
- }
-
- public static Lesson fromLessonChange(LessonChange lessonChange)
- {
- Lesson lesson = new Lesson(lessonChange.profileId, lessonChange.lessonDate.getWeekDay(), lessonChange.startTime, lessonChange.endTime);
- lesson.profileId = lessonChange.profileId;
- lesson.teacherId = lessonChange.teacherId;
- lesson.teamId = lessonChange.teamId;
- lesson.subjectId = lessonChange.subjectId;
- lesson.classroomName = lessonChange.classroomName;
- return lesson;
- }
-
- public static Lesson getByWeekDayAndSubject(List lessonList, int weekDay, long subjectId) {
- for (Lesson lesson: lessonList) {
- if (lesson.weekDay == weekDay && lesson.subjectId == subjectId)
- return lesson;
- }
- return null;
- }
-}
-
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonChange.java b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonChange.java
deleted file mode 100644
index e651494e..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonChange.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package pl.szczodrzynski.edziennik.data.db.modules.lessons;
-
-import androidx.room.ColumnInfo;
-import androidx.room.Entity;
-import androidx.room.Index;
-import androidx.annotation.NonNull;
-
-import java.util.List;
-
-import pl.szczodrzynski.edziennik.utils.models.Date;
-import pl.szczodrzynski.edziennik.utils.models.Time;
-
-@Entity(tableName = "lessonChanges",
- primaryKeys = {"profileId", "lessonChangeDate", "lessonChangeStartTime", "lessonChangeEndTime"},
- indices = {@Index(value = {"profileId", "lessonChangeDate"})})
-public class LessonChange {
- public int profileId;
-
- @ColumnInfo(name = "lessonChangeId")
- public long id;
-
- @ColumnInfo(name = "lessonChangeWeekDay")
- public int weekDay;
- @NonNull
- @ColumnInfo(name = "lessonChangeDate")
- public Date lessonDate;
- @NonNull
- @ColumnInfo(name = "lessonChangeStartTime")
- public Time startTime;
- @NonNull
- @ColumnInfo(name = "lessonChangeEndTime")
- public Time endTime;
- @ColumnInfo(name = "lessonChangeClassroomName")
- public String classroomName;
- @ColumnInfo(name = "lessonChangeType")
- public int type;
- public static int TYPE_CANCELLED = 1;
- public static int TYPE_CHANGE = 2;
- public static int TYPE_ADDED = 3;
-
- public long teacherId;
- public long subjectId;
- public long teamId;
-
- public LessonChange()
- {
- this.profileId = -1;
- this.lessonDate = Date.getToday();
- this.weekDay = this.lessonDate.getWeekDay();
- this.startTime = Time.getNow();
- this.endTime = Time.getNow();
- this.id = System.currentTimeMillis();
- }
-
- public LessonChange(int profileId, String dateStr, String startTime, String endTime)
- {
- this(profileId, new Date().parseFromYmd(dateStr), new Time().parseFromYmdHm(startTime), new Time().parseFromYmdHm(endTime));
- }
-
- public LessonChange(int profileId, @NonNull Date date, @NonNull Time startTime, @NonNull Time endTime)
- {
- this.profileId = profileId;
- this.lessonDate = date;
- this.weekDay = this.lessonDate.getWeekDay();
- this.startTime = startTime;
- this.endTime = endTime;
- this.id = date.combineWith(startTime);
- }
-
- public Lesson getOriginalLesson(List lessonList)
- {
- int weekDay = this.lessonDate.getWeekDay();
- for (Lesson lesson: lessonList) {
- if (lesson.weekDay == weekDay
- && lesson.startTime.getValue() == this.startTime.getValue()
- && lesson.endTime.getValue() == this.endTime.getValue())
- {
- return lesson;
- }
- }
- return null;
- }
-
- public boolean matches(Lesson lesson) {
- if (lesson == null) {
- return false;
- }
- // we are assuming the start and end time is equal
- return this.profileId == lesson.profileId
- && this.teacherId == lesson.teacherId
- && this.subjectId == lesson.subjectId
- && this.teamId == lesson.teamId
- && this.classroomName.equals(lesson.classroomName);
- }
-}
-
-
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonChangeDao.java b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonChangeDao.java
deleted file mode 100644
index c854ce99..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonChangeDao.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package pl.szczodrzynski.edziennik.data.db.modules.lessons;
-
-import androidx.lifecycle.LiveData;
-import androidx.sqlite.db.SimpleSQLiteQuery;
-import androidx.sqlite.db.SupportSQLiteQuery;
-import androidx.room.Dao;
-import androidx.room.Insert;
-import androidx.room.OnConflictStrategy;
-import androidx.room.Query;
-import androidx.room.RawQuery;
-
-import java.util.List;
-
-import pl.szczodrzynski.edziennik.utils.models.Date;
-import pl.szczodrzynski.edziennik.ui.modules.agenda.lessonchange.LessonChangeCounter;
-
-import static pl.szczodrzynski.edziennik.data.db.modules.metadata.Metadata.TYPE_LESSON_CHANGE;
-import static pl.szczodrzynski.edziennik.utils.Utils.d;
-
-@Dao
-public abstract class LessonChangeDao {
- @Insert(onConflict = OnConflictStrategy.REPLACE)
- public abstract long add(LessonChange lessonChange);
-
- @Insert(onConflict = OnConflictStrategy.REPLACE)
- public abstract void addAll(List lessonChangeList);
-
- @Query("DELETE FROM lessonChanges WHERE profileId = :profileId")
- public abstract void clear(int profileId);
-
- public static String getQueryString(int profileId, String filter) {
- return "SELECT\n" +
- "lessonChanges.profileId AS lessonChangeProfileId,\n" +
- "lessonChanges.lessonChangeId,\n" +
- "lessonChanges.lessonChangeDate,\n" +
- "lessonChanges.lessonChangeStartTime,\n" +
- "lessonChanges.lessonChangeType,\n" +
- "lessonChanges.lessonChangeClassroomName,\n" +
- "lessonChanges.subjectId AS changeSubjectId,\n" +
- "lessonChanges.teacherId AS changeTeacherId,\n" +
- "lessonChanges.teamId AS changeTeamId,\n" +
- "subjects.subjectLongName AS changeSubjectLongName,\n" +
- "subjects.subjectShortName AS changeSubjectShortName,\n" +
- "teams.teamName AS changeTeamName," +
- "teachers.teacherName || ' ' || teachers.teacherSurname AS changeTeacherFullName,\n" +
- "metadata.seen, metadata.notified, metadata.addedDate\n" +
- "FROM lessonChanges\n" +
- "LEFT JOIN teachers USING(profileId, teacherId)\n" +
- "LEFT JOIN subjects USING(profileId, subjectId)\n" +
- "LEFT JOIN teams USING(profileId, teamId)\n" +
- "LEFT JOIN metadata ON lessonChangeId = thingId AND thingType = " + TYPE_LESSON_CHANGE + " AND metadata.profileId = lessonChanges.profileId\n" +// TODO validate this works!. I hope so
- "WHERE "+(profileId == -1 ? "" : "lessonChanges.profileId = "+profileId+" AND ")+filter+"\n" +
- "ORDER BY lessonChanges.profileId, lessonChangeDate, lessonChangeStartTime ASC";
- }
-
- @RawQuery(observedEntities = {Lesson.class, LessonChange.class})
- abstract LiveData> getAll(SupportSQLiteQuery query);
- @RawQuery
- abstract List getAllNow(SupportSQLiteQuery query);
- @RawQuery
- abstract LessonFull getNow(SupportSQLiteQuery query);
-
- public String getQueryWithLessons(int profileId, String filter) {
- return "SELECT\n" +
- "lessonChanges.profileId,\n" +
- "lessonChangeId,\n" +
- "lessonChangeDate AS lessonDate,\n" +
- "lessonChangeStartTime,\n" +
- "lessonChangeType,\n" +
- "lessonChangeClassroomName,\n" +
- "lessonChanges.subjectId AS changeSubjectId,\n" +
- "lessonChanges.teacherId AS changeTeacherId,\n" +
- "lessonChanges.teamId AS changeTeamId,\n" +
- "subjects.subjectLongName AS changeSubjectLongName,\n" +
- "subjects.subjectShortName AS changeSubjectShortName,\n" +
- "lessonsFull.*,\n" +
- "teams.teamName AS changeTeamName,teachers.teacherName || ' ' || teachers.teacherSurname AS changeTeacherFullName\n" +
- ",metadata.*FROM lessonChanges\n" +
- "LEFT JOIN teachers USING(profileId, teacherId)\n" +
- "LEFT JOIN subjects USING(profileId, subjectId)\n" +
- "LEFT JOIN teams USING(profileId, teamId)\n" +
- "LEFT JOIN metadata ON lessonChangeId = thingId AND thingType = 6 AND metadata.profileId = "+profileId+"\n" +
- "JOIN (\n" +
- "SELECT subjects.subjectLongName,\n" +
- "lessons.*,\n" +
- "subjects.subjectShortName,\n" +
- "teams.teamName,\n" +
- "teachers.teacherName || ' ' || teachers.teacherSurname AS teacherFullName\n" +
- "FROM lessons\n" +
- "LEFT JOIN teachers USING(profileId, teacherId)\n" +
- "LEFT JOIN subjects USING(profileId, subjectId)\n" +
- "LEFT JOIN teams USING(profileId, teamId)\n" +
- "WHERE lessons.profileId = "+profileId+") lessonsFull ON lessonChangeWeekDay = lessonsFull.lessonWeekDay AND lessonChangeStartTime = lessonStartTime\n" +
- "WHERE lessonChanges.profileId = "+profileId+" AND "+filter+"\n" +
- "ORDER BY lessonChangeDate, lessonChangeStartTime ASC";
- }
-
- public List getAllChangesWithLessonsNow(int profileId) {
- String query = getQueryWithLessons(profileId, "1");
- d("DB", query);
- return getAllNow(new SimpleSQLiteQuery(query));
- }
-
- public List getNotNotifiedNow(int profileId) {
- return getAllNow(new SimpleSQLiteQuery(getQueryWithLessons(profileId, "notified = 0")));
- }
-
- @Query("SELECT profileId, lessonChangeDate, count(*) AS lessonChangeCount FROM lessonChanges WHERE profileId = :profileId GROUP BY lessonChangeDate")
- public abstract List getLessonChangeCountersNow(int profileId);
-
- @Query("SELECT profileId, lessonChangeDate, count(*) AS lessonChangeCount FROM lessonChanges WHERE profileId = :profileId AND lessonChangeDate = :date GROUP BY lessonChangeDate")
- public abstract LiveData getLessonChangeCounterByDate(int profileId, Date date);
-}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonChangeFull.java b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonChangeFull.java
deleted file mode 100644
index 87cb2b95..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonChangeFull.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package pl.szczodrzynski.edziennik.data.db.modules.lessons;
-
-public class LessonChangeFull extends LessonChange {
- /*public String changeTeacherFullName = "";
-
- public String changeSubjectLongName = "";
- public String changeSubjectShortName = "";
-
- public String changeTeamName = "";
-
- // metadata
- public boolean seen;
- public boolean notified;
- public long addedDate;*/
-}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonDao.java b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonDao.java
deleted file mode 100644
index 220977ab..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonDao.java
+++ /dev/null
@@ -1,171 +0,0 @@
-package pl.szczodrzynski.edziennik.data.db.modules.lessons;
-
-import androidx.lifecycle.LiveData;
-import androidx.sqlite.db.SimpleSQLiteQuery;
-import androidx.sqlite.db.SupportSQLiteQuery;
-import androidx.room.Dao;
-import androidx.room.Insert;
-import androidx.room.OnConflictStrategy;
-import androidx.room.Query;
-import androidx.room.RawQuery;
-import androidx.annotation.NonNull;
-
-import java.util.List;
-
-import pl.szczodrzynski.edziennik.utils.models.Date;
-import pl.szczodrzynski.edziennik.utils.models.Time;
-
-@Dao
-public abstract class LessonDao {
- @Insert(onConflict = OnConflictStrategy.REPLACE)
- public abstract long add(Lesson lesson);
-
- @Insert(onConflict = OnConflictStrategy.REPLACE)
- public abstract void addAll(List lessonList);
-
- @Query("DELETE FROM lessons WHERE profileId = :profileId")
- public abstract void clear(int profileId);
-
- @RawQuery(observedEntities = {Lesson.class, LessonChange.class})
- abstract LiveData> getAll(SupportSQLiteQuery query);
- @RawQuery
- abstract List getAllNow(SupportSQLiteQuery query);
- @RawQuery
- abstract LessonFull getNow(SupportSQLiteQuery query);
-
- public LiveData> getAllByDate(int profileId, @NonNull Date date, @NonNull Time nowTime) {
- int weekDay = date.getWeekDay();
- String query = "SELECT\n" +
- "lessons.*,\n" +
- "subjects.subjectLongName,\n" +
- "subjects.subjectShortName,\n" +
- "teams.teamName,\n" +
- "lessonChangesFull.*,\n" +
- "('"+nowTime.getStringValue()+"' > lessonEndTime AND lessonWeekDay = "+weekDay+") AS lessonPassed,\n" +
- "('"+nowTime.getStringValue()+"' BETWEEN lessonStartTime AND lessonEndTime AND lessonWeekDay = "+weekDay+") AS lessonCurrent,\n" +
- "teachers.teacherName || ' ' || teachers.teacherSurname AS teacherFullName\n" +
- "FROM lessons\n" +
- "LEFT JOIN teachers USING(profileId, teacherId)\n" +
- "LEFT JOIN subjects USING(profileId, subjectId)\n" +
- "LEFT JOIN teams USING(profileId, teamId)\n" +
- "LEFT JOIN \n" +
- "("
- +LessonChangeDao.getQueryString(profileId, "lessonChangeDate = '"+date.getStringY_m_d()+"'")+
- ") lessonChangesFull ON lessons.profileId = lessonChangesFull.lessonChangeProfileId AND lessonStartTime = lessonChangeStartTime\n" +
- "WHERE lessons.profileId = "+profileId+" AND lessonWeekDay = "+weekDay+"\n" +
- "ORDER BY lessonStartTime ASC";
- //Log.d("DB", "Query "+query);
- return getAll(new SimpleSQLiteQuery(query));
- }
-
- public List getAllWeekNow(int profileId, @NonNull Date weekBeginDate, @NonNull Date todayDate) {
- String query = "SELECT\n" +
- "lessons.*,\n" +
- "subjects.subjectLongName,\n" +
- "subjects.subjectShortName,\n" +
- "teams.teamName,\n" +
- "lessonChangesFull.*,\n" +
- "date(\n" +
- "'"+weekBeginDate.getStringY_m_d()+"', \n" +
- "'+'||(case 1 when lessonWeekDay < "+todayDate.getWeekDay()+" then lessonWeekDay+7 else lessonWeekDay end)||' days'\n" +
- ") AS lessonDate,\n" +
- "teachers.teacherName || ' ' || teachers.teacherSurname AS teacherFullName\n" +
- "FROM lessons\n" +
- "LEFT JOIN teachers USING(profileId, teacherId)\n" +
- "LEFT JOIN subjects USING(profileId, subjectId)\n" +
- "LEFT JOIN teams USING(profileId, teamId)\n" +
- "LEFT JOIN \n" +
- "("
- +LessonChangeDao.getQueryString(profileId, "1")+
- ") lessonChangesFull ON lessons.profileId = lessonChangesFull.lessonChangeProfileId AND lessonStartTime = lessonChangeStartTime AND lessonChangesFull.lessonChangeDate = lessonDate\n" +
- (profileId == -1 ? "" : "WHERE lessons.profileId = "+profileId+"\n") +
- "ORDER BY lessons.profileId, lessonDate, lessonStartTime ASC\n";
- //Log.d("DB", "Query "+query);
- return getAllNow(new SimpleSQLiteQuery(query));
- }
-
- public LessonFull getByDateTimeNow(int profileId, @NonNull Date date, @NonNull Time time) {
- String query = "SELECT\n" +
- "lessons.*,\n" +
- "subjects.subjectLongName,\n" +
- "subjects.subjectShortName,\n" +
- "teams.teamName,\n" +
- "lessonChangesFull.*,\n" +
- "teachers.teacherName || ' ' || teachers.teacherSurname AS teacherFullName\n" +
- "FROM lessons\n" +
- "LEFT JOIN teachers USING(profileId, teacherId)\n" +
- "LEFT JOIN subjects USING(profileId, subjectId)\n" +
- "LEFT JOIN teams USING(profileId, teamId)\n" +
- "LEFT JOIN \n" +
- "("
- +LessonChangeDao.getQueryString(profileId, "lessonChangeDate = '"+date.getStringY_m_d()+"'")+
- ") lessonChangesFull ON lessons.profileId = lessonChangesFull.lessonChangeProfileId AND lessonStartTime = lessonChangeStartTime\n" +
- "WHERE lessons.profileId = "+profileId+" AND lessonWeekDay = "+date.getWeekDay()+" AND ('"+time.getStringValue()+"' BETWEEN lessonStartTime AND lessonEndTime)\n" +
- "ORDER BY lessonStartTime ASC";
- //Log.d("DB", "Query "+query);
- return getNow(new SimpleSQLiteQuery(query));
- }
-
- public List getAllNearestNow(int profileId, @NonNull Date weekBeginDate, @NonNull Date todayDate, @NonNull Time nowTime) {
- int todayWeekDay = todayDate.getWeekDay();
- String query = "SELECT\n" +
- "lessons.*,\n" +
- "subjects.subjectLongName,\n" +
- "subjects.subjectShortName,\n" +
- "teams.teamName,\n" +
- "lessonChangesFull.*,\n" +
- "date(\n" +
- "'"+weekBeginDate.getStringY_m_d()+"', \n" +
- "'+'||(case 1 when lessonWeekDay < "+todayWeekDay+" then lessonWeekDay+7 else lessonWeekDay end)||' days'\n" +
- ") AS lessonDate,\n" +
- "('"+nowTime.getStringValue()+"' > lessonEndTime AND lessonWeekDay = "+todayWeekDay+") AS lessonPassed,\n" +
- "('"+nowTime.getStringValue()+"' BETWEEN lessonStartTime AND lessonEndTime AND lessonWeekDay = "+todayWeekDay+") AS lessonCurrent,\n" +
- "teachers.teacherName || ' ' || teachers.teacherSurname AS teacherFullName\n" +
- "FROM lessons\n" +
- "LEFT JOIN teachers USING(profileId, teacherId)\n" +
- "LEFT JOIN subjects USING(profileId, subjectId)\n" +
- "LEFT JOIN teams USING(profileId, teamId)\n" +
- "LEFT JOIN \n" +
- "("
- +LessonChangeDao.getQueryString(profileId, "1")+
- ") lessonChangesFull ON lessons.profileId = lessonChangesFull.lessonChangeProfileId AND lessonStartTime = lessonChangeStartTime AND lessonChangesFull.lessonChangeDate = lessonDate\n" +
- "WHERE lessons.profileId = "+profileId+" AND (lessonWeekDay != "+todayWeekDay+" OR '"+nowTime.getStringValue()+"' < lessonEndTime OR '"+nowTime.getStringValue()+"' > lessonStartTime)\n" +
- "ORDER BY lessonDate, lessonStartTime ASC";
- //Log.d("DB", "Query "+query);
- return getAllNow(new SimpleSQLiteQuery(query));
- }
-
- public LiveData> getAllByDateWithoutChanges(int profileId, @NonNull Date date) {
- String query = "SELECT\n" +
- "lessons.*,\n" +
- "subjects.subjectLongName,\n" +
- "subjects.subjectShortName,\n" +
- "teams.teamName,\n" +
- "teachers.teacherName || ' ' || teachers.teacherSurname AS teacherFullName\n" +
- "FROM lessons\n" +
- "LEFT JOIN teachers USING(profileId, teacherId)\n" +
- "LEFT JOIN subjects USING(profileId, subjectId)\n" +
- "LEFT JOIN teams USING(profileId, teamId)\n" +
- "WHERE lessons.profileId = "+profileId+" AND lessonWeekDay = "+date.getWeekDay()+"\n" +
- "ORDER BY lessonStartTime ASC";
- //Log.d("DB", "Query "+query);
- return getAll(new SimpleSQLiteQuery(query));
- }
-
- public LessonFull getByDateTimeWithoutChangesNow(int profileId, @NonNull Date date, @NonNull Time time) {
- String query = "SELECT\n" +
- "lessons.*,\n" +
- "subjects.subjectLongName,\n" +
- "subjects.subjectShortName,\n" +
- "teams.teamName,\n" +
- "teachers.teacherName || ' ' || teachers.teacherSurname AS teacherFullName\n" +
- "FROM lessons\n" +
- "LEFT JOIN teachers USING(profileId, teacherId)\n" +
- "LEFT JOIN subjects USING(profileId, subjectId)\n" +
- "LEFT JOIN teams USING(profileId, teamId)\n" +
- "WHERE lessons.profileId = "+profileId+" AND lessonWeekDay = "+date.getWeekDay()+" AND lessonStartTime = '"+time.getStringValue()+"'\n" +
- "ORDER BY lessonStartTime ASC";
- //Log.d("DB", "Query "+query);
- return getNow(new SimpleSQLiteQuery(query));
- }
-}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonFull.java b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonFull.java
deleted file mode 100644
index fc607833..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/lessons/LessonFull.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package pl.szczodrzynski.edziennik.data.db.modules.lessons;
-
-import androidx.room.ColumnInfo;
-import android.content.Context;
-import androidx.annotation.Nullable;
-
-import pl.szczodrzynski.edziennik.R;
-import pl.szczodrzynski.edziennik.utils.models.Date;
-
-import static pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange.TYPE_ADDED;
-import static pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange.TYPE_CANCELLED;
-import static pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange.TYPE_CHANGE;
-import static pl.szczodrzynski.edziennik.utils.Utils.bs;
-
-public class LessonFull extends Lesson {
- public String teacherFullName = "";
-
- public String subjectLongName = "";
- public String subjectShortName = "";
-
- public String teamName = "";
-
- @Nullable
- public Date lessonDate;
-
- @ColumnInfo(name = "lessonChangeId")
- public long changeId;
- @ColumnInfo(name = "lessonChangeType")
- public int changeType = -1;
- @ColumnInfo(name = "lessonChangeClassroomName")
- public String changeClassroomName = "";
- public String changeTeacherFullName = "";
-
- public String changeSubjectLongName = "";
- public String changeSubjectShortName = "";
-
- public String changeTeamName = "";
-
- public long changeTeacherId;
- public long changeSubjectId;
- public long changeTeamId;
-
- // metadata
- public boolean seen;
- public boolean notified;
- public long addedDate;
-
- public boolean lessonPassed;
- public boolean lessonCurrent;
-
- public boolean changedTeacherFullName() {
- return changeId != 0 && changeType != TYPE_CANCELLED && changeTeacherFullName != null && !changeTeacherFullName.equals(teacherFullName) && !changeTeacherFullName.equals("");
- }
- public boolean changedSubjectLongName() {
- return changeId != 0 && changeType != TYPE_CANCELLED && changeSubjectLongName != null && !changeSubjectLongName.equals(subjectLongName) && !changeSubjectLongName.equals("");
- }
- public boolean changedTeamName() {
- return changeId != 0 && changeType != TYPE_CANCELLED && changeTeamName != null && !changeTeamName.equals(teamName) && !changeTeamName.equals("");
- }
- public boolean changedClassroomName() {
- return changeId != 0 && changeType != TYPE_CANCELLED && changeClassroomName != null && !changeClassroomName.equals(classroomName) && !changeClassroomName.equals("");
- }
-
- public String getTeacherFullName() {
- return getTeacherFullName(false);
- }
- public String getTeacherFullName(boolean formatted) {
- if (!changedTeacherFullName())
- return bs(teacherFullName);
- else
- return (formatted?bs(teacherFullName)+" -> ":"") + bs(changeTeacherFullName);
- }
-
- public String getSubjectLongName() {
- return getSubjectLongName(false);
- }
- public String getSubjectLongName(boolean formatted) {
- if (!changedSubjectLongName())
- return bs(subjectLongName);
- else
- return (formatted?bs(subjectLongName)+" -> ":"") + bs(changeSubjectLongName);
- }
-
- public String getTeamName() {
- return getTeamName(false);
- }
- public String getTeamName(boolean formatted) {
- if (!changedTeamName())
- return bs(teamName);
- else
- return (formatted?bs(teamName)+" -> ":"") + bs(changeTeamName);
- }
-
- public String getClassroomName() {
- return getClassroomName(false);
- }
- public String getClassroomName(boolean formatted) {
- if (!changedClassroomName())
- return bs(classroomName);
- else
- return (formatted?bs(classroomName)+" -> ":"") + bs(changeClassroomName);
- }
-
- public String changeTypeStr(Context context) {
- if (changeType == TYPE_CANCELLED) {
- return context.getString(R.string.lesson_cancelled);
- }
- if (changeType == TYPE_CHANGE) {
- return context.getString(R.string.lesson_change);
- }
- if (changeType == TYPE_ADDED) {
- return context.getString(R.string.lesson_added);
- }
- return context.getString(R.string.lesson_timetable_change);
- }
-
- @Override
- public String toString() {
- return "LessonFull{" +
- "profileId=" + profileId +
- ", weekDay=" + weekDay +
- ", startTime=" + startTime +
- ", endTime=" + endTime +
- ", classroomName='" + classroomName + '\'' +
- ", teacherId=" + teacherId +
- ", subjectId=" + subjectId +
- ", teamId=" + teamId +
- ", teacherFullName='" + teacherFullName + '\'' +
- ", subjectLongName='" + subjectLongName + '\'' +
- ", subjectShortName='" + subjectShortName + '\'' +
- ", teamName='" + teamName + '\'' +
- ", lessonDate=" + lessonDate +
- ", changeId=" + changeId +
- ", changeType=" + changeType +
- ", changeClassroomName='" + changeClassroomName + '\'' +
- ", changeTeacherFullName='" + changeTeacherFullName + '\'' +
- ", changeSubjectLongName='" + changeSubjectLongName + '\'' +
- ", changeSubjectShortName='" + changeSubjectShortName + '\'' +
- ", changeTeamName='" + changeTeamName + '\'' +
- ", changeTeacherId=" + changeTeacherId +
- ", changeSubjectId=" + changeSubjectId +
- ", changeTeamId=" + changeTeamId +
- ", seen=" + seen +
- ", notified=" + notified +
- ", addedDate=" + addedDate +
- ", lessonPassed=" + lessonPassed +
- ", lessonCurrent=" + lessonCurrent +
- '}';
- }
-}
-
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/metadata/MetadataDao.java b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/metadata/MetadataDao.java
index 6099d78f..a2ad8786 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/metadata/MetadataDao.java
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/db/modules/metadata/MetadataDao.java
@@ -13,10 +13,9 @@ import pl.szczodrzynski.edziennik.data.db.modules.announcements.Announcement;
import pl.szczodrzynski.edziennik.data.db.modules.attendance.Attendance;
import pl.szczodrzynski.edziennik.data.db.modules.events.Event;
import pl.szczodrzynski.edziennik.data.db.modules.grades.Grade;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonFull;
import pl.szczodrzynski.edziennik.data.db.modules.messages.Message;
import pl.szczodrzynski.edziennik.data.db.modules.notices.Notice;
+import pl.szczodrzynski.edziennik.data.db.modules.timetable.LessonFull;
import pl.szczodrzynski.edziennik.utils.models.UnreadCounter;
import static pl.szczodrzynski.edziennik.data.db.modules.metadata.Metadata.TYPE_ANNOUNCEMENT;
@@ -75,19 +74,9 @@ public abstract class MetadataDao {
updateSeen(profileId, ((Event) o).type == Event.TYPE_HOMEWORK ? TYPE_HOMEWORK : TYPE_EVENT, ((Event) o).id, seen);
}
}
- if (o instanceof LessonChange) {
- if (add(new Metadata(profileId, TYPE_LESSON_CHANGE, ((LessonChange) o).id, seen, false, 0)) == -1) {
- updateSeen(profileId, TYPE_LESSON_CHANGE, ((LessonChange) o).id, seen);
- }
- }
if (o instanceof LessonFull) {
- if (add(new Metadata(profileId, TYPE_LESSON_CHANGE, ((LessonFull) o).changeId, seen, false, 0)) == -1) {
- updateSeen(profileId, TYPE_LESSON_CHANGE, ((LessonFull) o).changeId, seen);
- }
- }
- if (o instanceof pl.szczodrzynski.edziennik.data.db.modules.timetable.LessonFull) {
- if (add(new Metadata(profileId, TYPE_LESSON_CHANGE, ((pl.szczodrzynski.edziennik.data.db.modules.timetable.LessonFull) o).getId(), seen, false, 0)) == -1) {
- updateSeen(profileId, TYPE_LESSON_CHANGE, ((pl.szczodrzynski.edziennik.data.db.modules.timetable.LessonFull) o).getId(), seen);
+ if (add(new Metadata(profileId, TYPE_LESSON_CHANGE, ((LessonFull) o).getId(), seen, false, 0)) == -1) {
+ updateSeen(profileId, TYPE_LESSON_CHANGE, ((LessonFull) o).getId(), seen);
}
}
if (o instanceof Announcement) {
@@ -124,19 +113,9 @@ public abstract class MetadataDao {
updateNotified(profileId, ((Event) o).type == Event.TYPE_HOMEWORK ? TYPE_HOMEWORK : TYPE_EVENT, ((Event) o).id, notified);
}
}
- if (o instanceof LessonChange) {
- if (add(new Metadata(profileId, TYPE_LESSON_CHANGE, ((LessonChange) o).id, false, notified, 0)) == -1) {
- updateNotified(profileId, TYPE_LESSON_CHANGE, ((LessonChange) o).id, notified);
- }
- }
if (o instanceof LessonFull) {
- if (add(new Metadata(profileId, TYPE_LESSON_CHANGE, ((LessonFull) o).changeId, false, notified, 0)) == -1) {
- updateNotified(profileId, TYPE_LESSON_CHANGE, ((LessonFull) o).changeId, notified);
- }
- }
- if (o instanceof pl.szczodrzynski.edziennik.data.db.modules.timetable.LessonFull) {
- if (add(new Metadata(profileId, TYPE_LESSON_CHANGE, ((pl.szczodrzynski.edziennik.data.db.modules.timetable.LessonFull) o).getId(), false, notified, 0)) == -1) {
- updateNotified(profileId, TYPE_LESSON_CHANGE, ((pl.szczodrzynski.edziennik.data.db.modules.timetable.LessonFull) o).getId(), notified);
+ if (add(new Metadata(profileId, TYPE_LESSON_CHANGE, ((LessonFull) o).getId(), false, notified, 0)) == -1) {
+ updateNotified(profileId, TYPE_LESSON_CHANGE, ((LessonFull) o).getId(), notified);
}
}
if (o instanceof Announcement) {
@@ -228,9 +207,6 @@ public abstract class MetadataDao {
@Query("DELETE FROM metadata WHERE profileId = :profileId AND thingType = "+TYPE_HOMEWORK+" AND thingId NOT IN (SELECT eventId FROM events WHERE profileId = :profileId AND eventType = -1);")
public abstract void deleteUnusedHomework(int profileId);
- @Query("DELETE FROM metadata WHERE profileId = :profileId AND thingType = "+TYPE_LESSON_CHANGE+" AND thingId NOT IN (SELECT lessonChangeId FROM lessonChanges WHERE profileId = :profileId);")
- public abstract void deleteUnusedLessonChanges(int profileId);
-
@Query("DELETE FROM metadata WHERE profileId = :profileId AND thingType = "+TYPE_ANNOUNCEMENT+" AND thingId NOT IN (SELECT announcementId FROM announcements WHERE profileId = :profileId);")
public abstract void deleteUnusedAnnouncements(int profileId);
@@ -244,7 +220,6 @@ public abstract class MetadataDao {
deleteUnusedAttendance(profileId);
deleteUnusedEvents(profileId);
deleteUnusedHomework(profileId);
- deleteUnusedLessonChanges(profileId);
deleteUnusedAnnouncements(profileId);
deleteUnusedMessages(profileId);
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/lessonchange/LessonChangeDialog.java b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/lessonchange/LessonChangeDialog.java
index 4a298324..d3815fd4 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/lessonchange/LessonChangeDialog.java
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/lessonchange/LessonChangeDialog.java
@@ -1,24 +1,16 @@
package pl.szczodrzynski.edziennik.ui.dialogs.lessonchange;
import android.content.Context;
-import android.view.View;
import androidx.databinding.DataBindingUtil;
-import androidx.lifecycle.LifecycleOwner;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.afollestad.materialdialogs.MaterialDialog;
-import java.util.ArrayList;
-import java.util.List;
-
import pl.szczodrzynski.edziennik.App;
import pl.szczodrzynski.edziennik.R;
-import pl.szczodrzynski.edziennik.ui.modules.timetable.TimetableAdapter;
import pl.szczodrzynski.edziennik.databinding.DialogLessonChangeListBinding;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonFull;
import pl.szczodrzynski.edziennik.utils.models.Date;
-import pl.szczodrzynski.edziennik.utils.models.Time;
public class LessonChangeDialog {
private App app;
@@ -56,7 +48,7 @@ public class LessonChangeDialog {
b.lessonChangeView.setHasFixedSize(true);
b.lessonChangeView.setLayoutManager(new LinearLayoutManager(context));
- app.db.lessonDao().getAllByDate(profileId, date, Time.getNow()).observe((LifecycleOwner) context, lessons -> {
+ /*app.db.lessonDao().getAllByDate(profileId, date, Time.getNow()).observe((LifecycleOwner) context, lessons -> {
if (app == null || app.profile == null || b == null)
return;
@@ -72,6 +64,6 @@ public class LessonChangeDialog {
b.lessonChangeView.setAdapter(adapter);
b.lessonChangeView.setVisibility(View.VISIBLE);
});
- });
+ });*/
}
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/ProfileRemoveDialog.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/ProfileRemoveDialog.kt
index fa626091..ae47d7a9 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/ProfileRemoveDialog.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/ProfileRemoveDialog.kt
@@ -56,8 +56,6 @@ class ProfileRemoveDialog(
app.db.eventTypeDao().clear(profileId)
app.db.gradeDao().clear(profileId)
app.db.gradeCategoryDao().clear(profileId)
- app.db.lessonDao().clear(profileId)
- app.db.lessonChangeDao().clear(profileId)
app.db.luckyNumberDao().clear(profileId)
app.db.noticeDao().clear(profileId)
app.db.subjectDao().clear(profileId)
@@ -100,4 +98,4 @@ class ProfileRemoveDialog(
activity.reloadTarget()
Toast.makeText(activity, R.string.dialog_profile_remove_success, Toast.LENGTH_LONG).show()
}}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/timetable/LessonDetailsDialog.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/timetable/LessonDetailsDialog.kt
index 1407082b..5054fb05 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/timetable/LessonDetailsDialog.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/timetable/LessonDetailsDialog.kt
@@ -25,7 +25,7 @@ import pl.szczodrzynski.edziennik.setText
import pl.szczodrzynski.edziennik.ui.dialogs.event.EventDetailsDialog
import pl.szczodrzynski.edziennik.ui.dialogs.event.EventListAdapter
import pl.szczodrzynski.edziennik.ui.dialogs.event.EventManualDialog
-import pl.szczodrzynski.edziennik.ui.modules.timetable.v2.TimetableFragment
+import pl.szczodrzynski.edziennik.ui.modules.timetable.TimetableFragment
import pl.szczodrzynski.edziennik.utils.SimpleDividerItemDecoration
import pl.szczodrzynski.edziennik.utils.models.Date
import pl.szczodrzynski.edziennik.utils.models.Week
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/agenda/AgendaFragment.java b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/agenda/AgendaFragment.java
index 9b1b0339..b2468ffe 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/agenda/AgendaFragment.java
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/agenda/AgendaFragment.java
@@ -38,7 +38,6 @@ import pl.szczodrzynski.edziennik.App;
import pl.szczodrzynski.edziennik.MainActivity;
import pl.szczodrzynski.edziennik.R;
import pl.szczodrzynski.edziennik.data.db.modules.events.EventFull;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonFull;
import pl.szczodrzynski.edziennik.data.db.modules.teachers.TeacherAbsenceFull;
import pl.szczodrzynski.edziennik.databinding.FragmentAgendaCalendarBinding;
import pl.szczodrzynski.edziennik.databinding.FragmentAgendaDefaultBinding;
@@ -46,7 +45,6 @@ import pl.szczodrzynski.edziennik.ui.dialogs.day.DayDialog;
import pl.szczodrzynski.edziennik.ui.dialogs.event.EventManualDialog;
import pl.szczodrzynski.edziennik.ui.dialogs.lessonchange.LessonChangeDialog;
import pl.szczodrzynski.edziennik.ui.dialogs.teacherabsence.TeacherAbsenceDialog;
-import pl.szczodrzynski.edziennik.ui.modules.agenda.lessonchange.LessonChangeCounter;
import pl.szczodrzynski.edziennik.ui.modules.agenda.lessonchange.LessonChangeEvent;
import pl.szczodrzynski.edziennik.ui.modules.agenda.lessonchange.LessonChangeEventRenderer;
import pl.szczodrzynski.edziennik.ui.modules.agenda.teacherabsence.TeacherAbsenceCounter;
@@ -174,7 +172,7 @@ public class AgendaFragment extends Fragment {
List eventList = new ArrayList<>();
- List lessonChangeCounters = app.db.lessonChangeDao().getLessonChangeCountersNow(App.profileId);
+ /* List lessonChangeCounters = app.db.lessonChangeDao().getLessonChangeCountersNow(App.profileId);
for (LessonChangeCounter counter : lessonChangeCounters) {
Calendar startTime = Calendar.getInstance();
Calendar endTime = Calendar.getInstance();
@@ -193,7 +191,7 @@ public class AgendaFragment extends Fragment {
counter.lessonChangeDate,
counter.lessonChangeCount
));
- }
+ } TODO: Implement new timetable lesson changes */
if (app.profile.getStudentData("showTeacherAbsences", true)) {
List teacherAbsenceList = app.db.teacherAbsenceDao().getAllFullNow(App.profileId);
@@ -407,7 +405,7 @@ public class AgendaFragment extends Fragment {
}
}
- List lessonChanges = app.db.lessonChangeDao().getAllChangesWithLessonsNow(App.profileId);
+ /* List lessonChanges = app.db.lessonChangeDao().getAllChangesWithLessonsNow(App.profileId);
for (LessonFull lesson: lessonChanges) {
Calendar startTime = Calendar.getInstance();
@@ -423,7 +421,7 @@ public class AgendaFragment extends Fragment {
lesson.startTime.second);
Drawable eventIcon = new IconicsDrawable(activity).icon(CommunityMaterial.Icon.cmd_checkbox_blank_circle).size(IconicsSize.dp(10)).color(IconicsColor.colorInt(0xff78909c));
eventList.add(new EventDay(startTime, eventIcon));
- }
+ } TODO: Implement new timetable lesson changes */
getActivity().runOnUiThread(() -> {
//List eventList = new ArrayList<>();
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/CounterActivityOld.java b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/CounterActivityOld.java
deleted file mode 100644
index 2aacd054..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/CounterActivityOld.java
+++ /dev/null
@@ -1,240 +0,0 @@
-package pl.szczodrzynski.edziennik.ui.modules.home;
-
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.databinding.DataBindingUtil;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import pl.szczodrzynski.edziennik.App;
-import pl.szczodrzynski.edziennik.R;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonFull;
-import pl.szczodrzynski.edziennik.databinding.ActivityCounterBinding;
-import pl.szczodrzynski.edziennik.utils.models.Date;
-import pl.szczodrzynski.edziennik.utils.models.Time;
-
-import static pl.szczodrzynski.edziennik.ui.modules.home.HomeFragmentOld.updateInterval;
-
-public class CounterActivityOld extends AppCompatActivity {
-
- private static final String TAG = "CounterActivityOld";
- private App app;
- private ActivityCounterBinding b;
-
- Timer timetableTimer;
-
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- app = (App) getApplication();
- b = DataBindingUtil.inflate(getLayoutInflater(), R.layout.activity_counter, null, false);
- setContentView(b.getRoot());
-
- timetableTimer = new Timer();
-
- update();
- }
-
- private List lessons = new ArrayList<>();
-
- private void update() {
- // BELL SYNCING
- Time now = Time.getNow();
- Time syncedNow = now;
- //Time updateDiff = null;
- if (app.config.getTimetable().getBellSyncDiff() != null) {
- if (app.config.getTimetable().getBellSyncMultiplier() < 0) {
- // the bell is too fast, need to step further to go with it
- // add some time
- syncedNow = Time.sum(now, app.config.getTimetable().getBellSyncDiff());
- //Toast.makeText(c, "Bell sync diff is "+app.appConfig.bellSyncDiff.getStringHMS()+"\n\n Synced now is "+syncedNow.getStringHMS(), Toast.LENGTH_LONG).show();
- }
- if (app.config.getTimetable().getBellSyncMultiplier() > 0) {
- // the bell is delayed, need to roll the "now" time back
- // subtract some time
- syncedNow = Time.diff(now, app.config.getTimetable().getBellSyncDiff());
- }
- }
-
- assert counterTarget != null;
- if (lessons.size() == 0 || syncedNow.getValue() > counterTarget.getValue()) {
- findLessons(syncedNow);
- }
- else {
- scheduleUpdate(updateCounter(syncedNow));
- }
- }
-
- private void scheduleUpdate(long newRefreshInterval) {
- try {
- timetableTimer.schedule(new TimerTask() {
- @Override
- public void run() {
- runOnUiThread(() -> update());
- }
- }, newRefreshInterval);
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private void findLessons(Time syncedNow) {
- AsyncTask.execute(() -> {
- Date today = Date.getToday();
- lessons = app.db.lessonDao().getAllNearestNow(App.profileId, today.getWeekStart(), today, syncedNow);
-
- if (lessons != null && lessons.size() != 0) {
- Date displayingDate = lessons.get(0).lessonDate;
- if (displayingDate == null) {
- runOnUiThread(() -> scheduleUpdate(updateViews(null, syncedNow, 0, 0)));
- return;
- }
- int displayingWeekDay = displayingDate.getWeekDay();
-
- Log.d(TAG, "Displaying date is "+displayingDate.getStringY_m_d()+", weekDay is "+displayingWeekDay);
-
- int notPassedIndex = -1;
- int notPassedWeekDay = -1;
- //int firstIndex = -1;
- int lastIndex = -1;
- int index = 0;
- for (LessonFull lesson: lessons) {
- if (notPassedIndex == -1 && !lesson.lessonPassed) {
- if (lesson.lessonDate != null)
- displayingDate = lesson.lessonDate;
- displayingWeekDay = lesson.weekDay;
- notPassedIndex = index;
- notPassedWeekDay = lesson.weekDay;
- }
- if (lesson.weekDay == notPassedWeekDay) {
- /*if (firstIndex == -1)
- firstIndex = index;*/
- lastIndex = index;
- }
-
- index++;
- }
-
- // for safety
- /*if (firstIndex == -1)
- firstIndex++;*/
- if (notPassedIndex == -1)
- notPassedIndex++;
- if (lastIndex == -1)
- lastIndex++;
-
- Log.d(TAG, "Not passed index is "+notPassedIndex);
- Log.d(TAG, "Last index is "+lastIndex);
- Log.d(TAG, "New Displaying date is "+displayingDate.getStringY_m_d()+", weekDay is "+displayingWeekDay);
-
- Date finalDisplayingDate = displayingDate;
- int finalNotPassedIndex = notPassedIndex;
- int finalLastIndex = lastIndex;
- runOnUiThread(() -> scheduleUpdate(updateViews(finalDisplayingDate, syncedNow, finalNotPassedIndex, finalLastIndex)));
- }
- else {
- runOnUiThread(() -> scheduleUpdate(updateViews(null, syncedNow, 0, 0)));
- }
-
- });
- }
-
- private Time counterTarget = new Time(0, 0, 0);
- private static final short TIME_TILL = 0;
- private static final short TIME_LEFT = 1;
- private short counterType = TIME_LEFT;
- private long updateCounter(Time syncedNow) {
- Time diff = Time.diff(counterTarget, syncedNow);
- b.timeLeft.setText(counterType == TIME_TILL ? HomeFragmentOld.timeTill(app, diff, app.config.getTimetable().getCountInSeconds(), "\n") : HomeFragmentOld.timeLeft(app, diff, app.config.getTimetable().getCountInSeconds(), "\n"));
- return updateInterval(app, diff);
- }
-
- private long updateViews(Date displayingDate, Time syncedNow, int notPassedIndex, int lastIndex) {
- long newRefreshInterval = 1000*5;
-
- if (displayingDate == null) {
- return newRefreshInterval;
- }
-
- int dayDiff = Date.diffDays(displayingDate, Date.getToday());
- if (displayingDate.getValue() != Date.getToday().getValue() && dayDiff == 0) {
- dayDiff++;
- }
-
- LessonFull lessonFirst = lessons.get(dayDiff == 0 ? 0 : notPassedIndex);
- // should never be out of range
- LessonFull lessonLast = lessons.get(lastIndex);
-
- boolean duringLessons = Time.inRange(lessonFirst.startTime, lessonLast.endTime, syncedNow) && dayDiff == 0;
- if (duringLessons) {
- LessonFull lessonCurrent = null;
- LessonFull lessonNext = null;
-
- if (lessons.get(notPassedIndex).lessonCurrent) {
- lessonCurrent = lessons.get(notPassedIndex);
- if (lessons.size() > notPassedIndex+1 && lessons.get(notPassedIndex+1).weekDay == displayingDate.getWeekDay())
- lessonNext = lessons.get(notPassedIndex+1);
- }
- else {
- lessonNext = lessons.get(notPassedIndex);
- }
-
- if (lessonCurrent != null) { // show time to the end of this lesson
- b.lessonName.setText(lessonCurrent.subjectLongName);
-
- counterType = TIME_LEFT;
- counterTarget = lessonCurrent.endTime;
- newRefreshInterval = updateCounter(syncedNow);
- }
- else if (lessonNext != null) { // it's break time, show time to the start of next lesson
- b.lessonName.setText(R.string.lesson_break);
-
- counterType = TIME_LEFT;
- counterTarget = lessonNext.startTime;
- newRefreshInterval = updateCounter(syncedNow);
- }
- else { // idk what it is now (during lessons, but not during lesson or a break)
- b.lessonName.setText(R.string.card_timetable_wtf);
- b.timeLeft.setText(R.string.card_timetable_wtf_report);
- newRefreshInterval = 1000*60*2;
- finish();
- }
- }
- else {
- if (syncedNow.getValue() < lessonFirst.startTime.getValue()) {
- // before lessons
- b.lessonName.setText(R.string.lesson_break);
-
- counterType = TIME_LEFT;
- counterTarget = lessonFirst.startTime;
- newRefreshInterval = updateCounter(syncedNow);
- }
- else {
- finish();
- }
- }
-
- return newRefreshInterval;
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- //Log.d(TAG, "OnDestroy");
- try {
- timetableTimer.cancel();
- timetableTimer.purge();
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/HomeFragmentOld.java b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/HomeFragmentOld.java
index b3bf1cc6..c24b937d 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/HomeFragmentOld.java
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/HomeFragmentOld.java
@@ -48,7 +48,6 @@ import pl.szczodrzynski.edziennik.BuildConfig;
import pl.szczodrzynski.edziennik.MainActivity;
import pl.szczodrzynski.edziennik.R;
import pl.szczodrzynski.edziennik.data.db.modules.grades.GradeFull;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonFull;
import pl.szczodrzynski.edziennik.data.db.modules.profiles.Profile;
import pl.szczodrzynski.edziennik.data.db.modules.subjects.Subject;
import pl.szczodrzynski.edziennik.databinding.CardUpdateBinding;
@@ -58,7 +57,6 @@ import pl.szczodrzynski.edziennik.ui.modules.login.LoginLibrusCaptchaActivity;
import pl.szczodrzynski.edziennik.utils.Colors;
import pl.szczodrzynski.edziennik.utils.Themes;
import pl.szczodrzynski.edziennik.utils.Utils;
-import pl.szczodrzynski.edziennik.utils.models.Date;
import pl.szczodrzynski.edziennik.utils.models.ItemGradesSubjectModel;
import pl.szczodrzynski.edziennik.utils.models.Time;
import pl.szczodrzynski.navlib.bottomsheet.items.BottomSheetPrimaryItem;
@@ -239,8 +237,8 @@ public class HomeFragmentOld extends Fragment {
}
}
- timetableCard = new HomeTimetableCardOld(app, activity, this, layoutInflater, insertPoint);
- timetableCard.run();
+ // timetableCard = new HomeTimetableCardOld(app, activity, this, layoutInflater, insertPoint);
+ // timetableCard.run();
configCardGrades(activity, layoutInflater, activity, insertPoint);
@@ -369,60 +367,6 @@ public class HomeFragmentOld extends Fragment {
.color(IconicsColor.colorInt(Utils.getAttr(c, android.R.attr.textColorPrimary)))
.size(IconicsSize.dp(16)), null);
}
- public static Date findDateWithLessons(int profileId, List lessons) {
- return findDateWithLessons(profileId, lessons, 0);
- }
- public static Date findDateWithLessons(int profileId, List lessons, int nextDayHourThreshold) {
- return findDateWithLessons(profileId, lessons, Time.getNow(), nextDayHourThreshold);
- }
- public static Date findDateWithLessons(int profileId, List lessons, Time now) {
- return findDateWithLessons(profileId, lessons, now, 0);
- }
- public static Date findDateWithLessons(int profileId, @NonNull List lessons, Time now, int nextDayHourThreshold) {
- now = now.clone().stepForward(-nextDayHourThreshold, 0, 0);
- Date displayingDate = Date.getToday();
- int displayingWeekDay = displayingDate.getWeekDay();
- //boolean foundSomething = false;
- //int weekDayNum = displayingDate.getWeekDay();//Week.getTodayWeekDay();
- //int checkedDays = 0;
-
- for (LessonFull lesson: lessons) {
- if (lesson.profileId != profileId)
- continue;
- if (lesson.weekDay == displayingWeekDay
- && now.getValue() <= lesson.endTime.getValue()) {
- return lesson.lessonDate;
- }
- if (lesson.weekDay != displayingWeekDay) {
- return lesson.lessonDate;
- }
- }
- return displayingDate;
-
- /*while (!foundSomething && checkedDays < 14)
- {
- weekDay = profile.timetable.weekdays[displayingDate.getWeekDay()];
- if (weekDay.lessons.size() == 0) // this day has no lessons
- {
- displayingDate.stepForward(0, 0, 1);
- checkedDays++;
- continue;
- }
- if (displayingDate.getWeekDay() == Week.getTodayWeekDay() // today
- && now.getValue() > weekDay.lessons.get(weekDay.lessons.size() - 1).endTime.getValue()) // this day has lessons, but last lesson is over already
- {
- displayingDate.stepForward(0, 0, 1);
- checkedDays++;
- continue;
- }
- // this day has lessons, and we are during the lessons
- foundSomething = true;
- }
- return displayingDate;*/
- }
-
-
-
private void updateCardGrades(Context c, Activity a, View root, int maxWidthPx) {
@@ -558,8 +502,8 @@ public class HomeFragmentOld extends Fragment {
@Override
public void onDestroy() {
super.onDestroy();
- if (timetableCard != null)
- timetableCard.destroy();
+ //if (timetableCard != null)
+ // timetableCard.destroy();
}
private void configCardGrades(Context c, LayoutInflater layoutInflater, Activity a, ViewGroup insertPoint) {
@@ -568,6 +512,4 @@ public class HomeFragmentOld extends Fragment {
updateCardGrades(c, a, root, displayMetrics.widthPixels - Utils.dpToPx((app.config.getUi().getMiniMenuVisible() ? 72 : 0)/*miniDrawer size*/ + 24 + 24/*left and right offsets*/ + 16/*ellipsize width*/));
insertPoint.addView(root, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
-
- private HomeTimetableCardOld timetableCard;
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/HomeTimetableCardOld.java b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/HomeTimetableCardOld.java
deleted file mode 100644
index dbebf84e..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/home/HomeTimetableCardOld.java
+++ /dev/null
@@ -1,471 +0,0 @@
-package pl.szczodrzynski.edziennik.ui.modules.home;
-
-import android.content.Intent;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.Handler;
-import android.text.Html;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.databinding.DataBindingUtil;
-
-import com.afollestad.materialdialogs.MaterialDialog;
-import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import pl.szczodrzynski.edziennik.App;
-import pl.szczodrzynski.edziennik.MainActivity;
-import pl.szczodrzynski.edziennik.R;
-import pl.szczodrzynski.edziennik.data.db.modules.events.EventFull;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonFull;
-import pl.szczodrzynski.edziennik.databinding.CardTimetableBinding;
-import pl.szczodrzynski.edziennik.utils.models.Date;
-import pl.szczodrzynski.edziennik.utils.models.Time;
-import pl.szczodrzynski.edziennik.utils.models.Week;
-
-import static pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange.TYPE_CANCELLED;
-import static pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange.TYPE_CHANGE;
-import static pl.szczodrzynski.edziennik.ui.modules.home.HomeFragmentOld.updateInterval;
-import static pl.szczodrzynski.edziennik.utils.Utils.bs;
-
-public class HomeTimetableCardOld {
- private static final String TAG = "HomeTimetableCardOld";
- private App app;
- private MainActivity a;
- private HomeFragmentOld f;
- private LayoutInflater layoutInflater;
- private ViewGroup insertPoint;
- private CardTimetableBinding b;
- private Timer timetableTimer;
- private Time bellSyncTime = null;
-
- public HomeTimetableCardOld(App app, MainActivity a, HomeFragmentOld f, LayoutInflater layoutInflater, ViewGroup insertPoint) {
- this.app = app;
- this.a = a;
- this.f = f;
- this.layoutInflater = layoutInflater;
- this.insertPoint = insertPoint;
- }
-
- public void run() {
- timetableTimer = new Timer();
- b = DataBindingUtil.inflate(layoutInflater, R.layout.card_timetable, null, false);
- update();
- insertPoint.addView(b.getRoot(), new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
-
- b.cardTimetableFullscreenCounter.setOnClickListener((v -> {
- Intent intent = new Intent(a, CounterActivityOld.class);
- a.startActivity(intent);
- }));
-
- b.cardTimetableBellSync.setOnClickListener(v -> {
- if (bellSyncTime == null) {
- new MaterialDialog.Builder(a)
- .title(R.string.bell_sync_title)
- .content(R.string.bell_sync_cannot_now)
- .positiveText(R.string.ok)
- .show();
- }
- else {
- new MaterialDialog.Builder(a)
- .title(R.string.bell_sync_title)
- .content(app.getString(R.string.bell_sync_howto, bellSyncTime.getStringHM())+
- (app.config.getTimetable().getBellSyncDiff() != null ?
- ""+app.getString(R.string.bell_sync_current_dialog, (app.config.getTimetable().getBellSyncMultiplier() == -1 ? "-" : "+")+app.config.getTimetable().getBellSyncDiff().getStringHMS())
- : ""))
- .positiveText(R.string.ok)
- .negativeText(R.string.cancel)
- .neutralText(R.string.reset)
- .onPositive((dialog, which) -> {
- Time bellDiff = Time.diff(Time.getNow(), bellSyncTime);
- app.config.getTimetable().setBellSyncDiff(bellDiff);
- app.config.getTimetable().setBellSyncMultiplier(bellSyncTime.getValue() > Time.getNow().getValue() ? -1 : 1);
- new MaterialDialog.Builder(a)
- .title(R.string.bell_sync_title)
- .content(app.getString(R.string.bell_sync_results, (bellSyncTime.getValue() > Time.getNow().getValue() ? "-" : "+"), bellDiff.getStringHMS()))
- .positiveText(R.string.ok)
- .show();
- })
- .onNeutral((dialog, which) -> {
- new MaterialDialog.Builder(a)
- .title(R.string.bell_sync_title)
- .content(R.string.bell_sync_reset_confirm)
- .positiveText(R.string.yes)
- .negativeText(R.string.no)
- .onPositive(((dialog1, which1) -> {
- app.config.getTimetable().setBellSyncDiff(null);
- app.config.getTimetable().setBellSyncMultiplier(0);
- }))
- .show();
- })
- .show();
- }
- });
-
- HomeFragmentOld.buttonAddDrawable(a, b.cardTimetableButton, CommunityMaterial.Icon.cmd_arrow_right);
- }
-
- private List lessons = new ArrayList<>();
- private List events = new ArrayList<>();
-
- private void update() {
- //Log.d(TAG, "Now "+System.currentTimeMillis());
- if (a == null || !f.isAdded())
- return;
- // BELL SYNCING
- Time now = Time.getNow();
- Time syncedNow = now;
- //Time updateDiff = null;
- if (app.config.getTimetable().getBellSyncDiff() != null) {
- if (app.config.getTimetable().getBellSyncMultiplier() < 0) {
- // the bell is too fast, need to step further to go with it
- // add some time
- syncedNow = Time.sum(now, app.config.getTimetable().getBellSyncDiff());
- //Toast.makeText(c, "Bell sync diff is "+app.appConfig.bellSyncDiff.getStringHMS()+"\n\n Synced now is "+syncedNow.getStringHMS(), Toast.LENGTH_LONG).show();
- }
- if (app.config.getTimetable().getBellSyncMultiplier() > 0) {
- // the bell is delayed, need to roll the "now" time back
- // subtract some time
- syncedNow = Time.diff(now, app.config.getTimetable().getBellSyncDiff());
- }
- }
-
- assert counterTarget != null;
- if (lessons.size() == 0 || syncedNow.getValue() > counterTarget.getValue()) {
- findLessons(syncedNow);
- }
- else {
- scheduleUpdate(updateCounter(syncedNow));
- }
- }
-
- private void scheduleUpdate(long newRefreshInterval) {
- try {
- timetableTimer.schedule(new TimerTask() {
- @Override
- public void run() {
- a.runOnUiThread(() -> update());
- }
- }, newRefreshInterval);
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private void findLessons(Time syncedNow) {
- AsyncTask.execute(() -> {
- Date today = Date.getToday();
- lessons = app.db.lessonDao().getAllNearestNow(App.profileId, today.clone().stepForward(0, 0, -today.getWeekDay()), today, syncedNow);
-
- if (lessons != null && lessons.size() != 0) {
- Date displayingDate = lessons.get(0).lessonDate;
- if (displayingDate == null) {
- a.runOnUiThread(() -> scheduleUpdate(updateViews(null, syncedNow, 0, 0)));
- return;
- }
- int displayingWeekDay = displayingDate.getWeekDay();
-
- Log.d(TAG, "Displaying date is "+displayingDate.getStringY_m_d()+", weekDay is "+displayingWeekDay);
-
- int notPassedIndex = -1;
- int notPassedWeekDay = -1;
- //int firstIndex = -1;
- int lastIndex = -1;
- int index = 0;
- for (LessonFull lesson: lessons) {
- if (notPassedIndex == -1 && !lesson.lessonPassed) {
- if (lesson.lessonDate != null)
- displayingDate = lesson.lessonDate;
- displayingWeekDay = lesson.weekDay;
- notPassedIndex = index;
- notPassedWeekDay = lesson.weekDay;
- }
- if (lesson.weekDay == notPassedWeekDay) {
- /*if (firstIndex == -1)
- firstIndex = index;*/
- lastIndex = index;
- }
-
- index++;
- }
-
- // for safety
- /*if (firstIndex == -1)
- firstIndex++;*/
- if (notPassedIndex == -1)
- notPassedIndex++;
- if (lastIndex == -1)
- lastIndex++;
-
- Log.d(TAG, "Not passed index is "+notPassedIndex);
- Log.d(TAG, "Last index is "+lastIndex);
- Log.d(TAG, "New Displaying date is "+displayingDate.getStringY_m_d()+", weekDay is "+displayingWeekDay);
- events = app.db.eventDao().getAllByDateNow(App.profileId, displayingDate);
-
- Date finalDisplayingDate = displayingDate;
- int finalNotPassedIndex = notPassedIndex;
- int finalLastIndex = lastIndex;
- a.runOnUiThread(() -> scheduleUpdate(updateViews(finalDisplayingDate, syncedNow, finalNotPassedIndex, finalLastIndex)));
- }
- else {
- a.runOnUiThread(() -> scheduleUpdate(updateViews(null, syncedNow, 0, 0)));
- }
-
- });
- }
-
- private Time counterTarget = new Time(0, 0, 0);
- private static final short TIME_TILL = 0;
- private static final short TIME_LEFT = 1;
- private short counterType = TIME_TILL;
- private long updateCounter(Time syncedNow) {
- Time diff = Time.diff(counterTarget, syncedNow);
- b.cardTimetableTimeLeft.setText(counterType == TIME_TILL ? HomeFragmentOld.timeTill(app, diff, app.config.getTimetable().getCountInSeconds()) : HomeFragmentOld.timeLeft(app, diff, app.config.getTimetable().getCountInSeconds()));
- bellSyncTime = counterTarget;
- b.cardTimetableFullscreenCounter.setVisibility(View.VISIBLE);
- return updateInterval(app, diff);
- }
-
- private long updateViews(Date displayingDate, Time syncedNow, int notPassedIndex, int lastIndex) {
- //Date weekEnd = Date.getToday().stepForward(0, 0, 6 - Week.getTodayWeekDay()); // Sunday of the current week
-
- if (displayingDate == null) {
- b.cardTimetableTitle.setText(R.string.card_timetable_no_timetable);
- b.cardTimetableNoData.setVisibility(View.VISIBLE);
- b.cardTimetableContent.setVisibility(View.GONE);
- return 1000*60*30;
- }
-
- // at this point lessons.size() must be greater than 0
-
- int displayingWeekDay = displayingDate.getWeekDay();
-
-
-
- String weekDayStr = Week.getFullDayName(displayingWeekDay);
- int dayDiff = Date.diffDays(displayingDate, Date.getToday());
- if (displayingDate.getValue() != Date.getToday().getValue() && dayDiff == 0) {
- dayDiff++;
- }
- String dayDiffStr = (dayDiff == 0 ? app.getString(R.string.day_today_format, weekDayStr) : (dayDiff == 1 ? app.getString(R.string.day_tomorrow_format,weekDayStr) : app.getString(R.string.day_other_format, weekDayStr, displayingDate.getStringDm())));
-
- b.cardTimetableTitle.setText(app.getString(R.string.card_timetable_title, dayDiffStr));
-
- long newRefreshInterval = 1000*5; // 5 seconds
-
- b.cardTimetableNoData.setVisibility(View.GONE);
- b.cardTimetableContent.setVisibility(View.VISIBLE);
-
- LessonFull lessonFirst = lessons.get(dayDiff == 0 ? 0 : notPassedIndex);
- // should never be out of range
- LessonFull lessonLast = lessons.get(lastIndex);
-
- boolean duringLessons = Time.inRange(lessonFirst.startTime, lessonLast.endTime, syncedNow) && dayDiff == 0;
- if (!duringLessons) {
-
- LessonFull lessonSecond = null;
- if (lessons.size() > notPassedIndex+1 && lessons.get(notPassedIndex+1).weekDay == displayingDate.getWeekDay())
- lessonSecond = lessons.get(notPassedIndex+1);
-
- b.cardTimetableType.setText(R.string.card_timetable_lesson_duration);
- b.cardTimetableSummary.setText(app.getString(R.string.card_timetable_lesson_duration_format, lessonFirst.startTime.getStringHM(), lessonLast.endTime.getStringHM()));
- if (dayDiff == 0) {
- counterTarget = lessonFirst.startTime;
- counterType = TIME_TILL;
- newRefreshInterval = updateCounter(syncedNow);
- }
- else {
- b.cardTimetableTimeLeft.setText("");
- newRefreshInterval = 1000*60*30;
- b.cardTimetableFullscreenCounter.setVisibility(View.GONE);
- }
-
- String lessonFirstStr = null;
- if (lessonFirst.changeId != 0) {
- if (lessonFirst.changeType == TYPE_CANCELLED) {
- lessonFirstStr = "" + bs(lessonFirst.getSubjectLongName()) + "";
- } else if (lessonFirst.changeType == TYPE_CHANGE) {
- lessonFirstStr = "" + bs(lessonFirst.getSubjectLongName()) + "";
- }
- } else {
- lessonFirstStr = bs(lessonFirst.subjectLongName);
- }
- String lessonSecondStr = null;
- if (lessonSecond != null) {
- if (lessonSecond.changeId != 0) {
- if (lessonSecond.changeType == TYPE_CANCELLED) {
- lessonSecondStr = "" + bs(lessonSecond.getSubjectLongName()) + "";
- } else if (lessonSecond.changeType == TYPE_CHANGE) {
- lessonSecondStr = "" + bs(lessonSecond.getSubjectLongName()) + "";
- }
- } else {
- lessonSecondStr = bs(lessonSecond.getSubjectLongName());
- }
- }
- b.cardTimetableLessonOverview.setText(
- Html.fromHtml(
- app.getString(R.string.card_timetable_lesson_overview,
- lessonFirst.startTime.getStringHM(),
- bs(null, lessonFirstStr, ", ")+lessonFirst.getClassroomName(),
- (lessonSecond == null ? "" : lessonSecond.startTime.getStringHM()),
- (lessonSecond == null ? "" : bs(null, lessonSecondStr, ", "+lessonSecond.getClassroomName())))
- )
- );
-
- StringBuilder eventSummary = new StringBuilder();
- eventSummary.append(app.getString(R.string.card_timetable_event_overview));
- for (EventFull event : events) {
- if (displayingDate.getValue() == event.eventDate.getValue()) {
- eventSummary.append(app.getString(
- R.string.card_timetable_event_overview_format,
- event.startTime == null ? app.getString(R.string.event_all_day) : event.startTime.getStringHM(),
- event.typeName,
- event.topic));
- }
- }
- b.cardTimetableEventOverview.setText(eventSummary.toString());
- }
- else {
- b.cardTimetableFullscreenCounter.setVisibility(View.VISIBLE);
- LessonFull lessonCurrent = null;
- LessonFull lessonInAMoment = null;
- LessonFull lessonNext = null;
- LessonFull lessonAfterNext = null;
-
- if (lessons.get(notPassedIndex).lessonCurrent) {
- lessonCurrent = lessons.get(notPassedIndex);
- if (lessons.size() > notPassedIndex+1 && lessons.get(notPassedIndex+1).weekDay == displayingDate.getWeekDay())
- lessonNext = lessons.get(notPassedIndex+1);
- if (lessons.size() > notPassedIndex+2 && lessons.get(notPassedIndex+2).weekDay == displayingDate.getWeekDay())
- lessonAfterNext = lessons.get(notPassedIndex+2);
- }
- else {
- lessonInAMoment = lessons.get(notPassedIndex);
- if (lessons.size() > notPassedIndex+1 && lessons.get(notPassedIndex+1).weekDay == displayingDate.getWeekDay())
- lessonNext = lessons.get(notPassedIndex+1);
- if (lessons.size() > notPassedIndex+2 && lessons.get(notPassedIndex+2).weekDay == displayingDate.getWeekDay())
- lessonAfterNext = lessons.get(notPassedIndex+2);
- }
-
- if (lessonCurrent != null) { // show time to the end of this lesson
- b.cardTimetableType.setText(R.string.card_timetable_now);
- if (lessonCurrent.changeId != 0) {
- if (lessonCurrent.changeType == TYPE_CANCELLED) {
- b.cardTimetableSummary.setText(Html.fromHtml(""+bs(lessonCurrent.getSubjectLongName())+"
"+lessonCurrent.getClassroomName()));
- }
- else if (lessonCurrent.changeType == TYPE_CHANGE) {
- b.cardTimetableSummary.setText(Html.fromHtml(""+bs(lessonCurrent.getSubjectLongName())+"
"+lessonCurrent.getClassroomName()+""));
- }
- }
- else {
- b.cardTimetableSummary.setText(bs(lessonCurrent.getSubjectLongName())+"\n"+lessonCurrent.getClassroomName());
- }
-
- counterTarget = lessonCurrent.endTime;
- counterType = TIME_LEFT;
- newRefreshInterval = updateCounter(syncedNow);
- }
- else if (lessonInAMoment != null) { // it's break time, show time to the start of next lesson
- b.cardTimetableType.setText(R.string.card_timetable_following);
- if (lessonInAMoment.changeId != 0) {
- if (lessonInAMoment.changeType == TYPE_CANCELLED) {
- b.cardTimetableSummary.setText(Html.fromHtml(""+bs(lessonInAMoment.getSubjectLongName())+"
"+lessonInAMoment.getClassroomName()));
- }
- else if (lessonInAMoment.changeType == TYPE_CHANGE) {
- b.cardTimetableSummary.setText(Html.fromHtml(""+bs(lessonInAMoment.getSubjectLongName())+"
"+lessonInAMoment.getClassroomName()+""));
- }
- }
- else {
- b.cardTimetableSummary.setText(bs(lessonInAMoment.getSubjectLongName())+"\n"+lessonInAMoment.getClassroomName());
- }
-
- counterTarget = lessonInAMoment.startTime;
- counterType = TIME_TILL;
- newRefreshInterval = updateCounter(syncedNow);
- }
- else { // idk what it is now (during lessons, but not during lesson or a break)
- b.cardTimetableType.setText(R.string.card_timetable_wtf);
- b.cardTimetableSummary.setText(R.string.card_timetable_wtf_report);
- b.cardTimetableTimeLeft.setText("");
- newRefreshInterval = 1000*60*2;
- }
- String lessonNextStr = null;
- if (lessonNext != null) {
- if (lessonNext.changeId != 0) {
- if (lessonNext.changeType == TYPE_CANCELLED) {
- lessonNextStr = "" + lessonNext.getSubjectLongName() + "";
- } else if (lessonNext.changeType == TYPE_CHANGE) {
- lessonNextStr = "" + lessonNext.getSubjectLongName() + "";
- }
- } else {
- lessonNextStr = lessonNext.getSubjectLongName();
- }
- }
- String lessonAfterNextStr = null;
- if (lessonAfterNext != null) {
- if (lessonAfterNext.changeId != 0) {
- if (lessonAfterNext.changeType == TYPE_CANCELLED) {
- lessonAfterNextStr = "" + lessonAfterNext.getSubjectLongName() + "";
- } else if (lessonAfterNext.changeType == TYPE_CHANGE) {
- lessonAfterNextStr = "" + lessonAfterNext.getSubjectLongName() + "";
- }
- } else {
- lessonAfterNextStr = lessonAfterNext.getSubjectLongName();
- }
- }
- b.cardTimetableLessonOverview.setText(
- Html.fromHtml(app.getString(
- R.string.card_timetable_lesson_overview_ongoing,
- (lessonNext == null ? "" : lessonNext.startTime.getStringHM()),
- (lessonNext == null ? "" : bs(null, lessonNextStr, ", "+lessonNext.getClassroomName())),
- (lessonAfterNext == null ? "" : lessonAfterNext.startTime.getStringHM()),
- (lessonAfterNext == null ? "" : bs(null, lessonAfterNextStr, ", "+lessonAfterNext.getClassroomName()))
- ))
- );
-
- StringBuilder eventSummary = new StringBuilder();
- eventSummary.append(app.getString(R.string.card_timetable_event_overview));
- for (EventFull event : events) {
- // display the event only if it's AllDay or it hasn't started yet
- boolean timeMatching = event.startTime == null || syncedNow.getValue() < event.startTime.getValue();
- if (displayingDate.getValue() == event.eventDate.getValue()
- && timeMatching) {
- eventSummary.append(app.getString(
- R.string.card_timetable_event_overview_format,
- event.startTime == null ? app.getString(R.string.agenda_event_all_day)+" - " : event.startTime.getStringHM(),
- event.typeName,
- event.topic));
- }
- }
- b.cardTimetableEventOverview.setText(eventSummary.toString());
- }
-
- b.cardTimetableButton.setOnClickListener((v1 -> new Handler().postDelayed(() -> a.runOnUiThread(() -> {
- Bundle arguments = new Bundle();
- arguments.putInt("timetableDate", displayingDate.getValue());
- a.loadTarget(MainActivity.DRAWER_ITEM_TIMETABLE, arguments);
- }), 100)));
-
- return newRefreshInterval;
-
- //new Handler().postDelayed(() -> a.runOnUiThread(() -> updateCardTimetable(c, a, root)), newRefreshInterval);
- }
-
- void destroy() {
- //Log.d(TAG, "OnDestroy");
- try {
- timetableTimer.cancel();
- timetableTimer.purge();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableAdapter.java b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableAdapter.java
deleted file mode 100644
index c0d0b81b..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableAdapter.java
+++ /dev/null
@@ -1,201 +0,0 @@
-package pl.szczodrzynski.edziennik.ui.modules.timetable;
-
-import android.content.Context;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffColorFilter;
-import android.graphics.Typeface;
-import android.os.AsyncTask;
-import android.text.Html;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.cardview.widget.CardView;
-import androidx.constraintlayout.widget.ConstraintLayout;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.mikepenz.iconics.IconicsColor;
-import com.mikepenz.iconics.IconicsDrawable;
-import com.mikepenz.iconics.IconicsSize;
-import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial;
-
-import java.util.List;
-
-import pl.szczodrzynski.edziennik.App;
-import pl.szczodrzynski.edziennik.R;
-import pl.szczodrzynski.edziennik.data.db.modules.events.EventFull;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonFull;
-import pl.szczodrzynski.edziennik.utils.SpannableHtmlTagHandler;
-import pl.szczodrzynski.edziennik.utils.Themes;
-import pl.szczodrzynski.edziennik.utils.Utils;
-import pl.szczodrzynski.edziennik.utils.models.Date;
-
-import static pl.szczodrzynski.edziennik.data.db.modules.events.Event.TYPE_HOMEWORK;
-
-public class TimetableAdapter extends RecyclerView.Adapter {
- private static final String TAG = "TimetableAdapter";
- private Context context;
- private Date lessonDate;
- private List lessonList;
- private List eventList;
- public boolean setAsRead = false;
-
- //getting the context and product list with constructor
- public TimetableAdapter(Context mCtx, Date lessonDate, List lessonList, List eventList) {
- this.context = mCtx;
- this.lessonDate = lessonDate;
- this.lessonList = lessonList;
- this.eventList = eventList;
- }
-
- @NonNull
- @Override
- public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- //inflating and returning our view holder
- LayoutInflater inflater = LayoutInflater.from(context);
- View view = inflater.inflate(R.layout.row_timetable_item, parent, false);
- return new ViewHolder(view);
- }
-
- @Override
- public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
- App app = (App) context.getApplicationContext();
-
- LessonFull lesson = lessonList.get(position);
- holder.timetableItemStartTime.setText(lesson.startTime.getStringHM());
- holder.timetableItemEndTime.setText(lesson.endTime.getStringHM());
- holder.timetableItemSubjectName.setText(lesson.subjectLongName);
- holder.timetableItemClassroomName.setText(lesson.getClassroomName());
- holder.timetableItemTeamName.setText(lesson.getTeamName());
- holder.timetableItemTeacherName.setText(lesson.getTeacherFullName());
-
- holder.timetableItemCard.setCardBackgroundColor(Utils.getAttr(context, R.attr.colorSurface));
-
- if (lesson.changeId != 0)
- {
- if (!lesson.seen) {
- holder.timetableItemSubjectName.setBackground(context.getResources().getDrawable(R.drawable.bg_rounded_4dp));
- holder.timetableItemSubjectName.getBackground().setColorFilter(new PorterDuffColorFilter(0x692196f3, PorterDuff.Mode.MULTIPLY));
- AsyncTask.execute(() -> app.db.metadataDao().setSeen(App.profileId, lesson, true));
- }
- if (lesson.changeType == LessonChange.TYPE_CANCELLED)
- {
- holder.timetableItemSubjectName.setTypeface(null, Typeface.NORMAL);
- holder.timetableItemSubjectChange.setVisibility(View.GONE);
-
- holder.timetableItemSubjectName.setText(Html.fromHtml(""+lesson.subjectLongName+"", null, new SpannableHtmlTagHandler()));
- }
- else if (lesson.changeType == LessonChange.TYPE_CHANGE)
- {
- holder.timetableItemSubjectName.setTypeface(null, Typeface.BOLD_ITALIC);
- if (lesson.changedSubjectLongName()) {
- holder.timetableItemSubjectChange.setText(lesson.subjectLongName);
- holder.timetableItemSubjectName.setText(lesson.changeSubjectLongName);
- holder.timetableItemSubjectChange.setVisibility(View.VISIBLE);
-
- holder.timetableItemSubjectChange.setText(Html.fromHtml(""+lesson.subjectLongName+"", null, new SpannableHtmlTagHandler()));
- }
- else {
- holder.timetableItemSubjectChange.setVisibility(View.GONE);
- }
- holder.timetableItemTeacherName.setText(lesson.getTeacherFullName(true));
- holder.timetableItemTeamName.setText(lesson.getTeamName(true));
- holder.timetableItemClassroomName.setText(lesson.getClassroomName(true));
- }
- else if (lesson.changeType == LessonChange.TYPE_ADDED)
- {
-
- }
-
-
- holder.timetableItemLayout.getBackground().setColorFilter(new PorterDuffColorFilter(0xffffffff, PorterDuff.Mode.CLEAR));
-
- if (lesson.changeType == LessonChange.TYPE_CANCELLED) {
- holder.timetableItemCard.setCardBackgroundColor(Themes.INSTANCE.isDark() ? 0x60000000 : 0xffeeeeee);
- }
- else if (lesson.changeType == LessonChange.TYPE_CHANGE) {
- holder.timetableItemLayout.getBackground().setColorFilter(new PorterDuffColorFilter(Utils.getAttr(context, R.attr.colorPrimary), PorterDuff.Mode.SRC_ATOP));//.setBackgroundColor(App.getAttr(context, R.attr.cardBackgroundHighlight));
- }
- }
- else
- {
- holder.timetableItemLayout.getBackground().setColorFilter(new PorterDuffColorFilter(0xffffffff, PorterDuff.Mode.CLEAR));
- holder.timetableItemSubjectName.setBackground(null);
- holder.timetableItemSubjectName.setTypeface(null, Typeface.NORMAL);
- holder.timetableItemSubjectChange.setVisibility(View.GONE);
- }
-
- int eventCount = 0;
-
- for (EventFull event: eventList) {
- if (event.eventDate.getValue() == lessonDate.getValue()
- && event.startTime != null
- && event.startTime.getValue() == lesson.startTime.getValue()) {
- eventCount++;
- if (eventCount == 1) {
- holder.timetableItemEvent1.setVisibility(View.VISIBLE);
- if (event.type == TYPE_HOMEWORK)
- holder.timetableItemEvent1.setBackground(new IconicsDrawable(context).color(IconicsColor.colorRes(R.color.md_red_500)).size(IconicsSize.dp(10)).icon(CommunityMaterial.Icon2.cmd_home));
- else
- holder.timetableItemEvent1.setBackgroundColor(event.getColor());
- }
- else if (eventCount == 2) {
- holder.timetableItemEvent2.setVisibility(View.VISIBLE);
- if (event.type == TYPE_HOMEWORK)
- holder.timetableItemEvent2.setBackground(new IconicsDrawable(context).color(IconicsColor.colorRes(R.color.md_red_500)).size(IconicsSize.dp(10)).icon(CommunityMaterial.Icon2.cmd_home));
- else
- holder.timetableItemEvent2.setBackgroundColor(event.getColor());
- }
- else if (eventCount == 3) {
- holder.timetableItemEvent3.setVisibility(View.VISIBLE);
- if (event.type == TYPE_HOMEWORK)
- holder.timetableItemEvent3.setBackground(new IconicsDrawable(context).color(IconicsColor.colorRes(R.color.md_red_500)).size(IconicsSize.dp(10)).icon(CommunityMaterial.Icon2.cmd_home));
- else
- holder.timetableItemEvent3.setBackgroundColor(event.getColor());
- }
- }
- }
-
- // holder.timetableItemCard.setOnClickListener(v -> new EventListDialogOld(context).show(app, lessonDate, lesson.startTime));
- }
-
- @Override
- public int getItemCount() {
- return lessonList.size();
- }
-
- class ViewHolder extends RecyclerView.ViewHolder {
-
- CardView timetableItemCard;
- ConstraintLayout timetableItemLayout;
- TextView timetableItemStartTime;
- TextView timetableItemClassroomName;
- TextView timetableItemTeamName;
- TextView timetableItemSubjectChange;
- TextView timetableItemSubjectName;
- TextView timetableItemTeacherName;
- TextView timetableItemEndTime;
- View timetableItemEvent1;
- View timetableItemEvent2;
- View timetableItemEvent3;
-
- ViewHolder(View itemView) {
- super(itemView);
- timetableItemCard = itemView.findViewById(R.id.timetableItemCard);
- timetableItemLayout = itemView.findViewById(R.id.timetableItemLayout);
- timetableItemStartTime = itemView.findViewById(R.id.timetableItemStartTime);
- timetableItemClassroomName = itemView.findViewById(R.id.timetableItemClassroomName);
- timetableItemTeamName = itemView.findViewById(R.id.timetableItemTeamName);
- timetableItemSubjectChange = itemView.findViewById(R.id.timetableItemSubjectChange);
- timetableItemSubjectName = itemView.findViewById(R.id.timetableItemSubjectName);
- timetableItemTeacherName = itemView.findViewById(R.id.noticesItemTeacherName);
- timetableItemEndTime = itemView.findViewById(R.id.timetableItemEndTime);
- timetableItemEvent1 = itemView.findViewById(R.id.timetableItemEvent1);
- timetableItemEvent2 = itemView.findViewById(R.id.timetableItemEvent2);
- timetableItemEvent3 = itemView.findViewById(R.id.timetableItemEvent3);
- }
- }
-}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableDayFragment.java b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableDayFragment.java
deleted file mode 100644
index 26f78b82..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableDayFragment.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package pl.szczodrzynski.edziennik.ui.modules.timetable;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.databinding.DataBindingUtil;
-import androidx.fragment.app.Fragment;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
-import java.util.ArrayList;
-
-import pl.szczodrzynski.edziennik.App;
-import pl.szczodrzynski.edziennik.MainActivity;
-import pl.szczodrzynski.edziennik.R;
-import pl.szczodrzynski.edziennik.databinding.FragmentTimetableDayBinding;
-import pl.szczodrzynski.edziennik.utils.Themes;
-import pl.szczodrzynski.edziennik.utils.models.Date;
-import pl.szczodrzynski.edziennik.utils.models.Time;
-
-public class TimetableDayFragment extends Fragment {
-
- private App app = null;
- private MainActivity activity = null;
- private FragmentTimetableDayBinding b = null;
-
- private RecyclerView recyclerView;
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- activity = (MainActivity) getActivity();
- if (getActivity() == null || getContext() == null)
- return null;
- app = (App) activity.getApplication();
- getContext().getTheme().applyStyle(Themes.INSTANCE.getAppTheme(), true);
- if (app.profile == null)
- return inflater.inflate(R.layout.fragment_loading, container, false);
- // activity, context and profile is valid
- b = DataBindingUtil.inflate(inflater, R.layout.fragment_timetable_day, container, false);
- b.refreshLayout.setParent(activity.getSwipeRefreshLayout());
- return b.getRoot();
- }
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- if (app == null || app.profile == null || activity == null || b == null || !isAdded())
- return;
-
- /*b.getRoot().setOnTouchListener((v, event) -> {
- d("TimetableDay", "event "+event);
- event.setSource(0x10000000); // set a unique source
- activity.swipeRefreshLayout.onTouchEvent(event);
- return true;
- });*/
- //b.refreshLayout.setNestedScrollingEnabled(true);
- /*b.refreshLayout.setOnRefreshListener(() -> {
- activity.syncCurrentFeature(MainActivity.DRAWER_ITEM_TIMETABLE, b.refreshLayout);
- });*/
-
- assert getArguments() != null;
- Date date = new Date().parseFromYmd(Long.toString(getArguments().getLong("date", 20181009)));
-
- recyclerView = b.timetableView;
- recyclerView.setHasFixedSize(true);
- recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
-
- app.db.lessonDao().getAllByDate(App.profileId, date, Time.getNow()).observe(this, lessons -> {
- if (app == null || app.profile == null || activity == null || b == null || !isAdded())
- return;
-
- if (lessons != null && lessons.size() > 0) {
- app.db.eventDao().getAllByDate(App.profileId, date).observe(this, events -> {
- TimetableAdapter adapter = new TimetableAdapter(getContext(), date, lessons, events == null ? new ArrayList<>() : events);
- recyclerView.setAdapter(adapter);
- recyclerView.setVisibility(View.VISIBLE);
- b.timetableNoData.setVisibility(View.GONE);
- });
- }
- else {
- recyclerView.setVisibility(View.GONE);
- b.timetableNoData.setVisibility(View.VISIBLE);
- }
- });
- }
-}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/v2/day/TimetableDayFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableDayFragment.kt
similarity index 98%
rename from app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/v2/day/TimetableDayFragment.kt
rename to app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableDayFragment.kt
index adee7094..b6ae9f84 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/v2/day/TimetableDayFragment.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableDayFragment.kt
@@ -1,4 +1,8 @@
-package pl.szczodrzynski.edziennik.ui.modules.timetable.v2.day
+/*
+ * Copyright (c) Kacper Ziubryniewicz 2020-1-6
+ */
+
+package pl.szczodrzynski.edziennik.ui.modules.timetable
import android.graphics.PorterDuff
import android.graphics.PorterDuffColorFilter
@@ -25,8 +29,8 @@ import pl.szczodrzynski.edziennik.data.db.modules.timetable.LessonFull
import pl.szczodrzynski.edziennik.databinding.TimetableLessonBinding
import pl.szczodrzynski.edziennik.databinding.TimetableNoTimetableBinding
import pl.szczodrzynski.edziennik.ui.dialogs.timetable.LessonDetailsDialog
-import pl.szczodrzynski.edziennik.ui.modules.timetable.v2.TimetableFragment.Companion.DEFAULT_END_HOUR
-import pl.szczodrzynski.edziennik.ui.modules.timetable.v2.TimetableFragment.Companion.DEFAULT_START_HOUR
+import pl.szczodrzynski.edziennik.ui.modules.timetable.TimetableFragment.Companion.DEFAULT_END_HOUR
+import pl.szczodrzynski.edziennik.ui.modules.timetable.TimetableFragment.Companion.DEFAULT_START_HOUR
import pl.szczodrzynski.edziennik.utils.ListenerScrollView
import pl.szczodrzynski.edziennik.utils.models.Date
import pl.szczodrzynski.navlib.getColorFromAttr
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableFragment.java b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableFragment.java
deleted file mode 100644
index 51ff23bb..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableFragment.java
+++ /dev/null
@@ -1,628 +0,0 @@
-package pl.szczodrzynski.edziennik.ui.modules.timetable;
-
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.DashPathEffect;
-import android.graphics.Matrix;
-import android.graphics.Paint;
-import android.graphics.Rect;
-import android.graphics.Typeface;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.Environment;
-import android.text.Html;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.cardview.widget.CardView;
-import androidx.core.content.FileProvider;
-import androidx.databinding.DataBindingUtil;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentPagerAdapter;
-import androidx.viewpager.widget.ViewPager;
-
-import com.afollestad.materialdialogs.MaterialDialog;
-import com.google.android.material.tabs.TabLayout;
-import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial;
-import com.mikepenz.iconics.typeface.library.szkolny.font.SzkolnyFont;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.TreeMap;
-
-import pl.szczodrzynski.edziennik.App;
-import pl.szczodrzynski.edziennik.MainActivity;
-import pl.szczodrzynski.edziennik.R;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonFull;
-import pl.szczodrzynski.edziennik.databinding.FragmentTimetableBinding;
-import pl.szczodrzynski.edziennik.ui.modules.error.ErrorDialog;
-import pl.szczodrzynski.edziennik.ui.modules.home.HomeFragmentOld;
-import pl.szczodrzynski.edziennik.utils.SpannableHtmlTagHandler;
-import pl.szczodrzynski.edziennik.utils.Themes;
-import pl.szczodrzynski.edziennik.utils.Utils;
-import pl.szczodrzynski.edziennik.utils.models.Date;
-import pl.szczodrzynski.edziennik.utils.models.Time;
-import pl.szczodrzynski.edziennik.utils.models.Week;
-import pl.szczodrzynski.navlib.bottomsheet.items.BottomSheetPrimaryItem;
-import pl.szczodrzynski.navlib.bottomsheet.items.BottomSheetSeparatorItem;
-
-import static pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange.TYPE_CANCELLED;
-import static pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange.TYPE_CHANGE;
-import static pl.szczodrzynski.edziennik.data.db.modules.metadata.Metadata.TYPE_LESSON_CHANGE;
-import static pl.szczodrzynski.edziennik.utils.Utils.bs;
-import static pl.szczodrzynski.edziennik.utils.Utils.d;
-
-public class TimetableFragment extends Fragment {
- private static final String TAG = "RegisterTimetable";
-
- private App app = null;
- private MainActivity activity = null;
- private FragmentTimetableBinding b = null;
-
- private ViewPager viewPager;
- private static int pageSelection = -1;
- private static Date displayingDate;
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- activity = (MainActivity) getActivity();
- if (getActivity() == null || getContext() == null)
- return null;
- app = (App) activity.getApplication();
- getContext().getTheme().applyStyle(Themes.INSTANCE.getAppTheme(), true);
- if (app.profile == null)
- return inflater.inflate(R.layout.fragment_loading, container, false);
- // activity, context and profile is valid
- b = DataBindingUtil.inflate(inflater, R.layout.fragment_timetable, container, false);
- return b.getRoot();
- }
-
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- if (app == null || app.profile == null || activity == null || b == null || !isAdded())
- return;
-
- activity.getBottomSheet().prependItems(
- new BottomSheetPrimaryItem(true)
- .withTitle(R.string.menu_add_event)
- .withDescription(R.string.menu_add_event_desc)
- .withIcon(SzkolnyFont.Icon.szf_calendar_plus_outline)
- .withOnClickListener(v3 -> {
- activity.getBottomSheet().close();
- new MaterialDialog.Builder(activity)
- .title(R.string.main_menu_add)
- .items(R.array.main_menu_add_options)
- .itemsCallback((dialog, itemView, position, text) -> {
- switch (position) {
- case 0:
- //new EventManualDialogOld(activity).show(app, null, displayingDate, null, EventManualDialogOld.DIALOG_EVENT);
- break;
- case 1:
- //new EventManualDialogOld(activity).show(app, null, displayingDate, null, EventManualDialogOld.DIALOG_HOMEWORK);
- break;
- }
- })
- .show();
- }),
- new BottomSheetPrimaryItem(true)
- .withTitle(R.string.menu_generate_block_timetable)
- .withDescription(R.string.menu_generate_block_timetable_desc)
- .withIcon(CommunityMaterial.Icon2.cmd_table_large)
- .withOnClickListener(v3 -> {
- activity.getBottomSheet().close();
- generateBlockTimetable();
- }),
- new BottomSheetSeparatorItem(true),
- new BottomSheetPrimaryItem(true)
- .withTitle(R.string.menu_mark_as_read)
- .withIcon(CommunityMaterial.Icon.cmd_eye_check_outline)
- .withOnClickListener(v3 -> {
- activity.getBottomSheet().close();
- AsyncTask.execute(() -> app.db.metadataDao().setAllSeen(App.profileId, TYPE_LESSON_CHANGE, true));
- Toast.makeText(activity, R.string.main_menu_mark_as_read_success, Toast.LENGTH_SHORT).show();
- })
- );
- activity.gainAttention();
-
- // Setting ViewPager for each Tabs
- viewPager = b.viewpager;
- Adapter adapter = new Adapter(getChildFragmentManager());
-
- Date today = Date.getToday();
-
- Date date = Date.getToday();
- int weekBeginning = 2 - date.getWeekDay();
- int weekEnd = weekBeginning + 6;
- date.stepForward(0, 0, 0 - (2));
- for (int i = 0; i < 7 + 2 + 1; i++) {
- Bundle args = new Bundle();
- args.putLong("date", date.getValue());
- TimetableDayFragment timetableDayFragment = new TimetableDayFragment();
- timetableDayFragment.setArguments(args);
- StringBuilder pageTitle = new StringBuilder(Week.getFullDayName(date.getWeekDay()));
- if (i > weekEnd || i < weekBeginning) {
- pageTitle.append(", ").append(date.getStringDm());
- }
- adapter.addFragment(timetableDayFragment, pageTitle.toString());
- date.stepForward(0, 0, 1);
- }
- viewPager.setAdapter(adapter);
-
-
- if (getArguments() != null && getArguments().getLong("timetableDate", 0) != 0) {
- Date gotDate = new Date().parseFromYmd(Long.toString(getArguments().getLong("timetableDate", 0))); // OVERRIDE HERE
- // DAMNIT
- // THE TIMETABLE WAS DOING LOTS OF WEIRD THINGS (incorrect default days, sometimes scrolling to the beginning)
- // BECAUSE THESE TWO LINES WERE SWAPPED.
- //pageSelection += Date.diffDays(gotDate, displayingDate);
-
- Log.d(TAG, "Got date "+getArguments().getLong("timetableDate", 0));
-
- pageSelection = 2 + Date.diffDays(gotDate, today);
- displayingDate = gotDate;
- }
- else if (pageSelection == -1) {
- AsyncTask.execute(() -> {
- if (app == null || app.profile == null || activity == null || b == null || !isAdded())
- return;
-
- List lessons = app.db.lessonDao().getAllWeekNow(App.profileId, today.getWeekStart(), today);
- displayingDate = HomeFragmentOld.findDateWithLessons(App.profileId, lessons);
- pageSelection = 2 + Date.diffDays(displayingDate, today); // DEFAULT HERE
-
- activity.runOnUiThread(() -> {
- viewPager.setCurrentItem(pageSelection, false);
- });
- });
-
- }
-
- viewPager.setCurrentItem(pageSelection, false);
- viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }
- @Override public void onPageScrollStateChanged(int state) { }
- @Override public void onPageSelected(int position) {
- pageSelection = position;
- Fragment fragment = adapter.getItem(position);
- assert fragment.getArguments() != null;
- displayingDate = new Date().parseFromYmd(Long.toString(fragment.getArguments().getLong("date", 20181009)));
- /*
- Fragment fragment = adapter.getItem(position);
- int scrolledDate = fragment.getArguments().getInt("date", 0);
- //Toast.makeText(app, "Date: "+scrolledDate, Toast.LENGTH_SHORT).show();
- Collection removeDates = new ArrayList<>();
- for (Integer lessonChangeDate: unreadLessonChangesDates) {
- if (lessonChangeDate.equals(scrolledDate)) {
- for (RegisterLessonChange lessonChange: app.profile.timetable.lessonChanges) {
- if (lessonChange.lessonDate.getValue() == lessonChangeDate) {
- lessonChange.notified = true;
- }
- }
- removeDates.add(lessonChangeDate);
- }
- }
- unreadLessonChangesDates.removeAll(removeDates);
-
- if (app.profile.unreadLessonChanges != unreadLessonChangesDates.size()) {
- app.profile.unreadLessonChanges = unreadLessonChangesDates.size();
- app.profile.savePending = true;
- Intent i = new Intent("android.intent.action.MAIN").putExtra(MainActivity.ACTION_UPDATE_BADGES, "yes, sure");
- getContext().sendBroadcast(i);
- }
- }*/
- }
- });
-
- // Set Tabs inside Toolbar
- TabLayout tabs = view.findViewById(R.id.result_tabs);
- tabs.setupWithViewPager(viewPager);
-
- /*if (!app.appConfig.tapTargetSetAsRead) {
- new MaterialTapTargetPrompt.Builder(activity)
- .setTarget(activity.findViewById(R.id.action_mark_as_read))
- .setPrimaryText(R.string.tap_target_set_as_read_title)
- .setSecondaryText(R.string.tap_target_set_as_read_text)
- .setFocalColour(Color.TRANSPARENT)
- .setPromptStateChangeListener((prompt, state) -> {
- if (state == MaterialTapTargetPrompt.STATE_FOCAL_PRESSED) {
- // User has pressed the prompt target
- }
- })
- .show();
- app.appConfig.tapTargetSetAsRead = true;
- app.appConfig.savePending = true;
- }*/
- }
-
- public static Bitmap getBitmapFromView(View view) {
- //Define a bitmap with the same size as the view
- Bitmap returnedBitmap = Bitmap.createBitmap(view.getLayoutParams().width, view.getLayoutParams().height, Bitmap.Config.ARGB_8888);
- //Bind a canvas to it
- Canvas canvas = new Canvas(returnedBitmap);
- //Get the view's background
- Drawable bgDrawable = view.getBackground();
- if (bgDrawable!=null)
- //has background drawable, then draw it on the canvas
- bgDrawable.draw(canvas);
- else
- //does not have background drawable, then draw white background on the canvas
- canvas.drawColor(Color.TRANSPARENT);
- // draw the view on the canvas
- view.draw(canvas);
- //return the bitmap
- return returnedBitmap;
- }
-
- public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) {
- int width = bm.getWidth();
- int height = bm.getHeight();
- float scaleWidth = ((float) newWidth) / width;
- float scaleHeight = ((float) newHeight) / height;
- // CREATE A MATRIX FOR THE MANIPULATION
- Matrix matrix = new Matrix();
- // RESIZE THE BIT MAP
- matrix.postScale(scaleWidth, scaleHeight);
-
- // "RECREATE" THE NEW BITMAP
- Bitmap resizedBitmap = Bitmap.createBitmap(
- bm, 0, 0, width, height, matrix, true);
- bm.recycle();
- return resizedBitmap;
- }
-
- public void generateBlockTimetable() {
- if (getActivity() == null) {
- return;
- }
-
- Date weekCurrentStart = Week.getWeekStart();
- Date weekCurrentEnd = Week.getWeekEnd();
- Date weekNextStart = weekCurrentEnd.clone().stepForward(0, 0, 1);
- Date weekNextEnd = weekNextStart.clone().stepForward(0, 0, 6);
-
- new MaterialDialog.Builder(getActivity())
- .title(R.string.timetable_generate_range)
- .items(
- getString(R.string.timetable_generate_no_changes),
- getString(R.string.timetable_generate_current_week_format, weekCurrentStart.getFormattedStringShort(), weekCurrentEnd.getFormattedStringShort()),
- getString(R.string.timetable_generate_next_week_format, weekNextStart.getFormattedStringShort(), weekNextEnd.getFormattedStringShort()),
- getString(R.string.timetable_generate_for_printout))
- .positiveText(R.string.ok)
- .negativeText(R.string.cancel)
- .checkBoxPromptRes(R.string.timetable_generate_include_profile_name, true, null)
- .itemsCallbackSingleChoice(0, (dialog, itemView, which, text) -> {
- Toast.makeText(app, "Selected "+which, Toast.LENGTH_SHORT).show();
- AsyncTask.execute(() -> {
- switch (which) {
- case 0:
- generateBlockTimetableWithLessons(app.db.lessonDao().getAllWeekNow(App.profileId, weekCurrentStart, weekCurrentStart), false, dialog.isPromptCheckBoxChecked(), null, null, false);
- break;
- case 1:
- generateBlockTimetableWithLessons(app.db.lessonDao().getAllWeekNow(App.profileId, weekCurrentStart, weekCurrentStart), true, dialog.isPromptCheckBoxChecked(), weekCurrentStart, weekCurrentEnd, false);
- break;
- case 2:
- generateBlockTimetableWithLessons(app.db.lessonDao().getAllWeekNow(App.profileId, weekNextStart, weekNextStart), true, dialog.isPromptCheckBoxChecked(), weekNextStart, weekNextEnd, false);
- break;
- case 3:
- generateBlockTimetableWithLessons(app.db.lessonDao().getAllWeekNow(App.profileId, weekCurrentStart, weekCurrentStart), false, dialog.isPromptCheckBoxChecked(), null, null, true);
- break;
- }
- });
- if (which == 0) {
-
- }
- return false;
- })
- .show();
-
- }
-
- private MaterialDialog progressDialog;
-
- private void generateBlockTimetableWithLessons(List lessonList, boolean markChanges, boolean showProfileName, Date weekStart, Date weekEnd, boolean noColors) {
- d(TAG, Arrays.toString(lessonList.toArray()));
-
- activity.runOnUiThread(() -> {
- progressDialog = new MaterialDialog.Builder(activity)
- .title(R.string.timetable_generate_progress_title)
- .content(R.string.timetable_generate_progress_text)
- .progress(true, 0)
- .show();
- });
-
- // block size: 190x90, so one minute is 2px
- // spacing: 15x10
- // left size: 45px
- // header size: 45px
- // overall width: 45 + n*(190+15)
- // overall height: 45 + n*(90+10)
- // footer size 30px
-
- int WIDTH_CONSTANT = 70;
- int WIDTH_WEEKDAY = 285;
- int WIDTH_SPACING = 15;
- int HEIGHT_PROFILE_NAME = showProfileName ? 100 : 0;
- int HEIGHT_CONSTANT = 60;
- int HEIGHT_MINUTE = 3;
- int HEIGHT_FOOTER = 40;
-
- List> weekdays = new ArrayList<>();
- for(int i = 0; i < 7; i++) {
- weekdays.add(new ArrayList<>());
- }
- int maxWeekDay = 5;
- Time minTime = null;
- Time maxTime = null;
-
- TreeMap lessonRanges = new TreeMap<>();
-
- for (LessonFull lesson: lessonList) {
- if (lesson.weekDay > maxWeekDay)
- maxWeekDay = lesson.weekDay;
- List weekdayLessons = weekdays.get(lesson.weekDay);
- weekdayLessons.add(lesson);
- lessonRanges.put(lesson.startTime.getValue(), lesson.endTime.getValue());
- if (minTime == null || lesson.startTime.getValue() < minTime.getValue()) {
- minTime = lesson.startTime;
- }
- if (maxTime == null || lesson.endTime.getValue() > maxTime.getValue()) {
- maxTime = lesson.endTime;
- }
- }
-
- if (minTime != null) {
- d(TAG, "Min time "+minTime.getValue()+" max time "+maxTime.getValue());
- Time diff = Time.diff(maxTime, minTime);
- int minutes = diff.hour*60+diff.minute;
-
- Bitmap.Config conf = Bitmap.Config.ARGB_8888; // see other conf types
- int imgWidth = WIDTH_CONSTANT + maxWeekDay * WIDTH_WEEKDAY + (maxWeekDay-1) * WIDTH_SPACING;
- int imgHeight = HEIGHT_PROFILE_NAME + HEIGHT_CONSTANT + minutes*HEIGHT_MINUTE + HEIGHT_FOOTER;
- Bitmap bmp = Bitmap.createBitmap(imgWidth+20, imgHeight+30, conf); // this creates a MUTABLE bitmap
- Canvas canvas = new Canvas(bmp);
- if (noColors)
- canvas.drawARGB(255, 255, 255, 255);
- else
- canvas.drawARGB(255, 225, 225, 225);
-
- Paint paint = new Paint();
- paint.setAntiAlias(true);
- paint.setFilterBitmap(true);
- paint.setDither(true);
-
- for (LessonFull lesson: lessonList) {
- Time lessonLength = Time.diff(lesson.endTime, lesson.startTime);
- Time firstOffset = Time.diff(lesson.startTime, minTime);
-
- int left = WIDTH_CONSTANT + lesson.weekDay*WIDTH_WEEKDAY + lesson.weekDay * WIDTH_SPACING;
- int top = HEIGHT_PROFILE_NAME + HEIGHT_CONSTANT + (firstOffset.hour*60+firstOffset.minute)*HEIGHT_MINUTE;
- int blockWidth = WIDTH_WEEKDAY;
- int blockHeight = (lessonLength.hour*60+lessonLength.minute)*HEIGHT_MINUTE;
- int viewWidth = Utils.dpToPx(380);
- int viewHeight = Utils.dpToPx((lessonLength.hour*60+lessonLength.minute)*4);
-
- LinearLayout linearLayout;
- try {
- linearLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.row_timetable_block_item, null);
- }
- catch (Exception e) {
- new ErrorDialog(activity, e);
- return;
- }
-
- LinearLayout layout = linearLayout.findViewById(R.id.timetableItemLayout);
- CardView card = linearLayout.findViewById(R.id.timetableItemCard);
- TextView subjectName = linearLayout.findViewById(R.id.timetableItemSubjectName);
- TextView classroomName = linearLayout.findViewById(R.id.timetableItemClassroomName);
- TextView teacherName = linearLayout.findViewById(R.id.timetableItemTeacherName);
- TextView teamName = linearLayout.findViewById(R.id.timetableItemTeamName);
-
- if (noColors) {
- card.setCardBackgroundColor(0xffffffff);
- card.setCardElevation(0.0f);
- layout.setBackgroundResource(R.drawable.bg_rounded_16dp_outline);
- subjectName.setTextColor(0xff000000);
- classroomName.setTextColor(0xffaaaaaa);
- teacherName.setTextColor(0xffaaaaaa);
- teamName.setTextColor(0xffaaaaaa);
- }
-
- subjectName.setText(lesson.subjectLongName);
- classroomName.setText(bs(lesson.classroomName));
- teacherName.setText(bs(lesson.teacherFullName));
- teamName.setText(bs(lesson.teamName));
-
- if (markChanges) {
- if (lesson.changeId != 0) {
- if (lesson.changeType == TYPE_CANCELLED) {
- card.setCardBackgroundColor(Color.BLACK);
- subjectName.setText(Html.fromHtml(""+lesson.subjectLongName+"", null, new SpannableHtmlTagHandler()));
- }
- else if (lesson.changeType == TYPE_CHANGE) {
- card.setCardBackgroundColor(0xff234158); // 0x40 x primary
- subjectName.setTypeface(null, Typeface.BOLD_ITALIC);
- }
- }
- }
-
- linearLayout.setDrawingCacheEnabled(true);
- linearLayout.measure(View.MeasureSpec.makeMeasureSpec(viewWidth, View.MeasureSpec.EXACTLY),
- View.MeasureSpec.makeMeasureSpec(viewHeight, View.MeasureSpec.EXACTLY));
- linearLayout.layout(0, 0, linearLayout.getMeasuredWidth(), linearLayout.getMeasuredHeight());
- linearLayout.buildDrawingCache(true);
-
- Bitmap bm = linearLayout.getDrawingCache();
- canvas.drawBitmap(bm, null, new Rect(left, top, left+blockWidth, top+blockHeight), paint);
- }
-
- Paint textPaint = new Paint();
- textPaint.setARGB(255, 0, 0, 0);
- textPaint.setTextAlign(Paint.Align.CENTER);
- textPaint.setTextSize(30);
- textPaint.setAntiAlias(true);
- textPaint.setFilterBitmap(true);
- textPaint.setDither(true);
-
- for (int w = 0; w < maxWeekDay+1; w++) {
- int x = WIDTH_CONSTANT + w*WIDTH_WEEKDAY + w * WIDTH_SPACING;
- canvas.drawText(Week.getFullDayName(w), x + (WIDTH_WEEKDAY/2), HEIGHT_PROFILE_NAME + HEIGHT_CONSTANT/2+10, textPaint);
- }
-
- if (showProfileName) {
- textPaint.setTextSize(50);
- if (weekStart != null && weekEnd != null) {
- canvas.drawText(app.profile.getName() + " - plan lekcji, "+weekStart.getFormattedStringShort() + " - " + weekEnd.getFormattedStringShort(), (imgWidth + 20) / 2, 80, textPaint);
- }
- else {
- canvas.drawText(app.profile.getName() + " - plan lekcji", (imgWidth + 20) / 2, 80, textPaint);
- }
- }
-
- textPaint.setARGB(128, 0, 0, 0);
- textPaint.setTextAlign(Paint.Align.RIGHT);
- textPaint.setTextSize(26);
- textPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.ITALIC));
- textPaint.setAntiAlias(true);
- textPaint.setFilterBitmap(true);
- textPaint.setDither(true);
- int textPaintCenter = Math.round((textPaint.descent() + textPaint.ascent()) / 2);
- canvas.drawText("Wygenerowano w aplikacji Szkolny.eu", imgWidth - 10, imgHeight - textPaintCenter - 10, textPaint);
-
- textPaint.setARGB(255, 127, 127, 127);
- textPaint.setTextAlign(Paint.Align.CENTER);
- textPaint.setTextSize(16);
- textPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.NORMAL));
- textPaint.setAntiAlias(true);
- textPaint.setFilterBitmap(true);
- textPaint.setDither(true);
- textPaintCenter = Math.round((textPaint.descent() + textPaint.ascent()) / 2); // it's probably negative
-
- Paint linePaint = new Paint();
- linePaint.setARGB(255, 100, 100, 100);
- linePaint.setStyle(Paint.Style.STROKE);
- linePaint.setPathEffect(new DashPathEffect(new float[]{10, 10}, 0));
- linePaint.setAntiAlias(true);
- linePaint.setFilterBitmap(true);
- linePaint.setDither(true);
-
- int minTimeVal = minTime.getValue();
- int minTimeInt = (minTimeVal/10000)*60 + ((minTimeVal/100)%100);
- for (int startTime: lessonRanges.keySet()) {
- Integer endTime = lessonRanges.get(startTime);
- if (endTime == null)
- continue;
-
- int hour = startTime/10000;
- int minute = (startTime/100)%100;
- int firstOffset = hour * 60 + minute - minTimeInt; // offset in minutes
- int top = HEIGHT_PROFILE_NAME + HEIGHT_CONSTANT + firstOffset*HEIGHT_MINUTE;
- String text = hour+":"+(minute < 10 ? "0"+minute : minute);
- canvas.drawText(text, WIDTH_CONSTANT/2, top-textPaintCenter, textPaint);
- canvas.drawLine(WIDTH_CONSTANT, top, imgWidth, top, linePaint);
-
- hour = endTime/10000;
- minute = (endTime/100)%100;
- firstOffset = hour * 60 + minute - minTimeInt; // offset in minutes
- top = HEIGHT_PROFILE_NAME + HEIGHT_CONSTANT + firstOffset*HEIGHT_MINUTE;
- text = hour+":"+(minute < 10 ? "0"+minute : minute);
- canvas.drawText(text, WIDTH_CONSTANT/2, top-textPaintCenter, textPaint);
- canvas.drawLine(WIDTH_CONSTANT, top, imgWidth, top, linePaint);
- }
-
- File outputDir = Environment.getExternalStoragePublicDirectory("Szkolny.eu");
- outputDir.mkdirs();
-
- File outputFile = new File(outputDir, "plan_lekcji_"+app.profile.getName()+"_"+Date.getToday().getStringY_m_d()+"_"+Time.getNow().getStringH_M()+".png");
-
- FileOutputStream fos;
- try {
- fos = new FileOutputStream(outputFile);
- bmp.compress(Bitmap.CompressFormat.PNG, 100, fos);
- fos.close();
- } catch (Exception e) {
- Log.e("SAVE_IMAGE", e.getMessage(), e);
- return;
- }
-
- activity.runOnUiThread(() -> {
- if (progressDialog != null)
- progressDialog.dismiss();
- new MaterialDialog.Builder(activity)
- .title(R.string.timetable_generate_success_title)
- .content(R.string.timetable_generate_success_text)
- .positiveText(R.string.share)
- .negativeText(R.string.open)
- .neutralText(R.string.do_nothing)
- .onPositive(((dialog, which) -> {
- Uri uri = Uri.parse("file://" + outputFile.getAbsolutePath());
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
- uri = FileProvider.getUriForFile(activity, app.getPackageName() + ".provider", outputFile);
- }
-
- Intent intent = new Intent(Intent.ACTION_SEND);
- intent.setDataAndType(null, "image/*");
- intent.putExtra(Intent.EXTRA_STREAM, uri);
- startActivity(Intent.createChooser(intent, getString(R.string.share_intent)));
- }))
- .onNegative(((dialog, which) -> {
- Uri uri = Uri.parse("file://" + outputFile.getAbsolutePath());
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
- uri = FileProvider.getUriForFile(activity, app.getPackageName() + ".provider", outputFile);
- }
-
- Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setDataAndType(uri, "image/*");
- intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
- startActivity(intent);
- }))
- .show();
- });
- }
- }
-
- static class Adapter extends FragmentPagerAdapter {
- private final List mFragmentList = new ArrayList<>();
- private final List mFragmentTitleList = new ArrayList<>();
-
- public Adapter(FragmentManager manager) {
- super(manager);
- }
-
- @Override
- public Fragment getItem(int position) {
- return mFragmentList.get(position);
- }
-
- @Override
- public int getCount() {
- return mFragmentList.size();
- }
-
- public void addFragment(Fragment fragment, String title) {
- mFragmentList.add(fragment);
- mFragmentTitleList.add(title);
- }
-
- @Override
- public CharSequence getPageTitle(int position) {
- return mFragmentTitleList.get(position);
- }
- }
-}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/v2/TimetableFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableFragment.kt
similarity index 98%
rename from app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/v2/TimetableFragment.kt
rename to app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableFragment.kt
index 63e6614d..fd0935e4 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/v2/TimetableFragment.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetableFragment.kt
@@ -1,4 +1,8 @@
-package pl.szczodrzynski.edziennik.ui.modules.timetable.v2
+/*
+ * Copyright (c) Kacper Ziubryniewicz 2020-1-6
+ */
+
+package pl.szczodrzynski.edziennik.ui.modules.timetable
import android.content.BroadcastReceiver
import android.content.Context
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/v2/TimetablePagerAdapter.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetablePagerAdapter.kt
similarity index 92%
rename from app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/v2/TimetablePagerAdapter.kt
rename to app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetablePagerAdapter.kt
index 9cb6f43c..eab85e18 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/v2/TimetablePagerAdapter.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/timetable/TimetablePagerAdapter.kt
@@ -1,10 +1,13 @@
-package pl.szczodrzynski.edziennik.ui.modules.timetable.v2
+/*
+ * Copyright (c) Kacper Ziubryniewicz 2020-1-6
+ */
+
+package pl.szczodrzynski.edziennik.ui.modules.timetable
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentStatePagerAdapter
-import pl.szczodrzynski.edziennik.ui.modules.timetable.v2.day.TimetableDayFragment
import pl.szczodrzynski.edziennik.utils.models.Date
import pl.szczodrzynski.edziennik.utils.models.Week
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/utils/models/ItemTimetableModel.java b/app/src/main/java/pl/szczodrzynski/edziennik/utils/models/ItemTimetableModel.java
deleted file mode 100644
index e9527793..00000000
--- a/app/src/main/java/pl/szczodrzynski/edziennik/utils/models/ItemTimetableModel.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package pl.szczodrzynski.edziennik.utils.models;
-
-import java.util.List;
-
-import pl.szczodrzynski.edziennik.data.db.modules.events.Event;
-import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonFull;
-
-public class ItemTimetableModel {
- public LessonFull lesson;
- public List events;
- public Date lessonDate;
-
- public ItemTimetableModel(LessonFull lesson, List events, Date lessonDate) {
- this.lesson = lesson;
- this.events = events;
- this.lessonDate = lessonDate;
- }
-}