Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 6.43 KB | None | 0 0
  1. fun setFiltersUiState(dialogView: View, prefs: SharedPreferences, context: Context){
  2.             val discoursesCheck = dialogView.findViewById<CheckBox>(R.id.filter_discourses)
  3.             val exercisesCheck = dialogView.findViewById<CheckBox>(R.id.filter_exercises)
  4.             val lecturesCheck = dialogView.findViewById<CheckBox>(R.id.filter_lectures)
  5.             discoursesCheck.isChecked = prefs.getBoolean(context.getString(R.string.PREFS_DISCOURSES_VISIBLE), true)
  6.             exercisesCheck.isChecked = prefs.getBoolean(context.getString(R.string.PREFS_EXERCISES_VISIBLE), true)
  7.             lecturesCheck.isChecked = prefs.getBoolean(context.getString(R.string.PREFS_LECTURES_VISIBLE), true)
  8.         }
  9.  
  10.         fun setFilters(dialogView: View, prefs:SharedPreferences, context: Context){
  11.             val discoursesCheck = dialogView.findViewById<CheckBox>(R.id.filter_discourses)
  12.             val exercisesCheck = dialogView.findViewById<CheckBox>(R.id.filter_exercises)
  13.             val lecturesCheck = dialogView.findViewById<CheckBox>(R.id.filter_lectures)
  14.             prefs.edit()
  15.                     .putBoolean(context.getString(R.string.PREFS_DISCOURSES_VISIBLE), discoursesCheck.isChecked)
  16.                     .putBoolean(context.getString(R.string.PREFS_EXERCISES_VISIBLE), exercisesCheck.isChecked)
  17.                     .putBoolean(context.getString(R.string.PREFS_LECTURES_VISIBLE), lecturesCheck.isChecked)
  18.                     .apply()
  19.         }
  20.  
  21.         fun addLessonToFilteredLessons(context: Context, scheduleItem: ScheduleItem){
  22.             val dbHelper = ScheduleDbHelper(context)
  23.             val db = dbHelper.writableDatabase
  24.             val calendar = Calendar.getInstance()
  25.             calendar.time = scheduleItem.startDate
  26.  
  27.             val values = ContentValues().apply{
  28.                 put(ScheduleContract.FilteredLessonEntry.LESSON_SUBJECT, scheduleItem.subject)
  29.                 put(ScheduleContract.FilteredLessonEntry.LESSON_TYPE, scheduleItem.type)
  30.                 put(ScheduleContract.FilteredLessonEntry.LESSON_TEACHER, scheduleItem.teacher)
  31.                 put(ScheduleContract.FilteredLessonEntry.LESSON_TEACHER_ID, scheduleItem.teacherId)
  32.                 put(ScheduleContract.FilteredLessonEntry.LESSON_DAY_OF_WEEK, scheduleItem.dayOfTheWeekStr)
  33.                 put(ScheduleContract.FilteredLessonEntry.LESSON_START_HOUR, "${calendar.get(Calendar.HOUR_OF_DAY)}:${calendar.get(Calendar.MINUTE)}")
  34.             }
  35.  
  36.             db.insert(ScheduleContract.FilteredLessonEntry.TABLE_NAME, null, values)
  37.  
  38.             val prefs = PreferenceManager.getDefaultSharedPreferences(context)
  39.             prefs.edit().putBoolean(context.getString(R.string.PREFS_REFRESH_SCHEDULE), true).apply()
  40.         }
  41.  
  42.         fun getFilteredLessons(context: Context): List<FilteredLesson>{
  43.             val dbHelper = ScheduleDbHelper(context)
  44.             val db = dbHelper.readableDatabase
  45.  
  46.             val cursor = db.query(
  47.                     ScheduleContract.FilteredLessonEntry.TABLE_NAME,
  48.                     arrayOf(
  49.                             ScheduleContract.FilteredLessonEntry._ID,
  50.                             ScheduleContract.FilteredLessonEntry.LESSON_SUBJECT,
  51.                             ScheduleContract.FilteredLessonEntry.LESSON_TYPE,
  52.                             ScheduleContract.FilteredLessonEntry.LESSON_TEACHER,
  53.                             ScheduleContract.FilteredLessonEntry.LESSON_TEACHER_ID,
  54.                             ScheduleContract.FilteredLessonEntry.LESSON_DAY_OF_WEEK,
  55.                             ScheduleContract.FilteredLessonEntry.LESSON_START_HOUR
  56.                     ),
  57.                     null,
  58.                     null,
  59.                     null,
  60.                     null,
  61.                     null
  62.             )
  63.  
  64.             val filteredLessonsList = mutableListOf<FilteredLesson>()
  65.  
  66.             try{
  67.                 cursor.moveToFirst()
  68.                 do{
  69.                     val filteredLesson = FilteredLesson(
  70.                             cursor.getInt(cursor.getColumnIndex(ScheduleContract.FilteredLessonEntry._ID)),
  71.                             cursor.getString(cursor.getColumnIndex(ScheduleContract.FilteredLessonEntry.LESSON_SUBJECT)),
  72.                             cursor.getString(cursor.getColumnIndex(ScheduleContract.FilteredLessonEntry.LESSON_TYPE)),
  73.                             cursor.getString(cursor.getColumnIndex(ScheduleContract.FilteredLessonEntry.LESSON_TEACHER)),
  74.                             cursor.getInt(cursor.getColumnIndex(ScheduleContract.FilteredLessonEntry.LESSON_TEACHER_ID)),
  75.                             cursor.getString(cursor.getColumnIndex(ScheduleContract.FilteredLessonEntry.LESSON_DAY_OF_WEEK)),
  76.                             cursor.getString(cursor.getColumnIndex(ScheduleContract.FilteredLessonEntry.LESSON_START_HOUR))
  77.                     )
  78.                     filteredLessonsList.add(filteredLesson)
  79.                 }while(cursor.moveToNext())
  80.  
  81.                 cursor.close()
  82.                 return filteredLessonsList
  83.             }catch(e: CursorIndexOutOfBoundsException){
  84.                 return emptyList()
  85.             }
  86.  
  87.         }
  88.  
  89.         fun removeFilteredLesson(id: Int, context: Context){
  90.             val db = ScheduleDbHelper(context).readableDatabase
  91.             db.delete(
  92.                     ScheduleContract.FilteredLessonEntry.TABLE_NAME,
  93.                     "${ScheduleContract.FilteredLessonEntry._ID}=?",
  94.                     arrayOf("$id")
  95.             )
  96.  
  97.             val prefs = PreferenceManager.getDefaultSharedPreferences(context)
  98.             prefs.edit().putBoolean(context.getString(R.string.PREFS_REFRESH_SCHEDULE), true).apply()
  99.         }
  100.  
  101.         private fun isInFilteredLessons(scheduleItem: ScheduleItem, filteredLessons: List<FilteredLesson>): Boolean{
  102.             val calendar = Calendar.getInstance()
  103.             calendar.time = scheduleItem.startDate
  104.             val startHour = "${calendar.get(Calendar.HOUR_OF_DAY)}:${calendar.get(Calendar.MINUTE)}"
  105.  
  106.             for(lesson in filteredLessons){
  107.                 if(lesson.subject == scheduleItem.subject
  108.                 && lesson.type == scheduleItem.type
  109.                 && lesson.teacher == scheduleItem.teacher
  110.                 && lesson.teacherId == scheduleItem.teacherId
  111.                 && lesson.dayOfWeek == scheduleItem.dayOfTheWeekStr
  112.                 && lesson.startHour == startHour){
  113.                     return true
  114.                 }
  115.             }
  116.             return false
  117.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement