Reverted to bundle

This commit is contained in:
Gouri Panda 2023-10-14 19:17:23 +05:30
parent 823d29cecf
commit 87f4f9dc97
4 changed files with 55 additions and 137 deletions

View File

@ -16,7 +16,6 @@
package custom
import com.android.build.gradle.api.ApkVariantOutput
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport
import com.google.api.client.http.FileContent
@ -33,7 +32,6 @@ import java.io.File
import java.io.FileInputStream
import java.security.KeyStore
@Suppress("DEPRECATION")
fun createPublisher(auth: File): AndroidPublisher {
val transport = buildTransport()
val factory = JacksonFactory.getDefaultInstance()
@ -81,34 +79,31 @@ class Transaction(
FileContent("application/octet-stream", file)
).execute().prettyPrint()
@Suppress("DEPRECATION")
fun attachExpansionTo(expansionCode: Int, apkVariantOutput: ApkVariantOutput): ExpansionFile =
fun attachExpansionTo(versionCode: Int): ExpansionFile =
publisher.edits().expansionfiles().update(
packageName,
editId,
apkVariantOutput.versionCodeOverride,
versionCode,
"main",
ExpansionFile().apply { referencesVersion = expansionCode }
ExpansionFile().apply { referencesVersion = versionCode }
).execute().prettyPrint()
@Suppress("DEPRECATION")
fun uploadApk(apkVariantOutput: ApkVariantOutput) {
publisher.edits().apks().upload(
fun uploadBundle(outputFile: File) {
publisher.edits().bundles().upload(
packageName,
editId,
FileContent("application/octet-stream", apkVariantOutput.outputFile)
FileContent("application/octet-stream", outputFile)
).execute().prettyPrint()
}
@Suppress("DEPRECATION")
fun addToTrackInDraft(apkVariants: List<ApkVariantOutput>): Track =
publisher.edits().tracks().update(packageName, editId, "internal", Track().apply {
fun addToTrackInDraft(versionCode: Int, versionName: String?): Track =
publisher.edits().tracks().update(packageName, editId, "alpha", Track().apply {
releases = listOf(TrackRelease().apply {
status = "draft"
name = apkVariants[0].versionNameOverride
versionCodes = apkVariants.map { it.versionCodeOverride.toLong() }
name = versionName
versionCodes = listOf(versionCode.toLong())
})
track = "internal"
track = "alpha"
}).execute().prettyPrint()
}

View File

@ -19,12 +19,15 @@
<string name="save_media">Захаваць мэдыя</string>
<string name="save_media_error">Узьнікла памылка пры захаваньні мэдыяфайлу!</string>
<string name="save_media_saved">Мэдыя-файл захаваны як %s у Downloads/org.kiwix…/</string>
<string name="search_label">Пошук</string>
<string name="choose_file">Абярыце файл зьместу (*.zim)</string>
<string name="open_in_new_tab">Адкрыць спасылку ў новай укладцы?</string>
<string name="hotspot_service_channel_name">Сэрвісны канал пункту досягу</string>
<string name="hotspot_failed_message">Падобна, што ваш пункт доступу ўжо ўключаны. Каб працягнуць, адключыце пункт доступу вай-фай.</string>
<string name="go_to_wifi_settings_label">Перайсьці да наладаў вай-фаю</string>
<string name="server_failed_message">Немагчыма запусьціць сэрвэр. Калі ласка, уключыце ваш пункт доступу</string>
<string name="server_failed_toast_message">Немагчыма запусьціць сэрвэр.</string>
<string name="hotspot_details_message">Дэталі вашага лякальнага пункту досягу. \nSSID: %1$s \nСпокліч: %2$s</string>
<string name="error_file_not_found">Памылка: абраны ZIM-файл ня знойдзены.</string>
<string name="error_file_invalid">Памылка: абраны файл не зьяўляецца слушным ZIM-файлам.</string>
<string name="error_article_url_not_found">Памылка: загрузка артыкула (Url: %1$s) не атрымалася.</string>
@ -36,7 +39,9 @@
<string name="pref_back_to_top_summary">Паказваць кнопку ў канцы старонкі для пракручваньня ўверх</string>
<string name="pref_language_title">Мова</string>
<string name="pref_language_chooser">Абярыце мову</string>
<string name="tts_lang_not_supported">Мова гэтай старонкі не падтрымліваецца або адпаведныя зьвесткі мовы не былі ўсталяваныя. Артыкул можа быць няправільна прачытаны.</string>
<string name="pref_credits">Удзельнікі й ліцэнзіі</string>
<string name="pref_credits_title">Стваральнікі</string>
<string name="tts_lang_not_supported">Мова гэтай старонкі не падтрымліваецца. Артыкул можа быць няправільна прачытаны.</string>
<string name="no_reader_application_installed">Ня знойдзеныя ўсталяваныя праграмы для гэтага тыпу файлу</string>
<string name="no_section_info">Ня знойдзеныя загалоўкі зьместу</string>
<string name="request_storage">Каб атрымаць доступ да зьместу оф-лайн, нам трэба мець доступ да вашага сховішча</string>
@ -44,10 +49,16 @@
<string name="delete_recent_search_item">Выдаліць гэты элемэнт?</string>
<string name="all_history_cleared">Уся гісторыя ачышчаная</string>
<string name="clear_all_history_dialog_title">Ачысьціць усю гісторыю?</string>
<string name="selected_file_cab_app_chooser_title">Падзяліцца файламі ZIM з:</string>
<string name="delete">Выдаліць</string>
<string name="cancel">Скасаваць</string>
<string name="delete_specific_search_toast">Нядаўні пошук выдалены</string>
<string name="hint_contents_drawer_message">Каб убачыць зьмест артыкулу, можаце прагарнуць улева</string>
<string name="got_it">Зразумела</string>
<string name="did_you_know">Ці ведалі вы?</string>
<string name="undo">Скасаваць</string>
<string name="tab_closed">Закладка закрытая</string>
<string name="tabs_closed">Закладкі закрытыя</string>
<string name="bookmark_added">Закладка дададзеная</string>
<string name="rate_dialog_title">Калі ласка, ацаніце нас</string>
<string name="rate_dialog_positive">Ацаніць!</string>
@ -57,12 +68,21 @@
<string name="pref_newtab_background_title">Адкрыць новую ўкладку на фоне</string>
<string name="pref_newtab_background_summary">Пры адкрыцьці новай укладкі, яна будзе адкрытая на заднім пляне</string>
<string name="pref_extras">Дадаткова</string>
<string name="search_widget_text">Пошук у Kiwix</string>
<string name="local_zims">Прылада</string>
<string name="remote_zims">Анляйн</string>
<string name="library">Бібліятэка</string>
<string name="help_2">Што робіць Kiwix?</string>
<string name="help_4">Хоць Kiwix першапачаткова быў распрацаваны для афляйнавай падтрымкі Вікіпэдыі, але можа чытаць іншыя віды зьместу.</string>
<string name="help_5">Дзе зьмест?</string>
<string name="delete_zim_failed">Выбачайце, мы не змаглі выдаліць некаторыя файлы. Паспрабуйце скарыстацца файлавым кіраўніком.</string>
<string name="confirm_stop_download_title">Спыніць загрузку?</string>
<string name="confirm_stop_download_msg">Вы ўпэўненыя, што хочаце спыніць гэтую загрузку?</string>
<string name="texttospeech_initialization_failed">Няўдалая спроба ініцыялізацыі Тэксту-ў-Размову. Калі ласка, паспрабуйце яшчэ раз</string>
<string name="time_left">засталося</string>
<string name="time_today">Сёньня</string>
<string name="time_yesterday">Учора</string>
<string name="pref_external_link_popup_title">Папярэджваць падчас уводу вонкавых спасылак</string>
<string name="external_link_popup_dialog_message">Вы ўводзіце вонкавую спасылку. Гэта можа прывесьці да зьняцьця грошай мабільным апэратарам ці проста не спрацаваць, калі вы знаходзіцеся ў офлайне. Хочаце працягнуць?</string>
<string name="do_not_ask_anymore">Болей не пытаць</string>
<string name="your_languages">Выбраныя мовы:</string>

View File

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Authors:
* Red Winged Duck
* Renessaince
-->
<resources>
<string name="menu_help">Дапамога</string>
<string name="menu_home">Галоўная</string>
<string name="menu_settings">Налады</string>
<string name="menu_search_in_text">Знайсьці на старонцы</string>
<string name="bookmarks">Закладкі</string>
<string name="menu_random_article">Выпадковы артыкул</string>
<string name="menu_full_screen">На ўвесь экран</string>
<string name="menu_exit_full_screen">Выйсьці з рэжыму поўнага экрану</string>
<string name="menu_read_aloud">Чытаць уголас</string>
<string name="menu_read_aloud_stop">Спыніць чытаньне ўголас</string>
<string name="menu_support_kiwix">Падтрымаць Kiwix</string>
<string name="menu_wifi_hotspot">Пункт доступу WiFi</string>
<string name="save_media">Захаваць мэдыя</string>
<string name="save_media_error">Узьнікла памылка пры захаваньні мэдыяфайлу!</string>
<string name="save_media_saved">Мэдыя-файл захаваны як %s у Downloads/org.kiwix…/</string>
<string name="search_label">Пошук</string>
<string name="choose_file">Абярыце файл зьместу (*.zim)</string>
<string name="open_in_new_tab">Адкрыць спасылку ў новай укладцы?</string>
<string name="hotspot_service_channel_name">Сэрвісны канал пункту досягу</string>
<string name="hotspot_failed_message">Падобна, што ваш пункт доступу ўжо ўключаны. Каб працягнуць, адключыце пункт доступу вай-фай.</string>
<string name="go_to_wifi_settings_label">Перайсьці да наладаў вай-фаю</string>
<string name="server_failed_message">Немагчыма запусьціць сэрвэр. Калі ласка, уключыце ваш пункт доступу</string>
<string name="server_failed_toast_message">Немагчыма запусьціць сэрвэр.</string>
<string name="hotspot_details_message">Дэталі вашага лякальнага пункту досягу. \nSSID: %1$s \nСпокліч: %2$s</string>
<string name="error_file_not_found">Памылка: абраны ZIM-файл ня знойдзены.</string>
<string name="error_file_invalid">Памылка: абраны файл не зьяўляецца слушным ZIM-файлам.</string>
<string name="error_article_url_not_found">Памылка: загрузка артыкула (Url: %1$s) не атрымалася.</string>
<string name="pref_info_title">Інфармацыя</string>
<string name="pref_info_version">Вэрсія</string>
<string name="pref_night_mode">Начны рэжым</string>
<string name="pref_night_mode_summary">Паказваць артыкулы ў інвэртаваных колерах</string>
<string name="pref_back_to_top">Вярнуцца ўгару</string>
<string name="pref_back_to_top_summary">Паказваць кнопку ў канцы старонкі для пракручваньня ўверх</string>
<string name="pref_language_title">Мова</string>
<string name="pref_language_chooser">Абярыце мову</string>
<string name="pref_credits">Удзельнікі й ліцэнзіі</string>
<string name="pref_credits_title">Стваральнікі</string>
<string name="tts_lang_not_supported">Мова гэтай старонкі не падтрымліваецца. Артыкул можа быць няправільна прачытаны.</string>
<string name="no_reader_application_installed">Ня знойдзеныя ўсталяваныя праграмы для гэтага тыпу файлу</string>
<string name="no_section_info">Ня знойдзеныя загалоўкі зьместу</string>
<string name="request_storage">Каб атрымаць доступ да зьместу оф-лайн, нам трэба мець доступ да вашага сховішча</string>
<string name="clear_recent_and_tabs_history_dialog">Вы сапраўды хочаце выдаліць гісторыю пошуку і скінуць усе актыўныя закладкі?</string>
<string name="delete_recent_search_item">Выдаліць гэты элемэнт?</string>
<string name="all_history_cleared">Уся гісторыя ачышчаная</string>
<string name="clear_all_history_dialog_title">Ачысьціць усю гісторыю?</string>
<string name="selected_file_cab_app_chooser_title">Падзяліцца файламі ZIM з:</string>
<string name="delete">Выдаліць</string>
<string name="cancel">Скасаваць</string>
<string name="delete_specific_search_toast">Нядаўні пошук выдалены</string>
<string name="hint_contents_drawer_message">Каб убачыць зьмест артыкулу, можаце прагарнуць улева</string>
<string name="got_it">Зразумела</string>
<string name="did_you_know">Ці ведалі вы?</string>
<string name="undo">Скасаваць</string>
<string name="tab_closed">Закладка закрытая</string>
<string name="tabs_closed">Закладкі закрытыя</string>
<string name="bookmark_added">Закладка дададзеная</string>
<string name="rate_dialog_title">Калі ласка, ацаніце нас</string>
<string name="rate_dialog_positive">Ацаніць!</string>
<string name="no_thanks">Не, дзякуй</string>
<string name="rate_dialog_neutral">Пазьней</string>
<string name="bookmark_removed">Закладка выдаленая</string>
<string name="pref_newtab_background_title">Адкрыць новую ўкладку на фоне</string>
<string name="pref_newtab_background_summary">Пры адкрыцьці новай укладкі, яна будзе адкрытая на заднім пляне</string>
<string name="pref_extras">Дадаткова</string>
<string name="search_widget_text">Пошук у Kiwix</string>
<string name="local_zims">Прылада</string>
<string name="remote_zims">Анляйн</string>
<string name="library">Бібліятэка</string>
<string name="help_2">Што робіць Kiwix?</string>
<string name="help_4">Хоць Kiwix першапачаткова быў распрацаваны для афляйнавай падтрымкі Вікіпэдыі, але можа чытаць іншыя віды зьместу.</string>
<string name="help_5">Дзе зьмест?</string>
<string name="delete_zim_failed">Выбачайце, мы не змаглі выдаліць некаторыя файлы. Паспрабуйце скарыстацца файлавым кіраўніком.</string>
<string name="confirm_stop_download_title">Спыніць загрузку?</string>
<string name="confirm_stop_download_msg">Вы ўпэўненыя, што хочаце спыніць гэтую загрузку?</string>
<string name="texttospeech_initialization_failed">Няўдалая спроба ініцыялізацыі Тэксту-ў-Размову. Калі ласка, паспрабуйце яшчэ раз</string>
<string name="time_left">засталося</string>
<string name="time_today">Сёньня</string>
<string name="time_yesterday">Учора</string>
<string name="pref_external_link_popup_title">Папярэджваць падчас уводу вонкавых спасылак</string>
<string name="external_link_popup_dialog_message">Вы ўводзіце вонкавую спасылку. Гэта можа прывесьці да зьняцьця грошай мабільным апэратарам ці проста не спрацаваць, калі вы знаходзіцеся ў офлайне. Хочаце працягнуць?</string>
<string name="do_not_ask_anymore">Болей не пытаць</string>
<string name="your_languages">Выбраныя мовы:</string>
<string name="other_languages">Іншыя мовы:</string>
<string name="crash_description">Падобна, што мы паламаліся.\n\nЦі можаце дапамагчы нам выправіць гэтую праблему, адаслаўшы наступную інфармацыю?</string>
<string name="crash_checkbox_language">Вашыя моўныя налады</string>
<string name="crash_checkbox_zimfiles">Сьпіс вашых zim-файлаў</string>
<string name="crash_checkbox_exception">Падрабязнасьці аварыі</string>
<string name="crash_checkbox_logs">Журналы праграмы</string>
<string name="crash_checkbox_device">Падрабязнасьці прылады</string>
<string name="shortcut_disabled_message">Скарот недаступны</string>
<string name="new_tab_shortcut_label">Новая ўкладка</string>
<string name="get_content_shortcut_label">Атрымаць зьмест</string>
<string name="fav_icon">Любімая іконка</string>
<string name="articleCount">%s артыкулаў</string>
<string name="get_started">Пачаць</string>
<string name="download_books">Скачвайце кнігі</string>
<string name="humankind_knowledge">Веды чалавецтва ў вашым тэлефоне.</string>
<string name="welcome_to_the_family">Вітаем у сям’і</string>
<string name="ext_storage_write_permission_denied_add_note">Нататкамі нельга карыстацца бяз доступу да сховішча</string>
<string name="permission_rationale_location">Android вымагае лякальнага дазволу на доступ праграмы да вызначэньня прыладаў</string>
<string name="no_bookmarks">Няма закладак</string>
</resources>

View File

@ -9,6 +9,7 @@ import java.net.URI
import java.net.URLDecoder
import java.util.Locale
import java.util.Base64
import java.io.FileNotFoundException
import java.io.FileOutputStream
import okhttp3.OkHttpClient
import okhttp3.Request
@ -31,7 +32,7 @@ android {
all {
File("$projectDir/src", "$name/$name.zim").let {
createDownloadTask(it)
createPublishApkWithExpansionTask(it, applicationVariants)
createPublishBundleWithExpansionTask(it, applicationVariants)
}
}
}
@ -119,13 +120,13 @@ val String.removeAuthenticationFromUrl: String
get() = decodeUrl.trim()
.replace(Regex("\\{\\{\\s*[^}]+\\s*\\}\\}@"), "")
fun ProductFlavor.createPublishApkWithExpansionTask(
fun ProductFlavor.createPublishBundleWithExpansionTask(
file: File,
applicationVariants: DomainObjectSet<ApplicationVariant>
): Task {
val capitalizedName =
name.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else "$it" }
return tasks.create("publish${capitalizedName}ReleaseApkWithExpansionFile") {
return tasks.create("publish${capitalizedName}ReleaseBundleWithExpansionFile") {
group = "publishing"
description = "Uploads $capitalizedName to the Play Console with an Expansion file"
doLast {
@ -134,11 +135,20 @@ fun ProductFlavor.createPublishApkWithExpansionTask(
createPublisher(File(rootDir, "playstore.json"))
.transactionWithCommit(packageName) {
val variants =
applicationVariants.releaseVariantsFor(this@createPublishApkWithExpansionTask)
variants.forEach(::uploadApk)
uploadExpansionTo(file, variants[0].versionCodeOverride)
variants.drop(1).forEach { attachExpansionTo(variants[0].versionCodeOverride, it) }
addToTrackInDraft(variants)
applicationVariants.releaseVariantsFor(this@createPublishBundleWithExpansionTask)
val generatedBundleFile =
File(
"$buildDir/outputs/bundle/${capitalizedName.toLowerCase()}" +
"Release/custom-${capitalizedName.toLowerCase()}-release.aab"
)
if (generatedBundleFile.exists()) {
uploadBundle(generatedBundleFile)
uploadExpansionTo(file, variants[0].versionCode)
attachExpansionTo(variants[0].versionCode)
addToTrackInDraft(variants[0].versionCode, versionName)
} else {
throw FileNotFoundException("Unable to find generated aab file")
}
}
}
}
@ -147,13 +157,14 @@ fun ProductFlavor.createPublishApkWithExpansionTask(
@Suppress("DEPRECATION")
fun DomainObjectSet<ApplicationVariant>.releaseVariantsFor(productFlavor: ProductFlavor) =
find { it.name.equals("${productFlavor.name}Release", true) }!!
.outputs.filterIsInstance<ApkVariantOutput>().sortedBy { it.versionCodeOverride }
.outputs.filterIsInstance<ApkVariantOutput>()
.filter { it.baseName.contains("universal") }.sortedBy { it.versionCode }
afterEvaluate {
tasks.filter { it.name.contains("ReleaseApkWithExpansionFile") }.forEach {
tasks.filter { it.name.contains("ReleaseBundleWithExpansionFile") }.forEach {
val flavorName =
it.name.substringAfter("publish").substringBefore("ReleaseApkWithExpansionFile")
it.name.substringAfter("publish").substringBefore("ReleaseBundleWithExpansionFile")
it.dependsOn.add(tasks.getByName("download${flavorName}Zim"))
it.dependsOn.add(tasks.getByName("assemble${flavorName}Release"))
it.dependsOn.add(tasks.getByName("bundle${flavorName}Release"))
}
}