Merge branch 'develop-v4'
Some checks failed
Push (master) / Build for Google Play (AAB) (push) Failing after 0s

This commit is contained in:
Kuba Szczodrzyński 2025-02-05 18:34:17 +01:00
commit 240216d6ec
No known key found for this signature in database
GPG Key ID: 43037AC62A600562
9 changed files with 39 additions and 16 deletions

View File

@ -13,6 +13,7 @@
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<!-- PowerPermission uses minSdk 21, it's safe to override as it is used only in >= 23 --> <!-- PowerPermission uses minSdk 21, it's safe to override as it is used only in >= 23 -->
<uses-sdk tools:overrideLibrary="com.qifan.powerpermission.coroutines, com.qifan.powerpermission.core" /> <uses-sdk tools:overrideLibrary="com.qifan.powerpermission.coroutines, com.qifan.powerpermission.core" />
@ -84,7 +85,7 @@
android:resource="@xml/widget_timetable_info" /> android:resource="@xml/widget_timetable_info" />
</receiver> </receiver>
<service android:name=".ui.widgets.timetable.WidgetTimetableService" <service android:name=".ui.widgets.timetable.WidgetTimetableService"
android:permission="android.permission.BIND_REMOTEVIEWS" /> android:permission="android.permission.BIND_REMOTEVIEWS" android:foregroundServiceType="dataSync" />
<activity android:name=".ui.widgets.LessonDialogActivity" <activity android:name=".ui.widgets.LessonDialogActivity"
android:label="" android:label=""
android:configChanges="orientation|keyboardHidden" android:configChanges="orientation|keyboardHidden"
@ -105,7 +106,7 @@
android:resource="@xml/widget_notifications_info" /> android:resource="@xml/widget_notifications_info" />
</receiver> </receiver>
<service android:name=".ui.widgets.notifications.WidgetNotificationsService" <service android:name=".ui.widgets.notifications.WidgetNotificationsService"
android:permission="android.permission.BIND_REMOTEVIEWS" /> android:permission="android.permission.BIND_REMOTEVIEWS" android:foregroundServiceType="dataSync" />
<!-- LUCKY NUMBER --> <!-- LUCKY NUMBER -->
<receiver android:name=".ui.widgets.luckynumber.WidgetLuckyNumberProvider" <receiver android:name=".ui.widgets.luckynumber.WidgetLuckyNumberProvider"
android:label="@string/widget_lucky_number_title" android:label="@string/widget_lucky_number_title"
@ -202,15 +203,15 @@
____) | __/ | \ V /| | (_| __/\__ \ ____) | __/ | \ V /| | (_| __/\__ \
|_____/ \___|_| \_/ |_|\___\___||___/ |_____/ \___|_| \_/ |_|\___\___||___/
--> -->
<service android:name=".data.api.ApiService" /> <service android:name=".data.api.ApiService" android:foregroundServiceType="dataSync" />
<service android:name=".data.firebase.MyFirebaseService" <service android:name=".data.firebase.MyFirebaseService"
android:exported="false"> android:exported="false" android:foregroundServiceType="dataSync">
<intent-filter android:priority="10000000"> <intent-filter android:priority="10000000">
<action android:name="com.google.firebase.MESSAGING_EVENT" /> <action android:name="com.google.firebase.MESSAGING_EVENT" />
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter> </intent-filter>
</service> </service>
<service android:name=".sync.UpdateDownloaderService" /> <service android:name=".sync.UpdateDownloaderService" android:foregroundServiceType="dataSync" />
<!-- <!--
_____ _ _ _____ _ _

View File

@ -1,9 +1,11 @@
<h3>Wersja 4.14, 2025-02-02</h3> <h3>Wersja 4.14.1, 2025-02-05</h3>
<ul> <ul>
<li>USOS: <b>dodano obsługę ocen</b>.</li> <li>USOS: <b>dodano obsługę ocen</b>.</li>
<li>USOS: obliczanie średniej za studia oraz punktów ECTS.</li> <li>USOS: obliczanie średniej za studia oraz punktów ECTS.</li>
<li>USOS: poprawiono brak planu zajęć po rozpoczęciu roku.</li> <li>USOS: poprawiono brak planu zajęć po rozpoczęciu roku.</li>
<li>Wyłączono archiwizator profili.</li> <li>Wyłączono archiwizator profili.</li>
<li>Naprawiono zatrzymanie aplikacji na Androidzie 14.</li>
<li>Udostępniono opcję wyłączania śniegu również w lutym.</li>
</ul> </ul>
<br> <br>
<br> <br>

View File

@ -9,7 +9,7 @@
/*secret password - removed for source code publication*/ /*secret password - removed for source code publication*/
static toys AES_IV[16] = { static toys AES_IV[16] = {
0xee, 0x23, 0xf1, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; 0x58, 0x51, 0x7b, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat); unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat);

View File

@ -15,6 +15,8 @@ import android.view.Gravity
import android.view.View import android.view.View
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.graphics.ColorUtils import androidx.core.graphics.ColorUtils
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.navigation.NavOptions import androidx.navigation.NavOptions
@ -829,7 +831,12 @@ class MainActivity : AppCompatActivity(), CoroutineScope {
d(TAG, "Activity resumed") d(TAG, "Activity resumed")
val filter = IntentFilter() val filter = IntentFilter()
filter.addAction(Intent.ACTION_MAIN) filter.addAction(Intent.ACTION_MAIN)
registerReceiver(intentReceiver, filter) ActivityCompat.registerReceiver(
this,
intentReceiver,
filter,
ContextCompat.RECEIVER_EXPORTED,
)
EventBus.getDefault().register(this) EventBus.getDefault().register(this)
super.onResume() super.onResume()
} }

View File

@ -46,6 +46,6 @@ object Signing {
/*fun provideKey(param1: String, param2: Long): ByteArray {*/ /*fun provideKey(param1: String, param2: Long): ByteArray {*/
fun pleaseStopRightNow(param1: String, param2: Long): ByteArray { fun pleaseStopRightNow(param1: String, param2: Long): ByteArray {
return "$param1.MTIzNDU2Nzg5MDADAoYzGn===.$param2".sha256() return "$param1.MTIzNDU2Nzg5MD4QLcHOGI===.$param2".sha256()
} }
} }

View File

@ -26,7 +26,7 @@ class SettingsThemeCard(util: SettingsUtil) : SettingsCard(util) {
) )
override fun getItems(card: MaterialAboutCard) = listOfNotNull( override fun getItems(card: MaterialAboutCard) = listOfNotNull(
if (Date.getToday().month % 11 == 1) // cool math games if (Date.getToday().month / 3 % 4 == 0) // cool math games
util.createPropertyItem( util.createPropertyItem(
text = R.string.settings_theme_snowfall_text, text = R.string.settings_theme_snowfall_text,
subText = R.string.settings_theme_snowfall_subtext, subText = R.string.settings_theme_snowfall_subtext,

View File

@ -14,6 +14,8 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.google.android.material.datepicker.MaterialDatePicker import com.google.android.material.datepicker.MaterialDatePicker
@ -90,8 +92,18 @@ class TimetableFragment : Fragment(), CoroutineScope {
} }
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
activity.registerReceiver(broadcastReceiver, IntentFilter(ACTION_SCROLL_TO_DATE)) ActivityCompat.registerReceiver(
activity.registerReceiver(broadcastReceiver, IntentFilter(ACTION_RELOAD_PAGES)) activity,
broadcastReceiver,
IntentFilter(ACTION_SCROLL_TO_DATE),
ContextCompat.RECEIVER_EXPORTED
)
ActivityCompat.registerReceiver(
activity,
broadcastReceiver,
IntentFilter(ACTION_RELOAD_PAGES),
ContextCompat.RECEIVER_EXPORTED
)
} }
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()

View File

@ -5,6 +5,7 @@
package pl.szczodrzynski.edziennik.ui.widgets.timetable package pl.szczodrzynski.edziennik.ui.widgets.timetable
import android.app.PendingIntent import android.app.PendingIntent
import android.app.PendingIntent.FLAG_UPDATE_CURRENT
import android.appwidget.AppWidgetManager import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider import android.appwidget.AppWidgetProvider
import android.content.ComponentName import android.content.ComponentName
@ -395,7 +396,7 @@ class WidgetTimetableProvider : AppWidgetProvider() {
} }
} }
headerIntent.putExtras("fragmentId" to NavTarget.TIMETABLE) headerIntent.putExtras("fragmentId" to NavTarget.TIMETABLE)
val headerPendingIntent = PendingIntent.getActivity(app, appWidgetId, headerIntent, pendingIntentMutable()) val headerPendingIntent = PendingIntent.getActivity(app, appWidgetId, headerIntent, FLAG_UPDATE_CURRENT or pendingIntentMutable())
views.setOnClickPendingIntent(R.id.widgetTimetableHeader, headerPendingIntent) views.setOnClickPendingIntent(R.id.widgetTimetableHeader, headerPendingIntent)
timetables!!.put(appWidgetId, models) timetables!!.put(appWidgetId, models)
@ -409,7 +410,7 @@ class WidgetTimetableProvider : AppWidgetProvider() {
// create an intent used to display the lesson details dialog // create an intent used to display the lesson details dialog
val itemIntent = Intent(app, LessonDialogActivity::class.java) val itemIntent = Intent(app, LessonDialogActivity::class.java)
itemIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK/* or Intent.FLAG_ACTIVITY_CLEAR_TASK*/) itemIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK/* or Intent.FLAG_ACTIVITY_CLEAR_TASK*/)
val itemPendingIntent = PendingIntent.getActivity(app, appWidgetId, itemIntent, pendingIntentMutable()) val itemPendingIntent = PendingIntent.getActivity(app, appWidgetId, itemIntent, FLAG_UPDATE_CURRENT or pendingIntentMutable())
views.setPendingIntentTemplate(R.id.widgetTimetableListView, itemPendingIntent) views.setPendingIntentTemplate(R.id.widgetTimetableListView, itemPendingIntent)
if (!unified) if (!unified)

View File

@ -5,8 +5,8 @@ buildscript {
kotlin_version = '1.6.10' kotlin_version = '1.6.10'
release = [ release = [
versionName: "4.14", versionName: "4.14.1",
versionCode: 4140099 versionCode: 4140199
] ]
setup = [ setup = [