forked from github/szkolny
Merge branch 'develop'
This commit is contained in:
commit
6b75715e87
@ -64,6 +64,6 @@
|
|||||||
|
|
||||||
-keep class pl.szczodrzynski.edziennik.data.api.szkolny.interceptor.Signing { public final byte[] pleaseStopRightNow(java.lang.String, long); }
|
-keep class pl.szczodrzynski.edziennik.data.api.szkolny.interceptor.Signing { public final byte[] pleaseStopRightNow(java.lang.String, long); }
|
||||||
|
|
||||||
-keepclassmembernames class pl.szczodrzynski.edziennik.data.api.szkolny.request.** { *; }
|
-keepclassmembers class pl.szczodrzynski.edziennik.data.api.szkolny.request.** { *; }
|
||||||
-keepclassmembernames class pl.szczodrzynski.edziennik.data.api.szkolny.response.** { *; }
|
-keepclassmembers class pl.szczodrzynski.edziennik.data.api.szkolny.response.** { *; }
|
||||||
-keepclassmembernames class pl.szczodrzynski.edziennik.ui.modules.login.LoginInfo.Platform { *; }
|
-keepclassmembernames class pl.szczodrzynski.edziennik.ui.modules.login.LoginInfo.Platform { *; }
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
<h3>Wersja 4.4.1, 2020-09-03</h3>
|
<h3>Wersja 4.4.2, 2020-09-05</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Poprawione komunikaty o aktualizacjach aplikacji.</li>
|
<li>Poprawione komunikaty o aktualizacjach aplikacji.</li>
|
||||||
<li>Mobidziennik: poprawione wyświetlanie przedmiotu w planie lekcji.</li>
|
<li>Mobidziennik: poprawione wyświetlanie przedmiotu w planie lekcji.</li>
|
||||||
<li>Mobidziennik: naprawiony moduł frekwencji.</li>
|
<li>Mobidziennik: naprawiony moduł frekwencji.</li>
|
||||||
|
<li>Naprawione zatrzymanie aplikacji na ekranie logowania.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
@ -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] = {
|
||||||
0x72, 0x4b, 0x61, 0x3a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
0x1a, 0xcd, 0xf0, 0x80, 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);
|
||||||
|
|
||||||
|
@ -647,7 +647,7 @@ class MainActivity : AppCompatActivity(), CoroutineScope {
|
|||||||
|
|
||||||
app.profile.registerName?.let { registerName ->
|
app.profile.registerName?.let { registerName ->
|
||||||
var status = app.config.sync.registerAvailability[registerName]
|
var status = app.config.sync.registerAvailability[registerName]
|
||||||
if (status == null || status.nextCheck < currentTimeUnix()) {
|
if (status == null || status.nextCheckAt < currentTimeUnix()) {
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
val api = SzkolnyApi(app)
|
val api = SzkolnyApi(app)
|
||||||
api.runCatching(this@MainActivity) {
|
api.runCatching(this@MainActivity) {
|
||||||
|
@ -93,7 +93,7 @@ open class EdziennikTask(override val profileId: Int, val request: Any) : IApiTa
|
|||||||
|
|
||||||
profile.registerName?.let { registerName ->
|
profile.registerName?.let { registerName ->
|
||||||
var status = app.config.sync.registerAvailability[registerName]
|
var status = app.config.sync.registerAvailability[registerName]
|
||||||
if (status == null || status.nextCheck < currentTimeUnix()) {
|
if (status == null || status.nextCheckAt < currentTimeUnix()) {
|
||||||
val api = SzkolnyApi(app)
|
val api = SzkolnyApi(app)
|
||||||
api.runCatching({
|
api.runCatching({
|
||||||
val availability = getRegisterAvailability()
|
val availability = getRegisterAvailability()
|
||||||
|
@ -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.MTIzNDU2Nzg5MDv1BTei5k===.$param2".sha256()
|
return "$param1.MTIzNDU2Nzg5MDx45DzIF8===.$param2".sha256()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,8 @@ import pl.szczodrzynski.edziennik.currentTimeUnix
|
|||||||
data class RegisterAvailabilityStatus(
|
data class RegisterAvailabilityStatus(
|
||||||
val available: Boolean,
|
val available: Boolean,
|
||||||
val name: String?,
|
val name: String?,
|
||||||
val message: Message?,
|
val userMessage: Message?,
|
||||||
val nextCheck: Long = currentTimeUnix() + 7 * DAY,
|
val nextCheckAt: Long = currentTimeUnix() + 7 * DAY,
|
||||||
val minVersionCode: Int = BuildConfig.VERSION_CODE
|
val minVersionCode: Int = BuildConfig.VERSION_CODE
|
||||||
) {
|
) {
|
||||||
data class Message(
|
data class Message(
|
||||||
|
@ -47,14 +47,14 @@ class RegisterUnavailableDialog(
|
|||||||
onShowListener?.invoke(TAG)
|
onShowListener?.invoke(TAG)
|
||||||
app = activity.applicationContext as App
|
app = activity.applicationContext as App
|
||||||
|
|
||||||
if (!status.available && status.message != null) {
|
if (!status.available && status.userMessage != null) {
|
||||||
val b = DialogRegisterUnavailableBinding.inflate(LayoutInflater.from(activity), null, false)
|
val b = DialogRegisterUnavailableBinding.inflate(LayoutInflater.from(activity), null, false)
|
||||||
b.message = status.message
|
b.message = status.userMessage
|
||||||
if (status.message.image != null)
|
if (status.userMessage.image != null)
|
||||||
b.image.load(status.message.image)
|
b.image.load(status.userMessage.image)
|
||||||
if (status.message.url != null) {
|
if (status.userMessage.url != null) {
|
||||||
b.readMore.onClick {
|
b.readMore.onClick {
|
||||||
Utils.openUrl(activity, status.message.url)
|
Utils.openUrl(activity, status.userMessage.url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b.text.movementMethod = LinkMovementMethod.getInstance()
|
b.text.movementMethod = LinkMovementMethod.getInstance()
|
||||||
@ -67,6 +67,7 @@ class RegisterUnavailableDialog(
|
|||||||
onDismissListener?.invoke(TAG)
|
onDismissListener?.invoke(TAG)
|
||||||
}
|
}
|
||||||
.show()
|
.show()
|
||||||
|
return@run
|
||||||
}
|
}
|
||||||
|
|
||||||
val update = app.config.update
|
val update = app.config.update
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
|
|
||||||
package pl.szczodrzynski.edziennik.ui.modules.home.cards
|
package pl.szczodrzynski.edziennik.ui.modules.home.cards
|
||||||
|
|
||||||
import android.text.Html
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
|
import androidx.core.text.HtmlCompat
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.core.view.plusAssign
|
import androidx.core.view.plusAssign
|
||||||
import androidx.core.view.setMargins
|
import androidx.core.view.setMargins
|
||||||
@ -58,13 +58,13 @@ class HomeAvailabilityCard(
|
|||||||
|
|
||||||
var onInfoClick = { _: View -> }
|
var onInfoClick = { _: View -> }
|
||||||
|
|
||||||
if (status != null && !status.available && status.message != null) {
|
if (status != null && !status.available && status.userMessage != null) {
|
||||||
b.homeAvailabilityTitle.text = Html.fromHtml(status.message.title)
|
b.homeAvailabilityTitle.text = HtmlCompat.fromHtml(status.userMessage.title, HtmlCompat.FROM_HTML_MODE_LEGACY)
|
||||||
b.homeAvailabilityText.text = Html.fromHtml(status.message.contentShort)
|
b.homeAvailabilityText.text = HtmlCompat.fromHtml(status.userMessage.contentShort, HtmlCompat.FROM_HTML_MODE_LEGACY)
|
||||||
b.homeAvailabilityUpdate.isVisible = false
|
b.homeAvailabilityUpdate.isVisible = false
|
||||||
b.homeAvailabilityIcon.setImageResource(R.drawable.ic_sync)
|
b.homeAvailabilityIcon.setImageResource(R.drawable.ic_sync)
|
||||||
if (status.message.icon != null)
|
if (status.userMessage.icon != null)
|
||||||
b.homeAvailabilityIcon.load(status.message.icon)
|
b.homeAvailabilityIcon.load(status.userMessage.icon)
|
||||||
onInfoClick = {
|
onInfoClick = {
|
||||||
RegisterUnavailableDialog(activity, status)
|
RegisterUnavailableDialog(activity, status)
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,7 @@ class LoginChooserFragment : Fragment(), CoroutineScope {
|
|||||||
else -> null
|
else -> null
|
||||||
}?.let { registerName ->
|
}?.let { registerName ->
|
||||||
var status = app.config.sync.registerAvailability[registerName]
|
var status = app.config.sync.registerAvailability[registerName]
|
||||||
if (status == null || status.nextCheck < currentTimeUnix()) {
|
if (status == null || status.nextCheckAt < currentTimeUnix()) {
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
val api = SzkolnyApi(app)
|
val api = SzkolnyApi(app)
|
||||||
api.runCatching(activity) {
|
api.runCatching(activity) {
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<data>
|
<data>
|
||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
<import type="android.text.Html" />
|
<import type="androidx.core.text.HtmlCompat" />
|
||||||
<variable
|
<variable
|
||||||
name="message"
|
name="message"
|
||||||
type="pl.szczodrzynski.edziennik.data.api.szkolny.response.RegisterAvailabilityStatus.Message" />
|
type="pl.szczodrzynski.edziennik.data.api.szkolny.response.RegisterAvailabilityStatus.Message" />
|
||||||
@ -45,7 +45,7 @@
|
|||||||
android:id="@+id/title"
|
android:id="@+id/title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@{Html.fromHtml(message.title)}"
|
android:text="@{HtmlCompat.fromHtml(message.title, HtmlCompat.FROM_HTML_MODE_LEGACY)}"
|
||||||
android:textAppearance="@style/NavView.TextView.Title"
|
android:textAppearance="@style/NavView.TextView.Title"
|
||||||
tools:text="Dziennik nie działa" />
|
tools:text="Dziennik nie działa" />
|
||||||
|
|
||||||
@ -54,7 +54,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:text="@{Html.fromHtml(message.contentLong)}"
|
android:text="@{HtmlCompat.fromHtml(message.contentLong, HtmlCompat.FROM_HTML_MODE_LEGACY)}"
|
||||||
tools:text="Dziennik się zepsuł i nie działa, szkoda\n\n\nwiele linijek ma ten tekst" />
|
tools:text="Dziennik się zepsuł i nie działa, szkoda\n\n\nwiele linijek ma ten tekst" />
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
|
@ -1368,7 +1368,7 @@
|
|||||||
<string name="home_archive_close_no_target_title">Brak aktualnego profilu</string>
|
<string name="home_archive_close_no_target_title">Brak aktualnego profilu</string>
|
||||||
<string name="home_archive_close_no_target_text">Uczeń %s nie posiada profilu na tym koncie w aktualnym roku szkolnym. Prawdopodobnie ten profil został usunięty lub uczeń nie uczęszcza już do tej klasy.\n\nAby przejść do aktualnego profilu, wybierz ucznia z listy lub zaloguj się na jego konto przyciskiem Dodaj ucznia.</string>
|
<string name="home_archive_close_no_target_text">Uczeń %s nie posiada profilu na tym koncie w aktualnym roku szkolnym. Prawdopodobnie ten profil został usunięty lub uczeń nie uczęszcza już do tej klasy.\n\nAby przejść do aktualnego profilu, wybierz ucznia z listy lub zaloguj się na jego konto przyciskiem Dodaj ucznia.</string>
|
||||||
<string name="login_copyright_notice">Znaki towarowe zamieszczone w tej aplikacji należą do ich prawowitych właścicieli i są używane wyłącznie w celach informacyjnych.</string>
|
<string name="login_copyright_notice">Znaki towarowe zamieszczone w tej aplikacji należą do ich prawowitych właścicieli i są używane wyłącznie w celach informacyjnych.</string>
|
||||||
<string name="update_available_title">Dostępna aktualiacja aplikacji</string>
|
<string name="update_available_title">Dostępna aktualizacja aplikacji</string>
|
||||||
<string name="update_available_format">Używasz starej wersji aplikacji Szkolny.eu (%s). Aby móc korzystać z aplikacji oraz zapewnić najlepsze działanie, zaktualizuj aplikację do wersji %s.\n\nDziennik zmian:\n%s</string>
|
<string name="update_available_format">Używasz starej wersji aplikacji Szkolny.eu (%s). Aby móc korzystać z aplikacji oraz zapewnić najlepsze działanie, zaktualizuj aplikację do wersji %s.\n\nDziennik zmian:\n%s</string>
|
||||||
<string name="update_available_fallback">Posiadasz nieaktualną wersję aplikacji Szkolny.eu. Aby móc dalej synchronizować dane, musisz zaktualizować aplikację.</string>
|
<string name="update_available_fallback">Posiadasz nieaktualną wersję aplikacji Szkolny.eu. Aby móc dalej synchronizować dane, musisz zaktualizować aplikację.</string>
|
||||||
<string name="update_available_button">Aktualizuj</string>
|
<string name="update_available_button">Aktualizuj</string>
|
||||||
|
@ -5,8 +5,8 @@ buildscript {
|
|||||||
kotlin_version = '1.3.61'
|
kotlin_version = '1.3.61'
|
||||||
|
|
||||||
release = [
|
release = [
|
||||||
versionName: "4.4.1",
|
versionName: "4.4.2",
|
||||||
versionCode: 4040199
|
versionCode: 4040299
|
||||||
]
|
]
|
||||||
|
|
||||||
setup = [
|
setup = [
|
||||||
|
Loading…
Reference in New Issue
Block a user