diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/BuildManager.kt b/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/BuildManager.kt index be0d790a..6c835066 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/BuildManager.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/BuildManager.kt @@ -8,6 +8,7 @@ import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import com.google.android.material.dialog.MaterialAlertDialogBuilder import kotlinx.coroutines.* +import okhttp3.Request import pl.szczodrzynski.edziennik.* import pl.szczodrzynski.edziennik.data.api.szkolny.interceptor.Signing import pl.szczodrzynski.edziennik.ui.modules.base.BuildInvalidActivity @@ -121,7 +122,34 @@ class BuildManager(val app: App) : CoroutineScope { repo: String, commitHash: String ) = withContext(Dispatchers.IO) { - true + val request = Request.Builder() + .url("https://api.github.com/repos/$repo/git/commits/$commitHash") + .header("Accept", "application/vnd.github.v3+json") + .build() + + val call = app.http.newCall(request) + + val response = runCatching { + call.execute() + }.getOrNull() ?: return@withContext false + + if (response.code() != 200) + return@withContext false + + val json = runCatching { + response.body()?.string()?.toJsonObject() + }.getOrNull() ?: return@withContext false + + val sha = json.getString("sha") + if (sha != commitHash) + return@withContext false + + val author = json.getJsonObject("author") ?: return@withContext false + val name = author.getString("name") + val email = author.getString("email") + gitAuthor = "$name <$email>" + + return@withContext true } fun validateBuild(activity: AppCompatActivity) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1a858e44..c542860e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1403,9 +1403,9 @@ Trwa weryfikowanie kompilacji… Nie znaleziono odniesienia do repozytorium zdalnego. Upewnij się, że korzystasz z fork\'a oficjalnego repozytorium oraz zweryfikuj konfigurację Gradle. Nie znaleziono wartości skrótu aktualnej rewizji. Sprawdź konfigurację Gradle. - Posiadasz kompilację aplikacji zawierającą nieopublikowane zmiany. Kompilacja znajduje się w repozytorium %1$s (%2$s), które jest prywatne lub nie zawiera najnowszych zmian.\n\nDla bezpieczeństwa oraz ze względów zgodności z licencją, korzystanie z aplikacji zostało zablokowane. + Posiadasz kompilację aplikacji zawierającą nieopublikowane zmiany. Kompilacja znajduje się w repozytorium:\n%1$s (%2$s)\nktóre jest prywatne lub nie zawiera najnowszych zmian.\n\nDla bezpieczeństwa oraz ze względów zgodności z licencją, korzystanie z aplikacji zostało zablokowane. Nie możesz modyfikować tego rodzaju kompilacji aplikacji Szkolny.eu.\n\nAby wprowadzić własne zmiany, skorzystaj z kodu źródłowego dostępnego na GitHubie oraz zapoznaj się z README i informacją o licencji.\n\nhttps://szkolny.eu/github/android - Ta kompilacja zawiera zmiany niezatwierdzone do żadnej rewizji. Zapisz oraz opublikuj wszystkie zmiany przed wydaniem wersji release.\n\nDla bezpieczeństwa oraz ze względów zgodności z licencją, korzystanie z aplikacji zostało zablokowane. + Ta kompilacja zawiera zmiany niezatwierdzone do żadnej rewizji. Zapisz oraz opublikuj wszystkie zmiany przed wydaniem wersji \"release\".\n\nDla bezpieczeństwa oraz ze względów zgodności z licencją, korzystanie z aplikacji zostało zablokowane. Korzystasz z kompilacji typu \"debug\". Ta informacja zostanie wyświetlona tylko jeden raz dla aktualnego urządzenia. Korzystasz z nieoficjalnej kompilacji aplikacji Szkolny.eu. Zalecamy używanie wyłącznie oficjalnych wersji aplikacji.\n\nOstatnie zmiany w tej wersji zostały wprowadzone przez %3$s w repozytorium %2$s (%1$s).\n\nTo okno nie wyświetli się ponownie. Informacja dotycząca wersji aplikacji