mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-07-14 05:36:43 +02:00
Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
badf32ff11 | |||
5e40f3264e | |||
71bb6d9410 | |||
731b682fc9 | |||
c9751227a5 | |||
6ef2a26e94 | |||
5a8efa2388 | |||
d25895fa28 | |||
de09f3ece2 | |||
1135ffb30f | |||
5379cb31e8 | |||
7d41ab44b7 |
2
.flutter
2
.flutter
Submodule .flutter updated: 67457e669f...41456452f2
@ -108,3 +108,16 @@ dependencies {
|
|||||||
|
|
||||||
implementation "com.github.topjohnwu.libsu:core:5.2.2"
|
implementation "com.github.topjohnwu.libsu:core:5.2.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ext.abiCodes = ["x86_64": 1, "armeabi-v7a": 2, "arm64-v8a": 3]
|
||||||
|
import com.android.build.OutputFile
|
||||||
|
android.applicationVariants.all { variant ->
|
||||||
|
variant.outputs.each { output ->
|
||||||
|
def abiVersionCode = project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
|
||||||
|
if (abiVersionCode != null) {
|
||||||
|
output.versionCodeOverride = variant.versionCode * 10 + abiVersionCode
|
||||||
|
} else {
|
||||||
|
output.versionCodeOverride = variant.versionCode * 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Instalirano",
|
"installed": "Instalirano",
|
||||||
"latest": "Najnoviji",
|
"latest": "Najnoviji",
|
||||||
"invertRegEx": "Obrni regularni izraz",
|
"invertRegEx": "Obrni regularni izraz",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Želite li ukloniti aplikaciju?",
|
"one": "Želite li ukloniti aplikaciju?",
|
||||||
"other": "Želite li ukloniti aplikacije?"
|
"other": "Želite li ukloniti aplikacije?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Instalováno",
|
"installed": "Instalováno",
|
||||||
"latest": "Nejnovější",
|
"latest": "Nejnovější",
|
||||||
"invertRegEx": "Invertovat regulární výraz",
|
"invertRegEx": "Invertovat regulární výraz",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Odstranit Apku?",
|
"one": "Odstranit Apku?",
|
||||||
"other": "Odstranit Apky?"
|
"other": "Odstranit Apky?"
|
||||||
|
@ -296,8 +296,10 @@
|
|||||||
"directAPKLink": "Direkter APK-Link",
|
"directAPKLink": "Direkter APK-Link",
|
||||||
"pseudoVersionInUse": "Pseudoversionen sind in Benutzung",
|
"pseudoVersionInUse": "Pseudoversionen sind in Benutzung",
|
||||||
"installed": "Installiert",
|
"installed": "Installiert",
|
||||||
"latest": "Neueste(r)",
|
"latest": "Neueste Version",
|
||||||
"invertRegEx": "Regulären Ausdruck invertieren",
|
"invertRegEx": "Regulären Ausdruck invertieren",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "App entfernen?",
|
"one": "App entfernen?",
|
||||||
"other": "Apps entfernen?"
|
"other": "Apps entfernen?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Installed",
|
"installed": "Installed",
|
||||||
"latest": "Latest",
|
"latest": "Latest",
|
||||||
"invertRegEx": "Invert regular expression",
|
"invertRegEx": "Invert regular expression",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Remove App?",
|
"one": "Remove App?",
|
||||||
"other": "Remove Apps?"
|
"other": "Remove Apps?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Instalado",
|
"installed": "Instalado",
|
||||||
"latest": "Versión más reciente",
|
"latest": "Versión más reciente",
|
||||||
"invertRegEx": "Invertir expresión regular",
|
"invertRegEx": "Invertir expresión regular",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "¿Eliminar Aplicación?",
|
"one": "¿Eliminar Aplicación?",
|
||||||
"other": "¿Eliminar Aplicaciones?"
|
"other": "¿Eliminar Aplicaciones?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "نصب شده است",
|
"installed": "نصب شده است",
|
||||||
"latest": "آخرین",
|
"latest": "آخرین",
|
||||||
"invertRegEx": "معکوس کردن عبارت منظم",
|
"invertRegEx": "معکوس کردن عبارت منظم",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "برنامه حذف شود؟",
|
"one": "برنامه حذف شود؟",
|
||||||
"other": "برنامه ها حذف شوند؟"
|
"other": "برنامه ها حذف شوند؟"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Installée",
|
"installed": "Installée",
|
||||||
"latest": "Dernier",
|
"latest": "Dernier",
|
||||||
"invertRegEx": "Inverser l'expression régulière",
|
"invertRegEx": "Inverser l'expression régulière",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Supprimer l'application ?",
|
"one": "Supprimer l'application ?",
|
||||||
"other": "Supprimer les applications ?"
|
"other": "Supprimer les applications ?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Telepített",
|
"installed": "Telepített",
|
||||||
"latest": "Legújabb",
|
"latest": "Legújabb",
|
||||||
"invertRegEx": "Invertált reguláris kifejezés",
|
"invertRegEx": "Invertált reguláris kifejezés",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Eltávolítja az alkalmazást?",
|
"one": "Eltávolítja az alkalmazást?",
|
||||||
"other": "Eltávolítja az alkalmazást?"
|
"other": "Eltávolítja az alkalmazást?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Installato",
|
"installed": "Installato",
|
||||||
"latest": "Ultimo",
|
"latest": "Ultimo",
|
||||||
"invertRegEx": "Inverti espressione regolare",
|
"invertRegEx": "Inverti espressione regolare",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Rimuovere l'app?",
|
"one": "Rimuovere l'app?",
|
||||||
"other": "Rimuovere le app?"
|
"other": "Rimuovere le app?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "インストール済み",
|
"installed": "インストール済み",
|
||||||
"latest": "最新",
|
"latest": "最新",
|
||||||
"invertRegEx": "正規表現を反転",
|
"invertRegEx": "正規表現を反転",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "アプリを削除しますか?",
|
"one": "アプリを削除しますか?",
|
||||||
"other": "アプリを削除しますか?"
|
"other": "アプリを削除しますか?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Geïnstalleerd",
|
"installed": "Geïnstalleerd",
|
||||||
"latest": "Laatste",
|
"latest": "Laatste",
|
||||||
"invertRegEx": "Reguliere expressie omkeren",
|
"invertRegEx": "Reguliere expressie omkeren",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "App verwijderen?",
|
"one": "App verwijderen?",
|
||||||
"other": "Apps verwijderen?"
|
"other": "Apps verwijderen?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Zainstalowano",
|
"installed": "Zainstalowano",
|
||||||
"latest": "Najnowszy",
|
"latest": "Najnowszy",
|
||||||
"invertRegEx": "Odwróć wyrażenie regularne",
|
"invertRegEx": "Odwróć wyrażenie regularne",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Usunąć aplikację?",
|
"one": "Usunąć aplikację?",
|
||||||
"few": "Usunąć aplikacje?",
|
"few": "Usunąć aplikacje?",
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"invalidURLForSource": "URL {} inválida",
|
"invalidURLForSource": "URL {} inválida",
|
||||||
"noReleaseFound": "Não foi possível encontrar uma versão adequada",
|
"noReleaseFound": "Não foi possível encontrar uma versão adequada",
|
||||||
"noVersionFound": "Não foi possível encontrar uma versão",
|
"noVersionFound": "Não foi possível encontrar uma versão",
|
||||||
"urlMatchesNoSource": "URL não corresponde a uma fonte conhecida",
|
"urlMatchesNoSource": "A URL não corresponde a uma fonte conhecida",
|
||||||
"cantInstallOlderVersion": "Não é permitido instalar uma versão anterior de um aplicativo",
|
"cantInstallOlderVersion": "Não é permitido instalar uma versão anterior de um aplicativo",
|
||||||
"appIdMismatch": "ID do pacote baixado não é igual ao ID do aplicativo instalado",
|
"appIdMismatch": "ID do pacote baixado não é igual ao ID do aplicativo instalado",
|
||||||
"functionNotImplemented": "Esta classe não implementou essa função",
|
"functionNotImplemented": "Esta classe não implementou essa função",
|
||||||
@ -14,7 +14,7 @@
|
|||||||
"githubPATLabel": "Token de acesso pessoal do GitHub (Reduz tempos de espera)",
|
"githubPATLabel": "Token de acesso pessoal do GitHub (Reduz tempos de espera)",
|
||||||
"includePrereleases": "Incluir pré-lançamentos",
|
"includePrereleases": "Incluir pré-lançamentos",
|
||||||
"fallbackToOlderReleases": "Retornar para versões anteriores",
|
"fallbackToOlderReleases": "Retornar para versões anteriores",
|
||||||
"filterReleaseTitlesByRegEx": "Filtrar títulos de versões por expressão regular",
|
"filterReleaseTitlesByRegEx": "Filtrar títulos de versões usando expressão regular",
|
||||||
"invalidRegEx": "Expressão regular inválida",
|
"invalidRegEx": "Expressão regular inválida",
|
||||||
"noDescription": "Sem descrição",
|
"noDescription": "Sem descrição",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
@ -22,14 +22,14 @@
|
|||||||
"requiredInBrackets": "(Necessário)",
|
"requiredInBrackets": "(Necessário)",
|
||||||
"dropdownNoOptsError": "ERRO: O DROPDOWN DEVE TER PELO MENOS UMA OPÇÃO",
|
"dropdownNoOptsError": "ERRO: O DROPDOWN DEVE TER PELO MENOS UMA OPÇÃO",
|
||||||
"colour": "Cor",
|
"colour": "Cor",
|
||||||
"githubStarredRepos": "Favoritados no GitHub",
|
"githubStarredRepos": "Com estrela no GitHub",
|
||||||
"uname": "Nome de usuário",
|
"uname": "Nome de usuário",
|
||||||
"wrongArgNum": "Número de argumentos errado",
|
"wrongArgNum": "Número de argumentos errado",
|
||||||
"xIsTrackOnly": "{} é 'Apenas monitorar'",
|
"xIsTrackOnly": "{} é 'Apenas para monitorar'",
|
||||||
"source": "Fonte",
|
"source": "Fonte",
|
||||||
"app": "Aplicativo",
|
"app": "Aplicativo",
|
||||||
"appsFromSourceAreTrackOnly": "Os aplicativos desta fonte são 'Apenas monitorar'.",
|
"appsFromSourceAreTrackOnly": "Os aplicativos desta fonte são 'Apenas para monitorar'.",
|
||||||
"youPickedTrackOnly": "Você selecionou a opção 'Apenas monitorar'.",
|
"youPickedTrackOnly": "Você selecionou a opção 'Apenas para monitorar'.",
|
||||||
"trackOnlyAppDescription": "As atualizações desse aplicativo serão monitoradas, mas o Obtainium não poderá baixá-lo ou instalá-lo.",
|
"trackOnlyAppDescription": "As atualizações desse aplicativo serão monitoradas, mas o Obtainium não poderá baixá-lo ou instalá-lo.",
|
||||||
"cancelled": "Cancelado",
|
"cancelled": "Cancelado",
|
||||||
"appAlreadyAdded": "Aplicativo já adicionado",
|
"appAlreadyAdded": "Aplicativo já adicionado",
|
||||||
@ -42,7 +42,7 @@
|
|||||||
"search": "Procurar",
|
"search": "Procurar",
|
||||||
"additionalOptsFor": "Opções adicionais para {}",
|
"additionalOptsFor": "Opções adicionais para {}",
|
||||||
"supportedSources": "Fontes compatíveis",
|
"supportedSources": "Fontes compatíveis",
|
||||||
"trackOnlyInBrackets": "(Apenas monitorar)",
|
"trackOnlyInBrackets": "(Apenas para monitorar)",
|
||||||
"searchableInBrackets": "(Pesquisável)",
|
"searchableInBrackets": "(Pesquisável)",
|
||||||
"appsString": "Aplicativos",
|
"appsString": "Aplicativos",
|
||||||
"noApps": "Não há aplicativos",
|
"noApps": "Não há aplicativos",
|
||||||
@ -60,7 +60,7 @@
|
|||||||
"removeSelectedApps": "Remover aplicativos selecionados",
|
"removeSelectedApps": "Remover aplicativos selecionados",
|
||||||
"updateX": "Atualizar {}",
|
"updateX": "Atualizar {}",
|
||||||
"installX": "Instalar {}",
|
"installX": "Instalar {}",
|
||||||
"markXTrackOnlyAsUpdated": "Marcar {}\n(Apenas monitorar)\ncomo Atualizado",
|
"markXTrackOnlyAsUpdated": "Marcar {}\n(Apenas para monitorar)\ncomo Atualizado",
|
||||||
"changeX": "Mudar {}",
|
"changeX": "Mudar {}",
|
||||||
"installUpdateApps": "Instalar/Atualizar aplicativos",
|
"installUpdateApps": "Instalar/Atualizar aplicativos",
|
||||||
"installUpdateSelectedApps": "Instalar/Atualizar aplicativos selecionados",
|
"installUpdateSelectedApps": "Instalar/Atualizar aplicativos selecionados",
|
||||||
@ -70,12 +70,12 @@
|
|||||||
"markSelectedAppsUpdated": "Marcar aplicativos selecionados como Atualizados",
|
"markSelectedAppsUpdated": "Marcar aplicativos selecionados como Atualizados",
|
||||||
"pinToTop": "Fixar no topo",
|
"pinToTop": "Fixar no topo",
|
||||||
"unpinFromTop": "Desafixar do topo",
|
"unpinFromTop": "Desafixar do topo",
|
||||||
"resetInstallStatusForSelectedAppsQuestion": "Reiniciar status de instalação para aplicativos selecionados?",
|
"resetInstallStatusForSelectedAppsQuestion": "Reiniciar status de instalação nos aplicativos selecionados?",
|
||||||
"installStatusOfXWillBeResetExplanation": "O status de instalação de qualquer aplicativo selecionado será reiniciado.\n\nIsso pode ajudar quando uma versão de um aplicativo mostrada no Obtainium é incorreta devido a falhas ao atualizar ou outros problemas.",
|
"installStatusOfXWillBeResetExplanation": "O status de instalação de todos os aplicativos selecionados será reiniciado.\n\nIsso pode ajudar quando uma versão de um aplicativo mostrada no Obtainium é incorreta devido a falhas ao atualizar ou outros problemas.",
|
||||||
"customLinkMessage": "Esses links funcionam em dispositivos com o Obtainium instalado",
|
"customLinkMessage": "Esses links funcionam em dispositivos com o Obtainium instalado",
|
||||||
"shareAppConfigLinks": "Compartilhar configuração do aplicativo como link HTML",
|
"shareAppConfigLinks": "Compartilhar configuração do aplicativo como link HTML",
|
||||||
"shareSelectedAppURLs": "Compartilhar URLs de aplicativos selecionados",
|
"shareSelectedAppURLs": "Compartilhar URLs de aplicativos selecionados",
|
||||||
"resetInstallStatus": "Reiniciar status de Iistalação",
|
"resetInstallStatus": "Reiniciar status de instalação",
|
||||||
"more": "Mais",
|
"more": "Mais",
|
||||||
"removeOutdatedFilter": "Remover filtro de aplicativos desatualizados",
|
"removeOutdatedFilter": "Remover filtro de aplicativos desatualizados",
|
||||||
"showOutdatedOnly": "Mostrar apenas aplicativos desatualizados",
|
"showOutdatedOnly": "Mostrar apenas aplicativos desatualizados",
|
||||||
@ -84,13 +84,13 @@
|
|||||||
"filterApps": "Filtrar aplicativos",
|
"filterApps": "Filtrar aplicativos",
|
||||||
"appName": "Nome do aplicativo",
|
"appName": "Nome do aplicativo",
|
||||||
"author": "Autor",
|
"author": "Autor",
|
||||||
"upToDateApps": "Aplicativos tualizados",
|
"upToDateApps": "Aplicativos atualizados",
|
||||||
"nonInstalledApps": "Aplicativos não instalados",
|
"nonInstalledApps": "Aplicativos não instalados",
|
||||||
"importExport": "Importar/Exportar",
|
"importExport": "Importar/Exportar",
|
||||||
"settings": "Configurações",
|
"settings": "Configurações",
|
||||||
"exportedTo": "Exportado para {}",
|
"exportedTo": "Exportado para {}",
|
||||||
"obtainiumExport": "Exportar Obtainium",
|
"obtainiumExport": "Exportar Obtainium",
|
||||||
"invalidInput": "Input Inválido",
|
"invalidInput": "Entrada inválida",
|
||||||
"importedX": "Importado {}",
|
"importedX": "Importado {}",
|
||||||
"obtainiumImport": "Importar Obtainium",
|
"obtainiumImport": "Importar Obtainium",
|
||||||
"importFromURLList": "Importar de lista de URLs",
|
"importFromURLList": "Importar de lista de URLs",
|
||||||
@ -122,7 +122,7 @@
|
|||||||
"bgUpdateCheckInterval": "Intervalo de verificação de atualizações em segundo-plano",
|
"bgUpdateCheckInterval": "Intervalo de verificação de atualizações em segundo-plano",
|
||||||
"neverManualOnly": "Nunca - apenas manual",
|
"neverManualOnly": "Nunca - apenas manual",
|
||||||
"appearance": "Aparência",
|
"appearance": "Aparência",
|
||||||
"showWebInAppView": "Mostrar página da internet em informações do aplicativo",
|
"showWebInAppView": "Mostrar página da web do aplicativo em informações do aplicativo",
|
||||||
"pinUpdates": "Fixar atualizações no topo da janela de aplicativos",
|
"pinUpdates": "Fixar atualizações no topo da janela de aplicativos",
|
||||||
"updates": "Atualizações",
|
"updates": "Atualizações",
|
||||||
"sourceSpecific": "Específico a fonte",
|
"sourceSpecific": "Específico a fonte",
|
||||||
@ -151,13 +151,13 @@
|
|||||||
"appsRemoved": "Aplicativos removidos",
|
"appsRemoved": "Aplicativos removidos",
|
||||||
"appsRemovedNotifDescription": "Notifica o usuário quando um ou mais aplicativos foram removidos devido a erros de carregamento",
|
"appsRemovedNotifDescription": "Notifica o usuário quando um ou mais aplicativos foram removidos devido a erros de carregamento",
|
||||||
"xWasRemovedDueToErrorY": "{} foi removido devido a este erro: {}",
|
"xWasRemovedDueToErrorY": "{} foi removido devido a este erro: {}",
|
||||||
"completeAppInstallation": "Instalação do aplicativo completa",
|
"completeAppInstallation": "Instalação do aplicativo concluída",
|
||||||
"obtainiumMustBeOpenToInstallApps": "Obtainium deve estar aberto para instalar os aplicativos",
|
"obtainiumMustBeOpenToInstallApps": "Obtainium deve estar aberto para instalar os aplicativos",
|
||||||
"completeAppInstallationNotifDescription": "Pede ao usuário que retorne ao Obtainium para finalizar a instalação de um aplicativo",
|
"completeAppInstallationNotifDescription": "Pede ao usuário que retorne ao Obtainium para finalizar a instalação de um aplicativo",
|
||||||
"checkingForUpdates": "Verificando atualizações",
|
"checkingForUpdates": "Verificando atualizações",
|
||||||
"checkingForUpdatesNotifDescription": "Notificação transiente que aparece quando o Obtainium está verificando se há atualizações",
|
"checkingForUpdatesNotifDescription": "Notificação transiente que aparece quando o Obtainium está verificando se há atualizações",
|
||||||
"pleaseAllowInstallPerm": "Por favor, permita que o Obtainium possa instalar aplicativos",
|
"pleaseAllowInstallPerm": "Por favor, permita que o Obtainium possa instalar aplicativos",
|
||||||
"trackOnly": "Apenas monitorar",
|
"trackOnly": "Apenas para monitorar",
|
||||||
"errorWithHttpStatusCode": "Erro {}",
|
"errorWithHttpStatusCode": "Erro {}",
|
||||||
"versionCorrectionDisabled": "Correção de versão desativada (plugin parece não funcionar)",
|
"versionCorrectionDisabled": "Correção de versão desativada (plugin parece não funcionar)",
|
||||||
"unknown": "Desconhecido",
|
"unknown": "Desconhecido",
|
||||||
@ -167,15 +167,15 @@
|
|||||||
"installedVersionX": "Versão instalada: {}",
|
"installedVersionX": "Versão instalada: {}",
|
||||||
"lastUpdateCheckX": "Última verificação de atualizações: {}",
|
"lastUpdateCheckX": "Última verificação de atualizações: {}",
|
||||||
"remove": "Remover",
|
"remove": "Remover",
|
||||||
"yesMarkUpdated": "Sim, marcar como Atualizado",
|
"yesMarkUpdated": "Sim, marcar como atualizado",
|
||||||
"fdroid": "Oficial F-Droid",
|
"fdroid": "Oficial F-Droid",
|
||||||
"appIdOrName": "ID do aplicativo ou nome",
|
"appIdOrName": "ID do aplicativo ou nome",
|
||||||
"appId": "ID do aplicativo",
|
"appId": "ID do aplicativo",
|
||||||
"appWithIdOrNameNotFound": "Nenhum aplicativo foi encontrado com esse ID ou nome",
|
"appWithIdOrNameNotFound": "Nenhum aplicativo foi encontrado com esse ID ou nome",
|
||||||
"reposHaveMultipleApps": "Repositórios podem conter multiplos aplicativos",
|
"reposHaveMultipleApps": "Repositórios podem conter múltiplos aplicativos",
|
||||||
"fdroidThirdPartyRepo": "Repositórios de terceiros F-Droid",
|
"fdroidThirdPartyRepo": "Repositórios de terceiros F-Droid",
|
||||||
"steamMobile": "Vapor Móvel",
|
"steamMobile": "Steam para celular",
|
||||||
"steamChat": "Bate-papo Steam",
|
"steamChat": "Chat do Steam",
|
||||||
"install": "Instalar",
|
"install": "Instalar",
|
||||||
"markInstalled": "Marcar instalado",
|
"markInstalled": "Marcar instalado",
|
||||||
"update": "Atualizar",
|
"update": "Atualizar",
|
||||||
@ -191,7 +191,7 @@
|
|||||||
"categories": "Categorias",
|
"categories": "Categorias",
|
||||||
"category": "Categoria",
|
"category": "Categoria",
|
||||||
"noCategory": "Sem categoria",
|
"noCategory": "Sem categoria",
|
||||||
"noCategories": "Sem categoria",
|
"noCategories": "Sem categorias",
|
||||||
"deleteCategoriesQuestion": "Deletar categorias?",
|
"deleteCategoriesQuestion": "Deletar categorias?",
|
||||||
"categoryDeleteWarning": "Todos os aplicativos em categorias removidas serão descategorizados.",
|
"categoryDeleteWarning": "Todos os aplicativos em categorias removidas serão descategorizados.",
|
||||||
"addCategory": "Adicionar categoria",
|
"addCategory": "Adicionar categoria",
|
||||||
@ -200,7 +200,7 @@
|
|||||||
"copiedToClipboard": "Copiado para a área de transferência",
|
"copiedToClipboard": "Copiado para a área de transferência",
|
||||||
"storagePermissionDenied": "Permissão de armazenamento negada",
|
"storagePermissionDenied": "Permissão de armazenamento negada",
|
||||||
"selectedCategorizeWarning": "Isso vai substituir qualquer configuração de categoria para os aplicativos selecionados.",
|
"selectedCategorizeWarning": "Isso vai substituir qualquer configuração de categoria para os aplicativos selecionados.",
|
||||||
"filterAPKsByRegEx": "Filtrar APKs por expressão regular",
|
"filterAPKsByRegEx": "Filtrar APKs usando expressão regular",
|
||||||
"removeFromObtainium": "Remover do Obtainium",
|
"removeFromObtainium": "Remover do Obtainium",
|
||||||
"uninstallFromDevice": "Desinstalar do dispositivo",
|
"uninstallFromDevice": "Desinstalar do dispositivo",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Apenas funciona para aplicativos com detecção de versão desativada.",
|
"onlyWorksWithNonVersionDetectApps": "Apenas funciona para aplicativos com detecção de versão desativada.",
|
||||||
@ -216,10 +216,10 @@
|
|||||||
"autoApkFilterByArch": "Tente filtrar APKs por arquitetura de CPU, se possível",
|
"autoApkFilterByArch": "Tente filtrar APKs por arquitetura de CPU, se possível",
|
||||||
"overrideSource": "Substituir fonte",
|
"overrideSource": "Substituir fonte",
|
||||||
"dontShowAgain": "Não mostrar isso novamente",
|
"dontShowAgain": "Não mostrar isso novamente",
|
||||||
"dontShowTrackOnlyWarnings": "Não mostrar avisos 'Apenas Monitorar'",
|
"dontShowTrackOnlyWarnings": "Não mostrar avisos 'Apenas para monitorar'",
|
||||||
"dontShowAPKOriginWarnings": "Não mostrar avisos de origem da APK",
|
"dontShowAPKOriginWarnings": "Não mostrar avisos de origem da APK",
|
||||||
"moveNonInstalledAppsToBottom": "Mover aplicativos não instalados para o fundo da lista de aplicativos",
|
"moveNonInstalledAppsToBottom": "Mover aplicativos não instalados para o fundo da lista de aplicativos",
|
||||||
"gitlabPATLabel": "Token de Acesso Pessoal do Gitlab\n(Ativa pesquisa e melhora a descoberta de APKs)",
|
"gitlabPATLabel": "Token de acesso pessoal do Gitlab\n(Ativa pesquisa e melhora a descoberta de APKs)",
|
||||||
"about": "Sobre",
|
"about": "Sobre",
|
||||||
"requiresCredentialsInSettings": "{}: Isso requer credenciais adicionais (em Configurações)",
|
"requiresCredentialsInSettings": "{}: Isso requer credenciais adicionais (em Configurações)",
|
||||||
"checkOnStart": "Verificar se há atualizações ao iniciar",
|
"checkOnStart": "Verificar se há atualizações ao iniciar",
|
||||||
@ -272,18 +272,18 @@
|
|||||||
"updatesAvailableNotifChannel": "Atualizações disponíveis",
|
"updatesAvailableNotifChannel": "Atualizações disponíveis",
|
||||||
"appsUpdatedNotifChannel": "Aplicativos atualizados",
|
"appsUpdatedNotifChannel": "Aplicativos atualizados",
|
||||||
"appsPossiblyUpdatedNotifChannel": "Tentativas de atualização de aplicativos",
|
"appsPossiblyUpdatedNotifChannel": "Tentativas de atualização de aplicativos",
|
||||||
"errorCheckingUpdatesNotifChannel": "Erro ao Procurar por Atualizações",
|
"errorCheckingUpdatesNotifChannel": "Erro ao procurar por atualizações",
|
||||||
"appsRemovedNotifChannel": "Aplicativos removidos",
|
"appsRemovedNotifChannel": "Aplicativos removidos",
|
||||||
"downloadingXNotifChannel": "Baixando {}",
|
"downloadingXNotifChannel": "Baixando {}",
|
||||||
"completeAppInstallationNotifChannel": "Instalação completa do aplicativo",
|
"completeAppInstallationNotifChannel": "Instalação completa do aplicativo",
|
||||||
"checkingForUpdatesNotifChannel": "Checando por Atualizações",
|
"checkingForUpdatesNotifChannel": "Checando por atualizações",
|
||||||
"onlyCheckInstalledOrTrackOnlyApps": "Apenas checar aplicativos instalados e 'Apenas Seguir' por updates",
|
"onlyCheckInstalledOrTrackOnlyApps": "Apenas verificar atualizações de aplicativos instalados e 'Apenas monitorar'",
|
||||||
"supportFixedAPKURL": "Suporte a APK com URLs fixas",
|
"supportFixedAPKURL": "Suporte a APK com URLs fixas",
|
||||||
"selectX": "Selecionar {}",
|
"selectX": "Selecionar {}",
|
||||||
"parallelDownloads": "Permitir downloads paralelos",
|
"parallelDownloads": "Permitir downloads paralelos",
|
||||||
"installMethod": "Método de instalação",
|
"installMethod": "Método de instalação",
|
||||||
"normal": "Normal",
|
"normal": "Normal",
|
||||||
"root": "Raiz",
|
"root": "Root",
|
||||||
"shizukuBinderNotFound": "O Shizuku não está rodando",
|
"shizukuBinderNotFound": "O Shizuku não está rodando",
|
||||||
"useSystemFont": "Usar fonte padrão do sistema",
|
"useSystemFont": "Usar fonte padrão do sistema",
|
||||||
"systemFontError": "Erro ao carregar a fonte do sistema: {}",
|
"systemFontError": "Erro ao carregar a fonte do sistema: {}",
|
||||||
@ -298,6 +298,8 @@
|
|||||||
"installed": "Instalado",
|
"installed": "Instalado",
|
||||||
"latest": "Mais recente",
|
"latest": "Mais recente",
|
||||||
"invertRegEx": "Inverter expressão regular",
|
"invertRegEx": "Inverter expressão regular",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Remover aplicativo?",
|
"one": "Remover aplicativo?",
|
||||||
"other": "Remover aplicativos?"
|
"other": "Remover aplicativos?"
|
||||||
@ -339,15 +341,15 @@
|
|||||||
"other": "Foram limpos {n} logs (antes = {antes}, depois = {depois})"
|
"other": "Foram limpos {n} logs (antes = {antes}, depois = {depois})"
|
||||||
},
|
},
|
||||||
"xAndNMoreUpdatesAvailable": {
|
"xAndNMoreUpdatesAvailable": {
|
||||||
"one": "{} e 1 outro aplicativo possui atualizações.",
|
"one": "{} e um outro aplicativo possui atualizações.",
|
||||||
"other": "{} e {} outros aplicativo possuem atualizações."
|
"other": "{} e {} outros aplicativo possuem atualizações."
|
||||||
},
|
},
|
||||||
"xAndNMoreUpdatesInstalled": {
|
"xAndNMoreUpdatesInstalled": {
|
||||||
"one": "{} e um outro aplicativo foi atualizado.",
|
"one": "{} e um outro aplicativo foram atualizado.",
|
||||||
"other": "{} e {} outros aplicativos foram atualizados."
|
"other": "{} e {} outros aplicativos foram atualizados."
|
||||||
},
|
},
|
||||||
"xAndNMoreUpdatesPossiblyInstalled": {
|
"xAndNMoreUpdatesPossiblyInstalled": {
|
||||||
"one": "{} e 1 outro aplicativo pode ter sido atualizado.",
|
"one": "{} e um outro aplicativo podem ter sido atualizados.",
|
||||||
"other": "{} e {} outros aplicativos podem ter sido atualizados."
|
"other": "{} e {} outros aplicativos podem ter sido atualizados."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Установлен",
|
"installed": "Установлен",
|
||||||
"latest": "Последний",
|
"latest": "Последний",
|
||||||
"invertRegEx": "Инвертировать регулярное выражение",
|
"invertRegEx": "Инвертировать регулярное выражение",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Удалить приложение?",
|
"one": "Удалить приложение?",
|
||||||
"other": "Удалить приложения?"
|
"other": "Удалить приложения?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Installerad",
|
"installed": "Installerad",
|
||||||
"latest": "Senast",
|
"latest": "Senast",
|
||||||
"invertRegEx": "Invertera reguljärt uttryck",
|
"invertRegEx": "Invertera reguljärt uttryck",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Ta Bort App?",
|
"one": "Ta Bort App?",
|
||||||
"other": "Ta Bort Appar?"
|
"other": "Ta Bort Appar?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "Kurulmuş",
|
"installed": "Kurulmuş",
|
||||||
"latest": "En sonuncu",
|
"latest": "En sonuncu",
|
||||||
"invertRegEx": "Normal ifadeyi ters çevir",
|
"invertRegEx": "Normal ifadeyi ters çevir",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Uygulamayı Kaldır?",
|
"one": "Uygulamayı Kaldır?",
|
||||||
"other": "Uygulamaları Kaldır?"
|
"other": "Uygulamaları Kaldır?"
|
||||||
|
@ -25,11 +25,11 @@
|
|||||||
"githubStarredRepos": "Kho lưu trữ có gắn dấu sao GitHub",
|
"githubStarredRepos": "Kho lưu trữ có gắn dấu sao GitHub",
|
||||||
"uname": "Tên người dùng",
|
"uname": "Tên người dùng",
|
||||||
"wrongArgNum": "Số lượng đối số được cung cấp sai",
|
"wrongArgNum": "Số lượng đối số được cung cấp sai",
|
||||||
"xIsTrackOnly": "{}là Chỉ-Theo dõi",
|
"xIsTrackOnly": "{} là Chỉ theo dõi",
|
||||||
"source": "Nguồn",
|
"source": "Nguồn",
|
||||||
"app": "Ứng dụng",
|
"app": "Ứng dụng",
|
||||||
"appsFromSourceAreTrackOnly": "Các ứng dụng từ nguồn này là 'Chỉ-Theo dõi'.",
|
"appsFromSourceAreTrackOnly": "Các ứng dụng từ nguồn này là 'Chỉ theo dõi'.",
|
||||||
"youPickedTrackOnly": "Bạn đã chọn tùy chọn 'Chỉ-Theo dõi'.",
|
"youPickedTrackOnly": "Bạn đã chọn tùy chọn 'Chỉ theo dõi'.",
|
||||||
"trackOnlyAppDescription": "Ứng dụng sẽ được theo dõi để cập nhật, nhưng Obtainium sẽ không thể tải xuống hoặc cài đặt nó.",
|
"trackOnlyAppDescription": "Ứng dụng sẽ được theo dõi để cập nhật, nhưng Obtainium sẽ không thể tải xuống hoặc cài đặt nó.",
|
||||||
"cancelled": "Đã hủy",
|
"cancelled": "Đã hủy",
|
||||||
"appAlreadyAdded": "Ứng dụng được thêm rồi",
|
"appAlreadyAdded": "Ứng dụng được thêm rồi",
|
||||||
@ -42,7 +42,7 @@
|
|||||||
"search": "Tìm kiếm",
|
"search": "Tìm kiếm",
|
||||||
"additionalOptsFor": "Tùy chọn bổ sung cho {}",
|
"additionalOptsFor": "Tùy chọn bổ sung cho {}",
|
||||||
"supportedSources": "Nguồn được hỗ trợ",
|
"supportedSources": "Nguồn được hỗ trợ",
|
||||||
"trackOnlyInBrackets": "(Chỉ-Theo dõi)",
|
"trackOnlyInBrackets": "(Chỉ theo dõi)",
|
||||||
"searchableInBrackets": "(Có thể tìm kiếm)",
|
"searchableInBrackets": "(Có thể tìm kiếm)",
|
||||||
"appsString": "Ứng dụng",
|
"appsString": "Ứng dụng",
|
||||||
"noApps": "Không có ứng dụng",
|
"noApps": "Không có ứng dụng",
|
||||||
@ -60,7 +60,7 @@
|
|||||||
"removeSelectedApps": "Xóa ứng dụng đã chọn",
|
"removeSelectedApps": "Xóa ứng dụng đã chọn",
|
||||||
"updateX": "Cập nhật {}",
|
"updateX": "Cập nhật {}",
|
||||||
"installX": "Cài đặt {}",
|
"installX": "Cài đặt {}",
|
||||||
"markXTrackOnlyAsUpdated": "Đánh dấu {}\n(Chỉ-Theo dõi)\nnhư là đã cập nhật",
|
"markXTrackOnlyAsUpdated": "Đánh dấu {}\n(Chỉ theo dõi)\nnhư là đã cập nhật",
|
||||||
"changeX": "Thay đổi {}",
|
"changeX": "Thay đổi {}",
|
||||||
"installUpdateApps": "Cài đặt/Cập nhật ứng dụng",
|
"installUpdateApps": "Cài đặt/Cập nhật ứng dụng",
|
||||||
"installUpdateSelectedApps": "Cài đặt/Cập nhật ứng dụng đã chọn",
|
"installUpdateSelectedApps": "Cài đặt/Cập nhật ứng dụng đã chọn",
|
||||||
@ -277,7 +277,7 @@
|
|||||||
"downloadingXNotifChannel": "Đang tải xuống {}",
|
"downloadingXNotifChannel": "Đang tải xuống {}",
|
||||||
"completeAppInstallationNotifChannel": "Hoàn tất cài đặt ứng dụng",
|
"completeAppInstallationNotifChannel": "Hoàn tất cài đặt ứng dụng",
|
||||||
"checkingForUpdatesNotifChannel": "Đang kiểm tra cập nhật",
|
"checkingForUpdatesNotifChannel": "Đang kiểm tra cập nhật",
|
||||||
"onlyCheckInstalledOrTrackOnlyApps": "Chỉ kiểm tra cập nhật các ứng dụng đã cài đặt và Chỉ-Theo dõi",
|
"onlyCheckInstalledOrTrackOnlyApps": "Chỉ kiểm tra cập nhật các ứng dụng đã cài đặt và Chỉ theo dõi",
|
||||||
"supportFixedAPKURL": "Hỗ trợ URL APK cố định",
|
"supportFixedAPKURL": "Hỗ trợ URL APK cố định",
|
||||||
"selectX": "Lựa chọn {}",
|
"selectX": "Lựa chọn {}",
|
||||||
"parallelDownloads": "Cho phép tải đa luồng",
|
"parallelDownloads": "Cho phép tải đa luồng",
|
||||||
@ -295,9 +295,11 @@
|
|||||||
"APKLinkHash": "Băm liên kết APK",
|
"APKLinkHash": "Băm liên kết APK",
|
||||||
"directAPKLink": "Liên kết APK trực tiếp",
|
"directAPKLink": "Liên kết APK trực tiếp",
|
||||||
"pseudoVersionInUse": "Phiên bản giả đang được sử dụng",
|
"pseudoVersionInUse": "Phiên bản giả đang được sử dụng",
|
||||||
"installed": "Cài đặt",
|
"installed": "Đã cài đặt",
|
||||||
"latest": "Mới nhất",
|
"latest": "Mới nhất",
|
||||||
"invertRegEx": "Đảo ngược biểu thức chính quy",
|
"invertRegEx": "Đảo ngược biểu thức chính quy",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Gỡ ứng dụng?",
|
"one": "Gỡ ứng dụng?",
|
||||||
"other": "Gỡ ứng dụng?"
|
"other": "Gỡ ứng dụng?"
|
||||||
|
@ -298,6 +298,8 @@
|
|||||||
"installed": "已安装",
|
"installed": "已安装",
|
||||||
"latest": "最新的",
|
"latest": "最新的",
|
||||||
"invertRegEx": "反转正则表达式",
|
"invertRegEx": "反转正则表达式",
|
||||||
|
"note": "Note",
|
||||||
|
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "是否删除应用?",
|
"one": "是否删除应用?",
|
||||||
"other": "是否删除应用?"
|
"other": "是否删除应用?"
|
||||||
|
1
build.sh
1
build.sh
@ -8,6 +8,7 @@ if [ -z "$1" ]; then
|
|||||||
git fetch && git merge origin/main && git push # Typically run after a PR to main, so bring dev up to date
|
git fetch && git merge origin/main && git push # Typically run after a PR to main, so bring dev up to date
|
||||||
fi
|
fi
|
||||||
cd .flutter
|
cd .flutter
|
||||||
|
git fetch
|
||||||
git checkout "$(flutter --version | head -2 | tail -1 | awk '{print $4}')" # Ensure included Flutter submodule version equals my environment
|
git checkout "$(flutter --version | head -2 | tail -1 | awk '{print $4}')" # Ensure included Flutter submodule version equals my environment
|
||||||
cd ..
|
cd ..
|
||||||
rm ./build/app/outputs/flutter-apk/* 2>/dev/null # Get rid of older builds if any
|
rm ./build/app/outputs/flutter-apk/* 2>/dev/null # Get rid of older builds if any
|
||||||
|
@ -3,6 +3,8 @@ import 'dart:convert';
|
|||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:html/parser.dart';
|
import 'package:html/parser.dart';
|
||||||
import 'package:http/http.dart';
|
import 'package:http/http.dart';
|
||||||
|
import 'package:obtainium/app_sources/github.dart';
|
||||||
|
import 'package:obtainium/app_sources/gitlab.dart';
|
||||||
import 'package:obtainium/components/generated_form.dart';
|
import 'package:obtainium/components/generated_form.dart';
|
||||||
import 'package:obtainium/custom_errors.dart';
|
import 'package:obtainium/custom_errors.dart';
|
||||||
import 'package:obtainium/providers/source_provider.dart';
|
import 'package:obtainium/providers/source_provider.dart';
|
||||||
@ -95,17 +97,32 @@ class FDroid extends AppSource {
|
|||||||
details.names.author =
|
details.names.author =
|
||||||
authorLines.first.split(': ').sublist(1).join(': ');
|
authorLines.first.split(': ').sublist(1).join(': ');
|
||||||
}
|
}
|
||||||
var changelogUrls = lines.where((l) => l.startsWith('Changelog: '));
|
var changelogUrls = lines
|
||||||
|
.where((l) => l.startsWith('Changelog: '))
|
||||||
|
.map((e) => e.split(' ').sublist(1).join(' '));
|
||||||
if (changelogUrls.isNotEmpty) {
|
if (changelogUrls.isNotEmpty) {
|
||||||
details.changeLog = changelogUrls.first;
|
details.changeLog = changelogUrls.first;
|
||||||
details.changeLog = (await sourceRequest(
|
bool isGitHub = false;
|
||||||
details.changeLog!
|
bool isGitLab = false;
|
||||||
.split(': ')
|
try {
|
||||||
.sublist(1)
|
GitHub().sourceSpecificStandardizeURL(details.changeLog!);
|
||||||
.join(': ')
|
isGitHub = true;
|
||||||
.replaceFirst('/blob/', '/raw/'),
|
} catch (e) {
|
||||||
additionalSettings))
|
//
|
||||||
.body;
|
}
|
||||||
|
try {
|
||||||
|
GitLab().sourceSpecificStandardizeURL(details.changeLog!);
|
||||||
|
isGitLab = true;
|
||||||
|
} catch (e) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
if ((isGitHub || isGitLab) &&
|
||||||
|
(details.changeLog?.indexOf('/blob/') ?? -1) >= 0) {
|
||||||
|
details.changeLog = (await sourceRequest(
|
||||||
|
details.changeLog!.replaceFirst('/blob/', '/raw/'),
|
||||||
|
additionalSettings))
|
||||||
|
.body;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// Fail silently
|
// Fail silently
|
||||||
|
@ -39,6 +39,15 @@ class SourceHut extends AppSource {
|
|||||||
String standardUrl,
|
String standardUrl,
|
||||||
Map<String, dynamic> additionalSettings,
|
Map<String, dynamic> additionalSettings,
|
||||||
) async {
|
) async {
|
||||||
|
if (standardUrl.endsWith('/refs')) {
|
||||||
|
standardUrl = standardUrl
|
||||||
|
.split('/')
|
||||||
|
.reversed
|
||||||
|
.toList()
|
||||||
|
.sublist(1)
|
||||||
|
.reversed
|
||||||
|
.join('/');
|
||||||
|
}
|
||||||
Uri standardUri = Uri.parse(standardUrl);
|
Uri standardUri = Uri.parse(standardUrl);
|
||||||
String appName = standardUri.pathSegments.last;
|
String appName = standardUri.pathSegments.last;
|
||||||
bool fallbackToOlderReleases =
|
bool fallbackToOlderReleases =
|
||||||
|
@ -530,7 +530,20 @@ class AddAppPageState extends State<AddAppPage> {
|
|||||||
? TextDecoration.underline
|
? TextDecoration.underline
|
||||||
: TextDecoration.none),
|
: TextDecoration.none),
|
||||||
))),
|
))),
|
||||||
)
|
),
|
||||||
|
const SizedBox(
|
||||||
|
height: 16,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'${tr('note')}:',
|
||||||
|
style:
|
||||||
|
const TextStyle(fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Text(tr('selfHostedNote',
|
||||||
|
args: [tr('overrideSource')])),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -205,6 +205,12 @@ class _AppPageState extends State<AppPage> {
|
|||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: Theme.of(context).textTheme.displayLarge,
|
style: Theme.of(context).textTheme.displayLarge,
|
||||||
),
|
),
|
||||||
|
Text(tr('byX', args: [app?.app.author ?? tr('unknown')]),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: Theme.of(context).textTheme.headlineMedium),
|
||||||
|
const SizedBox(
|
||||||
|
height: 24,
|
||||||
|
),
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
if (app?.app.url != null) {
|
if (app?.app.url != null) {
|
||||||
@ -219,15 +225,12 @@ class _AppPageState extends State<AppPage> {
|
|||||||
));
|
));
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
tr('byX', args: [app?.app.author ?? tr('unknown')]),
|
app?.app.url ?? '',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: Theme.of(context).textTheme.headlineMedium!.copyWith(
|
style: Theme.of(context).textTheme.labelSmall!.copyWith(
|
||||||
decoration: TextDecoration.underline,
|
decoration: TextDecoration.underline,
|
||||||
fontStyle: FontStyle.italic),
|
fontStyle: FontStyle.italic),
|
||||||
)),
|
)),
|
||||||
const SizedBox(
|
|
||||||
height: 8,
|
|
||||||
),
|
|
||||||
Text(
|
Text(
|
||||||
app?.app.id ?? '',
|
app?.app.id ?? '',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
|
@ -358,6 +358,16 @@ class AppsPageState extends State<AppsPage> {
|
|||||||
String? changesUrl =
|
String? changesUrl =
|
||||||
appSource.changeLogPageFromStandardUrl(listedApps[appIndex].app.url);
|
appSource.changeLogPageFromStandardUrl(listedApps[appIndex].app.url);
|
||||||
String? changeLog = listedApps[appIndex].app.changeLog;
|
String? changeLog = listedApps[appIndex].app.changeLog;
|
||||||
|
if (changeLog?.split('\n').length == 1) {
|
||||||
|
if (RegExp(
|
||||||
|
'(http|ftp|https)://([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?')
|
||||||
|
.hasMatch(changeLog!)) {
|
||||||
|
if (changesUrl == null) {
|
||||||
|
changesUrl = changeLog;
|
||||||
|
changeLog = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return (changeLog == null && changesUrl == null)
|
return (changeLog == null && changesUrl == null)
|
||||||
? null
|
? null
|
||||||
: () {
|
: () {
|
||||||
|
@ -751,18 +751,18 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: sqflite
|
name: sqflite
|
||||||
sha256: c2c32eb0c74021d987336522acc3b6bf0082fbd0c540c36a9cf4ddb8ba891ddc
|
sha256: a9016f495c927cb90557c909ff26a6d92d9bd54fc42ba92e19d4e79d61e798c6
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.1"
|
version: "2.3.2"
|
||||||
sqflite_common:
|
sqflite_common:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: sqflite_common
|
name: sqflite_common
|
||||||
sha256: bb4738f15b23352822f4c42a531677e5c6f522e079461fd240ead29d8d8a54a6
|
sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.5.0+2"
|
version: "2.5.3"
|
||||||
stack_trace:
|
stack_trace:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
# In Windows, build-name is used as the major, minor, and patch parts
|
# In Windows, build-name is used as the major, minor, and patch parts
|
||||||
# of the product and file versions while build-number is used as the build suffix.
|
# of the product and file versions while build-number is used as the build suffix.
|
||||||
version: 1.0.0+250 # When changing this, update the tag in main() accordingly
|
version: 1.0.1+251 # When changing this, update the tag in main() accordingly
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.0.0 <4.0.0'
|
sdk: '>=3.0.0 <4.0.0'
|
||||||
|
Reference in New Issue
Block a user