From 58e412af3c5c2d439518e20818dff1ec44bb4c16 Mon Sep 17 00:00:00 2001 From: Odweta Date: Tue, 27 Feb 2024 20:27:00 +0100 Subject: [PATCH] visual bugfixes, textsize things, yes --- mobile/.idea/deploymentTargetDropDown.xml | 15 +------- .../java/com/odweta/solon/CalWeekFragment.kt | 35 ++++++++++--------- .../java/com/odweta/solon/MainActivity.kt | 16 +++++---- .../java/com/odweta/solon/MainFragment.kt | 2 +- .../com/odweta/solon/MarkDetailsFragment.kt | 2 +- .../java/com/odweta/solon/MarksFragment.kt | 5 ++- .../src/main/java/com/odweta/solon/Util.kt | 14 ++++++++ .../src/main/res/layout/activity_about.xml | 18 ++-------- 8 files changed, 48 insertions(+), 59 deletions(-) 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