diff --git a/app/src/main/java/io/github/wulkanowy/data/repositories/PreferencesRepository.kt b/app/src/main/java/io/github/wulkanowy/data/repositories/PreferencesRepository.kt
index 430a6cac..205baa3a 100644
--- a/app/src/main/java/io/github/wulkanowy/data/repositories/PreferencesRepository.kt
+++ b/app/src/main/java/io/github/wulkanowy/data/repositories/PreferencesRepository.kt
@@ -24,8 +24,11 @@ class PreferencesRepository @Inject constructor(
val currentTheme: Int
get() = sharedPref.getString(currentThemeKey, "1")?.toInt() ?: 1
- val gradeModifier: Double
- get() = sharedPref.getString(context.getString(R.string.pref_key_grade_modifier), "0.0")?.toDouble() ?: 0.0
+ val gradePlusModifier: Double
+ get() = sharedPref.getString(context.getString(R.string.pref_key_grade_modifier_plus), "0.0")?.toDouble() ?: 0.0
+
+ val gradeMinusModifier: Double
+ get() = sharedPref.getString(context.getString(R.string.pref_key_grade_modifier_minus), "0.0")?.toDouble() ?: 0.0
val serviceEnablesKey: String = context.getString(R.string.pref_key_services_enable)
val isServiceEnabled: Boolean
diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt
index c17c2402..241b9f68 100644
--- a/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt
+++ b/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt
@@ -34,7 +34,7 @@ class GradeDetailsPresenter @Inject constructor(
disposable.add(studentRepository.getCurrentStudent()
.flatMap { semesterRepository.getSemesters(it) }
.flatMap { gradeRepository.getGrades(it.first { item -> item.semesterId == semesterId }, forceRefresh) }
- .map { it.map { item -> item.changeModifier(preferencesRepository.gradeModifier) } }
+ .map { it.map { item -> item.changeModifier(preferencesRepository.gradePlusModifier, preferencesRepository.gradeMinusModifier) } }
.map { createGradeItems(it.groupBy { grade -> grade.subject }.toSortedMap()) }
.subscribeOn(schedulers.backgroundThread)
.observeOn(schedulers.mainThread)
diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/grade/summary/GradeSummaryPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/grade/summary/GradeSummaryPresenter.kt
index f844995e..2715aac4 100644
--- a/app/src/main/java/io/github/wulkanowy/ui/modules/grade/summary/GradeSummaryPresenter.kt
+++ b/app/src/main/java/io/github/wulkanowy/ui/modules/grade/summary/GradeSummaryPresenter.kt
@@ -40,7 +40,7 @@ class GradeSummaryPresenter @Inject constructor(
.flatMap { gradesSummary ->
gradeRepository.getGrades(it, forceRefresh)
.map { grades ->
- grades.map { item -> item.changeModifier(preferencesRepository.gradeModifier) }
+ grades.map { item -> item.changeModifier(preferencesRepository.gradePlusModifier, preferencesRepository.gradeMinusModifier) }
.groupBy { grade -> grade.subject }
.mapValues { entry -> entry.value.calcAverage() }
.filterValues { value -> value != 0.0 }
diff --git a/app/src/main/java/io/github/wulkanowy/utils/GradeExtension.kt b/app/src/main/java/io/github/wulkanowy/utils/GradeExtension.kt
index b75cca1a..638bf364 100644
--- a/app/src/main/java/io/github/wulkanowy/utils/GradeExtension.kt
+++ b/app/src/main/java/io/github/wulkanowy/utils/GradeExtension.kt
@@ -47,9 +47,14 @@ inline val Grade.colorStringId: Int
}
}
-fun Grade.changeModifier(newModifier: Double): Grade {
- if (modifier != 0.0 && newModifier != 0.0) {
- modifier = if (modifier > 0) newModifier else -newModifier
+fun Grade.changeModifier(plusModifier: Double, minusModifier: Double): Grade {
+ if (modifier != 0.0) {
+ if (plusModifier != 0.0 && modifier > 0) {
+ modifier = plusModifier
+ }
+ if (minusModifier != .0 && modifier < 0) {
+ modifier = -minusModifier
+ }
}
return this
-}
\ No newline at end of file
+}
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 79a51e2a..1fd97160 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -217,7 +217,8 @@
Pokazuj podsumowanie w ocenach
Pokazuj obecność we frekwencji
Ciemny motyw (Beta)
- Wartość plusa i minusa
+ Wartość plusa
+ Wartość minusa
Rozwiń oceny
Powiadomienia
diff --git a/app/src/main/res/values/preferences_keys.xml b/app/src/main/res/values/preferences_keys.xml
index cd0a9a65..ea2585e7 100644
--- a/app/src/main/res/values/preferences_keys.xml
+++ b/app/src/main/res/values/preferences_keys.xml
@@ -3,7 +3,8 @@
start_menu
attendance_present
theme
- grade_modifier
+ grade_modifier_plus
+ grade_modifier_minus
expand_grade
services_enable
services_interval
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 201d311a..fb955f3b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -199,7 +199,8 @@
Show the summary in the grades
Show presence in attendance
Dark theme (Beta)
- Value of the plus and minus
+ Value of the plus
+ Value of the minus
Expand grades
Notifications
diff --git a/app/src/main/res/xml/scheme_preferences.xml b/app/src/main/res/xml/scheme_preferences.xml
index 27addc83..1ba8885a 100644
--- a/app/src/main/res/xml/scheme_preferences.xml
+++ b/app/src/main/res/xml/scheme_preferences.xml
@@ -34,9 +34,17 @@
android:defaultValue="0.0"
android:entries="@array/grade_modifier_entries"
android:entryValues="@array/grade_modifier_value"
- android:key="@string/pref_key_grade_modifier"
+ android:key="@string/pref_key_grade_modifier_plus"
android:summary="%s"
- android:title="@string/pref_view_grade_modifier"
+ android:title="@string/pref_view_grade_modifier_plus"
+ app:iconSpaceReserved="false" />
+