diff --git a/mobile/.idea/deploymentTargetDropDown.xml b/mobile/.idea/deploymentTargetDropDown.xml
index 5b2ee27..0c0c338 100644
--- a/mobile/.idea/deploymentTargetDropDown.xml
+++ b/mobile/.idea/deploymentTargetDropDown.xml
@@ -3,20 +3,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt b/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt
index 987d1f3..1ebbb99 100644
--- a/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/CalWeekFragment.kt
@@ -27,6 +27,7 @@ import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import java.time.LocalDate
import java.time.LocalTime
+import android.util.Log
import java.time.MonthDay
import kotlin.math.floor
import kotlin.time.Duration.Companion.days
@@ -278,6 +279,7 @@ class DayFragment(private val i: Int) : Fragment() {
prevSubj.free = false
for ((i, subj) in day.subjects.withIndex()) {
+ Log.d("debug", "${subj.name} ${subj.substitute}")
val subjectBackground = when (subj.substitute) {
"0" -> if (subj.place != "Volno") {
R.color.primary_transparent_bg
@@ -370,7 +372,7 @@ class DayFragment(private val i: Int) : Fragment() {
frameLayout.addView(subjectNumberTextView)
- if (day.subjects[0].substitute != "2") {
+ if (subj.substitute != "2") {
subjectLayout.addView(frameLayout)
}
@@ -380,7 +382,7 @@ class DayFragment(private val i: Int) : Fragment() {
}
subjectNameTextView.typeface = customFont
subjectNameTextView.textSize = 27f
- subjectNameTextView.setPadding(60, 35, 20, 35)
+ subjectNameTextView.setPadding(60, 35, 0, 35)
subjectNameTextView.textAlignment = View.TEXT_ALIGNMENT_CENTER
subjectNameTextView.gravity = Gravity.CENTER_VERTICAL
if (subj.name != "Volno") {
@@ -394,7 +396,7 @@ class DayFragment(private val i: Int) : Fragment() {
)
if (subj.free) {
- subjectNameTextView.setPadding(260, 35, 20, 35)
+ subjectNameTextView.setPadding(260, 35, 10, 35)
}
subjectLayout.addView(subjectNameTextView)
@@ -403,10 +405,11 @@ class DayFragment(private val i: Int) : Fragment() {
subjectPlaceTextView.typeface = customFont
subjectPlaceTextView.text = subj.place
if (subj.free) {
- // underline
+ // italic
subjectPlaceTextView.setTypeface(customFont, Typeface.ITALIC)
}
- subjectPlaceTextView.textSize = 22f
+ subjectPlaceTextView.textSize = 20f
+ subjectPlaceTextView.setAutoSizeTextTypeUniformWithConfiguration(40, 60, 1, 0)
subjectPlaceTextView.gravity = Gravity.CENTER_VERTICAL
subjectPlaceTextView.setTextColor(
ContextCompat.getColor(
@@ -418,12 +421,12 @@ class DayFragment(private val i: Int) : Fragment() {
if (subj.free) {
subjectPlaceTextView.layoutParams =
LinearLayout.LayoutParams(
- 220,
+ 230,
LinearLayout.LayoutParams.MATCH_PARENT
)
}
- if (day.subjects[0].substitute != "2") {
+ if (subj.substitute != "2") {
subjectLayout.addView(subjectPlaceTextView)
}
@@ -442,7 +445,7 @@ class DayFragment(private val i: Int) : Fragment() {
val subjectTimeString = subj.start + "–" + subj.end
subjectTimeTextView.typeface = customFont
subjectTimeTextView.text = subjectTimeString
- subjectTimeTextView.textSize = 20f
+ subjectTimeTextView.textSize = 17f
subjectTimeTextView.setPadding(10, 0, 20, 0)
subjectTimeTextView.textAlignment = View.TEXT_ALIGNMENT_TEXT_END
subjectTimeTextView.setTextColor(
@@ -455,7 +458,7 @@ class DayFragment(private val i: Int) : Fragment() {
val subjectTeacherTextView = TextView(requireContext())
subjectTeacherTextView.text = subj.teacher
subjectTeacherTextView.typeface = customFont
- subjectTeacherTextView.textSize = 12f
+ subjectTeacherTextView.textSize = 11f
subjectTeacherTextView.setPadding(0, 0, 20, 10)
subjectTeacherTextView.textAlignment = View.TEXT_ALIGNMENT_TEXT_END
subjectTeacherTextView.setTextColor(
@@ -472,7 +475,7 @@ class DayFragment(private val i: Int) : Fragment() {
}
timeTeacherLayout.setPadding(0, 0, 10, 0)
- if (day.subjects[0].substitute != "2") {
+ if (subj.substitute != "2") {
subjectLayout.addView(timeTeacherLayout)
}
@@ -505,9 +508,9 @@ class DayFragment(private val i: Int) : Fragment() {
rootLayout.viewTreeObserver.removeOnPreDrawListener(this)
// Call your function or perform an action here
- if (day.subjects[0].substitute != "2") {
+ if (subj.substitute != "2") {
subjectPlaceTextView.setPadding(
- 400 - frameLayout.width - subjectNameTextView.width,
+ 380 - frameLayout.width - subjectNameTextView.width,
20,
20,
20
@@ -625,11 +628,9 @@ class DayFragment(private val i: Int) : Fragment() {
)
dayEndTextView.layoutParams = endParams
- if (day.subjects[0].substitute != "2") {
- dayLayout.addView(dayEndSeparator)
- dayLayout.addView(dayEndTextView)
- dayLayout.addView(dayEndSeparator2)
- }
+ dayLayout.addView(dayEndSeparator)
+ dayLayout.addView(dayEndTextView)
+ dayLayout.addView(dayEndSeparator2)
scrollView.addView(dayLayout)
diff --git a/mobile/app/src/main/java/com/odweta/solon/MainActivity.kt b/mobile/app/src/main/java/com/odweta/solon/MainActivity.kt
index 4a8f143..05eef7b 100644
--- a/mobile/app/src/main/java/com/odweta/solon/MainActivity.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/MainActivity.kt
@@ -321,15 +321,17 @@ class MainActivity : AppCompatActivity(), MainActivityListener {
// Fragment Transition
private fun ft(container: Int, frag: Fragment, animIn: Int, animOut: Int) {
- val ft = supportFragmentManager.beginTransaction()
+ if (Util.isAppInForeground(applicationContext, packageName)) {
+ val ft = supportFragmentManager.beginTransaction()
- ft.setCustomAnimations(
- animIn,
- animOut
- )
+ ft.setCustomAnimations(
+ animIn,
+ animOut
+ )
- ft.replace(container, frag)
+ ft.replace(container, frag)
- ft.commit()
+ ft.commit()
+ }
}
}
\ No newline at end of file
diff --git a/mobile/app/src/main/java/com/odweta/solon/MainFragment.kt b/mobile/app/src/main/java/com/odweta/solon/MainFragment.kt
index 2a64b89..e7b3f16 100644
--- a/mobile/app/src/main/java/com/odweta/solon/MainFragment.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/MainFragment.kt
@@ -150,7 +150,7 @@ class MainFragment : Fragment() {
private fun fetchNewData() {
lifecycleScope.launch {
done = false
- while (!done) {
+ while (!done || !Util.internetAvail(requireContext())) {
toolbar.text = String.format("%s", "Načítání nových dat")
delay(300)
toolbar.text = String.format("%s", "Načítání nových dat.")
diff --git a/mobile/app/src/main/java/com/odweta/solon/MarkDetailsFragment.kt b/mobile/app/src/main/java/com/odweta/solon/MarkDetailsFragment.kt
index 36990ed..4a5a65e 100644
--- a/mobile/app/src/main/java/com/odweta/solon/MarkDetailsFragment.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/MarkDetailsFragment.kt
@@ -148,7 +148,7 @@ class MarkDetailsFragment(private val marks: MutableList, private var idx:
gradeTV.setTextColor(ContextCompat.getColor(requireContext(), R.color.white))
- val subjectDesc = makeTV("Předmět:", Typeface.BOLD, Util.getDisplayWidth(requireContext())/3)
+ val subjectDesc = makeTV("Předmět:", Typeface.BOLD, Util.getDisplayWidth(requireContext())/2)
val subjectTV = makeTV(Vars.subjectNameMap[marks[idx!!].subject] ?: marks[idx!!].subject, Typeface.NORMAL, 22f)
val descDesc = makeTV("Popis:", Typeface.BOLD, Util.getDisplayWidth(requireContext())/3)
diff --git a/mobile/app/src/main/java/com/odweta/solon/MarksFragment.kt b/mobile/app/src/main/java/com/odweta/solon/MarksFragment.kt
index 9a0df6c..467f060 100644
--- a/mobile/app/src/main/java/com/odweta/solon/MarksFragment.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/MarksFragment.kt
@@ -34,7 +34,6 @@ class MarksFragment : Fragment() {
if (Vars.marksAvailOffline && !Util.fileIsEmpty(Vars.marksFilePath)) {
Vars.marksJSON = Util.fileToString(Vars.marksFilePath)
- Vars.marksAvailOffline = Util.saveStringToFile(Vars.marksFilePath, Vars.marksJSON)
Vars.marks = Parsing.parseMarksJSON(Vars.marksJSON)
} else {
lifecycleScope.launch {
@@ -156,7 +155,7 @@ class MarksFragment : Fragment() {
val subjectTextView = TextView(requireContext())
subjectTextView.text = marks[0].subject.uppercase()
subjectTextView.setPadding(20, 20, 20, 20)
- subjectTextView.textSize = 30f
+ subjectTextView.textSize = 26f
subjectTextView.setTextColor(
ContextCompat.getColor(
requireContext(),
@@ -183,7 +182,7 @@ class MarksFragment : Fragment() {
"-"
}
avgTextView.text = text
- avgTextView.textSize = 30f
+ avgTextView.textSize = 26f
avgTextView.setPadding(20, 20, 20, 20)
avgTextView.gravity = Gravity.CENTER // Center text vertically
avgTextView.setTypeface(customFont, Typeface.NORMAL)
diff --git a/mobile/app/src/main/java/com/odweta/solon/Util.kt b/mobile/app/src/main/java/com/odweta/solon/Util.kt
index cecda9e..eaf6e5e 100644
--- a/mobile/app/src/main/java/com/odweta/solon/Util.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/Util.kt
@@ -5,6 +5,7 @@ import android.animation.AnimatorInflater
import android.animation.AnimatorListenerAdapter
import android.animation.ArgbEvaluator
import android.animation.ValueAnimator
+import android.app.ActivityManager
import android.content.Context
import android.content.res.ColorStateList
import android.content.res.Resources
@@ -123,6 +124,19 @@ class Util {
}
}
+ fun isAppInForeground(context: Context, packageName: String): Boolean {
+ val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
+ val runningAppProcesses = activityManager.runningAppProcesses ?: return false
+
+ for (processInfo in runningAppProcesses) {
+ if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND &&
+ processInfo.processName == packageName) {
+ return true
+ }
+ }
+ return false
+ }
+
fun pixelsToDp(pixels: Int, resources: Resources): Int {
return (pixels * resources.displayMetrics.density).toInt()
}
diff --git a/mobile/app/src/main/res/layout/activity_about.xml b/mobile/app/src/main/res/layout/activity_about.xml
index b0d2fca..7786a7a 100644
--- a/mobile/app/src/main/res/layout/activity_about.xml
+++ b/mobile/app/src/main/res/layout/activity_about.xml
@@ -110,30 +110,16 @@
app:layout_constraintTop_toBottomOf="@+id/textView"
app:layout_constraintVertical_bias="0.3" />
-
-
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/textView" />
\ No newline at end of file