diff --git a/.flutter b/.flutter index c236373..ea121f8 160000 --- a/.flutter +++ b/.flutter @@ -1 +1 @@ -Subproject commit c23637390482d4cf9598c3ce3f2be31aa7332daf +Subproject commit ea121f8859e4b13e47a8f845e4586164519588bc diff --git a/assets/translations/bs.json b/assets/translations/bs.json index a1e38c5..ded59c7 100644 --- a/assets/translations/bs.json +++ b/assets/translations/bs.json @@ -320,11 +320,12 @@ "stayOneVersionBehind": "Stay one version behind latest", "refreshBeforeDownload": "Refresh app details before download", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Name", "smartname": "Name (Smart)", "sortMethod": "Sort Method", "welcome": "Welcome", - "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.", + "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.", "removeAppQuestion": { "one": "Želite li ukloniti aplikaciju?", "other": "Želite li ukloniti aplikacije?" diff --git a/assets/translations/ca.json b/assets/translations/ca.json index 1920179..331b25f 100644 --- a/assets/translations/ca.json +++ b/assets/translations/ca.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Roman a la versió anterior a l'última", "refreshBeforeDownload": "Actualitza les dades de l'aplicació abans de descarregar-la", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Nom", "smartname": "Nom (smart)", "sortMethod": "Mètode d'ordenació", diff --git a/assets/translations/cs.json b/assets/translations/cs.json index 10b5d27..ccebf11 100644 --- a/assets/translations/cs.json +++ b/assets/translations/cs.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Zůstaňte o jednu verzi pozadu za nejnovější", "refreshBeforeDownload": "Obnovení údajů o aplikaci před stažením", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Název", "smartname": "Název (Smart)", "sortMethod": "Metoda třídění", diff --git a/assets/translations/da.json b/assets/translations/da.json index 4d5474b..60729a6 100644 --- a/assets/translations/da.json +++ b/assets/translations/da.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Forbliv én version bagud den seneste", "refreshBeforeDownload": "Opdater app-detaljer før download", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Navn", "smartname": "Navn (Smart)", "sortMethod": "Sorteringsmetode", diff --git a/assets/translations/de.json b/assets/translations/de.json index 5485193..a61f53c 100644 --- a/assets/translations/de.json +++ b/assets/translations/de.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Eine Version hinter der neuesten Version bleiben", "refreshBeforeDownload": "App-Details vor dem Download aktualisieren", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Name", "smartname": "Name (Smart)", "sortMethod": "Sortierverfahren", diff --git a/assets/translations/en-EO.json b/assets/translations/en-EO.json index 3839f76..9ceabcc 100644 --- a/assets/translations/en-EO.json +++ b/assets/translations/en-EO.json @@ -320,11 +320,12 @@ "stayOneVersionBehind": "Stay one version behind latest", "refreshBeforeDownload": "Refresh app details before download", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Name", "smartname": "Name (Smart)", "sortMethod": "Sort Method", "welcome": "Welcome", - "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.", + "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.", "removeAppQuestion": { "one": "Forigi la aplikaĵon?", "other": "Forigi la aplikaĵojn?" diff --git a/assets/translations/en.json b/assets/translations/en.json index 30ff154..acc31b7 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -325,7 +325,7 @@ "smartname": "Name (smart)", "sortMethod": "Sort method", "welcome": "Welcome", - "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.", + "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.", "removeAppQuestion": { "one": "Remove App?", "other": "Remove Apps?" diff --git a/assets/translations/es.json b/assets/translations/es.json index 0f414cd..188543b 100644 --- a/assets/translations/es.json +++ b/assets/translations/es.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Mantenerse una versión por detrás de la última", "refreshBeforeDownload": "Actualiza los datos de la aplicación antes de descargarla", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Nombre", "smartname": "Nombre (Smart)", "sortMethod": "Método de clasificación", diff --git a/assets/translations/fa.json b/assets/translations/fa.json index b4d4e1f..508e1f6 100644 --- a/assets/translations/fa.json +++ b/assets/translations/fa.json @@ -320,11 +320,12 @@ "stayOneVersionBehind": "یک نسخه از آخرین نسخه پشت سر بگذارید", "refreshBeforeDownload": "قبل از دانلود، جزئیات برنامه را بازخوانی کنید", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Name", "smartname": "Name (Smart)", "sortMethod": "Sort Method", "welcome": "Welcome", - "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.", + "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.", "removeAppQuestion": { "one": "برنامه حذف شود؟", "other": "برنامه ها حذف شوند؟" diff --git a/assets/translations/fr.json b/assets/translations/fr.json index 75afecb..d8f6269 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Rester une version en arrière de la dernière", "refreshBeforeDownload": "Actualiser les détails de l'application avant de la télécharger", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Nom", "smartname": "Nom (Smart)", "sortMethod": "Méthode de tri", diff --git a/assets/translations/hu.json b/assets/translations/hu.json index fcf68f4..4993ba9 100644 --- a/assets/translations/hu.json +++ b/assets/translations/hu.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Maradjon egy verzióval a legújabb mögött", "refreshBeforeDownload": "Az alkalmazás adatainak frissítése a letöltés előtt", "tencentAppStore": "Tencent Appstore", + "coolApk": "CoolApk", "name": "Név", "smartname": "Név (Okos)", "sortMethod": "Rendezési eljárás", diff --git a/assets/translations/id.json b/assets/translations/id.json index 80ab03f..a102dd4 100644 --- a/assets/translations/id.json +++ b/assets/translations/id.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Tetap satu versi di belakang versi terbaru", "refreshBeforeDownload": "Segarkan detail aplikasi sebelum mengunduh", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Nama", "smartname": "Nama (Cerdas)", "sortMethod": "Metode Penyortiran", diff --git a/assets/translations/it.json b/assets/translations/it.json index fe6379e..ad121b5 100644 --- a/assets/translations/it.json +++ b/assets/translations/it.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Rimanere una versione indietro rispetto alla più recente", "refreshBeforeDownload": "Aggiornare i dettagli dell'app prima del download", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Nome", "smartname": "Nome (intelligente)", "sortMethod": "Metodo di ordinamento", diff --git a/assets/translations/ja.json b/assets/translations/ja.json index 2248f33..a1aed20 100644 --- a/assets/translations/ja.json +++ b/assets/translations/ja.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "最新のバージョンから1つ前のものを使用する", "refreshBeforeDownload": "ダウンロード前にアプリの詳細を更新する", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "名称", "smartname": "名前(スマート)", "sortMethod": "ソート方法", diff --git a/assets/translations/ko.json b/assets/translations/ko.json index 83e6034..15a1604 100644 --- a/assets/translations/ko.json +++ b/assets/translations/ko.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "최신 버전보다 한 버전 뒤에 머무르기", "refreshBeforeDownload": "다운로드 전에 앱 세부 정보 새로 고침", "tencentAppStore": "텐센트 앱 스토어", + "coolApk": "CoolApk", "name": "이름", "smartname": "이름(스마트)", "sortMethod": "정렬 방법", diff --git a/assets/translations/nl.json b/assets/translations/nl.json index 4549361..50799c6 100644 --- a/assets/translations/nl.json +++ b/assets/translations/nl.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Blijf een versie achter op de nieuwste", "refreshBeforeDownload": "Vernieuw app details voor download", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Naam", "smartname": "Naam (Slim)", "sortMethod": "Sorteermethode", diff --git a/assets/translations/pl.json b/assets/translations/pl.json index 6f707e9..16381e7 100644 --- a/assets/translations/pl.json +++ b/assets/translations/pl.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Pozostań jedną wersję w tyle za najnowszą", "refreshBeforeDownload": "Odśwież szczegóły aplikacji przed pobraniem", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Nazwa", "smartname": "Nazwa (Smart)", "sortMethod": "Metoda sortowania", diff --git a/assets/translations/pt-BR.json b/assets/translations/pt-BR.json index 5270cc3..f2219aa 100644 --- a/assets/translations/pt-BR.json +++ b/assets/translations/pt-BR.json @@ -1,7 +1,10 @@ { + "invalidURLForSource": "Não é uma URL de app válida de {}", + "noReleaseFound": "Não foi possível encontrar um lançamento adequado", "noVersionFound": "Não foi possível determinar a versão do lançamento", "urlMatchesNoSource": "A URL não corresponde com nenhuma fonte conhecida", "cantInstallOlderVersion": "Não é possível instalar uma versão mais antiga de um app", + "appIdMismatch": "O ID do pacote baixado não corresponde ao existente", "functionNotImplemented": "Essa classe não implementou esse recurso ainda", "placeholder": "Espaço reservado", "someErrors": "Ocorreram alguns erros", @@ -10,23 +13,27 @@ "and": "e", "githubPATLabel": "Token de acesso pessoal do GitHub (aumenta o limite de taxa)", "includePrereleases": "Incluir pré-lançamentos", + "fallbackToOlderReleases": "Recorrer à lançamentos mais antigos", "filterReleaseTitlesByRegEx": "Filtrar títulos de lançamentos por expressão regular", "invalidRegEx": "Expressão regular inválida", "noDescription": "Sem descrição", "cancel": "Cancelar", "continue": "Continuar", "requiredInBrackets": "(obrigatório)", + "dropdownNoOptsError": "ERRO: O MENU DEVE TER PELO MENOS UMA OPÇÃO", "colour": "Cor", "standard": "Padrão", "custom": "Personalizado", "useMaterialYou": "Usar Material You", "githubStarredRepos": "Repositórios com estrela do GitHub", "uname": "Nome de usuário", + "wrongArgNum": "Número errado de argumentos fornecidos", "xIsTrackOnly": "{} é somente de rastreio", "source": "Fonte", "app": "App", "appsFromSourceAreTrackOnly": "Apps desta fonte são somente para rastreamento.", "youPickedTrackOnly": "Você selecionou a opção de somente rastreamento.", + "trackOnlyAppDescription": "As atualizações do app serão rastreadas, mas o Obtainium não baixará ou instalará elas.", "cancelled": "Cancelado", "appAlreadyAdded": "O app já foi adicionado", "alreadyUpToDateQuestion": "O app já está atualizado?", @@ -41,14 +48,17 @@ "trackOnlyInBrackets": "(somente rastreamento)", "searchableInBrackets": "(pesquisável)", "appsString": "Apps", + "noApps": "Nenhum app", "noAppsForFilter": "Nenhum app pro filtro", "byX": "Por {}", "percentProgress": "Progresso: {}%", "pleaseWait": "Por favor aguarde", + "updateAvailable": "Atualização disponível", "notInstalled": "Não instalado", "pseudoVersion": "pseudo-versão", "selectAll": "Selecionar tudo", "deselectX": "Desselecionar {}", + "xWillBeRemovedButRemainInstalled": "{} será removido do Obtainium mas continuará instalado no dispositivo.", "removeSelectedAppsQuestion": "Remover os apps selecionados?", "removeSelectedApps": "Remover apps selecionados", "updateX": "Atualizar {}", @@ -57,12 +67,14 @@ "changeX": "Alterar {}", "installUpdateApps": "Instalar/atualizar apps", "installUpdateSelectedApps": "Instalar/atualizar apps selecionados", + "markXSelectedAppsAsUpdated": "Marcar os {} apps selecionados como atualizados?", "no": "Não", "yes": "Sim", "markSelectedAppsUpdated": "Marcar apps selecionados como atualizados", "pinToTop": "Fixar ao topo", "unpinFromTop": "Desfixar do topo", "resetInstallStatusForSelectedAppsQuestion": "Redefinir o estado de instalação dos apps selecionados?", + "installStatusOfXWillBeResetExplanation": "Os estados de instalação dos apps selecionados serão redefinidos.\n\nIsso pode ajudar quando a versão exibida no Obtainium está incorreta devido a atualizações malsucedidas ou outros problemas.", "customLinkMessage": "Esses links funcionarão em dispositivos com o Obtainium instalado", "shareAppConfigLinks": "Compartilhar configuração do app como um link HTML", "shareSelectedAppURLs": "Compartilhar as URLs dos apps selecionados", @@ -77,16 +89,20 @@ "upToDateApps": "Apps atualizados", "nonInstalledApps": "Apps não instalados", "importExport": "Importar/Exportar", + "settings": "Configurações", "exportedTo": "Exportado para {}", "obtainiumExport": "Exportação do Obtainium", "invalidInput": "Entrada inválida", "importedX": "{} importado(s)", "obtainiumImport": "Importação do Obtainium", + "importFromURLList": "Importar da lista de URLs", "searchQuery": "Consulta de pesquisa", "appURLList": "Lista de URLs dos apps", + "line": "Linha", "searchX": "Pesquisar {}", "noResults": "Nenhum resultado encontrado", "importX": "Importar {}", + "importedAppsIdDisclaimer": "Os apps importados podem ser exibidos incorretamente como se não estivessem instalados.\nPara resolver isso, reinstale eles pelo Obtainium.\nIsso não afetará os dados dos apps.\n\nIsso somente afeta a URL e os métodos de importação de terceiros.", "importErrors": "Erros de importação", "importedXOfYApps": "{} de {} foram importados.", "followingURLsHadErrors": "As seguintes URLs tiveram erros:", @@ -97,6 +113,7 @@ "dark": "Escuro", "light": "Claro", "followSystem": "Seguir o sistema", + "followSystemThemeExplanation": "Só é possível seguir o tema do sistema ao usar aplicativos de terceiros", "useBlackTheme": "Usar o tema escuro de preto profundo", "appSortBy": "Ordenar apps por", "authorName": "Autor/nome", @@ -108,6 +125,7 @@ "bgUpdateCheckInterval": "Intervalo de busca por atualizações em segundo plano", "neverManualOnly": "Nunca - somente manualmente", "appearance": "Aparência", + "showWebInAppView": "Mostrar a fonte da pagina web na tela de apps", "pinUpdates": "Fixar atualizações no topo da tela de apps", "updates": "Atualizações", "sourceSpecific": "Específico à fonte", @@ -116,29 +134,37 @@ "appLogs": "Registros do app", "close": "Fechar", "share": "Compartilhar", + "appNotFound": "O app não foi encontrado", + "obtainiumExportHyphenatedLowercase": "obtainium-export", "pickAnAPK": "Selecione um APK", "appHasMoreThanOnePackage": "{} tem mais de um pacote:", "deviceSupportsXArch": "Seu dispositivo suporta a arquitetura de CPU {}.", + "deviceSupportsFollowingArchs": "Seu dispositivo suporta as seguintes arquiteturas de CPU:", "warning": "Alerta", "sourceIsXButPackageFromYPrompt": "A fonte do app é '{}' mas o pacote de lançamento vem de '{}'. Continuar mesmo assim?", "updatesAvailable": "Atualizações disponíveis", + "updatesAvailableNotifDescription": "Notifica o usuário que atualizações estão disponíveis para um ou mais apps rastreados pelo Obtainium", "noNewUpdates": "Nenhuma atualização disponível.", "xHasAnUpdate": "{} tem uma atualização.", "appsUpdated": "Apps atualizados", "appsNotUpdated": "Falhou ao atualizar os aplicativos", "appsUpdatedNotifDescription": "Notifica o usuário que atualizações de um ou mais apps foram aplicadas em segundo plano", + "xWasUpdatedToY": "{} foi atualizado para a versão {}.", "xWasNotUpdatedToY": "Falha ao atualizar {} para a versão {}.", "errorCheckingUpdates": "Ocorreu um erro ao buscar atualizações", + "errorCheckingUpdatesNotifDescription": "Uma notificação que mostra quando a busca de atualizações em segundo plano falha", "appsRemoved": "Apps removidos", "appsRemovedNotifDescription": "Notifica o usuário que um ou mais apps foram removidos devido a erros ao carregá-los", "xWasRemovedDueToErrorY": "{} for removido devido ao erro: {}", "completeAppInstallation": "Concluir instalação do app", + "obtainiumMustBeOpenToInstallApps": "O Obtainium precisa estar aberto para instalar apps", "completeAppInstallationNotifDescription": "Pede pro usuário voltar ao Obtainium para concluir a instalação de um app", "checkingForUpdates": "Buscando atualizações", "checkingForUpdatesNotifDescription": "Notificação transitória que aparece ao buscar atualizações", "pleaseAllowInstallPerm": "Permita que o Obtainium instale apps", "trackOnly": "Somente rastreamento", "errorWithHttpStatusCode": "Erro {}", + "versionCorrectionDisabled": "Correção de versão desativada (o plugin parece não funcionar)", "unknown": "Desconhecido", "none": "Nenhum", "never": "Nunca", @@ -150,6 +176,7 @@ "fdroid": "Oficial do F-Droid", "appIdOrName": "ID do app ou nome", "appId": "ID do app", + "appWithIdOrNameNotFound": "Nenhum app foi encontrado com aquele ID ou nome", "reposHaveMultipleApps": "Repositórios podem conter vários apps", "fdroidThirdPartyRepo": "Repositório de terceiros do F-Droid", "install": "Instalar", @@ -157,6 +184,8 @@ "update": "Atualizar", "markUpdated": "Marcar como atualizado", "additionalOptions": "Opções adicionais", + "disableVersionDetection": "Desativar detecção de versão", + "noVersionDetectionExplanation": "Essa opção só seve ser usada para apps aonde a detecção de versão não funciona corretamente.", "downloadingX": "Baixando {}", "downloadX": "Baixar {}", "downloadedX": "{} foi baixado", @@ -168,7 +197,9 @@ "categories": "Categorias", "category": "Categoria", "noCategory": "Nenhuma categoria", + "noCategories": "Nenhuma categoria", "deleteCategoriesQuestion": "Excluir categorias?", + "categoryDeleteWarning": "Todos os apps em categorias excluídas ficarão sem categoria.", "addCategory": "Adicionar categoria", "label": "Rótulo", "language": "Idioma", @@ -177,8 +208,11 @@ "selectedCategorizeWarning": "Isso substituirá a configuração de categoria existente dos apps selecionados.", "filterAPKsByRegEx": "Filtrar APKs por expressão regular", "removeFromObtainium": "Remover do Obtainium", + "uninstallFromDevice": "Desinstalar do dispositivo", "onlyWorksWithNonVersionDetectApps": "Funciona somente em apps com a detecção de versão desativada.", + "releaseDateAsVersion": "Usar data de lançamento como número da versão", "releaseTitleAsVersion": "Usar título do lançamento como número da versão", + "releaseDateAsVersionExplanation": "Essa opção só deve ser usada para apps quais a detecção de versão não funciona corretamente, mas uma data de lançamento está disponível.", "changes": "Alterações", "releaseDate": "Data de lançamento", "importFromURLsInFile": "Importar das URLs em arquivo (como OPML)", @@ -191,64 +225,81 @@ "overrideSource": "Sobrescrever fonte", "dontShowAgain": "Não mostrar isso novamente", "dontShowTrackOnlyWarnings": "Não mostrar alertas de \"somente rastreamento\"", + "dontShowAPKOriginWarnings": "Não mostrar alertas de origem dos APKs", "moveNonInstalledAppsToBottom": "Mover apps não instalados ao final da tela de apps", "gitlabPATLabel": "Token de acesso pessoal do GitLab", "about": "Sobre", "requiresCredentialsInSettings": "{} precisa de credenciais adicionais (nas Configurações)", "checkOnStart": "Buscar atualizações ao abrir o app", + "tryInferAppIdFromCode": "Tentar inferir o ID do app pelo código fonte", "removeOnExternalUninstall": "Remover automaticamente apps desinstalados externamente", "pickHighestVersionCode": "Selecionar APK de versão mais alta automaticamente", + "checkUpdateOnDetailPage": "Buscar atualizações ao abrir a tela de detalhes de um app", "disablePageTransitions": "Desativar animações de transição de tela", "reversePageTransitions": "Inverter animações de transição de tela", "minStarCount": "Número de estrelas mínimo", "addInfoBelow": "Adicione essa informação abaixo.", "addInfoInSettings": "Adicione essa informação nas Configurações.", + "githubSourceNote": "O limite de taxa do GitHub pode ser evitado ao usar uma chave de API.", "sortByLastLinkSegment": "Ordenar somente pelo ultimo segmento do link", "filterReleaseNotesByRegEx": "Filtrar notas de lançamento por expressão regular", + "customLinkFilterRegex": "Filtro de link de APK personalizado por expressão regular (padrão '.apk$')", "appsPossiblyUpdated": "Tentativas de atualização de apps", + "appsPossiblyUpdatedNotifDescription": "Notifica o usuário que atualizações de um ou mais apps podem ter sido aplicadas em segundo plano", "xWasPossiblyUpdatedToY": "{} pode ter sido atualizado para a versão {}.", "enableBackgroundUpdates": "Ativar atualizações em segundo plano", "backgroundUpdateReqsExplanation": "Atualizações em segundo plano podem não funcionar com todos os apps.", "backgroundUpdateLimitsExplanation": "O sucesso de uma instalação em segundo plano só pode ser determinada ao abrir o Obtainium.", "verifyLatestTag": "Verificar a tag 'mais recente'", + "intermediateLinkRegex": "Filtrar por um link 'intermediário' para visitar", "filterByLinkText": "Filtrar links por texto do link", "intermediateLinkNotFound": "Link intermediário não encontrado", "intermediateLink": "Link intermediário", "exemptFromBackgroundUpdates": "Isento de atualizações em segundo plano (caso ativadas)", + "bgUpdatesOnWiFiOnly": "Desativar atualizações em segundo plano fora do Wi-Fi", "bgUpdatesWhileChargingOnly": "Desativar atualizações em segundo plano fora do carregador", "autoSelectHighestVersionCode": "Selecionar automaticamente APK com o código de versão mais alto", "versionExtractionRegEx": "ExReg de extração do número da versão", "trimVersionString": "Cortar número da versal com ExReg", "matchGroupToUseForX": "Corresponder grupo para o uso em \"{}\"", + "matchGroupToUse": "Corresponder grupo para o uso para a extração do número da versão por ExReg", "highlightTouchTargets": "Acentuar alvos de toque menos óbvios", "pickExportDir": "Selecionar pasta de exportação", "autoExportOnChanges": "Exportar automaticamente ao ocorrer alterações", "includeSettings": "Incluir configurações", + "filterVersionsByRegEx": "Filtrar versões por expressão regular", "trySelectingSuggestedVersionCode": "Tente selecionar o APK com o código de versão sugerido", "dontSortReleasesList": "Manter ordem de lançamento da API", "reverseSort": "Ordem inversa", "takeFirstLink": "Usar o primeiro link", "skipSort": "Pular ordenação", "debugMenu": "Menu de depuração", + "bgTaskStarted": "Tarefa em segundo plano iniada - verifique os registros.", "runBgCheckNow": "Executar busca por atualizações em segundo plano agora", "versionExtractWholePage": "Aplicar ExReg de extração de número de versão à página inteira", "installing": "Instalando", + "skipUpdateNotifications": "Pular notificações de atualização", "updatesAvailableNotifChannel": "Atualizações disponíveis", "appsUpdatedNotifChannel": "Apps atualizados", "appsPossiblyUpdatedNotifChannel": "Tentativas de atualização de apps", "errorCheckingUpdatesNotifChannel": "Erro ao buscar atualizações", "appsRemovedNotifChannel": "Apps removidos", "downloadingXNotifChannel": "Baixando {}", + "completeAppInstallationNotifChannel": "Concluir instalação do app", "checkingForUpdatesNotifChannel": "Buscando atualizações", "onlyCheckInstalledOrTrackOnlyApps": "Buscar atualizações somente para apps instalados e de somente rastreamento", "supportFixedAPKURL": "Suportar URLs de APK fixas", + "selectX": "Selecionar {}", "parallelDownloads": "Permitir downloads em paralelo", + "useShizuku": "Usar Shizuku ou Sui para instalação", "shizukuBinderNotFound": "Serviço Shizuku não está em execução", "shizukuOld": "Versão do Shizuku antiga (<11) - atualize", + "shizukuOldAndroidWithADB": "Shizuku sendo executado no Android < 8.1 com ADB - atualize o Android ou use o Sui", "shizukuPretendToBeGooglePlay": "Definir Google Play como a fonte de instalação (se o Shizuku é usado)", "useSystemFont": "Usar a fonte do sistema", "useVersionCodeAsOSVersion": "Usar código de versão do app como a versão detectada pelo sistema", "requestHeader": "Cabeçalho da solicitação", + "useLatestAssetDateAsReleaseDate": "Usar o envio de item mais recente como a data de lançamento", "defaultPseudoVersioningMethod": "Método de pseudo-versão padrão", "partialAPKHash": "Hash do APK parcial", "APKLinkHash": "Hash do link do APK", @@ -258,18 +309,23 @@ "latest": "Mais recente", "invertRegEx": "Inverter expressão regular", "note": "Observação", + "selfHostedNote": "O menu de opções \"{}\" pode ser usado para alcançar instâncias hospedadas-por-você/personalizadas de qualquer fonte.", "badDownload": "O APK não pode ser interpretado (incompatível ou baixado parcialmente)", "beforeNewInstallsShareToAppVerifier": "Compartilhar apps novos com o AppVerifier (se disponível)", "appVerifierInstructionToast": "Compartilhe com o AppVerifier, e volte aqui ao estar pronto.", "wiki": "Ajuda/Wiki", + "crowdsourcedConfigsLabel": "Configurações de app pela comunidade (use ao seu próprio risco)", "crowdsourcedConfigsShort": "Configurações de app da comunidade", "allowInsecure": "Permitir solicitações de HTTP inseguras", "stayOneVersionBehind": "Ficar uma versão antes da mais recente", "refreshBeforeDownload": "Atualizar detalhes do app antes de baixar", "tencentAppStore": "Loja de Apps da Tencent", + "coolApk": "CoolApk", "name": "Nome", "smartname": "Nome (inteligente)", + "sortMethod": "Método de ordenação", "welcome": "Boas vindas", + "documentationLinksNote": "A página do Obtainium no GitHub visível abaixo contém links de vídeos, artigos, discussões, e outros recursos que podem te ajudar ao usar o app.", "removeAppQuestion": { "one": "Remover app?", "other": "Remover apps?" @@ -282,6 +338,10 @@ "one": "A busca de atualizações em segundo plano encontrou um {}, será agendado uma nova tentativa em {} minuto", "other": "A busca de atualizações em segundo plano encontrou um {}, será agendado uma nova tentativa em {} minutos" }, + "bgCheckFoundUpdatesWillNotifyIfNeeded": { + "one": "BG update checking found {} update - will notify user if needed", + "other": "BG update checking found {} updates - will notify user if needed" + }, "apps": { "one": "{} app", "other": "{} apps" @@ -302,6 +362,10 @@ "one": "{} dia", "other": "{} dias" }, + "clearedNLogsBeforeXAfterY": { + "one": "Cleared {n} log (before = {before}, after = {after})", + "other": "Cleared {n} logs (before = {before}, after = {after})" + }, "xAndNMoreUpdatesAvailable": { "one": "{} e mais 1 app têm atualizações.", "other": "{} e mais {} apps têm atualizações." @@ -321,59 +385,5 @@ "apk": { "one": "{} APK", "other": "{} APKs" - }, - "invalidURLForSource": "Não é uma URL de app válida de {}", - "noReleaseFound": "Não foi possível encontrar um lançamento adequado", - "appIdMismatch": "O ID do pacote baixado não corresponde ao existente", - "fallbackToOlderReleases": "Recorrer à lançamentos mais antigos", - "dropdownNoOptsError": "ERRO: O MENU DEVE TER PELO MENOS UMA OPÇÃO", - "wrongArgNum": "Número errado de argumentos fornecidos", - "trackOnlyAppDescription": "As atualizações do app serão rastreadas, mas o Obtainium não baixará ou instalará elas.", - "noApps": "Nenhum app", - "updateAvailable": "Atualização disponível", - "xWillBeRemovedButRemainInstalled": "{} será removido do Obtainium mas continuará instalado no dispositivo.", - "markXSelectedAppsAsUpdated": "Marcar os {} apps selecionados como atualizados?", - "installStatusOfXWillBeResetExplanation": "Os estados de instalação dos apps selecionados serão redefinidos.\n\nIsso pode ajudar quando a versão exibida no Obtainium está incorreta devido a atualizações malsucedidas ou outros problemas.", - "settings": "Configurações", - "importFromURLList": "Importar da lista de URLs", - "line": "Linha", - "importedAppsIdDisclaimer": "Os apps importados podem ser exibidos incorretamente como se não estivessem instalados.\nPara resolver isso, reinstale eles pelo Obtainium.\nIsso não afetará os dados dos apps.\n\nIsso somente afeta a URL e os métodos de importação de terceiros.", - "followSystemThemeExplanation": "Só é possível seguir o tema do sistema ao usar aplicativos de terceiros", - "appNotFound": "O app não foi encontrado", - "updatesAvailableNotifDescription": "Notifica o usuário que atualizações estão disponíveis para um ou mais apps rastreados pelo Obtainium", - "xWasUpdatedToY": "{} foi atualizado para a versão {}.", - "showWebInAppView": "Mostrar a fonte da pagina web na tela de apps", - "deviceSupportsFollowingArchs": "Seu dispositivo suporta as seguintes arquiteturas de CPU:", - "errorCheckingUpdatesNotifDescription": "Uma notificação que mostra quando a busca de atualizações em segundo plano falha", - "obtainiumMustBeOpenToInstallApps": "O Obtainium precisa estar aberto para instalar apps", - "versionCorrectionDisabled": "Correção de versão desativada (o plugin parece não funcionar)", - "appWithIdOrNameNotFound": "Nenhum app foi encontrado com aquele ID ou nome", - "disableVersionDetection": "Desativar detecção de versão", - "noVersionDetectionExplanation": "Essa opção só seve ser usada para apps aonde a detecção de versão não funciona corretamente.", - "noCategories": "Nenhuma categoria", - "categoryDeleteWarning": "Todos os apps em categorias excluídas ficarão sem categoria.", - "uninstallFromDevice": "Desinstalar do dispositivo", - "releaseDateAsVersion": "Usar data de lançamento como número da versão", - "dontShowAPKOriginWarnings": "Não mostrar alertas de origem dos APKs", - "tryInferAppIdFromCode": "Tentar inferir o ID do app pelo código fonte", - "checkUpdateOnDetailPage": "Buscar atualizações ao abrir a tela de detalhes de um app", - "githubSourceNote": "O limite de taxa do GitHub pode ser evitado ao usar uma chave de API.", - "customLinkFilterRegex": "Filtro de link de APK personalizado por expressão regular (padrão '.apk$')", - "appsPossiblyUpdatedNotifDescription": "Notifica o usuário que atualizações de um ou mais apps podem ter sido aplicadas em segundo plano", - "bgUpdatesOnWiFiOnly": "Desativar atualizações em segundo plano fora do Wi-Fi", - "matchGroupToUse": "Corresponder grupo para o uso para a extração do número da versão por ExReg", - "filterVersionsByRegEx": "Filtrar versões por expressão regular", - "completeAppInstallationNotifChannel": "Concluir instalação do app", - "useShizuku": "Usar Shizuku ou Sui para instalação", - "useLatestAssetDateAsReleaseDate": "Usar o envio de item mais recente como a data de lançamento", - "crowdsourcedConfigsLabel": "Configurações de app pela comunidade (use ao seu próprio risco)", - "releaseDateAsVersionExplanation": "Essa opção só deve ser usada para apps quais a detecção de versão não funciona corretamente, mas uma data de lançamento está disponível.", - "intermediateLinkRegex": "Filtrar por um link 'intermediário' para visitar", - "bgTaskStarted": "Tarefa em segundo plano iniada - verifique os registros.", - "skipUpdateNotifications": "Pular notificações de atualização", - "selectX": "Selecionar {}", - "shizukuOldAndroidWithADB": "Shizuku sendo executado no Android < 8.1 com ADB - atualize o Android ou use o Sui", - "selfHostedNote": "O menu de opções \"{}\" pode ser usado para alcançar instâncias hospedadas-por-você/personalizadas de qualquer fonte.", - "sortMethod": "Método de ordenação", - "documentationLinksNote": "A página do Obtainium no GitHub visível abaixo contém links de vídeos, artigos, discussões, e outros recursos que podem te ajudar ao usar o app." + } } diff --git a/assets/translations/pt.json b/assets/translations/pt.json index 64c877a..9e13db4 100644 --- a/assets/translations/pt.json +++ b/assets/translations/pt.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Manter-se uma versão atrás da mais recente", "refreshBeforeDownload": "Atualizar os detalhes da aplicação antes da transferência", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Nome", "smartname": "Nome (Smart)", "sortMethod": "Método de ordenação", diff --git a/assets/translations/ru.json b/assets/translations/ru.json index e1474c9..3bbab8b 100644 --- a/assets/translations/ru.json +++ b/assets/translations/ru.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Не отставайте от последней версии", "refreshBeforeDownload": "Обновляйте информацию о приложении перед загрузкой", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Имя", "smartname": "Имя (умное)", "sortMethod": "Метод сортировки", diff --git a/assets/translations/sv.json b/assets/translations/sv.json index 2313aad..6a0381f 100644 --- a/assets/translations/sv.json +++ b/assets/translations/sv.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Håll dig en version bakom den senaste", "refreshBeforeDownload": "Uppdatera appdetaljerna före nedladdning", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Namn", "smartname": "Namn (Smart)", "sortMethod": "Sorteringsmetod", diff --git a/assets/translations/tr.json b/assets/translations/tr.json index fc95cd5..bfe5d2e 100644 --- a/assets/translations/tr.json +++ b/assets/translations/tr.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "En son sürümün bir sürüm gerisinde kalın", "refreshBeforeDownload": "İndirmeden önce uygulama ayrıntılarını yenileyin", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "İsim", "smartname": "İsim (Akıllı)", "sortMethod": "Sıralama Yöntemi", diff --git a/assets/translations/uk.json b/assets/translations/uk.json index 7150e79..e360727 100644 --- a/assets/translations/uk.json +++ b/assets/translations/uk.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "Залишайтеся на одну версію актуальнішою", "refreshBeforeDownload": "Оновіть інформацію про програму перед завантаженням", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Ім'я", "smartname": "Ім'я (Smart)", "sortMethod": "Метод сортування", diff --git a/assets/translations/vi.json b/assets/translations/vi.json index 5b7481d..5b557fe 100644 --- a/assets/translations/vi.json +++ b/assets/translations/vi.json @@ -320,11 +320,12 @@ "stayOneVersionBehind": "Stay one version behind latest", "refreshBeforeDownload": "Refresh app details before download", "tencentAppStore": "Tencent App Store", + "coolApk": "CoolApk", "name": "Name", "smartname": "Name (Smart)", "sortMethod": "Sort Method", "welcome": "Welcome", - "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.", + "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.", "removeAppQuestion": { "one": "Gỡ ứng dụng?", "other": "Gỡ ứng dụng?" diff --git a/assets/translations/zh-Hant-TW.json b/assets/translations/zh-Hant-TW.json index de8e927..1d9772b 100644 --- a/assets/translations/zh-Hant-TW.json +++ b/assets/translations/zh-Hant-TW.json @@ -320,6 +320,7 @@ "stayOneVersionBehind": "保持比最新版本落後一個版本", "refreshBeforeDownload": "下載前刷新應用程式詳細資訊", "tencentAppStore": "騰訊應用寶", + "coolApk": "CoolApk", "name": "名稱", "smartname": "名稱(智慧)", "sortMethod": "排序方式", diff --git a/lib/custom_errors.dart b/lib/custom_errors.dart index a648670..529f5fa 100644 --- a/lib/custom_errors.dart +++ b/lib/custom_errors.dart @@ -154,7 +154,7 @@ String list2FriendlyString(List list) { (e.key == list.length - 1 ? '' : e.key == list.length - 2 - ? ', and ' + ? ' and ' : ', ')) .join(''); } diff --git a/lib/main.dart b/lib/main.dart index bd13f5d..6d04931 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -34,7 +34,8 @@ List> supportedLocales = const [ MapEntry(Locale('pl'), 'Polski'), MapEntry(Locale('ru'), 'Русский'), MapEntry(Locale('bs'), 'Bosanski'), - MapEntry(Locale('pt'), 'Brasileiro'), + MapEntry(Locale('pt'), 'Português'), + MapEntry(Locale('pt', 'BR'), 'Brasileiro'), MapEntry(Locale('cs'), 'Česky'), MapEntry(Locale('sv'), 'Svenska'), MapEntry(Locale('nl'), 'Nederlands'), @@ -109,11 +110,13 @@ void main() async { ); SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); } + final np = NotificationsProvider(); + await np.initialize(); runApp(MultiProvider( providers: [ ChangeNotifierProvider(create: (context) => AppsProvider()), ChangeNotifierProvider(create: (context) => SettingsProvider()), - Provider(create: (context) => NotificationsProvider()), + Provider(create: (context) => np), Provider(create: (context) => LogsProvider()) ], child: EasyLocalization( @@ -168,6 +171,7 @@ class _ObtainiumState extends State { SettingsProvider settingsProvider = context.watch(); AppsProvider appsProvider = context.read(); LogsProvider logs = context.read(); + NotificationsProvider notifs = context.read(); if (settingsProvider.prefs == null) { settingsProvider.initializeSettings(); @@ -211,6 +215,10 @@ class _ObtainiumState extends State { } } + WidgetsBinding.instance.addPostFrameCallback((_) { + notifs.checkLaunchByNotif(); + }); + return DynamicColorBuilder( builder: (ColorScheme? lightDynamic, ColorScheme? darkDynamic) { // Decide on a colour/brightness scheme based on OS and user settings diff --git a/lib/providers/notifications_provider.dart b/lib/providers/notifications_provider.dart index b3bfe2f..63b8000 100644 --- a/lib/providers/notifications_provider.dart +++ b/lib/providers/notifications_provider.dart @@ -2,7 +2,9 @@ // Contains a set of pre-defined ObtainiumNotification objects that should be used throughout the app import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/material.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:obtainium/main.dart'; import 'package:obtainium/providers/settings_provider.dart'; import 'package:obtainium/providers/source_provider.dart'; @@ -16,10 +18,11 @@ class ObtainiumNotification { Importance importance; int? progPercent; bool onlyAlertOnce; + String? payload; ObtainiumNotification(this.id, this.title, this.message, this.channelCode, this.channelName, this.channelDescription, this.importance, - {this.onlyAlertOnce = false, this.progPercent}); + {this.onlyAlertOnce = false, this.progPercent, this.payload}); } class UpdateNotification extends ObtainiumNotification { @@ -88,7 +91,8 @@ class ErrorCheckingUpdatesNotification extends ObtainiumNotification { 'BG_UPDATE_CHECK_ERROR', tr('errorCheckingUpdatesNotifChannel'), tr('errorCheckingUpdatesNotifDescription'), - Importance.high); + Importance.high, + payload: "${tr('errorCheckingUpdates')}\n$error"); } class AppsRemovedNotification extends ObtainiumNotification { @@ -173,11 +177,48 @@ class NotificationsProvider { }; Future initialize() async { - isInitialized = await notifications.initialize(const InitializationSettings( - android: AndroidInitializationSettings('ic_notification'))) ?? + isInitialized = await notifications.initialize( + const InitializationSettings( + android: AndroidInitializationSettings('ic_notification')), + onDidReceiveNotificationResponse: (NotificationResponse response) { + _showNotificationPayload(response.payload); + }, + ) ?? false; } + checkLaunchByNotif() async { + final NotificationAppLaunchDetails? launchDetails = + await notifications.getNotificationAppLaunchDetails(); + if (launchDetails?.didNotificationLaunchApp ?? false) { + _showNotificationPayload(launchDetails!.notificationResponse?.payload, + doublePop: true); + } + } + + _showNotificationPayload(String? payload, {bool doublePop = false}) { + var title = (payload ?? '\n\n').split('\n').first; + var content = (payload ?? '\n\n').split('\n').sublist(1).join('\n'); + globalNavigatorKey.currentState?.push( + PageRouteBuilder( + pageBuilder: (context, _, __) => AlertDialog( + title: Text(title), + content: Text(content), + actions: [ + TextButton( + onPressed: () { + Navigator.of(context).pop(null); + if (doublePop) { + Navigator.of(context).pop(null); + } + }, + child: Text(tr('ok'))), + ], + ), + ), + ); + } + Future cancel(int id) async { if (!isInitialized) { await initialize(); @@ -195,7 +236,8 @@ class NotificationsProvider { Importance importance, {bool cancelExisting = false, int? progPercent, - bool onlyAlertOnce = false}) async { + bool onlyAlertOnce = false, + String? payload}) async { if (cancelExisting) { await cancel(id); } @@ -216,7 +258,8 @@ class NotificationsProvider { maxProgress: 100, showProgress: progPercent != null, onlyAlertOnce: onlyAlertOnce, - indeterminate: progPercent != null && progPercent < 0))); + indeterminate: progPercent != null && progPercent < 0)), + payload: payload); } Future notify(ObtainiumNotification notif, @@ -225,5 +268,6 @@ class NotificationsProvider { notif.channelName, notif.channelDescription, notif.importance, cancelExisting: cancelExisting, onlyAlertOnce: notif.onlyAlertOnce, - progPercent: notif.progPercent); + progPercent: notif.progPercent, + payload: notif.payload); } diff --git a/pubspec.lock b/pubspec.lock index 8b3ca50..eda27db 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -80,10 +80,10 @@ packages: dependency: transitive description: name: archive - sha256: "7dcbd0f87fe5f61cb28da39a1a8b70dbc106e2fe0516f7836eb7bb2948481a12" + sha256: a7f37ff061d7abc2fcf213554b9dcaca713c5853afa5c065c44888bc9ccaf813 url: "https://pub.dev" source: hosted - version: "4.0.5" + version: "4.0.6" args: dependency: transitive description: @@ -312,10 +312,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: "36a1652d99cb6bf8ccc8b9f43aded1fd60b234d23ce78af422c07f950a436ef7" + sha256: "8986dec4581b4bcd4b6df5d75a2ea0bede3db802f500635d05fa8be298f9467f" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.1.2" fixnum: dependency: transitive description: @@ -564,10 +564,10 @@ packages: dependency: "direct main" description: name: html - sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec" + sha256: "9475be233c437f0e3637af55e7702cbbe5c23a68bd56e8a5fa2d426297b7c6c8" url: "https://pub.dev" source: hosted - version: "0.15.5" + version: "0.15.5+1" http: dependency: "direct main" description: @@ -756,26 +756,26 @@ packages: dependency: "direct main" description: name: permission_handler - sha256: "59adad729136f01ea9e35a48f5d1395e25cba6cea552249ddbe9cf950f5d7849" + sha256: "2d070d8684b68efb580a5997eb62f675e8a885ef0be6e754fb9ef489c177470f" url: "https://pub.dev" source: hosted - version: "11.4.0" + version: "12.0.0+1" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc + sha256: "1e3bc410ca1bf84662104b100eb126e066cb55791b7451307f9708d4007350e6" url: "https://pub.dev" source: hosted - version: "12.1.0" + version: "13.0.1" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - sha256: f84a188e79a35c687c132a0a0556c254747a08561e99ab933f12f6ca71ef3c98 + sha256: f000131e755c54cf4d84a5d8bd6e4149e262cc31c5a8b1d698de1ac85fa41023 url: "https://pub.dev" source: hosted - version: "9.4.6" + version: "9.4.7" permission_handler_html: dependency: transitive description: @@ -860,10 +860,10 @@ packages: dependency: transitive description: name: posix - sha256: a0117dc2167805aa9125b82eee515cc891819bac2f538c83646d355b16f58b9a + sha256: f0d7856b6ca1887cfa6d1d394056a296ae33489db914e365e2044fdada449e62 url: "https://pub.dev" source: hosted - version: "6.0.1" + version: "6.0.2" provider: dependency: "direct main" description: @@ -900,10 +900,10 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "3ec7210872c4ba945e3244982918e502fa2bfb5230dff6832459ca0e1879b7ad" + sha256: c2c8c46297b5d6a80bed7741ec1f2759742c77d272f1a1698176ae828f8e1a18 url: "https://pub.dev" source: hosted - version: "2.4.8" + version: "2.4.9" shared_preferences_foundation: dependency: transitive description: @@ -1195,34 +1195,34 @@ packages: dependency: "direct main" description: name: webview_flutter - sha256: "889a0a678e7c793c308c68739996227c9661590605e70b1f6cf6b9a6634f7aec" + sha256: caf0f5a1012aa3c2d33c4215adc72dc1194bb59a2d3ed901f457965626805e66 url: "https://pub.dev" source: hosted - version: "4.10.0" + version: "4.11.0" webview_flutter_android: dependency: transitive description: name: webview_flutter_android - sha256: e09150b28a07933839adef0e4a088bb43e8c8d9e6b93025b01882d4067a58ab0 + sha256: "3315f1306eb22f98c48fe203fb8a448fb23f9e49d55a4da6e17ab7d795774166" url: "https://pub.dev" source: hosted - version: "4.3.4" + version: "4.4.0" webview_flutter_platform_interface: dependency: transitive description: name: webview_flutter_platform_interface - sha256: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d + sha256: "18b1640839cf6546784a524c72aded5b6e86b23e7167dc2311cc96f7658b64bd" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.11.0" webview_flutter_wkwebview: dependency: transitive description: name: webview_flutter_wkwebview - sha256: c14455137ce60a68e1ccaf4e8f2dae8cebcb3465ddaa2fcfb57584fb7c5afe4d + sha256: c9f9be526fa0d3347374ceaa05c4b3acb85f4f112abd62f7d74b7d301fa515ff url: "https://pub.dev" source: hosted - version: "3.18.5" + version: "3.20.0" win32: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 1cc6429..16b3d66 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,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 # 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. -version: 1.1.49+2306 +version: 1.1.50+2307 environment: sdk: ^3.6.0 @@ -44,7 +44,7 @@ dependencies: html: ^0.15.0 shared_preferences: ^2.0.15 url_launcher: ^6.1.5 - permission_handler: ^11.0.0 + permission_handler: ^12.0.0+1 fluttertoast: ^8.0.9 device_info_plus: ^11.0.0 file_picker: ^10.0.0