From 45d785ad72187d83a5e770f3df12b74b3ccf9df3 Mon Sep 17 00:00:00 2001 From: dmitry Date: Sun, 24 Sep 2023 00:29:22 +0500 Subject: [PATCH 001/236] Russian_translation: init --- lib/l10n/app_ru.arb | 664 ++++++++++++++++++++++++++++++++++++++++++++ lib/main.dart | 3 +- 2 files changed, 666 insertions(+), 1 deletion(-) create mode 100644 lib/l10n/app_ru.arb diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb new file mode 100644 index 0000000..dc8b29a --- /dev/null +++ b/lib/l10n/app_ru.arb @@ -0,0 +1,664 @@ +{ + "home": "Главная", + "settings": "Настройки", + "connect": "Подключиться", + "servers": "Сервера", + "createConnection": "Создать подключение", + "name": "Название подключения", + "ipDomain": "IP-адрес или домен", + "path": "Путь", + "port": "Порт", + "username": "Логин", + "password": "Пароль", + "defaultServer": "Сервер по умолчанию", + "general": "Основное", + "connection": "Тип подключения", + "authentication": "Аутентификация", + "other": "Прочее", + "invalidPort": "Неверный порт", + "invalidPath": "Неверный путь", + "invalidIpDomain": "Неверный IP-адрес или домен", + "ipDomainNotEmpty": "IP-адрес или домен не могут быть пустыми", + "nameNotEmpty": "Имя не может быть пустым", + "invalidUsernamePassword": "Неверный логин или пароль", + "tooManyAttempts": "Слишком много попыток. Попробуйте позднее.", + "cantReachServer": "Не удаётся установить соединение с сервером. Проверьте настройки подключения", + "sslError": "SSL error. Go to Settings > Advanced settings and enable Override SSL validation.", + "unknownError": "Неизвестная ошибка", + "connectionNotCreated": "Не удалось создать подключение", + "connecting": "Подключение...", + "connected": "Подключено", + "selectedDisconnected": "Выбран, но отключён", + "connectionDefaultSuccessfully": "Подключение успешно установлено как «подключение по умолчанию».", + "connectionDefaultFailed": "Подключение не удалось установить «подключением по умолчанию».", + "noSavedConnections": "Нет сохранённых подключений", + "cannotConnect": "Не удается подключиться к серверу", + "connectionRemoved": "Подключение удалено успешно", + "connectionCannotBeRemoved": "Подключение не может быть удалено.", + "remove": "Удалить", + "removeWarning": "Вы уверены, что хотите удалить соединение с этим сервером AdGuard Home?", + "cancel": "Отмена", + "defaultConnection": "Подключение по умолчанию", + "setDefault": "Подключаться по умолчанию", + "edit": "Редактировать", + "delete": "Удалить", + "save": "Сохранить", + "serverStatus": "Статус сервера", + "connectionNotUpdated": "Соединение не было обновлено", + "ruleFilteringWidget": "Правила фильтрации", + "safeBrowsingWidget": "Безопасная навигация", + "parentalFilteringWidget": "Родительский контроль", + "safeSearchWidget": "Безопасный поиск", + "ruleFiltering": "Правила фильтрации", + "safeBrowsing": "Безопасная навигация", + "parentalFiltering": "Родительский контроль", + "safeSearch": "Безопасный поиск", + "serverStatusNotRefreshed": "Не удалось обновить статус сервера", + "loadingStatus": "Загрузка...", + "errorLoadServerStatus": "Не удалось получить статус сервера", + "topQueriedDomains": "Часто запрашиваемые домены", + "viewMore": "Показать больше", + "topClients": "Частые клиенты", + "topBlockedDomains": "Часто блокируемые домены", + "appSettings": "Настройки приложения", + "theme": "Тема", + "light": "Светлая", + "dark": "Тёмная", + "systemDefined": "Определено системой", + "close": "Закрыть", + "connectedTo": "Подключено к:", + "selectedServer": "Selected server:", + "noServerSelected": "Нет выбранных серверов", + "manageServer": "Управление сервером", + "allProtections": "Защита", + "userNotEmpty": "Username cannot be empty", + "passwordNotEmpty": "Password cannot be empty", + "examplePath": "Например: /adguard", + "helperPath": "Если используется реверсивный прокси", + "aboutApp": "About the application", + "appVersion": "App version", + "createdBy": "Created by", + "clients": "Клиенты", + "allowed": "Разрешённые", + "blocked": "Заблокированные", + "noClientsList": "Список клиентов пуст", + "activeClients": "Активные", + "removeClient": "Удалить запись", + "removeClientMessage": "Вы уверены, что хотите удалить данную запись из списка?", + "confirm": "Подтвердить", + "removingClient": "Удаление клиента...", + "clientNotRemoved": "Клиент не может быть удалён из списка", + "addClient": "Добавить клиента", + "list": "Список", + "ipAddress": "IP-адреса", + "ipNotValid": "IP address not valid", + "clientAddedSuccessfully": "Запись успешно добавлена в список", + "addingClient": "Добавление клиента...", + "clientNotAdded": "Клиент не может быть внесён в список", + "clientAnotherList": "Данный клиент уже занесён в один из списков", + "noSavedLogs": "Нет сохранённых журналов", + "logs": "Журналы", + "copyLogsClipboard": "Copy logs to clipboard", + "logsCopiedClipboard": "Logs copied to clipboard", + "advancedSettings": "Advanced settings", + "dontCheckCertificate": "Don't check SSL certificate", + "dontCheckCertificateDescription": "Overrides the server's SSL certificate validation", + "advancedSetupDescription": "Advanced options", + "settingsUpdatedSuccessfully": "Настройки успешно обновлены.", + "cannotUpdateSettings": "Settings cannot be updated.", + "restartAppTakeEffect": "Restart the application", + "loadingLogs": "Загрузка журнала...", + "logsNotLoaded": "Невозможно загрузить список журналов", + "processed": "Processed\nNo list", + "processedRow": "Обработан", + "blockedBlacklist": "Blocked\nBlacklist", + "blockedBlacklistRow": "Заблокированные (чёрный список)", + "blockedSafeBrowsing": "Blocked\nSafe browsing", + "blockedSafeBrowsingRow": "Блок. (безопасная навигация)", + "blockedParental": "Blocked\nParental filtering", + "blockedParentalRow": "Блок. (родительский контроль)", + "blockedInvalid": "Blocked\nInvalid", + "blockedInvalidRow": "Blocked (invalid)", + "blockedSafeSearch": "Blocked\nSafe search", + "blockedSafeSearchRow": "Блок. (безопасный поиск)", + "blockedService": "Blocked\nBlocked service", + "blockedServiceRow": "Blocked (blocked service)", + "processedWhitelist": "Processed\nWhitelist", + "processedWhitelistRow": "Разрешённые (белый список)", + "processedError": "Processed\nError", + "processedErrorRow": "Processed (error)", + "rewrite": "Rewrite", + "status": "Статус", + "result": "Результат", + "time": "Время", + "blocklist": "Blocklist", + "request": "Запрос", + "domain": "Домен", + "type": "Тип", + "clas": "Класс", + "response": "Ответ", + "dnsServer": "DNS-сервер", + "elapsedTime": "Затрачено", + "responseCode": "Код ответа", + "client": "Клиент", + "deviceIp": "IP-адрес", + "deviceName": "Имя устройства", + "logDetails": "Детали запроса", + "blockingRule": "Blocking rule", + "blockDomain": "Block domain", + "couldntGetFilteringStatus": "Не удаётся получить статус фильтрации", + "unblockDomain": "Unblock domain", + "userFilteringRulesNotUpdated": "Невозможно обновить пользовательские правила фильтрации", + "userFilteringRulesUpdated": "Пользовательские правила фильтрации успешно обновлены", + "savingUserFilters": "Сохранение пользовательских правил фильтрации...", + "filters": "Фильтры", + "logsOlderThan": "Logs older than", + "responseStatus": "Статус ответа", + "selectTime": "Select time", + "notSelected": "Not selected", + "resetFilters": "Сбросить фильтры", + "noLogsDisplay": "Нет записей в журнале", + "noLogsThatOld": "It's possible that there are no logs saved for that selected time. Try selecting a more recent time.", + "apply": "Применить", + "selectAll": "Отметить все", + "unselectAll": "Отменить выбор всех", + "all": "Все", + "filtered": "Отфильтрованные", + "checkAppLogs": "Check app logs", + "refresh": "Обновить", + "search": "Поиск", + "dnsQueries": "DNS-запросы", + "average": "Среднее", + "blockedFilters": "Заблокировано фильтрами", + "malwarePhisingBlocked": "Заблокированные вредоносные и фишинговые сайты", + "blockedAdultWebsites": "Заблокированные «взрослые» сайты", + "generalSettings": "Основные настройки", + "generalSettingsDescription": "Различные настройки", + "hideZeroValues": "Скрывать нулевые значения", + "hideZeroValuesDescription": "Скрывать блоки с нулевыми значениями на домашнем экране", + "webAdminPanel": "Веб-панель админ.", + "visitGooglePlay": "Посетить страницу в Google Play", + "gitHub": "Исходный код приложения доступен на GitHub", + "blockClient": "Заблокировать клиента", + "selectTags": "Выбрать теги клиента", + "noTagsSelected": "Нет выбранных тегов", + "tags": "Теги", + "identifiers": "Идентификаторы", + "identifier": "Идентификатор", + "identifierHelper": "IP-адрес, CIDR, MAC или ClientID", + "noIdentifiers": "Идентификаторы не добавлены", + "useGlobalSettings": "Глобальные настройки", + "enableFiltering": "Фильтрация", + "enableSafeBrowsing": "Безопасная навигация", + "enableParentalControl": "Родительский контроль", + "enableSafeSearch": "Безопасный поиск", + "blockedServices": "Заблокированные сервисы", + "selectBlockedServices": "Заблокированные сервисы", + "noBlockedServicesSelected": "Нет заблокированных сервисов", + "services": "Сервисы", + "servicesBlocked": "в блокировке", + "tagsSelected": "выбрано", + "upstreamServers": "Upstream DNS-серверы", + "serverAddress": "Адрес сервера", + "noUpstreamServers": "Нет upstream DNS-серверов.", + "willBeUsedGeneralServers": "Будут использоваться общие upstream DNS-сервера.", + "added": "Сохранённые", + "clientUpdatedSuccessfully": "Настройки клиента успешно обновлены", + "clientNotUpdated": "Невозможно обновить настройки клиента", + "clientDeletedSuccessfully": "Клиент успешно удалён", + "clientNotDeleted": "Невозможно удалить клиента", + "options": "Параметры", + "loadingFilters": "Загрузка фильтров...", + "filtersNotLoaded": "Невозможно загрузить фильтры.", + "whitelists": "Whitelists", + "blacklists": "Blacklists", + "rules": "Rules", + "customRules": "Custom rules", + "enabledRules": "Enabled rules", + "enabled": "Enabled", + "disabled": "Disabled", + "rule": "Rule", + "addCustomRule": "Add custom rule", + "removeCustomRule": "Remove custom rule", + "removeCustomRuleMessage": "Are you sure you want to remove this custom rule?", + "updatingRules": "Updating custom rules...", + "ruleRemovedSuccessfully": "Rule removed successfully", + "ruleNotRemoved": "Couldn't remove the rule", + "ruleAddedSuccessfully": "Rule added successfully", + "ruleNotAdded": "Couldn't add the rule", + "noCustomFilters": "No custom filters", + "noBlockedClients": "Нет запрещённых клиентов", + "noBlackLists": "No blacklists", + "noWhiteLists": "No whitelists", + "addWhitelist": "Add whitelist", + "addBlacklist": "Add blacklist", + "urlNotValid": "URL is not valid", + "urlAbsolutePath": "URL or absolute path", + "addingList": "Adding list...", + "listAdded": "List added successfully. Items added:", + "listAlreadyAdded": "List already added", + "listUrlInvalid": "List URL invalid", + "listNotAdded": "List couldn't be added", + "listDetails": "List details", + "listType": "List type", + "whitelist": "White list", + "blacklist": "Black list", + "latestUpdate": "Latest update", + "disable": "Выключить", + "enable": "Включить", + "currentStatus": "Текущий статус", + "listDataUpdated": "List data updated successfull", + "listDataNotUpdated": "Couldn't update list data", + "updatingListData": "Updating list data...", + "editWhitelist": "Edit white list", + "editBlacklist": "Edit black list", + "deletingList": "Deleting list...", + "listDeleted": "List deleted successfully", + "listNotDeleted": "The list couldn't be deleted", + "deleteList": "Delete list", + "deleteListMessage": "Are you sure you want to delete this list? This action can't be reverted.", + "serverSettings": "Server settings", + "serverInformation": "Server information", + "serverInformationDescription": "Информация о сервере и статус", + "loadingServerInfo": "Загрузка информации о сервере...", + "serverInfoNotLoaded": "Невозможно загрузить информацию о сервере.", + "dnsAddresses": "DNS-адреса", + "seeDnsAddresses": "Посмотреть DNS-адреса", + "dnsPort": "DNS-порт", + "httpPort": "HTTP-порт", + "protectionEnabled": "Защита активна", + "dhcpAvailable": "DHCP недоступен", + "serverRunning": "Server running", + "serverVersion": "Server version", + "serverLanguage": "Server language", + "yes": "Yes", + "no": "No", + "allowedClients": "Разрешённые клиенты", + "disallowedClients": "Запрещённые клиенты", + "disallowedDomains": "Неразрешённые домены", + "accessSettings": "Настройки доступа", + "accessSettingsDescription": "Настройка правил доступа к серверу", + "loadingClients": "Загрузка клиентов...", + "clientsNotLoaded": "Не удалось загрузить список клиентов.", + "noAllowedClients": "Нет разрешённых клиентов", + "allowedClientsDescription": "Если в списке есть записи, AdGuard Home будет принимать запросы только от этих клиентов.", + "blockedClientsDescription": "Если в списке есть записи, AdGuard Home будет игнорировать запросы от этих клиентов. Это поле игнорируется, если список разрешённых клиентов содержит записи.", + "disallowedDomainsDescription": "AdGuard Home будет игнорировать DNS-запросы с этими доменами. Такие DNS-запросы не будут отображаться в журнале.", + "addClientFieldDescription": "CIDR, IP-адрес или ClientID", + "clientIdentifier": "Идентификатор клиента", + "allowClient": "Разрешить клиент", + "disallowClient": "Запретить клиента", + "noDisallowedDomains": "No disallowed domains", + "domainNotAdded": "The domain couldn't be added", + "statusSelected": "status selected", + "updateLists": "Update lists", + "checkHostFiltered": "Check host", + "updatingLists": "Updating lists...", + "listsUpdated": "lists updated", + "listsNotUpdated": "Couldn't update lists", + "listsNotLoaded": "Lists couldn't be loaded", + "domainNotValid": "Domain not valid", + "check": "Check", + "checkingHost": "Checking host...", + "errorCheckingHost": "Host couldn't be checked", + "block": "Block", + "unblock": "Unblock", + "custom": "Custom", + "addImportant": "Add $important", + "howCreateRules": "How to create custom rules", + "examples": "Examples", + "example1": "Block access to example.org and all its subdomains.", + "example2": "Unblocks access to example.org and all its subdomains.", + "example3": "Adds a comment.", + "example4": "Block access to domains matching the specified regular expression.", + "moreInformation": "More information", + "addingRule": "Adding rule...", + "deletingRule": "Deleting rule...", + "enablingList": "Enabling list...", + "disablingList": "Disabling list...", + "disableFiltering": "Disable filtering", + "enablingFiltering": "Enabling filtering...", + "disablingFiltering": "Disabling filtering...", + "filteringStatusUpdated": "Filtering status updated successfully", + "filteringStatusNotUpdated": "Filtering status couldn't be updated", + "updateFrequency": "Update frequency", + "never": "Никогда", + "hour1": "1 час", + "hours12": "12 часов", + "hours24": "24 часа", + "days3": "3 дня", + "days7": "7 дней", + "changingUpdateFrequency": "Changing...", + "updateFrequencyChanged": "Update frequency changed successfully", + "updateFrequencyNotChanged": "Updare frecuency couldn't be changed", + "updating": "Updating values...", + "blockedServicesUpdated": "Blocked services updated successfully", + "blockedServicesNotUpdated": "Blocked services couldn't be updated", + "insertDomain": "Insert a domain to check it's stauts.", + "dhcpSettings": "Настройки DHCP", + "dhcpSettingsDescription": "Настройка DHCP-сервера", + "dhcpSettingsNotLoaded": "Не удалось загрузить настройки DHCP", + "loadingDhcp": "Загрузка настроек DHCP...", + "enableDhcpServer": "Включить DHCP-сервер", + "selectInterface": "Выбрать интерфейс DHCP", + "hardwareAddress": "MAC-адрес", + "gatewayIp": "IP-адрес шлюза", + "ipv4addresses": "Адрес IPv4", + "ipv6addresses": "Адрес IPv6", + "neededSelectInterface": "Необходимо выбрать интерфейс для настройки DHCP-сервера.", + "ipv4settings": "Настройки IPv4", + "startOfRange": "Начало диапазона", + "endOfRange": "Конец диапазона", + "ipv6settings": "Настройки IPv6", + "subnetMask": "Маска подсети", + "subnetMaskNotValid": "Subnet mask not valid", + "gateway": "Шлюз", + "gatewayNotValid": "Gateway not valid", + "leaseTime": "Время аренды", + "seconds": "{time} seconds", + "leaseTimeNotValid": "Lease time not valid", + "restoreConfiguration": "Reset configuration", + "restoreConfigurationMessage": "Are you sure you want to continue? This will reset all the configuration. This action cannot be undone.", + "changeInterface": "Change interface", + "savingSettings": "Сохранение настроек...", + "settingsSaved": "Settings saved successfully", + "settingsNotSaved": "Settings couldn't be saved", + "restoringConfig": "Restoring configuration...", + "configRestored": "Configuration reseted successfully", + "configNotRestored": "The configuration couldn't be reseted", + "dhcpStatic": "Статические аренды DHCP", + "noDhcpStaticLeases": "Не найдено статических аренд DHCP", + "deleting": "Deleting...", + "staticLeaseDeleted": "DHCP static lease deleted successfully", + "staticLeaseNotDeleted": "The DHCP static lease could not be deleted", + "deleteStaticLease": "Delete static lease", + "deleteStaticLeaseDescription": "The DHCP static lease will be deleted. This action cannot be reverted.", + "addStaticLease": "Add static lease", + "macAddress": "MAC address", + "macAddressNotValid": "MAC address not valid", + "hostName": "Host name", + "hostNameError": "Host name cannot be empty", + "creating": "Creating...", + "staticLeaseCreated": "DHCP static lease created successfully", + "staticLeaseNotCreated": "The DHCP static lease couldn't be created", + "staticLeaseExists": "The DHCP static lease already exists", + "serverNotConfigured": "Server not configured", + "restoreLeases": "Reset leases", + "restoreLeasesMessage": "Are you sure you want to continue? This will reset all the existing leases. This action cannot be undone.", + "restoringLeases": "Resetting leases...", + "leasesRestored": "Leases reseted successfully", + "leasesNotRestored": "The leases couldn't be reseted", + "dhcpLeases": "Аренды DHCP", + "noLeases": "Не найдено аренд DHCP", + "dnsRewrites": "DNS rewrites", + "dnsRewritesDescription": "Configure custom DNS rules", + "loadingRewriteRules": "Loading rewrite rules...", + "rewriteRulesNotLoaded": "DNS rewrite rules could not be loaded.", + "noRewriteRules": "No DNS rewrite rules", + "answer": "Answer", + "deleteDnsRewrite": "Delete DNS rewrite", + "deleteDnsRewriteMessage": "Are you sure you want to delete this DNS rewrite? This action cannot be undone.", + "dnsRewriteRuleDeleted": "DNS rewrite rule deleted successfully", + "dnsRewriteRuleNotDeleted": "The DNS rewrite rule could not be deleted", + "addDnsRewrite": "Add DNS rewrite", + "addingRewrite": "Adding rewrite...", + "dnsRewriteRuleAdded": "DNS rewrite rule addded successfully", + "dnsRewriteRuleNotAdded": "DNS rewrite rule could not be added", + "logsSettings": "Настройки журнала", + "enableLog": "Включить журнал", + "clearLogs": "Очистить журнал", + "anonymizeClientIp": "Анонимизировать IP-адрес клиента", + "hours6": "6 часов", + "days30": "30 дней", + "days90": "90 дней", + "retentionTime": "Частота ротации журнала запросов", + "selectOneItem": "Select one item", + "logSettingsNotLoaded": "Log settings couldn't be loaded.", + "updatingSettings": "Updating settings...", + "logsConfigUpdated": "Настройки журнала успешно обновлены", + "logsConfigNotUpdated": "Невозможно обновить настройки журнала", + "deletingLogs": "Очистка журнала...", + "logsCleared": "Журнал успешно очищен", + "logsNotCleared": "Невозможно очистить журнал", + "runningHomeAssistant": "Запускается на Home Assistant", + "serverError": "Server error", + "noItems": "No items to show here", + "dnsSettings": "DNS settings", + "dnsSettingsDescription": "Configure connection with DNS servers", + "upstreamDns": "Upstream DNS servers", + "bootstrapDns": "Bootstrap DNS servers", + "noUpstreamDns": "No upstream DNS servers added.", + "dnsMode": "DNS mode", + "noDnsMode": "No DNS mode selected", + "loadBalancing": "Load balancing", + "parallelRequests": "Parallel requests", + "fastestIpAddress": "Fastest IP address", + "loadBalancingDescription": "Query one upstream server at a time. AdGuard Home uses its weighted random algorithm to pick the server so that the fastest server is used more often.", + "parallelRequestsDescription": "Use parallel queries to speed up resolving by querying all upstream servers simultaneously.", + "fastestIpAddressDescription": "Query all DNS servers and return the fastest IP address among all responses. This slows down DNS queries as AdGuard Home has to wait for responses from all DNS servers, but improves the overall connectivity.", + "noBootstrapDns": "No bootstrap DNS servers added.", + "bootstrapDnsServersInfo": "Bootstrap DNS servers are used to resolve IP addresses of the DoH/DoT resolvers you specify as upstreams.", + "privateReverseDnsServers": "Private reverse DNS servers", + "privateReverseDnsServersDescription": "The DNS servers that AdGuard Home uses for local PTR queries. These servers are used to resolve PTR requests for addresses in private IP ranges, for example \"192.168.12.34\", using reverse DNS. If not set, AdGuard Home uses the addresses of the default DNS resolvers of your OS except for the addresses of AdGuard Home itself.", + "reverseDnsDefault": "By default, AdGuard Home uses the following reverse DNS resolvers", + "addItem": "Add item", + "noServerAddressesAdded": "No server addresses added.", + "usePrivateReverseDnsResolvers": "Use private reverse DNS resolvers", + "usePrivateReverseDnsResolversDescription": "Perform reverse DNS lookups for locally served addresses using these upstream servers. If disabled, AdGuard Home responds with NXDOMAIN to all such PTR requests except for clients known from DHCP, /etc/hosts, and so on.", + "enableReverseResolving": "Enable reverse resolving of clients' IP addresses", + "enableReverseResolvingDescription": "Reversely resolve clients' IP addresses into their hostnames by sending PTR queries to corresponding resolvers (private DNS servers for local clients, upstream servers for clients with public IP addresses).", + "dnsServerSettings": "AdGuard Home DNS server settings", + "limitRequestsSecond": "Rate limit per second", + "valueNotNumber": "Value is not a number", + "enableEdns": "Enable EDNS client subnet", + "enableEdnsDescription": "Add the EDNS Client Subnet option (ECS) to upstream requests and log the values sent by the clients in the query log.", + "enableDnssec": "Enable DNSSEC", + "enableDnssecDescription": "Set DNSSEC flag in the outcoming DNS queries and check the result (DNSSEC-enabled resolver is required).", + "disableResolvingIpv6": "Disable resolving of IPv6 addresses", + "disableResolvingIpv6Description": "Drop all DNS queries for IPv6 addresses (type AAAA).", + "blockingMode": "Blocking mode", + "defaultMode": "Default", + "defaultDescription": "Respond with zero IP address (0.0.0.0 for A; :: for AAAA) when blocked by Adblock-style rule; respond with the IP address specified in the rule when blocked by /etc/hosts-style rule", + "refusedDescription": "Respond with REFUSED code", + "nxdomainDescription": "Respond with NXDOMAIN code", + "nullIp": "Null IP", + "nullIpDescription": "Respond with zero IP address (0.0.0.0 for A; :: for AAAA)", + "customIp": "Custom IP", + "customIpDescription": "Respond with a manually set IP address", + "dnsCacheConfig": "DNS cache configuration", + "cacheSize": "Cache size", + "inBytes": "In bytes", + "overrideMinimumTtl": "Override minimum TTL", + "overrideMinimumTtlDescription": "Extend short time-to-live values (seconds) received from the upstream server when caching DNS responses.", + "overrideMaximumTtl": "Override maximum TTL", + "overrideMaximumTtlDescription": "Set a maximum time-to-live value (seconds) for entries in the DNS cache.", + "optimisticCaching": "Optimistic caching", + "optimisticCachingDescription": "Make AdGuard Home respond from the cache even when the entries are expired and also try to refresh them.", + "loadingDnsConfig": "Загрузка конфигурации DNS...", + "dnsConfigNotLoaded": "DNS config could not be loaded.", + "blockingIpv4": "Blocking IPv4", + "blockingIpv4Description": "IP address to be returned for a blocked A request", + "blockingIpv6": "Blocking IPv6", + "blockingIpv6Description": "IP address to be returned for a blocked AAAA request", + "invalidIp": "Invalid IP address", + "dnsConfigSaved": "DNS server configuration saved successfully", + "dnsConfigNotSaved": "The DNS server configuration could not be saved", + "savingConfig": "Saving configuration...", + "someValueNotValid": "Some value is not valid", + "upstreamDnsDescription": "Configure upstream servers and DNS mode", + "bootstrapDnsDescription": "Configure the bootstrap DNS servers", + "privateReverseDnsDescription": "Configure custom DNS resolvers and enable private reverse DNS resolving", + "dnsServerSettingsDescription": "Configure a rate limit, the blocking mode and more", + "dnsCacheConfigDescription": "Configure how the server should manage the DNS cache", + "comment": "Comment", + "address": "Address", + "commentsDescription": "Comments are always preceded by #. You don't have to add it, it will be added automatically.", + "encryptionSettings": "Encryption settings", + "encryptionSettingsDescription": "Encryption (HTTPS/QUIC/TLS) support", + "loadingEncryptionSettings": "Загрузка настроек шифрования...", + "encryptionSettingsNotLoaded": "Encryption settings couldn't be loaded.", + "enableEncryption": "Enable encryption", + "enableEncryptionTypes": "HTTPS, DNS-over-HTTPS, and DNS-over-TLS", + "enableEncryptionDescription": "If encryption is enabled, AdGuard Home admin interface will work over HTTPS, and the DNS server will listen for requests over DNS-over-HTTPS and DNS-over-TLS.", + "serverConfiguration": "Server configuration", + "domainName": "Domain name", + "domainNameDescription": "If set, AdGuard Home detects ClientIDs, responds to DDR queries, and performs additional connection validations. If not set, these features are disabled. Must match one of the DNS Names in the certificate.", + "redirectHttps": "Redirect to HTTPS automatically", + "httpsPort": "HTTPS port", + "tlsPort": "DNS-over-TLS port", + "dnsOverQuicPort": "DNS-over-QUIC port", + "certificates": "Certificates", + "certificatesDescription": "In order to use encryption, you need to provide a valid SSL certificates chain for your domain. You can get a free certificate on letsencrypt.org or you can buy it from one of the trusted Certificate Authorities.", + "certificateFilePath": "Set a certificates file path", + "pasteCertificateContent": "Paste the certificates contents", + "certificatePath": "Certificate path", + "certificateContent": "Certificate content", + "privateKey": "Private key", + "privateKeyFile": "Set a private key file", + "pastePrivateKey": "Paste the private key contents", + "usePreviousKey": "Use the previously saved key", + "privateKeyPath": "Private key path", + "invalidCertificate": "Invalid certificate", + "invalidPrivateKey": "Invalid private key", + "validatingData": "Validating data", + "dataValid": "Data is valid", + "dataNotValid": "Data not valid", + "encryptionConfigSaved": "Encryption configuration saved successfully", + "encryptionConfigNotSaved": "Encryption configuration could not be saved", + "configError": "Configuration error", + "enterOnlyCertificate": "Enter only the certificate. Do not input the ---BEGIN--- and ---END--- lines.", + "enterOnlyPrivateKey": "Enter only the key. Do not input the ---BEGIN--- and ---END--- lines.", + "noItemsSearch": "No items for that search.", + "clearSearch": "Clear search", + "exitSearch": "Exit search", + "searchClients": "Search clients", + "noClientsSearch": "No clients with that search.", + "customization": "Персонализация", + "customizationDescription": "Настройте внешний вид приложения", + "color": "Color", + "useDynamicTheme": "Use dynamic theme", + "red": "Red", + "green": "Green", + "blue": "Blue", + "yellow": "Yellow", + "orange": "Orange", + "brown": "Brown", + "cyan": "Cyan", + "purple": "Purple", + "pink": "Pink", + "deepOrange": "Deep orange", + "indigo": "Indigo", + "useThemeColorStatus": "Use theme color for status", + "useThemeColorStatusDescription": "Replaces green and red status colors with theme color and grey", + "invalidCertificateChain": "Invalid certificate chain", + "validCertificateChain": "Valid certificate chain", + "subject": "Subject", + "issuer": "Issuer", + "expires": "Expires", + "validPrivateKey": "Valid private key", + "expirationDate": "Expiration date", + "keysNotMatch": "Invalid certificate or key: tls: private key does not match public key", + "timeLogs": "Time on logs", + "timeLogsDescription": "Show processing time on logs list", + "hostNames": "Host names", + "keyType": "Key type", + "updateAvailable": "Update available", + "installedVersion": "Installed version", + "newVersion": "New version", + "source": "Source", + "downloadUpdate": "Download update", + "download": "Download", + "doNotRememberAgainUpdate": "Do not remember again for this version", + "downloadingUpdate": "Скачивание", + "completed": "completed", + "permissionNotGranted": "Permission not granted", + "inputSearchTerm": "Input a search term.", + "answers": "Answers", + "copyClipboard": "Copy to clipboard", + "domainCopiedClipboard": "Domain copied to the clipboard", + "clearDnsCache": "Clear DNS cache", + "clearDnsCacheMessage": "Are you sure you want to clear the DNS cache?", + "dnsCacheCleared": "DNS cache cleared successfully", + "clearingDnsCache": "Clearing cache...", + "dnsCacheNotCleared": "DNS cache couldn't be cleared", + "clientsSelected": "clients selected", + "invalidDomain": "Invalid domain", + "loadingBlockedServicesList": "Загрузка списка заблокированных сервисов...", + "blockedServicesListNotLoaded": "The blocked services list could not be loaded", + "error": "Error", + "updates": "Updates", + "updatesDescription": "Update the AdGuard Home server", + "updateNow": "Update now", + "currentVersion": "Current version", + "requestStartUpdateFailed": "Request to start update failed", + "requestStartUpdateSuccessful": "Request to start update successfull", + "serverUpdated": "Server is updated", + "unknownStatus": "Неизвестный статус", + "checkingUpdates": "Проверка обновлений..", + "checkUpdates": "Проверить обновления", + "requestingUpdate": "Запрос обновления...", + "autoupdateUnavailable": "Автообновление недоступно", + "autoupdateUnavailableDescription": "The autoupdate service is not available for this server. It could be because the server is running on a Docker container. You have to update your server manually.", + "minute": "{time} минута", + "minutes": "{time} минут", + "hour": "{time} час", + "hours": "{time} часов", + "remainingTime": "Оставшееся время", + "safeSearchSettings": "Настройки безопасного поиска", + "loadingSafeSearchSettings": "Загрузка настроек безопасного поиска...", + "safeSearchSettingsNotLoaded": "Ошибка при загрузке настроек безопасного поиска.", + "loadingLogsSettings": "Загрузка настроек журнала...", + "selectOptionLeftColumn": "Select an option of the left column", + "selectClientLeftColumn": "Select a client of the left column", + "disableList": "Disable list", + "enableList": "Enable list", + "screens": "Screens", + "copiedClipboard": "Copied to clipboard", + "seeDetails": "See details", + "listNotAvailable": "List not available", + "copyListUrl": "Copy list URL", + "listUrlCopied": "List URL copied to the clipboard", + "unsupportedVersion": "Неподдерживаемая версия", + "unsupprtedVersionMessage": "Поддержка сервера версии {version} не гарантируется. Приложение может работать нестабильно с данной версией сервера.\n\nПриложение AdGuard Home Manager предназначено для работы со стабильными версиями сервера AdGuard Home. Приложение может работать с альфа и бета версиями сервера, но совместимость и стабильность не гарантируются.", + "iUnderstand": "Продолжить", + "appUpdates": "Application updates", + "usingLatestVersion": "You are using the latest version", + "ipLogs": "IP on logs", + "ipLogsDescription": "Show always IP address on logs instead of client name", + "application": "Application", + "combinedChart": "Combined chart", + "combinedChartDescription": "Combine all charts into one", + "statistics": "Statistics", + "errorLoadFilters": "Ошибка при загрузке фильтров.", + "clientRemovedSuccessfully": "Запись успешно удалена", + "editRewriteRule": "Edit rewrite rule", + "dnsRewriteRuleUpdated": "DNS rewrite rule updated successfully", + "dnsRewriteRuleNotUpdated": "DNS rewrite rule could not be updated", + "updatingRule": "Updating rule...", + "serverUpdateNeeded": "Server update needed", + "updateYourServer": "Update your AdGuard Home server to {version} or greater to use this feature.", + "january": "January", + "february": "February", + "march": "March", + "april": "April", + "may": "May", + "june": "June", + "july": "July", + "august": "August", + "september": "September", + "october": "October", + "november": "November", + "december": "December", + "malwarePhising": "Malware/phising", + "queries": "Queries", + "adultSites": "Adult sites", + "quickFilters": "Quick filters", + "searchDomainInternet": "Search domain on the Internet", + "hideServerAddress": "Hide server address", + "hideServerAddressDescription": "Hides the server address on the home screen", + "topItemsOrder": "Top items order", + "topItemsOrderDescription": "Order the home screen top items lists", + "topItemsReorderInfo": "Hold and swipe an item to reorder it.", + "discardChanges": "Discard changes", + "discardChangesDescription": "Are you sure you want to discard the changes?" +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 6d2f1a3..e4e80ab 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -228,7 +228,8 @@ class _MainState extends State
{ Locale('en', ''), Locale('es', ''), Locale('zh', ''), - Locale('zh', 'CN') + Locale('zh', 'CN'), + Locale('ru', '') ], scaffoldMessengerKey: scaffoldMessengerKey, builder: (context, child) { From b531531d2c61280ff6a7da51ad3ae60052ffd487 Mon Sep 17 00:00:00 2001 From: dmitry Date: Sun, 24 Sep 2023 02:08:53 +0500 Subject: [PATCH 002/236] Russian_translation: added some translations --- lib/l10n/app_ru.arb | 208 ++++++++++++++++++++++---------------------- 1 file changed, 104 insertions(+), 104 deletions(-) diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index dc8b29a..93d621f 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -30,7 +30,7 @@ "connected": "Подключено", "selectedDisconnected": "Выбран, но отключён", "connectionDefaultSuccessfully": "Подключение успешно установлено как «подключение по умолчанию».", - "connectionDefaultFailed": "Подключение не удалось установить «подключением по умолчанию».", + "connectionDefaultFailed": "Подключение не удалось установить «подключением по умолчанию»", "noSavedConnections": "Нет сохранённых подключений", "cannotConnect": "Не удается подключиться к серверу", "connectionRemoved": "Подключение удалено успешно", @@ -64,20 +64,20 @@ "theme": "Тема", "light": "Светлая", "dark": "Тёмная", - "systemDefined": "Определено системой", + "systemDefined": "Системная тема", "close": "Закрыть", "connectedTo": "Подключено к:", "selectedServer": "Selected server:", "noServerSelected": "Нет выбранных серверов", "manageServer": "Управление сервером", "allProtections": "Защита", - "userNotEmpty": "Username cannot be empty", - "passwordNotEmpty": "Password cannot be empty", + "userNotEmpty": "Логин не может быть пустым", + "passwordNotEmpty": "Пароль не может быть пустым", "examplePath": "Например: /adguard", "helperPath": "Если используется реверсивный прокси", - "aboutApp": "About the application", - "appVersion": "App version", - "createdBy": "Created by", + "aboutApp": "О приложении", + "appVersion": "Версия приложения", + "createdBy": "Автор", "clients": "Клиенты", "allowed": "Разрешённые", "blocked": "Заблокированные", @@ -91,22 +91,22 @@ "addClient": "Добавить клиента", "list": "Список", "ipAddress": "IP-адреса", - "ipNotValid": "IP address not valid", + "ipNotValid": "Недопустимый IP-адрес", "clientAddedSuccessfully": "Запись успешно добавлена в список", "addingClient": "Добавление клиента...", "clientNotAdded": "Клиент не может быть внесён в список", "clientAnotherList": "Данный клиент уже занесён в один из списков", "noSavedLogs": "Нет сохранённых журналов", "logs": "Журналы", - "copyLogsClipboard": "Copy logs to clipboard", - "logsCopiedClipboard": "Logs copied to clipboard", - "advancedSettings": "Advanced settings", - "dontCheckCertificate": "Don't check SSL certificate", - "dontCheckCertificateDescription": "Overrides the server's SSL certificate validation", - "advancedSetupDescription": "Advanced options", - "settingsUpdatedSuccessfully": "Настройки успешно обновлены.", - "cannotUpdateSettings": "Settings cannot be updated.", - "restartAppTakeEffect": "Restart the application", + "copyLogsClipboard": "Скопировать журнал в буфер обмена", + "logsCopiedClipboard": "Журнал скопирован в буфер обмена", + "advancedSettings": "Продвинутые настройки", + "dontCheckCertificate": "Не проверять SSL-сертификат", + "dontCheckCertificateDescription": "Переопределяет проверку SSL-сертификата сервера", + "advancedSetupDescription": "Расширенные параметры", + "settingsUpdatedSuccessfully": "Настройки успешно обновлены", + "cannotUpdateSettings": "Невозможно обновить настройки", + "restartAppTakeEffect": "Перезапустите приложение", "loadingLogs": "Загрузка журнала...", "logsNotLoaded": "Невозможно загрузить список журналов", "processed": "Processed\nNo list", @@ -257,9 +257,9 @@ "listNotDeleted": "The list couldn't be deleted", "deleteList": "Delete list", "deleteListMessage": "Are you sure you want to delete this list? This action can't be reverted.", - "serverSettings": "Server settings", - "serverInformation": "Server information", - "serverInformationDescription": "Информация о сервере и статус", + "serverSettings": "Настройки сервера", + "serverInformation": "Информация о сервере", + "serverInformationDescription": "Информация о сервере и текущий статус", "loadingServerInfo": "Загрузка информации о сервере...", "serverInfoNotLoaded": "Невозможно загрузить информацию о сервере.", "dnsAddresses": "DNS-адреса", @@ -267,12 +267,12 @@ "dnsPort": "DNS-порт", "httpPort": "HTTP-порт", "protectionEnabled": "Защита активна", - "dhcpAvailable": "DHCP недоступен", - "serverRunning": "Server running", - "serverVersion": "Server version", - "serverLanguage": "Server language", - "yes": "Yes", - "no": "No", + "dhcpAvailable": "DHCP доступен", + "serverRunning": "Сервер запущен ", + "serverVersion": "Версия сервера", + "serverLanguage": "Язык сервера", + "yes": "Да", + "no": "Нет", "allowedClients": "Разрешённые клиенты", "disallowedClients": "Запрещённые клиенты", "disallowedDomains": "Неразрешённые домены", @@ -390,20 +390,20 @@ "leasesNotRestored": "The leases couldn't be reseted", "dhcpLeases": "Аренды DHCP", "noLeases": "Не найдено аренд DHCP", - "dnsRewrites": "DNS rewrites", - "dnsRewritesDescription": "Configure custom DNS rules", - "loadingRewriteRules": "Loading rewrite rules...", - "rewriteRulesNotLoaded": "DNS rewrite rules could not be loaded.", - "noRewriteRules": "No DNS rewrite rules", - "answer": "Answer", - "deleteDnsRewrite": "Delete DNS rewrite", - "deleteDnsRewriteMessage": "Are you sure you want to delete this DNS rewrite? This action cannot be undone.", - "dnsRewriteRuleDeleted": "DNS rewrite rule deleted successfully", - "dnsRewriteRuleNotDeleted": "The DNS rewrite rule could not be deleted", - "addDnsRewrite": "Add DNS rewrite", - "addingRewrite": "Adding rewrite...", - "dnsRewriteRuleAdded": "DNS rewrite rule addded successfully", - "dnsRewriteRuleNotAdded": "DNS rewrite rule could not be added", + "dnsRewrites": "Перезапись DNS-запросов", + "dnsRewritesDescription": "Настройка пользовательских правил DNS", + "loadingRewriteRules": "Загрузка правил перезаписи...", + "rewriteRulesNotLoaded": "Не удалось загрузить правила перезаписи DNS.", + "noRewriteRules": "Нет правил перезаписи DNS", + "answer": "Ответ", + "deleteDnsRewrite": "Удалить правило перезаписи DNS-запросов", + "deleteDnsRewriteMessage": "Вы уверены, что хотите удалить это правило перезаписи DNS? Данное действие не может быть отменено.", + "dnsRewriteRuleDeleted": "Правило перезаписи DNS успешно удалено", + "dnsRewriteRuleNotDeleted": "Не удалось удалить правило перезаписи DNS", + "addDnsRewrite": "Правило перезаписи", + "addingRewrite": "Добавление правила перезаписи DNS-запросов...", + "dnsRewriteRuleAdded": "Правило перезаписи DNS успешно добавлено", + "dnsRewriteRuleNotAdded": "Не удалось добавить правило перезаписи DNS", "logsSettings": "Настройки журнала", "enableLog": "Включить журнал", "clearLogs": "Очистить журнал", @@ -535,31 +535,31 @@ "noClientsSearch": "No clients with that search.", "customization": "Персонализация", "customizationDescription": "Настройте внешний вид приложения", - "color": "Color", - "useDynamicTheme": "Use dynamic theme", - "red": "Red", - "green": "Green", - "blue": "Blue", - "yellow": "Yellow", - "orange": "Orange", - "brown": "Brown", - "cyan": "Cyan", - "purple": "Purple", - "pink": "Pink", - "deepOrange": "Deep orange", - "indigo": "Indigo", - "useThemeColorStatus": "Use theme color for status", - "useThemeColorStatusDescription": "Replaces green and red status colors with theme color and grey", - "invalidCertificateChain": "Invalid certificate chain", - "validCertificateChain": "Valid certificate chain", + "color": "Цветовая тема", + "useDynamicTheme": "Использовать динамическую тему", + "red": "Красный", + "green": "Зелёный", + "blue": "Синий", + "yellow": "Жёлтый", + "orange": "Оранжевый", + "brown": "Коричневый", + "cyan": "Бирюзовый", + "purple": "Пурпурный", + "pink": "Розовый", + "deepOrange": "Темно-оранжевый", + "indigo": "Индиго", + "useThemeColorStatus": "Использовать цвет темы для обозначения статуса", + "useThemeColorStatusDescription": "Заменяет зеленый и красный цвета статуса цветом темы и серым", + "invalidCertificateChain": "Недопустимая цепочка сертификатов", + "validCertificateChain": "Действительная цепочка сертификатов", "subject": "Subject", "issuer": "Issuer", "expires": "Expires", "validPrivateKey": "Valid private key", "expirationDate": "Expiration date", "keysNotMatch": "Invalid certificate or key: tls: private key does not match public key", - "timeLogs": "Time on logs", - "timeLogsDescription": "Show processing time on logs list", + "timeLogs": "Время в записях журнала", + "timeLogsDescription": "Показывать время обработки в журнале", "hostNames": "Host names", "keyType": "Key type", "updateAvailable": "Update available", @@ -585,20 +585,20 @@ "invalidDomain": "Invalid domain", "loadingBlockedServicesList": "Загрузка списка заблокированных сервисов...", "blockedServicesListNotLoaded": "The blocked services list could not be loaded", - "error": "Error", - "updates": "Updates", - "updatesDescription": "Update the AdGuard Home server", - "updateNow": "Update now", - "currentVersion": "Current version", + "error": "Ошибка", + "updates": "Обновления", + "updatesDescription": "Обновить AdGuard Home server", + "updateNow": "Обновить сейчас", + "currentVersion": "Текущая версия", "requestStartUpdateFailed": "Request to start update failed", "requestStartUpdateSuccessful": "Request to start update successfull", - "serverUpdated": "Server is updated", + "serverUpdated": "Сервер обновлён", "unknownStatus": "Неизвестный статус", "checkingUpdates": "Проверка обновлений..", "checkUpdates": "Проверить обновления", "requestingUpdate": "Запрос обновления...", "autoupdateUnavailable": "Автообновление недоступно", - "autoupdateUnavailableDescription": "The autoupdate service is not available for this server. It could be because the server is running on a Docker container. You have to update your server manually.", + "autoupdateUnavailableDescription": "Служба автоматического обновления недоступна для этого сервера. Это может быть связано с тем, что сервер запущен в контейнере Docker. Вам необходимо обновить свой сервер вручную.", "minute": "{time} минута", "minutes": "{time} минут", "hour": "{time} час", @@ -621,44 +621,44 @@ "unsupportedVersion": "Неподдерживаемая версия", "unsupprtedVersionMessage": "Поддержка сервера версии {version} не гарантируется. Приложение может работать нестабильно с данной версией сервера.\n\nПриложение AdGuard Home Manager предназначено для работы со стабильными версиями сервера AdGuard Home. Приложение может работать с альфа и бета версиями сервера, но совместимость и стабильность не гарантируются.", "iUnderstand": "Продолжить", - "appUpdates": "Application updates", - "usingLatestVersion": "You are using the latest version", - "ipLogs": "IP on logs", - "ipLogsDescription": "Show always IP address on logs instead of client name", - "application": "Application", - "combinedChart": "Combined chart", - "combinedChartDescription": "Combine all charts into one", - "statistics": "Statistics", + "appUpdates": "Обновления приложений", + "usingLatestVersion": "Вы используете последнюю версию", + "ipLogs": "IP-адреса в записях журнала", + "ipLogsDescription": "Всегда показывать IP-адрес в записях журнала вместо имени клиента", + "application": "Приложение", + "combinedChart": "Объединить графики", + "combinedChartDescription": "Комбинирует все графики в один", + "statistics": "Статистика", "errorLoadFilters": "Ошибка при загрузке фильтров.", "clientRemovedSuccessfully": "Запись успешно удалена", - "editRewriteRule": "Edit rewrite rule", - "dnsRewriteRuleUpdated": "DNS rewrite rule updated successfully", - "dnsRewriteRuleNotUpdated": "DNS rewrite rule could not be updated", - "updatingRule": "Updating rule...", - "serverUpdateNeeded": "Server update needed", - "updateYourServer": "Update your AdGuard Home server to {version} or greater to use this feature.", - "january": "January", - "february": "February", - "march": "March", - "april": "April", - "may": "May", - "june": "June", - "july": "July", - "august": "August", - "september": "September", - "october": "October", - "november": "November", - "december": "December", - "malwarePhising": "Malware/phising", - "queries": "Queries", - "adultSites": "Adult sites", - "quickFilters": "Quick filters", - "searchDomainInternet": "Search domain on the Internet", - "hideServerAddress": "Hide server address", - "hideServerAddressDescription": "Hides the server address on the home screen", - "topItemsOrder": "Top items order", - "topItemsOrderDescription": "Order the home screen top items lists", - "topItemsReorderInfo": "Hold and swipe an item to reorder it.", - "discardChanges": "Discard changes", - "discardChangesDescription": "Are you sure you want to discard the changes?" + "editRewriteRule": "Редактировать правило", + "dnsRewriteRuleUpdated": "Правило перезаписи DNS успешно обновлено", + "dnsRewriteRuleNotUpdated": "Невозможно обновить правило перезаписи DNS", + "updatingRule": "Обновление правила...", + "serverUpdateNeeded": "Требуется обновление сервера", + "updateYourServer": "Обновите сервер AdGuard Home до версии {version} или выше, чтобы использовать эту функцию.", + "january": "Январь", + "february": "Февраль", + "march": "Март", + "april": "Апрель", + "may": "Май", + "june": "Июнь", + "july": "Июль", + "august": "Август", + "september": "Сентябрь", + "october": "Октябрь", + "november": "Ноябрь", + "december": "Декабрь", + "malwarePhising": "Вредоносные/фишинговые сайты", + "queries": "Запросы", + "adultSites": "«Взрослые» сайты", + "quickFilters": "Быстрые фильтры", + "searchDomainInternet": "Поиск домена в Интернете", + "hideServerAddress": "Скрывать адрес сервера", + "hideServerAddressDescription": "Скрывает адрес сервера на главном экране", + "topItemsOrder": "Расположение блоков на главном экране", + "topItemsOrderDescription": "Упорядочьте расположение блоков на главном экране", + "topItemsReorderInfo": "Чтобы менять порядок элементов, удерживая элемент, перетащите его на новое место.", + "discardChanges": "Отменить изменения", + "discardChangesDescription": "Вы уверены, что хотите отменить изменения?" } \ No newline at end of file From cd2c1b9cbddf325511ac6b7a9168a1866ce41870 Mon Sep 17 00:00:00 2001 From: dmitry Date: Sun, 24 Sep 2023 22:39:56 +0500 Subject: [PATCH 003/236] Russian_translation: added all translations --- lib/l10n/app_ru.arb | 636 ++++++++++++++++++++++---------------------- 1 file changed, 318 insertions(+), 318 deletions(-) diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 93d621f..78b3e37 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -2,9 +2,9 @@ "home": "Главная", "settings": "Настройки", "connect": "Подключиться", - "servers": "Сервера", + "servers": "Серверы", "createConnection": "Создать подключение", - "name": "Название подключения", + "name": "Имя", "ipDomain": "IP-адрес или домен", "path": "Путь", "port": "Порт", @@ -23,7 +23,7 @@ "invalidUsernamePassword": "Неверный логин или пароль", "tooManyAttempts": "Слишком много попыток. Попробуйте позднее.", "cantReachServer": "Не удаётся установить соединение с сервером. Проверьте настройки подключения", - "sslError": "SSL error. Go to Settings > Advanced settings and enable Override SSL validation.", + "sslError": "Ошибка SSL. Перейдите в «Настройки» > «Дополнительные настройки» и активируйте «Не проверять SSL-сертификат».", "unknownError": "Неизвестная ошибка", "connectionNotCreated": "Не удалось создать подключение", "connecting": "Подключение...", @@ -79,13 +79,13 @@ "appVersion": "Версия приложения", "createdBy": "Автор", "clients": "Клиенты", - "allowed": "Разрешённые", - "blocked": "Заблокированные", + "allowed": "Разрешён", + "blocked": "Заблокирован", "noClientsList": "Список клиентов пуст", "activeClients": "Активные", "removeClient": "Удалить запись", "removeClientMessage": "Вы уверены, что хотите удалить данную запись из списка?", - "confirm": "Подтвердить", + "confirm": "Ок", "removingClient": "Удаление клиента...", "clientNotRemoved": "Клиент не может быть удалён из списка", "addClient": "Добавить клиента", @@ -97,43 +97,43 @@ "clientNotAdded": "Клиент не может быть внесён в список", "clientAnotherList": "Данный клиент уже занесён в один из списков", "noSavedLogs": "Нет сохранённых журналов", - "logs": "Журналы", + "logs": "Журнал", "copyLogsClipboard": "Скопировать журнал в буфер обмена", "logsCopiedClipboard": "Журнал скопирован в буфер обмена", - "advancedSettings": "Продвинутые настройки", + "advancedSettings": "Дополнительные настройки", "dontCheckCertificate": "Не проверять SSL-сертификат", "dontCheckCertificateDescription": "Переопределяет проверку SSL-сертификата сервера", "advancedSetupDescription": "Расширенные параметры", "settingsUpdatedSuccessfully": "Настройки успешно обновлены", - "cannotUpdateSettings": "Невозможно обновить настройки", + "cannotUpdateSettings": "Не удалось обновить настройки", "restartAppTakeEffect": "Перезапустите приложение", "loadingLogs": "Загрузка журнала...", - "logsNotLoaded": "Невозможно загрузить список журналов", - "processed": "Processed\nNo list", + "logsNotLoaded": "Не удалось загрузить журнал", + "processed": "Обработан\nБез списка", "processedRow": "Обработан", - "blockedBlacklist": "Blocked\nBlacklist", - "blockedBlacklistRow": "Заблокированные (чёрный список)", - "blockedSafeBrowsing": "Blocked\nSafe browsing", + "blockedBlacklist": "Заблокирован\nЧёрный список", + "blockedBlacklistRow": "Заблокирован (чёрный список)", + "blockedSafeBrowsing": "Заблокирован\nБезопасная навигация", "blockedSafeBrowsingRow": "Блок. (безопасная навигация)", - "blockedParental": "Blocked\nParental filtering", + "blockedParental": "Заблокирован\nРодительский контроль", "blockedParentalRow": "Блок. (родительский контроль)", - "blockedInvalid": "Blocked\nInvalid", - "blockedInvalidRow": "Blocked (invalid)", - "blockedSafeSearch": "Blocked\nSafe search", + "blockedInvalid": "Заблокировано\nНеверный", + "blockedInvalidRow": "Заблокирован (Неверный)", + "blockedSafeSearch": "Заблокирован\nБезопасный поиск", "blockedSafeSearchRow": "Блок. (безопасный поиск)", - "blockedService": "Blocked\nBlocked service", - "blockedServiceRow": "Blocked (blocked service)", - "processedWhitelist": "Processed\nWhitelist", - "processedWhitelistRow": "Разрешённые (белый список)", - "processedError": "Processed\nError", - "processedErrorRow": "Processed (error)", - "rewrite": "Rewrite", + "blockedService": "Заблокирован\nЗаблокированный сервис", + "blockedServiceRow": "Заблокирован (заблокированный сервис)", + "processedWhitelist": "Обработан\nБелый список", + "processedWhitelistRow": "Разрешён (белый список)", + "processedError": "Обработан\nОшибка", + "processedErrorRow": "Обработан (ошибка)", + "rewrite": "Переписать", "status": "Статус", "result": "Результат", "time": "Время", - "blocklist": "Blocklist", + "blocklist": "Блок-лист", "request": "Запрос", - "domain": "Домен", + "domain": "Хост", "type": "Тип", "clas": "Класс", "response": "Ответ", @@ -144,27 +144,27 @@ "deviceIp": "IP-адрес", "deviceName": "Имя устройства", "logDetails": "Детали запроса", - "blockingRule": "Blocking rule", - "blockDomain": "Block domain", - "couldntGetFilteringStatus": "Не удаётся получить статус фильтрации", - "unblockDomain": "Unblock domain", - "userFilteringRulesNotUpdated": "Невозможно обновить пользовательские правила фильтрации", + "blockingRule": "Правило блокировки", + "blockDomain": "Заблокировать домен", + "couldntGetFilteringStatus": "Не удалось получить журнал фильтрации", + "unblockDomain": "Разблокировать домен", + "userFilteringRulesNotUpdated": "Не удалось обновить пользовательские правила фильтрации", "userFilteringRulesUpdated": "Пользовательские правила фильтрации успешно обновлены", "savingUserFilters": "Сохранение пользовательских правил фильтрации...", "filters": "Фильтры", - "logsOlderThan": "Logs older than", + "logsOlderThan": "Записи журнала старше, чем", "responseStatus": "Статус ответа", - "selectTime": "Select time", - "notSelected": "Not selected", + "selectTime": "Выберите время", + "notSelected": "Не выбрано", "resetFilters": "Сбросить фильтры", "noLogsDisplay": "Нет записей в журнале", - "noLogsThatOld": "It's possible that there are no logs saved for that selected time. Try selecting a more recent time.", + "noLogsThatOld": "Возможно, что за это выбранное время записи журнала не сохранены. Попробуйте выбрать более позднее время.", "apply": "Применить", "selectAll": "Отметить все", "unselectAll": "Отменить выбор всех", "all": "Все", "filtered": "Отфильтрованные", - "checkAppLogs": "Check app logs", + "checkAppLogs": "Проверьте журналы приложения", "refresh": "Обновить", "search": "Поиск", "dnsQueries": "DNS-запросы", @@ -188,7 +188,7 @@ "identifierHelper": "IP-адрес, CIDR, MAC или ClientID", "noIdentifiers": "Идентификаторы не добавлены", "useGlobalSettings": "Глобальные настройки", - "enableFiltering": "Фильтрация", + "enableFiltering": "Включить фильтрацию", "enableSafeBrowsing": "Безопасная навигация", "enableParentalControl": "Родительский контроль", "enableSafeSearch": "Безопасный поиск", @@ -204,64 +204,64 @@ "willBeUsedGeneralServers": "Будут использоваться общие upstream DNS-сервера.", "added": "Сохранённые", "clientUpdatedSuccessfully": "Настройки клиента успешно обновлены", - "clientNotUpdated": "Невозможно обновить настройки клиента", + "clientNotUpdated": "Не удалось обновить настройки клиента", "clientDeletedSuccessfully": "Клиент успешно удалён", - "clientNotDeleted": "Невозможно удалить клиента", + "clientNotDeleted": "Не удалось удалить клиента", "options": "Параметры", "loadingFilters": "Загрузка фильтров...", - "filtersNotLoaded": "Невозможно загрузить фильтры.", - "whitelists": "Whitelists", - "blacklists": "Blacklists", - "rules": "Rules", - "customRules": "Custom rules", - "enabledRules": "Enabled rules", - "enabled": "Enabled", - "disabled": "Disabled", - "rule": "Rule", - "addCustomRule": "Add custom rule", - "removeCustomRule": "Remove custom rule", - "removeCustomRuleMessage": "Are you sure you want to remove this custom rule?", - "updatingRules": "Updating custom rules...", - "ruleRemovedSuccessfully": "Rule removed successfully", - "ruleNotRemoved": "Couldn't remove the rule", - "ruleAddedSuccessfully": "Rule added successfully", - "ruleNotAdded": "Couldn't add the rule", - "noCustomFilters": "No custom filters", + "filtersNotLoaded": "Не удалось загрузить фильтры", + "whitelists": "Белые списки DNS", + "blacklists": "Чёрные списки DNS", + "rules": "Количество правил", + "customRules": "Пользовательские правила фильтрации", + "enabledRules": "Включенные правила", + "enabled": "Включено", + "disabled": "Отключено", + "rule": "Правило", + "addCustomRule": "Добавить пользовательское правило фильтрации", + "removeCustomRule": "Удалить пользовательское правило фильтрации", + "removeCustomRuleMessage": "Вы уверены, что хотите удалить данное пользовательское правило фильтрации?", + "updatingRules": "Обновление пользовательских правил фильтрации...", + "ruleRemovedSuccessfully": "Правило успешно удалено", + "ruleNotRemoved": "Не удаётся удалить данное правило", + "ruleAddedSuccessfully": "Правило успешно добавлено", + "ruleNotAdded": "Не удаётся добавить правило", + "noCustomFilters": "Нет пользовательских правил фильтрации", "noBlockedClients": "Нет запрещённых клиентов", - "noBlackLists": "No blacklists", - "noWhiteLists": "No whitelists", - "addWhitelist": "Add whitelist", - "addBlacklist": "Add blacklist", - "urlNotValid": "URL is not valid", - "urlAbsolutePath": "URL or absolute path", - "addingList": "Adding list...", - "listAdded": "List added successfully. Items added:", - "listAlreadyAdded": "List already added", - "listUrlInvalid": "List URL invalid", - "listNotAdded": "List couldn't be added", - "listDetails": "List details", - "listType": "List type", - "whitelist": "White list", - "blacklist": "Black list", - "latestUpdate": "Latest update", - "disable": "Выключить", + "noBlackLists": "Нет чёрных списков", + "noWhiteLists": "Нет белых списков", + "addWhitelist": "Добавить белый список", + "addBlacklist": "Добавить чёрный список", + "urlNotValid": "Неверный URL или абсолютный путь", + "urlAbsolutePath": "URL-адрес или абсолютный путь", + "addingList": "Добавление списка...", + "listAdded": "Список успешно добавлен. Добавлены:", + "listAlreadyAdded": "Список уже был добавлен", + "listUrlInvalid": "Неверный URL-адрес списка", + "listNotAdded": "Не удаётся добавить список", + "listDetails": "Параметры списка", + "listType": "Тип", + "whitelist": "Белый список", + "blacklist": "Чёрный список", + "latestUpdate": "Последнее обновление", + "disable": "Отключить", "enable": "Включить", "currentStatus": "Текущий статус", - "listDataUpdated": "List data updated successfull", - "listDataNotUpdated": "Couldn't update list data", - "updatingListData": "Updating list data...", - "editWhitelist": "Edit white list", - "editBlacklist": "Edit black list", - "deletingList": "Deleting list...", - "listDeleted": "List deleted successfully", - "listNotDeleted": "The list couldn't be deleted", - "deleteList": "Delete list", - "deleteListMessage": "Are you sure you want to delete this list? This action can't be reverted.", + "listDataUpdated": "Параметры списка успешно обновлены", + "listDataNotUpdated": "Не удалось обновить параметры списка", + "updatingListData": "Обновление параметров списка...", + "editWhitelist": "Редактировать белый список", + "editBlacklist": "Редактировать чёрный список", + "deletingList": "Удаление списка...", + "listDeleted": "Список успешно удалён", + "listNotDeleted": "Не удалось удалить список", + "deleteList": "Удалить список", + "deleteListMessage": "Вы уверены, что хотите удалить этот список? Это действие нельзя отменить.", "serverSettings": "Настройки сервера", "serverInformation": "Информация о сервере", "serverInformationDescription": "Информация о сервере и текущий статус", "loadingServerInfo": "Загрузка информации о сервере...", - "serverInfoNotLoaded": "Невозможно загрузить информацию о сервере.", + "serverInfoNotLoaded": "Не удалось загрузить информацию о сервере.", "dnsAddresses": "DNS-адреса", "seeDnsAddresses": "Посмотреть DNS-адреса", "dnsPort": "DNS-порт", @@ -288,53 +288,53 @@ "clientIdentifier": "Идентификатор клиента", "allowClient": "Разрешить клиент", "disallowClient": "Запретить клиента", - "noDisallowedDomains": "No disallowed domains", - "domainNotAdded": "The domain couldn't be added", - "statusSelected": "status selected", - "updateLists": "Update lists", - "checkHostFiltered": "Check host", - "updatingLists": "Updating lists...", - "listsUpdated": "lists updated", - "listsNotUpdated": "Couldn't update lists", - "listsNotLoaded": "Lists couldn't be loaded", - "domainNotValid": "Domain not valid", - "check": "Check", - "checkingHost": "Checking host...", - "errorCheckingHost": "Host couldn't be checked", - "block": "Block", - "unblock": "Unblock", + "noDisallowedDomains": "Нет запрещенных доменов", + "domainNotAdded": "Не удалось добавить домен", + "statusSelected": "выбран статус", + "updateLists": "Проверить обновления", + "checkHostFiltered": "Проверить хост", + "updatingLists": "Обновление списков...", + "listsUpdated": "списки обновлены", + "listsNotUpdated": "Не удалось обновить списки", + "listsNotLoaded": "Не удалось загрузить списки", + "domainNotValid": "Недействительный домен", + "check": "Проверить", + "checkingHost": "Проверка хоста...", + "errorCheckingHost": "Не удалось проверить хост", + "block": "Запретить", + "unblock": "Разрешить", "custom": "Custom", - "addImportant": "Add $important", - "howCreateRules": "How to create custom rules", - "examples": "Examples", - "example1": "Block access to example.org and all its subdomains.", - "example2": "Unblocks access to example.org and all its subdomains.", - "example3": "Adds a comment.", - "example4": "Block access to domains matching the specified regular expression.", - "moreInformation": "More information", - "addingRule": "Adding rule...", - "deletingRule": "Deleting rule...", - "enablingList": "Enabling list...", - "disablingList": "Disabling list...", - "disableFiltering": "Disable filtering", - "enablingFiltering": "Enabling filtering...", - "disablingFiltering": "Disabling filtering...", - "filteringStatusUpdated": "Filtering status updated successfully", - "filteringStatusNotUpdated": "Filtering status couldn't be updated", - "updateFrequency": "Update frequency", + "addImportant": "Добавить $important", + "howCreateRules": "Как создать пользовательские правила", + "examples": "Примеры", + "example1": "Заблокировать доступ к домену example.org и всем его поддоменам.", + "example2": "Разблокировать доступ к домену example.org и всем его поддоменам.", + "example3": "Добавлять комментарий.", + "example4": "Блокировать доступ к доменам, соответствующим заданному регулярному выражению.", + "moreInformation": "Больше информации", + "addingRule": "Добавление правила...", + "deletingRule": "Удаление правила...", + "enablingList": "Включение списка...", + "disablingList": "Отключение списка...", + "disableFiltering": "Отключить фильтрацию", + "enablingFiltering": "Включение фильтрации...", + "disablingFiltering": "Отключение фильтрации...", + "filteringStatusUpdated": "Статус фильтрации успешно обновлен", + "filteringStatusNotUpdated": "Не удалось обновить статус фильтрации", + "updateFrequency": "Частота обновления", "never": "Никогда", "hour1": "1 час", "hours12": "12 часов", "hours24": "24 часа", "days3": "3 дня", "days7": "7 дней", - "changingUpdateFrequency": "Changing...", - "updateFrequencyChanged": "Update frequency changed successfully", - "updateFrequencyNotChanged": "Updare frecuency couldn't be changed", - "updating": "Updating values...", - "blockedServicesUpdated": "Blocked services updated successfully", - "blockedServicesNotUpdated": "Blocked services couldn't be updated", - "insertDomain": "Insert a domain to check it's stauts.", + "changingUpdateFrequency": "Обновление...", + "updateFrequencyChanged": "Частота обновления успешно изменена", + "updateFrequencyNotChanged": "Не удаётся изменить частоту обновления", + "updating": "Обновление значений...", + "blockedServicesUpdated": "Заблокированные сервисы успешно обновлены", + "blockedServicesNotUpdated": "Не удаётся обновить заблокированные сервисы", + "insertDomain": "Проверить фильтрацию имени хоста.", "dhcpSettings": "Настройки DHCP", "dhcpSettingsDescription": "Настройка DHCP-сервера", "dhcpSettingsNotLoaded": "Не удалось загрузить настройки DHCP", @@ -351,43 +351,43 @@ "endOfRange": "Конец диапазона", "ipv6settings": "Настройки IPv6", "subnetMask": "Маска подсети", - "subnetMaskNotValid": "Subnet mask not valid", + "subnetMaskNotValid": "Недопустимая маска подсети", "gateway": "Шлюз", - "gatewayNotValid": "Gateway not valid", + "gatewayNotValid": "Недопустимый шлюз", "leaseTime": "Время аренды", - "seconds": "{time} seconds", - "leaseTimeNotValid": "Lease time not valid", - "restoreConfiguration": "Reset configuration", - "restoreConfigurationMessage": "Are you sure you want to continue? This will reset all the configuration. This action cannot be undone.", - "changeInterface": "Change interface", + "seconds": "{time} секунд", + "leaseTimeNotValid": "Недопустимый срок аренды", + "restoreConfiguration": "Сбросить конфигурацию", + "restoreConfigurationMessage": "Вы уверены, что хотите продолжить? Это приведет к сбросу всей конфигурации. Данное действие не может быть отменено.", + "changeInterface": "Изменить интерфейс", "savingSettings": "Сохранение настроек...", - "settingsSaved": "Settings saved successfully", - "settingsNotSaved": "Settings couldn't be saved", - "restoringConfig": "Restoring configuration...", - "configRestored": "Configuration reseted successfully", - "configNotRestored": "The configuration couldn't be reseted", + "settingsSaved": "Настройки успешно сохранены", + "settingsNotSaved": "Не удалось сохранить настройки", + "restoringConfig": "Восстановление конфигурации...", + "configRestored": "Конфигурация успешно сброшена", + "configNotRestored": "Не удалось произвести сброс конфигурации", "dhcpStatic": "Статические аренды DHCP", "noDhcpStaticLeases": "Не найдено статических аренд DHCP", - "deleting": "Deleting...", - "staticLeaseDeleted": "DHCP static lease deleted successfully", - "staticLeaseNotDeleted": "The DHCP static lease could not be deleted", - "deleteStaticLease": "Delete static lease", - "deleteStaticLeaseDescription": "The DHCP static lease will be deleted. This action cannot be reverted.", - "addStaticLease": "Add static lease", - "macAddress": "MAC address", - "macAddressNotValid": "MAC address not valid", - "hostName": "Host name", - "hostNameError": "Host name cannot be empty", - "creating": "Creating...", - "staticLeaseCreated": "DHCP static lease created successfully", - "staticLeaseNotCreated": "The DHCP static lease couldn't be created", - "staticLeaseExists": "The DHCP static lease already exists", - "serverNotConfigured": "Server not configured", - "restoreLeases": "Reset leases", - "restoreLeasesMessage": "Are you sure you want to continue? This will reset all the existing leases. This action cannot be undone.", - "restoringLeases": "Resetting leases...", - "leasesRestored": "Leases reseted successfully", - "leasesNotRestored": "The leases couldn't be reseted", + "deleting": "Удаление...", + "staticLeaseDeleted": "Статическая аренда DHCP успешно удалена", + "staticLeaseNotDeleted": "Не удалось удалить статическую аренду DHCP", + "deleteStaticLease": "Удалить статическую аренду", + "deleteStaticLeaseDescription": "Статическая аренда DHCP будет удалена. Данное действие не может быть отменено.", + "addStaticLease": "Добавить статическую аренду", + "macAddress": "MAC-адрес", + "macAddressNotValid": "Недопустимый MAC-адрес", + "hostName": "Имя хоста", + "hostNameError": "Имя хоста не может быть пустым", + "creating": "Создание...", + "staticLeaseCreated": "Статическая аренда DHCP успешно создана", + "staticLeaseNotCreated": "Не удалось создать статическую аренду DHCP", + "staticLeaseExists": "Статическая аренда DHCP уже существует", + "serverNotConfigured": "Сервер не настроен", + "restoreLeases": "Сбросить аренды DHCP", + "restoreLeasesMessage": "Вы уверены, что хотите продолжить? Это приведет к сбросу всех существующих аренд DHCP. Данное действие не может быть отменено.", + "restoringLeases": "Сброс аренд DHCP...", + "leasesRestored": "Аренды DHCP успешно сброшены", + "leasesNotRestored": "Не удалось сбросить аренды DHCP", "dhcpLeases": "Аренды DHCP", "noLeases": "Не найдено аренд DHCP", "dnsRewrites": "Перезапись DNS-запросов", @@ -400,139 +400,139 @@ "deleteDnsRewriteMessage": "Вы уверены, что хотите удалить это правило перезаписи DNS? Данное действие не может быть отменено.", "dnsRewriteRuleDeleted": "Правило перезаписи DNS успешно удалено", "dnsRewriteRuleNotDeleted": "Не удалось удалить правило перезаписи DNS", - "addDnsRewrite": "Правило перезаписи", + "addDnsRewrite": "Добавить правило", "addingRewrite": "Добавление правила перезаписи DNS-запросов...", "dnsRewriteRuleAdded": "Правило перезаписи DNS успешно добавлено", "dnsRewriteRuleNotAdded": "Не удалось добавить правило перезаписи DNS", "logsSettings": "Настройки журнала", "enableLog": "Включить журнал", "clearLogs": "Очистить журнал", - "anonymizeClientIp": "Анонимизировать IP-адрес клиента", + "anonymizeClientIp": "Анонимизировать клиента", "hours6": "6 часов", "days30": "30 дней", "days90": "90 дней", "retentionTime": "Частота ротации журнала запросов", - "selectOneItem": "Select one item", - "logSettingsNotLoaded": "Log settings couldn't be loaded.", - "updatingSettings": "Updating settings...", + "selectOneItem": "Выберите один элемент", + "logSettingsNotLoaded": "Не удалось загрузить настройки журнала.", + "updatingSettings": "Обновление настроек...", "logsConfigUpdated": "Настройки журнала успешно обновлены", - "logsConfigNotUpdated": "Невозможно обновить настройки журнала", + "logsConfigNotUpdated": "Не удалось обновить настройки журнала", "deletingLogs": "Очистка журнала...", "logsCleared": "Журнал успешно очищен", - "logsNotCleared": "Невозможно очистить журнал", + "logsNotCleared": "Не удалось очистить журнал", "runningHomeAssistant": "Запускается на Home Assistant", - "serverError": "Server error", - "noItems": "No items to show here", - "dnsSettings": "DNS settings", - "dnsSettingsDescription": "Configure connection with DNS servers", - "upstreamDns": "Upstream DNS servers", - "bootstrapDns": "Bootstrap DNS servers", - "noUpstreamDns": "No upstream DNS servers added.", - "dnsMode": "DNS mode", - "noDnsMode": "No DNS mode selected", - "loadBalancing": "Load balancing", - "parallelRequests": "Parallel requests", - "fastestIpAddress": "Fastest IP address", - "loadBalancingDescription": "Query one upstream server at a time. AdGuard Home uses its weighted random algorithm to pick the server so that the fastest server is used more often.", - "parallelRequestsDescription": "Use parallel queries to speed up resolving by querying all upstream servers simultaneously.", - "fastestIpAddressDescription": "Query all DNS servers and return the fastest IP address among all responses. This slows down DNS queries as AdGuard Home has to wait for responses from all DNS servers, but improves the overall connectivity.", - "noBootstrapDns": "No bootstrap DNS servers added.", - "bootstrapDnsServersInfo": "Bootstrap DNS servers are used to resolve IP addresses of the DoH/DoT resolvers you specify as upstreams.", - "privateReverseDnsServers": "Private reverse DNS servers", - "privateReverseDnsServersDescription": "The DNS servers that AdGuard Home uses for local PTR queries. These servers are used to resolve PTR requests for addresses in private IP ranges, for example \"192.168.12.34\", using reverse DNS. If not set, AdGuard Home uses the addresses of the default DNS resolvers of your OS except for the addresses of AdGuard Home itself.", - "reverseDnsDefault": "By default, AdGuard Home uses the following reverse DNS resolvers", - "addItem": "Add item", - "noServerAddressesAdded": "No server addresses added.", - "usePrivateReverseDnsResolvers": "Use private reverse DNS resolvers", - "usePrivateReverseDnsResolversDescription": "Perform reverse DNS lookups for locally served addresses using these upstream servers. If disabled, AdGuard Home responds with NXDOMAIN to all such PTR requests except for clients known from DHCP, /etc/hosts, and so on.", - "enableReverseResolving": "Enable reverse resolving of clients' IP addresses", - "enableReverseResolvingDescription": "Reversely resolve clients' IP addresses into their hostnames by sending PTR queries to corresponding resolvers (private DNS servers for local clients, upstream servers for clients with public IP addresses).", - "dnsServerSettings": "AdGuard Home DNS server settings", - "limitRequestsSecond": "Rate limit per second", - "valueNotNumber": "Value is not a number", - "enableEdns": "Enable EDNS client subnet", - "enableEdnsDescription": "Add the EDNS Client Subnet option (ECS) to upstream requests and log the values sent by the clients in the query log.", - "enableDnssec": "Enable DNSSEC", - "enableDnssecDescription": "Set DNSSEC flag in the outcoming DNS queries and check the result (DNSSEC-enabled resolver is required).", - "disableResolvingIpv6": "Disable resolving of IPv6 addresses", - "disableResolvingIpv6Description": "Drop all DNS queries for IPv6 addresses (type AAAA).", - "blockingMode": "Blocking mode", - "defaultMode": "Default", - "defaultDescription": "Respond with zero IP address (0.0.0.0 for A; :: for AAAA) when blocked by Adblock-style rule; respond with the IP address specified in the rule when blocked by /etc/hosts-style rule", - "refusedDescription": "Respond with REFUSED code", - "nxdomainDescription": "Respond with NXDOMAIN code", - "nullIp": "Null IP", - "nullIpDescription": "Respond with zero IP address (0.0.0.0 for A; :: for AAAA)", - "customIp": "Custom IP", - "customIpDescription": "Respond with a manually set IP address", - "dnsCacheConfig": "DNS cache configuration", - "cacheSize": "Cache size", - "inBytes": "In bytes", - "overrideMinimumTtl": "Override minimum TTL", - "overrideMinimumTtlDescription": "Extend short time-to-live values (seconds) received from the upstream server when caching DNS responses.", - "overrideMaximumTtl": "Override maximum TTL", - "overrideMaximumTtlDescription": "Set a maximum time-to-live value (seconds) for entries in the DNS cache.", - "optimisticCaching": "Optimistic caching", - "optimisticCachingDescription": "Make AdGuard Home respond from the cache even when the entries are expired and also try to refresh them.", + "serverError": "Ошибка сервера", + "noItems": "Здесь нет предметов для показа", + "dnsSettings": "Настройки DNS", + "dnsSettingsDescription": "Настройка подключения к DNS-серверам", + "upstreamDns": "Upstream DNS-серверы", + "bootstrapDns": "Bootstrap DNS-серверы", + "noUpstreamDns": "Не добавлены upstream DNS-серверы.", + "dnsMode": "Режим DNS", + "noDnsMode": "Не выбран режим DNS", + "loadBalancing": "Распределение нагрузки", + "parallelRequests": "Параллельные запросы", + "fastestIpAddress": "Самый быстрый IP-адрес", + "loadBalancingDescription": "Запрашивать по одному серверу за раз. AdGuard Home использует алгоритм взвешенного случайного выбора сервера, так что самый быстрый сервер используется чаще.", + "parallelRequestsDescription": "Использовать параллельные запросы ко всем серверам одновременно для ускорения обработки запроса.", + "fastestIpAddressDescription": "Опросить все DNS-серверы и вернуть самый быстрый IP-адрес из полученных ответов. Это замедлит DNS-запросы, так как нужно будет дождаться ответов со всех DNS-серверов, но улучшит соединение.", + "noBootstrapDns": "Не добавлены bootstrap DNS-серверы.", + "bootstrapDnsServersInfo": "Bootstrap DNS-сервера используются для поиска IP-адресов DoH/DoT upstream-серверов, которые вы указали.", + "privateReverseDnsServers": "Приватные серверы для обратного DNS", + "privateReverseDnsServersDescription": "DNS-серверы, которые AdGuard Home использует для локальных PTR-запросов. Эти серверы используются, чтобы получить доменные имена клиентов с приватными IP-адресами, например «192.168.12.34», с помощью обратного DNS. Если список пуст, AdGuard Home использует DNS-серверы по умолчанию вашей ОС.", + "reverseDnsDefault": "По умолчанию AdGuard Home использует следующие обратные DNS-серверы", + "addItem": "Добавить сервер", + "noServerAddressesAdded": "Адреса серверов не указаны.", + "usePrivateReverseDnsResolvers": "Использовать приватные обратные DNS-резолверы", + "usePrivateReverseDnsResolversDescription": "Посылать обратные DNS-запросы для локально обслуживаемых адресов на указанные серверы. Если отключено, AdGuard Home будет отвечать NXDOMAIN на все подобные PTR-запросы, кроме запросов о клиентах, уже известных по DHCP, /etc/hosts и так далее.", + "enableReverseResolving": "Включить запрашивание доменных имён для IP-адресов клиентов", + "enableReverseResolvingDescription": "Определять доменные имена клиентов через PTR-запросы к соответствующим серверам (приватные DNS-серверы для локальных клиентов, upstream-серверы для клиентов с публичным IP-адресом).", + "dnsServerSettings": "Настройки DNS-сервера", + "limitRequestsSecond": "Лимит запросов в секунду", + "valueNotNumber": "Значение - не число", + "enableEdns": "Включить отправку EDNS Client Subnet", + "enableEdnsDescription": "Добавлять опцию EDNS Client Subnet (ECS) к запросам к upstream-серверам, а также записывать присланные клиентами значения в журнал.", + "enableDnssec": "Включить DNSSEC", + "enableDnssecDescription": "Установите флаг DNSSEC в исходящих DNS-запросах и проверьте результат (требуется резолвер с поддержкой DNSSEC).", + "disableResolvingIpv6": "Отключить обработку IPv6-адресов", + "disableResolvingIpv6Description": "Игнорировать все DNS-запросы адресов IPv6 (тип AAAA) и удалять IPv6-данные из ответов типа HTTPS.", + "blockingMode": "Режим блокировки", + "defaultMode": "Стандартный", + "defaultDescription": "Отвечает с нулевым IP-адресом, (0.0.0.0 для A; :: для AAAA) когда заблокировано правилом в стиле Adblock; отвечает с IP-адресом, указанным в правиле, когда заблокировано правилом в стиле файлов hosts", + "refusedDescription": "Отвечает с кодом REFUSED", + "nxdomainDescription": "Отвечает с кодом NXDOMAIN ", + "nullIp": "Нулевой IP", + "nullIpDescription": "Отвечает с нулевым IP-адресом (0.0.0.0 для A; :: для AAAA)", + "customIp": "Пользовательский IP", + "customIpDescription": "Отвечает с вручную настроенным IP-адресом", + "dnsCacheConfig": "Настройка кеша DNS", + "cacheSize": "Размер кеша", + "inBytes": "В байтах", + "overrideMinimumTtl": "Переопределить минимальный TTL", + "overrideMinimumTtlDescription": "Расширить короткие TTL-значения (в секундах), полученные с upstream-сервера при кешировании DNS-ответов.", + "overrideMaximumTtl": "Переопределить максимальный TTL", + "overrideMaximumTtlDescription": "Установить максимальное TTL-значение (в секундах) для записей в DNS-кеше.", + "optimisticCaching": "Оптимистическое кеширование", + "optimisticCachingDescription": "AdGuard Home будет отвечать из кеша, даже если ответы в нём неактуальны, и попытается обновить их.", "loadingDnsConfig": "Загрузка конфигурации DNS...", - "dnsConfigNotLoaded": "DNS config could not be loaded.", - "blockingIpv4": "Blocking IPv4", - "blockingIpv4Description": "IP address to be returned for a blocked A request", - "blockingIpv6": "Blocking IPv6", - "blockingIpv6Description": "IP address to be returned for a blocked AAAA request", - "invalidIp": "Invalid IP address", - "dnsConfigSaved": "DNS server configuration saved successfully", - "dnsConfigNotSaved": "The DNS server configuration could not be saved", - "savingConfig": "Saving configuration...", - "someValueNotValid": "Some value is not valid", - "upstreamDnsDescription": "Configure upstream servers and DNS mode", - "bootstrapDnsDescription": "Configure the bootstrap DNS servers", - "privateReverseDnsDescription": "Configure custom DNS resolvers and enable private reverse DNS resolving", - "dnsServerSettingsDescription": "Configure a rate limit, the blocking mode and more", - "dnsCacheConfigDescription": "Configure how the server should manage the DNS cache", - "comment": "Comment", - "address": "Address", - "commentsDescription": "Comments are always preceded by #. You don't have to add it, it will be added automatically.", - "encryptionSettings": "Encryption settings", - "encryptionSettingsDescription": "Encryption (HTTPS/QUIC/TLS) support", + "dnsConfigNotLoaded": "Не удалось загрузить конфигурацию DNS.", + "blockingIpv4": "Блокируется IPv4", + "blockingIpv4Description": "IP-адрес, который будет возвращен для заблокированного запроса А", + "blockingIpv6": "Блокируется IPv6", + "blockingIpv6Description": "IP-адрес, который будет возвращен для заблокированного запроса AAAA", + "invalidIp": "Недопустимый IP-адрес", + "dnsConfigSaved": "Конфигурация DNS-сервера сохранена успешно", + "dnsConfigNotSaved": "Не удалось сохранить конфигурацию DNS-сервера", + "savingConfig": "Сохранение конфигурации...", + "someValueNotValid": "Некоторое значение недопустимо", + "upstreamDnsDescription": "Настройка upstream DNS-серверов и режима DNS", + "bootstrapDnsDescription": "Настройка bootstrap DNS-серверов", + "privateReverseDnsDescription": "Настройка пользовательских DNS-серверов и приватных серверы для обратного DNS", + "dnsServerSettingsDescription": "Настройка ограничения на количество запросов, режима блокировки и многое другое", + "dnsCacheConfigDescription": "Настройка, как сервер должен управлять кэшем DNS", + "comment": "Комментарий", + "address": "Адрес", + "commentsDescription": "Комментариям всегда предшествует #. Вам не обязательно добавлять его, он будет добавлен автоматически.", + "encryptionSettings": "Настройки шифрования", + "encryptionSettingsDescription": "Поддержка шифрования (HTTPS/QUIC/TLS)", "loadingEncryptionSettings": "Загрузка настроек шифрования...", - "encryptionSettingsNotLoaded": "Encryption settings couldn't be loaded.", - "enableEncryption": "Enable encryption", - "enableEncryptionTypes": "HTTPS, DNS-over-HTTPS, and DNS-over-TLS", - "enableEncryptionDescription": "If encryption is enabled, AdGuard Home admin interface will work over HTTPS, and the DNS server will listen for requests over DNS-over-HTTPS and DNS-over-TLS.", - "serverConfiguration": "Server configuration", - "domainName": "Domain name", - "domainNameDescription": "If set, AdGuard Home detects ClientIDs, responds to DDR queries, and performs additional connection validations. If not set, these features are disabled. Must match one of the DNS Names in the certificate.", - "redirectHttps": "Redirect to HTTPS automatically", - "httpsPort": "HTTPS port", - "tlsPort": "DNS-over-TLS port", - "dnsOverQuicPort": "DNS-over-QUIC port", - "certificates": "Certificates", - "certificatesDescription": "In order to use encryption, you need to provide a valid SSL certificates chain for your domain. You can get a free certificate on letsencrypt.org or you can buy it from one of the trusted Certificate Authorities.", - "certificateFilePath": "Set a certificates file path", - "pasteCertificateContent": "Paste the certificates contents", - "certificatePath": "Certificate path", - "certificateContent": "Certificate content", - "privateKey": "Private key", - "privateKeyFile": "Set a private key file", - "pastePrivateKey": "Paste the private key contents", - "usePreviousKey": "Use the previously saved key", - "privateKeyPath": "Private key path", - "invalidCertificate": "Invalid certificate", - "invalidPrivateKey": "Invalid private key", - "validatingData": "Validating data", - "dataValid": "Data is valid", - "dataNotValid": "Data not valid", - "encryptionConfigSaved": "Encryption configuration saved successfully", - "encryptionConfigNotSaved": "Encryption configuration could not be saved", - "configError": "Configuration error", - "enterOnlyCertificate": "Enter only the certificate. Do not input the ---BEGIN--- and ---END--- lines.", - "enterOnlyPrivateKey": "Enter only the key. Do not input the ---BEGIN--- and ---END--- lines.", - "noItemsSearch": "No items for that search.", - "clearSearch": "Clear search", - "exitSearch": "Exit search", - "searchClients": "Search clients", - "noClientsSearch": "No clients with that search.", + "encryptionSettingsNotLoaded": "Не удалось загрузить настройки шифрования.", + "enableEncryption": "Включить шифрование", + "enableEncryptionTypes": "HTTPS, DNS-over-HTTPS и DNS-over-TLS", + "enableEncryptionDescription": "Если порт HTTPS настроен, веб-интерфейс администрирования AdGuard Home будет доступен через HTTPS, а также DNS-over-HTTPS сервер будет доступен по пути '/dns-query'.", + "serverConfiguration": "Конфигурация сервера", + "domainName": "Доменное имя", + "domainNameDescription": "Если задано, AdGuard Home распознаёт ClientID, отвечает на DDR-запросы, и дополнительно проверяет соединения. Если не задано, этот функционал отключён. Должно соответствовать одному из параметров DNS Names в сертификате.", + "redirectHttps": "Автоматически перенаправлять на HTTPS", + "httpsPort": "Порт HTTPS", + "tlsPort": "Порт DNS-over-TLS", + "dnsOverQuicPort": "Порт DNS-over-QUIC", + "certificates": "Сертификаты", + "certificatesDescription": "Для использования шифрования вам необходимо предоставить корректную цепочку SSL-сертификатов для вашего домена. Вы можете получить бесплатный сертификат на letsencrypt.org или вы можете купить его у одного из доверенных Центров Сертификации.", + "certificateFilePath": "Указать путь к файлу сертификатов", + "pasteCertificateContent": "Вставить содержимое сертификатов", + "certificatePath": "Путь к сертификату", + "certificateContent": "Содержимое сертификата", + "privateKey": "Закрытый ключ", + "privateKeyFile": "Указать файл закрытого ключа", + "pastePrivateKey": "Вставить содержимое закрытого ключа", + "usePreviousKey": "Использовать сохранённый ранее ключ", + "privateKeyPath": "Путь к закрытому ключу", + "invalidCertificate": "Цепочка сертификатов не прошла проверку", + "invalidPrivateKey": "Некорректный приватный ключ", + "validatingData": "Проверка данных", + "dataValid": "Данные действительны", + "dataNotValid": "Недопустимые данные", + "encryptionConfigSaved": "Настройки шифрования успешно сохранены", + "encryptionConfigNotSaved": "Не удаётся сохранить настройки шифрования", + "configError": "Ошибка конфигурации", + "enterOnlyCertificate": "Введите только сертификат. Не вводите строки ---BEGIN--- и ---END---.", + "enterOnlyPrivateKey": "Введите только ключ. Не вводите строки ---BEGIN--- и ---END---.", + "noItemsSearch": "Ничего не найдено по данному запросу.", + "clearSearch": "Очистить поиск", + "exitSearch": "Покинуть поиск", + "searchClients": "Поиск клиентов", + "noClientsSearch": "Не найдено клиентов по данному запросу.", "customization": "Персонализация", "customizationDescription": "Настройте внешний вид приложения", "color": "Цветовая тема", @@ -550,48 +550,48 @@ "indigo": "Индиго", "useThemeColorStatus": "Использовать цвет темы для обозначения статуса", "useThemeColorStatusDescription": "Заменяет зеленый и красный цвета статуса цветом темы и серым", - "invalidCertificateChain": "Недопустимая цепочка сертификатов", + "invalidCertificateChain": "Цепочка сертификатов не прошла проверку", "validCertificateChain": "Действительная цепочка сертификатов", - "subject": "Subject", - "issuer": "Issuer", - "expires": "Expires", - "validPrivateKey": "Valid private key", - "expirationDate": "Expiration date", - "keysNotMatch": "Invalid certificate or key: tls: private key does not match public key", + "subject": "Субъект", + "issuer": "Издатель", + "expires": "Истекает", + "validPrivateKey": "Действительный закрытый ключ", + "expirationDate": "Истекает", + "keysNotMatch": "Недействительный сертификат или ключ: tls: закрытый ключ не соответствует открытому ключу", "timeLogs": "Время в записях журнала", "timeLogsDescription": "Показывать время обработки в журнале", - "hostNames": "Host names", - "keyType": "Key type", - "updateAvailable": "Update available", - "installedVersion": "Installed version", - "newVersion": "New version", - "source": "Source", - "downloadUpdate": "Download update", - "download": "Download", - "doNotRememberAgainUpdate": "Do not remember again for this version", + "hostNames": "Имена хостов", + "keyType": "Тип ключа", + "updateAvailable": "Доступно обновление", + "installedVersion": "Установленная версия", + "newVersion": "Новая версия", + "source": "Источник", + "downloadUpdate": "Загрузить обновление", + "download": "Скачать", + "doNotRememberAgainUpdate": "Не запоминать снова для этой версии", "downloadingUpdate": "Скачивание", - "completed": "completed", - "permissionNotGranted": "Permission not granted", - "inputSearchTerm": "Input a search term.", - "answers": "Answers", - "copyClipboard": "Copy to clipboard", - "domainCopiedClipboard": "Domain copied to the clipboard", - "clearDnsCache": "Clear DNS cache", - "clearDnsCacheMessage": "Are you sure you want to clear the DNS cache?", - "dnsCacheCleared": "DNS cache cleared successfully", - "clearingDnsCache": "Clearing cache...", - "dnsCacheNotCleared": "DNS cache couldn't be cleared", - "clientsSelected": "clients selected", - "invalidDomain": "Invalid domain", + "completed": "завершено", + "permissionNotGranted": "Разрешение не предоставлено", + "inputSearchTerm": "Введите поисковый запрос.", + "answers": "Ответы", + "copyClipboard": "Скопировать в буфер обмена", + "domainCopiedClipboard": "Домен скопирован в буфер обмена", + "clearDnsCache": "Очистить кэш DNS", + "clearDnsCacheMessage": "Вы уверены, что хотите очистить кэш DNS?", + "dnsCacheCleared": "Кэш DNS очищен успешно", + "clearingDnsCache": "Очистка кэша...", + "dnsCacheNotCleared": "Не удалось очистить кэш DNS", + "clientsSelected": "выбранные клиенты", + "invalidDomain": "Недопустимый домен", "loadingBlockedServicesList": "Загрузка списка заблокированных сервисов...", - "blockedServicesListNotLoaded": "The blocked services list could not be loaded", + "blockedServicesListNotLoaded": "Не удалось загрузить список заблокированных служб", "error": "Ошибка", "updates": "Обновления", "updatesDescription": "Обновить AdGuard Home server", "updateNow": "Обновить сейчас", "currentVersion": "Текущая версия", - "requestStartUpdateFailed": "Request to start update failed", - "requestStartUpdateSuccessful": "Request to start update successfull", + "requestStartUpdateFailed": "Не удалось выполнить запрос на запуск обновления", + "requestStartUpdateSuccessful": "Запрос на запуск обновления успешен", "serverUpdated": "Сервер обновлён", "unknownStatus": "Неизвестный статус", "checkingUpdates": "Проверка обновлений..", @@ -608,16 +608,16 @@ "loadingSafeSearchSettings": "Загрузка настроек безопасного поиска...", "safeSearchSettingsNotLoaded": "Ошибка при загрузке настроек безопасного поиска.", "loadingLogsSettings": "Загрузка настроек журнала...", - "selectOptionLeftColumn": "Select an option of the left column", - "selectClientLeftColumn": "Select a client of the left column", - "disableList": "Disable list", - "enableList": "Enable list", - "screens": "Screens", - "copiedClipboard": "Copied to clipboard", - "seeDetails": "See details", - "listNotAvailable": "List not available", - "copyListUrl": "Copy list URL", - "listUrlCopied": "List URL copied to the clipboard", + "selectOptionLeftColumn": "Выберите опцию в левой колонке", + "selectClientLeftColumn": "Выберите клиента в левой колонке", + "disableList": "Отключить список", + "enableList": "Включить список", + "screens": "Экраны", + "copiedClipboard": "Скопировано в буфер обмена", + "seeDetails": "Смотрите подробности", + "listNotAvailable": "Список недоступен", + "copyListUrl": "Скопировать URL", + "listUrlCopied": "URL списка сохранён в буфер обмена", "unsupportedVersion": "Неподдерживаемая версия", "unsupprtedVersionMessage": "Поддержка сервера версии {version} не гарантируется. Приложение может работать нестабильно с данной версией сервера.\n\nПриложение AdGuard Home Manager предназначено для работы со стабильными версиями сервера AdGuard Home. Приложение может работать с альфа и бета версиями сервера, но совместимость и стабильность не гарантируются.", "iUnderstand": "Продолжить", @@ -633,7 +633,7 @@ "clientRemovedSuccessfully": "Запись успешно удалена", "editRewriteRule": "Редактировать правило", "dnsRewriteRuleUpdated": "Правило перезаписи DNS успешно обновлено", - "dnsRewriteRuleNotUpdated": "Невозможно обновить правило перезаписи DNS", + "dnsRewriteRuleNotUpdated": "Не удалось обновить правило перезаписи DNS", "updatingRule": "Обновление правила...", "serverUpdateNeeded": "Требуется обновление сервера", "updateYourServer": "Обновите сервер AdGuard Home до версии {version} или выше, чтобы использовать эту функцию.", From 8e1dd6e22e4e86e974e898e3b905d2f893157f71 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 1 Dec 2023 02:03:13 +0100 Subject: [PATCH 004/236] Improved settings --- lib/screens/settings/settings.dart | 143 +++++++++++++++++------------ 1 file changed, 85 insertions(+), 58 deletions(-) diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index 8d5f384..8edbc11 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -32,7 +32,7 @@ import 'package:adguard_home_manager/providers/servers_provider.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; class Settings extends StatelessWidget { - const Settings({Key? key}) : super(key: key); + const Settings({super.key}); @override Widget build(BuildContext context) { @@ -55,13 +55,13 @@ class Settings extends StatelessWidget { ), ), ), - child: const SettingsWidget( + child: const _SettingsWidget( twoColumns: true, ), ); } else { - return const SettingsWidget( + return const _SettingsWidget( twoColumns: false, ); } @@ -69,19 +69,18 @@ class Settings extends StatelessWidget { ); } } -class SettingsWidget extends StatefulWidget { +class _SettingsWidget extends StatefulWidget { final bool twoColumns; - const SettingsWidget({ - Key? key, + const _SettingsWidget({ required this.twoColumns, - }) : super(key: key); + }); @override - State createState() => _SettingsWidgetState(); + State<_SettingsWidget> createState() => _SettingsWidgetState(); } -class _SettingsWidgetState extends State { +class _SettingsWidgetState extends State<_SettingsWidget> { @override void initState() { Provider.of(context, listen: false).setSelectedSettingsScreen(screen: null); @@ -100,43 +99,6 @@ class _SettingsWidgetState extends State { appConfigProvider.setSelectedSettingsScreen(screen: null); } - Widget settingsTile({ - required String title, - required String subtitle, - required IconData icon, - Widget? trailing, - required Widget screenToNavigate, - required int thisItem - }) { - if (widget.twoColumns) { - return CustomSettingsTile( - title: title, - subtitle: subtitle, - icon: icon, - trailing: trailing, - thisItem: thisItem, - selectedItem: appConfigProvider.selectedSettingsScreen, - onTap: () { - appConfigProvider.setSelectedSettingsScreen(screen: thisItem, notify: true); - SplitView.of(context).setSecondary(screenToNavigate); - }, - ); - } - else { - return CustomListTile( - title: title, - subtitle: subtitle, - icon: icon, - trailing: trailing, - onTap: () { - Navigator.of(context).push( - MaterialPageRoute(builder: (context) => screenToNavigate) - ); - }, - ); - } - } - return Scaffold( body: NestedScrollView( headerSliverBuilder: (context, innerBoxIsScrolled) => [ @@ -169,28 +131,31 @@ class _SettingsWidgetState extends State { serversProvider.apiClient2 != null ) ...[ SectionLabel(label: AppLocalizations.of(context)!.serverSettings), - settingsTile( + _SettingsTile( icon: Icons.search_rounded, title: AppLocalizations.of(context)!.safeSearch, subtitle: AppLocalizations.of(context)!.safeSearchSettings, thisItem: 0, screenToNavigate: const SafeSearchSettingsScreen(), + twoColumns: widget.twoColumns, ), - settingsTile( + _SettingsTile( icon: Icons.lock_rounded, title: AppLocalizations.of(context)!.accessSettings, subtitle: AppLocalizations.of(context)!.accessSettingsDescription, thisItem: 1, screenToNavigate: const AccessSettings(), + twoColumns: widget.twoColumns, ), - settingsTile( + _SettingsTile( icon: Icons.install_desktop_rounded, title: AppLocalizations.of(context)!.dhcpSettings, subtitle: AppLocalizations.of(context)!.dhcpSettingsDescription, thisItem: 2, screenToNavigate: const DhcpScreen(), + twoColumns: widget.twoColumns, ), - settingsTile( + _SettingsTile( icon: Icons.dns_rounded, title: AppLocalizations.of(context)!.dnsSettings, subtitle: AppLocalizations.of(context)!.dnsSettingsDescription, @@ -198,22 +163,25 @@ class _SettingsWidgetState extends State { screenToNavigate: DnsSettings( splitView: widget.twoColumns, ), + twoColumns: widget.twoColumns, ), - settingsTile( + _SettingsTile( icon: Icons.security_rounded, title: AppLocalizations.of(context)!.encryptionSettings, subtitle: AppLocalizations.of(context)!.encryptionSettingsDescription, thisItem: 4, screenToNavigate: const EncryptionSettings(), + twoColumns: widget.twoColumns, ), - settingsTile( + _SettingsTile( icon: Icons.route_rounded, title: AppLocalizations.of(context)!.dnsRewrites, subtitle: AppLocalizations.of(context)!.dnsRewritesDescription, thisItem: 5, screenToNavigate: const DnsRewritesScreen(), + twoColumns: widget.twoColumns, ), - if (serversProvider.updateAvailable.data != null) settingsTile( + if (serversProvider.updateAvailable.data != null) _SettingsTile( icon: Icons.system_update_rounded, title: AppLocalizations.of(context)!.updates, subtitle: AppLocalizations.of(context)!.updatesDescription, @@ -231,24 +199,27 @@ class _SettingsWidgetState extends State { : null, thisItem: 6, screenToNavigate: const UpdateScreen(), + twoColumns: widget.twoColumns, ), - settingsTile( + _SettingsTile( icon: Icons.info_rounded, title: AppLocalizations.of(context)!.serverInformation, subtitle: AppLocalizations.of(context)!.serverInformationDescription, thisItem: 7, screenToNavigate: const ServerInformation(), + twoColumns: widget.twoColumns, ), ], SectionLabel(label: AppLocalizations.of(context)!.appSettings), - settingsTile( + _SettingsTile( icon: Icons.palette_rounded, title: AppLocalizations.of(context)!.customization, subtitle: AppLocalizations.of(context)!.customizationDescription, thisItem: 8, screenToNavigate: const Customization(), + twoColumns: widget.twoColumns, ), - settingsTile( + _SettingsTile( icon: Icons.storage_rounded, title: AppLocalizations.of(context)!.servers, subtitle: serversProvider.selectedServer != null @@ -258,20 +229,23 @@ class _SettingsWidgetState extends State { : AppLocalizations.of(context)!.noServerSelected, thisItem: 9, screenToNavigate: const Servers(), + twoColumns: widget.twoColumns, ), - settingsTile( + _SettingsTile( icon: Icons.settings, title: AppLocalizations.of(context)!.generalSettings, subtitle: AppLocalizations.of(context)!.generalSettingsDescription, thisItem: 10, screenToNavigate: const GeneralSettings(), + twoColumns: widget.twoColumns, ), - settingsTile( + _SettingsTile( icon: Icons.build_outlined, title: AppLocalizations.of(context)!.advancedSettings, subtitle: AppLocalizations.of(context)!.advancedSetupDescription, thisItem: 11, screenToNavigate: const AdvancedSettings(), + twoColumns: widget.twoColumns, ), SectionLabel(label: AppLocalizations.of(context)!.aboutApp), CustomListTile( @@ -319,4 +293,57 @@ class _SettingsWidgetState extends State { ) ); } +} + +class _SettingsTile extends StatelessWidget { + final String title; + final String subtitle; + final IconData icon; + final Widget? trailing; + final Widget screenToNavigate; + final int thisItem; + final bool twoColumns; + + const _SettingsTile({ + required this.title, + required this.subtitle, + required this.icon, + this.trailing, + required this.screenToNavigate, + required this.thisItem, + required this.twoColumns + }); + + @override + Widget build(BuildContext context) { + final appConfigProvider = Provider.of(context); + + if (twoColumns) { + return CustomSettingsTile( + title: title, + subtitle: subtitle, + icon: icon, + trailing: trailing, + thisItem: thisItem, + selectedItem: appConfigProvider.selectedSettingsScreen, + onTap: () { + appConfigProvider.setSelectedSettingsScreen(screen: thisItem, notify: true); + SplitView.of(context).setSecondary(screenToNavigate); + }, + ); + } + else { + return CustomListTile( + title: title, + subtitle: subtitle, + icon: icon, + trailing: trailing, + onTap: () { + Navigator.of(context).push( + MaterialPageRoute(builder: (context) => screenToNavigate) + ); + }, + ); + } + } } \ No newline at end of file From b42306cde361953a6b793ab15a6f7219fc94a171 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 1 Dec 2023 02:14:12 +0100 Subject: [PATCH 005/236] Fixed screen change desktop mode reorder items screen --- .../general_settings/general_settings.dart | 20 ++- .../reorderable_top_items_home.dart | 142 +++++++----------- lib/screens/settings/settings.dart | 2 +- 3 files changed, 66 insertions(+), 98 deletions(-) diff --git a/lib/screens/settings/general_settings/general_settings.dart b/lib/screens/settings/general_settings/general_settings.dart index 4625136..20e13e8 100644 --- a/lib/screens/settings/general_settings/general_settings.dart +++ b/lib/screens/settings/general_settings/general_settings.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; +import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:store_checker/store_checker.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -20,7 +21,12 @@ import 'package:adguard_home_manager/functions/app_update_download_link.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; class GeneralSettings extends StatefulWidget { - const GeneralSettings({Key? key}) : super(key: key); + final bool splitView; + + const GeneralSettings({ + super.key, + required this.splitView, + }); @override State createState() => _GeneralSettingsState(); @@ -191,11 +197,13 @@ class _GeneralSettingsState extends State { icon: Icons.reorder_rounded, title: AppLocalizations.of(context)!.topItemsOrder, subtitle: AppLocalizations.of(context)!.topItemsOrderDescription, - onTap: () => Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => const ReorderableTopItemsHome() - ) - ) + onTap: () => widget.splitView == true + ? SplitView.of(context).push(const ReorderableTopItemsHome()) + : Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => const ReorderableTopItemsHome() + ) + ) ), CustomListTile( icon: Icons.donut_large_rounded, diff --git a/lib/screens/settings/general_settings/reorderable_top_items_home.dart b/lib/screens/settings/general_settings/reorderable_top_items_home.dart index 2b7bfe1..9d5e8ed 100644 --- a/lib/screens/settings/general_settings/reorderable_top_items_home.dart +++ b/lib/screens/settings/general_settings/reorderable_top_items_home.dart @@ -136,42 +136,6 @@ class _ReorderableTopItemsHomeState extends State { } } - Future onWillPopScope(bool popInvoked) async { - if (!listEquals(appConfigProvider.homeTopItemsOrder, persistHomeTopItemsList)) { - await showDialog( - context: context, - useRootNavigator: false, - builder: (ctx) => AlertDialog( - title: Text(AppLocalizations.of(context)!.discardChanges), - content: Text(AppLocalizations.of(context)!.discardChangesDescription), - actions: [ - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - TextButton( - onPressed: () { - Navigator.pop(context); - Navigator.pop(context); - }, - child: Text(AppLocalizations.of(context)!.confirm) - ), - const SizedBox(width: 8), - TextButton( - onPressed: () => Navigator.pop(context), - child: Text(AppLocalizations.of(context)!.cancel) - ), - ], - ) - ], - ) - ); - return false; - } - else { - return true; - } - } - void saveSettings() async { final result = await appConfigProvider.setHomeTopItemsOrder(homeTopItemsList); if (result == true) { @@ -190,64 +154,60 @@ class _ReorderableTopItemsHomeState extends State { } } - return PopScope( - canPop: listEquals(appConfigProvider.homeTopItemsOrder, persistHomeTopItemsList), - onPopInvoked: onWillPopScope, - child: Scaffold( - appBar: AppBar( - title: Text(AppLocalizations.of(context)!.topItemsOrder), - surfaceTintColor: isDesktop(width) ? Colors.transparent : null, - actions: [ - IconButton( - onPressed: !listEquals(appConfigProvider.homeTopItemsOrder, persistHomeTopItemsList) - ? () => saveSettings() - : null, - icon: const Icon(Icons.save_rounded), - tooltip: AppLocalizations.of(context)!.save, - ), - const SizedBox(width: 8) - ], - ), - body: Column( - children: [ - Card( - margin: const EdgeInsets.all(16), - child: Padding( - padding: const EdgeInsets.all(16), - child: Row( - children: [ - Icon( - Icons.info_rounded, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - const SizedBox(width: 16), - Flexible( - child: Text(AppLocalizations.of(context)!.topItemsReorderInfo) - ) - ], - ), - ), - ), - Expanded( - child: reorderable_list_library.ReorderableList( - onReorder: _reorderCallback, - onReorderDone: _reorderDone, - child: ListView.builder( - itemBuilder: (context, index) => reorderable_list_library.ReorderableItem( - key: renderItems[index].key, - childBuilder: (context, state) => _Item( - tileWidget: tile(renderItems[index].title), - isFirst: index == 0, - isLast: index == renderItems.length - 1, - state: state - ), + return Scaffold( + appBar: AppBar( + title: Text(AppLocalizations.of(context)!.topItemsOrder), + surfaceTintColor: isDesktop(width) ? Colors.transparent : null, + actions: [ + IconButton( + onPressed: !listEquals(appConfigProvider.homeTopItemsOrder, persistHomeTopItemsList) + ? () => saveSettings() + : null, + icon: const Icon(Icons.save_rounded), + tooltip: AppLocalizations.of(context)!.save, + ), + const SizedBox(width: 8) + ], + ), + body: Column( + children: [ + Card( + margin: const EdgeInsets.all(16), + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.info_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, ), - itemCount: renderItems.length, - ) + const SizedBox(width: 16), + Flexible( + child: Text(AppLocalizations.of(context)!.topItemsReorderInfo) + ) + ], ), ), - ], - ), + ), + Expanded( + child: reorderable_list_library.ReorderableList( + onReorder: _reorderCallback, + onReorderDone: _reorderDone, + child: ListView.builder( + itemBuilder: (context, index) => reorderable_list_library.ReorderableItem( + key: renderItems[index].key, + childBuilder: (context, state) => _Item( + tileWidget: tile(renderItems[index].title), + isFirst: index == 0, + isLast: index == renderItems.length - 1, + state: state + ), + ), + itemCount: renderItems.length, + ) + ), + ), + ], ), ); } diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index 8edbc11..6efdd9b 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -236,7 +236,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { title: AppLocalizations.of(context)!.generalSettings, subtitle: AppLocalizations.of(context)!.generalSettingsDescription, thisItem: 10, - screenToNavigate: const GeneralSettings(), + screenToNavigate: GeneralSettings(splitView: widget.twoColumns), twoColumns: widget.twoColumns, ), _SettingsTile( From ac6e8f700035fc969d9c3c769c8afa21f5f5657b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 1 Dec 2023 02:45:17 +0100 Subject: [PATCH 006/236] Improved reorderable list --- .../reorderable_top_items_home.dart | 150 +++++++++++------- 1 file changed, 91 insertions(+), 59 deletions(-) diff --git a/lib/screens/settings/general_settings/reorderable_top_items_home.dart b/lib/screens/settings/general_settings/reorderable_top_items_home.dart index 9d5e8ed..46e3a58 100644 --- a/lib/screens/settings/general_settings/reorderable_top_items_home.dart +++ b/lib/screens/settings/general_settings/reorderable_top_items_home.dart @@ -1,9 +1,9 @@ -// ignore_for_file: use_build_context_synchronously +import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:flutter_reorderable_list/flutter_reorderable_list.dart' as reorderable_list_library; +import 'package:flutter_reorderable_list/flutter_reorderable_list.dart' as reorderable_list; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; @@ -138,6 +138,7 @@ class _ReorderableTopItemsHomeState extends State { void saveSettings() async { final result = await appConfigProvider.setHomeTopItemsOrder(homeTopItemsList); + if (!mounted) return; if (result == true) { showSnacbkar( appConfigProvider: appConfigProvider, @@ -153,6 +154,10 @@ class _ReorderableTopItemsHomeState extends State { ); } } + + final draggingMode = Platform.isAndroid + ? DraggingMode.android + : DraggingMode.iOS; return Scaffold( appBar: AppBar( @@ -190,18 +195,34 @@ class _ReorderableTopItemsHomeState extends State { ), ), Expanded( - child: reorderable_list_library.ReorderableList( + child: reorderable_list.ReorderableList( onReorder: _reorderCallback, onReorderDone: _reorderDone, child: ListView.builder( - itemBuilder: (context, index) => reorderable_list_library.ReorderableItem( + itemBuilder: (context, index) => reorderable_list.ReorderableItem( key: renderItems[index].key, - childBuilder: (context, state) => _Item( - tileWidget: tile(renderItems[index].title), - isFirst: index == 0, - isLast: index == renderItems.length - 1, - state: state - ), + childBuilder: (context, state) { + if (draggingMode == DraggingMode.android) { + return reorderable_list.DelayedReorderableListener( + child: _Tile( + draggingMode: draggingMode, + isFirst: index == 0, + isLast: index == renderItems.length - 1, + state: state, + tileWidget: tile(renderItems[index].title), + ), + ); + } + else { + return _Tile( + draggingMode: draggingMode, + isFirst: index == 0, + isLast: index == renderItems.length - 1, + state: state, + tileWidget: tile(renderItems[index].title), + ); + } + }, ), itemCount: renderItems.length, ) @@ -213,68 +234,79 @@ class _ReorderableTopItemsHomeState extends State { } } -class _Item extends StatelessWidget { +class _Tile extends StatelessWidget { final Widget tileWidget; final bool isFirst; final bool isLast; - final reorderable_list_library.ReorderableItemState state; + final reorderable_list.ReorderableItemState state; + final DraggingMode draggingMode; - const _Item({ + const _Tile({ required this.tileWidget, required this.isFirst, required this.isLast, required this.state, + required this.draggingMode }); @override Widget build(BuildContext context) { - BoxDecoration decoration; - - if ( - state == reorderable_list_library.ReorderableItemState.dragProxy || - state == reorderable_list_library.ReorderableItemState.dragProxyFinished - ) { - decoration = BoxDecoration( - color: Theme.of(context).colorScheme.surface.withOpacity(0.7) - ); - } - else { - bool placeholder = state == reorderable_list_library.ReorderableItemState.placeholder; - decoration = BoxDecoration( - border: Border( - top: isFirst && !placeholder ? BorderSide( - width: 1, - color: Theme.of(context).colorScheme.primary.withOpacity(0.1) - ) : BorderSide.none, - bottom: isLast && placeholder ? BorderSide.none : BorderSide( - width: 1, - color: Theme.of(context).colorScheme.primary.withOpacity(0.1) - ), - ), - ); - } - - return reorderable_list_library.DelayedReorderableListener( - child: Container( - decoration: decoration, - child: SafeArea( - top: false, - bottom: false, - child: Opacity( - opacity: state == reorderable_list_library.ReorderableItemState.placeholder ? 0.0 : 1.0, - child: IntrinsicHeight( - child: Row( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - Expanded( - child: tileWidget - ), - ], - ), + BoxDecoration getDecoration() { + if ( + state == reorderable_list.ReorderableItemState.dragProxy || + state == reorderable_list.ReorderableItemState.dragProxyFinished + ) { + return BoxDecoration( + color: Theme.of(context).colorScheme.surface.withOpacity(0.7) + ); + } + else { + bool placeholder = state == reorderable_list.ReorderableItemState.placeholder; + return BoxDecoration( + border: Border( + top: isFirst && !placeholder ? BorderSide( + width: 1, + color: Theme.of(context).colorScheme.primary.withOpacity(0.1) + ) : BorderSide.none, + bottom: isLast && placeholder ? BorderSide.none : BorderSide( + width: 1, + color: Theme.of(context).colorScheme.primary.withOpacity(0.1) ), - ) - ), - ) + ), + ); + } + } + + return Container( + decoration: getDecoration(), + child: SafeArea( + top: false, + bottom: false, + child: Opacity( + opacity: state == reorderable_list.ReorderableItemState.placeholder ? 0.0 : 1.0, + child: IntrinsicHeight( + child: Row( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Expanded( + child: tileWidget + ), + if (draggingMode == DraggingMode.iOS) reorderable_list.ReorderableListener( + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Center( + child: Icon( + Icons.reorder, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), + ), + ) + ], + ), + ), + ) + ), ); } } \ No newline at end of file From 1f74da906a5544ea2764ee9b563fa2b733650695 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 1 Dec 2023 02:50:55 +0100 Subject: [PATCH 007/236] Fix --- lib/screens/filters/list_options_menu.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/screens/filters/list_options_menu.dart b/lib/screens/filters/list_options_menu.dart index 4cb6865..32e4610 100644 --- a/lib/screens/filters/list_options_menu.dart +++ b/lib/screens/filters/list_options_menu.dart @@ -56,7 +56,8 @@ class ListOptionsMenu extends StatelessWidget { ); processModal.close(); - + + if (!context.mounted) return; if (result == true) { showSnacbkar( appConfigProvider: appConfigProvider, From 2511ac2c24c2d6b52eaf9ad21681d782193867ef Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 1 Dec 2023 02:52:10 +0100 Subject: [PATCH 008/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index c769999..32d01fc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.12.2+113 +version: 2.12.3+114 environment: sdk: '>=2.18.1 <3.0.0' From 83ea5891876f4d690c579ab361cc8d981dec97a5 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 8 Dec 2023 20:43:45 +0100 Subject: [PATCH 009/236] Support AGH without DHCP server --- lib/l10n/app_en.arb | 4 +- lib/l10n/app_es.arb | 4 +- lib/models/dhcp.dart | 4 +- lib/providers/dhcp_provider.dart | 4 +- lib/screens/settings/dhcp/dhcp.dart | 418 +++++++----------- .../settings/dhcp/dhcp_main_button.dart | 76 ++++ .../settings/dhcp/dhcp_not_available.dart | 47 ++ lib/services/api_client.dart | 7 +- lib/services/http_requests.dart | 1 + 9 files changed, 291 insertions(+), 274 deletions(-) create mode 100644 lib/screens/settings/dhcp/dhcp_main_button.dart create mode 100644 lib/screens/settings/dhcp/dhcp_not_available.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index b9ba629..fb875cc 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -688,5 +688,7 @@ "yourVersion": "Your version: {version}", "minimumRequiredVersion": "Minimum required version: {version}", "topUpstreams": "Top upstreams", - "averageUpstreamResponseTime": "Average upstream response time" + "averageUpstreamResponseTime": "Average upstream response time", + "dhcpNotAvailable": "The DHCP server is not available.", + "osServerInstalledIncompatible": "The OS where the server is installed is not compatible with this feature." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 0e1566c..cf328dc 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -688,5 +688,7 @@ "yourVersion": "Tu versión: {version}", "minimumRequiredVersion": "Versión mínima requerida: {version}", "topUpstreams": "DNS de subida más frecuentes", - "averageUpstreamResponseTime": "Tiempo promedio de respuesta upstream" + "averageUpstreamResponseTime": "Tiempo promedio de respuesta upstream", + "dhcpNotAvailable": "El servidor DHCP no está disponible.", + "osServerInstalledIncompatible": "El SO donde el servidor está instalado no es compatible con esta característica." } \ No newline at end of file diff --git a/lib/models/dhcp.dart b/lib/models/dhcp.dart index 21b460b..9e7f7ca 100644 --- a/lib/models/dhcp.dart +++ b/lib/models/dhcp.dart @@ -1,9 +1,11 @@ import 'dart:convert'; class DhcpModel { + bool dhcpAvailable; List networkInterfaces; - DhcpStatus dhcpStatus; + DhcpStatus? dhcpStatus; DhcpModel({ + required this.dhcpAvailable, required this.networkInterfaces, required this.dhcpStatus, }); diff --git a/lib/providers/dhcp_provider.dart b/lib/providers/dhcp_provider.dart index 637f870..4fbd66b 100644 --- a/lib/providers/dhcp_provider.dart +++ b/lib/providers/dhcp_provider.dart @@ -69,7 +69,7 @@ class DhcpProvider with ChangeNotifier { if (result.successful == true) { DhcpModel data = dhcp!; - data.dhcpStatus.staticLeases = data.dhcpStatus.staticLeases.where((l) => l.mac != lease.mac).toList(); + data.dhcpStatus!.staticLeases = data.dhcpStatus!.staticLeases.where((l) => l.mac != lease.mac).toList(); setDhcpData(data); return true; } @@ -90,7 +90,7 @@ class DhcpProvider with ChangeNotifier { if (result.successful == true) { DhcpModel data = dhcp!; - data.dhcpStatus.staticLeases.add(lease); + data.dhcpStatus!.staticLeases.add(lease); setDhcpData(data); return result; } diff --git a/lib/screens/settings/dhcp/dhcp.dart b/lib/screens/settings/dhcp/dhcp.dart index 88f1dad..fff464e 100644 --- a/lib/screens/settings/dhcp/dhcp.dart +++ b/lib/screens/settings/dhcp/dhcp.dart @@ -7,8 +7,10 @@ import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:adguard_home_manager/widgets/section_label.dart'; +import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_not_available.dart'; import 'package:adguard_home_manager/widgets/confirm_action_modal.dart'; +import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_main_button.dart'; +import 'package:adguard_home_manager/widgets/section_label.dart'; import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_leases.dart'; import 'package:adguard_home_manager/screens/settings/dhcp/select_interface_modal.dart'; @@ -22,7 +24,7 @@ import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; class DhcpScreen extends StatefulWidget { - const DhcpScreen({Key? key}) : super(key: key); + const DhcpScreen({super.key}); @override State createState() => _DhcpScreenState(); @@ -55,24 +57,25 @@ class _DhcpScreenState extends State { void loadDhcpStatus() async { final result = await Provider.of(context, listen: false).loadDhcpStatus(); - if (mounted && result == true) { - final dhcpProvider = Provider.of(context, listen: false); - if (dhcpProvider.dhcp != null) { - setState(() { - if (dhcpProvider.dhcp!.dhcpStatus.interfaceName != null && dhcpProvider.dhcp!.dhcpStatus.interfaceName != '') { - try {selectedInterface = dhcpProvider.dhcp!.networkInterfaces.firstWhere((iface) => iface.name == dhcpProvider.dhcp!.dhcpStatus.interfaceName);} catch (_) {} - enabled = dhcpProvider.dhcp!.dhcpStatus.enabled; - if (dhcpProvider.dhcp!.dhcpStatus.v4 != null) { - ipv4StartRangeController.text = dhcpProvider.dhcp!.dhcpStatus.v4!.rangeStart; - ipv4EndRangeController.text = dhcpProvider.dhcp!.dhcpStatus.v4!.rangeEnd ?? ''; - ipv4SubnetMaskController.text = dhcpProvider.dhcp!.dhcpStatus.v4!.subnetMask ?? ''; - ipv4GatewayController.text = dhcpProvider.dhcp!.dhcpStatus.v4!.gatewayIp ?? ''; - ipv4LeaseTimeController.text = dhcpProvider.dhcp!.dhcpStatus.v4!.leaseDuration.toString(); - } - } - }); + if (!mounted || result == false) return; + + final dhcpProvider = Provider.of(context, listen: false); + if (dhcpProvider.dhcp == null) return; + + setState(() { + if (dhcpProvider.dhcp!.dhcpStatus!.interfaceName != null && dhcpProvider.dhcp!.dhcpStatus!.interfaceName != '') { + try {selectedInterface = dhcpProvider.dhcp!.networkInterfaces.firstWhere((iface) => iface.name == dhcpProvider.dhcp!.dhcpStatus!.interfaceName);} catch (_) {} + enabled = dhcpProvider.dhcp!.dhcpStatus!.enabled; + if (dhcpProvider.dhcp!.dhcpStatus!.v4 != null) { + ipv4StartRangeController.text = dhcpProvider.dhcp!.dhcpStatus!.v4!.rangeStart; + ipv4EndRangeController.text = dhcpProvider.dhcp!.dhcpStatus!.v4!.rangeEnd ?? ''; + ipv4SubnetMaskController.text = dhcpProvider.dhcp!.dhcpStatus!.v4!.subnetMask ?? ''; + ipv4GatewayController.text = dhcpProvider.dhcp!.dhcpStatus!.v4!.gatewayIp ?? ''; + ipv4LeaseTimeController.text = dhcpProvider.dhcp!.dhcpStatus!.v4!.leaseDuration.toString(); + } } - } + }); + checkDataValid(); } @@ -266,8 +269,8 @@ class _DhcpScreenState extends State { if (result.successful == true) { DhcpModel data = dhcpProvider.dhcp!; - data.dhcpStatus.staticLeases = []; - data.dhcpStatus.leases = []; + data.dhcpStatus!.staticLeases = []; + data.dhcpStatus!.leases = []; dhcpProvider.setDhcpData(data); showSnacbkar( @@ -350,6 +353,14 @@ class _DhcpScreenState extends State { }); } + if ( + dhcpProvider.loadStatus == LoadStatus.loaded && + dhcpProvider.dhcp != null && + dhcpProvider.dhcp!.dhcpAvailable == false + ) { + return const DhcpNotAvailable(); + } + return Scaffold( appBar: AppBar( title: Text(AppLocalizations.of(context)!.dhcpSettings), @@ -429,60 +440,10 @@ class _DhcpScreenState extends State { return SingleChildScrollView( child: Wrap( children: [ - Padding( - padding: const EdgeInsets.only( - top: 10, - left: 16, - right: 16 - ), - child: Material( - color: Theme.of(context).colorScheme.primary.withOpacity(0.1), - borderRadius: BorderRadius.circular(28), - child: InkWell( - onTap: selectedInterface != null - ? () => setState(() => enabled = !enabled) - : null, - borderRadius: BorderRadius.circular(28), - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 20, - vertical: 12 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - AppLocalizations.of(context)!.enableDhcpServer, - style: TextStyle( - fontSize: 16, - color: Theme.of(context).colorScheme.onSurface - ), - ), - if (selectedInterface != null) ...[ - Text( - selectedInterface!.name, - style: TextStyle( - fontSize: 14, - color: Theme.of(context).listTileTheme.textColor - ), - ) - ] - ], - ), - Switch( - value: enabled, - onChanged: selectedInterface != null - ? (value) => setState(() => enabled = value) - : null, - ), - ], - ), - ), - ), - ), + DhcpMainButton( + selectedInterface: selectedInterface, + enabled: enabled, + setEnabled: (v) => setState(() => enabled = v) ), if (selectedInterface!.ipv4Addresses.isNotEmpty) ...[ SectionLabel( @@ -491,125 +452,47 @@ class _DhcpScreenState extends State { top: 24, left: 16, right: 16, bottom: 8 ) ), - FractionallySizedBox( - widthFactor: width > 900 ? 0.5 : 1, - child: Padding( - padding: width > 900 - ? const EdgeInsets.only(top: 12, bottom: 12, left: 16, right: 8) - : const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: TextFormField( - controller: ipv4StartRangeController, - onChanged: (value) => validateIpV4(value, 'ipv4StartRangeError', AppLocalizations.of(context)!.ipNotValid), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.skip_previous_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: ipv4StartRangeError, - labelText: AppLocalizations.of(context)!.startOfRange, - ), - keyboardType: TextInputType.number, - ), - ), + _DhcpField( + icon: Icons.skip_previous_rounded, + label: AppLocalizations.of(context)!.startOfRange, + controller: ipv4StartRangeController, + onChanged: (value) => validateIpV4(value, 'ipv4StartRangeError', AppLocalizations.of(context)!.ipNotValid), + error: ipv4StartRangeError ), - FractionallySizedBox( - widthFactor: width > 900 ? 0.5 : 1, - child: Padding( - padding: width > 900 - ? const EdgeInsets.only(top: 12, bottom: 12, left: 8, right: 16) - : const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: TextFormField( - controller: ipv4EndRangeController, - onChanged: (value) => validateIpV4(value, 'ipv4EndRangeError', AppLocalizations.of(context)!.ipNotValid), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.skip_next_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: ipv4EndRangeError, - labelText: AppLocalizations.of(context)!.endOfRange, - ), - keyboardType: TextInputType.number, - ), - ), + _DhcpField( + icon: Icons.skip_next_rounded, + label: AppLocalizations.of(context)!.endOfRange, + controller: ipv4EndRangeController, + onChanged: (value) => validateIpV4(value, 'ipv4EndRangeError', AppLocalizations.of(context)!.ipNotValid), + error: ipv4EndRangeError ), - FractionallySizedBox( - widthFactor: width > 900 ? 0.5 : 1, - child: Padding( - padding: width > 900 - ? const EdgeInsets.only(top: 12, bottom: 12, left: 16, right: 8) - : const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: TextFormField( - controller: ipv4SubnetMaskController, - onChanged: (value) => validateIpV4(value, 'ipv4SubnetMaskError', AppLocalizations.of(context)!.subnetMaskNotValid), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.hub_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: ipv4SubnetMaskError, - labelText: AppLocalizations.of(context)!.subnetMask, - ), - keyboardType: TextInputType.number, - ), - ), + _DhcpField( + icon: Icons.hub_rounded, + label: AppLocalizations.of(context)!.subnetMask, + controller: ipv4SubnetMaskController, + onChanged: (value) => validateIpV4(value, 'ipv4SubnetMaskError', AppLocalizations.of(context)!.subnetMaskNotValid), + error: ipv4SubnetMaskError ), - FractionallySizedBox( - widthFactor: width > 900 ? 0.5 : 1, - child: Padding( - padding: width > 900 - ? const EdgeInsets.only(top: 12, bottom: 12, left: 8, right: 16) - : const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: TextFormField( - controller: ipv4GatewayController, - onChanged: (value) => validateIpV4(value, 'ipv4GatewayError', AppLocalizations.of(context)!.gatewayNotValid), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.router_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: ipv4GatewayError, - labelText: AppLocalizations.of(context)!.gateway, - ), - keyboardType: TextInputType.number, - ), - ), + _DhcpField( + icon: Icons.router_rounded, + label: AppLocalizations.of(context)!.gateway, + controller: ipv4GatewayController, + onChanged: (value) => validateIpV4(value, 'ipv4GatewayError', AppLocalizations.of(context)!.gatewayNotValid), + error: ipv4GatewayError ), - FractionallySizedBox( - widthFactor: 1, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: TextFormField( - controller: ipv4LeaseTimeController, - onChanged: (value) { - if (int.tryParse(value).runtimeType == int) { - setState(() => ipv4LeaseTimeError = null); - } - else { - setState(() => ipv4LeaseTimeError = AppLocalizations.of(context)!.leaseTimeNotValid); - } - }, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.timer), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: ipv4LeaseTimeError, - labelText: AppLocalizations.of(context)!.leaseTime, - ), - keyboardType: TextInputType.number, - ), - ), + _DhcpField( + icon: Icons.timer, + label: AppLocalizations.of(context)!.leaseTime, + controller: ipv4LeaseTimeController, + onChanged: (value) { + if (int.tryParse(value).runtimeType == int) { + setState(() => ipv4LeaseTimeError = null); + } + else { + setState(() => ipv4LeaseTimeError = AppLocalizations.of(context)!.leaseTimeNotValid); + } + }, + error: ipv4LeaseTimeError ), ], if (selectedInterface!.ipv6Addresses.isNotEmpty) ...[ @@ -617,80 +500,34 @@ class _DhcpScreenState extends State { label: AppLocalizations.of(context)!.ipv6settings, padding: const EdgeInsets.all(16) ), - FractionallySizedBox( - widthFactor: width > 900 ? 0.5 : 1, - child: Padding( - padding: width > 900 - ? const EdgeInsets.only(top: 8, bottom: 12, left: 16, right: 8) - : const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: TextFormField( - controller: ipv6StartRangeController, - onChanged: (value) => validateIpV4(value, 'ipv6StartRangeError', AppLocalizations.of(context)!.ipNotValid), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.skip_next_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: ipv6StartRangeError, - labelText: AppLocalizations.of(context)!.startOfRange, - ), - keyboardType: TextInputType.number, - ), - ), + _DhcpField( + icon: Icons.skip_next_rounded, + label: AppLocalizations.of(context)!.startOfRange, + controller: ipv6StartRangeController, + onChanged: (value) => validateIpV6(value, 'ipv6StartRangeError', AppLocalizations.of(context)!.ipNotValid), + error: ipv6StartRangeError ), - FractionallySizedBox( - widthFactor: width > 900 ? 0.5 : 1, - child: Padding( - padding: width > 900 - ? const EdgeInsets.only(top: 8, bottom: 12, left: 8, right: 16) - : const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: TextFormField( - controller: ipv6EndRangeController, - onChanged: (value) => validateIpV4(value, 'ipv6EndRangeError', AppLocalizations.of(context)!.ipNotValid), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.skip_previous_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: ipv6EndRangeError, - labelText: AppLocalizations.of(context)!.endOfRange, - ), - keyboardType: TextInputType.number, - ), - ), - ), - FractionallySizedBox( - widthFactor: 1, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: TextFormField( - controller: ipv6LeaseTimeController, - onChanged: (value) { - if (int.tryParse(value).runtimeType == int) { - setState(() => ipv6LeaseTimeError = null); - } - else { - setState(() => ipv6LeaseTimeError = AppLocalizations.of(context)!.leaseTimeNotValid); - } - }, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.timer), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: ipv6LeaseTimeError, - labelText: AppLocalizations.of(context)!.leaseTime, - ), - keyboardType: TextInputType.number, - ), - ), + _DhcpField( + icon: Icons.skip_previous_rounded, + label: AppLocalizations.of(context)!.endOfRange, + controller: ipv6EndRangeController, + onChanged: (value) => validateIpV6(value, 'ipv6EndRangeError', AppLocalizations.of(context)!.ipNotValid), + error: ipv6EndRangeError ), + _DhcpField( + icon: Icons.timer, + label: AppLocalizations.of(context)!.leaseTime, + controller: ipv6LeaseTimeController, + onChanged: (value) { + if (int.tryParse(value).runtimeType == int) { + setState(() => ipv6LeaseTimeError = null); + } + else { + setState(() => ipv6LeaseTimeError = AppLocalizations.of(context)!.leaseTimeNotValid); + } + }, + error: ipv6LeaseTimeError + ) ], const SizedBox(height: 20), SectionLabel( @@ -704,7 +541,7 @@ class _DhcpScreenState extends State { Navigator.of(context).push( MaterialPageRoute( builder: (context) => DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus.leases, + items: dhcpProvider.dhcp!.dhcpStatus!.leases, staticLeases: false, ) ) @@ -739,7 +576,7 @@ class _DhcpScreenState extends State { Navigator.of(context).push( MaterialPageRoute( builder: (context) => DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus.staticLeases, + items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, staticLeases: true, ) ) @@ -775,7 +612,7 @@ class _DhcpScreenState extends State { if (!(Platform.isAndroid || Platform.isIOS)) { SplitView.of(context).push( DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus.leases, + items: dhcpProvider.dhcp!.dhcpStatus!.leases, staticLeases: false, ) ); @@ -784,7 +621,7 @@ class _DhcpScreenState extends State { Navigator.of(context).push( MaterialPageRoute( builder: (context) => DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus.leases, + items: dhcpProvider.dhcp!.dhcpStatus!.leases, staticLeases: false, ) ) @@ -804,7 +641,7 @@ class _DhcpScreenState extends State { if (!(Platform.isAndroid || Platform.isIOS)) { SplitView.of(context).push( DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus.staticLeases, + items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, staticLeases: true, ) ); @@ -813,7 +650,7 @@ class _DhcpScreenState extends State { Navigator.of(context).push( MaterialPageRoute( builder: (context) => DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus.staticLeases, + items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, staticLeases: true, ) ) @@ -899,4 +736,49 @@ class _DhcpScreenState extends State { ) ); } +} + +class _DhcpField extends StatelessWidget { + final IconData icon; + final String label; + final TextEditingController controller; + final void Function(String) onChanged; + final String? error; + + const _DhcpField({ + required this.icon, + required this.label, + required this.controller, + required this.onChanged, + required this.error, + }); + + @override + Widget build(BuildContext context) { + final width = MediaQuery.of(context).size.width; + + return FractionallySizedBox( + widthFactor: width > 900 ? 0.5 : 1, + child: Padding( + padding: width > 900 + ? const EdgeInsets.only(top: 12, bottom: 12, left: 16, right: 8) + : const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: TextFormField( + controller: controller, + onChanged: onChanged, + decoration: InputDecoration( + prefixIcon: Icon(icon), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: error, + labelText: label, + ), + keyboardType: TextInputType.number, + ), + ), + ); + } } \ No newline at end of file diff --git a/lib/screens/settings/dhcp/dhcp_main_button.dart b/lib/screens/settings/dhcp/dhcp_main_button.dart new file mode 100644 index 0000000..3e46a14 --- /dev/null +++ b/lib/screens/settings/dhcp/dhcp_main_button.dart @@ -0,0 +1,76 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/models/dhcp.dart'; + +class DhcpMainButton extends StatelessWidget { + final NetworkInterface? selectedInterface; + final bool enabled; + final void Function(bool) setEnabled; + + const DhcpMainButton({ + super.key, + required this.selectedInterface, + required this.enabled, + required this.setEnabled, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.only( + top: 10, + left: 16, + right: 16 + ), + child: Material( + color: Theme.of(context).colorScheme.primary.withOpacity(0.1), + borderRadius: BorderRadius.circular(28), + child: InkWell( + onTap: selectedInterface != null + ? () => setEnabled(!enabled) + : null, + borderRadius: BorderRadius.circular(28), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 12 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + AppLocalizations.of(context)!.enableDhcpServer, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurface + ), + ), + if (selectedInterface != null) ...[ + Text( + selectedInterface!.name, + style: TextStyle( + fontSize: 14, + color: Theme.of(context).listTileTheme.textColor + ), + ) + ] + ], + ), + Switch( + value: enabled, + onChanged: selectedInterface != null + ? (value) => setEnabled(value) + : null, + ), + ], + ), + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/settings/dhcp/dhcp_not_available.dart b/lib/screens/settings/dhcp/dhcp_not_available.dart new file mode 100644 index 0000000..ceb3f6b --- /dev/null +++ b/lib/screens/settings/dhcp/dhcp_not_available.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/functions/desktop_mode.dart'; + +class DhcpNotAvailable extends StatelessWidget { + const DhcpNotAvailable({super.key}); + + @override + Widget build(BuildContext context) { + final width = MediaQuery.of(context).size.width; + + return Scaffold( + appBar: AppBar( + title: Text(AppLocalizations.of(context)!.dhcpSettings), + centerTitle: false, + surfaceTintColor: isDesktop(width) ? Colors.transparent : null, + ), + body: Padding( + padding: const EdgeInsets.all(16), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + AppLocalizations.of(context)!.dhcpNotAvailable, + textAlign: TextAlign.center, + style: const TextStyle( + fontWeight: FontWeight.w400, + fontSize: 24 + ), + ), + const SizedBox(height: 20), + Text( + AppLocalizations.of(context)!.osServerInstalledIncompatible, + textAlign: TextAlign.center, + style: TextStyle( + fontWeight: FontWeight.w700, + fontSize: 16, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart index 636cc34..f626f75 100644 --- a/lib/services/api_client.dart +++ b/lib/services/api_client.dart @@ -482,8 +482,13 @@ class ApiClientV2 { return ApiResponse( successful: true, content: DhcpModel( + dhcpAvailable: jsonDecode(results[1].body!)['message'] != null + ? false + : true, networkInterfaces: interfaces, - dhcpStatus: DhcpStatus.fromJson(jsonDecode(results[1].body!)) + dhcpStatus: jsonDecode(results[1].body!)['message'] != null + ? null + : DhcpStatus.fromJson(jsonDecode(results[1].body!)) ) ); } catch (e, stackTrace) { diff --git a/lib/services/http_requests.dart b/lib/services/http_requests.dart index 2d001f2..37a2cc8 100644 --- a/lib/services/http_requests.dart +++ b/lib/services/http_requests.dart @@ -1352,6 +1352,7 @@ class ApiClient { return { 'result': 'success', 'data': DhcpModel( + dhcpAvailable: true, networkInterfaces: interfaces, dhcpStatus: DhcpStatus.fromJson(jsonDecode(result[1]['body'])) ) From b164d520db51ea98915978c344462f836c7afe1f Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Dec 2023 04:04:14 +0100 Subject: [PATCH 010/236] Changed system navigation bar color --- lib/main.dart | 2 + lib/screens/clients/client/client_screen.dart | 58 +- .../clients/client/logs_list_client.dart | 218 +++--- lib/screens/connect/connect.dart | 44 +- .../filters/details/add_list_modal.dart | 333 +++++---- .../filters/details/check_host_modal.dart | 352 ++++----- .../filters/details/list_details_screen.dart | 72 +- .../filters/modals/add_custom_rule.dart | 10 +- .../modals/blocked_services_screen.dart | 249 ++++--- .../filters/modals/delete_list_modal.dart | 4 +- .../modals/update_interval_lists_modal.dart | 10 +- .../filters/selection/selection_lists.dart | 5 +- .../management_modal/management_modal.dart | 88 +-- .../home/top_items/top_items_screen.dart | 18 +- .../logs/configuration/logs_config_modal.dart | 62 +- .../logs/details/log_details_screen.dart | 5 +- lib/screens/logs/filters/clients_modal.dart | 8 +- .../logs/filters/filter_status_modal.dart | 10 +- .../logs/filters/logs_filters_modal.dart | 12 +- lib/screens/servers/servers.dart | 50 +- .../access_settings/add_client_modal.dart | 8 +- lib/screens/settings/advanced_setings.dart | 48 +- .../settings/customization/customization.dart | 286 ++++---- .../settings/dhcp/add_static_lease_modal.dart | 335 ++++----- lib/screens/settings/dhcp/dhcp.dart | 624 ++++++++-------- lib/screens/settings/dhcp/dhcp_leases.dart | 56 +- .../settings/dhcp/select_interface_modal.dart | 17 +- lib/screens/settings/dns/bootstrap_dns.dart | 182 ++--- lib/screens/settings/dns/cache_config.dart | 146 ++-- lib/screens/settings/dns/comment_modal.dart | 259 ++++--- lib/screens/settings/dns/dns.dart | 178 ++--- .../settings/dns/dns_server_settings.dart | 242 ++++--- .../settings/dns/private_reverse_servers.dart | 258 +++---- lib/screens/settings/dns/upstream_dns.dart | 234 +++--- .../dns_rewrites/dns_rewrite_modal.dart | 10 +- .../settings/dns_rewrites/dns_rewrites.dart | 444 ++++++------ .../settings/dns_rewrites/rule_modal.dart | 0 .../dns_rewrites/server_version_needed.dart | 1 + .../settings/encryption/encryption.dart | 682 +++++++++--------- .../general_settings/general_settings.dart | 298 ++++---- .../settings/safe_search_settings.dart | 296 ++++---- .../settings/server_info/server_info.dart | 204 +++--- lib/screens/settings/theme_modal.dart | 4 +- .../settings/update_server/update.dart | 55 +- lib/widgets/add_server/add_server_modal.dart | 6 +- lib/widgets/system_ui_overlay_style.dart | 14 +- lib/widgets/tab_content_list.dart | 80 +- 47 files changed, 3370 insertions(+), 3207 deletions(-) delete mode 100644 lib/screens/settings/dns_rewrites/rule_modal.dart diff --git a/lib/main.dart b/lib/main.dart index 9734263..33f241d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:provider/provider.dart'; import 'package:flutter_displaymode/flutter_displaymode.dart'; @@ -35,6 +36,7 @@ import 'package:adguard_home_manager/services/db/database.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); + SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) { setWindowMinSize(const Size(500, 500)); diff --git a/lib/screens/clients/client/client_screen.dart b/lib/screens/clients/client/client_screen.dart index 2ab5c75..d4628e7 100644 --- a/lib/screens/clients/client/client_screen.dart +++ b/lib/screens/clients/client/client_screen.dart @@ -185,34 +185,36 @@ class _ClientScreenState extends State { ), actions: actions(), ), - body: ClientForm( - isFullScreen: true, - client: widget.client, - nameController: nameController, - updateValidValues: (v) => setState(() => validValues = v), - identifiersControllers: identifiersControllers, - selectedTags: selectedTags, - useGlobalSettingsFiltering: useGlobalSettingsFiltering, - enableFiltering: enableFiltering, - enableParentalControl: enableParentalControl, - enableSafeBrowsing: enableSafeBrowsing, - enableSafeSearch: enableSafeSearch, - safeSearch: safeSearch, - blockedServices: blockedServices, - updateBlockedServices: (v) => setState(() => blockedServices = v), - upstreamServers: upstreamServers, - updateUpstreamServers: (v) => setState(() => upstreamServers = v), - defaultSafeSearch: defaultSafeSearch, - useGlobalSettingsServices: useGlobalSettingsServices, - updateSelectedTags: (v) => setState(() => selectedTags = v), - updateIdentifiersControllers: (v) => setState(() => identifiersControllers = v), - enableDisableGlobalSettingsFiltering: enableDisableGlobalSettingsFiltering, - updateEnableFiltering: (v) => setState(() => enableFiltering = v), - updateEnableParentalControl: (v) => setState(() => enableParentalControl = v), - updateEnableSafeBrowsing: (v) => setState(() => enableSafeBrowsing = v), - updateEnableSafeSearch: (v) => setState(() => enableSafeSearch = v), - updateSafeSearch: (v) => setState(() => safeSearch = v), - updateUseGlobalSettingsServices: (v) => setState(() => useGlobalSettingsServices = v), + body: SafeArea( + child: ClientForm( + isFullScreen: true, + client: widget.client, + nameController: nameController, + updateValidValues: (v) => setState(() => validValues = v), + identifiersControllers: identifiersControllers, + selectedTags: selectedTags, + useGlobalSettingsFiltering: useGlobalSettingsFiltering, + enableFiltering: enableFiltering, + enableParentalControl: enableParentalControl, + enableSafeBrowsing: enableSafeBrowsing, + enableSafeSearch: enableSafeSearch, + safeSearch: safeSearch, + blockedServices: blockedServices, + updateBlockedServices: (v) => setState(() => blockedServices = v), + upstreamServers: upstreamServers, + updateUpstreamServers: (v) => setState(() => upstreamServers = v), + defaultSafeSearch: defaultSafeSearch, + useGlobalSettingsServices: useGlobalSettingsServices, + updateSelectedTags: (v) => setState(() => selectedTags = v), + updateIdentifiersControllers: (v) => setState(() => identifiersControllers = v), + enableDisableGlobalSettingsFiltering: enableDisableGlobalSettingsFiltering, + updateEnableFiltering: (v) => setState(() => enableFiltering = v), + updateEnableParentalControl: (v) => setState(() => enableParentalControl = v), + updateEnableSafeBrowsing: (v) => setState(() => enableSafeBrowsing = v), + updateEnableSafeSearch: (v) => setState(() => enableSafeSearch = v), + updateSafeSearch: (v) => setState(() => safeSearch = v), + updateUseGlobalSettingsServices: (v) => setState(() => useGlobalSettingsServices = v), + ), ), ), ); diff --git a/lib/screens/clients/client/logs_list_client.dart b/lib/screens/clients/client/logs_list_client.dart index bd4d2af..3267128 100644 --- a/lib/screens/clients/client/logs_list_client.dart +++ b/lib/screens/clients/client/logs_list_client.dart @@ -149,125 +149,127 @@ class _LogsListClientState extends State { ] ], ), - body: Builder( - builder: (context) { - switch (loadStatus) { - case 0: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingLogs, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), - ); - - case 1: - if (logsData!.data.isNotEmpty) { - return RefreshIndicator( - onRefresh: fetchLogs, - child: ListView.builder( - controller: scrollController, - padding: const EdgeInsets.only(top: 0), - itemCount: isLoadingMore == true - ? logsData!.data.length+1 - : logsData!.data.length, - itemBuilder: (context, index) { - if (isLoadingMore == true && index == logsData!.data.length) { - return const Padding( - padding: EdgeInsets.symmetric(vertical: 20), - child: Center( - child: CircularProgressIndicator(), - ), - ); - } - else { - return LogTile( - log: logsData!.data[index], - index: index, - length: logsData!.data.length, - useAlwaysNormalTile: true, - onLogTap: (log) => { - if (width > 700) { - showDialog( - context: context, - builder: (context) => LogDetailsScreen( - log: log, - dialog: true - ) - ) - } - else { - Navigator.of(context).push( - MaterialPageRoute( + body: SafeArea( + child: Builder( + builder: (context) { + switch (loadStatus) { + case 0: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingLogs, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + case 1: + if (logsData!.data.isNotEmpty) { + return RefreshIndicator( + onRefresh: fetchLogs, + child: ListView.builder( + controller: scrollController, + padding: const EdgeInsets.only(top: 0), + itemCount: isLoadingMore == true + ? logsData!.data.length+1 + : logsData!.data.length, + itemBuilder: (context, index) { + if (isLoadingMore == true && index == logsData!.data.length) { + return const Padding( + padding: EdgeInsets.symmetric(vertical: 20), + child: Center( + child: CircularProgressIndicator(), + ), + ); + } + else { + return LogTile( + log: logsData!.data[index], + index: index, + length: logsData!.data.length, + useAlwaysNormalTile: true, + onLogTap: (log) => { + if (width > 700) { + showDialog( + context: context, builder: (context) => LogDetailsScreen( log: log, - dialog: false + dialog: true ) ) - ) - } - }, - twoColumns: widget.splitView, - ); + } + else { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => LogDetailsScreen( + log: log, + dialog: false + ) + ) + ) + } + }, + twoColumns: widget.splitView, + ); + } } - } - ), - ); - } - else { - return Center( - child: Text( - AppLocalizations.of(context)!.noLogsDisplay, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, ), - ), - ); - } - - case 2: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.logsNotLoaded, + ); + } + else { + return Center( + child: Text( + AppLocalizations.of(context)!.noLogsDisplay, textAlign: TextAlign.center, style: TextStyle( fontSize: 22, color: Theme.of(context).colorScheme.onSurfaceVariant, ), - ) - ], - ), - ); - - default: - return const SizedBox(); - } - }, + ), + ); + } + + case 2: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.logsNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + default: + return const SizedBox(); + } + }, + ), ) ); } diff --git a/lib/screens/connect/connect.dart b/lib/screens/connect/connect.dart index 3528718..01ac7cc 100644 --- a/lib/screens/connect/connect.dart +++ b/lib/screens/connect/connect.dart @@ -11,7 +11,7 @@ import 'package:adguard_home_manager/providers/servers_provider.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; class Connect extends StatefulWidget { - const Connect({Key? key}) : super(key: key); + const Connect({super.key}); @override State createState() => _ConnectState(); @@ -61,26 +61,28 @@ class _ConnectState extends State { appBar: AppBar( title: Text(AppLocalizations.of(context)!.connect), ), - body: Stack( - children: [ - ServersList( - context: context, - controllers: expandableControllerList, - onChange: expandOrContract, - scrollController: scrollController, - breakingWidth: 700, - ), - AnimatedPositioned( - duration: const Duration(milliseconds: 100), - curve: Curves.easeInOut, - bottom: isVisible ? - appConfigProvider.showingSnackbar - ? 70 : 20 - : -70, - right: 20, - child: const FabConnect() - ) - ], + body: SafeArea( + child: Stack( + children: [ + ServersList( + context: context, + controllers: expandableControllerList, + onChange: expandOrContract, + scrollController: scrollController, + breakingWidth: 700, + ), + AnimatedPositioned( + duration: const Duration(milliseconds: 100), + curve: Curves.easeInOut, + bottom: isVisible ? + appConfigProvider.showingSnackbar + ? 90 : 20 + : -90, + right: 20, + child: const FabConnect() + ) + ], + ), ), ); } diff --git a/lib/screens/filters/details/add_list_modal.dart b/lib/screens/filters/details/add_list_modal.dart index fceebf9..d5579a6 100644 --- a/lib/screens/filters/details/add_list_modal.dart +++ b/lib/screens/filters/details/add_list_modal.dart @@ -5,7 +5,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/models/filtering.dart'; -class AddListModal extends StatefulWidget { +class AddListModal extends StatelessWidget { final String type; final Filter? list; final void Function({required String name, required String url, required String type})? onConfirm; @@ -13,19 +13,74 @@ class AddListModal extends StatefulWidget { final bool dialog; const AddListModal({ - Key? key, + super.key, required this.type, this.list, this.onConfirm, this.onEdit, required this.dialog - }) : super(key: key); + }); @override - State createState() => _AddListModalState(); + Widget build(BuildContext context) { + if (dialog == true) { + return Dialog( + child: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: 400 + ), + child: _Content( + list: list, + onConfirm: onConfirm, + onEdit: onEdit, + type: type, + ) + ), + ); + } + else { + return Padding( + padding: MediaQuery.of(context).viewInsets, + child: Container( + decoration: BoxDecoration( + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(28), + topRight: Radius.circular(28) + ), + color: Theme.of(context).dialogBackgroundColor + ), + child: SafeArea( + child: _Content( + list: list, + onConfirm: onConfirm, + onEdit: onEdit, + type: type, + ), + ) + ), + ); + } + } } -class _AddListModalState extends State { +class _Content extends StatefulWidget { + final String type; + final Filter? list; + final void Function({required String name, required String url, required String type})? onConfirm; + final void Function({required Filter list, required String type})? onEdit; + + const _Content({ + required this.type, + required this.list, + required this.onConfirm, + required this.onEdit, + }); + + @override + State<_Content> createState() => _ContentState(); +} + +class _ContentState extends State<_Content> { final TextEditingController nameController = TextEditingController(); final TextEditingController urlController = TextEditingController(); String? urlError; @@ -69,162 +124,134 @@ class _AddListModalState extends State { } @override - Widget build(BuildContext context) { - Widget content() { - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - child: SingleChildScrollView( - child: Wrap( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Column( - children: [ - Padding( - padding: const EdgeInsets.only(top: 24), - child: Icon( - widget.type == 'whitelist' - ? Icons.verified_user_rounded - : Icons.gpp_bad_rounded, - size: 24, - color: Theme.of(context).listTileTheme.iconColor - ), - ), - const SizedBox(height: 16), - Text( - widget.list != null - ? widget.type == 'whitelist' - ? AppLocalizations.of(context)!.editWhitelist - : AppLocalizations.of(context)!.editBlacklist - : widget.type == 'whitelist' - ? AppLocalizations.of(context)!.addWhitelist - : AppLocalizations.of(context)!.addBlacklist, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurface - ), - ), - const SizedBox(height: 16), - ], - ), - ], - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: TextFormField( - controller: nameController, - onChanged: (_) => checkValidValues(), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.badge_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - labelText: AppLocalizations.of(context)!.name, - ), - ), - ), - Container(height: 30), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: TextFormField( - controller: urlController, - onChanged: validateUrl, - enabled: widget.list != null ? false : true, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.link_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: urlError, - labelText: AppLocalizations.of(context)!.urlAbsolutePath, - ), - ), - ), - ], - ), - ), - ), - Padding( - padding: const EdgeInsets.all(24), - child: Row( - mainAxisAlignment: MainAxisAlignment.end, + Widget build(BuildContext context) { + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: SingleChildScrollView( + child: Wrap( children: [ - TextButton( - onPressed: () => Navigator.pop(context), - child: Text(AppLocalizations.of(context)!.cancel) + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 24), + child: Icon( + widget.type == 'whitelist' + ? Icons.verified_user_rounded + : Icons.gpp_bad_rounded, + size: 24, + color: Theme.of(context).listTileTheme.iconColor + ), + ), + const SizedBox(height: 16), + Text( + widget.list != null + ? widget.type == 'whitelist' + ? AppLocalizations.of(context)!.editWhitelist + : AppLocalizations.of(context)!.editBlacklist + : widget.type == 'whitelist' + ? AppLocalizations.of(context)!.addWhitelist + : AppLocalizations.of(context)!.addBlacklist, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + color: Theme.of(context).colorScheme.onSurface + ), + ), + const SizedBox(height: 16), + ], + ), + ], ), - const SizedBox(width: 20), - TextButton( - onPressed: () { - Navigator.pop(context); - if (widget.list != null) { - final Filter newList = Filter( - url: urlController.text, - name: nameController.text, - lastUpdated: widget.list!.lastUpdated, - id: widget.list!.id, - rulesCount: widget.list!.rulesCount, - enabled: widget.list!.enabled - ); - widget.onEdit!( - list: newList, - type: widget.type - ); - } - else { - widget.onConfirm!( - name: nameController.text, - url: urlController.text, - type: widget.type - ); - } - }, - child: Text( - widget.list != null - ? AppLocalizations.of(context)!.save - : AppLocalizations.of(context)!.confirm - ) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: TextFormField( + controller: nameController, + onChanged: (_) => checkValidValues(), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.badge_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.name, + ), + ), + ), + Container(height: 30), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: TextFormField( + controller: urlController, + onChanged: validateUrl, + enabled: widget.list != null ? false : true, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.link_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: urlError, + labelText: AppLocalizations.of(context)!.urlAbsolutePath, + ), + ), ), ], ), ), - if (Platform.isIOS) const SizedBox(height: 16) - ], - ); - } - - if (widget.dialog == true) { - return Dialog( - child: ConstrainedBox( - constraints: const BoxConstraints( - maxWidth: 400 - ), - child: content() ), - ); - } - else { - return Padding( - padding: MediaQuery.of(context).viewInsets, - child: Container( - decoration: BoxDecoration( - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(28), - topRight: Radius.circular(28) - ), - color: Theme.of(context).dialogBackgroundColor + Padding( + padding: const EdgeInsets.all(24), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.cancel) + ), + const SizedBox(width: 20), + TextButton( + onPressed: () { + Navigator.pop(context); + if (widget.list != null) { + final Filter newList = Filter( + url: urlController.text, + name: nameController.text, + lastUpdated: widget.list!.lastUpdated, + id: widget.list!.id, + rulesCount: widget.list!.rulesCount, + enabled: widget.list!.enabled + ); + widget.onEdit!( + list: newList, + type: widget.type + ); + } + else { + widget.onConfirm!( + name: nameController.text, + url: urlController.text, + type: widget.type + ); + } + }, + child: Text( + widget.list != null + ? AppLocalizations.of(context)!.save + : AppLocalizations.of(context)!.confirm + ) + ), + ], ), - child: content() ), - ); - } + if (Platform.isIOS) const SizedBox(height: 16) + ], + ); } } \ No newline at end of file diff --git a/lib/screens/filters/details/check_host_modal.dart b/lib/screens/filters/details/check_host_modal.dart index 5325ada..3065588 100644 --- a/lib/screens/filters/details/check_host_modal.dart +++ b/lib/screens/filters/details/check_host_modal.dart @@ -8,19 +8,55 @@ import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/functions/get_filtered_status.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; -class CheckHostModal extends StatefulWidget { +class CheckHostModal extends StatelessWidget { final bool dialog; const CheckHostModal({ - Key? key, + super.key, required this.dialog - }) : super(key: key); + }); @override - State createState() => _CheckHostModalState(); + Widget build(BuildContext context) { + if (dialog == true) { + return Dialog( + child: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: 400 + ), + child: const _Content() + ), + ); + } + else { + return Padding( + padding: MediaQuery.of(context).viewInsets, + child: Container( + width: double.maxFinite, + decoration: BoxDecoration( + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(28), + topRight: Radius.circular(28), + ), + color: Theme.of(context).dialogBackgroundColor + ), + child: const SafeArea( + child: _Content() + ) + ), + ); + } + } } -class _CheckHostModalState extends State { +class _Content extends StatefulWidget { + const _Content(); + + @override + State<_Content> createState() => _ContentState(); +} + +class _ContentState extends State<_Content> { final TextEditingController domainController = TextEditingController(); String? domainError; @@ -59,17 +95,29 @@ class _CheckHostModalState extends State { setState(() => resultWidget = checking()); final result = await serversProvider.apiClient2!.checkHostFiltered(host: domainController.text); + if (!mounted) return; - if (mounted) { - if (result.successful == true) { - final status = getFilteredStatus(context, appConfigProvider, result.content['reason'], true); - if (mounted) { - setState(() => resultWidget = Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Icon( - status['icon'], - size: 18, + if (result.successful == true) { + final status = getFilteredStatus(context, appConfigProvider, result.content['reason'], true); + if (mounted) { + setState(() => resultWidget = Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + status['icon'], + size: 18, + color: status['filtered'] == true + ? appConfigProvider.useThemeColorForStatus == true + ? Colors.grey + : Colors.red + : appConfigProvider.useThemeColorForStatus + ? Theme.of(context).colorScheme.primary + : Colors.green, + ), + const SizedBox(width: 10), + Text( + status['label'], + style: TextStyle( color: status['filtered'] == true ? appConfigProvider.useThemeColorForStatus == true ? Colors.grey @@ -77,39 +125,6 @@ class _CheckHostModalState extends State { : appConfigProvider.useThemeColorForStatus ? Theme.of(context).colorScheme.primary : Colors.green, - ), - const SizedBox(width: 10), - Text( - status['label'], - style: TextStyle( - color: status['filtered'] == true - ? appConfigProvider.useThemeColorForStatus == true - ? Colors.grey - : Colors.red - : appConfigProvider.useThemeColorForStatus - ? Theme.of(context).colorScheme.primary - : Colors.green, - fontWeight: FontWeight.w500 - ), - ) - ], - )); - } - } - else { - setState(() => resultWidget = Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Icon( - Icons.cancel, - size: 18, - color: Colors.red, - ), - const SizedBox(width: 10), - Text( - AppLocalizations.of(context)!.check, - style: const TextStyle( - color: Colors.red, fontWeight: FontWeight.w500 ), ) @@ -117,143 +132,134 @@ class _CheckHostModalState extends State { )); } } + else { + setState(() => resultWidget = Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Icon( + Icons.cancel, + size: 18, + color: Colors.red, + ), + const SizedBox(width: 10), + Text( + AppLocalizations.of(context)!.check, + style: const TextStyle( + color: Colors.red, + fontWeight: FontWeight.w500 + ), + ) + ], + )); + } } - Widget content() { - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - child: SingleChildScrollView( - child: Wrap( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Column( - children: [ - Padding( - padding: const EdgeInsets.only(top: 24), - child: Icon( - Icons.shield_rounded, - size: 24, - color: Theme.of(context).listTileTheme.iconColor - ), + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: SingleChildScrollView( + child: Wrap( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 24), + child: Icon( + Icons.shield_rounded, + size: 24, + color: Theme.of(context).listTileTheme.iconColor ), - const SizedBox(height: 16), - Text( - AppLocalizations.of(context)!.checkHostFiltered, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurface - ), - ), - const SizedBox(height: 16), - ], - ), - ], - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: TextFormField( - controller: domainController, - onChanged: validateDomain, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.link_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) ), - errorText: domainError, - labelText: AppLocalizations.of(context)!.domain, + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.checkHostFiltered, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + color: Theme.of(context).colorScheme.onSurface + ), + ), + const SizedBox(height: 16), + ], + ), + ], + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: TextFormField( + controller: domainController, + onChanged: validateDomain, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.link_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: domainError, + labelText: AppLocalizations.of(context)!.domain, + ), + ), + ), + if (resultWidget != null) Padding( + padding: const EdgeInsets.all(24), + child: resultWidget, + ), + if (resultWidget == null) Padding( + padding: const EdgeInsets.all(24), + child: Center( + child: Text( + AppLocalizations.of(context)!.insertDomain, + textAlign: TextAlign.center, + style: const TextStyle( + fontSize: 16, ), ), ), - if (resultWidget != null) Padding( - padding: const EdgeInsets.all(24), - child: resultWidget, + ), + ], + ), + ), + ), + Column( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: 24, + right: 24 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.close), ), - if (resultWidget == null) Padding( - padding: const EdgeInsets.all(24), - child: Center( - child: Text( - AppLocalizations.of(context)!.insertDomain, - textAlign: TextAlign.center, - style: const TextStyle( - fontSize: 16, - ), + const SizedBox(width: 20), + TextButton( + onPressed: domainController.text != '' && domainError == null + ? () => checkHost() + : null, + child: Text( + AppLocalizations.of(context)!.check, + style: TextStyle( + color: domainController.text != '' && domainError == null + ? Theme.of(context).colorScheme.primary + : Colors.grey ), ), ), ], ), - ), - ), - Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Padding( - padding: const EdgeInsets.only( - bottom: 24, - right: 24 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - TextButton( - onPressed: () => Navigator.pop(context), - child: Text(AppLocalizations.of(context)!.close), - ), - const SizedBox(width: 20), - TextButton( - onPressed: domainController.text != '' && domainError == null - ? () => checkHost() - : null, - child: Text( - AppLocalizations.of(context)!.check, - style: TextStyle( - color: domainController.text != '' && domainError == null - ? Theme.of(context).colorScheme.primary - : Colors.grey - ), - ), - ), - ], - ), - ) - ], - ) - ], - ); - } - - if (widget.dialog == true) { - return Dialog( - child: ConstrainedBox( - constraints: const BoxConstraints( - maxWidth: 400 - ), - child: content() - ), - ); - } - else { - return Padding( - padding: MediaQuery.of(context).viewInsets, - child: Container( - width: double.maxFinite, - decoration: BoxDecoration( - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(28), - topRight: Radius.circular(28), - ), - color: Theme.of(context).dialogBackgroundColor - ), - child: content() - ), - ); - } + ) + ], + ) + ], + ); } } \ No newline at end of file diff --git a/lib/screens/filters/details/list_details_screen.dart b/lib/screens/filters/details/list_details_screen.dart index b5e305c..bbc7c41 100644 --- a/lib/screens/filters/details/list_details_screen.dart +++ b/lib/screens/filters/details/list_details_screen.dart @@ -25,11 +25,11 @@ class ListDetailsScreen extends StatefulWidget { final bool dialog; const ListDetailsScreen({ - Key? key, + super.key, required this.listId, required this.type, required this.dialog - }) : super(key: key); + }); @override State createState() => _ListDetailsScreenState(); @@ -367,42 +367,44 @@ class _ListDetailsScreenState extends State { title: Text(AppLocalizations.of(context)!.listDetails), actions: list != null ? actions() : null, ), - body: Stack( - children: [ - if (list != null) ListView( - children: content(), - ), - if (list == null) Center( - child: Text( - AppLocalizations.of(context)!.listNotAvailable, - style: const TextStyle( - fontSize: 24, + body: SafeArea( + child: Stack( + children: [ + if (list != null) ListView( + children: content(), + ), + if (list == null) Center( + child: Text( + AppLocalizations.of(context)!.listNotAvailable, + style: const TextStyle( + fontSize: 24, + ), ), ), - ), - if (list != null) AnimatedPositioned( - duration: const Duration(milliseconds: 100), - curve: Curves.easeInOut, - bottom: fabVisible ? - appConfigProvider.showingSnackbar - ? 70 : (Platform.isIOS ? 40 : 20) - : -70, - right: 20, - child: FloatingActionButton( - onPressed: () => updateList( - action: list!.enabled == true - ? FilteringListActions.disable - : FilteringListActions.enable, - filterList: list + if (list != null) AnimatedPositioned( + duration: const Duration(milliseconds: 100), + curve: Curves.easeInOut, + bottom: fabVisible ? + appConfigProvider.showingSnackbar + ? 70 : (Platform.isIOS ? 40 : 20) + : -70, + right: 20, + child: FloatingActionButton( + onPressed: () => updateList( + action: list!.enabled == true + ? FilteringListActions.disable + : FilteringListActions.enable, + filterList: list + ), + child: Icon( + list.enabled == true + ? Icons.gpp_bad_rounded + : Icons.verified_user_rounded, + ), ), - child: Icon( - list.enabled == true - ? Icons.gpp_bad_rounded - : Icons.verified_user_rounded, - ), - ), - ) - ], + ) + ], + ), ), ), ); diff --git a/lib/screens/filters/modals/add_custom_rule.dart b/lib/screens/filters/modals/add_custom_rule.dart index c7e5bcd..abe68bc 100644 --- a/lib/screens/filters/modals/add_custom_rule.dart +++ b/lib/screens/filters/modals/add_custom_rule.dart @@ -10,10 +10,10 @@ class AddCustomRule extends StatefulWidget { final bool fullScreen; const AddCustomRule({ - Key? key, + super.key, required this.onConfirm, required this.fullScreen - }) : super(key: key); + }); @override State createState() => _AddCustomRuleState(); @@ -349,8 +349,10 @@ class _AddCustomRuleState extends State { const SizedBox(width: 10) ], ), - body: ListView( - children: content(), + body: SafeArea( + child: ListView( + children: content(), + ), ) ), ); diff --git a/lib/screens/filters/modals/blocked_services_screen.dart b/lib/screens/filters/modals/blocked_services_screen.dart index 6169d0b..b95dd4f 100644 --- a/lib/screens/filters/modals/blocked_services_screen.dart +++ b/lib/screens/filters/modals/blocked_services_screen.dart @@ -17,9 +17,9 @@ class BlockedServicesScreen extends StatefulWidget { final bool fullScreen; const BlockedServicesScreen({ - Key? key, + super.key, required this.fullScreen - }) : super(key: key); + }); @override State createState() => _BlockedServicesScreenStateWidget(); @@ -83,105 +83,6 @@ class _BlockedServicesScreenStateWidget extends State { } } - Widget body() { - switch (filteringProvider.blockedServicesLoadStatus) { - case LoadStatus.loading: - return Container( - padding: const EdgeInsets.symmetric(horizontal: 16), - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingBlockedServicesList, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), - ); - - case LoadStatus.loaded: - return ListView.builder( - itemCount: filteringProvider.blockedServices!.services.length, - itemBuilder: (context, index) => Material( - color: Colors.transparent, - child: InkWell( - onTap: () => updateValues( - values.contains(filteringProvider.blockedServices!.services[index].id), - filteringProvider.blockedServices!.services[index] - ), - child: Padding( - padding: const EdgeInsets.only( - top: 6, - bottom: 6, - right: 12, - left: 24 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - filteringProvider.blockedServices!.services[index].name, - style: TextStyle( - fontSize: 16, - color: Theme.of(context).colorScheme.onSurface - ), - ), - Checkbox( - value: values.contains(filteringProvider.blockedServices!.services[index].id), - onChanged: (value) => updateValues( - value!, - filteringProvider.blockedServices!.services[index] - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(5) - ), - ) - ], - ), - ), - ), - ) - ); - - case LoadStatus.error: - return Container( - padding: const EdgeInsets.symmetric(horizontal: 16), - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.blockedServicesListNotLoaded, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), - ); - - default: - return const SizedBox(); - } - } - if (widget.fullScreen == true) { return Dialog.fullscreen( child: Scaffold( @@ -199,18 +100,23 @@ class _BlockedServicesScreenStateWidget extends State { const SizedBox(width: 10) ], ), - body: RefreshIndicator( - onRefresh: () async { - final result = await filteringProvider.loadBlockedServices(); - if (result == false) { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.blockedServicesListNotLoaded, - color: Colors.red - ); - } - }, - child: body() + body: SafeArea( + child: RefreshIndicator( + onRefresh: () async { + final result = await filteringProvider.loadBlockedServices(); + if (result == false) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.blockedServicesListNotLoaded, + color: Colors.red + ); + } + }, + child: _Content( + values: values, + updateValues: updateValues, + ) + ), ), ), ); @@ -256,7 +162,10 @@ class _BlockedServicesScreenStateWidget extends State { ), ), Expanded( - child: body() + child: _Content( + values: values, + updateValues: updateValues, + ) ), ], ) @@ -266,6 +175,118 @@ class _BlockedServicesScreenStateWidget extends State { } } +class _Content extends StatelessWidget { + final List values; + final void Function(bool value, BlockedService item) updateValues; + + const _Content({ + required this.values, + required this.updateValues, + }); + + @override + Widget build(BuildContext context) { + final filteringProvider = Provider.of(context); + + switch (filteringProvider.blockedServicesLoadStatus) { + case LoadStatus.loading: + return Container( + padding: const EdgeInsets.symmetric(horizontal: 16), + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingBlockedServicesList, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + case LoadStatus.loaded: + return ListView.builder( + itemCount: filteringProvider.blockedServices!.services.length, + itemBuilder: (context, index) => Material( + color: Colors.transparent, + child: InkWell( + onTap: () => updateValues( + values.contains(filteringProvider.blockedServices!.services[index].id), + filteringProvider.blockedServices!.services[index] + ), + child: Padding( + padding: const EdgeInsets.only( + top: 6, + bottom: 6, + right: 12, + left: 24 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + filteringProvider.blockedServices!.services[index].name, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurface + ), + ), + Checkbox( + value: values.contains(filteringProvider.blockedServices!.services[index].id), + onChanged: (value) => updateValues( + value!, + filteringProvider.blockedServices!.services[index] + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5) + ), + ) + ], + ), + ), + ), + ) + ); + + case LoadStatus.error: + return Container( + padding: const EdgeInsets.symmetric(horizontal: 16), + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.blockedServicesListNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + default: + return const SizedBox(); + } + } +} + void openBlockedServicesModal({ required BuildContext context, required double width, diff --git a/lib/screens/filters/modals/delete_list_modal.dart b/lib/screens/filters/modals/delete_list_modal.dart index 5d751e4..86e7e88 100644 --- a/lib/screens/filters/modals/delete_list_modal.dart +++ b/lib/screens/filters/modals/delete_list_modal.dart @@ -5,9 +5,9 @@ class DeleteListModal extends StatelessWidget { final void Function() onConfirm; const DeleteListModal({ - Key? key, + super.key, required this.onConfirm - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/filters/modals/update_interval_lists_modal.dart b/lib/screens/filters/modals/update_interval_lists_modal.dart index 4827082..f6504a5 100644 --- a/lib/screens/filters/modals/update_interval_lists_modal.dart +++ b/lib/screens/filters/modals/update_interval_lists_modal.dart @@ -66,10 +66,12 @@ class _UpdateIntervalListsModalState extends State { topRight: Radius.circular(28) ), ), - child: _Content( - selectedOption: selectedOption, - onUpdateValue: _updateRadioValue, - onConfirm: () => widget.onChange(selectedOption!), + child: SafeArea( + child: _Content( + selectedOption: selectedOption, + onUpdateValue: _updateRadioValue, + onConfirm: () => widget.onChange(selectedOption!), + ), ) ), ); diff --git a/lib/screens/filters/selection/selection_lists.dart b/lib/screens/filters/selection/selection_lists.dart index 9562e74..b423f77 100644 --- a/lib/screens/filters/selection/selection_lists.dart +++ b/lib/screens/filters/selection/selection_lists.dart @@ -72,19 +72,18 @@ class SelectionSliverList extends StatelessWidget { final void Function() unselectAll; const SelectionSliverList({ - Key? key, + super.key, required this.lists, required this.selectedLists, required this.onSelect, required this.selectAll, required this.unselectAll, - }) : super(key: key); + }); @override Widget build(BuildContext context) { return SafeArea( top: false, - bottom: false, child: Builder( builder: (BuildContext context) { return CustomScrollView( diff --git a/lib/screens/home/management_modal/management_modal.dart b/lib/screens/home/management_modal/management_modal.dart index 79fe043..b18586b 100644 --- a/lib/screens/home/management_modal/management_modal.dart +++ b/lib/screens/home/management_modal/management_modal.dart @@ -19,9 +19,9 @@ class ManagementModal extends StatefulWidget { final bool dialog; const ManagementModal({ - Key? key, + super.key, required this.dialog - }) : super(key: key); + }); @override State createState() => _ManagementModalState(); @@ -141,33 +141,35 @@ class _ManagementModalState extends State with SingleTickerProv topRight: Radius.circular(28) ) ), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - child: SingleChildScrollView( - child: _Modal( - expandableController: expandableController, - updateBlocking: updateBlocking, - disableWithCountdown: disableWithCountdown, - animation: animation, - ) + child: SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: SingleChildScrollView( + child: _Modal( + expandableController: expandableController, + updateBlocking: updateBlocking, + disableWithCountdown: disableWithCountdown, + animation: animation, + ) + ), ), - ), - Padding( - padding: const EdgeInsets.all(24), - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - TextButton( - onPressed: () => Navigator.pop(context), - child: Text(AppLocalizations.of(context)!.close), - ), - ], + Padding( + padding: const EdgeInsets.all(24), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.close), + ), + ], + ), ), - ), - if (Platform.isIOS) const SizedBox(height: 16) - ], + if (Platform.isIOS) const SizedBox(height: 16) + ], + ), ), ); } @@ -201,24 +203,24 @@ class _Modal extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ Padding( - padding: const EdgeInsets.only(top: 24), - child: Icon( - Icons.shield_rounded, - size: 24, - color: Theme.of(context).listTileTheme.iconColor - ), - ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 16), - child: Text( - AppLocalizations.of(context)!.manageServer, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurface, + padding: const EdgeInsets.only(top: 24), + child: Icon( + Icons.shield_rounded, + size: 24, + color: Theme.of(context).listTileTheme.iconColor + ), + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 16), + child: Text( + AppLocalizations.of(context)!.manageServer, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + color: Theme.of(context).colorScheme.onSurface, + ), ), ), - ), ], ), ], diff --git a/lib/screens/home/top_items/top_items_screen.dart b/lib/screens/home/top_items/top_items_screen.dart index 01ac83e..7e7e623 100644 --- a/lib/screens/home/top_items/top_items_screen.dart +++ b/lib/screens/home/top_items/top_items_screen.dart @@ -122,14 +122,16 @@ class _TopItemsScreenState extends State { const SizedBox(width: 8) ], ), - body: _Content( - buildValue: widget.buildValue, - isClient: widget.isClient, - onTapEntry: widget.onTapEntry, - options: widget.options, - screenData: screenData, - total: total, - withProgressBar: widget.withProgressBar, + body: SafeArea( + child: _Content( + buildValue: widget.buildValue, + isClient: widget.isClient, + onTapEntry: widget.onTapEntry, + options: widget.options, + screenData: screenData, + total: total, + withProgressBar: widget.withProgressBar, + ), ), ), ); diff --git a/lib/screens/logs/configuration/logs_config_modal.dart b/lib/screens/logs/configuration/logs_config_modal.dart index 6352f36..5c2ba44 100644 --- a/lib/screens/logs/configuration/logs_config_modal.dart +++ b/lib/screens/logs/configuration/logs_config_modal.dart @@ -148,36 +148,38 @@ class _LogsConfigModalState extends State { ), color: Theme.of(context).dialogBackgroundColor ), - child: Builder( - builder: (context) { - switch (loadStatus) { - case LoadStatus.loading: - return const ConfigLogsLoading(); - - case LoadStatus.loaded: - return LogsConfigOptions( - generalSwitch: generalSwitch, - updateGeneralSwitch: (v) => setState(() => generalSwitch = v), - anonymizeClientIp: anonymizeClientIp, - updateAnonymizeClientIp: (v) => setState(() => anonymizeClientIp = v), - retentionItems: retentionItems, - retentionTime: retentionTime, - updateRetentionTime: (v) => setState(() => retentionTime = v), - onClear: () => widget.onClear(), - onConfirm: () => widget.onConfirm({ - "enabled": generalSwitch, - "interval": retentionTime, - "anonymize_client_ip": anonymizeClientIp - }) - ); - - case LoadStatus.error: - return const ConfigLogsError(); - - default: - return const SizedBox(); - } - }, + child: SafeArea( + child: Builder( + builder: (context) { + switch (loadStatus) { + case LoadStatus.loading: + return const ConfigLogsLoading(); + + case LoadStatus.loaded: + return LogsConfigOptions( + generalSwitch: generalSwitch, + updateGeneralSwitch: (v) => setState(() => generalSwitch = v), + anonymizeClientIp: anonymizeClientIp, + updateAnonymizeClientIp: (v) => setState(() => anonymizeClientIp = v), + retentionItems: retentionItems, + retentionTime: retentionTime, + updateRetentionTime: (v) => setState(() => retentionTime = v), + onClear: () => widget.onClear(), + onConfirm: () => widget.onConfirm({ + "enabled": generalSwitch, + "interval": retentionTime, + "anonymize_client_ip": anonymizeClientIp + }) + ); + + case LoadStatus.error: + return const ConfigLogsError(); + + default: + return const SizedBox(); + } + }, + ), ) ); } diff --git a/lib/screens/logs/details/log_details_screen.dart b/lib/screens/logs/details/log_details_screen.dart index ff88eaa..42918dd 100644 --- a/lib/screens/logs/details/log_details_screen.dart +++ b/lib/screens/logs/details/log_details_screen.dart @@ -25,10 +25,10 @@ class LogDetailsScreen extends StatelessWidget { final bool dialog; const LogDetailsScreen({ - Key? key, + super.key, required this.log, required this.dialog - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -322,7 +322,6 @@ class LogDetailsScreen extends StatelessWidget { ], body: SafeArea( top: false, - bottom: false, child: Builder( builder: (context) => CustomScrollView( slivers: [ diff --git a/lib/screens/logs/filters/clients_modal.dart b/lib/screens/logs/filters/clients_modal.dart index 1730d8e..84728f8 100644 --- a/lib/screens/logs/filters/clients_modal.dart +++ b/lib/screens/logs/filters/clients_modal.dart @@ -60,9 +60,11 @@ class _ClientsModalState extends State { ), color: Theme.of(context).dialogBackgroundColor ), - child: _ModalContent( - selectedClients: selectedClients, - onClientsSelected: (v) => setState(() => selectedClients = v), + child: SafeArea( + child: _ModalContent( + selectedClients: selectedClients, + onClientsSelected: (v) => setState(() => selectedClients = v), + ), ) ), ); diff --git a/lib/screens/logs/filters/filter_status_modal.dart b/lib/screens/logs/filters/filter_status_modal.dart index d3c1079..88f782b 100644 --- a/lib/screens/logs/filters/filter_status_modal.dart +++ b/lib/screens/logs/filters/filter_status_modal.dart @@ -62,10 +62,12 @@ class _FilterStatusModalState extends State { ), color: Theme.of(context).dialogBackgroundColor ), - child: _Content( - onApply: apply, - updateSelectedResultStatus: (v) => setState(() => selectedResultStatus = v), - selectedResultStatus: selectedResultStatus, + child: SafeArea( + child: _Content( + onApply: apply, + updateSelectedResultStatus: (v) => setState(() => selectedResultStatus = v), + selectedResultStatus: selectedResultStatus, + ), ) ); } diff --git a/lib/screens/logs/filters/logs_filters_modal.dart b/lib/screens/logs/filters/logs_filters_modal.dart index 8e1cdbe..5e7e746 100644 --- a/lib/screens/logs/filters/logs_filters_modal.dart +++ b/lib/screens/logs/filters/logs_filters_modal.dart @@ -19,9 +19,9 @@ class LogsFiltersModal extends StatefulWidget { final bool dialog; const LogsFiltersModal({ - Key? key, + super.key, required this.dialog - }) : super(key: key); + }); @override State createState() => _LogsFiltersModalState(); @@ -65,9 +65,11 @@ class _LogsFiltersModalState extends State { topRight: Radius.circular(28) ) ), - child: _FiltersList( - searchController: searchController, - onClearSearch: () => setState(() => searchController.text = "") + child: SafeArea( + child: _FiltersList( + searchController: searchController, + onClearSearch: () => setState(() => searchController.text = "") + ), ) ), ); diff --git a/lib/screens/servers/servers.dart b/lib/screens/servers/servers.dart index 180af77..25bca06 100644 --- a/lib/screens/servers/servers.dart +++ b/lib/screens/servers/servers.dart @@ -16,9 +16,9 @@ class Servers extends StatefulWidget { final double? breakingWidth; const Servers({ - Key? key, + super.key, this.breakingWidth - }) : super(key: key); + }); @override State createState() => _ServersState(); @@ -77,29 +77,31 @@ class _ServersState extends State { title: Text(AppLocalizations.of(context)!.servers), centerTitle: false, ), - body: Stack( - children: [ - ServersList( - context: context, - controllers: expandableControllerList, - onChange: expandOrContract, - scrollController: scrollController, - breakingWidth: widget.breakingWidth ?? 700, - ), - AnimatedPositioned( - duration: const Duration(milliseconds: 100), - curve: Curves.easeInOut, - bottom: isVisible ? - appConfigProvider.showingSnackbar - ? 70 : (Platform.isIOS ? 40 : 20) - : -70, - right: 20, - child: FloatingActionButton( - onPressed: openAddServerModal, - child: const Icon(Icons.add), + body: SafeArea( + child: Stack( + children: [ + ServersList( + context: context, + controllers: expandableControllerList, + onChange: expandOrContract, + scrollController: scrollController, + breakingWidth: widget.breakingWidth ?? 700, ), - ), - ], + AnimatedPositioned( + duration: const Duration(milliseconds: 100), + curve: Curves.easeInOut, + bottom: isVisible ? + appConfigProvider.showingSnackbar + ? 70 : (Platform.isIOS ? 40 : 20) + : -70, + right: 20, + child: FloatingActionButton( + onPressed: openAddServerModal, + child: const Icon(Icons.add), + ), + ), + ], + ), ), ); } diff --git a/lib/screens/settings/access_settings/add_client_modal.dart b/lib/screens/settings/access_settings/add_client_modal.dart index 014babd..bb0385a 100644 --- a/lib/screens/settings/access_settings/add_client_modal.dart +++ b/lib/screens/settings/access_settings/add_client_modal.dart @@ -44,9 +44,11 @@ class AddClientModal extends StatelessWidget { topRight: Radius.circular(28) ) ), - child: _Content( - type: type, - onConfirm: onConfirm, + child: SafeArea( + child: _Content( + type: type, + onConfirm: onConfirm, + ), ) ), ); diff --git a/lib/screens/settings/advanced_setings.dart b/lib/screens/settings/advanced_setings.dart index 39a93e3..9483cd8 100644 --- a/lib/screens/settings/advanced_setings.dart +++ b/lib/screens/settings/advanced_setings.dart @@ -11,7 +11,7 @@ import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; class AdvancedSettings extends StatelessWidget { - const AdvancedSettings({Key? key}) : super(key: key); + const AdvancedSettings({super.key}); @override Widget build(BuildContext context) { @@ -46,31 +46,33 @@ class AdvancedSettings extends StatelessWidget { title: Text(AppLocalizations.of(context)!.advancedSettings), surfaceTintColor: isDesktop(width) ? Colors.transparent : null, ), - body: ListView( - children: [ - CustomListTile( - icon: Icons.lock, - title: AppLocalizations.of(context)!.dontCheckCertificate, - subtitle: AppLocalizations.of(context)!.dontCheckCertificateDescription, - trailing: Switch( - value: appConfigProvider.overrideSslCheck, - onChanged: (value) => updateSettings( - newStatus: value, + body: SafeArea( + child: ListView( + children: [ + CustomListTile( + icon: Icons.lock, + title: AppLocalizations.of(context)!.dontCheckCertificate, + subtitle: AppLocalizations.of(context)!.dontCheckCertificateDescription, + trailing: Switch( + value: appConfigProvider.overrideSslCheck, + onChanged: (value) => updateSettings( + newStatus: value, + function: appConfigProvider.setOverrideSslCheck + ), + ), + onTap: () => updateSettings( + newStatus: !appConfigProvider.overrideSslCheck, function: appConfigProvider.setOverrideSslCheck ), + padding: const EdgeInsets.only( + top: 10, + bottom: 10, + left: 20, + right: 10 + ) ), - onTap: () => updateSettings( - newStatus: !appConfigProvider.overrideSslCheck, - function: appConfigProvider.setOverrideSslCheck - ), - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - left: 20, - right: 10 - ) - ), - ], + ], + ), ) ); } diff --git a/lib/screens/settings/customization/customization.dart b/lib/screens/settings/customization/customization.dart index 6ddd5e4..fb4526b 100644 --- a/lib/screens/settings/customization/customization.dart +++ b/lib/screens/settings/customization/customization.dart @@ -14,7 +14,7 @@ import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/constants/colors.dart'; class Customization extends StatelessWidget { - const Customization({Key? key}) : super(key: key); + const Customization({super.key}); @override Widget build(BuildContext context) { @@ -65,152 +65,154 @@ class _CustomizationWidgetState extends State { centerTitle: false, surfaceTintColor: isDesktop(width) ? Colors.transparent : null, ), - body: ListView( - children: [ - SectionLabel( - label: AppLocalizations.of(context)!.theme, - padding: const EdgeInsets.only(top: 10, left: 16, right: 16, bottom: 5), - ), - Column( - children: [ - CustomSwitchListTile( - value: selectedTheme == 0 ? true : false, - onChanged: (value) { - selectedTheme = value == true ? 0 : 1; - appConfigProvider.setSelectedTheme(value == true ? 0 : 1); - }, - title: AppLocalizations.of(context)!.systemDefined, - ), - const SizedBox(height: 10), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - ThemeModeButton( - icon: Icons.light_mode, - value: 1, - selected: selectedTheme, - label: AppLocalizations.of(context)!.light, - onChanged: (value) { - selectedTheme = value; - appConfigProvider.setSelectedTheme(value); - }, - disabled: selectedTheme == 0 ? true : false, - ), - ThemeModeButton( - icon: Icons.dark_mode, - value: 2, - selected: selectedTheme, - label: AppLocalizations.of(context)!.dark, - onChanged: (value) { - selectedTheme = value; - appConfigProvider.setSelectedTheme(value); - }, - disabled: selectedTheme == 0 ? true : false, - ), - ], - ), - ], - ), - SectionLabel( - label: AppLocalizations.of(context)!.color, - padding: const EdgeInsets.only(top: 45, left: 16, right: 16, bottom: 5), - ), - if (appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31) CustomSwitchListTile( - value: dynamicColor, - onChanged: (value) { - setState(() => dynamicColor = value); - appConfigProvider.setUseDynamicColor(value); - }, - title: AppLocalizations.of(context)!.useDynamicTheme, - ), - if (!(appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31)) const SizedBox(height: 20), - if (dynamicColor == false) ...[ - SizedBox( - width: MediaQuery.of(context).size.width, - height: 70, - child: ListView.builder( - scrollDirection: Axis.horizontal, - itemCount: colors.length, - itemBuilder: (context, index) { - if (index == 0) { - return Row( - children: [ - const SizedBox(width: 15), - ColorItem( - color: colors[index], - numericValue: index, - selectedValue: selectedColor, - onChanged: (value) { - setState(() => selectedColor = value); - appConfigProvider.setStaticColor(value); - } - ), - Container( - margin: const EdgeInsets.symmetric(horizontal: 10), - width: 1, - height: 60, - decoration: BoxDecoration( - color: Colors.grey, - borderRadius: BorderRadius.circular(1) - ), - ) - ], - ); - } - else if (index == colors.length-1) { - return Row( - children: [ - ColorItem( - color: colors[index], - numericValue: index, - selectedValue: selectedColor, - onChanged: (value) { - setState(() => selectedColor = value); - appConfigProvider.setStaticColor(value); - } - ), - const SizedBox(width: 15) - ], - ); - } - else { - return ColorItem( - color: colors[index], - numericValue: index, - selectedValue: selectedColor, - onChanged: (value) { - setState(() => selectedColor = value); - appConfigProvider.setStaticColor(value); - } - ); - } - }, - ), + body: SafeArea( + child: ListView( + children: [ + SectionLabel( + label: AppLocalizations.of(context)!.theme, + padding: const EdgeInsets.only(top: 10, left: 16, right: 16, bottom: 5), ), - Padding( - padding: const EdgeInsets.only( - left: 25, - top: 10 - ), - child: Text( - colorTranslation(context, selectedColor), - style: TextStyle( - color: Theme.of(context).listTileTheme.iconColor, - fontSize: 16 + Column( + children: [ + CustomSwitchListTile( + value: selectedTheme == 0 ? true : false, + onChanged: (value) { + selectedTheme = value == true ? 0 : 1; + appConfigProvider.setSelectedTheme(value == true ? 0 : 1); + }, + title: AppLocalizations.of(context)!.systemDefined, + ), + const SizedBox(height: 10), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + ThemeModeButton( + icon: Icons.light_mode, + value: 1, + selected: selectedTheme, + label: AppLocalizations.of(context)!.light, + onChanged: (value) { + selectedTheme = value; + appConfigProvider.setSelectedTheme(value); + }, + disabled: selectedTheme == 0 ? true : false, + ), + ThemeModeButton( + icon: Icons.dark_mode, + value: 2, + selected: selectedTheme, + label: AppLocalizations.of(context)!.dark, + onChanged: (value) { + selectedTheme = value; + appConfigProvider.setSelectedTheme(value); + }, + disabled: selectedTheme == 0 ? true : false, + ), + ], + ), + ], + ), + SectionLabel( + label: AppLocalizations.of(context)!.color, + padding: const EdgeInsets.only(top: 45, left: 16, right: 16, bottom: 5), + ), + if (appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31) CustomSwitchListTile( + value: dynamicColor, + onChanged: (value) { + setState(() => dynamicColor = value); + appConfigProvider.setUseDynamicColor(value); + }, + title: AppLocalizations.of(context)!.useDynamicTheme, + ), + if (!(appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31)) const SizedBox(height: 20), + if (dynamicColor == false) ...[ + SizedBox( + width: MediaQuery.of(context).size.width, + height: 70, + child: ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: colors.length, + itemBuilder: (context, index) { + if (index == 0) { + return Row( + children: [ + const SizedBox(width: 15), + ColorItem( + color: colors[index], + numericValue: index, + selectedValue: selectedColor, + onChanged: (value) { + setState(() => selectedColor = value); + appConfigProvider.setStaticColor(value); + } + ), + Container( + margin: const EdgeInsets.symmetric(horizontal: 10), + width: 1, + height: 60, + decoration: BoxDecoration( + color: Colors.grey, + borderRadius: BorderRadius.circular(1) + ), + ) + ], + ); + } + else if (index == colors.length-1) { + return Row( + children: [ + ColorItem( + color: colors[index], + numericValue: index, + selectedValue: selectedColor, + onChanged: (value) { + setState(() => selectedColor = value); + appConfigProvider.setStaticColor(value); + } + ), + const SizedBox(width: 15) + ], + ); + } + else { + return ColorItem( + color: colors[index], + numericValue: index, + selectedValue: selectedColor, + onChanged: (value) { + setState(() => selectedColor = value); + appConfigProvider.setStaticColor(value); + } + ); + } + }, ), ), + Padding( + padding: const EdgeInsets.only( + left: 25, + top: 10 + ), + child: Text( + colorTranslation(context, selectedColor), + style: TextStyle( + color: Theme.of(context).listTileTheme.iconColor, + fontSize: 16 + ), + ), + ) + ], + CustomSwitchListTile( + value: useThemeColorInsteadGreenRed, + onChanged: (value) { + setState(() => useThemeColorInsteadGreenRed = value); + appConfigProvider.setUseThemeColorForStatus(value); + }, + title: AppLocalizations.of(context)!.useThemeColorStatus, + subtitle: AppLocalizations.of(context)!.useThemeColorStatusDescription, ) ], - CustomSwitchListTile( - value: useThemeColorInsteadGreenRed, - onChanged: (value) { - setState(() => useThemeColorInsteadGreenRed = value); - appConfigProvider.setUseThemeColorForStatus(value); - }, - title: AppLocalizations.of(context)!.useThemeColorStatus, - subtitle: AppLocalizations.of(context)!.useThemeColorStatusDescription, - ) - ], + ), ), ); } diff --git a/lib/screens/settings/dhcp/add_static_lease_modal.dart b/lib/screens/settings/dhcp/add_static_lease_modal.dart index fd222d3..c80e848 100644 --- a/lib/screens/settings/dhcp/add_static_lease_modal.dart +++ b/lib/screens/settings/dhcp/add_static_lease_modal.dart @@ -3,7 +3,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/models/dhcp.dart'; -class AddStaticLeaseModal extends StatefulWidget { +class AddStaticLeaseModal extends StatelessWidget { final void Function(Lease) onConfirm; final bool dialog; @@ -14,10 +14,49 @@ class AddStaticLeaseModal extends StatefulWidget { }); @override - State createState() => _AddStaticLeaseModalState(); + Widget build(BuildContext context) { + if (dialog == true) { + return Dialog( + child: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: 400 + ), + child: _Content(onConfirm: onConfirm) + ), + ); + } + else { + return Padding( + padding: MediaQuery.of(context).viewInsets, + child: Container( + decoration: BoxDecoration( + color: Theme.of(context).dialogBackgroundColor, + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(28), + topRight: Radius.circular(28) + ) + ), + child: SafeArea( + child: _Content(onConfirm: onConfirm) + ) + ), + ); + } + } } -class _AddStaticLeaseModalState extends State { +class _Content extends StatefulWidget { + final void Function(Lease) onConfirm; + + const _Content({ + required this.onConfirm + }); + + @override + State<_Content> createState() => __ContentState(); +} + +class __ContentState extends State<_Content> { final TextEditingController macController = TextEditingController(); String? macError; final TextEditingController ipController = TextEditingController(); @@ -67,175 +106,147 @@ class _AddStaticLeaseModalState extends State { @override Widget build(BuildContext context) { - Widget content() { - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - child: SingleChildScrollView( - child: Wrap( - children: [ - Padding( - padding: const EdgeInsets.only(bottom: 16), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Flexible( - child: Column( - children: [ - Padding( - padding: const EdgeInsets.only(top: 24), - child: Icon( - Icons.add, - size: 24, - color: Theme.of(context).listTileTheme.iconColor - ), - ), - const SizedBox(height: 16), - Text( - AppLocalizations.of(context)!.addStaticLease, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurface - ), - ), - ], - ), - ), - ], - ), - ), - Padding( - padding: const EdgeInsets.only( - left: 24, right: 24, bottom: 12 - ), - child: TextFormField( - controller: macController, - onChanged: validateMac, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.smartphone_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: macError, - labelText: AppLocalizations.of(context)!.macAddress, - ), - ), - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), - child: TextFormField( - controller: ipController, - onChanged: validateIp, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.link_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: ipError, - labelText: AppLocalizations.of(context)!.ipAddress, - ), - ), - ), - Padding( - padding: const EdgeInsets.only( - left: 24, right: 24, top: 12 - ), - child: TextFormField( - controller: hostNameController, - onChanged: (value) { - if (value != '') { - setState(() => hostNameError = null); - } - else { - setState(() => hostNameError = AppLocalizations.of(context)!.hostNameError); - } - validateData(); - }, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.badge_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: hostNameError, - labelText: AppLocalizations.of(context)!.hostName, - ), - ), - ), - ], - ), - ), - ), - Padding( - padding: const EdgeInsets.all(24), - child: Row( - mainAxisAlignment: MainAxisAlignment.end, + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: SingleChildScrollView( + child: Wrap( children: [ - TextButton( - onPressed: () => Navigator.pop(context), - child: Text(AppLocalizations.of(context)!.cancel), + Padding( + padding: const EdgeInsets.only(bottom: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Flexible( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 24), + child: Icon( + Icons.add, + size: 24, + color: Theme.of(context).listTileTheme.iconColor + ), + ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.addStaticLease, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + color: Theme.of(context).colorScheme.onSurface + ), + ), + ], + ), + ), + ], + ), ), - const SizedBox(width: 20), - TextButton( - onPressed: validData == true - ? () { - Navigator.pop(context); - widget.onConfirm( - Lease( - mac: macController.text, - hostname: hostNameController.text, - ip: ipController.text + Padding( + padding: const EdgeInsets.only( + left: 24, right: 24, bottom: 12 + ), + child: TextFormField( + controller: macController, + onChanged: validateMac, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.smartphone_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) ) - ); - } - : null, - child: Text( - AppLocalizations.of(context)!.confirm, - style: TextStyle( - color: validData == true - ? Theme.of(context).colorScheme.primary - : Colors.grey + ), + errorText: macError, + labelText: AppLocalizations.of(context)!.macAddress, + ), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + child: TextFormField( + controller: ipController, + onChanged: validateIp, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.link_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: ipError, + labelText: AppLocalizations.of(context)!.ipAddress, + ), + ), + ), + Padding( + padding: const EdgeInsets.only( + left: 24, right: 24, top: 12 + ), + child: TextFormField( + controller: hostNameController, + onChanged: (value) { + if (value != '') { + setState(() => hostNameError = null); + } + else { + setState(() => hostNameError = AppLocalizations.of(context)!.hostNameError); + } + validateData(); + }, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.badge_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: hostNameError, + labelText: AppLocalizations.of(context)!.hostName, ), ), ), ], ), - ) - ], - ); - } - - if (widget.dialog == true) { - return Dialog( - child: ConstrainedBox( - constraints: const BoxConstraints( - maxWidth: 400 ), - child: content(), ), - ); - } - else { - return Padding( - padding: MediaQuery.of(context).viewInsets, - child: Container( - decoration: BoxDecoration( - color: Theme.of(context).dialogBackgroundColor, - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(28), - topRight: Radius.circular(28) - ) + Padding( + padding: const EdgeInsets.all(24), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.cancel), + ), + const SizedBox(width: 20), + TextButton( + onPressed: validData == true + ? () { + Navigator.pop(context); + widget.onConfirm( + Lease( + mac: macController.text, + hostname: hostNameController.text, + ip: ipController.text + ) + ); + } + : null, + child: Text( + AppLocalizations.of(context)!.confirm, + style: TextStyle( + color: validData == true + ? Theme.of(context).colorScheme.primary + : Colors.grey + ), + ), + ), + ], ), - child: content() - ), - ); - } + ) + ], + ); } } \ No newline at end of file diff --git a/lib/screens/settings/dhcp/dhcp.dart b/lib/screens/settings/dhcp/dhcp.dart index fff464e..75d1856 100644 --- a/lib/screens/settings/dhcp/dhcp.dart +++ b/lib/screens/settings/dhcp/dhcp.dart @@ -411,328 +411,330 @@ class _DhcpScreenState extends State { const SizedBox(width: 10) ] : null, ), - body: Builder( - builder: (context) { - switch (dhcpProvider.loadStatus) { - case LoadStatus.loading: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingDhcp, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), - ); - - case LoadStatus.loaded: - if (selectedInterface != null) { - return SingleChildScrollView( - child: Wrap( + body: SafeArea( + child: Builder( + builder: (context) { + switch (dhcpProvider.loadStatus) { + case LoadStatus.loading: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, children: [ - DhcpMainButton( - selectedInterface: selectedInterface, - enabled: enabled, - setEnabled: (v) => setState(() => enabled = v) - ), - if (selectedInterface!.ipv4Addresses.isNotEmpty) ...[ - SectionLabel( - label: AppLocalizations.of(context)!.ipv4settings, - padding: const EdgeInsets.only( - top: 24, left: 16, right: 16, bottom: 8 - ) + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingDhcp, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, ), - _DhcpField( - icon: Icons.skip_previous_rounded, - label: AppLocalizations.of(context)!.startOfRange, - controller: ipv4StartRangeController, - onChanged: (value) => validateIpV4(value, 'ipv4StartRangeError', AppLocalizations.of(context)!.ipNotValid), - error: ipv4StartRangeError - ), - _DhcpField( - icon: Icons.skip_next_rounded, - label: AppLocalizations.of(context)!.endOfRange, - controller: ipv4EndRangeController, - onChanged: (value) => validateIpV4(value, 'ipv4EndRangeError', AppLocalizations.of(context)!.ipNotValid), - error: ipv4EndRangeError - ), - _DhcpField( - icon: Icons.hub_rounded, - label: AppLocalizations.of(context)!.subnetMask, - controller: ipv4SubnetMaskController, - onChanged: (value) => validateIpV4(value, 'ipv4SubnetMaskError', AppLocalizations.of(context)!.subnetMaskNotValid), - error: ipv4SubnetMaskError - ), - _DhcpField( - icon: Icons.router_rounded, - label: AppLocalizations.of(context)!.gateway, - controller: ipv4GatewayController, - onChanged: (value) => validateIpV4(value, 'ipv4GatewayError', AppLocalizations.of(context)!.gatewayNotValid), - error: ipv4GatewayError - ), - _DhcpField( - icon: Icons.timer, - label: AppLocalizations.of(context)!.leaseTime, - controller: ipv4LeaseTimeController, - onChanged: (value) { - if (int.tryParse(value).runtimeType == int) { - setState(() => ipv4LeaseTimeError = null); - } - else { - setState(() => ipv4LeaseTimeError = AppLocalizations.of(context)!.leaseTimeNotValid); - } - }, - error: ipv4LeaseTimeError - ), - ], - if (selectedInterface!.ipv6Addresses.isNotEmpty) ...[ - SectionLabel( - label: AppLocalizations.of(context)!.ipv6settings, - padding: const EdgeInsets.all(16) - ), - _DhcpField( - icon: Icons.skip_next_rounded, - label: AppLocalizations.of(context)!.startOfRange, - controller: ipv6StartRangeController, - onChanged: (value) => validateIpV6(value, 'ipv6StartRangeError', AppLocalizations.of(context)!.ipNotValid), - error: ipv6StartRangeError - ), - _DhcpField( - icon: Icons.skip_previous_rounded, - label: AppLocalizations.of(context)!.endOfRange, - controller: ipv6EndRangeController, - onChanged: (value) => validateIpV6(value, 'ipv6EndRangeError', AppLocalizations.of(context)!.ipNotValid), - error: ipv6EndRangeError - ), - _DhcpField( - icon: Icons.timer, - label: AppLocalizations.of(context)!.leaseTime, - controller: ipv6LeaseTimeController, - onChanged: (value) { - if (int.tryParse(value).runtimeType == int) { - setState(() => ipv6LeaseTimeError = null); - } - else { - setState(() => ipv6LeaseTimeError = AppLocalizations.of(context)!.leaseTimeNotValid); - } - }, - error: ipv6LeaseTimeError - ) - ], - const SizedBox(height: 20), - SectionLabel( - label: AppLocalizations.of(context)!.dhcpLeases, - padding: const EdgeInsets.all(16), - ), - if (width <= 900) Material( - color: Colors.transparent, - child: InkWell( - onTap: () { - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus!.leases, - staticLeases: false, - ) - ) - ); - }, - child: Container( - padding: const EdgeInsets.all(16), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - AppLocalizations.of(context)!.dhcpLeases, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 16, - color: Theme.of(context).colorScheme.onSurface, - ), - ), - Icon( - Icons.arrow_forward_rounded, - color: Theme.of(context).colorScheme.onSurface, - ) - ], - ), - ), - ), - ), - if (width <= 900) Material( - color: Colors.transparent, - child: InkWell( - onTap: () { - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, - staticLeases: true, - ) - ) - ); - }, - child: Container( - padding: const EdgeInsets.all(16), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - AppLocalizations.of(context)!.dhcpStatic, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 16, - color: Theme.of(context).colorScheme.onSurface, - ), - ), - Icon( - Icons.arrow_forward_rounded, - color: Theme.of(context).colorScheme.onSurface, - ) - ], - ), - ), - ), - ), - if (width > 900) Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - ElevatedButton( - onPressed: () { - if (!(Platform.isAndroid || Platform.isIOS)) { - SplitView.of(context).push( - DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus!.leases, - staticLeases: false, - ) - ); - } - else { - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus!.leases, - staticLeases: false, - ) - ) - ); - } - }, - child: Row( - children: [ - Text(AppLocalizations.of(context)!.dhcpLeases), - const SizedBox(width: 8), - const Icon(Icons.arrow_forward_rounded) - ], - ) - ), - ElevatedButton( - onPressed: () { - if (!(Platform.isAndroid || Platform.isIOS)) { - SplitView.of(context).push( - DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, - staticLeases: true, - ) - ); - } - else { - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => DhcpLeases( - items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, - staticLeases: true, - ) - ) - ); - } - }, - child: Row( - children: [ - Text(AppLocalizations.of(context)!.dhcpStatic), - const SizedBox(width: 8), - const Icon(Icons.arrow_forward_rounded) - ], - ) - ), - ], - ), - const SizedBox(height: 10) + ) ], ), ); - } - else { - return Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Flexible( - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Text( - AppLocalizations.of(context)!.neededSelectInterface, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurface.withOpacity(0.5) + + case LoadStatus.loaded: + if (selectedInterface != null) { + return SingleChildScrollView( + child: Wrap( + children: [ + DhcpMainButton( + selectedInterface: selectedInterface, + enabled: enabled, + setEnabled: (v) => setState(() => enabled = v) + ), + if (selectedInterface!.ipv4Addresses.isNotEmpty) ...[ + SectionLabel( + label: AppLocalizations.of(context)!.ipv4settings, + padding: const EdgeInsets.only( + top: 24, left: 16, right: 16, bottom: 8 + ) + ), + _DhcpField( + icon: Icons.skip_previous_rounded, + label: AppLocalizations.of(context)!.startOfRange, + controller: ipv4StartRangeController, + onChanged: (value) => validateIpV4(value, 'ipv4StartRangeError', AppLocalizations.of(context)!.ipNotValid), + error: ipv4StartRangeError + ), + _DhcpField( + icon: Icons.skip_next_rounded, + label: AppLocalizations.of(context)!.endOfRange, + controller: ipv4EndRangeController, + onChanged: (value) => validateIpV4(value, 'ipv4EndRangeError', AppLocalizations.of(context)!.ipNotValid), + error: ipv4EndRangeError + ), + _DhcpField( + icon: Icons.hub_rounded, + label: AppLocalizations.of(context)!.subnetMask, + controller: ipv4SubnetMaskController, + onChanged: (value) => validateIpV4(value, 'ipv4SubnetMaskError', AppLocalizations.of(context)!.subnetMaskNotValid), + error: ipv4SubnetMaskError + ), + _DhcpField( + icon: Icons.router_rounded, + label: AppLocalizations.of(context)!.gateway, + controller: ipv4GatewayController, + onChanged: (value) => validateIpV4(value, 'ipv4GatewayError', AppLocalizations.of(context)!.gatewayNotValid), + error: ipv4GatewayError + ), + _DhcpField( + icon: Icons.timer, + label: AppLocalizations.of(context)!.leaseTime, + controller: ipv4LeaseTimeController, + onChanged: (value) { + if (int.tryParse(value).runtimeType == int) { + setState(() => ipv4LeaseTimeError = null); + } + else { + setState(() => ipv4LeaseTimeError = AppLocalizations.of(context)!.leaseTimeNotValid); + } + }, + error: ipv4LeaseTimeError + ), + ], + if (selectedInterface!.ipv6Addresses.isNotEmpty) ...[ + SectionLabel( + label: AppLocalizations.of(context)!.ipv6settings, + padding: const EdgeInsets.all(16) + ), + _DhcpField( + icon: Icons.skip_next_rounded, + label: AppLocalizations.of(context)!.startOfRange, + controller: ipv6StartRangeController, + onChanged: (value) => validateIpV6(value, 'ipv6StartRangeError', AppLocalizations.of(context)!.ipNotValid), + error: ipv6StartRangeError + ), + _DhcpField( + icon: Icons.skip_previous_rounded, + label: AppLocalizations.of(context)!.endOfRange, + controller: ipv6EndRangeController, + onChanged: (value) => validateIpV6(value, 'ipv6EndRangeError', AppLocalizations.of(context)!.ipNotValid), + error: ipv6EndRangeError + ), + _DhcpField( + icon: Icons.timer, + label: AppLocalizations.of(context)!.leaseTime, + controller: ipv6LeaseTimeController, + onChanged: (value) { + if (int.tryParse(value).runtimeType == int) { + setState(() => ipv6LeaseTimeError = null); + } + else { + setState(() => ipv6LeaseTimeError = AppLocalizations.of(context)!.leaseTimeNotValid); + } + }, + error: ipv6LeaseTimeError + ) + ], + const SizedBox(height: 20), + SectionLabel( + label: AppLocalizations.of(context)!.dhcpLeases, + padding: const EdgeInsets.all(16), + ), + if (width <= 900) Material( + color: Colors.transparent, + child: InkWell( + onTap: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => DhcpLeases( + items: dhcpProvider.dhcp!.dhcpStatus!.leases, + staticLeases: false, + ) + ) + ); + }, + child: Container( + padding: const EdgeInsets.all(16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + AppLocalizations.of(context)!.dhcpLeases, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurface, + ), + ), + Icon( + Icons.arrow_forward_rounded, + color: Theme.of(context).colorScheme.onSurface, + ) + ], ), ), ), - const SizedBox(height: 30), - ElevatedButton( - onPressed: selectInterface, - child: Text(AppLocalizations.of(context)!.selectInterface) + ), + if (width <= 900) Material( + color: Colors.transparent, + child: InkWell( + onTap: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => DhcpLeases( + items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, + staticLeases: true, + ) + ) + ); + }, + child: Container( + padding: const EdgeInsets.all(16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + AppLocalizations.of(context)!.dhcpStatic, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurface, + ), + ), + Icon( + Icons.arrow_forward_rounded, + color: Theme.of(context).colorScheme.onSurface, + ) + ], + ), + ), ), - ], - ), + ), + if (width > 900) Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + ElevatedButton( + onPressed: () { + if (!(Platform.isAndroid || Platform.isIOS)) { + SplitView.of(context).push( + DhcpLeases( + items: dhcpProvider.dhcp!.dhcpStatus!.leases, + staticLeases: false, + ) + ); + } + else { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => DhcpLeases( + items: dhcpProvider.dhcp!.dhcpStatus!.leases, + staticLeases: false, + ) + ) + ); + } + }, + child: Row( + children: [ + Text(AppLocalizations.of(context)!.dhcpLeases), + const SizedBox(width: 8), + const Icon(Icons.arrow_forward_rounded) + ], + ) + ), + ElevatedButton( + onPressed: () { + if (!(Platform.isAndroid || Platform.isIOS)) { + SplitView.of(context).push( + DhcpLeases( + items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, + staticLeases: true, + ) + ); + } + else { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => DhcpLeases( + items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, + staticLeases: true, + ) + ) + ); + } + }, + child: Row( + children: [ + Text(AppLocalizations.of(context)!.dhcpStatic), + const SizedBox(width: 8), + const Icon(Icons.arrow_forward_rounded) + ], + ) + ), + ], + ), + const SizedBox(height: 10) + ], ), - ], + ); + } + else { + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Flexible( + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + AppLocalizations.of(context)!.neededSelectInterface, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurface.withOpacity(0.5) + ), + ), + ), + const SizedBox(height: 30), + ElevatedButton( + onPressed: selectInterface, + child: Text(AppLocalizations.of(context)!.selectInterface) + ), + ], + ), + ), + ], + ); + } + + case LoadStatus.error: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.dhcpSettingsNotLoaded, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), ); - } - - case LoadStatus.error: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.dhcpSettingsNotLoaded, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), - ); - - default: - return const SizedBox(); - } - }, + + default: + return const SizedBox(); + } + }, + ), ) ); } diff --git a/lib/screens/settings/dhcp/dhcp_leases.dart b/lib/screens/settings/dhcp/dhcp_leases.dart index 91bd1cf..9bb1fe3 100644 --- a/lib/screens/settings/dhcp/dhcp_leases.dart +++ b/lib/screens/settings/dhcp/dhcp_leases.dart @@ -22,10 +22,10 @@ class DhcpLeases extends StatelessWidget { final bool staticLeases; const DhcpLeases({ - Key? key, + super.key, required this.items, required this.staticLeases, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -130,32 +130,34 @@ class DhcpLeases extends StatelessWidget { ), ), body: items.isNotEmpty - ? ListView.builder( - padding: const EdgeInsets.only(top: 0), - itemCount: items.length, - itemBuilder: (context, index) => ListTile( - isThreeLine: true, - title: Text(items[index].ip), - subtitle: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(items[index].mac), - Text(items[index].hostname), - ], + ? SafeArea( + child: ListView.builder( + padding: const EdgeInsets.only(top: 0), + itemCount: items.length, + itemBuilder: (context, index) => ListTile( + isThreeLine: true, + title: Text(items[index].ip), + subtitle: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(items[index].mac), + Text(items[index].hostname), + ], + ), + trailing: staticLeases == true + ? IconButton( + onPressed: () { + showModal( + context: context, + builder: (context) => DeleteStaticLeaseModal( + onConfirm: () => deleteLease(items[index]) + ) + ); + }, + icon: const Icon(Icons.delete) + ) + : null, ), - trailing: staticLeases == true - ? IconButton( - onPressed: () { - showModal( - context: context, - builder: (context) => DeleteStaticLeaseModal( - onConfirm: () => deleteLease(items[index]) - ) - ); - }, - icon: const Icon(Icons.delete) - ) - : null, ), ) : Center( diff --git a/lib/screens/settings/dhcp/select_interface_modal.dart b/lib/screens/settings/dhcp/select_interface_modal.dart index e2dc26d..a9c9c67 100644 --- a/lib/screens/settings/dhcp/select_interface_modal.dart +++ b/lib/screens/settings/dhcp/select_interface_modal.dart @@ -137,16 +137,17 @@ class SelectInterfaceModal extends StatelessWidget { ), ), Expanded( - child: ListView.builder( - controller: controller, - itemCount: interfaces.length, - itemBuilder: (context, index) => DhcpInterfaceItem( - networkInterface: interfaces[index], - onSelect: onSelect - ) + child: SafeArea( + child: ListView.builder( + controller: controller, + itemCount: interfaces.length, + itemBuilder: (context, index) => DhcpInterfaceItem( + networkInterface: interfaces[index], + onSelect: onSelect + ) + ), ) ), - const SizedBox(height: 16) ], ), ); diff --git a/lib/screens/settings/dns/bootstrap_dns.dart b/lib/screens/settings/dns/bootstrap_dns.dart index 2ae3f4f..c970f34 100644 --- a/lib/screens/settings/dns/bootstrap_dns.dart +++ b/lib/screens/settings/dns/bootstrap_dns.dart @@ -117,105 +117,107 @@ class _BootstrapDnsScreenState extends State { const SizedBox(width: 10) ], ), - body: ListView( - padding: const EdgeInsets.only(top: 10), - children: [ - Card( - margin: const EdgeInsets.only( - left: 16, right: 16, bottom: 20 - ), - child: Padding( - padding: const EdgeInsets.all(20), - child: Row( - children: [ - Icon( - Icons.info_rounded, - color: Theme.of(context).listTileTheme.iconColor, - ), - const SizedBox(width: 20), - Flexible( - child: Text( - AppLocalizations.of(context)!.bootstrapDnsServersInfo, - style: TextStyle( - color: Theme.of(context).colorScheme.onSurface - ), + body: SafeArea( + child: ListView( + padding: const EdgeInsets.only(top: 10), + children: [ + Card( + margin: const EdgeInsets.only( + left: 16, right: 16, bottom: 20 + ), + child: Padding( + padding: const EdgeInsets.all(20), + child: Row( + children: [ + Icon( + Icons.info_rounded, + color: Theme.of(context).listTileTheme.iconColor, + ), + const SizedBox(width: 20), + Flexible( + child: Text( + AppLocalizations.of(context)!.bootstrapDnsServersInfo, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ) ) - ) - ], + ], + ), ), ), - ), - const SizedBox(height: 10), - if (bootstrapControllers.isEmpty) Column( - children: [ - Padding( - padding: const EdgeInsets.all(10), - child: Center( - child: Text( - AppLocalizations.of(context)!.noBootstrapDns, - style: TextStyle( - color: Theme.of(context).colorScheme.onSurfaceVariant, - fontSize: 16 + const SizedBox(height: 10), + if (bootstrapControllers.isEmpty) Column( + children: [ + Padding( + padding: const EdgeInsets.all(10), + child: Center( + child: Text( + AppLocalizations.of(context)!.noBootstrapDns, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant, + fontSize: 16 + ), ), ), ), - ), - const SizedBox(height: 20), - ], - ), - ...bootstrapControllers.map((c) => Padding( - padding: const EdgeInsets.only( - left: 16, right: 6, bottom: 20 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: TextFormField( - controller: c['controller'], - onChanged: (value) => validateIp(c, value), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.dns_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: c['error'], - labelText: AppLocalizations.of(context)!.dnsServer, - ) - ), - ), - const SizedBox(width: 8), - IconButton( - onPressed: () { - setState(() => bootstrapControllers = bootstrapControllers.where((con) => con != c).toList()); - checkValidValues(); - }, - icon: const Icon(Icons.remove_circle_outline) - ) + const SizedBox(height: 20), ], ), - )).toList(), - Row( - mainAxisAlignment: MainAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - ElevatedButton.icon( - onPressed: () { - setState(() => bootstrapControllers.add({ - 'controller': TextEditingController(), - 'error': null - })); - checkValidValues(); - }, - icon: const Icon(Icons.add), - label: Text(AppLocalizations.of(context)!.addItem) + ...bootstrapControllers.map((c) => Padding( + padding: const EdgeInsets.only( + left: 16, right: 6, bottom: 20 ), - ], - ), - const SizedBox(height: 20) - ], + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: TextFormField( + controller: c['controller'], + onChanged: (value) => validateIp(c, value), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.dns_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: c['error'], + labelText: AppLocalizations.of(context)!.dnsServer, + ) + ), + ), + const SizedBox(width: 8), + IconButton( + onPressed: () { + setState(() => bootstrapControllers = bootstrapControllers.where((con) => con != c).toList()); + checkValidValues(); + }, + icon: const Icon(Icons.remove_circle_outline) + ) + ], + ), + )).toList(), + Row( + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + ElevatedButton.icon( + onPressed: () { + setState(() => bootstrapControllers.add({ + 'controller': TextEditingController(), + 'error': null + })); + checkValidValues(); + }, + icon: const Icon(Icons.add), + label: Text(AppLocalizations.of(context)!.addItem) + ), + ], + ), + const SizedBox(height: 20) + ], + ), ), ); } diff --git a/lib/screens/settings/dns/cache_config.dart b/lib/screens/settings/dns/cache_config.dart index 7f6f63a..40a99f8 100644 --- a/lib/screens/settings/dns/cache_config.dart +++ b/lib/screens/settings/dns/cache_config.dart @@ -169,81 +169,83 @@ class _CacheConfigDnsScreenState extends State { const SizedBox(width: 10) ], ), - body: ListView( - padding: const EdgeInsets.only(top: 10), - children: [ - numericField( - controller: cacheSizeController, - label: AppLocalizations.of(context)!.cacheSize, - helper: AppLocalizations.of(context)!.inBytes, - error: cacheSizeError, - onChanged: (value) { - if (int.tryParse(value) != null) { - setState(() => cacheSizeError = null); + body: SafeArea( + child: ListView( + padding: const EdgeInsets.only(top: 10), + children: [ + numericField( + controller: cacheSizeController, + label: AppLocalizations.of(context)!.cacheSize, + helper: AppLocalizations.of(context)!.inBytes, + error: cacheSizeError, + onChanged: (value) { + if (int.tryParse(value) != null) { + setState(() => cacheSizeError = null); + } + else { + setState(() => cacheSizeError = AppLocalizations.of(context)!.valueNotNumber); + } + checkValidData(); } - else { - setState(() => cacheSizeError = AppLocalizations.of(context)!.valueNotNumber); + ), + const SizedBox(height: 30), + numericField( + controller: overrideMinTtlController, + label: AppLocalizations.of(context)!.overrideMinimumTtl, + helper: AppLocalizations.of(context)!.overrideMinimumTtlDescription, + error: overrideMinTtlError, + onChanged: (value) { + if (int.tryParse(value) != null) { + setState(() => overrideMinTtlError = null); + } + else { + setState(() => overrideMinTtlError = AppLocalizations.of(context)!.valueNotNumber); + } + checkValidData(); } - checkValidData(); - } - ), - const SizedBox(height: 30), - numericField( - controller: overrideMinTtlController, - label: AppLocalizations.of(context)!.overrideMinimumTtl, - helper: AppLocalizations.of(context)!.overrideMinimumTtlDescription, - error: overrideMinTtlError, - onChanged: (value) { - if (int.tryParse(value) != null) { - setState(() => overrideMinTtlError = null); + ), + const SizedBox(height: 30), + numericField( + controller: overrideMaxTtlController, + label: AppLocalizations.of(context)!.overrideMaximumTtl, + helper: AppLocalizations.of(context)!.overrideMaximumTtlDescription, + error: overrideMaxTtlError, + onChanged: (value) { + if (int.tryParse(value) != null) { + setState(() => overrideMaxTtlError = null); + } + else { + setState(() => overrideMaxTtlError = AppLocalizations.of(context)!.valueNotNumber); + } + checkValidData(); } - else { - setState(() => overrideMinTtlError = AppLocalizations.of(context)!.valueNotNumber); - } - checkValidData(); - } - ), - const SizedBox(height: 30), - numericField( - controller: overrideMaxTtlController, - label: AppLocalizations.of(context)!.overrideMaximumTtl, - helper: AppLocalizations.of(context)!.overrideMaximumTtlDescription, - error: overrideMaxTtlError, - onChanged: (value) { - if (int.tryParse(value) != null) { - setState(() => overrideMaxTtlError = null); - } - else { - setState(() => overrideMaxTtlError = AppLocalizations.of(context)!.valueNotNumber); - } - checkValidData(); - } - ), - const SizedBox(height: 10), - CustomSwitchListTile( - value: optimisticCache, - onChanged: (value) => setState(() => optimisticCache = value), - title: AppLocalizations.of(context)!.optimisticCaching, - subtitle: AppLocalizations.of(context)!.optimisticCachingDescription, - ), - const SizedBox(height: 12), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - ElevatedButton.icon( - onPressed: () => showDialog( - context: context, - builder: (context) => ClearDnsCacheDialog( - onConfirm: clearCache - ) - ), - icon: const Icon(Icons.delete_rounded), - label: Text(AppLocalizations.of(context)!.clearDnsCache), - ), - ], - ), - const SizedBox(height: 16) - ], + ), + const SizedBox(height: 10), + CustomSwitchListTile( + value: optimisticCache, + onChanged: (value) => setState(() => optimisticCache = value), + title: AppLocalizations.of(context)!.optimisticCaching, + subtitle: AppLocalizations.of(context)!.optimisticCachingDescription, + ), + const SizedBox(height: 12), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ElevatedButton.icon( + onPressed: () => showDialog( + context: context, + builder: (context) => ClearDnsCacheDialog( + onConfirm: clearCache + ) + ), + icon: const Icon(Icons.delete_rounded), + label: Text(AppLocalizations.of(context)!.clearDnsCache), + ), + ], + ), + const SizedBox(height: 16) + ], + ), ), ); } diff --git a/lib/screens/settings/dns/comment_modal.dart b/lib/screens/settings/dns/comment_modal.dart index a9dd60d..92d4c0f 100644 --- a/lib/screens/settings/dns/comment_modal.dart +++ b/lib/screens/settings/dns/comment_modal.dart @@ -1,141 +1,30 @@ import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -class CommentModal extends StatefulWidget { +class CommentModal extends StatelessWidget { final String? comment; final void Function(String) onConfirm; final bool dialog; const CommentModal({ - Key? key, + super.key, this.comment, required this.onConfirm, required this.dialog - }) : super(key: key); - - @override - State createState() => _CommentModalState(); -} - -class _CommentModalState extends State { - final TextEditingController commentController = TextEditingController(); - - bool validData = false; - - @override - void initState() { - if (widget.comment != null) { - commentController.text = widget.comment!.replaceFirst(RegExp(r'#(\s)?'), ""); - } - super.initState(); - } + }); @override Widget build(BuildContext context) { - Widget content() { - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - child: SingleChildScrollView( - child: Wrap( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Column( - children: [ - Padding( - padding: const EdgeInsets.only(top: 24), - child: Icon( - Icons.comment_rounded, - size: 24, - color: Theme.of(context).colorScheme.secondary, - ), - ), - const SizedBox(height: 16), - Text( - AppLocalizations.of(context)!.comment, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurface - ), - ), - const SizedBox(height: 16), - ], - ), - ], - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: TextFormField( - controller: commentController, - onChanged: (value) { - if (value != '') { - setState(() => validData = true); - } - else { - setState(() => validData = false); - } - }, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.comment_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - labelText: AppLocalizations.of(context)!.comment, - helperText: AppLocalizations.of(context)!.commentsDescription, - helperMaxLines: 3 - ) - ), - ), - ], - ), - ), - ), - Padding( - padding: const EdgeInsets.all(24), - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - TextButton( - onPressed: () => Navigator.pop(context), - child: Text(AppLocalizations.of(context)!.cancel) - ), - const SizedBox(width: 20), - TextButton( - onPressed: validData == true - ? () { - Navigator.pop(context); - widget.onConfirm("# ${commentController.text}"); - } - : null, - child: Text( - AppLocalizations.of(context)!.confirm, - style: TextStyle( - color: validData == true - ? Theme.of(context).colorScheme.primary - : Colors.grey - ), - ) - ), - ], - ), - ) - ], - ); - } - - if (widget.dialog == true) { + if (dialog == true) { return Dialog( child: ConstrainedBox( constraints: const BoxConstraints( maxWidth: 400 ), - child: content() + child: _Content( + comment: comment, + onConfirm: onConfirm, + ) ), ); } @@ -150,9 +39,139 @@ class _CommentModalState extends State { ), color: Theme.of(context).dialogBackgroundColor ), - child: content() + child: SafeArea( + child: _Content( + comment: comment, + onConfirm: onConfirm, + ), + ) ), ); } } +} + +class _Content extends StatefulWidget { + final String? comment; + final void Function(String) onConfirm; + + const _Content({ + required this.comment, + required this.onConfirm + }); + + @override + State<_Content> createState() => __ContentState(); +} + +class __ContentState extends State<_Content> { + final TextEditingController commentController = TextEditingController(); + + bool validData = false; + + @override + void initState() { + if (widget.comment != null) { + commentController.text = widget.comment!.replaceFirst(RegExp(r'#(\s)?'), ""); + } + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: SingleChildScrollView( + child: Wrap( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 24), + child: Icon( + Icons.comment_rounded, + size: 24, + color: Theme.of(context).colorScheme.secondary, + ), + ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.comment, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + color: Theme.of(context).colorScheme.onSurface + ), + ), + const SizedBox(height: 16), + ], + ), + ], + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: TextFormField( + controller: commentController, + onChanged: (value) { + if (value != '') { + setState(() => validData = true); + } + else { + setState(() => validData = false); + } + }, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.comment_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.comment, + helperText: AppLocalizations.of(context)!.commentsDescription, + helperMaxLines: 3 + ) + ), + ), + ], + ), + ), + ), + Padding( + padding: const EdgeInsets.all(24), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.cancel) + ), + const SizedBox(width: 20), + TextButton( + onPressed: validData == true + ? () { + Navigator.pop(context); + widget.onConfirm("# ${commentController.text}"); + } + : null, + child: Text( + AppLocalizations.of(context)!.confirm, + style: TextStyle( + color: validData == true + ? Theme.of(context).colorScheme.primary + : Colors.grey + ), + ) + ), + ], + ), + ) + ], + ); + } } \ No newline at end of file diff --git a/lib/screens/settings/dns/dns.dart b/lib/screens/settings/dns/dns.dart index 02ec5d6..2c711d6 100644 --- a/lib/screens/settings/dns/dns.dart +++ b/lib/screens/settings/dns/dns.dart @@ -25,9 +25,9 @@ class DnsSettings extends StatefulWidget { final bool splitView; const DnsSettings({ - Key? key, + super.key, required this.splitView, - }) : super(key: key); + }); @override State createState() => _DnsSettingsState(); @@ -118,95 +118,97 @@ class _DnsSettingsState extends State { const SizedBox(width: 10) ], ), - body: Builder( - builder: (context) { - switch (dnsProvider.loadStatus) { - case LoadStatus.loading: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, + body: SafeArea( + child: Builder( + builder: (context) { + switch (dnsProvider.loadStatus) { + case LoadStatus.loading: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingDnsConfig, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ) + ); + + case LoadStatus.loaded: + return ListView( children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingDnsConfig, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ) - ); - - case LoadStatus.loaded: - return ListView( - children: [ - CustomListTile( - title: AppLocalizations.of(context)!.upstreamDns, - subtitle: AppLocalizations.of(context)!.upstreamDnsDescription, - onTap: () => navigate(const UpstreamDnsScreen()), - icon: Icons.upload_rounded, - ), - CustomListTile( - title: AppLocalizations.of(context)!.bootstrapDns, - subtitle: AppLocalizations.of(context)!.bootstrapDnsDescription, - onTap: () => navigate(const BootstrapDnsScreen()), - icon: Icons.dns_rounded, - ), - CustomListTile( - title: AppLocalizations.of(context)!.privateReverseDnsServers, - subtitle: AppLocalizations.of(context)!.privateReverseDnsDescription, - onTap: () => navigate(const PrivateReverseDnsServersScreen()), - icon: Icons.person_rounded, - ), - CustomListTile( - title: AppLocalizations.of(context)!.dnsServerSettings, - subtitle: AppLocalizations.of(context)!.dnsServerSettingsDescription, - onTap: () => navigate(const DnsServerSettingsScreen()), - icon: Icons.settings, - ), - CustomListTile( - title: AppLocalizations.of(context)!.dnsCacheConfig, - subtitle: AppLocalizations.of(context)!.dnsCacheConfigDescription, - onTap: () => navigate(const CacheConfigDnsScreen()), - icon: Icons.storage_rounded, - ), - ], - ); - - case LoadStatus.error: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, + CustomListTile( + title: AppLocalizations.of(context)!.upstreamDns, + subtitle: AppLocalizations.of(context)!.upstreamDnsDescription, + onTap: () => navigate(const UpstreamDnsScreen()), + icon: Icons.upload_rounded, + ), + CustomListTile( + title: AppLocalizations.of(context)!.bootstrapDns, + subtitle: AppLocalizations.of(context)!.bootstrapDnsDescription, + onTap: () => navigate(const BootstrapDnsScreen()), + icon: Icons.dns_rounded, + ), + CustomListTile( + title: AppLocalizations.of(context)!.privateReverseDnsServers, + subtitle: AppLocalizations.of(context)!.privateReverseDnsDescription, + onTap: () => navigate(const PrivateReverseDnsServersScreen()), + icon: Icons.person_rounded, + ), + CustomListTile( + title: AppLocalizations.of(context)!.dnsServerSettings, + subtitle: AppLocalizations.of(context)!.dnsServerSettingsDescription, + onTap: () => navigate(const DnsServerSettingsScreen()), + icon: Icons.settings, + ), + CustomListTile( + title: AppLocalizations.of(context)!.dnsCacheConfig, + subtitle: AppLocalizations.of(context)!.dnsCacheConfigDescription, + onTap: () => navigate(const CacheConfigDnsScreen()), + icon: Icons.storage_rounded, ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.dnsConfigNotLoaded, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) ], - ), - ); - - default: - return const SizedBox(); - } - }, + ); + + case LoadStatus.error: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.dnsConfigNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + default: + return const SizedBox(); + } + }, + ), ) ); } diff --git a/lib/screens/settings/dns/dns_server_settings.dart b/lib/screens/settings/dns/dns_server_settings.dart index 777821f..4cc650a 100644 --- a/lib/screens/settings/dns/dns_server_settings.dart +++ b/lib/screens/settings/dns/dns_server_settings.dart @@ -167,141 +167,143 @@ class _DnsServerSettingsScreenState extends State { const SizedBox(width: 10) ], ), - body: ListView( - padding: const EdgeInsets.only(top: 10), - children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), - child: TextFormField( - controller: limitRequestsController, - onChanged: (value) { - if (int.tryParse(value) != null) { - setState(() => limitRequestsError = null); - } - else { - setState(() => limitRequestsError = AppLocalizations.of(context)!.valueNotNumber); - } - validateData(); - }, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.looks_one_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - labelText: AppLocalizations.of(context)!.limitRequestsSecond, - errorText: limitRequestsError - ), - keyboardType: TextInputType.number, - ), - ), - const SizedBox(height: 10), - CustomSwitchListTile( - value: enableEdns, - onChanged: (value) => setState(() => enableEdns = value), - title: AppLocalizations.of(context)!.enableEdns, - subtitle: AppLocalizations.of(context)!.enableEdnsDescription, - ), - CustomSwitchListTile( - value: enableDnssec, - onChanged: (value) => setState(() => enableDnssec = value), - title: AppLocalizations.of(context)!.enableDnssec, - subtitle: AppLocalizations.of(context)!.enableDnssecDescription, - ), - CustomSwitchListTile( - value: disableIpv6Resolving, - onChanged: (value) => setState(() => disableIpv6Resolving = value), - title: AppLocalizations.of(context)!.disableResolvingIpv6, - subtitle: AppLocalizations.of(context)!.disableResolvingIpv6Description, - ), - SectionLabel(label: AppLocalizations.of(context)!.blockingMode), - CustomRadioListTile( - groupValue: blockingMode, - value: "default", - radioBackgroundColor: Theme.of(context).dialogBackgroundColor, - title: AppLocalizations.of(context)!.defaultMode, - subtitle: AppLocalizations.of(context)!.defaultDescription, - onChanged: updateBlockingMode, - ), - CustomRadioListTile( - groupValue: blockingMode, - value: "refused", - radioBackgroundColor: Theme.of(context).dialogBackgroundColor, - title: "REFUSED", - subtitle: AppLocalizations.of(context)!.refusedDescription, - onChanged: updateBlockingMode, - ), - CustomRadioListTile( - groupValue: blockingMode, - value: "nxdomain", - radioBackgroundColor: Theme.of(context).dialogBackgroundColor, - title: "NXDOMAIN", - subtitle: AppLocalizations.of(context)!.nxdomainDescription, - onChanged: updateBlockingMode, - ), - CustomRadioListTile( - groupValue: blockingMode, - value: "null_ip", - radioBackgroundColor: Theme.of(context).dialogBackgroundColor, - title: AppLocalizations.of(context)!.nullIp, - subtitle: AppLocalizations.of(context)!.nullIpDescription, - onChanged: updateBlockingMode, - ), - CustomRadioListTile( - groupValue: blockingMode, - value: "custom_ip", - radioBackgroundColor: Theme.of(context).dialogBackgroundColor, - title: AppLocalizations.of(context)!.customIp, - subtitle: AppLocalizations.of(context)!.customIpDescription, - onChanged: updateBlockingMode, - ), - const SizedBox(height: 10), - if (blockingMode == 'custom_ip') ...[ + body: SafeArea( + child: ListView( + padding: const EdgeInsets.only(top: 10), + children: [ Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), + padding: const EdgeInsets.symmetric(horizontal: 16), child: TextFormField( - controller: ipv4controller, - onChanged: validateIpv4, + controller: limitRequestsController, + onChanged: (value) { + if (int.tryParse(value) != null) { + setState(() => limitRequestsError = null); + } + else { + setState(() => limitRequestsError = AppLocalizations.of(context)!.valueNotNumber); + } + validateData(); + }, decoration: InputDecoration( - prefixIcon: const Icon(Icons.link_rounded), + prefixIcon: const Icon(Icons.looks_one_rounded), border: const OutlineInputBorder( borderRadius: BorderRadius.all( Radius.circular(10) ) ), - errorText: ipv4error, - helperText: AppLocalizations.of(context)!.blockingIpv4Description, - helperMaxLines: 10, - labelText: AppLocalizations.of(context)!.blockingIpv4, + labelText: AppLocalizations.of(context)!.limitRequestsSecond, + errorText: limitRequestsError ), keyboardType: TextInputType.number, ), ), - const SizedBox(height: 30), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: TextFormField( - controller: ipv6controller, - onChanged: validateIpv6, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.link_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) + const SizedBox(height: 10), + CustomSwitchListTile( + value: enableEdns, + onChanged: (value) => setState(() => enableEdns = value), + title: AppLocalizations.of(context)!.enableEdns, + subtitle: AppLocalizations.of(context)!.enableEdnsDescription, + ), + CustomSwitchListTile( + value: enableDnssec, + onChanged: (value) => setState(() => enableDnssec = value), + title: AppLocalizations.of(context)!.enableDnssec, + subtitle: AppLocalizations.of(context)!.enableDnssecDescription, + ), + CustomSwitchListTile( + value: disableIpv6Resolving, + onChanged: (value) => setState(() => disableIpv6Resolving = value), + title: AppLocalizations.of(context)!.disableResolvingIpv6, + subtitle: AppLocalizations.of(context)!.disableResolvingIpv6Description, + ), + SectionLabel(label: AppLocalizations.of(context)!.blockingMode), + CustomRadioListTile( + groupValue: blockingMode, + value: "default", + radioBackgroundColor: Theme.of(context).dialogBackgroundColor, + title: AppLocalizations.of(context)!.defaultMode, + subtitle: AppLocalizations.of(context)!.defaultDescription, + onChanged: updateBlockingMode, + ), + CustomRadioListTile( + groupValue: blockingMode, + value: "refused", + radioBackgroundColor: Theme.of(context).dialogBackgroundColor, + title: "REFUSED", + subtitle: AppLocalizations.of(context)!.refusedDescription, + onChanged: updateBlockingMode, + ), + CustomRadioListTile( + groupValue: blockingMode, + value: "nxdomain", + radioBackgroundColor: Theme.of(context).dialogBackgroundColor, + title: "NXDOMAIN", + subtitle: AppLocalizations.of(context)!.nxdomainDescription, + onChanged: updateBlockingMode, + ), + CustomRadioListTile( + groupValue: blockingMode, + value: "null_ip", + radioBackgroundColor: Theme.of(context).dialogBackgroundColor, + title: AppLocalizations.of(context)!.nullIp, + subtitle: AppLocalizations.of(context)!.nullIpDescription, + onChanged: updateBlockingMode, + ), + CustomRadioListTile( + groupValue: blockingMode, + value: "custom_ip", + radioBackgroundColor: Theme.of(context).dialogBackgroundColor, + title: AppLocalizations.of(context)!.customIp, + subtitle: AppLocalizations.of(context)!.customIpDescription, + onChanged: updateBlockingMode, + ), + const SizedBox(height: 10), + if (blockingMode == 'custom_ip') ...[ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: TextFormField( + controller: ipv4controller, + onChanged: validateIpv4, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.link_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: ipv4error, + helperText: AppLocalizations.of(context)!.blockingIpv4Description, + helperMaxLines: 10, + labelText: AppLocalizations.of(context)!.blockingIpv4, ), - errorText: ipv6error, - helperText: AppLocalizations.of(context)!.blockingIpv6Description, - helperMaxLines: 10, - labelText: AppLocalizations.of(context)!.blockingIpv6, + keyboardType: TextInputType.number, ), - keyboardType: TextInputType.number, ), - ), - const SizedBox(height: 30) - ] - ], + const SizedBox(height: 30), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: TextFormField( + controller: ipv6controller, + onChanged: validateIpv6, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.link_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: ipv6error, + helperText: AppLocalizations.of(context)!.blockingIpv6Description, + helperMaxLines: 10, + labelText: AppLocalizations.of(context)!.blockingIpv6, + ), + keyboardType: TextInputType.number, + ), + ), + const SizedBox(height: 30) + ] + ], + ), ), ); } diff --git a/lib/screens/settings/dns/private_reverse_servers.dart b/lib/screens/settings/dns/private_reverse_servers.dart index f91c593..a9419e9 100644 --- a/lib/screens/settings/dns/private_reverse_servers.dart +++ b/lib/screens/settings/dns/private_reverse_servers.dart @@ -13,7 +13,7 @@ import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; class PrivateReverseDnsServersScreen extends StatefulWidget { - const PrivateReverseDnsServersScreen({Key? key}) : super(key: key); + const PrivateReverseDnsServersScreen({super.key}); @override State createState() => _PrivateReverseDnsServersScreenState(); @@ -149,107 +149,40 @@ class _PrivateReverseDnsServersScreenState extends State item).join(', ').toString().replaceAll(RegExp(r'\(|\)'), '')}", - textAlign: TextAlign.center, - style: TextStyle( - color: Theme.of(context).colorScheme.onSurfaceVariant, - fontSize: 16 + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.info_rounded, + color: Theme.of(context).listTileTheme.iconColor, + ), + const SizedBox(width: 16), + Flexible( + child: Text( + AppLocalizations.of(context)!.privateReverseDnsServersDescription, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ) + ) + ], ), ), ), - Padding( - padding: const EdgeInsets.only(top: 10, bottom: 20), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - ElevatedButton.icon( - onPressed: () { - setState(() => editReverseResolvers = true); - checkDataValid(); - }, - icon: const Icon(Icons.edit), - label: Text(AppLocalizations.of(context)!.edit) - ), - ], - ), - ) - ], - if (editReverseResolvers == true) ...[ - const SizedBox(height: 20), - ...reverseResolversControllers.map((c) => Padding( - padding: const EdgeInsets.only( - left: 16, right: 6, bottom: 20 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: TextFormField( - controller: c['controller'], - onChanged: (value) => validateAddress(c, value), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.dns_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: c['error'], - labelText: AppLocalizations.of(context)!.serverAddress, - ) - ), - ), - const SizedBox(width: 8), - IconButton( - onPressed: () { - setState(() => reverseResolversControllers = reverseResolversControllers.where((con) => con != c).toList()); - checkDataValid(); - }, - icon: const Icon(Icons.remove_circle_outline) - ) - ], - ), - )), - if (reverseResolversControllers.isEmpty) Padding( - padding: const EdgeInsets.only( - left: 20, right: 20, bottom: 20 - ), - child: Center( + if (editReverseResolvers == false) ...[ + Padding( + padding: const EdgeInsets.all(20), child: Text( - AppLocalizations.of(context)!.noServerAddressesAdded, + "${AppLocalizations.of(context)!.reverseDnsDefault}:\n\n${defaultReverseResolvers.map((item) => item).join(', ').toString().replaceAll(RegExp(r'\(|\)'), '')}", textAlign: TextAlign.center, style: TextStyle( color: Theme.of(context).colorScheme.onSurfaceVariant, @@ -257,41 +190,110 @@ class _PrivateReverseDnsServersScreenState extends State reverseResolversControllers.add({ - 'controller': TextEditingController(), - 'error': null - })); - checkDataValid(); - }, - icon: const Icon(Icons.add), - label: Text(AppLocalizations.of(context)!.addItem) + Padding( + padding: const EdgeInsets.only(top: 10, bottom: 20), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ElevatedButton.icon( + onPressed: () { + setState(() => editReverseResolvers = true); + checkDataValid(); + }, + icon: const Icon(Icons.edit), + label: Text(AppLocalizations.of(context)!.edit) + ), + ], + ), + ) + ], + if (editReverseResolvers == true) ...[ + const SizedBox(height: 20), + ...reverseResolversControllers.map((c) => Padding( + padding: const EdgeInsets.only( + left: 16, right: 6, bottom: 20 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: TextFormField( + controller: c['controller'], + onChanged: (value) => validateAddress(c, value), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.dns_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: c['error'], + labelText: AppLocalizations.of(context)!.serverAddress, + ) + ), + ), + const SizedBox(width: 8), + IconButton( + onPressed: () { + setState(() => reverseResolversControllers = reverseResolversControllers.where((con) => con != c).toList()); + checkDataValid(); + }, + icon: const Icon(Icons.remove_circle_outline) + ) + ], + ), + )), + if (reverseResolversControllers.isEmpty) Padding( + padding: const EdgeInsets.only( + left: 20, right: 20, bottom: 20 + ), + child: Center( + child: Text( + AppLocalizations.of(context)!.noServerAddressesAdded, + textAlign: TextAlign.center, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant, + fontSize: 16 + ), ), - ], + ), ), + Padding( + padding: const EdgeInsets.only(bottom: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + ElevatedButton.icon( + onPressed: () { + setState(() => reverseResolversControllers.add({ + 'controller': TextEditingController(), + 'error': null + })); + checkDataValid(); + }, + icon: const Icon(Icons.add), + label: Text(AppLocalizations.of(context)!.addItem) + ), + ], + ), + ), + ], + CustomSwitchListTile( + value: usePrivateReverseDnsResolvers, + onChanged: (value) => setState(() => usePrivateReverseDnsResolvers = value), + title: AppLocalizations.of(context)!.usePrivateReverseDnsResolvers, + subtitle: AppLocalizations.of(context)!.usePrivateReverseDnsResolversDescription + ), + CustomSwitchListTile( + value: enableReverseResolve, + onChanged: (value) => setState(() => enableReverseResolve = value), + title: AppLocalizations.of(context)!.enableReverseResolving, + subtitle: AppLocalizations.of(context)!.enableReverseResolvingDescription ), ], - CustomSwitchListTile( - value: usePrivateReverseDnsResolvers, - onChanged: (value) => setState(() => usePrivateReverseDnsResolvers = value), - title: AppLocalizations.of(context)!.usePrivateReverseDnsResolvers, - subtitle: AppLocalizations.of(context)!.usePrivateReverseDnsResolversDescription - ), - CustomSwitchListTile( - value: enableReverseResolve, - onChanged: (value) => setState(() => enableReverseResolve = value), - title: AppLocalizations.of(context)!.enableReverseResolving, - subtitle: AppLocalizations.of(context)!.enableReverseResolvingDescription - ), - ], + ), ), ); } diff --git a/lib/screens/settings/dns/upstream_dns.dart b/lib/screens/settings/dns/upstream_dns.dart index 5dd2acb..f952110 100644 --- a/lib/screens/settings/dns/upstream_dns.dart +++ b/lib/screens/settings/dns/upstream_dns.dart @@ -189,129 +189,131 @@ class _UpstreamDnsScreenState extends State { const SizedBox(width: 10) ], ), - body: ListView( - padding: const EdgeInsets.only(top: 10), - children: [ - if (dnsServers.isEmpty) Column( - children: [ - Padding( - padding: const EdgeInsets.all(10), - child: Center( - child: Text( - AppLocalizations.of(context)!.noUpstreamDns, - style: TextStyle( - color: Theme.of(context).colorScheme.onSurfaceVariant, - fontSize: 16 + body: SafeArea( + child: ListView( + padding: const EdgeInsets.only(top: 10), + children: [ + if (dnsServers.isEmpty) Column( + children: [ + Padding( + padding: const EdgeInsets.all(10), + child: Center( + child: Text( + AppLocalizations.of(context)!.noUpstreamDns, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant, + fontSize: 16 + ), ), ), ), - ), - const SizedBox(height: 20), - ], - ), - ...dnsServers.map((item) => Padding( - padding: const EdgeInsets.only( - left: 16, right: 6, bottom: 24 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - if (item['controller'] != null) Expanded( - child: TextFormField( - controller: item['controller'], - onChanged: (_) => checkValidValues(), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.dns_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - labelText: AppLocalizations.of(context)!.dnsServer, - ) - ), - ), - const SizedBox(width: 8), - if (item['comment'] != null) Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - item['comment'], - style: TextStyle( - fontSize: 16, - color: Theme.of(context).listTileTheme.iconColor - ), - ), - IconButton( - onPressed: () => openEditCommentModal(item, dnsServers.indexOf(item)), - icon: const Icon(Icons.edit), - tooltip: AppLocalizations.of(context)!.edit, - ) - ], - ), - ), - IconButton( - onPressed: () { - setState(() => dnsServers = dnsServers.where((i) => i != item).toList()); - checkValidValues(); - }, - icon: const Icon(Icons.remove_circle_outline), - tooltip: AppLocalizations.of(context)!.remove, - ), - const SizedBox(width: 4), + const SizedBox(height: 20), ], ), - )).toList(), - const SizedBox(height: 12), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - mainAxisSize: MainAxisSize.min, - children: [ - ElevatedButton.icon( - onPressed: openAddCommentModal, - icon: const Icon(Icons.add), - label: Text(AppLocalizations.of(context)!.comment) + ...dnsServers.map((item) => Padding( + padding: const EdgeInsets.only( + left: 16, right: 6, bottom: 24 ), - ElevatedButton.icon( - onPressed: () { - setState(() => dnsServers.add({ - 'controller': TextEditingController() - })); - checkValidValues(); - }, - icon: const Icon(Icons.add), - label: Text(AppLocalizations.of(context)!.address) + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + if (item['controller'] != null) Expanded( + child: TextFormField( + controller: item['controller'], + onChanged: (_) => checkValidValues(), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.dns_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.dnsServer, + ) + ), + ), + const SizedBox(width: 8), + if (item['comment'] != null) Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + item['comment'], + style: TextStyle( + fontSize: 16, + color: Theme.of(context).listTileTheme.iconColor + ), + ), + IconButton( + onPressed: () => openEditCommentModal(item, dnsServers.indexOf(item)), + icon: const Icon(Icons.edit), + tooltip: AppLocalizations.of(context)!.edit, + ) + ], + ), + ), + IconButton( + onPressed: () { + setState(() => dnsServers = dnsServers.where((i) => i != item).toList()); + checkValidValues(); + }, + icon: const Icon(Icons.remove_circle_outline), + tooltip: AppLocalizations.of(context)!.remove, + ), + const SizedBox(width: 4), + ], ), - ], - ), - const SizedBox(height: 16), - SectionLabel(label: AppLocalizations.of(context)!.dnsMode), - CustomRadioListTile( - groupValue: upstreamMode, - value: "", - radioBackgroundColor: Theme.of(context).dialogBackgroundColor, - title: AppLocalizations.of(context)!.loadBalancing, - subtitle: AppLocalizations.of(context)!.loadBalancingDescription, - onChanged: (value) => setState(() => upstreamMode = value), - ), - CustomRadioListTile( - groupValue: upstreamMode, - value: "parallel", - radioBackgroundColor: Theme.of(context).dialogBackgroundColor, - title: AppLocalizations.of(context)!.parallelRequests, - subtitle: AppLocalizations.of(context)!.parallelRequestsDescription, - onChanged: (value) => setState(() => upstreamMode = value), - ), - CustomRadioListTile( - groupValue: upstreamMode, - value: "fastest_addr", - radioBackgroundColor: Theme.of(context).dialogBackgroundColor, - title: AppLocalizations.of(context)!.fastestIpAddress, - subtitle: AppLocalizations.of(context)!.fastestIpAddressDescription, - onChanged: (value) => setState(() => upstreamMode = value), - ), - ], + )).toList(), + const SizedBox(height: 12), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + mainAxisSize: MainAxisSize.min, + children: [ + ElevatedButton.icon( + onPressed: openAddCommentModal, + icon: const Icon(Icons.add), + label: Text(AppLocalizations.of(context)!.comment) + ), + ElevatedButton.icon( + onPressed: () { + setState(() => dnsServers.add({ + 'controller': TextEditingController() + })); + checkValidValues(); + }, + icon: const Icon(Icons.add), + label: Text(AppLocalizations.of(context)!.address) + ), + ], + ), + const SizedBox(height: 16), + SectionLabel(label: AppLocalizations.of(context)!.dnsMode), + CustomRadioListTile( + groupValue: upstreamMode, + value: "", + radioBackgroundColor: Theme.of(context).dialogBackgroundColor, + title: AppLocalizations.of(context)!.loadBalancing, + subtitle: AppLocalizations.of(context)!.loadBalancingDescription, + onChanged: (value) => setState(() => upstreamMode = value), + ), + CustomRadioListTile( + groupValue: upstreamMode, + value: "parallel", + radioBackgroundColor: Theme.of(context).dialogBackgroundColor, + title: AppLocalizations.of(context)!.parallelRequests, + subtitle: AppLocalizations.of(context)!.parallelRequestsDescription, + onChanged: (value) => setState(() => upstreamMode = value), + ), + CustomRadioListTile( + groupValue: upstreamMode, + value: "fastest_addr", + radioBackgroundColor: Theme.of(context).dialogBackgroundColor, + title: AppLocalizations.of(context)!.fastestIpAddress, + subtitle: AppLocalizations.of(context)!.fastestIpAddressDescription, + onChanged: (value) => setState(() => upstreamMode = value), + ), + ], + ), ), ); } diff --git a/lib/screens/settings/dns_rewrites/dns_rewrite_modal.dart b/lib/screens/settings/dns_rewrites/dns_rewrite_modal.dart index fcd62d7..439455c 100644 --- a/lib/screens/settings/dns_rewrites/dns_rewrite_modal.dart +++ b/lib/screens/settings/dns_rewrites/dns_rewrite_modal.dart @@ -46,10 +46,12 @@ class DnsRewriteModal extends StatelessWidget { ), color: Theme.of(context).dialogBackgroundColor, ), - child: _Content( - onConfirm: onConfirm, - onDelete: onDelete, - rule: rule, + child: SafeArea( + child: _Content( + onConfirm: onConfirm, + onDelete: onDelete, + rule: rule, + ), ) ), ); diff --git a/lib/screens/settings/dns_rewrites/dns_rewrites.dart b/lib/screens/settings/dns_rewrites/dns_rewrites.dart index 8b5ee0d..301c3a1 100644 --- a/lib/screens/settings/dns_rewrites/dns_rewrites.dart +++ b/lib/screens/settings/dns_rewrites/dns_rewrites.dart @@ -136,239 +136,241 @@ class _DnsRewritesScreenState extends State { surfaceTintColor: isDesktop(width) ? Colors.transparent : null, centerTitle: false, ), - body: Stack( - children: [ - Builder( - builder: (context) { - switch (rewriteRulesProvider.loadStatus) { - case LoadStatus.loading: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingRewriteRules, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), - ); - - case LoadStatus.loaded: - if (rewriteRulesProvider.rewriteRules!.isNotEmpty) { - return RefreshIndicator( - onRefresh: () async { - final result = await rewriteRulesProvider.fetchRules(); - if (result == false) { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.rewriteRulesNotLoaded, - color: Colors.red - ); - } - }, - child: ListView.builder( - controller: scrollController, - padding: const EdgeInsets.only(top: 0), - itemCount: rewriteRulesProvider.rewriteRules!.length, - itemBuilder: (context, index) => Card( - margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), - child: InkWell( - onTap: () => { - if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) { - showDialog( - context: context, - builder: (context) => DnsRewriteModal( - onConfirm: updateRewriteRule, - dialog: true, - rule: rewriteRulesProvider.rewriteRules![index], - onDelete: (rule) => showDialog( - context: context, - builder: (context) => DeleteDnsRewrite( - onConfirm: () => deleteDnsRewrite(rule) - ) - ), - ), - ) - } - else { - showModalBottomSheet( - context: context, - useRootNavigator: true, - builder: (context) => DnsRewriteModal( - onConfirm: updateRewriteRule, - dialog: false, - rule: rewriteRulesProvider.rewriteRules![index], - onDelete: (rule) => showDialog( - context: context, - builder: (context) => DeleteDnsRewrite( - onConfirm: () => deleteDnsRewrite(rule) - ) - ), - ), - backgroundColor: Colors.transparent, - isScrollControlled: true, - ) - } - }, - borderRadius: BorderRadius.circular(10), - child: Padding( - padding: const EdgeInsets.only( - left: 16, top: 16, bottom: 16, right: 8 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - Text( - "${AppLocalizations.of(context)!.domain}: ", - style: TextStyle( - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.onSurface - ), - ), - Text( - rewriteRulesProvider.rewriteRules![index].domain, - style: TextStyle( - color: Theme.of(context).colorScheme.onSurface - ), - ), - ], + body: SafeArea( + child: Stack( + children: [ + Builder( + builder: (context) { + switch (rewriteRulesProvider.loadStatus) { + case LoadStatus.loading: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingRewriteRules, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + case LoadStatus.loaded: + if (rewriteRulesProvider.rewriteRules!.isNotEmpty) { + return RefreshIndicator( + onRefresh: () async { + final result = await rewriteRulesProvider.fetchRules(); + if (result == false) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.rewriteRulesNotLoaded, + color: Colors.red + ); + } + }, + child: ListView.builder( + controller: scrollController, + padding: const EdgeInsets.only(top: 0), + itemCount: rewriteRulesProvider.rewriteRules!.length, + itemBuilder: (context, index) => Card( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: InkWell( + onTap: () => { + if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) { + showDialog( + context: context, + builder: (context) => DnsRewriteModal( + onConfirm: updateRewriteRule, + dialog: true, + rule: rewriteRulesProvider.rewriteRules![index], + onDelete: (rule) => showDialog( + context: context, + builder: (context) => DeleteDnsRewrite( + onConfirm: () => deleteDnsRewrite(rule) + ) ), - const SizedBox(height: 3), - Row( - children: [ - Text( - "${AppLocalizations.of(context)!.answer}: ", - style: TextStyle( - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.onSurface - ), - ), - Text( - rewriteRulesProvider.rewriteRules![index].answer, - style: TextStyle( - color: Theme.of(context).colorScheme.onSurface - ), - ), - ], - ), - ], - ), - Icon( - Icons.keyboard_arrow_right_rounded, - color: Theme.of(context).colorScheme.onSurfaceVariant, + ), ) - ], + } + else { + showModalBottomSheet( + context: context, + useRootNavigator: true, + builder: (context) => DnsRewriteModal( + onConfirm: updateRewriteRule, + dialog: false, + rule: rewriteRulesProvider.rewriteRules![index], + onDelete: (rule) => showDialog( + context: context, + builder: (context) => DeleteDnsRewrite( + onConfirm: () => deleteDnsRewrite(rule) + ) + ), + ), + backgroundColor: Colors.transparent, + isScrollControlled: true, + ) + } + }, + borderRadius: BorderRadius.circular(10), + child: Padding( + padding: const EdgeInsets.only( + left: 16, top: 16, bottom: 16, right: 8 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + "${AppLocalizations.of(context)!.domain}: ", + style: TextStyle( + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.onSurface + ), + ), + Text( + rewriteRulesProvider.rewriteRules![index].domain, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ), + ], + ), + const SizedBox(height: 3), + Row( + children: [ + Text( + "${AppLocalizations.of(context)!.answer}: ", + style: TextStyle( + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.onSurface + ), + ), + Text( + rewriteRulesProvider.rewriteRules![index].answer, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ), + ], + ), + ], + ), + Icon( + Icons.keyboard_arrow_right_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ) + ], + ), ), ), - ), - ) - ), - ); - } - else { - return Center( - child: Text( - AppLocalizations.of(context)!.noRewriteRules, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, + ) ), - ), - ); - } - - case LoadStatus.error: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.rewriteRulesNotLoaded, - textAlign: TextAlign.center, + ); + } + else { + return Center( + child: Text( + AppLocalizations.of(context)!.noRewriteRules, style: TextStyle( fontSize: 22, color: Theme.of(context).colorScheme.onSurfaceVariant, ), - ) - ], - ), - ); - - default: - return const SizedBox(); - } - }, - ), - AnimatedPositioned( - duration: const Duration(milliseconds: 100), - curve: Curves.easeInOut, - bottom: isVisible ? - appConfigProvider.showingSnackbar - ? 70 : 20 - : -70, - right: 20, - child: FloatingActionButton( - onPressed: () => { - if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) { - showDialog( - context: context, - builder: (context) => DnsRewriteModal( - onConfirm: addDnsRewrite, - dialog: true, - onDelete: (rule) => showDialog( - context: context, - builder: (context) => DeleteDnsRewrite( - onConfirm: () => deleteDnsRewrite(rule) - ) ), - ), - ) - } - else { - showModalBottomSheet( - context: context, - useRootNavigator: true, - builder: (context) => DnsRewriteModal( - onConfirm: addDnsRewrite, - dialog: false, - onDelete: (rule) => showDialog( - context: context, - builder: (context) => DeleteDnsRewrite( - onConfirm: () => deleteDnsRewrite(rule) + ); + } + + case LoadStatus.error: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.rewriteRulesNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), ) - ), + ], ), - backgroundColor: Colors.transparent, - isScrollControlled: true - ) - } - }, - child: const Icon(Icons.add), - ), - ) - ], + ); + + default: + return const SizedBox(); + } + }, + ), + AnimatedPositioned( + duration: const Duration(milliseconds: 100), + curve: Curves.easeInOut, + bottom: isVisible ? + appConfigProvider.showingSnackbar + ? 70 : 20 + : -70, + right: 20, + child: FloatingActionButton( + onPressed: () => { + if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) { + showDialog( + context: context, + builder: (context) => DnsRewriteModal( + onConfirm: addDnsRewrite, + dialog: true, + onDelete: (rule) => showDialog( + context: context, + builder: (context) => DeleteDnsRewrite( + onConfirm: () => deleteDnsRewrite(rule) + ) + ), + ), + ) + } + else { + showModalBottomSheet( + context: context, + useRootNavigator: true, + builder: (context) => DnsRewriteModal( + onConfirm: addDnsRewrite, + dialog: false, + onDelete: (rule) => showDialog( + context: context, + builder: (context) => DeleteDnsRewrite( + onConfirm: () => deleteDnsRewrite(rule) + ) + ), + ), + backgroundColor: Colors.transparent, + isScrollControlled: true + ) + } + }, + child: const Icon(Icons.add), + ), + ) + ], + ), ), ); } diff --git a/lib/screens/settings/dns_rewrites/rule_modal.dart b/lib/screens/settings/dns_rewrites/rule_modal.dart deleted file mode 100644 index e69de29..0000000 diff --git a/lib/screens/settings/dns_rewrites/server_version_needed.dart b/lib/screens/settings/dns_rewrites/server_version_needed.dart index 88888c6..68ea426 100644 --- a/lib/screens/settings/dns_rewrites/server_version_needed.dart +++ b/lib/screens/settings/dns_rewrites/server_version_needed.dart @@ -4,6 +4,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; class ServerVersionNeeded extends StatelessWidget { final String version; + // ignore: use_super_parameters const ServerVersionNeeded({ Key? key, required this.version diff --git a/lib/screens/settings/encryption/encryption.dart b/lib/screens/settings/encryption/encryption.dart index f47a63d..e11047e 100644 --- a/lib/screens/settings/encryption/encryption.dart +++ b/lib/screens/settings/encryption/encryption.dart @@ -283,376 +283,378 @@ class _EncryptionSettingsState extends State { const SizedBox(width: 10), ], ), - body: Builder( - builder: (context) { - switch (loadStatus) { - case LoadStatus.loading: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingEncryptionSettings, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ) - ); - - case LoadStatus.loaded: - return ListView( - children: [ - EncryptionMasterSwitch( - value: enabled, - onChange: (value) { - setState(() => enabled = value); - onEditValidate(); - } - ), - SectionLabel( - label: AppLocalizations.of(context)!.serverConfiguration, - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), - ), - EncryptionTextField( - enabled: enabled, - controller: domainNameController, - icon: Icons.link_rounded, - onChanged: (value) { - setState(() => domainError = validateDomain(context, value)); - onEditValidate(); - }, - errorText: domainError, - label: AppLocalizations.of(context)!.domainName, - helperText: AppLocalizations.of(context)!.domainNameDescription, - ), - const SizedBox(height: 10), - CustomSwitchListTile( - value: redirectHttps, - onChanged: (value) { - setState(() => redirectHttps = value); - onEditValidate(); - }, - title: AppLocalizations.of(context)!.redirectHttps, - disabled: !enabled, - ), - const SizedBox(height: 10), - Wrap( + body: SafeArea( + child: Builder( + builder: (context) { + switch (loadStatus) { + case LoadStatus.loading: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, children: [ - FractionallySizedBox( - widthFactor: width > 900 ? 0.33 : 1, - child: EncryptionTextField( - enabled: enabled, - controller: httpsPortController, - icon: Icons.numbers_rounded, - onChanged: (value) { - setState(() => httpsPortError = validatePort(context, value)); - onEditValidate(); - }, - errorText: httpsPortError, - label: AppLocalizations.of(context)!.httpsPort, - keyboardType: TextInputType.number, + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingEncryptionSettings, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, ), - ), - Padding( - padding: width <= 900 - ? const EdgeInsets.symmetric(vertical: 24) - : const EdgeInsets.all(0), - child: FractionallySizedBox( + ) + ], + ) + ); + + case LoadStatus.loaded: + return ListView( + children: [ + EncryptionMasterSwitch( + value: enabled, + onChange: (value) { + setState(() => enabled = value); + onEditValidate(); + } + ), + SectionLabel( + label: AppLocalizations.of(context)!.serverConfiguration, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), + ), + EncryptionTextField( + enabled: enabled, + controller: domainNameController, + icon: Icons.link_rounded, + onChanged: (value) { + setState(() => domainError = validateDomain(context, value)); + onEditValidate(); + }, + errorText: domainError, + label: AppLocalizations.of(context)!.domainName, + helperText: AppLocalizations.of(context)!.domainNameDescription, + ), + const SizedBox(height: 10), + CustomSwitchListTile( + value: redirectHttps, + onChanged: (value) { + setState(() => redirectHttps = value); + onEditValidate(); + }, + title: AppLocalizations.of(context)!.redirectHttps, + disabled: !enabled, + ), + const SizedBox(height: 10), + Wrap( + children: [ + FractionallySizedBox( widthFactor: width > 900 ? 0.33 : 1, child: EncryptionTextField( enabled: enabled, - controller: tlsPortController, + controller: httpsPortController, icon: Icons.numbers_rounded, onChanged: (value) { - setState(() => tlsPortError = validatePort(context, value)); + setState(() => httpsPortError = validatePort(context, value)); onEditValidate(); }, - errorText: tlsPortError, - label: AppLocalizations.of(context)!.tlsPort, + errorText: httpsPortError, + label: AppLocalizations.of(context)!.httpsPort, keyboardType: TextInputType.number, ), ), - ), - FractionallySizedBox( - widthFactor: width > 900 ? 0.33 : 1, - child: EncryptionTextField( - enabled: enabled, - controller: dnsOverQuicPortController, - icon: Icons.numbers_rounded, - onChanged: (value) { - setState(() => dnsOverQuicPortError = validatePort(context, value)); - onEditValidate(); - }, - errorText: dnsOverQuicPortError, - label: AppLocalizations.of(context)!.dnsOverQuicPort, - keyboardType: TextInputType.number, + Padding( + padding: width <= 900 + ? const EdgeInsets.symmetric(vertical: 24) + : const EdgeInsets.all(0), + child: FractionallySizedBox( + widthFactor: width > 900 ? 0.33 : 1, + child: EncryptionTextField( + enabled: enabled, + controller: tlsPortController, + icon: Icons.numbers_rounded, + onChanged: (value) { + setState(() => tlsPortError = validatePort(context, value)); + onEditValidate(); + }, + errorText: tlsPortError, + label: AppLocalizations.of(context)!.tlsPort, + keyboardType: TextInputType.number, + ), + ), + ), + FractionallySizedBox( + widthFactor: width > 900 ? 0.33 : 1, + child: EncryptionTextField( + enabled: enabled, + controller: dnsOverQuicPortController, + icon: Icons.numbers_rounded, + onChanged: (value) { + setState(() => dnsOverQuicPortError = validatePort(context, value)); + onEditValidate(); + }, + errorText: dnsOverQuicPortError, + label: AppLocalizations.of(context)!.dnsOverQuicPort, + keyboardType: TextInputType.number, + ), + ), + ], + ), + SectionLabel( + label: AppLocalizations.of(context)!.certificates, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), + ), + Card( + margin: const EdgeInsets.symmetric(horizontal: 16), + child: Padding( + padding: const EdgeInsets.all(20), + child: Row( + children: [ + Icon( + Icons.info_rounded, + color: Theme.of(context).listTileTheme.iconColor, + ), + const SizedBox(width: 20), + Flexible( + child: Text( + AppLocalizations.of(context)!.certificatesDescription, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface, + ), + ) + ) + ], ), ), - ], - ), - SectionLabel( - label: AppLocalizations.of(context)!.certificates, - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), - ), - Card( - margin: const EdgeInsets.symmetric(horizontal: 16), - child: Padding( - padding: const EdgeInsets.all(20), - child: Row( - children: [ - Icon( - Icons.info_rounded, - color: Theme.of(context).listTileTheme.iconColor, - ), - const SizedBox(width: 20), - Flexible( - child: Text( - AppLocalizations.of(context)!.certificatesDescription, - style: TextStyle( - color: Theme.of(context).colorScheme.onSurface, - ), - ) - ) - ], - ), ), - ), - const SizedBox(height: 20), - RadioListTile( - value: 0, - groupValue: certificateOption, - onChanged: enabled == true - ? (value) { - setState(() => certificateOption = int.parse(value.toString())); - onEditValidate(); - } - : null, - title: Text( - AppLocalizations.of(context)!.certificateFilePath, - style: const TextStyle( - fontWeight: FontWeight.normal - ), - ), - ), - RadioListTile( - value: 1, - groupValue: certificateOption, - onChanged: enabled == true - ? (value) { - setState(() => certificateOption = int.parse(value.toString())); - onEditValidate(); - } - : null, - title: Text( - AppLocalizations.of(context)!.pasteCertificateContent, - style: const TextStyle( - fontWeight: FontWeight.normal - ), - ), - ), - const SizedBox(height: 10), - if (certificateOption == 0) EncryptionTextField( - enabled: enabled, - controller: certificatePathController, - icon: Icons.description_rounded, - onChanged: (value) { - setState(() => certificatePathError = validatePath(context, value)); - onEditValidate(); - }, - label: AppLocalizations.of(context)!.certificatePath, - errorText: certificatePathError, - ), - if (certificateOption == 1) EncryptionTextField( - enabled: enabled, - controller: certificateContentController, - icon: Icons.description_rounded, - onChanged: (value) { - setState(() => certificateContentError = validateCertificate(context, value)); - onEditValidate(); - }, - label: AppLocalizations.of(context)!.certificateContent, - errorText: certificateContentError, - multiline: true, - keyboardType: TextInputType.multiline, - ), - if (certKeyValid != null && (certificateContentController.text != '' || certificatePathController.text != '')) ...[ const SizedBox(height: 20), - if (certKeyValid!.validChain != null) ...[ - Status( - valid: certKeyValid!.validChain ?? false, - label: certKeyValid!.validChain == true - ? AppLocalizations.of(context)!.validCertificateChain - : AppLocalizations.of(context)!.invalidCertificateChain, + RadioListTile( + value: 0, + groupValue: certificateOption, + onChanged: enabled == true + ? (value) { + setState(() => certificateOption = int.parse(value.toString())); + onEditValidate(); + } + : null, + title: Text( + AppLocalizations.of(context)!.certificateFilePath, + style: const TextStyle( + fontWeight: FontWeight.normal + ), ), - const SizedBox(height: 10), - ], - if (certKeyValid!.subject != null) ...[ - Status( + ), + RadioListTile( + value: 1, + groupValue: certificateOption, + onChanged: enabled == true + ? (value) { + setState(() => certificateOption = int.parse(value.toString())); + onEditValidate(); + } + : null, + title: Text( + AppLocalizations.of(context)!.pasteCertificateContent, + style: const TextStyle( + fontWeight: FontWeight.normal + ), + ), + ), + const SizedBox(height: 10), + if (certificateOption == 0) EncryptionTextField( + enabled: enabled, + controller: certificatePathController, + icon: Icons.description_rounded, + onChanged: (value) { + setState(() => certificatePathError = validatePath(context, value)); + onEditValidate(); + }, + label: AppLocalizations.of(context)!.certificatePath, + errorText: certificatePathError, + ), + if (certificateOption == 1) EncryptionTextField( + enabled: enabled, + controller: certificateContentController, + icon: Icons.description_rounded, + onChanged: (value) { + setState(() => certificateContentError = validateCertificate(context, value)); + onEditValidate(); + }, + label: AppLocalizations.of(context)!.certificateContent, + errorText: certificateContentError, + multiline: true, + keyboardType: TextInputType.multiline, + ), + if (certKeyValid != null && (certificateContentController.text != '' || certificatePathController.text != '')) ...[ + const SizedBox(height: 20), + if (certKeyValid!.validChain != null) ...[ + Status( + valid: certKeyValid!.validChain ?? false, + label: certKeyValid!.validChain == true + ? AppLocalizations.of(context)!.validCertificateChain + : AppLocalizations.of(context)!.invalidCertificateChain, + ), + const SizedBox(height: 10), + ], + if (certKeyValid!.subject != null) ...[ + Status( + valid: true, + label: "${AppLocalizations.of(context)!.subject}: ${certKeyValid?.subject}" + ), + const SizedBox(height: 10), + ], + if (certKeyValid!.issuer != null) ...[ + Status( valid: true, - label: "${AppLocalizations.of(context)!.subject}: ${certKeyValid?.subject}" + label: "${AppLocalizations.of(context)!.issuer}: ${certKeyValid?.issuer}" ), - const SizedBox(height: 10), + const SizedBox(height: 10), + ], + if (certKeyValid!.notAfter != null) ...[ + Status( + valid: true, + label: "${AppLocalizations.of(context)!.expirationDate}: ${certKeyValid?.notAfter}" + ), + const SizedBox(height: 10), + ], + if (certKeyValid!.dnsNames != null) ...[ + Status( + valid: true, + label: "${AppLocalizations.of(context)!.hostNames}: ${certKeyValid?.dnsNames?.join(', ')}" + ), + const SizedBox(height: 10), + ], ], - if (certKeyValid!.issuer != null) ...[ - Status( - valid: true, - label: "${AppLocalizations.of(context)!.issuer}: ${certKeyValid?.issuer}" + SectionLabel( + label: AppLocalizations.of(context)!.privateKey, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), ), - const SizedBox(height: 10), - ], - if (certKeyValid!.notAfter != null) ...[ - Status( - valid: true, - label: "${AppLocalizations.of(context)!.expirationDate}: ${certKeyValid?.notAfter}" - ), - const SizedBox(height: 10), - ], - if (certKeyValid!.dnsNames != null) ...[ - Status( - valid: true, - label: "${AppLocalizations.of(context)!.hostNames}: ${certKeyValid?.dnsNames?.join(', ')}" - ), - const SizedBox(height: 10), - ], - ], - SectionLabel( - label: AppLocalizations.of(context)!.privateKey, - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), - ), - RadioListTile( - value: 0, - groupValue: privateKeyOption, - onChanged: enabled == true - ? (value) { - setState(() => privateKeyOption = int.parse(value.toString())); - onEditValidate(); - } - : null, - title: Text( - AppLocalizations.of(context)!.privateKeyFile, - style: const TextStyle( - fontWeight: FontWeight.normal + RadioListTile( + value: 0, + groupValue: privateKeyOption, + onChanged: enabled == true + ? (value) { + setState(() => privateKeyOption = int.parse(value.toString())); + onEditValidate(); + } + : null, + title: Text( + AppLocalizations.of(context)!.privateKeyFile, + style: const TextStyle( + fontWeight: FontWeight.normal + ), ), ), - ), - RadioListTile( - value: 1, - groupValue: privateKeyOption, - onChanged: enabled == true - ? (value) { - setState(() => privateKeyOption = int.parse(value.toString())); - onEditValidate(); - } - : null, - title: Text( - AppLocalizations.of(context)!.pastePrivateKey, - style: const TextStyle( - fontWeight: FontWeight.normal + RadioListTile( + value: 1, + groupValue: privateKeyOption, + onChanged: enabled == true + ? (value) { + setState(() => privateKeyOption = int.parse(value.toString())); + onEditValidate(); + } + : null, + title: Text( + AppLocalizations.of(context)!.pastePrivateKey, + style: const TextStyle( + fontWeight: FontWeight.normal + ), ), ), - ), - if (privateKeyOption == 0) const SizedBox(height: 10), - if (privateKeyOption == 1) ...[ - CustomSwitchListTile( - value: usePreviouslySavedKey, - onChanged: (value) => setState(() => usePreviouslySavedKey = value), - title: AppLocalizations.of(context)!.usePreviousKey, - ), - const SizedBox(height: 10) - ], - if (privateKeyOption == 0) EncryptionTextField( - enabled: enabled, - controller: privateKeyPathController, - icon: Icons.description_rounded, - onChanged: (value) { - setState(() => privateKeyPathError = validatePath(context, value)); - onEditValidate(); - }, - label: AppLocalizations.of(context)!.privateKeyPath, - errorText: privateKeyPathError, - ), - if (privateKeyOption == 1) EncryptionTextField( - enabled: enabled == true - ? !usePreviouslySavedKey - : false, - controller: pastePrivateKeyController, - icon: Icons.description_rounded, - onChanged: (value) { - setState(() => pastePrivateKeyError = validatePrivateKey(context, value)); - onEditValidate(); - }, - label: AppLocalizations.of(context)!.pastePrivateKey, - errorText: pastePrivateKeyError, - keyboardType: TextInputType.multiline, - multiline: true, - ), - const SizedBox(height: 20), - if (certKeyValid != null && (privateKeyPathController.text != '' || pastePrivateKeyController.text != '' || usePreviouslySavedKey == true)) ...[ - if (certKeyValid!.validKey != null) ...[ - Status( - valid: certKeyValid!.validKey ?? false, - label: certKeyValid!.validKey == true - ? AppLocalizations.of(context)!.validPrivateKey - : AppLocalizations.of(context)!.invalidPrivateKey, + if (privateKeyOption == 0) const SizedBox(height: 10), + if (privateKeyOption == 1) ...[ + CustomSwitchListTile( + value: usePreviouslySavedKey, + onChanged: (value) => setState(() => usePreviouslySavedKey = value), + title: AppLocalizations.of(context)!.usePreviousKey, ), const SizedBox(height: 10) ], - if (certKeyValid!.validPair != null && certKeyValid!.validPair == false) ...[ - Status( - valid: false, - label: AppLocalizations.of(context)!.keysNotMatch, - ), - const SizedBox(height: 10) - ], - if (certKeyValid!.keyType != null) ...[ - Status( - valid: true, - label: "${AppLocalizations.of(context)!.keyType}: ${certKeyValid!.keyType}" - ), - const SizedBox(height: 10), - ], - const SizedBox(height: 10) - ] - ], - ); - - case LoadStatus.error: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, + if (privateKeyOption == 0) EncryptionTextField( + enabled: enabled, + controller: privateKeyPathController, + icon: Icons.description_rounded, + onChanged: (value) { + setState(() => privateKeyPathError = validatePath(context, value)); + onEditValidate(); + }, + label: AppLocalizations.of(context)!.privateKeyPath, + errorText: privateKeyPathError, ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.encryptionSettingsNotLoaded, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) + if (privateKeyOption == 1) EncryptionTextField( + enabled: enabled == true + ? !usePreviouslySavedKey + : false, + controller: pastePrivateKeyController, + icon: Icons.description_rounded, + onChanged: (value) { + setState(() => pastePrivateKeyError = validatePrivateKey(context, value)); + onEditValidate(); + }, + label: AppLocalizations.of(context)!.pastePrivateKey, + errorText: pastePrivateKeyError, + keyboardType: TextInputType.multiline, + multiline: true, + ), + const SizedBox(height: 20), + if (certKeyValid != null && (privateKeyPathController.text != '' || pastePrivateKeyController.text != '' || usePreviouslySavedKey == true)) ...[ + if (certKeyValid!.validKey != null) ...[ + Status( + valid: certKeyValid!.validKey ?? false, + label: certKeyValid!.validKey == true + ? AppLocalizations.of(context)!.validPrivateKey + : AppLocalizations.of(context)!.invalidPrivateKey, + ), + const SizedBox(height: 10) + ], + if (certKeyValid!.validPair != null && certKeyValid!.validPair == false) ...[ + Status( + valid: false, + label: AppLocalizations.of(context)!.keysNotMatch, + ), + const SizedBox(height: 10) + ], + if (certKeyValid!.keyType != null) ...[ + Status( + valid: true, + label: "${AppLocalizations.of(context)!.keyType}: ${certKeyValid!.keyType}" + ), + const SizedBox(height: 10), + ], + const SizedBox(height: 10) + ] ], - ), - ); - - default: - return const SizedBox(); - } - }, + ); + + case LoadStatus.error: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.encryptionSettingsNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + default: + return const SizedBox(); + } + }, + ), ) ); } diff --git a/lib/screens/settings/general_settings/general_settings.dart b/lib/screens/settings/general_settings/general_settings.dart index 20e13e8..74cc752 100644 --- a/lib/screens/settings/general_settings/general_settings.dart +++ b/lib/screens/settings/general_settings/general_settings.dart @@ -124,173 +124,175 @@ class _GeneralSettingsState extends State { title: Text(AppLocalizations.of(context)!.generalSettings), surfaceTintColor: isDesktop(width) ? Colors.transparent : null, ), - body: ListView( - children: [ - SectionLabel(label: AppLocalizations.of(context)!.home), - CustomListTile( - icon: Icons.exposure_zero_rounded, - title: AppLocalizations.of(context)!.hideZeroValues, - subtitle: AppLocalizations.of(context)!.hideZeroValuesDescription, - trailing: Switch( - value: appConfigProvider.hideZeroValues, - onChanged: (value) => updateSettings( - newStatus: value, + body: SafeArea( + child: ListView( + children: [ + SectionLabel(label: AppLocalizations.of(context)!.home), + CustomListTile( + icon: Icons.exposure_zero_rounded, + title: AppLocalizations.of(context)!.hideZeroValues, + subtitle: AppLocalizations.of(context)!.hideZeroValuesDescription, + trailing: Switch( + value: appConfigProvider.hideZeroValues, + onChanged: (value) => updateSettings( + newStatus: value, + function: appConfigProvider.setHideZeroValues + ), + ), + onTap: () => updateSettings( + newStatus: !appConfigProvider.hideZeroValues, function: appConfigProvider.setHideZeroValues ), + padding: const EdgeInsets.only( + top: 10, + bottom: 10, + left: 16, + right: 10 + ) ), - onTap: () => updateSettings( - newStatus: !appConfigProvider.hideZeroValues, - function: appConfigProvider.setHideZeroValues - ), - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - left: 16, - right: 10 - ) - ), - CustomListTile( - icon: Icons.show_chart_rounded, - title: AppLocalizations.of(context)!.combinedChart, - subtitle: AppLocalizations.of(context)!.combinedChartDescription, - trailing: Switch( - value: appConfigProvider.combinedChartHome, - onChanged: (value) => updateSettings( - newStatus: value, + CustomListTile( + icon: Icons.show_chart_rounded, + title: AppLocalizations.of(context)!.combinedChart, + subtitle: AppLocalizations.of(context)!.combinedChartDescription, + trailing: Switch( + value: appConfigProvider.combinedChartHome, + onChanged: (value) => updateSettings( + newStatus: value, + function: appConfigProvider.setCombinedChartHome + ), + ), + onTap: () => updateSettings( + newStatus: !appConfigProvider.combinedChartHome, function: appConfigProvider.setCombinedChartHome ), + padding: const EdgeInsets.only( + top: 10, + bottom: 10, + left: 16, + right: 10 + ) ), - onTap: () => updateSettings( - newStatus: !appConfigProvider.combinedChartHome, - function: appConfigProvider.setCombinedChartHome - ), - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - left: 16, - right: 10 - ) - ), - CustomListTile( - icon: Icons.remove_red_eye_rounded, - title: AppLocalizations.of(context)!.hideServerAddress, - subtitle: AppLocalizations.of(context)!.hideServerAddressDescription, - trailing: Switch( - value: appConfigProvider.hideServerAddress, - onChanged: (value) => updateSettings( - newStatus: value, + CustomListTile( + icon: Icons.remove_red_eye_rounded, + title: AppLocalizations.of(context)!.hideServerAddress, + subtitle: AppLocalizations.of(context)!.hideServerAddressDescription, + trailing: Switch( + value: appConfigProvider.hideServerAddress, + onChanged: (value) => updateSettings( + newStatus: value, + function: appConfigProvider.setHideServerAddress + ), + ), + onTap: () => updateSettings( + newStatus: !appConfigProvider.hideServerAddress, function: appConfigProvider.setHideServerAddress ), + padding: const EdgeInsets.only( + top: 10, + bottom: 10, + left: 16, + right: 10 + ) ), - onTap: () => updateSettings( - newStatus: !appConfigProvider.hideServerAddress, - function: appConfigProvider.setHideServerAddress + CustomListTile( + icon: Icons.reorder_rounded, + title: AppLocalizations.of(context)!.topItemsOrder, + subtitle: AppLocalizations.of(context)!.topItemsOrderDescription, + onTap: () => widget.splitView == true + ? SplitView.of(context).push(const ReorderableTopItemsHome()) + : Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => const ReorderableTopItemsHome() + ) + ) ), - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - left: 16, - right: 10 - ) - ), - CustomListTile( - icon: Icons.reorder_rounded, - title: AppLocalizations.of(context)!.topItemsOrder, - subtitle: AppLocalizations.of(context)!.topItemsOrderDescription, - onTap: () => widget.splitView == true - ? SplitView.of(context).push(const ReorderableTopItemsHome()) - : Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => const ReorderableTopItemsHome() - ) - ) - ), - CustomListTile( - icon: Icons.donut_large_rounded, - title: AppLocalizations.of(context)!.showTopItemsChart, - subtitle: AppLocalizations.of(context)!.showTopItemsChartDescription, - trailing: Switch( - value: appConfigProvider.showTopItemsChart, - onChanged: (value) => updateSettings( - newStatus: value, + CustomListTile( + icon: Icons.donut_large_rounded, + title: AppLocalizations.of(context)!.showTopItemsChart, + subtitle: AppLocalizations.of(context)!.showTopItemsChartDescription, + trailing: Switch( + value: appConfigProvider.showTopItemsChart, + onChanged: (value) => updateSettings( + newStatus: value, + function: appConfigProvider.setShowTopItemsChart + ), + ), + onTap: () => updateSettings( + newStatus: !appConfigProvider.showTopItemsChart, function: appConfigProvider.setShowTopItemsChart ), + padding: const EdgeInsets.only( + top: 10, + bottom: 10, + left: 16, + right: 10 + ) ), - onTap: () => updateSettings( - newStatus: !appConfigProvider.showTopItemsChart, - function: appConfigProvider.setShowTopItemsChart - ), - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - left: 16, - right: 10 - ) - ), - SectionLabel(label: AppLocalizations.of(context)!.logs), - CustomListTile( - icon: Icons.timer_rounded, - title: AppLocalizations.of(context)!.timeLogs, - subtitle: AppLocalizations.of(context)!.timeLogsDescription, - trailing: Switch( - value: appConfigProvider.showTimeLogs, - onChanged: (value) => updateSettings( - newStatus: value, + SectionLabel(label: AppLocalizations.of(context)!.logs), + CustomListTile( + icon: Icons.timer_rounded, + title: AppLocalizations.of(context)!.timeLogs, + subtitle: AppLocalizations.of(context)!.timeLogsDescription, + trailing: Switch( + value: appConfigProvider.showTimeLogs, + onChanged: (value) => updateSettings( + newStatus: value, + function: appConfigProvider.setshowTimeLogs + ), + ), + onTap: () => updateSettings( + newStatus: !appConfigProvider.showTimeLogs, function: appConfigProvider.setshowTimeLogs ), + padding: const EdgeInsets.only( + top: 10, + bottom: 10, + left: 16, + right: 10 + ) ), - onTap: () => updateSettings( - newStatus: !appConfigProvider.showTimeLogs, - function: appConfigProvider.setshowTimeLogs - ), - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - left: 16, - right: 10 - ) - ), - CustomListTile( - icon: Icons.more, - title: AppLocalizations.of(context)!.ipLogs, - subtitle: AppLocalizations.of(context)!.ipLogsDescription, - trailing: Switch( - value: appConfigProvider.showIpLogs, - onChanged: (value) => updateSettings( - newStatus: value, + CustomListTile( + icon: Icons.more, + title: AppLocalizations.of(context)!.ipLogs, + subtitle: AppLocalizations.of(context)!.ipLogsDescription, + trailing: Switch( + value: appConfigProvider.showIpLogs, + onChanged: (value) => updateSettings( + newStatus: value, + function: appConfigProvider.setShowIpLogs + ), + ), + onTap: () => updateSettings( + newStatus: !appConfigProvider.showIpLogs, function: appConfigProvider.setShowIpLogs ), + padding: const EdgeInsets.only( + top: 10, + bottom: 10, + left: 16, + right: 10 + ) ), - onTap: () => updateSettings( - newStatus: !appConfigProvider.showIpLogs, - function: appConfigProvider.setShowIpLogs - ), - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - left: 16, - right: 10 - ) - ), - if ( - !(Platform.isAndroid || Platform.isIOS) || - (Platform.isAndroid && ( - appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_LOCAL_SOURCE || - appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_PLAY_PACKAGE_INSTALLER || - appConfigProvider.installationSource == Source.UNKNOWN - )) - ) ...[ - SectionLabel(label: AppLocalizations.of(context)!.application), - CustomListTile( - icon: Icons.system_update_rounded, - title: AppLocalizations.of(context)!.appUpdates, - subtitle: appConfigProvider.appUpdatesAvailable != null - ? AppLocalizations.of(context)!.updateAvailable - : AppLocalizations.of(context)!.usingLatestVersion, - trailing: generateAppUpdateStatus() - ) - ] - ], + if ( + !(Platform.isAndroid || Platform.isIOS) || + (Platform.isAndroid && ( + appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_LOCAL_SOURCE || + appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_PLAY_PACKAGE_INSTALLER || + appConfigProvider.installationSource == Source.UNKNOWN + )) + ) ...[ + SectionLabel(label: AppLocalizations.of(context)!.application), + CustomListTile( + icon: Icons.system_update_rounded, + title: AppLocalizations.of(context)!.appUpdates, + subtitle: appConfigProvider.appUpdatesAvailable != null + ? AppLocalizations.of(context)!.updateAvailable + : AppLocalizations.of(context)!.usingLatestVersion, + trailing: generateAppUpdateStatus() + ) + ] + ], + ), ) ); } diff --git a/lib/screens/settings/safe_search_settings.dart b/lib/screens/settings/safe_search_settings.dart index 99f6ad7..793a1c2 100644 --- a/lib/screens/settings/safe_search_settings.dart +++ b/lib/screens/settings/safe_search_settings.dart @@ -14,7 +14,7 @@ import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; class SafeSearchSettingsScreen extends StatefulWidget { - const SafeSearchSettingsScreen({Key? key}) : super(key: key); + const SafeSearchSettingsScreen({super.key}); @override State createState() => _SafeSearchSettingsScreenState(); @@ -123,166 +123,168 @@ class _SafeSearchSettingsScreenState extends State { const SizedBox(width: 8) ], ), - body: Builder( - builder: (context) { - switch (statusProvider.loadStatus) { - case LoadStatus.loading: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingSafeSearchSettings, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), - ); - - case LoadStatus.loaded: - return RefreshIndicator( - onRefresh: requestSafeSearchSettings, - child: ListView( - children: [ - Padding( - padding: const EdgeInsets.only( - top: 16, - left: 16, - right: 16, - bottom: 8 - ), - child: Material( - color: Colors.transparent, - borderRadius: BorderRadius.circular(28), - child: InkWell( + body: SafeArea( + child: Builder( + builder: (context) { + switch (statusProvider.loadStatus) { + case LoadStatus.loading: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingSafeSearchSettings, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + case LoadStatus.loaded: + return RefreshIndicator( + onRefresh: requestSafeSearchSettings, + child: ListView( + children: [ + Padding( + padding: const EdgeInsets.only( + top: 16, + left: 16, + right: 16, + bottom: 8 + ), + child: Material( + color: Colors.transparent, borderRadius: BorderRadius.circular(28), - onTap: () => setState(() => generalEnabled = !generalEnabled), - child: Container( - padding: const EdgeInsets.symmetric( - horizontal: 24, - vertical: 12 - ), - decoration: BoxDecoration( - color: Theme.of(context).colorScheme.primary.withOpacity(0.1), - borderRadius: BorderRadius.circular(28) - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Flexible( - child: Text( - AppLocalizations.of(context)!.enableSafeSearch, - style: const TextStyle( - fontSize: 18 + child: InkWell( + borderRadius: BorderRadius.circular(28), + onTap: () => setState(() => generalEnabled = !generalEnabled), + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 24, + vertical: 12 + ), + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.primary.withOpacity(0.1), + borderRadius: BorderRadius.circular(28) + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + child: Text( + AppLocalizations.of(context)!.enableSafeSearch, + style: const TextStyle( + fontSize: 18 + ), ), ), - ), - Switch( - value: generalEnabled, - onChanged: (value) => setState(() => generalEnabled = value) - ) - ], + Switch( + value: generalEnabled, + onChanged: (value) => setState(() => generalEnabled = value) + ) + ], + ), ), ), ), ), - ), - CustomCheckboxListTile( - value: bingEnabled, - onChanged: (value) => setState(() => bingEnabled = value), - title: "Bing", - padding: const EdgeInsets.only( - top: 8, left: 40, right: 40, bottom: 8 + CustomCheckboxListTile( + value: bingEnabled, + onChanged: (value) => setState(() => bingEnabled = value), + title: "Bing", + padding: const EdgeInsets.only( + top: 8, left: 40, right: 40, bottom: 8 + ), + disabled: !generalEnabled, ), - disabled: !generalEnabled, - ), - CustomCheckboxListTile( - value: duckduckgoEnabled, - onChanged: (value) => setState(() => duckduckgoEnabled = value), - title: "DuckDuckGo", - padding: const EdgeInsets.only( - top: 8, left: 40, right: 40, bottom: 8 + CustomCheckboxListTile( + value: duckduckgoEnabled, + onChanged: (value) => setState(() => duckduckgoEnabled = value), + title: "DuckDuckGo", + padding: const EdgeInsets.only( + top: 8, left: 40, right: 40, bottom: 8 + ), + disabled: !generalEnabled, ), - disabled: !generalEnabled, - ), - CustomCheckboxListTile( - value: googleEnabled, - onChanged: (value) => setState(() => googleEnabled = value), - title: "Google", - padding: const EdgeInsets.only( - top: 8, left: 40, right: 40, bottom: 8 + CustomCheckboxListTile( + value: googleEnabled, + onChanged: (value) => setState(() => googleEnabled = value), + title: "Google", + padding: const EdgeInsets.only( + top: 8, left: 40, right: 40, bottom: 8 + ), + disabled: !generalEnabled, ), - disabled: !generalEnabled, - ), - CustomCheckboxListTile( - value: pixabayEnabled, - onChanged: (value) => setState(() => pixabayEnabled = value), - title: "Pixabay", - padding: const EdgeInsets.only( - top: 8, left: 40, right: 40, bottom: 8 + CustomCheckboxListTile( + value: pixabayEnabled, + onChanged: (value) => setState(() => pixabayEnabled = value), + title: "Pixabay", + padding: const EdgeInsets.only( + top: 8, left: 40, right: 40, bottom: 8 + ), + disabled: !generalEnabled, ), - disabled: !generalEnabled, - ), - CustomCheckboxListTile( - value: yandexEnabled, - onChanged: (value) => setState(() => yandexEnabled = value), - title: "Yandex", - padding: const EdgeInsets.only( - top: 8, left: 40, right: 40, bottom: 8 + CustomCheckboxListTile( + value: yandexEnabled, + onChanged: (value) => setState(() => yandexEnabled = value), + title: "Yandex", + padding: const EdgeInsets.only( + top: 8, left: 40, right: 40, bottom: 8 + ), + disabled: !generalEnabled, ), - disabled: !generalEnabled, - ), - CustomCheckboxListTile( - value: youtubeEnabled, - onChanged: (value) => setState(() => youtubeEnabled = value), - title: "YouTube", - padding: const EdgeInsets.only( - top: 8, left: 40, right: 40, bottom: 8 + CustomCheckboxListTile( + value: youtubeEnabled, + onChanged: (value) => setState(() => youtubeEnabled = value), + title: "YouTube", + padding: const EdgeInsets.only( + top: 8, left: 40, right: 40, bottom: 8 + ), + disabled: !generalEnabled, ), - disabled: !generalEnabled, - ), - ], - ), - ); - - case LoadStatus.error: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.safeSearchSettingsNotLoaded, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, + ], + ), + ); + + case LoadStatus.error: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, ), - ) - ], - ), - ); - - - default: - return const SizedBox(); - } - }, + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.safeSearchSettingsNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + + default: + return const SizedBox(); + } + }, + ), ) ); } diff --git a/lib/screens/settings/server_info/server_info.dart b/lib/screens/settings/server_info/server_info.dart index 3032dcf..b15d8e0 100644 --- a/lib/screens/settings/server_info/server_info.dart +++ b/lib/screens/settings/server_info/server_info.dart @@ -51,114 +51,116 @@ class _ServerInformationState extends State { surfaceTintColor: isDesktop(width) ? Colors.transparent : null, centerTitle: false, ), - body: Builder( - builder: (context) { - switch (serverInfo.loadStatus) { - case LoadStatus.loading: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, + body: SafeArea( + child: Builder( + builder: (context) { + switch (serverInfo.loadStatus) { + case LoadStatus.loading: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + AppLocalizations.of(context)!.loadingServerInfo, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), + ) + ], + ), + ); + + case LoadStatus.loaded: + return ListView( children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Text( - AppLocalizations.of(context)!.loadingServerInfo, + CustomListTile( + title: AppLocalizations.of(context)!.dnsAddresses, + subtitle: AppLocalizations.of(context)!.seeDnsAddresses, + onTap: () { + showModal( + context: context, + builder: (context) => DnsAddressesModal( + dnsAddresses: serverInfo.data!.dnsAddresses + ) + ); + }, + ), + CustomListTile( + title: AppLocalizations.of(context)!.dnsPort, + subtitle: serverInfo.data!.dnsPort.toString(), + ), + CustomListTile( + title: AppLocalizations.of(context)!.httpPort, + subtitle: serverInfo.data!.httpPort.toString(), + ), + CustomListTile( + title: AppLocalizations.of(context)!.protectionEnabled, + subtitle: serverInfo.data!.protectionEnabled == true + ? AppLocalizations.of(context)!.yes + : AppLocalizations.of(context)!.no, + ), + CustomListTile( + title: AppLocalizations.of(context)!.dhcpAvailable, + subtitle: serverInfo.data!.dhcpAvailable == true + ? AppLocalizations.of(context)!.yes + : AppLocalizations.of(context)!.no, + ), + CustomListTile( + title: AppLocalizations.of(context)!.serverRunning, + subtitle: serverInfo.data!.running == true + ? AppLocalizations.of(context)!.yes + : AppLocalizations.of(context)!.no, + ), + CustomListTile( + title: AppLocalizations.of(context)!.serverVersion, + subtitle: serverInfo.data!.version, + ), + CustomListTile( + title: AppLocalizations.of(context)!.serverLanguage, + subtitle: serverInfo.data!.language, + ), + ] + ); + + case LoadStatus.error: + return SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.serverInfoNotLoaded, textAlign: TextAlign.center, style: TextStyle( fontSize: 22, color: Theme.of(context).colorScheme.onSurfaceVariant, ), - ), - ) - ], - ), - ); - - case LoadStatus.loaded: - return ListView( - children: [ - CustomListTile( - title: AppLocalizations.of(context)!.dnsAddresses, - subtitle: AppLocalizations.of(context)!.seeDnsAddresses, - onTap: () { - showModal( - context: context, - builder: (context) => DnsAddressesModal( - dnsAddresses: serverInfo.data!.dnsAddresses - ) - ); - }, + ) + ], ), - CustomListTile( - title: AppLocalizations.of(context)!.dnsPort, - subtitle: serverInfo.data!.dnsPort.toString(), - ), - CustomListTile( - title: AppLocalizations.of(context)!.httpPort, - subtitle: serverInfo.data!.httpPort.toString(), - ), - CustomListTile( - title: AppLocalizations.of(context)!.protectionEnabled, - subtitle: serverInfo.data!.protectionEnabled == true - ? AppLocalizations.of(context)!.yes - : AppLocalizations.of(context)!.no, - ), - CustomListTile( - title: AppLocalizations.of(context)!.dhcpAvailable, - subtitle: serverInfo.data!.dhcpAvailable == true - ? AppLocalizations.of(context)!.yes - : AppLocalizations.of(context)!.no, - ), - CustomListTile( - title: AppLocalizations.of(context)!.serverRunning, - subtitle: serverInfo.data!.running == true - ? AppLocalizations.of(context)!.yes - : AppLocalizations.of(context)!.no, - ), - CustomListTile( - title: AppLocalizations.of(context)!.serverVersion, - subtitle: serverInfo.data!.version, - ), - CustomListTile( - title: AppLocalizations.of(context)!.serverLanguage, - subtitle: serverInfo.data!.language, - ), - ] - ); - - case LoadStatus.error: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.serverInfoNotLoaded, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), - ); - - default: - return const SizedBox(); - } - }, + ); + + default: + return const SizedBox(); + } + }, + ), ) ); } diff --git a/lib/screens/settings/theme_modal.dart b/lib/screens/settings/theme_modal.dart index 4d8f2fe..fac867e 100644 --- a/lib/screens/settings/theme_modal.dart +++ b/lib/screens/settings/theme_modal.dart @@ -14,10 +14,10 @@ class ThemeModal extends StatefulWidget { final int selectedTheme; const ThemeModal({ - Key? key, + super.key, required this.statusBarHeight, required this.selectedTheme, - }) : super(key: key); + }); @override State createState() => _ThemeModalState(); diff --git a/lib/screens/settings/update_server/update.dart b/lib/screens/settings/update_server/update.dart index dd91f6e..d1f8d95 100644 --- a/lib/screens/settings/update_server/update.dart +++ b/lib/screens/settings/update_server/update.dart @@ -17,7 +17,7 @@ import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; class UpdateScreen extends StatelessWidget { - const UpdateScreen({Key? key}) : super(key: key); + const UpdateScreen({super.key}); @override Widget build(BuildContext context) { @@ -166,33 +166,38 @@ class UpdateScreen extends StatelessWidget { ); } - final changelog = serversProvider.updateAvailable.loadStatus == LoadStatus.loaded && serversProvider.updateAvailable.data!.changelog != null - ? ListView( - children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), - child: Text( - "Changelog ${serversProvider.updateAvailable.data!.canAutoupdate == true - ? serversProvider.updateAvailable.data!.newVersion - : serversProvider.updateAvailable.data!.currentVersion}", - style: TextStyle( - fontSize: 20, - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.onSurfaceVariant + final SafeArea? changelog; + if (serversProvider.updateAvailable.loadStatus == LoadStatus.loaded && serversProvider.updateAvailable.data!.changelog != null) { + changelog = SafeArea( + child: ListView( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Text( + "Changelog ${serversProvider.updateAvailable.data!.canAutoupdate == true + ? serversProvider.updateAvailable.data!.newVersion + : serversProvider.updateAvailable.data!.currentVersion}", + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), ), ), - ), - const SizedBox(height: 8), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), - child: Html( - data: html.parse(md.markdownToHtml(serversProvider.updateAvailable.data!.changelog!)).outerHtml, - onLinkTap: (url, context, attributes) => url != null ? openUrl(url) : null, + const SizedBox(height: 8), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Html( + data: html.parse(md.markdownToHtml(serversProvider.updateAvailable.data!.changelog!)).outerHtml, + onLinkTap: (url, context, attributes) => url != null ? openUrl(url) : null, + ) ) - ) - ], - ) - : null; + ], + ), + ); + } else { + changelog = null; + } return Scaffold( body: Column( diff --git a/lib/widgets/add_server/add_server_modal.dart b/lib/widgets/add_server/add_server_modal.dart index 59e8a55..e30d1e0 100644 --- a/lib/widgets/add_server/add_server_modal.dart +++ b/lib/widgets/add_server/add_server_modal.dart @@ -550,8 +550,10 @@ class _AddServerModalState extends State { const SizedBox(width: 8) ], ), - body: ListView( - children: form() + body: SafeArea( + child: ListView( + children: form() + ), ), ), ); diff --git a/lib/widgets/system_ui_overlay_style.dart b/lib/widgets/system_ui_overlay_style.dart index 83557f1..ab5b8d0 100644 --- a/lib/widgets/system_ui_overlay_style.dart +++ b/lib/widgets/system_ui_overlay_style.dart @@ -5,12 +5,14 @@ class OverlayStyle extends StatelessWidget { final Widget child; const OverlayStyle({ - Key? key, + super.key, required this.child - }) : super(key: key); + }); @override Widget build(BuildContext context) { + final systemGestureInsets = MediaQuery.of(context).systemGestureInsets; + return AnnotatedRegion( value: SystemUiOverlayStyle( statusBarColor: Colors.transparent, @@ -20,7 +22,13 @@ class OverlayStyle extends StatelessWidget { statusBarIconBrightness: Theme.of(context).brightness == Brightness.light ? Brightness.dark : Brightness.light, - systemNavigationBarColor: Theme.of(context).colorScheme.background, + systemNavigationBarColor: systemGestureInsets.left > 0 // If true gestures navigation + ? Colors.transparent + : ElevationOverlay.applySurfaceTint( + Theme.of(context).colorScheme.surface, + Theme.of(context).colorScheme.surfaceTint, + 3 + ), systemNavigationBarIconBrightness: Theme.of(context).brightness == Brightness.light ? Brightness.dark : Brightness.light, diff --git a/lib/widgets/tab_content_list.dart b/lib/widgets/tab_content_list.dart index d1f2ad0..92b7913 100644 --- a/lib/widgets/tab_content_list.dart +++ b/lib/widgets/tab_content_list.dart @@ -19,7 +19,7 @@ class CustomTabContentList extends StatelessWidget { final EdgeInsets? listPadding; const CustomTabContentList({ - Key? key, + super.key, required this.loadingGenerator, required this.itemsCount, required this.contentWidget, @@ -32,7 +32,7 @@ class CustomTabContentList extends StatelessWidget { this.fabVisible, this.noSliver, this.listPadding - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -49,7 +49,6 @@ class CustomTabContentList extends StatelessWidget { else { return SafeArea( top: false, - bottom: false, child: Builder( builder: (BuildContext context) => CustomScrollView( slivers: [ @@ -72,41 +71,45 @@ class CustomTabContentList extends StatelessWidget { case LoadStatus.loaded: if (noSliver == true) { if (itemsCount > 0) { - return Stack( - children: [ - ListView.builder( - padding: listPadding, - itemCount: itemsCount, - itemBuilder: (context, index) => contentWidget(index), - ), - if (fab != null) AnimatedPositioned( - duration: const Duration(milliseconds: 100), - curve: Curves.easeInOut, - bottom: fabVisible != null && fabVisible == true ? - appConfigProvider.showingSnackbar - ? 70 : 20 - : -70, - right: 20, - child: fab! - ), - ], + return SafeArea( + child: Stack( + children: [ + ListView.builder( + padding: listPadding, + itemCount: itemsCount, + itemBuilder: (context, index) => contentWidget(index), + ), + if (fab != null) AnimatedPositioned( + duration: const Duration(milliseconds: 100), + curve: Curves.easeInOut, + bottom: fabVisible != null && fabVisible == true ? + appConfigProvider.showingSnackbar + ? 70 : 20 + : -70, + right: 20, + child: fab! + ), + ], + ), ); } else { - return Stack( - children: [ - noData, - if (fab != null) AnimatedPositioned( - duration: const Duration(milliseconds: 100), - curve: Curves.easeInOut, - bottom: fabVisible != null && fabVisible == true ? - appConfigProvider.showingSnackbar - ? 70 : 20 - : -70, - right: 20, - child: fab! - ), - ], + return SafeArea( + child: Stack( + children: [ + noData, + if (fab != null) AnimatedPositioned( + duration: const Duration(milliseconds: 100), + curve: Curves.easeInOut, + bottom: fabVisible != null && fabVisible == true ? + appConfigProvider.showingSnackbar + ? 70 : 20 + : -70, + right: 20, + child: fab! + ), + ], + ), ); } } @@ -146,10 +149,10 @@ class CustomTabContentList extends StatelessWidget { curve: Curves.easeInOut, bottom: fabVisible != null && fabVisible == true ? appConfigProvider.showingSnackbar - ? 70 : 20 - : -70, + ? 90 : 20 + : -90, right: 20, - child: fab! + child: SafeArea(child: fab!) ), ], ); @@ -169,7 +172,6 @@ class CustomTabContentList extends StatelessWidget { else { return SafeArea( top: false, - bottom: false, child: Builder( builder: (BuildContext context) => CustomScrollView( slivers: [ From 33611cb89594e6405c52ece0f0165fa1e1ecc834 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Dec 2023 04:06:35 +0100 Subject: [PATCH 011/236] Improvements --- lib/screens/settings/encryption/encryption.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/screens/settings/encryption/encryption.dart b/lib/screens/settings/encryption/encryption.dart index e11047e..28c1d95 100644 --- a/lib/screens/settings/encryption/encryption.dart +++ b/lib/screens/settings/encryption/encryption.dart @@ -82,10 +82,10 @@ class _EncryptionSettingsState extends State { final result = await Provider.of(context, listen: false).apiClient2!.getEncryptionSettings(); if (!mounted) return; - - final data = result.content as EncryptionData; if (result.successful == true) { + final data = result.content as EncryptionData; + await checkValidDataApi(data: data.toJson()); if (!mounted) return; From 5a12c4c11186a1c99b832d4e675b9e3dabef378e Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Dec 2023 04:07:47 +0100 Subject: [PATCH 012/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 32d01fc..1ad22e1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.12.3+114 +version: 2.12.4+115 environment: sdk: '>=2.18.1 <3.0.0' From c1e2a796af498233b8a09d19c6939be76dd5ac2d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 11 Dec 2023 13:33:01 +0100 Subject: [PATCH 013/236] Add refresh button desktop --- lib/screens/home/appbar.dart | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/screens/home/appbar.dart b/lib/screens/home/appbar.dart index 365e606..52ff350 100644 --- a/lib/screens/home/appbar.dart +++ b/lib/screens/home/appbar.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -16,9 +18,9 @@ class HomeAppBar extends StatelessWidget { final bool innerBoxScrolled; const HomeAppBar({ - Key? key, + super.key, required this.innerBoxScrolled - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -118,6 +120,14 @@ class HomeAppBar extends StatelessWidget { ], ), actions: [ + if (!(Platform.isAndroid || Platform.isIOS)) ...[ + IconButton( + onPressed: () => statusProvider.getServerStatus(), + icon: const Icon(Icons.refresh_rounded), + tooltip: AppLocalizations.of(context)!.refresh, + ), + const SizedBox(width: 8), + ], PopupMenuButton( itemBuilder: (context) => [ PopupMenuItem( From 3aa36c89aaa4e1ffb57e1521a62d2e2b11c7bd51 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 11 Dec 2023 13:54:47 +0100 Subject: [PATCH 014/236] Added reset encryption settings --- lib/l10n/app_en.arb | 7 +- lib/l10n/app_es.arb | 7 +- .../settings/encryption/encryption.dart | 78 ++++++++++++++++--- .../encryption/reset_settings_modal.dart | 52 +++++++++++++ 4 files changed, 130 insertions(+), 14 deletions(-) create mode 100644 lib/screens/settings/encryption/reset_settings_modal.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index fb875cc..11f04c3 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -690,5 +690,10 @@ "topUpstreams": "Top upstreams", "averageUpstreamResponseTime": "Average upstream response time", "dhcpNotAvailable": "The DHCP server is not available.", - "osServerInstalledIncompatible": "The OS where the server is installed is not compatible with this feature." + "osServerInstalledIncompatible": "The OS where the server is installed is not compatible with this feature.", + "resetSettings": "Reset settings", + "resetEncryptionSettingsDescription": "Are you sure you want to reset to default values the encryption settings?", + "resettingConfig": "Resetting configuration...", + "configurationResetSuccessfully": "Configuration resetted successfully", + "configurationResetError": "The configuration couldn't be resetted" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index cf328dc..94f4299 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -690,5 +690,10 @@ "topUpstreams": "DNS de subida más frecuentes", "averageUpstreamResponseTime": "Tiempo promedio de respuesta upstream", "dhcpNotAvailable": "El servidor DHCP no está disponible.", - "osServerInstalledIncompatible": "El SO donde el servidor está instalado no es compatible con esta característica." + "osServerInstalledIncompatible": "El SO donde el servidor está instalado no es compatible con esta característica.", + "resetSettings": "Resetear configuración", + "resetEncryptionSettingsDescription": "Estás seguro que deseas restaurar a valores por defecto la configuración de encriptación?", + "resettingConfig": "Reseteando configuración...", + "configurationResetSuccessfully": "Configuración reseteada correctamente", + "configurationResetError": "La configuración no ha podido ser reseteada" } \ No newline at end of file diff --git a/lib/screens/settings/encryption/encryption.dart b/lib/screens/settings/encryption/encryption.dart index 28c1d95..1efdad4 100644 --- a/lib/screens/settings/encryption/encryption.dart +++ b/lib/screens/settings/encryption/encryption.dart @@ -6,8 +6,8 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/section_label.dart'; import 'package:adguard_home_manager/widgets/custom_switch_list_tile.dart'; -import 'package:adguard_home_manager/screens/settings/encryption/config_error_modal.dart'; import 'package:adguard_home_manager/screens/settings/encryption/status.dart'; +import 'package:adguard_home_manager/screens/settings/encryption/reset_settings_modal.dart'; import 'package:adguard_home_manager/screens/settings/encryption/custom_text_field.dart'; import 'package:adguard_home_manager/screens/settings/encryption/master_switch.dart'; import 'package:adguard_home_manager/screens/settings/encryption/encryption_functions.dart'; @@ -254,6 +254,45 @@ class _EncryptionSettingsState extends State { } } + void resetSettings() async { + ProcessModal processModal = ProcessModal(); + processModal.open(AppLocalizations.of(context)!.resettingConfig); + + final result = await serversProvider.apiClient2!.saveEncryptionSettings( + data: { + "enabled": false, + "server_name": "", + "force_https": false, + "port_https": 443, + "port_dns_over_tls": 853, + "port_dns_over_quic": 853, + "certificate_chain": "", + "private_key": "", + "private_key_saved": false, + "certificate_path": "", + "private_key_path": "", + } + ); + if (!mounted) return; + + processModal.close(); + + if (result.successful == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.configurationResetSuccessfully, + color: Colors.green + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.configurationResetError, + color: Colors.red + ); + } + } + return Scaffold( appBar: AppBar( title: Text(AppLocalizations.of(context)!.encryptionSettings), @@ -261,17 +300,12 @@ class _EncryptionSettingsState extends State { centerTitle: false, actions: [ IconButton( - onPressed: certKeyValidApi == 2 && (validDataError != null || encryptionResultMessage != null) - ? () => { - showDialog( - context: context, - builder: (context) => EncryptionErrorModal( - error: validDataError ?? encryptionResultMessage ?? AppLocalizations.of(context)!.unknownError - ) - ) - } : null, - icon: generateStatus(context, appConfigProvider, localValidationValid, certKeyValidApi, formEdited), - tooltip: generateStatusString(context, localValidationValid, certKeyValidApi) + onPressed: () => showDialog( + context: context, + builder: (ctx) => ResetSettingsModal(onConfirm: resetSettings) + ), + icon: const Icon(Icons.restore_rounded), + tooltip: AppLocalizations.of(context)!.resetSettings, ), IconButton( onPressed: localValidationValid ? @@ -311,6 +345,26 @@ class _EncryptionSettingsState extends State { case LoadStatus.loaded: return ListView( children: [ + if (certKeyValidApi == 2 && (validDataError != null || encryptionResultMessage != null)) Card( + margin: const EdgeInsets.all(16), + color: Colors.red.withOpacity(0.2), + elevation: 0, + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.error_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + const SizedBox(width: 16), + Expanded( + child: Text(validDataError ?? encryptionResultMessage ?? AppLocalizations.of(context)!.unknownError) + ) + ], + ), + ), + ), EncryptionMasterSwitch( value: enabled, onChange: (value) { diff --git a/lib/screens/settings/encryption/reset_settings_modal.dart b/lib/screens/settings/encryption/reset_settings_modal.dart new file mode 100644 index 0000000..4429162 --- /dev/null +++ b/lib/screens/settings/encryption/reset_settings_modal.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +class ResetSettingsModal extends StatelessWidget { + final void Function() onConfirm; + + const ResetSettingsModal({ + super.key, + required this.onConfirm, + }); + + @override + Widget build(BuildContext context) { + return AlertDialog( + title: Column( + children: [ + Icon( + Icons.restore_rounded, + size: 24, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.resetSettings, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ) + ], + ), + content: Text( + AppLocalizations.of(context)!.resetEncryptionSettingsDescription, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.cancel) + ), + TextButton( + onPressed: () { + onConfirm(); + Navigator.pop(context); + }, + child: Text(AppLocalizations.of(context)!.confirm) + ), + ], + ); + } +} \ No newline at end of file From c3f55e9ce9c6a9d586b1aaf9916a44986bbd6873 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 11 Dec 2023 14:29:08 +0100 Subject: [PATCH 015/236] Added test upstream dns servers --- lib/l10n/app_en.arb | 4 +- lib/l10n/app_es.arb | 4 +- lib/screens/settings/dns/dns.dart | 9 + .../settings/dns/test_upstream_dns_modal.dart | 168 ++++++++++++++++++ lib/screens/settings/dns/upstream_dns.dart | 2 +- lib/services/api_client.dart | 14 ++ 6 files changed, 198 insertions(+), 3 deletions(-) create mode 100644 lib/screens/settings/dns/test_upstream_dns_modal.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 11f04c3..1e9271d 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -695,5 +695,7 @@ "resetEncryptionSettingsDescription": "Are you sure you want to reset to default values the encryption settings?", "resettingConfig": "Resetting configuration...", "configurationResetSuccessfully": "Configuration resetted successfully", - "configurationResetError": "The configuration couldn't be resetted" + "configurationResetError": "The configuration couldn't be resetted", + "testUpstreamDnsServers": "Test upstream DNS servers", + "errorTestUpstreamDns": "Error when testing upstream DNS servers." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 94f4299..f649320 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -695,5 +695,7 @@ "resetEncryptionSettingsDescription": "Estás seguro que deseas restaurar a valores por defecto la configuración de encriptación?", "resettingConfig": "Reseteando configuración...", "configurationResetSuccessfully": "Configuración reseteada correctamente", - "configurationResetError": "La configuración no ha podido ser reseteada" + "configurationResetError": "La configuración no ha podido ser reseteada", + "testUpstreamDnsServers": "Probar servidores DNS de subida", + "errorTestUpstreamDns": "Error al probar los servidores DNS de subida." } \ No newline at end of file diff --git a/lib/screens/settings/dns/dns.dart b/lib/screens/settings/dns/dns.dart index 2c711d6..c22572d 100644 --- a/lib/screens/settings/dns/dns.dart +++ b/lib/screens/settings/dns/dns.dart @@ -5,6 +5,7 @@ import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/settings/dns/test_upstream_dns_modal.dart'; import 'package:adguard_home_manager/screens/settings/dns/clear_dns_cache_dialog.dart'; import 'package:adguard_home_manager/screens/settings/dns/cache_config.dart'; import 'package:adguard_home_manager/screens/settings/dns/dns_server_settings.dart'; @@ -84,6 +85,14 @@ class _DnsSettingsState extends State { title: Text(AppLocalizations.of(context)!.dnsSettings), surfaceTintColor: isDesktop(width) ? Colors.transparent : null, actions: [ + IconButton( + onPressed: () => showDialog( + context: context, + builder: (ctx) => const TestUpstreamDnsModal() + ), + icon: const Icon(Icons.upload_rounded), + tooltip: AppLocalizations.of(context)!.testUpstreamDnsServers, + ), PopupMenuButton( itemBuilder: (context) => [ PopupMenuItem( diff --git a/lib/screens/settings/dns/test_upstream_dns_modal.dart b/lib/screens/settings/dns/test_upstream_dns_modal.dart new file mode 100644 index 0000000..8410334 --- /dev/null +++ b/lib/screens/settings/dns/test_upstream_dns_modal.dart @@ -0,0 +1,168 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/constants/enums.dart'; +import 'package:adguard_home_manager/providers/dns_provider.dart'; +import 'package:adguard_home_manager/providers/servers_provider.dart'; + +class _Item { + final String url; + final bool value; + + const _Item({ + required this.url, + required this.value + }); +} + +class TestUpstreamDnsModal extends StatefulWidget { + const TestUpstreamDnsModal({super.key}); + + @override + State createState() => _TestUpstreamDnsModalState(); +} + +class _TestUpstreamDnsModalState extends State { + LoadStatus loadStatus = LoadStatus.loading; + List<_Item>? values; + + void checkDns() async { + final dnsProvider = Provider.of(context, listen: false); + final result = await Provider.of(context, listen: false).apiClient2!.testUpstreamDns( + body: { + "bootstrap_dns": dnsProvider.dnsInfo!.bootstrapDns, + "fallback_dns": [], + "private_upstream": dnsProvider.dnsInfo!.defaultLocalPtrUpstreams, + "upstream_dns": dnsProvider.dnsInfo!.upstreamDns + } + ); + if (!mounted) return; + if (result.successful == true) { + setState(() { + values = List<_Item>.from( + (result.content as Map).entries.map((e) => _Item( + url: e.key, + value: e.value == "OK" ? true : false + )) + ); + loadStatus = LoadStatus.loaded; + }); + } + else { + setState(() => loadStatus = LoadStatus.error); + } + } + + @override + void initState() { + checkDns(); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return AlertDialog( + title: Column( + children: [ + Icon( + Icons.upload_rounded, + size: 24, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.testUpstreamDnsServers, + textAlign: TextAlign.center, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ) + ], + ), + content: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: 500 + ), + child: Builder( + builder: (context) { + switch (loadStatus) { + case LoadStatus.loading: + return const Padding( + padding: EdgeInsets.symmetric(vertical: 16), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + CircularProgressIndicator() + ], + ), + ); + + case LoadStatus.loaded: + return SingleChildScrollView( + child: Wrap( + children: values!.map((v) => Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Text( + v.url, + overflow: TextOverflow.ellipsis, + ), + ), + ...[ + const SizedBox(width: 8), + if (v.value == true) const Icon( + Icons.check_circle_rounded, + color: Colors.green, + size: 16, + ), + if (v.value == false) const Icon( + Icons.cancel_rounded, + color: Colors.red, + ) + ] + ], + ), + )).toList(), + ), + ); + + case LoadStatus.error: + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Icons.error_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + size: 30, + ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.errorTestUpstreamDns, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ) + ], + ); + + default: + return const SizedBox(); + } + }, + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.close) + ), + ], + ); + } +} \ No newline at end of file diff --git a/lib/screens/settings/dns/upstream_dns.dart b/lib/screens/settings/dns/upstream_dns.dart index f952110..e540053 100644 --- a/lib/screens/settings/dns/upstream_dns.dart +++ b/lib/screens/settings/dns/upstream_dns.dart @@ -186,7 +186,7 @@ class _UpstreamDnsScreenState extends State { icon: const Icon(Icons.save_rounded), tooltip: AppLocalizations.of(context)!.save, ), - const SizedBox(width: 10) + const SizedBox(width: 8) ], ), body: SafeArea( diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart index f626f75..c2e1fca 100644 --- a/lib/services/api_client.dart +++ b/lib/services/api_client.dart @@ -853,4 +853,18 @@ class ApiClientV2 { ); return ApiResponse(successful: result.successful); } + + Future testUpstreamDns({ + required Map body + }) async { + final result = await HttpRequestClient.post( + urlPath: '/test_upstream_dns', + server: server, + body: body + ); + return ApiResponse( + successful: result.successful, + content: result.body != null ? jsonDecode(result.body!) : null + ); + } } \ No newline at end of file From 6973eae0dea7608bd849f1a92dfdaaf2090eefdf Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 11 Dec 2023 15:48:01 +0100 Subject: [PATCH 016/236] Added custom ip edns field --- lib/l10n/app_en.arb | 4 +- lib/l10n/app_es.arb | 4 +- lib/models/dns_info.dart | 8 ++ .../settings/dns/dns_server_settings.dart | 96 ++++++++++++++++++- 4 files changed, 108 insertions(+), 4 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 1e9271d..15da154 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -697,5 +697,7 @@ "configurationResetSuccessfully": "Configuration resetted successfully", "configurationResetError": "The configuration couldn't be resetted", "testUpstreamDnsServers": "Test upstream DNS servers", - "errorTestUpstreamDns": "Error when testing upstream DNS servers." + "errorTestUpstreamDns": "Error when testing upstream DNS servers.", + "useCustomIpEdns": "Use custom IP for EDNS", + "useCustomIpEdnsDescription": "Allow to use custom IP for EDNS" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index f649320..c226a91 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -697,5 +697,7 @@ "configurationResetSuccessfully": "Configuración reseteada correctamente", "configurationResetError": "La configuración no ha podido ser reseteada", "testUpstreamDnsServers": "Probar servidores DNS de subida", - "errorTestUpstreamDns": "Error al probar los servidores DNS de subida." + "errorTestUpstreamDns": "Error al probar los servidores DNS de subida.", + "useCustomIpEdns": "Usar IP personalizada para EDNS", + "useCustomIpEdnsDescription": "Permitir usar IP personalizada para EDNS" } \ No newline at end of file diff --git a/lib/models/dns_info.dart b/lib/models/dns_info.dart index 4e85400..0d3aa83 100644 --- a/lib/models/dns_info.dart +++ b/lib/models/dns_info.dart @@ -6,6 +6,8 @@ class DnsInfo { int ratelimit; String blockingMode; bool ednsCsEnabled; + bool? ednsCsUseCustom; + String? ednsCsCustomIp; bool dnssecEnabled; bool disableIpv6; String? upstreamMode; @@ -28,6 +30,8 @@ class DnsInfo { required this.ratelimit, required this.blockingMode, required this.ednsCsEnabled, + required this.ednsCsUseCustom, + required this.ednsCsCustomIp, required this.dnssecEnabled, required this.disableIpv6, required this.upstreamMode, @@ -51,6 +55,8 @@ class DnsInfo { ratelimit: json["ratelimit"], blockingMode: json["blocking_mode"], ednsCsEnabled: json["edns_cs_enabled"], + ednsCsUseCustom: json["edns_cs_use_custom"], + ednsCsCustomIp: json["edns_cs_custom_ip"], dnssecEnabled: json["dnssec_enabled"], disableIpv6: json["disable_ipv6"], upstreamMode: json["upstream_mode"], @@ -74,6 +80,8 @@ class DnsInfo { "ratelimit": ratelimit, "blocking_mode": blockingMode, "edns_cs_enabled": ednsCsEnabled, + "edns_cs_use_custom": ednsCsUseCustom, + "edns_cs_custom_ip": ednsCsCustomIp, "dnssec_enabled": dnssecEnabled, "disable_ipv6": disableIpv6, "upstream_mode": upstreamMode, diff --git a/lib/screens/settings/dns/dns_server_settings.dart b/lib/screens/settings/dns/dns_server_settings.dart index 4cc650a..19f6c09 100644 --- a/lib/screens/settings/dns/dns_server_settings.dart +++ b/lib/screens/settings/dns/dns_server_settings.dart @@ -1,5 +1,6 @@ // ignore_for_file: use_build_context_synchronously +import 'package:expandable/expandable.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -24,7 +25,12 @@ class DnsServerSettingsScreen extends StatefulWidget { class _DnsServerSettingsScreenState extends State { final TextEditingController limitRequestsController = TextEditingController(); String? limitRequestsError; + final _expandableCustomEdns = ExpandableController(); + final _expandableEdnsIp = ExpandableController(); bool enableEdns = false; + bool useCustomIpEdns = false; + final _customIpEdnsController = TextEditingController(); + String? ednsIpError; bool enableDnssec = false; bool disableIpv6Resolving = false; @@ -48,6 +54,17 @@ class _DnsServerSettingsScreenState extends State { validateData(); } + void validateEdns(String value) { + RegExp ipAddress = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$'); + if (ipAddress.hasMatch(value) == true) { + setState(() => ednsIpError = null); + } + else { + setState(() => ednsIpError = AppLocalizations.of(context)!.ipNotValid); + } + validateData(); + } + void validateIpv6(String value) { RegExp ipAddress = RegExp(r'(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)'); if (ipAddress.hasMatch(value) == true) { @@ -72,7 +89,8 @@ class _DnsServerSettingsScreenState extends State { ipv6controller.text != '' && ipv6error == null ) - ) == true + ) == true && + ednsIpError == null ) { setState(() => isDataValid = true); } @@ -87,6 +105,10 @@ class _DnsServerSettingsScreenState extends State { limitRequestsController.text = dnsProvider.dnsInfo!.ratelimit.toString(); enableEdns = dnsProvider.dnsInfo!.ednsCsEnabled; + useCustomIpEdns = dnsProvider.dnsInfo!.ednsCsUseCustom ?? false; + _customIpEdnsController.text = dnsProvider.dnsInfo!.ednsCsCustomIp ?? ""; + if (dnsProvider.dnsInfo!.ednsCsEnabled == true) _expandableCustomEdns.toggle(); + if (dnsProvider.dnsInfo!.ednsCsUseCustom == true) _expandableEdnsIp.toggle(); enableDnssec = dnsProvider.dnsInfo!.dnssecEnabled; disableIpv6Resolving = dnsProvider.dnsInfo!.disableIpv6; blockingMode = dnsProvider.dnsInfo!.blockingMode; @@ -109,6 +131,8 @@ class _DnsServerSettingsScreenState extends State { final result = await dnsProvider.saveDnsServerConfig({ "ratelimit": int.parse(limitRequestsController.text), "edns_cs_enabled": enableEdns, + "edns_cs_use_custom": useCustomIpEdns, + "edns_cs_custom_ip": _customIpEdnsController.text, "dnssec_enabled": enableDnssec, "disable_ipv6": disableIpv6Resolving, "blocking_mode": blockingMode, @@ -200,10 +224,78 @@ class _DnsServerSettingsScreenState extends State { const SizedBox(height: 10), CustomSwitchListTile( value: enableEdns, - onChanged: (value) => setState(() => enableEdns = value), + onChanged: (value) => setState(() { + enableEdns = value; + _expandableCustomEdns.toggle(); + if (value == false) { + useCustomIpEdns = false; + if (_expandableEdnsIp.expanded == true) _expandableEdnsIp.toggle(); + _customIpEdnsController.text = ""; + ednsIpError = null; + } + validateData(); + }), title: AppLocalizations.of(context)!.enableEdns, subtitle: AppLocalizations.of(context)!.enableEdnsDescription, ), + ExpandableNotifier( + controller: _expandableCustomEdns, + child: Expandable( + collapsed: const SizedBox(), + expanded: Column( + children: [ + CustomSwitchListTile( + padding: const EdgeInsets.only( + left: 50, + top: 12, + bottom: 12, + right: 16 + ), + value: useCustomIpEdns, + onChanged: (value) => setState(() { + useCustomIpEdns = value; + _expandableEdnsIp.toggle(); + if (useCustomIpEdns == false) { + _customIpEdnsController.text = ""; + ednsIpError = null; + } + validateData(); + }), + title: AppLocalizations.of(context)!.useCustomIpEdns, + subtitle: AppLocalizations.of(context)!.useCustomIpEdnsDescription, + ), + ExpandableNotifier( + controller: _expandableEdnsIp, + child: Expandable( + collapsed: const SizedBox(), + expanded: Padding( + padding: const EdgeInsets.only( + top: 16, + bottom: 16, + right: 16, + left: 70 + ), + child: TextFormField( + controller: _customIpEdnsController, + onChanged: validateEdns, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.link_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: ednsIpError, + labelText: AppLocalizations.of(context)!.ipAddress, + ), + ), + ), + ) + ), + ], + ), + ) + ), CustomSwitchListTile( value: enableDnssec, onChanged: (value) => setState(() => enableDnssec = value), From c3530f17abfd403cd4a63f194672f25972337478 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 11 Dec 2023 18:32:28 +0100 Subject: [PATCH 017/236] Sort top items --- lib/l10n/app_en.arb | 5 +- lib/l10n/app_es.arb | 5 +- .../home/top_items/top_items_screen.dart | 58 ++++++++++++++++++- 3 files changed, 64 insertions(+), 4 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 15da154..2ae59bf 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -699,5 +699,8 @@ "testUpstreamDnsServers": "Test upstream DNS servers", "errorTestUpstreamDns": "Error when testing upstream DNS servers.", "useCustomIpEdns": "Use custom IP for EDNS", - "useCustomIpEdnsDescription": "Allow to use custom IP for EDNS" + "useCustomIpEdnsDescription": "Allow to use custom IP for EDNS", + "sortingOptions": "Sorting options", + "fromHighestToLowest": "From highest to lowest", + "fromLowestToHighest": "From lowest to highest" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index c226a91..1917370 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -699,5 +699,8 @@ "testUpstreamDnsServers": "Probar servidores DNS de subida", "errorTestUpstreamDns": "Error al probar los servidores DNS de subida.", "useCustomIpEdns": "Usar IP personalizada para EDNS", - "useCustomIpEdnsDescription": "Permitir usar IP personalizada para EDNS" + "useCustomIpEdnsDescription": "Permitir usar IP personalizada para EDNS", + "sortingOptions": "Opciones de ordenación", + "fromHighestToLowest": "De mayor a menor", + "fromLowestToHighest": "De menor a mayor" } \ No newline at end of file diff --git a/lib/screens/home/top_items/top_items_screen.dart b/lib/screens/home/top_items/top_items_screen.dart index 7e7e623..f2f9b4d 100644 --- a/lib/screens/home/top_items/top_items_screen.dart +++ b/lib/screens/home/top_items/top_items_screen.dart @@ -15,6 +15,8 @@ import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/functions/number_format.dart'; import 'package:adguard_home_manager/providers/status_provider.dart'; +enum _SortingOptions { highestToLowest, lowestToHighest } + class TopItemsScreen extends StatefulWidget { final HomeTopItems type; final String title; @@ -44,6 +46,7 @@ class TopItemsScreen extends StatefulWidget { } class _TopItemsScreenState extends State { + _SortingOptions _sortingOptions = _SortingOptions.highestToLowest; bool searchActive = false; final TextEditingController searchController = TextEditingController(); @@ -68,6 +71,10 @@ class _TopItemsScreenState extends State { for (var element in data) { total = total + double.parse(element.values.toList()[0].toString()); } + + final sortedValues = _sortingOptions == _SortingOptions.lowestToHighest + ? screenData.reversed.toList() + : screenData.toList(); if (widget.isFullscreen == true) { return Dialog.fullscreen( @@ -119,6 +126,53 @@ class _TopItemsScreenState extends State { icon: const Icon(Icons.clear_rounded), tooltip: AppLocalizations.of(context)!.clearSearch, ), + PopupMenuButton( + icon: const Icon(Icons.sort_rounded), + itemBuilder: (context) => [ + PopupMenuItem( + onTap: () => setState(() => _sortingOptions = _SortingOptions.highestToLowest), + child: Row( + children: [ + const Icon(Icons.arrow_downward_rounded), + const SizedBox(width: 8), + Expanded( + child: Text(AppLocalizations.of(context)!.fromHighestToLowest) + ), + const SizedBox(width: 16), + Icon( + _sortingOptions == _SortingOptions.highestToLowest + ? Icons.radio_button_checked_rounded + : Icons.radio_button_unchecked_rounded, + color: _sortingOptions == _SortingOptions.highestToLowest + ? Theme.of(context).colorScheme.primary + : Theme.of(context).colorScheme.onSurfaceVariant, + ) + ], + ) + ), + PopupMenuItem( + onTap: () => setState(() => _sortingOptions = _SortingOptions.lowestToHighest), + child: Row( + children: [ + const Icon(Icons.arrow_upward_rounded), + const SizedBox(width: 8), + Expanded( + child: Text(AppLocalizations.of(context)!.fromLowestToHighest) + ), + const SizedBox(width: 16), + Icon( + _sortingOptions == _SortingOptions.lowestToHighest + ? Icons.radio_button_checked_rounded + : Icons.radio_button_unchecked_rounded, + color: _sortingOptions == _SortingOptions.lowestToHighest + ? Theme.of(context).colorScheme.primary + : Theme.of(context).colorScheme.onSurfaceVariant, + ) + ], + ) + ), + ], + ), const SizedBox(width: 8) ], ), @@ -128,7 +182,7 @@ class _TopItemsScreenState extends State { isClient: widget.isClient, onTapEntry: widget.onTapEntry, options: widget.options, - screenData: screenData, + screenData: sortedValues, total: total, withProgressBar: widget.withProgressBar, ), @@ -193,7 +247,7 @@ class _TopItemsScreenState extends State { isClient: widget.isClient, onTapEntry: widget.onTapEntry, options: widget.options, - screenData: screenData, + screenData: sortedValues, total: total, withProgressBar: widget.withProgressBar, ), From cc12a8504eb667fa3b6ff245cc2c096b1d3b1024 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 11 Dec 2023 21:49:47 +0100 Subject: [PATCH 018/236] Added client queries and statistics settings --- lib/l10n/app_en.arb | 6 +++- lib/l10n/app_es.arb | 6 +++- lib/models/clients.dart | 10 +++++- lib/screens/clients/added_list.dart | 6 ++-- lib/screens/clients/client/client_form.dart | 31 +++++++++++++++++++ lib/screens/clients/client/client_screen.dart | 17 +++++++++- 6 files changed, 69 insertions(+), 7 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 2ae59bf..1a4cdb4 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -702,5 +702,9 @@ "useCustomIpEdnsDescription": "Allow to use custom IP for EDNS", "sortingOptions": "Sorting options", "fromHighestToLowest": "From highest to lowest", - "fromLowestToHighest": "From lowest to highest" + "fromLowestToHighest": "From lowest to highest", + "queryLogsAndStatistics": "Query logs and statistics", + "ignoreClientQueryLog": "Ignore this client in query log", + "ignoreClientStatistics": "Ignore this client in statistics", + "savingChanges": "Saving changes..." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 1917370..e0e57c1 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -702,5 +702,9 @@ "useCustomIpEdnsDescription": "Permitir usar IP personalizada para EDNS", "sortingOptions": "Opciones de ordenación", "fromHighestToLowest": "De mayor a menor", - "fromLowestToHighest": "De menor a mayor" + "fromLowestToHighest": "De menor a mayor", + "queryLogsAndStatistics": "Registro de consultas y estadísticas", + "ignoreClientQueryLog": "Ignorar este cliente en el registro de consultas", + "ignoreClientStatistics": "Ignorar este cliente en las estadísticas", + "savingChanges": "Guardando cambios..." } \ No newline at end of file diff --git a/lib/models/clients.dart b/lib/models/clients.dart index 1472a0f..5808391 100644 --- a/lib/models/clients.dart +++ b/lib/models/clients.dart @@ -87,6 +87,8 @@ class Client { final bool useGlobalBlockedServices; final bool useGlobalSettings; final SafeSearch? safeSearch; + final bool? ignoreQuerylog; + final bool? ignoreStatistics; Client({ required this.name, @@ -100,6 +102,8 @@ class Client { required this.useGlobalBlockedServices, required this.useGlobalSettings, required this.safeSearch, + required this.ignoreQuerylog, + required this.ignoreStatistics, }); factory Client.fromJson(Map json) => Client( @@ -115,7 +119,9 @@ class Client { useGlobalSettings: json["use_global_settings"], safeSearch: json["safe_search"] != null ? SafeSearch.fromJson(json["safe_search"]) - : null + : null, + ignoreQuerylog: json["ignore_querylog"], + ignoreStatistics: json["ignore_statistics"] ); Map toJson() => { @@ -130,5 +136,7 @@ class Client { "safe_search": safeSearch, "use_global_blocked_services": useGlobalBlockedServices, "use_global_settings": useGlobalSettings, + "ignore_querylog": ignoreQuerylog, + "ignore_statistics": ignoreStatistics, }; } \ No newline at end of file diff --git a/lib/screens/clients/added_list.dart b/lib/screens/clients/added_list.dart index 0a0bc08..aa86785 100644 --- a/lib/screens/clients/added_list.dart +++ b/lib/screens/clients/added_list.dart @@ -29,13 +29,13 @@ class AddedList extends StatefulWidget { final bool splitView; const AddedList({ - Key? key, + super.key, required this.scrollController, required this.data, required this.onClientSelected, this.selectedClient, required this.splitView - }) : super(key: key); + }); @override State createState() => _AddedListState(); @@ -75,7 +75,7 @@ class _AddedListState extends State { void confirmEditClient(Client client) async { ProcessModal processModal = ProcessModal(); - processModal.open(AppLocalizations.of(context)!.addingClient); + processModal.open(AppLocalizations.of(context)!.savingChanges); final result = await clientsProvider.editClient(client); diff --git a/lib/screens/clients/client/client_form.dart b/lib/screens/clients/client/client_form.dart index 2151288..5c164af 100644 --- a/lib/screens/clients/client/client_form.dart +++ b/lib/screens/clients/client/client_form.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:adguard_home_manager/widgets/custom_switch_list_tile.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -45,6 +46,10 @@ class ClientForm extends StatelessWidget { final void Function(bool) updateEnableSafeSearch; final void Function(SafeSearch) updateSafeSearch; final void Function(bool) updateUseGlobalSettingsServices; + final bool ignoreClientQueryLog; + final void Function(bool) updateIgnoreClientQueryLog; + final bool ignoreClientStatistics; + final void Function(bool) updateIgnoreClientStatistics; const ClientForm({ super.key, @@ -75,6 +80,10 @@ class ClientForm extends StatelessWidget { required this.updateEnableSafeSearch, required this.updateSafeSearch, required this.updateUseGlobalSettingsServices, + required this.ignoreClientQueryLog, + required this.ignoreClientStatistics, + required this.updateIgnoreClientQueryLog, + required this.updateIgnoreClientStatistics, }); @override @@ -217,6 +226,28 @@ class ClientForm extends StatelessWidget { ) : null, ), + SectionLabel( + label: AppLocalizations.of(context)!.queryLogsAndStatistics, + padding: const EdgeInsets.all(24), + ), + CustomSwitchListTile( + title: AppLocalizations.of(context)!.ignoreClientQueryLog, + value: ignoreClientQueryLog, + onChanged: updateIgnoreClientQueryLog, + padding: const EdgeInsets.symmetric( + horizontal: 24, + vertical: 4 + ), + ), + CustomSwitchListTile( + title: AppLocalizations.of(context)!.ignoreClientStatistics, + value: ignoreClientStatistics, + onChanged: updateIgnoreClientStatistics, + padding: const EdgeInsets.symmetric( + horizontal: 24, + vertical: 4 + ), + ), SectionLabel( label: AppLocalizations.of(context)!.blockedServices, padding: const EdgeInsets.all(24), diff --git a/lib/screens/clients/client/client_screen.dart b/lib/screens/clients/client/client_screen.dart index d4628e7..9a16e1a 100644 --- a/lib/screens/clients/client/client_screen.dart +++ b/lib/screens/clients/client/client_screen.dart @@ -73,6 +73,9 @@ class _ClientScreenState extends State { List upstreamServers = []; + bool _ignoreClientQueryLog = false; + bool _ignoreClientStatistics = false; + void enableDisableGlobalSettingsFiltering() { if (useGlobalSettingsFiltering == true) { setState(() { @@ -120,6 +123,8 @@ class _ClientScreenState extends State { id: uuid.v4(), controller: TextEditingController(text: e) )).toList(); + _ignoreClientQueryLog = widget.client!.ignoreQuerylog ?? false; + _ignoreClientStatistics = widget.client!.ignoreStatistics ?? false; } super.initState(); } @@ -140,7 +145,9 @@ class _ClientScreenState extends State { useGlobalBlockedServices: useGlobalSettingsServices, blockedServices: blockedServices, upstreams: List.from(upstreamServers.map((e) => e.controller.text)), - tags: selectedTags + tags: selectedTags, + ignoreQuerylog: _ignoreClientQueryLog, + ignoreStatistics: _ignoreClientStatistics ); widget.onConfirm(client); } @@ -214,6 +221,10 @@ class _ClientScreenState extends State { updateEnableSafeSearch: (v) => setState(() => enableSafeSearch = v), updateSafeSearch: (v) => setState(() => safeSearch = v), updateUseGlobalSettingsServices: (v) => setState(() => useGlobalSettingsServices = v), + ignoreClientQueryLog: _ignoreClientQueryLog, + ignoreClientStatistics: _ignoreClientStatistics, + updateIgnoreClientQueryLog: (v) => setState(() => _ignoreClientQueryLog = v), + updateIgnoreClientStatistics: (v) => setState(() => _ignoreClientStatistics = v), ), ), ), @@ -281,6 +292,10 @@ class _ClientScreenState extends State { updateEnableSafeSearch: (v) => setState(() => enableSafeSearch = v), updateSafeSearch: (v) => setState(() => safeSearch = v), updateUseGlobalSettingsServices: (v) => setState(() => useGlobalSettingsServices = v), + ignoreClientQueryLog: _ignoreClientQueryLog, + ignoreClientStatistics: _ignoreClientStatistics, + updateIgnoreClientQueryLog: (v) => setState(() => _ignoreClientQueryLog = v), + updateIgnoreClientStatistics: (v) => setState(() => _ignoreClientStatistics = v), ), ) ], From ddf9683e88c56cfba2f171ffafd2775173d43208 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 11 Dec 2023 21:49:52 +0100 Subject: [PATCH 019/236] Updated libraries --- pubspec.lock | 42 +++++++++++++++++++++--------------------- pubspec.yaml | 10 +++++----- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 274cfb3..963ce6f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: "direct main" description: name: animations - sha256: ef57563eed3620bd5d75ad96189846aca1e033c0c45fc9a7d26e80ab02b88a70 + sha256: "708e4b68c23228c264b038fe7003a2f5d01ce85fc64d8cae090e86b27fcea6c5" url: "https://pub.dev" source: hosted - version: "2.0.8" + version: "2.0.10" ansicolor: dependency: transitive description: @@ -271,10 +271,10 @@ packages: dependency: "direct dev" description: name: flutter_native_splash - sha256: c4d899312b36e7454bedfd0a4740275837b99e532d81c8477579d8183db1de6c + sha256: "141b20f15a2c4fe6e33c49257ca1bc114fc5c500b04fcbc8d75016bb86af672f" url: "https://pub.dev" source: hosted - version: "2.3.6" + version: "2.3.8" flutter_reorderable_list: dependency: "direct main" description: @@ -330,10 +330,10 @@ packages: dependency: "direct main" description: name: http - sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" + sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139 url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.2" http_parser: dependency: transitive description: @@ -474,10 +474,10 @@ packages: dependency: transitive description: name: petitparser - sha256: eeb2d1428ee7f4170e2bd498827296a18d4e7fc462b71727d111c0ac7707cfa6 + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 url: "https://pub.dev" source: hosted - version: "6.0.1" + version: "6.0.2" pie_chart: dependency: "direct main" description: @@ -575,18 +575,18 @@ packages: dependency: "direct main" description: name: sqflite_common_ffi - sha256: "35d2fce1e971707c227cc4775cc017d5eafe06c2654c3435ebd5c3ad6c170f5f" + sha256: "873677ee78738a723d1ded4ccb23980581998d873d30ee9c331f6a81748663ff" url: "https://pub.dev" source: hosted - version: "2.3.0+4" + version: "2.3.1" sqlite3: dependency: transitive description: name: sqlite3 - sha256: db65233e6b99e99b2548932f55a987961bc06d82a31a0665451fa0b4fff4c3fb + sha256: "8922805564b78eb7aa9386c10056d377a541ac7270dc6a1589176277ebb4d15d" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.2.0" sqlite3_flutter_libs: dependency: "direct main" description: @@ -671,10 +671,10 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: b1c9e98774adf8820c96fbc7ae3601231d324a7d5ebd8babe27b6dfac91357ba + sha256: e9aa5ea75c84cf46b3db4eea212523591211c3cf2e13099ee4ec147f54201c86 url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.2.2" url_launcher_android: dependency: transitive description: @@ -719,10 +719,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "7fd2f55fe86cea2897b963e864dc01a7eb0719ecc65fcef4c1cc3d686d718bb2" + sha256: "7286aec002c8feecc338cc33269e96b73955ab227456e9fb2a91f7fab8a358e9" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.2.2" url_launcher_windows: dependency: transitive description: @@ -783,10 +783,10 @@ packages: dependency: transitive description: name: win32 - sha256: "7c99c0e1e2fa190b48d25c81ca5e42036d5cac81430ef249027d97b0935c553f" + sha256: b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574 url: "https://pub.dev" source: hosted - version: "5.1.0" + version: "5.1.1" win32_registry: dependency: transitive description: @@ -808,10 +808,10 @@ packages: dependency: transitive description: name: xml - sha256: af5e77e9b83f2f4adc5d3f0a4ece1c7f45a2467b695c2540381bac793e34e556 + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 url: "https://pub.dev" source: hosted - version: "6.4.2" + version: "6.5.0" yaml: dependency: transitive description: @@ -822,4 +822,4 @@ packages: version: "3.1.2" sdks: dart: ">=3.2.0 <4.0.0" - flutter: ">=3.13.0" + flutter: ">=3.16.0" diff --git a/pubspec.yaml b/pubspec.yaml index 1ad22e1..4f19f1c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -44,7 +44,7 @@ dependencies: package_info_plus: ^5.0.1 flutter_displaymode: ^0.6.0 dynamic_color: ^1.6.8 - animations: ^2.0.8 + animations: ^2.0.10 device_info_plus: ^9.1.1 uuid: ^4.2.1 expandable: ^5.0.1 @@ -58,7 +58,7 @@ dependencies: html: ^0.15.4 flutter_html: ^3.0.0-beta.2 sqlite3_flutter_libs: ^0.5.18 - sqflite_common_ffi: ^2.3.0+4 + sqflite_common_ffi: ^2.3.1 window_size: git: url: https://github.com/google/flutter-desktop-embedding @@ -67,7 +67,7 @@ dependencies: git: url: https://github.com/JGeek00/flutter_split_view ref: master-alt - url_launcher: ^6.1.11 + url_launcher: ^6.2.2 contextmenu: ^3.0.0 async: ^2.11.0 sentry_flutter: ^7.13.2 @@ -75,7 +75,7 @@ dependencies: flutter_reorderable_list: ^1.3.1 pie_chart: ^5.4.0 segmented_button_slide: ^1.0.4 - http: ^1.1.0 + http: ^1.1.2 dev_dependencies: flutter_test: @@ -88,7 +88,7 @@ dev_dependencies: # rules and activating additional ones. flutter_lints: ^3.0.1 flutter_launcher_icons: ^0.13.1 - flutter_native_splash: ^2.3.6 + flutter_native_splash: ^2.3.8 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From 27e0b5152ec065a297646b26c840df9b360eb3f2 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 11 Dec 2023 22:03:36 +0100 Subject: [PATCH 020/236] Added fallback DNS servers --- lib/l10n/app_en.arb | 6 +- lib/l10n/app_es.arb | 6 +- lib/models/dns_info.dart | 4 + lib/providers/dns_provider.dart | 16 ++ lib/screens/settings/dns/dns.dart | 7 + lib/screens/settings/dns/fallback_dns.dart | 224 +++++++++++++++++++++ 6 files changed, 261 insertions(+), 2 deletions(-) create mode 100644 lib/screens/settings/dns/fallback_dns.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 1a4cdb4..7fd17e2 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -706,5 +706,9 @@ "queryLogsAndStatistics": "Query logs and statistics", "ignoreClientQueryLog": "Ignore this client in query log", "ignoreClientStatistics": "Ignore this client in statistics", - "savingChanges": "Saving changes..." + "savingChanges": "Saving changes...", + "fallbackDnsServers": "Fallback DNS servers", + "fallbackDnsServersDescription": "Configure fallback DNS servers", + "fallbackDnsServersInfo": "List of fallback DNS servers used when upstream DNS servers are not responding. The syntax is the same as in the main upstreams field above.", + "noFallbackDnsAdded": "No fallback DNS servers added." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index e0e57c1..33b69b1 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -706,5 +706,9 @@ "queryLogsAndStatistics": "Registro de consultas y estadísticas", "ignoreClientQueryLog": "Ignorar este cliente en el registro de consultas", "ignoreClientStatistics": "Ignorar este cliente en las estadísticas", - "savingChanges": "Guardando cambios..." + "savingChanges": "Guardando cambios...", + "fallbackDnsServers": "Servidores DNS alternativos", + "fallbackDnsServersDescription": "Configura los servidores DNS alternativos", + "fallbackDnsServersInfo": "Lista de servidores DNS alternativos utilizados cuando los servidores DNS de subida no responden. La sintaxis es la misma que en el campo de los principales DNS de subida anterior.", + "noFallbackDnsAdded": "No hay servidores DNS alternativos añadidos." } \ No newline at end of file diff --git a/lib/models/dns_info.dart b/lib/models/dns_info.dart index 0d3aa83..20338d3 100644 --- a/lib/models/dns_info.dart +++ b/lib/models/dns_info.dart @@ -2,6 +2,7 @@ class DnsInfo { List upstreamDns; String? upstreamDnsFile; List bootstrapDns; + List? fallbackDns; bool protectionEnabled; int ratelimit; String blockingMode; @@ -26,6 +27,7 @@ class DnsInfo { required this.upstreamDns, required this.upstreamDnsFile, required this.bootstrapDns, + required this.fallbackDns, required this.protectionEnabled, required this.ratelimit, required this.blockingMode, @@ -51,6 +53,7 @@ class DnsInfo { upstreamDns: json["upstream_dns"] != null ? List.from(json["upstream_dns"].map((x) => x)) : [], upstreamDnsFile: json["upstream_dns_file"], bootstrapDns: json["bootstrap_dns"] != null ? List.from(json["bootstrap_dns"].map((x) => x)) : [], + fallbackDns: json["fallback_dns"] != null ? List.from(json["fallback_dns"].map((x) => x)) : [], protectionEnabled: json["protection_enabled"], ratelimit: json["ratelimit"], blockingMode: json["blocking_mode"], @@ -76,6 +79,7 @@ class DnsInfo { "upstream_dns": List.from(upstreamDns.map((x) => x)), "upstream_dns_file": upstreamDnsFile, "bootstrap_dns": List.from(bootstrapDns.map((x) => x)), + "fallback_dns": List.from(bootstrapDns.map((x) => x)), "protection_enabled": protectionEnabled, "ratelimit": ratelimit, "blocking_mode": blockingMode, diff --git a/lib/providers/dns_provider.dart b/lib/providers/dns_provider.dart index 0929f3a..5a91dfc 100644 --- a/lib/providers/dns_provider.dart +++ b/lib/providers/dns_provider.dart @@ -112,6 +112,22 @@ class DnsProvider with ChangeNotifier { } } + Future saveFallbackDnsConfig(Map value) async { + final result = await _serversProvider!.apiClient2!.setDnsConfig( + data: value + ); + + if (result.successful == true) { + DnsInfo data = dnsInfo!; + data.bootstrapDns = List.from(value['fallback_dns']); + setDnsInfoData(data); + return result; + } + else { + return result; + } + } + Future saveCacheCacheConfig(Map value) async { final result = await _serversProvider!.apiClient2!.setDnsConfig( data: value diff --git a/lib/screens/settings/dns/dns.dart b/lib/screens/settings/dns/dns.dart index c22572d..4a7c78a 100644 --- a/lib/screens/settings/dns/dns.dart +++ b/lib/screens/settings/dns/dns.dart @@ -5,6 +5,7 @@ import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/settings/dns/fallback_dns.dart'; import 'package:adguard_home_manager/screens/settings/dns/test_upstream_dns_modal.dart'; import 'package:adguard_home_manager/screens/settings/dns/clear_dns_cache_dialog.dart'; import 'package:adguard_home_manager/screens/settings/dns/cache_config.dart'; @@ -167,6 +168,12 @@ class _DnsSettingsState extends State { onTap: () => navigate(const BootstrapDnsScreen()), icon: Icons.dns_rounded, ), + if (dnsProvider.dnsInfo!.fallbackDns != null) CustomListTile( + title: AppLocalizations.of(context)!.fallbackDnsServers, + subtitle: AppLocalizations.of(context)!.fallbackDnsServersDescription, + onTap: () => navigate(const FallbackDnsScreen()), + icon: Icons.alt_route_rounded, + ), CustomListTile( title: AppLocalizations.of(context)!.privateReverseDnsServers, subtitle: AppLocalizations.of(context)!.privateReverseDnsDescription, diff --git a/lib/screens/settings/dns/fallback_dns.dart b/lib/screens/settings/dns/fallback_dns.dart new file mode 100644 index 0000000..4df30c9 --- /dev/null +++ b/lib/screens/settings/dns/fallback_dns.dart @@ -0,0 +1,224 @@ +// ignore_for_file: use_build_context_synchronously + +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/functions/desktop_mode.dart'; +import 'package:adguard_home_manager/classes/process_modal.dart'; +import 'package:adguard_home_manager/providers/dns_provider.dart'; +import 'package:adguard_home_manager/functions/snackbar.dart'; +import 'package:adguard_home_manager/providers/app_config_provider.dart'; + +class FallbackDnsScreen extends StatefulWidget { + const FallbackDnsScreen({super.key}); + + @override + State createState() => _FallbackDnsScreenState(); +} + +class _FallbackDnsScreenState extends State { + List> fallbackControllers = []; + + bool validValues = false; + + void validateIp(Map field, String value) { + RegExp ipAddress = RegExp(r'(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)'); + if (ipAddress.hasMatch(value) == true) { + setState(() => field['error'] = null); + } + else { + setState(() => field['error'] = AppLocalizations.of(context)!.invalidIp); + } + checkValidValues(); + } + + void checkValidValues() { + if ( + fallbackControllers.isNotEmpty && + fallbackControllers.every((element) => element['controller'].text != '') && + fallbackControllers.every((element) => element['error'] == null) + ) { + setState(() => validValues = true); + } + else { + setState(() => validValues = false); + } + } + + @override + void initState() { + final dnsProvider = Provider.of(context, listen: false); + + for (var item in dnsProvider.dnsInfo!.fallbackDns!) { + final controller = TextEditingController(); + controller.text = item; + fallbackControllers.add({ + 'controller': controller, + 'error': null + }); + } + validValues = true; + super.initState(); + } + + @override + Widget build(BuildContext context) { + final dnsProvider = Provider.of(context); + final appConfigProvider = Provider.of(context); + + final width = MediaQuery.of(context).size.width; + + void saveData() async { + ProcessModal processModal = ProcessModal(); + processModal.open(AppLocalizations.of(context)!.savingConfig); + + final result = await dnsProvider.saveFallbackDnsConfig({ + "fallback_dns": fallbackControllers.map((e) => e['controller'].text).toList(), + }); + + processModal.close(); + + if (result.successful == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.dnsConfigSaved, + color: Colors.green + ); + } + else if (result.successful == false && result.statusCode == 400) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.someValueNotValid, + color: Colors.red + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.dnsConfigNotSaved, + color: Colors.red + ); + } + } + + return Scaffold( + appBar: AppBar( + title: Text(AppLocalizations.of(context)!.fallbackDnsServers), + surfaceTintColor: isDesktop(width) ? Colors.transparent : null, + actions: [ + IconButton( + onPressed: validValues == true + ? () => saveData() + : null, + icon: const Icon(Icons.save_rounded), + tooltip: AppLocalizations.of(context)!.save, + ), + const SizedBox(width: 10) + ], + ), + body: SafeArea( + child: ListView( + padding: const EdgeInsets.only(top: 10), + children: [ + Card( + margin: const EdgeInsets.only( + left: 16, right: 16, bottom: 20 + ), + child: Padding( + padding: const EdgeInsets.all(20), + child: Row( + children: [ + Icon( + Icons.info_rounded, + color: Theme.of(context).listTileTheme.iconColor, + ), + const SizedBox(width: 20), + Flexible( + child: Text( + AppLocalizations.of(context)!.fallbackDnsServersInfo, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ) + ) + ], + ), + ), + ), + const SizedBox(height: 10), + if (fallbackControllers.isEmpty) Column( + children: [ + Padding( + padding: const EdgeInsets.all(10), + child: Center( + child: Text( + AppLocalizations.of(context)!.noFallbackDnsAdded, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant, + fontSize: 16 + ), + ), + ), + ), + const SizedBox(height: 20), + ], + ), + ...fallbackControllers.map((c) => Padding( + padding: const EdgeInsets.only( + left: 16, right: 6, bottom: 20 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: TextFormField( + controller: c['controller'], + onChanged: (value) => validateIp(c, value), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.dns_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: c['error'], + labelText: AppLocalizations.of(context)!.dnsServer, + ) + ), + ), + const SizedBox(width: 8), + IconButton( + onPressed: () { + setState(() => fallbackControllers = fallbackControllers.where((con) => con != c).toList()); + checkValidValues(); + }, + icon: const Icon(Icons.remove_circle_outline) + ) + ], + ), + )), + Row( + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + ElevatedButton.icon( + onPressed: () { + setState(() => fallbackControllers.add({ + 'controller': TextEditingController(), + 'error': null + })); + checkValidValues(); + }, + icon: const Icon(Icons.add), + label: Text(AppLocalizations.of(context)!.addItem) + ), + ], + ), + const SizedBox(height: 20) + ], + ), + ), + ); + } +} \ No newline at end of file From 304c3aba540bf9222313c1147d5da9e19de363cd Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 11 Dec 2023 22:24:24 +0100 Subject: [PATCH 021/236] Added blocked response ttl field --- lib/l10n/app_en.arb | 5 +- lib/l10n/app_es.arb | 5 +- lib/models/dns_info.dart | 4 ++ lib/providers/dns_provider.dart | 1 + .../settings/dns/dns_server_settings.dart | 47 +++++++++++++++++-- 5 files changed, 56 insertions(+), 6 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 7fd17e2..4fe20b3 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -710,5 +710,8 @@ "fallbackDnsServers": "Fallback DNS servers", "fallbackDnsServersDescription": "Configure fallback DNS servers", "fallbackDnsServersInfo": "List of fallback DNS servers used when upstream DNS servers are not responding. The syntax is the same as in the main upstreams field above.", - "noFallbackDnsAdded": "No fallback DNS servers added." + "noFallbackDnsAdded": "No fallback DNS servers added.", + "blockedResponseTtl": "Blocked response TTL", + "blockedResponseTtlDescription": "Specifies for how many seconds the clients should cache a filtered response", + "invalidValue": "Invalid value" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 33b69b1..d3e0855 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -710,5 +710,8 @@ "fallbackDnsServers": "Servidores DNS alternativos", "fallbackDnsServersDescription": "Configura los servidores DNS alternativos", "fallbackDnsServersInfo": "Lista de servidores DNS alternativos utilizados cuando los servidores DNS de subida no responden. La sintaxis es la misma que en el campo de los principales DNS de subida anterior.", - "noFallbackDnsAdded": "No hay servidores DNS alternativos añadidos." + "noFallbackDnsAdded": "No hay servidores DNS alternativos añadidos.", + "blockedResponseTtl": "Respuesta TTL bloqueada", + "blockedResponseTtlDescription": "Especifica durante cuántos segundos los clientes deben almacenar en cache una respuesta filtrada", + "invalidValue": "Valor no válido" } \ No newline at end of file diff --git a/lib/models/dns_info.dart b/lib/models/dns_info.dart index 20338d3..c0cabd6 100644 --- a/lib/models/dns_info.dart +++ b/lib/models/dns_info.dart @@ -22,6 +22,7 @@ class DnsInfo { String blockingIpv4; String blockingIpv6; List defaultLocalPtrUpstreams; + int? blockedResponseTtl; DnsInfo({ required this.upstreamDns, @@ -47,6 +48,7 @@ class DnsInfo { required this.blockingIpv4, required this.blockingIpv6, required this.defaultLocalPtrUpstreams, + required this.blockedResponseTtl, }); factory DnsInfo.fromJson(Map json) => DnsInfo( @@ -73,6 +75,7 @@ class DnsInfo { blockingIpv4: json["blocking_ipv4"], blockingIpv6: json["blocking_ipv6"], defaultLocalPtrUpstreams: json["default_local_ptr_upstreams"] != null ? List.from(json["default_local_ptr_upstreams"].map((x) => x)) : [], + blockedResponseTtl: json["blocked_response_ttl"] ); Map toJson() => { @@ -99,5 +102,6 @@ class DnsInfo { "blocking_ipv4": blockingIpv4, "blocking_ipv6": blockingIpv6, "default_local_ptr_upstreams": List.from(defaultLocalPtrUpstreams.map((x) => x)), + "blocked_response_ttl": blockedResponseTtl }; } diff --git a/lib/providers/dns_provider.dart b/lib/providers/dns_provider.dart index 5a91dfc..c5809af 100644 --- a/lib/providers/dns_provider.dart +++ b/lib/providers/dns_provider.dart @@ -161,6 +161,7 @@ class DnsProvider with ChangeNotifier { data.blockingMode = value['blocking_mode']; data.blockingIpv4 = value['blocking_ipv4']; data.blockingIpv6 = value['blocking_ipv6']; + data.blockedResponseTtl = value['blocked_response_ttl']; setDnsInfoData(data); return result; } diff --git a/lib/screens/settings/dns/dns_server_settings.dart b/lib/screens/settings/dns/dns_server_settings.dart index 19f6c09..ba04422 100644 --- a/lib/screens/settings/dns/dns_server_settings.dart +++ b/lib/screens/settings/dns/dns_server_settings.dart @@ -41,6 +41,9 @@ class _DnsServerSettingsScreenState extends State { final TextEditingController ipv6controller = TextEditingController(); String? ipv6error; + final _ttlController = TextEditingController(); + String? _ttlError; + bool isDataValid = false; void validateIpv4(String value) { @@ -90,7 +93,8 @@ class _DnsServerSettingsScreenState extends State { ipv6error == null ) ) == true && - ednsIpError == null + ednsIpError == null && + _ttlError == null ) { setState(() => isDataValid = true); } @@ -99,6 +103,17 @@ class _DnsServerSettingsScreenState extends State { } } + void validateNumber(String value) { + final regex = RegExp(r'^(\d)+$'); + if (regex.hasMatch(value) == true) { + setState(() => _ttlError = null); + } + else { + setState(() => _ttlError = AppLocalizations.of(context)!.invalidValue); + } + validateData(); + } + @override void initState() { final dnsProvider = Provider.of(context, listen: false); @@ -115,6 +130,9 @@ class _DnsServerSettingsScreenState extends State { ipv4controller.text = dnsProvider.dnsInfo!.blockingIpv4; ipv6controller.text = dnsProvider.dnsInfo!.blockingIpv6; isDataValid = true; + _ttlController.text = dnsProvider.dnsInfo!.blockedResponseTtl != null + ? dnsProvider.dnsInfo!.blockedResponseTtl.toString() + : ""; super.initState(); } @@ -137,7 +155,8 @@ class _DnsServerSettingsScreenState extends State { "disable_ipv6": disableIpv6Resolving, "blocking_mode": blockingMode, "blocking_ipv4": ipv4controller.text, - "blocking_ipv6": ipv6controller.text + "blocking_ipv6": ipv6controller.text, + "blocked_response_ttl": int.parse(_ttlController.text) }); processModal.close(); @@ -392,8 +411,28 @@ class _DnsServerSettingsScreenState extends State { keyboardType: TextInputType.number, ), ), - const SizedBox(height: 30) - ] + const SizedBox(height: 30), + ], + Padding( + padding: const EdgeInsets.all(16), + child: TextFormField( + controller: _ttlController, + onChanged: validateNumber, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.timer_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: _ttlError, + labelText: AppLocalizations.of(context)!.blockedResponseTtl, + helperText: AppLocalizations.of(context)!.blockedResponseTtlDescription, + helperMaxLines: 2, + ), + keyboardType: TextInputType.number, + ), + ), ], ), ), From 28bc01a7b3b53188745625b29d7ebd14bffa75ea Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 11 Dec 2023 22:25:44 +0100 Subject: [PATCH 022/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 4f19f1c..8672c5a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.12.4+115 +version: 2.13.0-beta.1+116 environment: sdk: '>=2.18.1 <3.0.0' From 0b0f499c4ac42a58629ffeff80710c6185bb7cfc Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 12 Dec 2023 18:43:38 +0100 Subject: [PATCH 023/236] Updates --- ios/Podfile.lock | 40 ++++++++++++++++++++-------------------- macos/Podfile.lock | 4 ++-- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index ed1a57c..c3ba953 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -11,28 +11,28 @@ PODS: - FMDB/standard (2.7.5) - package_info_plus (0.4.5): - Flutter - - Sentry/HybridSDK (8.9.1): - - SentryPrivate (= 8.9.1) + - Sentry/HybridSDK (8.15.2): + - SentryPrivate (= 8.15.2) - sentry_flutter (0.0.1): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.9.1) - - SentryPrivate (8.9.1) + - Sentry/HybridSDK (= 8.15.2) + - SentryPrivate (8.15.2) - sqflite (0.0.3): - Flutter - FMDB (>= 2.7.5) - - sqlite3 (3.43.1): - - sqlite3/common (= 3.43.1) - - sqlite3/common (3.43.1) - - sqlite3/fts5 (3.43.1): + - sqlite3 (3.44.0): + - sqlite3/common (= 3.44.0) + - sqlite3/common (3.44.0) + - sqlite3/fts5 (3.44.0): - sqlite3/common - - sqlite3/perf-threadsafe (3.43.1): + - sqlite3/perf-threadsafe (3.44.0): - sqlite3/common - - sqlite3/rtree (3.43.1): + - sqlite3/rtree (3.44.0): - sqlite3/common - sqlite3_flutter_libs (0.0.1): - Flutter - - sqlite3 (~> 3.43.0) + - sqlite3 (~> 3.44.0) - sqlite3/fts5 - sqlite3/perf-threadsafe - sqlite3/rtree @@ -83,21 +83,21 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: - device_info_plus: 7545d84d8d1b896cb16a4ff98c19f07ec4b298ea + device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef flutter_web_browser: 7bccaafbb0c5b8862afe7bcd158f15557109f61f FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a - package_info_plus: fd030dabf36271f146f1f3beacd48f564b0f17f7 - Sentry: e3203780941722a1fcfee99e351de14244c7f806 - sentry_flutter: 8f0ffd53088e6a4d50c095852c5cad9e4405025c - SentryPrivate: 5e3683390f66611fc7c6215e27645873adb55d13 + package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 + Sentry: 6f5742b4c47c17c9adcf265f6f328cf4a0ed1923 + sentry_flutter: 2c309a1d4b45e59d02cfa15795705687f1e2081b + SentryPrivate: b2f7996f37781080f04a946eb4e377ff63c64195 sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a - sqlite3: e0a0623a33a20a47cb5921552aebc6e9e437dc91 - sqlite3_flutter_libs: 878ccbdcfd7b7cb41a774ec238223d876880c5ec + sqlite3: 6e2d4a4879854d0ec86b476bf3c3e30870bac273 + sqlite3_flutter_libs: eb769059df0356dc52ddda040f09cacc9391a7cf store_checker: 359c5051d9ec30ff0a8fa39eb5ec9df021bb745d - url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 + url_launcher_ios: bf5ce03e0e2088bad9cc378ea97fa0ed5b49673b PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3 -COCOAPODS: 1.12.1 +COCOAPODS: 1.14.3 diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 4543f6f..32c37ec 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -88,10 +88,10 @@ SPEC CHECKSUMS: SentryPrivate: b2f7996f37781080f04a946eb4e377ff63c64195 sqflite: a5789cceda41d54d23f31d6de539d65bb14100ea sqlite3: 6e2d4a4879854d0ec86b476bf3c3e30870bac273 - sqlite3_flutter_libs: 5b7e226d522d67be60d7ade93f5aa11ebc0cd796 + sqlite3_flutter_libs: a25f3a0f522fdcd8fef6a4a50a3d681dd43d8dea url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 window_size: 339dafa0b27a95a62a843042038fa6c3c48de195 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 -COCOAPODS: 1.12.1 +COCOAPODS: 1.14.3 From 3132957a91c3a403dc32557b4ef184a6377b0c35 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 14 Dec 2023 15:22:09 +0100 Subject: [PATCH 024/236] Fix --- .../settings/access_settings/access_settings.dart | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/screens/settings/access_settings/access_settings.dart b/lib/screens/settings/access_settings/access_settings.dart index d5673f7..9c1e986 100644 --- a/lib/screens/settings/access_settings/access_settings.dart +++ b/lib/screens/settings/access_settings/access_settings.dart @@ -49,6 +49,7 @@ class _AccessSettingsState extends State with TickerProviderStat handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), sliver: SliverSafeArea( top: false, + bottom: false, sliver: SliverAppBar( title: Text(AppLocalizations.of(context)!.accessSettings), pinned: true, @@ -56,10 +57,7 @@ class _AccessSettingsState extends State with TickerProviderStat centerTitle: false, forceElevated: innerBoxIsScrolled, surfaceTintColor: isDesktop(width) ? Colors.transparent : null, - bottom: PreferredSize( - preferredSize: const Size(double.maxFinite, 50), - child: _Tabs(tabController: _tabController) - ) + bottom: _Tabs(tabController: _tabController) ), ), ) @@ -92,7 +90,7 @@ class _AccessSettingsState extends State with TickerProviderStat } } -class _Tabs extends StatelessWidget { +class _Tabs extends StatelessWidget implements PreferredSizeWidget { final TabController tabController; const _Tabs({ @@ -137,6 +135,9 @@ class _Tabs extends StatelessWidget { ] ); } + + @override + Size get preferredSize => const Size.fromHeight(kToolbarHeight); } class _TabsView extends StatelessWidget { From 31a37986bf8bd2fa719314624622cecf973a4e84 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 14 Dec 2023 15:24:13 +0100 Subject: [PATCH 025/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 8672c5a..9bd3484 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.13.0-beta.1+116 +version: 2.13.0+117 environment: sdk: '>=2.18.1 <3.0.0' From a3620f259fc15710d990f38278fc6d34553bb948 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 15 Dec 2023 03:03:33 +0100 Subject: [PATCH 026/236] Updated iOS stuff --- ios/.gitignore | 0 ios/Flutter/AppFrameworkInfo.plist | 0 ios/Flutter/Debug.xcconfig | 0 ios/Flutter/Release.xcconfig | 0 ios/Podfile | 0 ios/Podfile.lock | 0 ios/Runner.xcodeproj/project.pbxproj | 41 ++++++-- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../xcshareddata/WorkspaceSettings.xcsettings | 0 .../xcshareddata/xcschemes/Runner.xcscheme | 0 .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../xcshareddata/WorkspaceSettings.xcsettings | 0 ios/Runner/AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../Icon-App-1024x1024@1x.png | Bin .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin .../Icon-App-83.5x83.5@2x.png | Bin .../LaunchBackground.imageset/Contents.json | 0 .../LaunchBackground.imageset/background.png | Bin .../darkbackground.png | Bin .../LaunchImage.imageset/Contents.json | 0 .../LaunchImage.imageset/LaunchImage.png | Bin .../LaunchImage.imageset/LaunchImage@2x.png | Bin .../LaunchImage.imageset/LaunchImage@3x.png | Bin .../LaunchImage.imageset/LaunchImageDark.png | Bin .../LaunchImageDark@2x.png | Bin .../LaunchImageDark@3x.png | Bin .../LaunchImage.imageset/README.md | 0 ios/Runner/Base.lproj/LaunchScreen.storyboard | 0 ios/Runner/Base.lproj/Main.storyboard | 0 ios/Runner/Info.plist | 98 +++++++++--------- ios/Runner/Runner-Bridging-Header.h | 0 52 files changed, 83 insertions(+), 56 deletions(-) mode change 100644 => 100755 ios/.gitignore mode change 100644 => 100755 ios/Flutter/AppFrameworkInfo.plist mode change 100644 => 100755 ios/Flutter/Debug.xcconfig mode change 100644 => 100755 ios/Flutter/Release.xcconfig mode change 100644 => 100755 ios/Podfile mode change 100644 => 100755 ios/Podfile.lock mode change 100644 => 100755 ios/Runner.xcodeproj/project.pbxproj mode change 100644 => 100755 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata mode change 100644 => 100755 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist mode change 100644 => 100755 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings mode change 100644 => 100755 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme mode change 100644 => 100755 ios/Runner.xcworkspace/contents.xcworkspacedata mode change 100644 => 100755 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist mode change 100644 => 100755 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings mode change 100644 => 100755 ios/Runner/AppDelegate.swift mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@2x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@3x.png mode change 100644 => 100755 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md mode change 100644 => 100755 ios/Runner/Base.lproj/LaunchScreen.storyboard mode change 100644 => 100755 ios/Runner/Base.lproj/Main.storyboard mode change 100644 => 100755 ios/Runner/Info.plist mode change 100644 => 100755 ios/Runner/Runner-Bridging-Header.h diff --git a/ios/.gitignore b/ios/.gitignore old mode 100644 new mode 100755 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist old mode 100644 new mode 100755 diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig old mode 100644 new mode 100755 diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig old mode 100644 new mode 100755 diff --git a/ios/Podfile b/ios/Podfile old mode 100644 new mode 100755 diff --git a/ios/Podfile.lock b/ios/Podfile.lock old mode 100644 new mode 100755 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj old mode 100644 new mode 100755 index 4f766b9..00edeae --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -68,7 +68,6 @@ 65533F0C0783FDE34AE79B0A /* Pods-Runner.release.xcconfig */, 69C2CC4A6DE17506FC5C0F13 /* Pods-Runner.profile.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -156,6 +155,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { + BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { @@ -325,6 +325,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -335,6 +336,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -343,7 +345,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -361,15 +363,22 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = 38Z3B9TJTR; ENABLE_BITCODE = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "AdGuard Home"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.jgeek00.adguard_home_manager; + PRODUCT_BUNDLE_IDENTIFIER = com.jgeek00.adguardHomeManager; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = Profile; @@ -397,6 +406,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -407,6 +417,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -421,7 +432,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -452,6 +463,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -462,6 +474,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -470,7 +483,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -490,16 +503,23 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = 38Z3B9TJTR; ENABLE_BITCODE = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "AdGuard Home"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.jgeek00.adguard_home_manager; + PRODUCT_BUNDLE_IDENTIFIER = com.jgeek00.adguardHomeManager; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -513,15 +533,22 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = 38Z3B9TJTR; ENABLE_BITCODE = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "AdGuard Home"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.jgeek00.adguard_home_manager; + PRODUCT_BUNDLE_IDENTIFIER = com.jgeek00.adguardHomeManager; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata old mode 100644 new mode 100755 diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist old mode 100644 new mode 100755 diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings old mode 100644 new mode 100755 diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme old mode 100644 new mode 100755 diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata old mode 100644 new mode 100755 diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist old mode 100644 new mode 100755 diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings old mode 100644 new mode 100755 diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md old mode 100644 new mode 100755 diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard old mode 100644 new mode 100755 diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard old mode 100644 new mode 100755 diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist old mode 100644 new mode 100755 index f9aeb27..55fe6b7 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -1,53 +1,53 @@ - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - AdGuard Home Manager - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - adguard_home_manager - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleSignature - ???? - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - - UIStatusBarHidden - - + + CADisableMinimumFrameDurationOnPhone + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + AdGuard Home + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + adguardHomeManager + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UIApplicationSupportsIndirectInputEvents + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h old mode 100644 new mode 100755 From d2e882a0301d82526ab2bb657a66a3ecd247f915 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 17 Dec 2023 14:14:31 +0100 Subject: [PATCH 027/236] Link to logs screen from home screen --- lib/providers/logs_provider.dart | 8 +- lib/screens/home/chart.dart | 85 +++++++++++++------ lib/screens/home/home.dart | 32 +++++++ .../logs/filters/filter_status_modal.dart | 2 +- .../logs/filters/logs_filters_modal.dart | 6 +- lib/screens/logs/logs_list.dart | 4 +- lib/screens/logs/logs_list_appbar.dart | 2 +- 7 files changed, 107 insertions(+), 32 deletions(-) diff --git a/lib/providers/logs_provider.dart b/lib/providers/logs_provider.dart index 7861e6d..d9bc55f 100644 --- a/lib/providers/logs_provider.dart +++ b/lib/providers/logs_provider.dart @@ -114,9 +114,15 @@ class LogsProvider with ChangeNotifier { _offset = value; } - void setSelectedResultStatus(String value) { + void setSelectedResultStatus({ + required String value, + bool? refetch + }) { _selectedResultStatus = value; notifyListeners(); + if (refetch = true) { + filterLogs(); + } } void setSearchText(String? value) { diff --git a/lib/screens/home/chart.dart b/lib/screens/home/chart.dart index ba97f79..22c3117 100644 --- a/lib/screens/home/chart.dart +++ b/lib/screens/home/chart.dart @@ -1,17 +1,19 @@ import 'package:flutter/material.dart'; +import 'package:flutter_html/flutter_html.dart'; import 'package:provider/provider.dart'; import 'package:adguard_home_manager/widgets/line_chart.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; -class HomeChart extends StatelessWidget { +class HomeChart extends StatefulWidget { final List data; final String label; final String primaryValue; final String secondaryValue; final Color color; final int hoursInterval; + final void Function() onTapTitle; const HomeChart({ super.key, @@ -20,20 +22,28 @@ class HomeChart extends StatelessWidget { required this.primaryValue, required this.secondaryValue, required this.color, - required this.hoursInterval + required this.hoursInterval, + required this.onTapTitle, }); + @override + State createState() => _HomeChartState(); +} + +class _HomeChartState extends State { + bool _isHover = false; + @override Widget build(BuildContext context) { final appConfigProvider = Provider.of(context); - final bool isEmpty = data.every((i) => i == 0); + final bool isEmpty = widget.data.every((i) => i == 0); if (!(appConfigProvider.hideZeroValues == true && isEmpty == true)) { List dateTimes = []; - DateTime currentDate = DateTime.now().subtract(Duration(hours: hoursInterval*data.length+1)); - for (var i = 0; i < data.length; i++) { - currentDate = currentDate.add(Duration(hours: hoursInterval)); + DateTime currentDate = DateTime.now().subtract(Duration(hours: widget.hoursInterval*widget.data.length+1)); + for (var i = 0; i < widget.data.length; i++) { + currentDate = currentDate.add(Duration(hours: widget.hoursInterval)); dateTimes.add(currentDate); } @@ -52,13 +62,40 @@ class HomeChart extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Flexible( - child: Text( - label, - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.onSurface + child: MouseRegion( + cursor: SystemMouseCursors.click, + onEnter: (_) => setState(() => _isHover = true), + onExit: (_) => setState(() => _isHover = false), + child: GestureDetector( + onTapDown: (_) => setState(() => _isHover = true), + onTapUp: (_) => setState(() => _isHover = false), + onTap: widget.onTapTitle, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: Text( + widget.label, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w500, + color: _isHover + ? Theme.of(context).colorScheme.onSurfaceVariant + : Theme.of(context).colorScheme.onSurface, + ), + ), + ), + const SizedBox(width: 4), + Icon( + Icons.chevron_right_rounded, + size: 20, + color: _isHover + ? Theme.of(context).colorScheme.onSurfaceVariant + : Theme.of(context).colorScheme.onSurface, + ) + ], + ), ), ), ), @@ -67,18 +104,18 @@ class HomeChart extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.end, children: [ Text( - primaryValue, + widget.primaryValue, style: TextStyle( - color: color, + color: widget.color, fontSize: 18, fontWeight: FontWeight.w500 ), ), Text( - secondaryValue, + widget.secondaryValue, style: TextStyle( fontSize: 12, - color: color + color: widget.color ), ) ], @@ -86,19 +123,19 @@ class HomeChart extends StatelessWidget { : Row( children: [ Text( - primaryValue, + widget.primaryValue, style: TextStyle( - color: color, + color: widget.color, fontSize: 18, fontWeight: FontWeight.w500 ), ), const SizedBox(width: 10), Text( - "($secondaryValue)", + "(${widget.secondaryValue})", style: TextStyle( fontSize: 12, - color: color + color: widget.color ), ) ], @@ -110,10 +147,10 @@ class HomeChart extends StatelessWidget { width: double.maxFinite, height: 150, child: CustomLineChart( - data: data, - color: color, + data: widget.data, + color: widget.color, dates: dateTimes, - daysInterval: hoursInterval == 24, + daysInterval: widget.hoursInterval == 24, context: context, ) ), diff --git a/lib/screens/home/home.dart b/lib/screens/home/home.dart index 9e5de00..e7ed5c0 100644 --- a/lib/screens/home/home.dart +++ b/lib/screens/home/home.dart @@ -14,6 +14,7 @@ import 'package:adguard_home_manager/screens/home/appbar.dart'; import 'package:adguard_home_manager/screens/home/fab.dart'; import 'package:adguard_home_manager/screens/home/chart.dart'; +import 'package:adguard_home_manager/providers/logs_provider.dart'; import 'package:adguard_home_manager/functions/number_format.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/providers/status_provider.dart'; @@ -61,6 +62,7 @@ class _HomeState extends State { Widget build(BuildContext context) { final statusProvider = Provider.of(context); final appConfigProvider = Provider.of(context); + final logsProvider = Provider.of(context); final width = MediaQuery.of(context).size.width; @@ -143,6 +145,14 @@ class _HomeState extends State { secondaryValue: "${doubleFormat(statusProvider.serverStatus!.stats.avgProcessingTime*1000, Platform.localeName)} ms", color: Colors.blue, hoursInterval: statusProvider.serverStatus!.stats.timeUnits == "days" ? 24 : 1, + onTapTitle: () { + logsProvider.setSelectedResultStatus( + value: "all", + refetch: true + ); + logsProvider.filterLogs(); + appConfigProvider.setSelectedScreen(2); + }, ), ), FractionallySizedBox( @@ -154,6 +164,13 @@ class _HomeState extends State { secondaryValue: "${statusProvider.serverStatus!.stats.numDnsQueries > 0 ? doubleFormat((statusProvider.serverStatus!.stats.numBlockedFiltering/statusProvider.serverStatus!.stats.numDnsQueries)*100, Platform.localeName) : 0}%", color: Colors.red, hoursInterval: statusProvider.serverStatus!.stats.timeUnits == "days" ? 24 : 1, + onTapTitle: () { + logsProvider.setSelectedResultStatus( + value: "blocked", + refetch: true + ); + appConfigProvider.setSelectedScreen(2); + }, ), ), FractionallySizedBox( @@ -165,6 +182,13 @@ class _HomeState extends State { secondaryValue: "${statusProvider.serverStatus!.stats.numDnsQueries > 0 ? doubleFormat((statusProvider.serverStatus!.stats.numReplacedSafebrowsing/statusProvider.serverStatus!.stats.numDnsQueries)*100, Platform.localeName) : 0}%", color: Colors.green, hoursInterval: statusProvider.serverStatus!.stats.timeUnits == "days" ? 24 : 1, + onTapTitle: () { + logsProvider.setSelectedResultStatus( + value: "blocked_safebrowsing", + refetch: true + ); + appConfigProvider.setSelectedScreen(2); + }, ), ), FractionallySizedBox( @@ -176,6 +200,14 @@ class _HomeState extends State { secondaryValue: "${statusProvider.serverStatus!.stats.numDnsQueries > 0 ? doubleFormat((statusProvider.serverStatus!.stats.numReplacedParental/statusProvider.serverStatus!.stats.numDnsQueries)*100, Platform.localeName) : 0}%", color: Colors.orange, hoursInterval: statusProvider.serverStatus!.stats.timeUnits == "days" ? 24 : 1, + onTapTitle: () { + logsProvider.setSelectedResultStatus( + value: "blocked_parental", + refetch: true + ); + logsProvider.filterLogs(); + appConfigProvider.setSelectedScreen(2); + }, ), ), ], diff --git a/lib/screens/logs/filters/filter_status_modal.dart b/lib/screens/logs/filters/filter_status_modal.dart index 88f782b..c08d9a8 100644 --- a/lib/screens/logs/filters/filter_status_modal.dart +++ b/lib/screens/logs/filters/filter_status_modal.dart @@ -34,7 +34,7 @@ class _FilterStatusModalState extends State { final logsProvider = Provider.of(context); void apply() async { - logsProvider.setSelectedResultStatus(selectedResultStatus); + logsProvider.setSelectedResultStatus(value: selectedResultStatus); Navigator.pop(context); } diff --git a/lib/screens/logs/filters/logs_filters_modal.dart b/lib/screens/logs/filters/logs_filters_modal.dart index 5e7e746..aec6b27 100644 --- a/lib/screens/logs/filters/logs_filters_modal.dart +++ b/lib/screens/logs/filters/logs_filters_modal.dart @@ -262,13 +262,13 @@ class _FiltersList extends StatelessWidget { FilterChip( selected: logsProvider.selectedResultStatus == "all", label: Text(AppLocalizations.of(context)!.all), - onSelected: (_) => logsProvider.setSelectedResultStatus("all") + onSelected: (_) => logsProvider.setSelectedResultStatus(value: "all") ), FilterChip( selected: logsProvider.selectedResultStatus == "processed" || logsProvider.selectedResultStatus == "whitelisted", label: Text(AppLocalizations.of(context)!.allowed), - onSelected: (_) => logsProvider.setSelectedResultStatus("processed") + onSelected: (_) => logsProvider.setSelectedResultStatus(value: "processed") ), FilterChip( selected: logsProvider.selectedResultStatus == "blocked" || @@ -276,7 +276,7 @@ class _FiltersList extends StatelessWidget { logsProvider.selectedResultStatus == "blocked_parental" || logsProvider.selectedResultStatus == "safe_search", label: Text(AppLocalizations.of(context)!.blocked), - onSelected: (_) => logsProvider.setSelectedResultStatus("blocked") + onSelected: (_) => logsProvider.setSelectedResultStatus(value: "blocked") ), ], ), diff --git a/lib/screens/logs/logs_list.dart b/lib/screens/logs/logs_list.dart index ac0596a..ced94ca 100644 --- a/lib/screens/logs/logs_list.dart +++ b/lib/screens/logs/logs_list.dart @@ -22,11 +22,11 @@ class LogsListWidget extends StatefulWidget { final void Function(Log) onLogSelected; const LogsListWidget({ - Key? key, + super.key, required this.twoColumns, required this.selectedLog, required this.onLogSelected, - }) : super(key: key); + }); @override State createState() => _LogsListWidgetState(); diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index f467d26..8aeb752 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -256,7 +256,7 @@ class LogsListAppBar extends StatelessWidget { clients: logsProvider.appliedFilters.clients ) ); - logsProvider.setSelectedResultStatus('all'); + logsProvider.setSelectedResultStatus(value: 'all'); logsProvider.fetchLogs( inOffset: 0, responseStatus: 'all' From 6523229ea3082e8f43875be21b39163926704b69 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 17 Dec 2023 14:14:58 +0100 Subject: [PATCH 028/236] Removed unused imports --- lib/screens/home/chart.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/screens/home/chart.dart b/lib/screens/home/chart.dart index 22c3117..d111519 100644 --- a/lib/screens/home/chart.dart +++ b/lib/screens/home/chart.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:flutter_html/flutter_html.dart'; import 'package:provider/provider.dart'; import 'package:adguard_home_manager/widgets/line_chart.dart'; From 71b870b42ff72ae55c7bbe927e74967be80eafa0 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 17 Dec 2023 14:32:46 +0100 Subject: [PATCH 029/236] Added placeholders no data charts --- lib/l10n/app_en.arb | 4 +- lib/l10n/app_es.arb | 4 +- lib/screens/home/chart.dart | 125 +++++++++++++++++++++--------------- lib/screens/home/home.dart | 4 ++ 4 files changed, 85 insertions(+), 52 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 4fe20b3..60b94cc 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -713,5 +713,7 @@ "noFallbackDnsAdded": "No fallback DNS servers added.", "blockedResponseTtl": "Blocked response TTL", "blockedResponseTtlDescription": "Specifies for how many seconds the clients should cache a filtered response", - "invalidValue": "Invalid value" + "invalidValue": "Invalid value", + "noDataChart": "There's no data to display this chart.", + "noData": "No data" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index d3e0855..a7a9fd6 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -713,5 +713,7 @@ "noFallbackDnsAdded": "No hay servidores DNS alternativos añadidos.", "blockedResponseTtl": "Respuesta TTL bloqueada", "blockedResponseTtlDescription": "Especifica durante cuántos segundos los clientes deben almacenar en cache una respuesta filtrada", - "invalidValue": "Valor no válido" + "invalidValue": "Valor no válido", + "noDataChart": "No hay datos para mostrar este gráfico.", + "noData": "No hay datos" } \ No newline at end of file diff --git a/lib/screens/home/chart.dart b/lib/screens/home/chart.dart index d111519..0093ae8 100644 --- a/lib/screens/home/chart.dart +++ b/lib/screens/home/chart.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/line_chart.dart'; @@ -13,6 +14,7 @@ class HomeChart extends StatefulWidget { final Color color; final int hoursInterval; final void Function() onTapTitle; + final bool isDesktop; const HomeChart({ super.key, @@ -23,6 +25,7 @@ class HomeChart extends StatefulWidget { required this.color, required this.hoursInterval, required this.onTapTitle, + required this.isDesktop, }); @override @@ -58,7 +61,9 @@ class _HomeChartState extends State { ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: isEmpty + ? CrossAxisAlignment.center + : CrossAxisAlignment.start, children: [ Flexible( child: MouseRegion( @@ -68,7 +73,7 @@ class _HomeChartState extends State { child: GestureDetector( onTapDown: (_) => setState(() => _isHover = true), onTapUp: (_) => setState(() => _isHover = false), - onTap: widget.onTapTitle, + onTap: !isEmpty ? () => widget.onTapTitle () : null, child: Row( mainAxisSize: MainAxisSize.min, children: [ @@ -79,66 +84,64 @@ class _HomeChartState extends State { style: TextStyle( fontSize: 18, fontWeight: FontWeight.w500, - color: _isHover + color: _isHover && !isEmpty ? Theme.of(context).colorScheme.onSurfaceVariant : Theme.of(context).colorScheme.onSurface, ), ), ), - const SizedBox(width: 4), - Icon( - Icons.chevron_right_rounded, - size: 20, - color: _isHover - ? Theme.of(context).colorScheme.onSurfaceVariant - : Theme.of(context).colorScheme.onSurface, - ) + if (!isEmpty) ...[ + const SizedBox(width: 4), + Icon( + Icons.chevron_right_rounded, + size: 20, + color: _isHover && !isEmpty + ? Theme.of(context).colorScheme.onSurfaceVariant + : Theme.of(context).colorScheme.onSurface, + ) + ], ], ), ), ), ), - !isEmpty - ? Column( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Text( - widget.primaryValue, - style: TextStyle( - color: widget.color, - fontSize: 18, - fontWeight: FontWeight.w500 - ), - ), - Text( - widget.secondaryValue, - style: TextStyle( - fontSize: 12, - color: widget.color - ), - ) - ], + if (!isEmpty) Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + widget.primaryValue, + style: TextStyle( + color: widget.color, + fontSize: 18, + fontWeight: FontWeight.w500 + ), + ), + Text( + widget.secondaryValue, + style: TextStyle( + fontSize: 12, + color: widget.color + ), ) - : Row( - children: [ - Text( - widget.primaryValue, - style: TextStyle( - color: widget.color, - fontSize: 18, - fontWeight: FontWeight.w500 - ), - ), - const SizedBox(width: 10), - Text( - "(${widget.secondaryValue})", - style: TextStyle( - fontSize: 12, - color: widget.color - ), - ) - ], + ], + ), + if (isEmpty && !widget.isDesktop) Column( + children: [ + Icon( + Icons.show_chart_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + size: 16, + ), + Text( + AppLocalizations.of(context)!.noData, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), ) + ], + ) ], ), ), @@ -153,6 +156,28 @@ class _HomeChartState extends State { context: context, ) ), + if (isEmpty && widget.isDesktop) SizedBox( + height: 150, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.show_chart_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + size: 30, + ), + const SizedBox(height: 20), + Text( + AppLocalizations.of(context)!.noDataChart, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ) + ], + ), + ) ], ), ), diff --git a/lib/screens/home/home.dart b/lib/screens/home/home.dart index e7ed5c0..32cdb89 100644 --- a/lib/screens/home/home.dart +++ b/lib/screens/home/home.dart @@ -153,6 +153,7 @@ class _HomeState extends State { logsProvider.filterLogs(); appConfigProvider.setSelectedScreen(2); }, + isDesktop: width > 700, ), ), FractionallySizedBox( @@ -171,6 +172,7 @@ class _HomeState extends State { ); appConfigProvider.setSelectedScreen(2); }, + isDesktop: width > 700, ), ), FractionallySizedBox( @@ -189,6 +191,7 @@ class _HomeState extends State { ); appConfigProvider.setSelectedScreen(2); }, + isDesktop: width > 700, ), ), FractionallySizedBox( @@ -208,6 +211,7 @@ class _HomeState extends State { logsProvider.filterLogs(); appConfigProvider.setSelectedScreen(2); }, + isDesktop: width > 700, ), ), ], From 569ab7d569b5af48552743ea7c4c88eec76ba57b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 17 Dec 2023 22:09:13 +0100 Subject: [PATCH 030/236] Added option to block and unblock clients from home screen --- lib/l10n/app_en.arb | 5 +- lib/l10n/app_es.arb | 5 +- lib/models/menu_option.dart | 2 +- lib/providers/clients_provider.dart | 22 +++++ .../clients/client/active_client_tile.dart | 8 +- .../clients/client/added_client_tile.dart | 10 +-- lib/screens/clients/search_clients.dart | 6 +- .../filters/filters_triple_column.dart | 4 +- lib/screens/filters/list_options_menu.dart | 10 +-- lib/screens/home/home.dart | 4 + lib/screens/home/top_items/row_item.dart | 2 +- .../home/top_items/top_items_lists.dart | 82 +++++++++++++++---- .../home/top_items/top_items_screen.dart | 4 +- .../home/top_items/top_items_section.dart | 4 +- lib/screens/logs/log_tile.dart | 12 +-- lib/widgets/options_menu.dart | 12 +-- 16 files changed, 139 insertions(+), 53 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 60b94cc..7354d9c 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -715,5 +715,8 @@ "blockedResponseTtlDescription": "Specifies for how many seconds the clients should cache a filtered response", "invalidValue": "Invalid value", "noDataChart": "There's no data to display this chart.", - "noData": "No data" + "noData": "No data", + "unblockClient": "Unblock client", + "blockingClient": "Blocking client...", + "unblockingClient": "Unblocking client..." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index a7a9fd6..78d518f 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -715,5 +715,8 @@ "blockedResponseTtlDescription": "Especifica durante cuántos segundos los clientes deben almacenar en cache una respuesta filtrada", "invalidValue": "Valor no válido", "noDataChart": "No hay datos para mostrar este gráfico.", - "noData": "No hay datos" + "noData": "No hay datos", + "unblockClient": "Desbloquear cliente", + "blockingClient": "Bloqueando cliente...", + "unblockingClient": "Desbloqueando cliente..." } \ No newline at end of file diff --git a/lib/models/menu_option.dart b/lib/models/menu_option.dart index b89f8d9..e898514 100644 --- a/lib/models/menu_option.dart +++ b/lib/models/menu_option.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; class MenuOption { final IconData? icon; final String title; - final void Function(dynamic) action; + final void Function() action; final bool? disabled; const MenuOption({ diff --git a/lib/providers/clients_provider.dart b/lib/providers/clients_provider.dart index bfcf19d..36185cc 100644 --- a/lib/providers/clients_provider.dart +++ b/lib/providers/clients_provider.dart @@ -190,6 +190,16 @@ class ClientsProvider with ChangeNotifier { "blocked_hosts": clients!.clientsAllowedBlocked?.blockedHosts ?? [], }; + if (body['allowed_clients']!.contains(item)) { + body['allowed_clients'] = body['allowed_clients']!.where((e) => e != item).toList(); + } + else if (body['disallowed_clients']!.contains(item)) { + body['disallowed_clients'] = body['disallowed_clients']!.where((e) => e != item).toList(); + } + else if (body['blocked_hosts']!.contains(item)) { + body['blocked_hosts'] = body['blocked_hosts']!.where((e) => e != item).toList(); + } + if (type == AccessSettingsList.allowed) { body['allowed_clients']!.add(item); } @@ -223,6 +233,18 @@ class ClientsProvider with ChangeNotifier { } } + AccessSettingsList? checkClientList(String client) { + if (_clients!.clientsAllowedBlocked!.allowedClients.contains(client)) { + return AccessSettingsList.allowed; + } + else if (_clients!.clientsAllowedBlocked!.disallowedClients.contains(client)) { + return AccessSettingsList.disallowed; + } + else { + return null; + } + } + Future removeClientList(String client, AccessSettingsList type) async { Map> body = { "allowed_clients": clients!.clientsAllowedBlocked?.allowedClients ?? [], diff --git a/lib/screens/clients/client/active_client_tile.dart b/lib/screens/clients/client/active_client_tile.dart index 76c928c..7a7a825 100644 --- a/lib/screens/clients/client/active_client_tile.dart +++ b/lib/screens/clients/client/active_client_tile.dart @@ -28,11 +28,11 @@ class ActiveClientTile extends StatelessWidget { return Padding( padding: const EdgeInsets.symmetric(horizontal: 12), child: OptionsMenu( - options: [ + options: (_) => [ MenuOption( icon: Icons.copy_rounded, title: AppLocalizations.of(context)!.copyClipboard, - action: (_) => copyToClipboard( + action: () => copyToClipboard( value: client.name != '' ? client.name! : client.ip, @@ -99,11 +99,11 @@ class ActiveClientTile extends StatelessWidget { } else { return OptionsMenu( - options: [ + options: (_) => [ MenuOption( icon: Icons.copy_rounded, title: AppLocalizations.of(context)!.copyClipboard, - action: (_) => copyToClipboard( + action: () => copyToClipboard( value: client.name != '' ? client.name! : client.ip, diff --git a/lib/screens/clients/client/added_client_tile.dart b/lib/screens/clients/client/added_client_tile.dart index 4f4037e..8c10fd7 100644 --- a/lib/screens/clients/client/added_client_tile.dart +++ b/lib/screens/clients/client/added_client_tile.dart @@ -46,11 +46,11 @@ class _AddedClientTileState extends State { color: Colors.transparent, borderRadius: BorderRadius.circular(28), child: OptionsMenu( - options: [ + options: (_) => [ MenuOption( icon: Icons.copy_rounded, title: AppLocalizations.of(context)!.copyClipboard, - action: (_) => copyToClipboard( + action: () => copyToClipboard( value: widget.client.ids.toString().replaceAll(RegExp(r'^\[|\]$'), ''), successMessage: AppLocalizations.of(context)!.copiedClipboard, ) @@ -164,16 +164,16 @@ class _AddedClientTileState extends State { } else { return OptionsMenu( - options: [ + options: (_) => [ if (widget.onEdit != null) MenuOption( title: AppLocalizations.of(context)!.seeDetails, icon: Icons.file_open_rounded, - action: (_) => widget.onEdit!(widget.client) + action: () => widget.onEdit!(widget.client) ), MenuOption( icon: Icons.copy_rounded, title: AppLocalizations.of(context)!.copyClipboard, - action: (_) => copyToClipboard( + action: () => copyToClipboard( value: widget.client.ids.toString().replaceAll(RegExp(r'^\[|\]$'), ''), successMessage: AppLocalizations.of(context)!.copiedClipboard, ) diff --git a/lib/screens/clients/search_clients.dart b/lib/screens/clients/search_clients.dart index d8e1104..e5b1451 100644 --- a/lib/screens/clients/search_clients.dart +++ b/lib/screens/clients/search_clients.dart @@ -226,16 +226,16 @@ class _SearchClientsState extends State { itemCount: clientsScreen.length, padding: const EdgeInsets.only(bottom: 0), itemBuilder: (context, index) => OptionsMenu( - options: [ + options: (v) => [ MenuOption( icon: Icons.edit_rounded, title: AppLocalizations.of(context)!.edit, - action: (v) => openClientModal(v) + action: () => openClientModal(v) ), MenuOption( icon: Icons.delete_rounded, title: AppLocalizations.of(context)!.delete, - action: (v) => openDeleteModal(v) + action: () => openDeleteModal(v) ), ], value: clientsScreen[index], diff --git a/lib/screens/filters/filters_triple_column.dart b/lib/screens/filters/filters_triple_column.dart index 3401bac..7d15639 100644 --- a/lib/screens/filters/filters_triple_column.dart +++ b/lib/screens/filters/filters_triple_column.dart @@ -283,11 +283,11 @@ class FiltersTripleColumn extends StatelessWidget { ), ], child: OptionsMenu( - options: [ + options: (_) => [ MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, - action: (_) => copyToClipboard( + action: () => copyToClipboard( value: filteringProvider.filtering!.userRules[index], successMessage: AppLocalizations.of(context)!.copiedClipboard, ) diff --git a/lib/screens/filters/list_options_menu.dart b/lib/screens/filters/list_options_menu.dart index 32e4610..c35d080 100644 --- a/lib/screens/filters/list_options_menu.dart +++ b/lib/screens/filters/list_options_menu.dart @@ -146,7 +146,7 @@ class ListOptionsMenu extends StatelessWidget { color: Colors.transparent, child: InkWell( child: OptionsMenu( - options: [ + options: (_) => [ MenuOption( title: list.enabled == true ? AppLocalizations.of(context)!.disable @@ -154,12 +154,12 @@ class ListOptionsMenu extends StatelessWidget { icon: list.enabled == true ? Icons.gpp_bad_rounded : Icons.verified_user_rounded, - action: (_) => enableDisable() + action: () => enableDisable() ), MenuOption( title: AppLocalizations.of(context)!.copyListUrl, icon: Icons.copy_rounded, - action: (_) => copyToClipboard( + action: () => copyToClipboard( value: list.url, successMessage: AppLocalizations.of(context)!.listUrlCopied ) @@ -167,12 +167,12 @@ class ListOptionsMenu extends StatelessWidget { MenuOption( title: AppLocalizations.of(context)!.openListUrl, icon: Icons.open_in_browser_rounded, - action: (_) => openUrl(list.url) + action: () => openUrl(list.url) ), MenuOption( title: AppLocalizations.of(context)!.selectionMode, icon: Icons.check_rounded, - action: (_) => Future.delayed( + action: () => Future.delayed( const Duration(milliseconds: 0), () => openSelectionMode() ) diff --git a/lib/screens/home/home.dart b/lib/screens/home/home.dart index 32cdb89..f34a186 100644 --- a/lib/screens/home/home.dart +++ b/lib/screens/home/home.dart @@ -14,6 +14,7 @@ import 'package:adguard_home_manager/screens/home/appbar.dart'; import 'package:adguard_home_manager/screens/home/fab.dart'; import 'package:adguard_home_manager/screens/home/chart.dart'; +import 'package:adguard_home_manager/providers/clients_provider.dart'; import 'package:adguard_home_manager/providers/logs_provider.dart'; import 'package:adguard_home_manager/functions/number_format.dart'; import 'package:adguard_home_manager/constants/enums.dart'; @@ -39,6 +40,9 @@ class _HomeState extends State { withLoadingIndicator: statusProvider.serverStatus != null ? false : true ); + final clientsProvider = Provider.of(context, listen: false); + clientsProvider.fetchClients(updateLoading: false); + super.initState(); isVisible = true; diff --git a/lib/screens/home/top_items/row_item.dart b/lib/screens/home/top_items/row_item.dart index 569d30c..b323eb0 100644 --- a/lib/screens/home/top_items/row_item.dart +++ b/lib/screens/home/top_items/row_item.dart @@ -16,7 +16,7 @@ class RowItem extends StatefulWidget { final bool clients; final bool showColor; final String? unit; - final List options; + final List Function(dynamic) options; final void Function(dynamic)? onTapEntry; const RowItem({ diff --git a/lib/screens/home/top_items/top_items_lists.dart b/lib/screens/home/top_items/top_items_lists.dart index 7f230fb..758a0b6 100644 --- a/lib/screens/home/top_items/top_items_lists.dart +++ b/lib/screens/home/top_items/top_items_lists.dart @@ -6,6 +6,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/home/top_items/top_items_section.dart'; +import 'package:adguard_home_manager/providers/clients_provider.dart'; import 'package:adguard_home_manager/functions/number_format.dart'; import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; @@ -30,6 +31,7 @@ class TopItemsLists extends StatelessWidget { final statusProvider = Provider.of(context); final appConfigProvider = Provider.of(context); final logsProvider = Provider.of(context); + final clientsProvider = Provider.of(context); List bottom = [ Padding( @@ -96,10 +98,53 @@ class TopItemsLists extends StatelessWidget { } } - void copyValueClipboard(value) { + void copyValueClipboard(dynamic value) { copyToClipboard(value: value, successMessage: AppLocalizations.of(context)!.copiedClipboard); } + void blockUnblockClient(dynamic client) async { + final currentList = clientsProvider.checkClientList(client); + final newList = currentList == AccessSettingsList.allowed || currentList == null + ? AccessSettingsList.disallowed + : AccessSettingsList.allowed; + + ProcessModal processModal = ProcessModal(); + processModal.open( + currentList == AccessSettingsList.allowed || currentList == null + ? AppLocalizations.of(context)!.blockingClient + : AppLocalizations.of(context)!.unblockingClient + ); + + final result = await clientsProvider.addClientList(client, newList); + if (!context.mounted) return; + + processModal.close(); + + if (result.successful == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.clientAddedSuccessfully, + color: Colors.green + ); + } + else if (result.successful == false && result.content == 'client_another_list') { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.clientAnotherList, + color: Colors.red + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: newList == AccessSettingsList.allowed || newList == AccessSettingsList.disallowed + ? AppLocalizations.of(context)!.clientNotRemoved + : AppLocalizations.of(context)!.domainNotAdded, + color: Colors.red + ); + } + } + return Column( children: order.asMap().entries.map((item) { switch (item.value) { @@ -113,16 +158,16 @@ class TopItemsLists extends StatelessWidget { withChart: true, withProgressBar: true, buildValue: (v) => v.toString(), - menuOptions: [ + menuOptions: (v) => [ MenuOption( title: AppLocalizations.of(context)!.blockDomain, icon: Icons.block_rounded, - action: (v) => blockUnblock(domain: v.toString(), newStatus: 'block') + action: () => blockUnblock(domain: v.toString(), newStatus: 'block') ), MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, - action: copyValueClipboard + action: () => copyValueClipboard(v) ), ], onTapEntry: (v) => filterDomainLogs(value: v.toString()), @@ -141,16 +186,16 @@ class TopItemsLists extends StatelessWidget { withChart: true, withProgressBar: true, buildValue: (v) => v.toString(), - menuOptions: [ + menuOptions: (v) => [ MenuOption( title: AppLocalizations.of(context)!.unblockDomain, icon: Icons.check_rounded, - action: (v) => blockUnblock(domain: v, newStatus: 'unblock') + action: () => blockUnblock(domain: v, newStatus: 'unblock') ), MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, - action: copyValueClipboard + action: () => copyValueClipboard(v) ) ], onTapEntry: (v) => filterDomainLogs(value: v), @@ -169,12 +214,21 @@ class TopItemsLists extends StatelessWidget { withChart: true, withProgressBar: true, buildValue: (v) => v.toString(), - menuOptions: [ + menuOptions: (v) => [ + if (clientsProvider.clients?.clientsAllowedBlocked != null) MenuOption( + title: clientsProvider.checkClientList(v) == AccessSettingsList.allowed || clientsProvider.checkClientList(v) == null + ? AppLocalizations.of(context)!.blockClient + : AppLocalizations.of(context)!.unblockClient, + icon: clientsProvider.checkClientList(v) == AccessSettingsList.allowed || clientsProvider.checkClientList(v) == null + ? Icons.block_rounded + : Icons.check_rounded, + action: () => blockUnblockClient(v) + ), MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, - action: copyValueClipboard - ) + action: () => copyValueClipboard(v) + ), ], onTapEntry: (v) => filterClientLogs(value: v), ), @@ -193,11 +247,11 @@ class TopItemsLists extends StatelessWidget { withChart: true, withProgressBar: true, buildValue: (v) => v.toString(), - menuOptions: [ + menuOptions: (v) => [ MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, - action: copyValueClipboard + action: () => copyValueClipboard(v) ) ], ), @@ -217,11 +271,11 @@ class TopItemsLists extends StatelessWidget { withChart: false, withProgressBar: false, buildValue: (v) => "${doubleFormat(v*1000, Platform.localeName)} ms", - menuOptions: [ + menuOptions: (v) => [ MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, - action: copyValueClipboard + action: () => copyValueClipboard(v) ) ], ), diff --git a/lib/screens/home/top_items/top_items_screen.dart b/lib/screens/home/top_items/top_items_screen.dart index f2f9b4d..1070953 100644 --- a/lib/screens/home/top_items/top_items_screen.dart +++ b/lib/screens/home/top_items/top_items_screen.dart @@ -24,7 +24,7 @@ class TopItemsScreen extends StatefulWidget { final List> data; final bool withProgressBar; final String Function(dynamic) buildValue; - final List options; + final List Function(dynamic) options; final void Function(dynamic)? onTapEntry; final bool isFullscreen; @@ -263,7 +263,7 @@ class _TopItemsScreenState extends State { class _Content extends StatelessWidget { final List> screenData; final bool? isClient; - final List options; + final List Function(dynamic) options; final bool withProgressBar; final void Function(dynamic)? onTapEntry; final String Function(dynamic) buildValue; diff --git a/lib/screens/home/top_items/top_items_section.dart b/lib/screens/home/top_items/top_items_section.dart index f084b3f..bc021cf 100644 --- a/lib/screens/home/top_items/top_items_section.dart +++ b/lib/screens/home/top_items/top_items_section.dart @@ -21,7 +21,7 @@ class TopItemsSection extends StatefulWidget { final bool withChart; final bool withProgressBar; final String Function(dynamic) buildValue; - final List menuOptions; + final List Function(dynamic) menuOptions; final void Function(dynamic)? onTapEntry; const TopItemsSection({ @@ -350,7 +350,7 @@ class _ItemsList extends StatelessWidget { final HomeTopItems type; final bool showChart; final String Function(dynamic) buildValue; - final List menuOptions; + final List Function(dynamic) menuOptions; final void Function(dynamic)? onTapEntry; const _ItemsList({ diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index af130e2..6f4ea6b 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -128,7 +128,7 @@ class LogTile extends StatelessWidget { child: OptionsMenu( onTap: (_) => onLogTap(log), borderRadius: BorderRadius.circular(28), - options: [ + options: (v) => [ if (log.question.name != null) MenuOption( title: domainBlocked == true ? AppLocalizations.of(context)!.unblockDomain @@ -136,7 +136,7 @@ class LogTile extends StatelessWidget { icon: domainBlocked == true ? Icons.check_rounded : Icons.block_rounded, - action: (_) => blockUnblock( + action: () => blockUnblock( domain: log.question.name!, newStatus: domainBlocked == true ? 'unblock' : 'block' ) @@ -144,7 +144,7 @@ class LogTile extends StatelessWidget { MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, - action: (v) => copyToClipboard(value: v, successMessage: AppLocalizations.of(context)!.copiedClipboard) + action: () => copyToClipboard(value: v, successMessage: AppLocalizations.of(context)!.copiedClipboard) ) ], child: Container( @@ -306,7 +306,7 @@ class LogTile extends StatelessWidget { color: Colors.transparent, child: OptionsMenu( onTap: (_) => onLogTap(log), - options: [ + options: (_) => [ if (log.question.name != null) MenuOption( title: domainBlocked == true ? AppLocalizations.of(context)!.unblockDomain @@ -314,7 +314,7 @@ class LogTile extends StatelessWidget { icon: domainBlocked == true ? Icons.check_rounded : Icons.block_rounded, - action: (_) => blockUnblock( + action: () => blockUnblock( domain: log.question.name!, newStatus: domainBlocked == true ? 'unblock' : 'block' ) @@ -322,7 +322,7 @@ class LogTile extends StatelessWidget { if (log.question.name != null) MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, - action: (_) => copyToClipboard( + action: () => copyToClipboard( value: log.question.name!, successMessage: AppLocalizations.of(context)!.copiedClipboard ) diff --git a/lib/widgets/options_menu.dart b/lib/widgets/options_menu.dart index 861edab..ad91b33 100644 --- a/lib/widgets/options_menu.dart +++ b/lib/widgets/options_menu.dart @@ -11,7 +11,7 @@ import 'package:adguard_home_manager/models/menu_option.dart'; class OptionsMenu extends StatelessWidget { final Widget child; - final List options; + final List Function(dynamic) options; final dynamic value; final BorderRadius? borderRadius; final void Function(dynamic)? onTap; @@ -40,11 +40,11 @@ class OptionsMenu extends StatelessWidget { return Material( color: Colors.transparent, child: ContextMenuArea( - builder: (context) => options.map((opt) => CustomListTile( + builder: (context) => options(value).map((opt) => CustomListTile( title: opt.title, icon: opt.icon, onTap: () { - opt.action(value); + opt.action(); Navigator.pop(context); }, )).toList(), @@ -64,7 +64,7 @@ class OptionsMenu extends StatelessWidget { } class _OptionsModal extends StatelessWidget { - final List options; + final List Function(dynamic) options; final dynamic value; const _OptionsModal({ @@ -98,12 +98,12 @@ class _OptionsModal extends StatelessWidget { ), child: SingleChildScrollView( child: Wrap( - children: options.map((opt) => CustomListTileDialog( + children: options(value).map((opt) => CustomListTileDialog( title: opt.title, icon: opt.icon, onTap: () { Navigator.pop(context); - opt.action(value); + opt.action(); }, )).toList() ), From 313b76740a627eef4b67497a0e0ead63f6b9f6b3 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 18 Dec 2023 02:30:32 +0100 Subject: [PATCH 031/236] Added cache configuration and changed added client validation --- lib/l10n/app_en.arb | 9 +- lib/l10n/app_es.arb | 9 +- lib/models/clients.dart | 10 +- .../client/blocked_services_section.dart | 10 +- lib/screens/clients/client/client_form.dart | 109 ++++---- lib/screens/clients/client/client_screen.dart | 255 +++++++++++++----- .../client/client_screen_functions.dart | 22 +- .../clients/client/identifiers_section.dart | 16 +- lib/screens/clients/client/settings_tile.dart | 9 +- lib/screens/clients/client/tags_section.dart | 6 +- .../client/upstream_servers_section.dart | 14 +- 11 files changed, 302 insertions(+), 167 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 7354d9c..6bf0c27 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -718,5 +718,12 @@ "noData": "No data", "unblockClient": "Unblock client", "blockingClient": "Blocking client...", - "unblockingClient": "Unblocking client..." + "unblockingClient": "Unblocking client...", + "upstreamDnsCacheConfiguration": "Configuración de la caché DNS upstream", + "enableDnsCachingClient": "Enable DNS caching for this client", + "dnsCacheSize": "DNS cache size", + "nameInvalid": "Name is required", + "oneIdentifierRequired": "At least one identifier is required", + "dnsCacheNumber": "DNS cache size must be a number", + "errors": "Errors" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 78d518f..a6a222b 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -718,5 +718,12 @@ "noData": "No hay datos", "unblockClient": "Desbloquear cliente", "blockingClient": "Bloqueando cliente...", - "unblockingClient": "Desbloqueando cliente..." + "unblockingClient": "Desbloqueando cliente...", + "upstreamDnsCacheConfiguration": "Configuración de la caché DNS upstream", + "enableDnsCachingClient": "Habilitar caché de DNS para este cliente", + "dnsCacheSize": "Tamaño de caché de DNS", + "nameInvalid": "Se requiere un nombre", + "oneIdentifierRequired": "Se require al menos un identificador", + "dnsCacheNumber": "El tamaño de caché de DNS debe ser un número", + "errors": "Errores" } \ No newline at end of file diff --git a/lib/models/clients.dart b/lib/models/clients.dart index 5808391..67740bd 100644 --- a/lib/models/clients.dart +++ b/lib/models/clients.dart @@ -89,6 +89,8 @@ class Client { final SafeSearch? safeSearch; final bool? ignoreQuerylog; final bool? ignoreStatistics; + final bool? upstreamsCacheEnabled; + final int? upstreamsCacheSize; Client({ required this.name, @@ -104,6 +106,8 @@ class Client { required this.safeSearch, required this.ignoreQuerylog, required this.ignoreStatistics, + required this.upstreamsCacheEnabled, + required this.upstreamsCacheSize, }); factory Client.fromJson(Map json) => Client( @@ -121,7 +125,9 @@ class Client { ? SafeSearch.fromJson(json["safe_search"]) : null, ignoreQuerylog: json["ignore_querylog"], - ignoreStatistics: json["ignore_statistics"] + ignoreStatistics: json["ignore_statistics"], + upstreamsCacheEnabled: json["upstreams_cache_enabled"], + upstreamsCacheSize: json["upstreams_cache_size"] ); Map toJson() => { @@ -138,5 +144,7 @@ class Client { "use_global_settings": useGlobalSettings, "ignore_querylog": ignoreQuerylog, "ignore_statistics": ignoreStatistics, + "upstreams_cache_enabled": upstreamsCacheEnabled, + "upstreams_cache_size": upstreamsCacheSize }; } \ No newline at end of file diff --git a/lib/screens/clients/client/blocked_services_section.dart b/lib/screens/clients/client/blocked_services_section.dart index f6effd4..4a7fc11 100644 --- a/lib/screens/clients/client/blocked_services_section.dart +++ b/lib/screens/clients/client/blocked_services_section.dart @@ -22,7 +22,7 @@ class BlockedServicesSection extends StatelessWidget { return Column( children: [ Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), + padding: const EdgeInsets.symmetric(horizontal: 16), child: Material( color: Theme.of(context).colorScheme.primary.withOpacity(0.1), borderRadius: BorderRadius.circular(28), @@ -31,8 +31,8 @@ class BlockedServicesSection extends StatelessWidget { borderRadius: BorderRadius.circular(28), child: Padding( padding: const EdgeInsets.symmetric( - horizontal: 20, - vertical: 5 + horizontal: 16, + vertical: 6 ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -56,7 +56,7 @@ class BlockedServicesSection extends StatelessWidget { ), ), ), - const SizedBox(height: 10), + const SizedBox(height: 12), Material( color: Colors.transparent, child: InkWell( @@ -69,7 +69,7 @@ class BlockedServicesSection extends StatelessWidget { : null, child: Padding( padding: const EdgeInsets.symmetric( - vertical: 8, horizontal: 24 + vertical: 8, horizontal: 32 ), child: Row( children: [ diff --git a/lib/screens/clients/client/client_form.dart b/lib/screens/clients/client/client_form.dart index 5c164af..e127466 100644 --- a/lib/screens/clients/client/client_form.dart +++ b/lib/screens/clients/client/client_form.dart @@ -1,6 +1,3 @@ -import 'dart:io'; - -import 'package:adguard_home_manager/widgets/custom_switch_list_tile.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -12,6 +9,7 @@ import 'package:adguard_home_manager/screens/clients/client/settings_tile.dart'; import 'package:adguard_home_manager/screens/clients/client/tags_section.dart'; import 'package:adguard_home_manager/screens/clients/client/upstream_servers_section.dart'; +import 'package:adguard_home_manager/widgets/custom_switch_list_tile.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; import 'package:adguard_home_manager/widgets/section_label.dart'; @@ -22,7 +20,6 @@ class ClientForm extends StatelessWidget { final bool isFullScreen; final Client? client; final TextEditingController nameController; - final void Function(bool) updateValidValues; final List identifiersControllers; final List selectedTags; final bool useGlobalSettingsFiltering; @@ -50,13 +47,17 @@ class ClientForm extends StatelessWidget { final void Function(bool) updateIgnoreClientQueryLog; final bool ignoreClientStatistics; final void Function(bool) updateIgnoreClientStatistics; + final bool enableDnsCache; + final void Function(bool) updateEnableDnsCache; + final TextEditingController dnsCacheField; + final String? dnsCacheError; + final void Function(String?) updateDnsCacheError; const ClientForm({ super.key, required this.isFullScreen, required this.client, required this.nameController, - required this.updateValidValues, required this.identifiersControllers, required this.selectedTags, required this.useGlobalSettingsFiltering, @@ -84,26 +85,24 @@ class ClientForm extends StatelessWidget { required this.ignoreClientStatistics, required this.updateIgnoreClientQueryLog, required this.updateIgnoreClientStatistics, + required this.enableDnsCache, + required this.updateEnableDnsCache, + required this.dnsCacheField, + required this.dnsCacheError, + required this.updateDnsCacheError, }); @override Widget build(BuildContext context) { - return ListView( - padding: const EdgeInsets.only(top: 0), + return Column( children: [ - if (isFullScreen == true) const SizedBox(height: 24), - if (isFullScreen == false) const SizedBox(height: 6), + const SizedBox(height: 8), Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), + padding: const EdgeInsets.symmetric(horizontal: 16), child: TextFormField( enabled: client != null ? false : true, controller: nameController, - onChanged: (_) => updateValidValues( - checkValidValues( - identifiersControllers: identifiersControllers, - nameController: nameController - ) - ), + onChanged: (_) => {}, decoration: InputDecoration( prefixIcon: const Icon(Icons.badge_rounded), border: const OutlineInputBorder( @@ -117,7 +116,7 @@ class ClientForm extends StatelessWidget { ), SectionLabel( label: AppLocalizations.of(context)!.tags, - padding: const EdgeInsets.all(24), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), ), TagsSection( selectedTags: selectedTags, @@ -127,28 +126,17 @@ class ClientForm extends StatelessWidget { identifiersControllers: identifiersControllers, onUpdateIdentifiersControllers: (c) { updateIdentifiersControllers(c); - updateValidValues( - checkValidValues( - nameController: nameController, - identifiersControllers: identifiersControllers - ) - ); }, - onCheckValidValues: () => updateValidValues( - checkValidValues( - identifiersControllers: identifiersControllers, - nameController: nameController - ) - ), + onCheckValidValues: () => {} ), SectionLabel( label: AppLocalizations.of(context)!.settings, padding: const EdgeInsets.only( - left: 24, right: 24, top: 12, bottom: 24 + left: 16, right: 16, top: 12, bottom: 24 ) ), Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), + padding: const EdgeInsets.symmetric(horizontal: 16), child: Material( color: Theme.of(context).colorScheme.primary.withOpacity(0.1), borderRadius: BorderRadius.circular(28), @@ -157,8 +145,8 @@ class ClientForm extends StatelessWidget { borderRadius: BorderRadius.circular(28), child: Padding( padding: const EdgeInsets.symmetric( - horizontal: 20, - vertical: 5 + horizontal: 16, + vertical: 6 ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -182,7 +170,7 @@ class ClientForm extends StatelessWidget { ), ), ), - const SizedBox(height: 10), + const SizedBox(height: 8), SettingsTile( label: AppLocalizations.of(context)!.enableFiltering, value: enableFiltering, @@ -204,7 +192,7 @@ class ClientForm extends StatelessWidget { CustomListTile( title: AppLocalizations.of(context)!.safeSearch, padding: const EdgeInsets.symmetric( - horizontal: 42, + horizontal: 34, vertical: 16 ), trailing: Padding( @@ -228,15 +216,15 @@ class ClientForm extends StatelessWidget { ), SectionLabel( label: AppLocalizations.of(context)!.queryLogsAndStatistics, - padding: const EdgeInsets.all(24), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), ), CustomSwitchListTile( title: AppLocalizations.of(context)!.ignoreClientQueryLog, value: ignoreClientQueryLog, onChanged: updateIgnoreClientQueryLog, padding: const EdgeInsets.symmetric( - horizontal: 24, - vertical: 4 + horizontal: 16, + vertical: 6 ), ), CustomSwitchListTile( @@ -244,13 +232,13 @@ class ClientForm extends StatelessWidget { value: ignoreClientStatistics, onChanged: updateIgnoreClientStatistics, padding: const EdgeInsets.symmetric( - horizontal: 24, - vertical: 4 + horizontal: 16, + vertical: 6 ), ), SectionLabel( label: AppLocalizations.of(context)!.blockedServices, - padding: const EdgeInsets.all(24), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), ), BlockedServicesSection( useGlobalSettingsServices: useGlobalSettingsServices, @@ -260,15 +248,40 @@ class ClientForm extends StatelessWidget { ), UpstreamServersSection( upstreamServers: upstreamServers, - onCheckValidValues: () => updateValidValues( - checkValidValues( - identifiersControllers: identifiersControllers, - nameController: nameController - ) - ), + onCheckValidValues: () => {}, onUpdateUpstreamServers: updateUpstreamServers ), - SizedBox(height: Platform.isIOS ? 48 : 24) + SectionLabel( + label: AppLocalizations.of(context)!.upstreamDnsCacheConfiguration, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), + ), + CustomSwitchListTile( + title: AppLocalizations.of(context)!.enableDnsCachingClient, + value: enableDnsCache, + onChanged: updateEnableDnsCache, + padding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 6 + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), + child: TextFormField( + controller: dnsCacheField, + onChanged: (v) => updateDnsCacheError(!validateNumber(v) ? AppLocalizations.of(context)!.invalidValue : null), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.storage_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.dnsCacheSize, + errorText: dnsCacheError + ), + keyboardType: TextInputType.number, + ), + ), ], ); } diff --git a/lib/screens/clients/client/client_screen.dart b/lib/screens/clients/client/client_screen.dart index 9a16e1a..f41de69 100644 --- a/lib/screens/clients/client/client_screen.dart +++ b/lib/screens/clients/client/client_screen.dart @@ -39,6 +39,8 @@ class ClientScreen extends StatefulWidget { } class _ClientScreenState extends State { + final _scrollController = ScrollController(); + final Uuid uuid = const Uuid(); bool validValues = false; @@ -76,6 +78,15 @@ class _ClientScreenState extends State { bool _ignoreClientQueryLog = false; bool _ignoreClientStatistics = false; + bool _enableDnsCache = false; + final _dnsCacheField = TextEditingController(); + String? _dnsCacheError; + + // VALIDATIONS + bool _nameValid = true; + bool _identifiersValid = true; + bool _dnsCacheValid = true; + void enableDisableGlobalSettingsFiltering() { if (useGlobalSettingsFiltering == true) { setState(() { @@ -125,6 +136,10 @@ class _ClientScreenState extends State { )).toList(); _ignoreClientQueryLog = widget.client!.ignoreQuerylog ?? false; _ignoreClientStatistics = widget.client!.ignoreStatistics ?? false; + _enableDnsCache = widget.client!.upstreamsCacheEnabled ?? false; + _dnsCacheField.text = widget.client!.upstreamsCacheSize != null + ? widget.client!.upstreamsCacheSize.toString() + : ""; } super.initState(); } @@ -147,20 +162,37 @@ class _ClientScreenState extends State { upstreams: List.from(upstreamServers.map((e) => e.controller.text)), tags: selectedTags, ignoreQuerylog: _ignoreClientQueryLog, - ignoreStatistics: _ignoreClientStatistics + ignoreStatistics: _ignoreClientStatistics, + upstreamsCacheEnabled: _enableDnsCache, + upstreamsCacheSize: _dnsCacheField.text != "" + ? int.parse(_dnsCacheField.text) + : null ); widget.onConfirm(client); } + void validateValues() { + _nameValid = nameController.text != ''; + _identifiersValid = identifiersControllers.isNotEmpty && identifiersControllers[0].controller.text != ''; + _dnsCacheValid = (_dnsCacheField.text == "" || _dnsCacheField.text != "" && RegExp(r'^\d+$').hasMatch(_dnsCacheField.text)); + if (_nameValid && _identifiersValid && _dnsCacheValid) { + createClient(); + Navigator.pop(context); + } + else { + _scrollController.animateTo( + 0, + curve: Curves.easeOut, + duration: const Duration(milliseconds: 500) + ); + setState(() => {}); + } + } + List actions() { return [ IconButton( - onPressed: validValues == true - ? () { - createClient(); - Navigator.pop(context); - } - : null, + onPressed: validateValues, icon: const Icon(Icons.save_rounded), tooltip: AppLocalizations.of(context)!.save, ), @@ -193,38 +225,52 @@ class _ClientScreenState extends State { actions: actions(), ), body: SafeArea( - child: ClientForm( - isFullScreen: true, - client: widget.client, - nameController: nameController, - updateValidValues: (v) => setState(() => validValues = v), - identifiersControllers: identifiersControllers, - selectedTags: selectedTags, - useGlobalSettingsFiltering: useGlobalSettingsFiltering, - enableFiltering: enableFiltering, - enableParentalControl: enableParentalControl, - enableSafeBrowsing: enableSafeBrowsing, - enableSafeSearch: enableSafeSearch, - safeSearch: safeSearch, - blockedServices: blockedServices, - updateBlockedServices: (v) => setState(() => blockedServices = v), - upstreamServers: upstreamServers, - updateUpstreamServers: (v) => setState(() => upstreamServers = v), - defaultSafeSearch: defaultSafeSearch, - useGlobalSettingsServices: useGlobalSettingsServices, - updateSelectedTags: (v) => setState(() => selectedTags = v), - updateIdentifiersControllers: (v) => setState(() => identifiersControllers = v), - enableDisableGlobalSettingsFiltering: enableDisableGlobalSettingsFiltering, - updateEnableFiltering: (v) => setState(() => enableFiltering = v), - updateEnableParentalControl: (v) => setState(() => enableParentalControl = v), - updateEnableSafeBrowsing: (v) => setState(() => enableSafeBrowsing = v), - updateEnableSafeSearch: (v) => setState(() => enableSafeSearch = v), - updateSafeSearch: (v) => setState(() => safeSearch = v), - updateUseGlobalSettingsServices: (v) => setState(() => useGlobalSettingsServices = v), - ignoreClientQueryLog: _ignoreClientQueryLog, - ignoreClientStatistics: _ignoreClientStatistics, - updateIgnoreClientQueryLog: (v) => setState(() => _ignoreClientQueryLog = v), - updateIgnoreClientStatistics: (v) => setState(() => _ignoreClientStatistics = v), + child: ListView( + controller: _scrollController, + children: [ + if (!_nameValid || !_identifiersValid || !_dnsCacheValid) _Errors( + nameValid: _nameValid, + identifiersValid: _identifiersValid, + dnsCacheValid: _dnsCacheValid + ), + ClientForm( + isFullScreen: true, + client: widget.client, + nameController: nameController, + identifiersControllers: identifiersControllers, + selectedTags: selectedTags, + useGlobalSettingsFiltering: useGlobalSettingsFiltering, + enableFiltering: enableFiltering, + enableParentalControl: enableParentalControl, + enableSafeBrowsing: enableSafeBrowsing, + enableSafeSearch: enableSafeSearch, + safeSearch: safeSearch, + blockedServices: blockedServices, + updateBlockedServices: (v) => setState(() => blockedServices = v), + upstreamServers: upstreamServers, + updateUpstreamServers: (v) => setState(() => upstreamServers = v), + defaultSafeSearch: defaultSafeSearch, + useGlobalSettingsServices: useGlobalSettingsServices, + updateSelectedTags: (v) => setState(() => selectedTags = v), + updateIdentifiersControllers: (v) => setState(() => identifiersControllers = v), + enableDisableGlobalSettingsFiltering: enableDisableGlobalSettingsFiltering, + updateEnableFiltering: (v) => setState(() => enableFiltering = v), + updateEnableParentalControl: (v) => setState(() => enableParentalControl = v), + updateEnableSafeBrowsing: (v) => setState(() => enableSafeBrowsing = v), + updateEnableSafeSearch: (v) => setState(() => enableSafeSearch = v), + updateSafeSearch: (v) => setState(() => safeSearch = v), + updateUseGlobalSettingsServices: (v) => setState(() => useGlobalSettingsServices = v), + ignoreClientQueryLog: _ignoreClientQueryLog, + ignoreClientStatistics: _ignoreClientStatistics, + updateIgnoreClientQueryLog: (v) => setState(() => _ignoreClientQueryLog = v), + updateIgnoreClientStatistics: (v) => setState(() => _ignoreClientStatistics = v), + enableDnsCache: _enableDnsCache, + updateEnableDnsCache: (v) => setState(() => _enableDnsCache = v), + dnsCacheField: _dnsCacheField, + dnsCacheError: _dnsCacheError, + updateDnsCacheError: (v) => setState(() => _dnsCacheError = v) + ), + ], ), ), ), @@ -264,38 +310,52 @@ class _ClientScreenState extends State { ), ), Flexible( - child: ClientForm( - isFullScreen: false, - client: widget.client, - nameController: nameController, - updateValidValues: (v) => setState(() => validValues = v), - identifiersControllers: identifiersControllers, - selectedTags: selectedTags, - useGlobalSettingsFiltering: useGlobalSettingsFiltering, - enableFiltering: enableFiltering, - enableParentalControl: enableParentalControl, - enableSafeBrowsing: enableSafeBrowsing, - enableSafeSearch: enableSafeSearch, - safeSearch: safeSearch, - blockedServices: blockedServices, - updateBlockedServices: (v) => setState(() => blockedServices = v), - upstreamServers: upstreamServers, - updateUpstreamServers: (v) => setState(() => upstreamServers = v), - defaultSafeSearch: defaultSafeSearch, - useGlobalSettingsServices: useGlobalSettingsServices, - updateSelectedTags: (v) => setState(() => selectedTags = v), - updateIdentifiersControllers: (v) => setState(() => identifiersControllers = v), - enableDisableGlobalSettingsFiltering: enableDisableGlobalSettingsFiltering, - updateEnableFiltering: (v) => setState(() => enableFiltering = v), - updateEnableParentalControl: (v) => setState(() => enableParentalControl = v), - updateEnableSafeBrowsing: (v) => setState(() => enableSafeBrowsing = v), - updateEnableSafeSearch: (v) => setState(() => enableSafeSearch = v), - updateSafeSearch: (v) => setState(() => safeSearch = v), - updateUseGlobalSettingsServices: (v) => setState(() => useGlobalSettingsServices = v), - ignoreClientQueryLog: _ignoreClientQueryLog, - ignoreClientStatistics: _ignoreClientStatistics, - updateIgnoreClientQueryLog: (v) => setState(() => _ignoreClientQueryLog = v), - updateIgnoreClientStatistics: (v) => setState(() => _ignoreClientStatistics = v), + child: ListView( + controller: _scrollController, + children: [ + if (!_nameValid || !_identifiersValid || !_dnsCacheValid) _Errors( + nameValid: _nameValid, + identifiersValid: _identifiersValid, + dnsCacheValid: _dnsCacheValid + ), + ClientForm( + isFullScreen: false, + client: widget.client, + nameController: nameController, + identifiersControllers: identifiersControllers, + selectedTags: selectedTags, + useGlobalSettingsFiltering: useGlobalSettingsFiltering, + enableFiltering: enableFiltering, + enableParentalControl: enableParentalControl, + enableSafeBrowsing: enableSafeBrowsing, + enableSafeSearch: enableSafeSearch, + safeSearch: safeSearch, + blockedServices: blockedServices, + updateBlockedServices: (v) => setState(() => blockedServices = v), + upstreamServers: upstreamServers, + updateUpstreamServers: (v) => setState(() => upstreamServers = v), + defaultSafeSearch: defaultSafeSearch, + useGlobalSettingsServices: useGlobalSettingsServices, + updateSelectedTags: (v) => setState(() => selectedTags = v), + updateIdentifiersControllers: (v) => setState(() => identifiersControllers = v), + enableDisableGlobalSettingsFiltering: enableDisableGlobalSettingsFiltering, + updateEnableFiltering: (v) => setState(() => enableFiltering = v), + updateEnableParentalControl: (v) => setState(() => enableParentalControl = v), + updateEnableSafeBrowsing: (v) => setState(() => enableSafeBrowsing = v), + updateEnableSafeSearch: (v) => setState(() => enableSafeSearch = v), + updateSafeSearch: (v) => setState(() => safeSearch = v), + updateUseGlobalSettingsServices: (v) => setState(() => useGlobalSettingsServices = v), + ignoreClientQueryLog: _ignoreClientQueryLog, + ignoreClientStatistics: _ignoreClientStatistics, + updateIgnoreClientQueryLog: (v) => setState(() => _ignoreClientQueryLog = v), + updateIgnoreClientStatistics: (v) => setState(() => _ignoreClientStatistics = v), + enableDnsCache: _enableDnsCache, + updateEnableDnsCache: (v) => setState(() => _enableDnsCache = v), + dnsCacheField: _dnsCacheField, + dnsCacheError: _dnsCacheError, + updateDnsCacheError: (v) => setState(() => _dnsCacheError = v) + ), + ], ), ) ], @@ -306,3 +366,56 @@ class _ClientScreenState extends State { } } +class _Errors extends StatelessWidget { + final bool nameValid; + final bool identifiersValid; + final bool dnsCacheValid; + + const _Errors({ + required this.nameValid, + required this.identifiersValid, + required this.dnsCacheValid, + }); + + @override + Widget build(BuildContext context) { + return Card( + elevation: 0, + color: Colors.red.withOpacity(0.2), + margin: const EdgeInsets.all(16), + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + AppLocalizations.of(context)!.errors, + style: const TextStyle( + fontSize: 18 + ), + ), + const SizedBox(height: 8), + if (!nameValid) Text( + "● ${AppLocalizations.of(context)!.nameInvalid}", + style: const TextStyle( + fontSize: 14 + ), + ), + if (!identifiersValid) Text( + "● ${AppLocalizations.of(context)!.oneIdentifierRequired}", + style: const TextStyle( + fontSize: 14 + ), + ), + if (!dnsCacheValid) Text( + "● ${AppLocalizations.of(context)!.dnsCacheNumber}", + style: const TextStyle( + fontSize: 14 + ), + ), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/clients/client/client_screen_functions.dart b/lib/screens/clients/client/client_screen_functions.dart index 1f292c6..f0338a1 100644 --- a/lib/screens/clients/client/client_screen_functions.dart +++ b/lib/screens/clients/client/client_screen_functions.dart @@ -74,22 +74,6 @@ void openSafeSearchModal({ ); } -bool checkValidValues({ - required TextEditingController nameController, - required List identifiersControllers -}) { - if ( - nameController.text != '' && - identifiersControllers.isNotEmpty && - identifiersControllers[0].controller.text != '' - ) { - return true; - } - else { - return false; - } -} - void openClientFormModal({ required BuildContext context, required double width, @@ -123,4 +107,10 @@ void openClientFormModal({ onDelete: onDelete, ), ); +} + +bool validateNumber(String value) { + if (value == "") return true; + final regexp = RegExp(r'^\d+$'); + return regexp.hasMatch(value); } \ No newline at end of file diff --git a/lib/screens/clients/client/identifiers_section.dart b/lib/screens/clients/client/identifiers_section.dart index 91a56eb..c5f9d4c 100644 --- a/lib/screens/clients/client/identifiers_section.dart +++ b/lib/screens/clients/client/identifiers_section.dart @@ -11,11 +11,11 @@ class IdentifiersSection extends StatefulWidget { final void Function() onCheckValidValues; const IdentifiersSection({ - Key? key, + super.key, required this.identifiersControllers, required this.onUpdateIdentifiersControllers, required this.onCheckValidValues - }) : super(key: key); + }); @override State createState() => _IdentifiersSectionState(); @@ -34,11 +34,11 @@ class _IdentifiersSectionState extends State { SectionLabel( label: AppLocalizations.of(context)!.identifiers, padding: const EdgeInsets.only( - left: 24, right: 24, top: 24, bottom: 12 + left: 16, right: 16, top: 24, bottom: 12 ) ), Padding( - padding: const EdgeInsets.only(right: 20), + padding: const EdgeInsets.only(right: 10), child: IconButton( onPressed: () => widget.onUpdateIdentifiersControllers([ ...widget.identifiersControllers, @@ -54,7 +54,7 @@ class _IdentifiersSectionState extends State { ), if (widget.identifiersControllers.isNotEmpty) ...widget.identifiersControllers.map((controller) => Padding( padding: const EdgeInsets.only( - top: 12, bottom: 12, left: 24, right: 20 + top: 12, bottom: 12, left: 16, right: 10 ), child: Row( crossAxisAlignment: CrossAxisAlignment.center, @@ -75,9 +75,9 @@ class _IdentifiersSectionState extends State { ), ), ), - const SizedBox(width: 16), + const SizedBox(width: 12), Padding( - padding: const EdgeInsets.only(bottom: 25), + padding: const EdgeInsets.only(bottom: 24), child: IconButton( onPressed: () => widget.onUpdateIdentifiersControllers( widget.identifiersControllers.where((e) => e.id != controller.id).toList() @@ -87,7 +87,7 @@ class _IdentifiersSectionState extends State { ) ], ), - )).toList(), + )), if (widget.identifiersControllers.isEmpty) Container( padding: const EdgeInsets.symmetric(vertical: 16), child: Text( diff --git a/lib/screens/clients/client/settings_tile.dart b/lib/screens/clients/client/settings_tile.dart index c2d6ede..9b26b2c 100644 --- a/lib/screens/clients/client/settings_tile.dart +++ b/lib/screens/clients/client/settings_tile.dart @@ -7,12 +7,12 @@ class SettingsTile extends StatelessWidget { final bool useGlobalSettingsFiltering; const SettingsTile({ - Key? key, + super.key, required this.label, required this.value, this.onChange, required this.useGlobalSettingsFiltering - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -23,10 +23,7 @@ class SettingsTile extends StatelessWidget { ? value != null ? () => onChange!(!value!) : null : null, child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 42, - vertical: 5 - ), + padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 6), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ diff --git a/lib/screens/clients/client/tags_section.dart b/lib/screens/clients/client/tags_section.dart index a6fa67c..8d63a0e 100644 --- a/lib/screens/clients/client/tags_section.dart +++ b/lib/screens/clients/client/tags_section.dart @@ -7,10 +7,10 @@ class TagsSection extends StatelessWidget { final void Function(List) onTagsSelected; const TagsSection({ - Key? key, + super.key, required this.selectedTags, required this.onTagsSelected - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -24,7 +24,7 @@ class TagsSection extends StatelessWidget { ) , child: Padding( padding: const EdgeInsets.symmetric( - vertical: 0, horizontal: 24 + vertical: 0, horizontal: 16 ), child: Row( children: [ diff --git a/lib/screens/clients/client/upstream_servers_section.dart b/lib/screens/clients/client/upstream_servers_section.dart index 97c8974..56fb7aa 100644 --- a/lib/screens/clients/client/upstream_servers_section.dart +++ b/lib/screens/clients/client/upstream_servers_section.dart @@ -11,11 +11,11 @@ class UpstreamServersSection extends StatefulWidget { final void Function(List) onUpdateUpstreamServers; const UpstreamServersSection({ - Key? key, + super.key, required this.upstreamServers, required this.onCheckValidValues, required this.onUpdateUpstreamServers - }) : super(key: key); + }); @override State createState() => _UpstreamServersSectionState(); @@ -33,10 +33,10 @@ class _UpstreamServersSectionState extends State { children: [ SectionLabel( label: AppLocalizations.of(context)!.upstreamServers, - padding: const EdgeInsets.all(24), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), ), Padding( - padding: const EdgeInsets.only(right: 20), + padding: const EdgeInsets.only(right: 12), child: IconButton( onPressed: () => setState(() => widget.upstreamServers.add( ControllerListItem( @@ -50,7 +50,7 @@ class _UpstreamServersSectionState extends State { ], ), if (widget.upstreamServers.isNotEmpty) ...widget.upstreamServers.map((controller) => Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), + padding: const EdgeInsets.only(left: 16, right: 12), child: Padding( padding: const EdgeInsets.only(bottom: 20), child: Row( @@ -71,7 +71,7 @@ class _UpstreamServersSectionState extends State { ), ), ), - const SizedBox(width: 16), + const SizedBox(width: 12), IconButton( onPressed: () => widget.onUpdateUpstreamServers( widget.upstreamServers.where((e) => e.id != controller.id).toList() @@ -81,7 +81,7 @@ class _UpstreamServersSectionState extends State { ], ), ), - )).toList(), + )), if (widget.upstreamServers.isEmpty) Container( padding: const EdgeInsets.symmetric(vertical: 16), child: Column( From b7943f53057b422b41d09e0865461b46fd010001 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 18 Dec 2023 02:31:09 +0100 Subject: [PATCH 032/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 9bd3484..554b898 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.13.0+117 +version: 2.14.0-beta.1+118 environment: sdk: '>=2.18.1 <3.0.0' From 62daa56b1be646868cf39672b4066b7a01df0a6e Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 20 Dec 2023 15:45:42 +0100 Subject: [PATCH 033/236] Fix copy log domain --- lib/screens/logs/log_tile.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index 6f4ea6b..f5db5ee 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -128,7 +128,7 @@ class LogTile extends StatelessWidget { child: OptionsMenu( onTap: (_) => onLogTap(log), borderRadius: BorderRadius.circular(28), - options: (v) => [ + options: (_) => [ if (log.question.name != null) MenuOption( title: domainBlocked == true ? AppLocalizations.of(context)!.unblockDomain @@ -141,10 +141,10 @@ class LogTile extends StatelessWidget { newStatus: domainBlocked == true ? 'unblock' : 'block' ) ), - MenuOption( + if (log.question.name != null) MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, - action: () => copyToClipboard(value: v, successMessage: AppLocalizations.of(context)!.copiedClipboard) + action: () => copyToClipboard(value: log.question.name!, successMessage: AppLocalizations.of(context)!.copiedClipboard) ) ], child: Container( From 565494e3f992582515b4f48ab4426169a246a58d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 20 Dec 2023 15:47:12 +0100 Subject: [PATCH 034/236] Fix parse ttl client --- lib/screens/settings/dns/dns_server_settings.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/screens/settings/dns/dns_server_settings.dart b/lib/screens/settings/dns/dns_server_settings.dart index ba04422..b13f593 100644 --- a/lib/screens/settings/dns/dns_server_settings.dart +++ b/lib/screens/settings/dns/dns_server_settings.dart @@ -156,7 +156,7 @@ class _DnsServerSettingsScreenState extends State { "blocking_mode": blockingMode, "blocking_ipv4": ipv4controller.text, "blocking_ipv6": ipv6controller.text, - "blocked_response_ttl": int.parse(_ttlController.text) + "blocked_response_ttl": int.tryParse(_ttlController.text) }); processModal.close(); From 3c42f790bda6498e61c78bf1e7ec9c36f7202155 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 20 Dec 2023 15:50:39 +0100 Subject: [PATCH 035/236] Fix --- lib/services/api_client.dart | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart index c2e1fca..b45622a 100644 --- a/lib/services/api_client.dart +++ b/lib/services/api_client.dart @@ -39,10 +39,17 @@ class ApiClientV2 { Future getServerVersion() async { final result = await HttpRequestClient.get(urlPath: '/status', server: server); if (result.successful == true) { - return ApiResponse( - successful: true, - content: jsonDecode(result.body!)['version'] - ); + try { + return ApiResponse( + successful: true, + content: jsonDecode(result.body!)['version'] + ); + } on FormatException { + return const ApiResponse(successful: false); + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); + return const ApiResponse(successful: false); + } } else { return const ApiResponse(successful: false); From af2b9f2704430c27493307ef645761d52258bdc1 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 20 Dec 2023 15:51:17 +0100 Subject: [PATCH 036/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 554b898..5edc2c7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.14.0-beta.1+118 +version: 2.14.0+119 environment: sdk: '>=2.18.1 <3.0.0' From 9a1cefdc26aa9117552022ab34405f3f5f759e53 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 20 Dec 2023 18:23:52 +0100 Subject: [PATCH 037/236] Added redirect to https warning --- lib/l10n/app_en.arb | 3 ++- lib/l10n/app_es.arb | 3 ++- lib/widgets/add_server/add_server_modal.dart | 24 +++++++++++++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 6bf0c27..3778a60 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -725,5 +725,6 @@ "nameInvalid": "Name is required", "oneIdentifierRequired": "At least one identifier is required", "dnsCacheNumber": "DNS cache size must be a number", - "errors": "Errors" + "errors": "Errors", + "redirectHttpsWarning": "If you have enabled \"Redirect to HTTPS automatically\" on your AdGuard Home server, you must select an HTTPS connection and use the HTTPS port of your server." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index a6a222b..03e3440 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -725,5 +725,6 @@ "nameInvalid": "Se requiere un nombre", "oneIdentifierRequired": "Se require al menos un identificador", "dnsCacheNumber": "El tamaño de caché de DNS debe ser un número", - "errors": "Errores" + "errors": "Errores", + "redirectHttpsWarning": "Si tienes activado \"Redireccionar a HTTPS automáticamente\" en tu servidor AdGuard Home, debes seleccionar una conexión HTTPS y utilizar el puerto de HTTPS de tu servidor." } \ No newline at end of file diff --git a/lib/widgets/add_server/add_server_modal.dart b/lib/widgets/add_server/add_server_modal.dart index e30d1e0..ac7d4a1 100644 --- a/lib/widgets/add_server/add_server_modal.dart +++ b/lib/widgets/add_server/add_server_modal.dart @@ -127,6 +127,7 @@ class _AddServerModalState extends State { if (status == AuthStatus.manyAttepts) return AppLocalizations.of(context)!.tooManyAttempts; if (status == AuthStatus.socketException || status == AuthStatus.timeoutException) return AppLocalizations.of(context)!.cantReachServer; if (status == AuthStatus.serverError) return AppLocalizations.of(context)!.serverError; + if (status == AuthStatus.handshakeException) return AppLocalizations.of(context)!.sslError; return AppLocalizations.of(context)!.unknownError; } @@ -429,6 +430,24 @@ class _AddServerModalState extends State { horizontal: 24, ), ), + Card( + margin: const EdgeInsets.only( + top: 16, left: 24, right: 24 + ), + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.warning_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + const SizedBox(width: 16), + Flexible(child: Text(AppLocalizations.of(context)!.redirectHttpsWarning)) + ], + ), + ), + ), if (connectionType == ConnectionType.https) Card( margin: const EdgeInsets.only( top: 16, left: 24, right: 24 @@ -437,7 +456,10 @@ class _AddServerModalState extends State { padding: const EdgeInsets.all(16), child: Row( children: [ - const Icon(Icons.info_rounded), + Icon( + Icons.info_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), const SizedBox(width: 16), Flexible(child: Text(AppLocalizations.of(context)!.sslWarning)) ], From 0980641746bc77bfea7c4a5696080bf2362fa130 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 16 Jan 2024 18:25:20 +0100 Subject: [PATCH 038/236] Updated libraries --- macos/Podfile.lock | 14 +++--- pubspec.lock | 120 ++++++++++++++++++++++++--------------------- pubspec.yaml | 2 +- 3 files changed, 72 insertions(+), 64 deletions(-) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 32c37ec..9d30918 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -9,13 +9,13 @@ PODS: - FMDB/standard (2.7.5) - package_info_plus (0.0.1): - FlutterMacOS - - Sentry/HybridSDK (8.15.2): - - SentryPrivate (= 8.15.2) + - Sentry/HybridSDK (8.17.2): + - SentryPrivate (= 8.17.2) - sentry_flutter (0.0.1): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.15.2) - - SentryPrivate (8.15.2) + - Sentry/HybridSDK (= 8.17.2) + - SentryPrivate (8.17.2) - sqflite (0.0.2): - FlutterMacOS - FMDB (>= 2.7.5) @@ -83,9 +83,9 @@ SPEC CHECKSUMS: FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce - Sentry: 6f5742b4c47c17c9adcf265f6f328cf4a0ed1923 - sentry_flutter: 2c309a1d4b45e59d02cfa15795705687f1e2081b - SentryPrivate: b2f7996f37781080f04a946eb4e377ff63c64195 + Sentry: 64a9f9c3637af913adcf53deced05bbe452d1410 + sentry_flutter: 57912cf425e09398bdf47f38842a1fcb9836f1be + SentryPrivate: 024c6fed507ac39ae98e6d087034160f942920d5 sqflite: a5789cceda41d54d23f31d6de539d65bb14100ea sqlite3: 6e2d4a4879854d0ec86b476bf3c3e30870bac273 sqlite3_flutter_libs: a25f3a0f522fdcd8fef6a4a50a3d681dd43d8dea diff --git a/pubspec.lock b/pubspec.lock index 963ce6f..cf61106 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: "direct main" description: name: animations - sha256: "708e4b68c23228c264b038fe7003a2f5d01ce85fc64d8cae090e86b27fcea6c5" + sha256: d3d6dcfb218225bbe68e87ccf6378bbb2e32a94900722c5f81611dad089911cb url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.0.11" ansicolor: dependency: transitive description: @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: archive - sha256: "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b" + sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d" url: "https://pub.dev" source: hosted - version: "3.4.9" + version: "3.4.10" args: dependency: transitive description: @@ -77,10 +77,10 @@ packages: dependency: transitive description: name: cli_util - sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7 + sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 url: "https://pub.dev" source: hosted - version: "0.4.0" + version: "0.4.1" clock: dependency: transitive description: @@ -157,10 +157,10 @@ packages: dependency: "direct main" description: name: dynamic_color - sha256: "8b8bd1d798bd393e11eddeaa8ae95b12ff028bf7d5998fc5d003488cd5f4ce2f" + sha256: a866f1f8947bfdaf674d7928e769eac7230388a2e7a2542824fad4bb5b87be3b url: "https://pub.dev" source: hosted - version: "1.6.8" + version: "1.6.9" equatable: dependency: transitive description: @@ -201,14 +201,22 @@ packages: url: "https://pub.dev" source: hosted version: "7.0.0" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" fl_chart: dependency: "direct main" description: name: fl_chart - sha256: "5a74434cc83bf64346efb562f1a06eefaf1bcb530dc3d96a104f631a1eff8d79" + sha256: fe6fec7d85975a99c73b9515a69a6e291364accfa0e4a5b3ce6de814d74b9a1c url: "https://pub.dev" source: hosted - version: "0.65.0" + version: "0.66.0" flutter: dependency: "direct main" description: flutter @@ -263,18 +271,18 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: "35108526a233cc0755664d445f8a6b4b61e6f8fe993b3658b80b4a26827fc196" + sha256: "30088ce826b5b9cfbf9e8bece34c716c8a59fa54461dcae1e4ac01a94639e762" url: "https://pub.dev" source: hosted - version: "0.6.18+2" + version: "0.6.18+3" flutter_native_splash: dependency: "direct dev" description: name: flutter_native_splash - sha256: "141b20f15a2c4fe6e33c49257ca1bc114fc5c500b04fcbc8d75016bb86af672f" + sha256: "9cdb5d9665dab5d098dc50feab74301c2c228cd02ca25c9b546ab572cebcd6af" url: "https://pub.dev" source: hosted - version: "2.3.8" + version: "2.3.9" flutter_reorderable_list: dependency: "direct main" description: @@ -346,10 +354,10 @@ packages: dependency: transitive description: name: image - sha256: "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271" + sha256: "004a2e90ce080f8627b5a04aecb4cdfac87d2c3f3b520aa291260be5a32c033d" url: "https://pub.dev" source: hosted - version: "4.1.3" + version: "4.1.4" intl: dependency: "direct main" description: @@ -490,18 +498,18 @@ packages: dependency: transitive description: name: plugin_platform_interface - sha256: f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8 + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.7" + version: "2.1.8" pointycastle: dependency: transitive description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" url: "https://pub.dev" source: hosted - version: "3.7.3" + version: "3.7.4" provider: dependency: "direct main" description: @@ -522,18 +530,18 @@ packages: dependency: transitive description: name: sentry - sha256: e7ded42974bac5f69e4ca4ddc57d30499dd79381838f24b7e8fd9aa4139e7b79 + sha256: "89e426587b0879e53c46a0aae0eb312696d9d2d803ba14b252a65cc24b1416a2" url: "https://pub.dev" source: hosted - version: "7.13.2" + version: "7.14.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: d6f55ec7a1f681784165021f749007712a72ff57eadf91e963331b6ae326f089 + sha256: fd089ee4e75a927be037c56815a0a54af5a519f52b803a5ffecb589bb36e2401 url: "https://pub.dev" source: hosted - version: "7.13.2" + version: "7.14.0" sky_engine: dependency: transitive description: flutter @@ -567,26 +575,26 @@ packages: dependency: transitive description: name: sqflite_common - sha256: bb4738f15b23352822f4c42a531677e5c6f522e079461fd240ead29d8d8a54a6 + sha256: "76db4d324c8cbb16ca5b60ad2f3d25cec953107c93ae65aafa480d3e6fb69f14" url: "https://pub.dev" source: hosted - version: "2.5.0+2" + version: "2.5.2-1" sqflite_common_ffi: dependency: "direct main" description: name: sqflite_common_ffi - sha256: "873677ee78738a723d1ded4ccb23980581998d873d30ee9c331f6a81748663ff" + sha256: d0e3f0d04fdf668e57db8db1df758f56c4193cb429092c708e7bfcc6ab04b27e url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" sqlite3: dependency: transitive description: name: sqlite3 - sha256: "8922805564b78eb7aa9386c10056d377a541ac7270dc6a1589176277ebb4d15d" + sha256: c4a4c5a4b2a32e2d0f6837b33d7c91a67903891a5b7dbe706cf4b1f6b0c798c5 url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.0" sqlite3_flutter_libs: dependency: "direct main" description: @@ -631,10 +639,10 @@ packages: dependency: transitive description: name: synchronized - sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60" + sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.0+1" term_glyph: dependency: transitive description: @@ -671,34 +679,34 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: e9aa5ea75c84cf46b3db4eea212523591211c3cf2e13099ee4ec147f54201c86 + sha256: d25bb0ca00432a5e1ee40e69c36c85863addf7cc45e433769d61bed3fe81fd96 url: "https://pub.dev" source: hosted - version: "6.2.2" + version: "6.2.3" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def" + sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f" url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.2.2" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3 + sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.2.4" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: "9f2d390e096fdbe1e6e6256f97851e51afc2d9c423d3432f1d6a02a8a9a8b9fd" + sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.1" url_launcher_macos: dependency: transitive description: @@ -711,58 +719,58 @@ packages: dependency: transitive description: name: url_launcher_platform_interface - sha256: "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50" + sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.1" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "7286aec002c8feecc338cc33269e96b73955ab227456e9fb2a91f7fab8a358e9" + sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "7754a1ad30ee896b265f8d14078b0513a4dba28d358eabb9d5f339886f4a1adc" + sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.1" uuid: dependency: "direct main" description: name: uuid - sha256: df5a4d8f22ee4ccd77f8839ac7cb274ebc11ef9adcce8b92be14b797fe889921 + sha256: cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8 url: "https://pub.dev" source: hosted - version: "4.2.1" + version: "4.3.3" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: "0f0c746dd2d6254a0057218ff980fc7f5670fd0fcf5e4db38a490d31eed4ad43" + sha256: "18f6690295af52d081f6808f2f7c69f0eed6d7e23a71539d75f4aeb8f0062172" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.9+2" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "0edf6d630d1bfd5589114138ed8fada3234deacc37966bec033d3047c29248b7" + sha256: "531d20465c10dfac7f5cd90b60bbe4dd9921f1ec4ca54c83ebb176dbacb7bb2d" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.9+2" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: d24333727332d9bd20990f1483af4e09abdb9b1fc7c3db940b56ab5c42790c26 + sha256: "03012b0a33775c5530576b70240308080e1d5050f0faf000118c20e6463bc0ad" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.9+2" vector_math: dependency: transitive description: @@ -783,10 +791,10 @@ packages: dependency: transitive description: name: win32 - sha256: b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574 + sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" url: "https://pub.dev" source: hosted - version: "5.1.1" + version: "5.2.0" win32_registry: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 5edc2c7..18406dd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -48,7 +48,7 @@ dependencies: device_info_plus: ^9.1.1 uuid: ^4.2.1 expandable: ^5.0.1 - fl_chart: ^0.65.0 + fl_chart: ^0.66.0 flutter_web_browser: ^0.17.1 flutter_svg: ^2.0.9 percent_indicator: ^4.2.3 From 26086269e5807382ba7dd943c18c8f5c73ab5ff9 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 16 Jan 2024 18:25:38 +0100 Subject: [PATCH 039/236] Fix save fallback dns when no dns is added --- lib/providers/dns_provider.dart | 2 +- lib/screens/settings/dns/fallback_dns.dart | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/providers/dns_provider.dart b/lib/providers/dns_provider.dart index c5809af..84b86cd 100644 --- a/lib/providers/dns_provider.dart +++ b/lib/providers/dns_provider.dart @@ -119,7 +119,7 @@ class DnsProvider with ChangeNotifier { if (result.successful == true) { DnsInfo data = dnsInfo!; - data.bootstrapDns = List.from(value['fallback_dns']); + data.fallbackDns = List.from(value['fallback_dns']); setDnsInfoData(data); return result; } diff --git a/lib/screens/settings/dns/fallback_dns.dart b/lib/screens/settings/dns/fallback_dns.dart index 4df30c9..dcae0a2 100644 --- a/lib/screens/settings/dns/fallback_dns.dart +++ b/lib/screens/settings/dns/fallback_dns.dart @@ -34,11 +34,7 @@ class _FallbackDnsScreenState extends State { } void checkValidValues() { - if ( - fallbackControllers.isNotEmpty && - fallbackControllers.every((element) => element['controller'].text != '') && - fallbackControllers.every((element) => element['error'] == null) - ) { + if (fallbackControllers.every((element) => element['error'] == null)) { setState(() => validValues = true); } else { From 61d521f9f9f805b8fdc221973a069701cbd7c339 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 16 Jan 2024 18:25:47 +0100 Subject: [PATCH 040/236] Change logs breaking width --- lib/screens/logs/logs.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/screens/logs/logs.dart b/lib/screens/logs/logs.dart index 757c949..560db9c 100644 --- a/lib/screens/logs/logs.dart +++ b/lib/screens/logs/logs.dart @@ -21,7 +21,7 @@ class _LogsState extends State { Widget build(BuildContext context) { return LayoutBuilder( builder: (context, constraints) { - if (constraints.maxWidth > 1000) { + if (constraints.maxWidth > 800) { return Material( color: Colors.transparent, child: Row( From 236124d246e0850929258e739b2dbfd8eef27688 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 16 Jan 2024 18:45:37 +0100 Subject: [PATCH 041/236] Updated readme, added key properties sample and updated app version --- README.md | 42 +++++++++++++++++++++-------------- android/key.properties.sample | 4 ++++ pubspec.yaml | 2 +- 3 files changed, 30 insertions(+), 18 deletions(-) create mode 100644 android/key.properties.sample diff --git a/README.md b/README.md index 0a4af9d..a81e1dd 100644 --- a/README.md +++ b/README.md @@ -44,18 +44,28 @@ On [this repository](https://github.com/JuanRodenas/Pihole_list) you can find a ## Generate production build
    +
  • + Prerequisites +
      +
    1. Open pubspec.yaml and change the version name and the version number.
    2. +
    3. Run flutter clean.
    4. +
    5. Run flutter pub get.
    6. +
    +
  • +
  • + Android +
      +
    1. Make sure you have your key.properties file at android/, with all the required values of your signing key correctly set up.
    2. +
    3. Make sure you have your keystore file at android/app.
    4. +
    5. Run flutter build apk --release to compile the APK.
    6. +
    7. The .apk package is located at build/app/outputs/flutter-apk/app-release.apk.
    8. +
    +
  • macOS
      -
    1. flutter clean
    2. -
    3. flutter pub get
    4. -
    5. flutter build macos --release
    6. -
    7. Open macos/Runner.xcworkspace on Xcode
    8. -
    9. Make sure all the pods have the minimum deployment version at 10.14
    10. -
    11. Select Runner > Targets Runner
    12. -
    13. Make sure the Version and Build numbers are correct
    14. -
    15. Click on Product menu and on Archive
    16. -
    17. Select the first on the list and click on Distribute app, select Copy App and click on Next
    18. +
    19. Run flutter build macos --release to compile the production build.
    20. +
    21. The .app package is located at build/macos/Build/Products/Release/AdGuard Home Manager.app.
  • @@ -67,24 +77,22 @@ On [this repository](https://github.com/JuanRodenas/Pihole_list) you can find a Build
      -
    1. Open debian.yaml file inside debian/ and update the version number
    2. +
    3. Open debian.yaml file inside debian/ and update the version number
    4. run rps build linux
    5. -
    6. The .tar.gz is at build/linux/x64/release/bundle
    7. -
    8. The .deb package is at debian/packages
    9. +
    10. The .tar.gz is at build/linux/x64/release/bundle
    11. +
    12. The .deb package is at debian/packages
  • Windows
      -
    1. flutter clean
    2. -
    3. flutter pub get
    4. -
    5. flutter build windows
    6. +
    7. Run flutter build windows --release.
    8. Open Inno Setup Compiler application and load the script
    9. -
    10. The script is located at windows/innosetup_installer_builder.iss
    11. +
    12. The script is located at windows/innosetup_installer_builder.iss
    13. Update the version number and save the changes
    14. Click on the Compile button
    15. -
    16. The installer will be generated at build/windows/aghm_installer.exe
    17. +
    18. The installer will be generated at build/windows/aghm_installer.exe.
  • diff --git a/android/key.properties.sample b/android/key.properties.sample new file mode 100644 index 0000000..b51dc2c --- /dev/null +++ b/android/key.properties.sample @@ -0,0 +1,4 @@ +storePassword= # keystore password # +keyPassword= # keystore key password # +keyAlias= # key alias # +storeFile= # ./keystore-file-name.jks # \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index 18406dd..e4dbaa8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.14.0+119 +version: 2.14.1+120 environment: sdk: '>=2.18.1 <3.0.0' From d93eb504b069ec1999c4371e51370a1ea69d2483 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 16 Jan 2024 19:06:47 +0100 Subject: [PATCH 042/236] Updated workflow --- .github/workflows/release-stable.yaml | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-stable.yaml b/.github/workflows/release-stable.yaml index 2d8f0e8..220c56d 100644 --- a/.github/workflows/release-stable.yaml +++ b/.github/workflows/release-stable.yaml @@ -172,7 +172,7 @@ jobs: - name: Generate .deb package run: flutter_to_debian - name: Move .deb package to project root - run: mv debian/packages/AdGuardHomeManager_${{ env.VERSION_NAME }}_amd64.deb AdGuardHomeManager_${{ env.VERSION_NAME }}_Linux_amd64.deb + run: mv build/linux/x64/release/debian/AdGuardHomeManager_${{ env.VERSION_NAME }}_amd64.deb AdGuardHomeManager_${{ env.VERSION_NAME }}_Linux_amd64.deb - name: Generate .tar.gz package uses: a7ul/tar-action@v1.1.3 id: compress diff --git a/README.md b/README.md index a81e1dd..930d090 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ On [this repository](https://github.com/JuanRodenas/Pihole_list) you can find a
  • Open debian.yaml file inside debian/ and update the version number
  • run rps build linux
  • The .tar.gz is at build/linux/x64/release/bundle
  • -
  • The .deb package is at debian/packages
  • +
  • The .deb package is at build/linux/x64/release/debian/
  • From 2693f96cf25ec043ec0ae2abf95b551aa9fdd7cd Mon Sep 17 00:00:00 2001 From: Dmitry Nagibin Date: Thu, 18 Jan 2024 23:18:47 +0500 Subject: [PATCH 043/236] Russian_translation: updated for app version 2.14.1 --- lib/l10n/app_ru.arb | 128 +++++++++++++++++++++++++++++++++----------- 1 file changed, 97 insertions(+), 31 deletions(-) diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 78b3e37..4d57935 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -4,6 +4,7 @@ "connect": "Подключиться", "servers": "Серверы", "createConnection": "Создать подключение", + "editConnection": "Edit connection", "name": "Имя", "ipDomain": "IP-адрес или домен", "path": "Путь", @@ -22,7 +23,7 @@ "nameNotEmpty": "Имя не может быть пустым", "invalidUsernamePassword": "Неверный логин или пароль", "tooManyAttempts": "Слишком много попыток. Попробуйте позднее.", - "cantReachServer": "Не удаётся установить соединение с сервером. Проверьте настройки подключения", + "cantReachServer": "Не удаётся установить соединение с сервером. Проверьте настройки подключения.", "sslError": "Ошибка SSL. Перейдите в «Настройки» > «Дополнительные настройки» и активируйте «Не проверять SSL-сертификат».", "unknownError": "Неизвестная ошибка", "connectionNotCreated": "Не удалось создать подключение", @@ -30,7 +31,7 @@ "connected": "Подключено", "selectedDisconnected": "Выбран, но отключён", "connectionDefaultSuccessfully": "Подключение успешно установлено как «подключение по умолчанию».", - "connectionDefaultFailed": "Подключение не удалось установить «подключением по умолчанию»", + "connectionDefaultFailed": "Не удалось установить «подключением по умолчанию».", "noSavedConnections": "Нет сохранённых подключений", "cannotConnect": "Не удается подключиться к серверу", "connectionRemoved": "Подключение удалено успешно", @@ -50,13 +51,13 @@ "parentalFilteringWidget": "Родительский контроль", "safeSearchWidget": "Безопасный поиск", "ruleFiltering": "Правила фильтрации", - "safeBrowsing": "Безопасная навигация", - "parentalFiltering": "Родительский контроль", + "safeBrowsing": "Безопасная\nнавигация", + "parentalFiltering": "Родительский\nконтроль", "safeSearch": "Безопасный поиск", "serverStatusNotRefreshed": "Не удалось обновить статус сервера", "loadingStatus": "Загрузка...", "errorLoadServerStatus": "Не удалось получить статус сервера", - "topQueriedDomains": "Часто запрашиваемые домены", + "topQueriedDomains": "Часто запрашиваемые\nдомены", "viewMore": "Показать больше", "topClients": "Частые клиенты", "topBlockedDomains": "Часто блокируемые домены", @@ -79,8 +80,8 @@ "appVersion": "Версия приложения", "createdBy": "Автор", "clients": "Клиенты", - "allowed": "Разрешён", - "blocked": "Заблокирован", + "allowed": "Обработан", + "blocked": "Заблокировано", "noClientsList": "Список клиентов пуст", "activeClients": "Активные", "removeClient": "Удалить запись", @@ -104,30 +105,30 @@ "dontCheckCertificate": "Не проверять SSL-сертификат", "dontCheckCertificateDescription": "Переопределяет проверку SSL-сертификата сервера", "advancedSetupDescription": "Расширенные параметры", - "settingsUpdatedSuccessfully": "Настройки успешно обновлены", - "cannotUpdateSettings": "Не удалось обновить настройки", + "settingsUpdatedSuccessfully": "Настройки успешно обновлены.", + "cannotUpdateSettings": "Не удалось обновить настройки.", "restartAppTakeEffect": "Перезапустите приложение", "loadingLogs": "Загрузка журнала...", "logsNotLoaded": "Не удалось загрузить журнал", "processed": "Обработан\nБез списка", "processedRow": "Обработан", "blockedBlacklist": "Заблокирован\nЧёрный список", - "blockedBlacklistRow": "Заблокирован (чёрный список)", + "blockedBlacklistRow": "Заблокирован Чёрным списком", "blockedSafeBrowsing": "Заблокирован\nБезопасная навигация", - "blockedSafeBrowsingRow": "Блок. (безопасная навигация)", + "blockedSafeBrowsingRow": "Заблокировано Безопасной навигацией", "blockedParental": "Заблокирован\nРодительский контроль", - "blockedParentalRow": "Блок. (родительский контроль)", + "blockedParentalRow": "Заблокировано Родительским контролем", "blockedInvalid": "Заблокировано\nНеверный", "blockedInvalidRow": "Заблокирован (Неверный)", "blockedSafeSearch": "Заблокирован\nБезопасный поиск", - "blockedSafeSearchRow": "Блок. (безопасный поиск)", + "blockedSafeSearchRow": "Заблокировано Безопасным поиском", "blockedService": "Заблокирован\nЗаблокированный сервис", "blockedServiceRow": "Заблокирован (заблокированный сервис)", - "processedWhitelist": "Обработан\nБелый список", - "processedWhitelistRow": "Разрешён (белый список)", + "processedWhitelist": "Разрешён\nБелый список", + "processedWhitelistRow": "Разрешён Белым списком", "processedError": "Обработан\nОшибка", "processedErrorRow": "Обработан (ошибка)", - "rewrite": "Переписать", + "rewrite": "Переписан", "status": "Статус", "result": "Результат", "time": "Время", @@ -169,14 +170,14 @@ "search": "Поиск", "dnsQueries": "DNS-запросы", "average": "Среднее", - "blockedFilters": "Заблокировано фильтрами", - "malwarePhisingBlocked": "Заблокированные вредоносные и фишинговые сайты", - "blockedAdultWebsites": "Заблокированные «взрослые» сайты", + "blockedFilters": "Заблокировано\nфильтрами", + "malwarePhishingBlocked": "Заблокированные\nвредоносные и\nфишинговые сайты", + "blockedAdultWebsites": "Заблокированные\n«взрослые» сайты", "generalSettings": "Основные настройки", "generalSettingsDescription": "Различные настройки", "hideZeroValues": "Скрывать нулевые значения", "hideZeroValuesDescription": "Скрывать блоки с нулевыми значениями на домашнем экране", - "webAdminPanel": "Веб-панель админ.", + "webAdminPanel": "Веб-панель администрирования", "visitGooglePlay": "Посетить страницу в Google Play", "gitHub": "Исходный код приложения доступен на GitHub", "blockClient": "Заблокировать клиента", @@ -209,14 +210,14 @@ "clientNotDeleted": "Не удалось удалить клиента", "options": "Параметры", "loadingFilters": "Загрузка фильтров...", - "filtersNotLoaded": "Не удалось загрузить фильтры", + "filtersNotLoaded": "Не удалось загрузить фильтры.", "whitelists": "Белые списки DNS", "blacklists": "Чёрные списки DNS", "rules": "Количество правил", "customRules": "Пользовательские правила фильтрации", - "enabledRules": "Включенные правила", - "enabled": "Включено", - "disabled": "Отключено", + "enabledRules": "Активных правил", + "enabled": "Включён", + "disabled": "Отключён", "rule": "Правило", "addCustomRule": "Добавить пользовательское правило фильтрации", "removeCustomRule": "Удалить пользовательское правило фильтрации", @@ -268,7 +269,7 @@ "httpPort": "HTTP-порт", "protectionEnabled": "Защита активна", "dhcpAvailable": "DHCP доступен", - "serverRunning": "Сервер запущен ", + "serverRunning": "Сервер запущен", "serverVersion": "Версия сервера", "serverLanguage": "Язык сервера", "yes": "Да", @@ -303,7 +304,7 @@ "errorCheckingHost": "Не удалось проверить хост", "block": "Запретить", "unblock": "Разрешить", - "custom": "Custom", + "custom": "Своё правило", "addImportant": "Добавить $important", "howCreateRules": "Как создать пользовательские правила", "examples": "Примеры", @@ -317,6 +318,7 @@ "enablingList": "Включение списка...", "disablingList": "Отключение списка...", "disableFiltering": "Отключить фильтрацию", + "savingList": "Сохранение списка...", "enablingFiltering": "Включение фильтрации...", "disablingFiltering": "Отключение фильтрации...", "filteringStatusUpdated": "Статус фильтрации успешно обновлен", @@ -460,7 +462,7 @@ "defaultMode": "Стандартный", "defaultDescription": "Отвечает с нулевым IP-адресом, (0.0.0.0 для A; :: для AAAA) когда заблокировано правилом в стиле Adblock; отвечает с IP-адресом, указанным в правиле, когда заблокировано правилом в стиле файлов hosts", "refusedDescription": "Отвечает с кодом REFUSED", - "nxdomainDescription": "Отвечает с кодом NXDOMAIN ", + "nxdomainDescription": "Отвечает с кодом NXDOMAIN", "nullIp": "Нулевой IP", "nullIpDescription": "Отвечает с нулевым IP-адресом (0.0.0.0 для A; :: для AAAA)", "customIp": "Пользовательский IP", @@ -626,11 +628,11 @@ "ipLogs": "IP-адреса в записях журнала", "ipLogsDescription": "Всегда показывать IP-адрес в записях журнала вместо имени клиента", "application": "Приложение", - "combinedChart": "Объединить графики", + "combinedChart": "Объединять графики", "combinedChartDescription": "Комбинирует все графики в один", "statistics": "Статистика", "errorLoadFilters": "Ошибка при загрузке фильтров.", - "clientRemovedSuccessfully": "Запись успешно удалена", + "clientRemovedSuccessfully": "Запись успешно удалена.", "editRewriteRule": "Редактировать правило", "dnsRewriteRuleUpdated": "Правило перезаписи DNS успешно обновлено", "dnsRewriteRuleNotUpdated": "Не удалось обновить правило перезаписи DNS", @@ -660,5 +662,69 @@ "topItemsOrderDescription": "Упорядочьте расположение блоков на главном экране", "topItemsReorderInfo": "Чтобы менять порядок элементов, удерживая элемент, перетащите его на новое место.", "discardChanges": "Отменить изменения", - "discardChangesDescription": "Вы уверены, что хотите отменить изменения?" -} \ No newline at end of file + "discardChangesDescription": "Вы уверены, что хотите отменить изменения?", + "others": "Прочее", + "showChart": "Показать график", + "hideChart": "Скрыть график", + "showTopItemsChart": "Показывать ТОП-графики на главной странице", + "showTopItemsChartDescription": "По умолчанию на главной странице отображаются круговые диаграммы для часто запрашиваемых доменов, частых клиентов и прочего. Влияет только на просмотр с мобильного устройства", + "openMenu": "Открыть меню", + "closeMenu": "Закрыть меню", + "openListUrl": "Открыть URL списка", + "selectionMode": "Режим выбора", + "enableDisableSelected": "Включить или выключить выбранные элементы", + "deleteSelected": "Удалить выбранные элементы", + "deleteSelectedLists": "Удалить выбранные списки", + "allSelectedListsDeletedSuccessfully": "Все выбранные списки успешно удалены.", + "deletionResult": "Результат удаления", + "deletingLists": "Удаление списков...", + "failedElements": "Неудачные элементы", + "processingLists": "Обработка списков...", + "enableDisableResult": "Включить или выключить результат", + "selectedListsEnabledDisabledSuccessfully": "Все выбранные списки были включены или выключены успешно", + "sslWarning": "Если используется HTTPS-соединение с самоподписным сертификатом, то должна быть активирована опция «Не проверять SSL-сертификат» в разделе «Настройки» > «Дополнительные настройки».", + "unsupportedServerVersion": "Неподдерживаемая версия сервера", + "unsupportedServerVersionMessage": "Данная версия AdGuard Home устарела и не поддерживается AdGuard Home Manager. Чтобы использовать данное приложение, необходимо выполнить обновление AdGuard Home до актуальной версии.", + "yourVersion": "Ваша версия: {version}", + "minimumRequiredVersion": "Минимальная требуемая версия: {version}", + "topUpstreams": "Часто запрашиваемые\nupstream-серверы", + "averageUpstreamResponseTime": "Среднее время отклика\nupstream-сервера", + "dhcpNotAvailable": "DHCP сервер не доступен.", + "osServerInstalledIncompatible": " Операционная система, в которой установлен сервер, несовместима с этой функцией.", + "resetSettings": "Сбросить настройки", + "resetEncryptionSettingsDescription": "Вы уверены, что хотите сбросить настройки шифрования к значениям по умолчанию?", + "resettingConfig": "Сброс конфигурации...", + "configurationResetSuccessfully": "Конфигурация успешно сброшена", + "configurationResetError": "Не удалось сбросить конфигурацию", + "testUpstreamDnsServers": "Тест upstream DNS-серверов", + "errorTestUpstreamDns": "Ошибка при тестировании upstream DNS-серверов.", + "useCustomIpEdns": "Use custom IP for EDNS", + "useCustomIpEdnsDescription": "Использовать собственный IP-адрес для EDNS", + "sortingOptions": "Параметры сортировки", + "fromHighestToLowest": "От большего к меньшему", + "fromLowestToHighest": "От меньшего к большему", + "queryLogsAndStatistics": "Журналы запросов и статистика", + "ignoreClientQueryLog": "Игнорировать этого клиента в журнале запросов", + "ignoreClientStatistics": "Игнорировать этого клиента в статистике", + "savingChanges": "Сохранение изменений...", + "fallbackDnsServers": "Резервные DNS-серверы", + "fallbackDnsServersDescription": "Настроить резервные DNS-серверы", + "fallbackDnsServersInfo": "Список резервных DNS-серверов, используемых в тех случаях, когда вышестоящие DNS-серверы недоступны. Синтаксис такой же, как и в поле Upstream DNS-серверы выше.", + "noFallbackDnsAdded": "Резервные DNS-серверы не добавлены.", + "blockedResponseTtl": "TTL заблокированного ответа", + "blockedResponseTtlDescription": "Указывает, в течение скольких секунд клиенты должны кешировать отфильтрованный ответ", + "invalidValue": "Недопустимое значение", + "noDataChart": "Нет данных для отображения графика.", + "noData": "Нет данных", + "unblockClient": "Разблокировать клиента", + "blockingClient": "Блокировка клиента...", + "unblockingClient": "Снятие блокироваки с клиента...", + "upstreamDnsCacheConfiguration": "Конфигурация кеша upstream DNS-серверов", + "enableDnsCachingClient": "Включить кеширование для пользовательской конфигурации upstream-серверов этого клиента", + "dnsCacheSize": "Размер DNS-кеша", + "nameInvalid": "Требуется имя", + "oneIdentifierRequired": "Требуется по крайней мере один идентификатор", + "dnsCacheNumber": "Размер кэша DNS должен быть числом", + "errors": "Ошибки", + "redirectHttpsWarning": "Если в AdGuard Home активирована опция «Автоматически перенаправлять на HTTPS», то необходимо использовать HTTPS-соединение и HTTPS-порт." +} From cf7bfa44f82219b80502cf5003052060eb366954 Mon Sep 17 00:00:00 2001 From: Dmitry Nagibin Date: Thu, 18 Jan 2024 23:28:36 +0500 Subject: [PATCH 044/236] Russian_translation: fix for app version 2.14.1 --- lib/l10n/app_ru.arb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 4d57935..c0a6063 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -68,7 +68,7 @@ "systemDefined": "Системная тема", "close": "Закрыть", "connectedTo": "Подключено к:", - "selectedServer": "Selected server:", + "selectedServer": "Выбранный сервер:", "noServerSelected": "Нет выбранных серверов", "manageServer": "Управление сервером", "allProtections": "Защита", @@ -621,7 +621,7 @@ "copyListUrl": "Скопировать URL", "listUrlCopied": "URL списка сохранён в буфер обмена", "unsupportedVersion": "Неподдерживаемая версия", - "unsupprtedVersionMessage": "Поддержка сервера версии {version} не гарантируется. Приложение может работать нестабильно с данной версией сервера.\n\nПриложение AdGuard Home Manager предназначено для работы со стабильными версиями сервера AdGuard Home. Приложение может работать с альфа и бета версиями сервера, но совместимость и стабильность не гарантируются.", + "unsupprtedVersionMessage": "Поддержка AdGuard Home версии {version} не гарантируется. Приложение может работать нестабильно с данной версией сервера.\n\nПриложение AdGuard Home Manager предназначено для работы со стабильными версиями AdGuard Home. Приложение может работать с альфа и бета версиями сервера, но совместимость и стабильность не гарантируются.", "iUnderstand": "Продолжить", "appUpdates": "Обновления приложений", "usingLatestVersion": "Вы используете последнюю версию", @@ -682,7 +682,7 @@ "processingLists": "Обработка списков...", "enableDisableResult": "Включить или выключить результат", "selectedListsEnabledDisabledSuccessfully": "Все выбранные списки были включены или выключены успешно", - "sslWarning": "Если используется HTTPS-соединение с самоподписным сертификатом, то должна быть активирована опция «Не проверять SSL-сертификат» в разделе «Настройки» > «Дополнительные настройки».", + "sslWarning": "Если используется HTTPS-соединение с самоподписанным сертификатом, то должна быть активирована опция «Не проверять SSL-сертификат» в разделе «Настройки» > «Дополнительные настройки».", "unsupportedServerVersion": "Неподдерживаемая версия сервера", "unsupportedServerVersionMessage": "Данная версия AdGuard Home устарела и не поддерживается AdGuard Home Manager. Чтобы использовать данное приложение, необходимо выполнить обновление AdGuard Home до актуальной версии.", "yourVersion": "Ваша версия: {version}", From 65ee702b8962f00a401783cc5ea6864d0105ff37 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 24 Jan 2024 13:07:25 +0100 Subject: [PATCH 045/236] Improved theme color selection for desktop --- .../settings/customization/color_item.dart | 14 +- .../settings/customization/customization.dart | 153 +++++++++--------- 2 files changed, 90 insertions(+), 77 deletions(-) diff --git a/lib/screens/settings/customization/color_item.dart b/lib/screens/settings/customization/color_item.dart index 0d6ea03..d753bf5 100644 --- a/lib/screens/settings/customization/color_item.dart +++ b/lib/screens/settings/customization/color_item.dart @@ -1,23 +1,31 @@ import 'package:flutter/material.dart'; class ColorItem extends StatelessWidget { + final int index; + final int total; final Color color; final int numericValue; final int? selectedValue; final void Function(int) onChanged; const ColorItem({ - Key? key, + super.key, + required this.index, + required this.total, required this.color, required this.numericValue, required this.selectedValue, required this.onChanged - }) : super(key: key); + }); @override Widget build(BuildContext context) { return Padding( - padding: const EdgeInsets.all(10), + padding: index == 0 + ? const EdgeInsets.only(top: 10, right: 10, bottom: 10) + : index == total-1 + ? const EdgeInsets.only(top: 10, bottom: 10, left: 10) + : const EdgeInsets.all(10), child: Material( borderRadius: BorderRadius.circular(50), child: InkWell( diff --git a/lib/screens/settings/customization/customization.dart b/lib/screens/settings/customization/customization.dart index fb4526b..7bec949 100644 --- a/lib/screens/settings/customization/customization.dart +++ b/lib/screens/settings/customization/customization.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -30,9 +32,9 @@ class CustomizationWidget extends StatefulWidget { final AppConfigProvider appConfigProvider; const CustomizationWidget({ - Key? key, + super.key, required this.appConfigProvider, - }) : super(key: key); + }); @override State createState() => _CustomizationWidgetState(); @@ -44,6 +46,8 @@ class _CustomizationWidgetState extends State { int selectedColor = 0; bool useThemeColorInsteadGreenRed = false; + final _colorsScrollController = ScrollController(); + @override void initState() { selectedTheme = widget.appConfigProvider.selectedThemeNumber; @@ -125,83 +129,84 @@ class _CustomizationWidgetState extends State { title: AppLocalizations.of(context)!.useDynamicTheme, ), if (!(appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31)) const SizedBox(height: 20), - if (dynamicColor == false) ...[ - SizedBox( - width: MediaQuery.of(context).size.width, - height: 70, - child: ListView.builder( - scrollDirection: Axis.horizontal, - itemCount: colors.length, - itemBuilder: (context, index) { - if (index == 0) { - return Row( - children: [ - const SizedBox(width: 15), - ColorItem( - color: colors[index], - numericValue: index, - selectedValue: selectedColor, - onChanged: (value) { - setState(() => selectedColor = value); - appConfigProvider.setStaticColor(value); + if (dynamicColor == false) Padding( + padding: const EdgeInsets.only(bottom: 8, left: 16, right: 16), + child: Scrollbar( + controller: _colorsScrollController, + thumbVisibility: Platform.isMacOS || Platform.isLinux || Platform.isWindows, + interactive: Platform.isMacOS || Platform.isLinux || Platform.isWindows, + thickness: Platform.isMacOS || Platform.isLinux || Platform.isWindows ? 8 : 0, + child: Padding( + padding: const EdgeInsets.only(bottom: 16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: MediaQuery.of(context).size.width, + height: 70, + child: ListView.builder( + controller: _colorsScrollController, + scrollDirection: Axis.horizontal, + itemCount: colors.length, + padding: const EdgeInsets.all(0), + itemBuilder: (context, index) { + if (index == 0) { + return Row( + children: [ + ColorItem( + index: index, + total: colors.length, + color: colors[index], + numericValue: index, + selectedValue: selectedColor, + onChanged: (value) { + setState(() => selectedColor = value); + appConfigProvider.setStaticColor(value); + } + ), + Container( + margin: const EdgeInsets.symmetric(horizontal: 10), + width: 1, + height: 60, + decoration: BoxDecoration( + color: Colors.grey, + borderRadius: BorderRadius.circular(1) + ), + ) + ], + ); } - ), - Container( - margin: const EdgeInsets.symmetric(horizontal: 10), - width: 1, - height: 60, - decoration: BoxDecoration( - color: Colors.grey, - borderRadius: BorderRadius.circular(1) - ), - ) - ], - ); - } - else if (index == colors.length-1) { - return Row( - children: [ - ColorItem( - color: colors[index], - numericValue: index, - selectedValue: selectedColor, - onChanged: (value) { - setState(() => selectedColor = value); - appConfigProvider.setStaticColor(value); + else { + return ColorItem( + index: index, + total: colors.length, + color: colors[index], + numericValue: index, + selectedValue: selectedColor, + onChanged: (value) { + setState(() => selectedColor = value); + appConfigProvider.setStaticColor(value); + } + ); } + }, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 8), + child: Text( + colorTranslation(context, selectedColor), + style: TextStyle( + color: Theme.of(context).listTileTheme.iconColor, + fontSize: 16 ), - const SizedBox(width: 15) - ], - ); - } - else { - return ColorItem( - color: colors[index], - numericValue: index, - selectedValue: selectedColor, - onChanged: (value) { - setState(() => selectedColor = value); - appConfigProvider.setStaticColor(value); - } - ); - } - }, - ), - ), - Padding( - padding: const EdgeInsets.only( - left: 25, - top: 10 - ), - child: Text( - colorTranslation(context, selectedColor), - style: TextStyle( - color: Theme.of(context).listTileTheme.iconColor, - fontSize: 16 + ), + ) + ], ), ), - ) - ], + ), + ), CustomSwitchListTile( value: useThemeColorInsteadGreenRed, onChanged: (value) { From 211eab9f448f56cdf3856dc13f17810ec84834a9 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 24 Jan 2024 13:55:15 +0100 Subject: [PATCH 046/236] Moved logs settings to settings screen --- lib/l10n/app_en.arb | 3 +- lib/l10n/app_es.arb | 3 +- .../logs/configuration/config_widgets.dart | 276 ------------------ .../logs/configuration/logs_config_modal.dart | 187 ------------ lib/screens/logs/logs_list_appbar.dart | 92 ------ .../logs_settings/config_widgets.dart | 177 +++++++++++ .../settings/logs_settings/logs_settings.dart | 167 +++++++++++ lib/screens/settings/settings.dart | 31 +- lib/services/api_client.dart | 2 +- 9 files changed, 369 insertions(+), 569 deletions(-) delete mode 100644 lib/screens/logs/configuration/config_widgets.dart delete mode 100644 lib/screens/logs/configuration/logs_config_modal.dart create mode 100644 lib/screens/settings/logs_settings/config_widgets.dart create mode 100644 lib/screens/settings/logs_settings/logs_settings.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 3778a60..79081e5 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -726,5 +726,6 @@ "oneIdentifierRequired": "At least one identifier is required", "dnsCacheNumber": "DNS cache size must be a number", "errors": "Errors", - "redirectHttpsWarning": "If you have enabled \"Redirect to HTTPS automatically\" on your AdGuard Home server, you must select an HTTPS connection and use the HTTPS port of your server." + "redirectHttpsWarning": "If you have enabled \"Redirect to HTTPS automatically\" on your AdGuard Home server, you must select an HTTPS connection and use the HTTPS port of your server.", + "logsSettingsDescription": "Configure query logs" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 03e3440..3846777 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -726,5 +726,6 @@ "oneIdentifierRequired": "Se require al menos un identificador", "dnsCacheNumber": "El tamaño de caché de DNS debe ser un número", "errors": "Errores", - "redirectHttpsWarning": "Si tienes activado \"Redireccionar a HTTPS automáticamente\" en tu servidor AdGuard Home, debes seleccionar una conexión HTTPS y utilizar el puerto de HTTPS de tu servidor." + "redirectHttpsWarning": "Si tienes activado \"Redireccionar a HTTPS automáticamente\" en tu servidor AdGuard Home, debes seleccionar una conexión HTTPS y utilizar el puerto de HTTPS de tu servidor.", + "logsSettingsDescription": "Configura los registros de peticiones" } \ No newline at end of file diff --git a/lib/screens/logs/configuration/config_widgets.dart b/lib/screens/logs/configuration/config_widgets.dart deleted file mode 100644 index 1fa59f9..0000000 --- a/lib/screens/logs/configuration/config_widgets.dart +++ /dev/null @@ -1,276 +0,0 @@ -import 'dart:io'; - -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; - -import 'package:adguard_home_manager/screens/logs/configuration/logs_config_modal.dart'; - -class LogsConfigOptions extends StatelessWidget { - final bool generalSwitch; - final void Function(bool) updateGeneralSwitch; - final bool anonymizeClientIp; - final void Function(bool) updateAnonymizeClientIp; - final List retentionItems; - final double? retentionTime; - final void Function(double?) updateRetentionTime; - final void Function() onClear; - final void Function() onConfirm; - - const LogsConfigOptions({ - super.key, - required this.generalSwitch, - required this.updateGeneralSwitch, - required this.anonymizeClientIp, - required this.updateAnonymizeClientIp, - required this.retentionItems, - required this.retentionTime, - required this.updateRetentionTime, - required this.onClear, - required this.onConfirm - }); - - @override - Widget build(BuildContext context) { - final width = MediaQuery.of(context).size.width; - - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - child: SingleChildScrollView( - child: Wrap( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Column( - children: [ - Padding( - padding: const EdgeInsets.only(top: 24), - child: Icon( - Icons.settings, - size: 24, - color: Theme.of(context).listTileTheme.iconColor - ), - ), - const SizedBox(height: 16), - Text( - AppLocalizations.of(context)!.logsSettings, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurface - ), - ), - const SizedBox(height: 16), - ], - ), - ], - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: Material( - color: Theme.of(context).colorScheme.primary.withOpacity(0.1), - borderRadius: BorderRadius.circular(28), - child: InkWell( - onTap: () => updateGeneralSwitch(!generalSwitch), - borderRadius: BorderRadius.circular(28), - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 20, - vertical: 8 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - AppLocalizations.of(context)!.enableLog, - style: const TextStyle( - fontSize: 18, - ), - ), - Switch( - value: generalSwitch, - onChanged: updateGeneralSwitch, - ) - ], - ), - ), - ), - ), - ), - Container(height: 16), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 14), - child: Column( - children: [ - Material( - color: Colors.transparent, - child: InkWell( - onTap: () => updateAnonymizeClientIp(!anonymizeClientIp), - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 30), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Flexible( - child: Text( - AppLocalizations.of(context)!.anonymizeClientIp, - style: const TextStyle( - fontSize: 16 - ), - ), - ), - Switch( - value: anonymizeClientIp, - onChanged: updateAnonymizeClientIp, - ) - ], - ), - ), - ), - ), - Container(height: 16), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: DropdownButtonFormField( - items: retentionItems.map((item) => DropdownMenuItem( - value: item.value, - child: Text(item.label), - )).toList(), - value: retentionTime, - onChanged: (value) => updateRetentionTime(value as double), - decoration: InputDecoration( - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - label: Text(AppLocalizations.of(context)!.retentionTime) - ), - borderRadius: BorderRadius.circular(20), - ), - ), - ], - ), - ) - ], - ), - ), - ), - Padding( - padding: const EdgeInsets.all(24), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - if (width > 500) TextButton( - onPressed: () { - Navigator.pop(context); - onClear(); - }, - child: Text(AppLocalizations.of(context)!.clearLogs) - ), - if (width <= 500) IconButton( - onPressed: () { - Navigator.pop(context); - onClear(); - }, - icon: const Icon(Icons.delete_rounded), - tooltip: AppLocalizations.of(context)!.clearLogs, - ), - Row( - children: [ - TextButton( - onPressed: () => Navigator.pop(context), - child: Text(AppLocalizations.of(context)!.cancel) - ), - const SizedBox(width: 20), - TextButton( - onPressed: retentionTime != null - ? () { - Navigator.pop(context); - onConfirm(); - } - : null, - child: Text( - AppLocalizations.of(context)!.confirm, - style: TextStyle( - color: retentionTime != null - ? Theme.of(context).colorScheme.primary - : Colors.grey - ), - ) - ), - ], - ) - ], - ), - ), - if (Platform.isIOS) const SizedBox(height: 16) - ], - ); - } -} - -class ConfigLogsLoading extends StatelessWidget { - const ConfigLogsLoading({super.key}); - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.all(24), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Text( - AppLocalizations.of(context)!.loadingLogsSettings, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - ), - ) - ], - ), - ); - } -} - -class ConfigLogsError extends StatelessWidget { - const ConfigLogsError({super.key}); - - @override - Widget build(BuildContext context) { - return Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Text( - AppLocalizations.of(context)!.logSettingsNotLoaded, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - ), - ) - ], - ); - } -} \ No newline at end of file diff --git a/lib/screens/logs/configuration/logs_config_modal.dart b/lib/screens/logs/configuration/logs_config_modal.dart deleted file mode 100644 index 5c2ba44..0000000 --- a/lib/screens/logs/configuration/logs_config_modal.dart +++ /dev/null @@ -1,187 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; - -import 'package:adguard_home_manager/screens/logs/configuration/config_widgets.dart'; - -import 'package:adguard_home_manager/constants/enums.dart'; -import 'package:adguard_home_manager/providers/servers_provider.dart'; - -class RetentionItem { - final String label; - final double value; - - const RetentionItem({ - required this.label, - required this.value, - }); -} - -class LogsConfigModal extends StatefulWidget { - final BuildContext context; - final void Function(Map) onConfirm; - final void Function() onClear; - final bool dialog; - final String serverVersion; - - const LogsConfigModal({ - super.key, - required this.context, - required this.onConfirm, - required this.onClear, - required this.dialog, - required this.serverVersion - }); - - @override - State createState() => _LogsConfigModalState(); -} - -class _LogsConfigModalState extends State { - bool generalSwitch = false; - bool anonymizeClientIp = false; - double? retentionTime; - - List retentionItems = []; - - LoadStatus loadStatus = LoadStatus.loading; - - void loadData() async { - final serversProvider = Provider.of(context, listen: false); - - final result = await serversProvider.apiClient2!.getQueryLogInfo(); - - if (mounted) { - if (result.successful == true) { - setState(() { - generalSwitch = result.content['enabled']; - anonymizeClientIp = result.content['anonymize_client_ip']; - retentionTime = result.content['interval'] != null - ? double.parse(result.content['interval'].toString()) - : null; - loadStatus = LoadStatus.loaded; - }); - } - else { - setState(() => loadStatus = LoadStatus.error); - } - } - } - - @override - void initState() { - retentionItems = [ - RetentionItem( - label: AppLocalizations.of(widget.context)!.hours6, - value: 21600000 - ), - RetentionItem( - label: AppLocalizations.of(widget.context)!.hours24, - value: 86400000 - ), - RetentionItem( - label: AppLocalizations.of(widget.context)!.days7, - value: 604800000 - ), - RetentionItem( - label: AppLocalizations.of(widget.context)!.days30, - value: 2592000000 - ), - RetentionItem( - label: AppLocalizations.of(widget.context)!.days90, - value: 7776000000 - ), - ]; - - loadData(); - super.initState(); - } - - @override - Widget build(BuildContext context) { - if (widget.dialog == true) { - return Dialog( - child: ConstrainedBox( - constraints: const BoxConstraints( - maxWidth: 500 - ), - child: Builder( - builder: (context) { - switch (loadStatus) { - case LoadStatus.loading: - return const ConfigLogsLoading(); - - case LoadStatus.loaded: - return LogsConfigOptions( - generalSwitch: generalSwitch, - updateGeneralSwitch: (v) => setState(() => generalSwitch = v), - anonymizeClientIp: anonymizeClientIp, - updateAnonymizeClientIp: (v) => setState(() => anonymizeClientIp = v), - retentionItems: retentionItems, - retentionTime: retentionTime, - updateRetentionTime: (v) => setState(() => retentionTime = v), - onClear: () => widget.onClear(), - onConfirm: () => widget.onConfirm({ - "enabled": generalSwitch, - "interval": retentionTime, - "anonymize_client_ip": anonymizeClientIp - }) - ); - - case LoadStatus.error: - return const ConfigLogsError(); - - default: - return const SizedBox(); - } - }, - ) - ), - ); - } - else { - return Container( - decoration: BoxDecoration( - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(28), - topRight: Radius.circular(28) - ), - color: Theme.of(context).dialogBackgroundColor - ), - child: SafeArea( - child: Builder( - builder: (context) { - switch (loadStatus) { - case LoadStatus.loading: - return const ConfigLogsLoading(); - - case LoadStatus.loaded: - return LogsConfigOptions( - generalSwitch: generalSwitch, - updateGeneralSwitch: (v) => setState(() => generalSwitch = v), - anonymizeClientIp: anonymizeClientIp, - updateAnonymizeClientIp: (v) => setState(() => anonymizeClientIp = v), - retentionItems: retentionItems, - retentionTime: retentionTime, - updateRetentionTime: (v) => setState(() => retentionTime = v), - onClear: () => widget.onClear(), - onConfirm: () => widget.onConfirm({ - "enabled": generalSwitch, - "interval": retentionTime, - "anonymize_client_ip": anonymizeClientIp - }) - ); - - case LoadStatus.error: - return const ConfigLogsError(); - - default: - return const SizedBox(); - } - }, - ), - ) - ); - } - } -} \ No newline at end of file diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index 8aeb752..144a55e 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -7,16 +7,10 @@ import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/logs/filters/logs_filters_modal.dart'; -import 'package:adguard_home_manager/screens/logs/configuration/logs_config_modal.dart'; -import 'package:adguard_home_manager/classes/process_modal.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/functions/desktop_mode.dart'; -import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/models/applied_filters.dart'; -import 'package:adguard_home_manager/providers/app_config_provider.dart'; -import 'package:adguard_home_manager/providers/servers_provider.dart'; -import 'package:adguard_home_manager/providers/status_provider.dart'; import 'package:adguard_home_manager/providers/logs_provider.dart'; class LogsListAppBar extends StatelessWidget { @@ -32,61 +26,9 @@ class LogsListAppBar extends StatelessWidget { @override Widget build(BuildContext context) { final logsProvider = Provider.of(context); - final statusProvider = Provider.of(context); - final serversProvider = Provider.of(context); - final appConfigProvider = Provider.of(context); final width = MediaQuery.of(context).size.width; - void updateConfig(Map data) async { - ProcessModal processModal = ProcessModal(); - processModal.open(AppLocalizations.of(context)!.updatingSettings); - - final result = await serversProvider.apiClient2!.updateQueryLogParameters(data: data); - - processModal.close(); - - if (result.successful == true) { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.logsConfigUpdated, - color: Colors.green - ); - } - else { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.logsConfigNotUpdated, - color: Colors.red - ); - } - } - - void clearQueries() async { - ProcessModal processModal = ProcessModal(); - processModal.open(AppLocalizations.of(context)!.updatingSettings); - - final result = await serversProvider.apiClient2!.clearLogs(); - - processModal.close(); - - if (result.successful == true) { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.logsCleared, - color: Colors.green - ); - } - else { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.logsNotCleared, - color: Colors.red - ); - } - } - - void openFilersModal() { if (width > 700 || !(Platform.isAndroid || Platform.isIOS)) { showDialog( @@ -143,40 +85,6 @@ class LogsListAppBar extends StatelessWidget { tooltip: AppLocalizations.of(context)!.filters, ) : const SizedBox(), - if (statusProvider.serverStatus != null) IconButton( - tooltip: AppLocalizations.of(context)!.settings, - onPressed: () => { - if (width > 700 || !(Platform.isAndroid || Platform.isIOS)) { - showDialog( - context: context, - builder: (context) => LogsConfigModal( - context: context, - onConfirm: updateConfig, - onClear: clearQueries, - dialog: true, - serverVersion: statusProvider.serverStatus!.serverVersion, - ), - barrierDismissible: false - ) - } - else { - showModalBottomSheet( - context: context, - useRootNavigator: true, - builder: (context) => LogsConfigModal( - context: context, - onConfirm: updateConfig, - onClear: clearQueries, - dialog: false, - serverVersion: statusProvider.serverStatus!.serverVersion, - ), - backgroundColor: Colors.transparent, - isScrollControlled: true - ) - } - }, - icon: const Icon(Icons.settings) - ), const SizedBox(width: 5), ], bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients != null diff --git a/lib/screens/settings/logs_settings/config_widgets.dart b/lib/screens/settings/logs_settings/config_widgets.dart new file mode 100644 index 0000000..3374854 --- /dev/null +++ b/lib/screens/settings/logs_settings/config_widgets.dart @@ -0,0 +1,177 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; + +class LogsConfigOptions extends StatelessWidget { + final bool generalSwitch; + final void Function(bool) updateGeneralSwitch; + final bool anonymizeClientIp; + final void Function(bool) updateAnonymizeClientIp; + final List retentionItems; + final double? retentionTime; + final void Function(double?) updateRetentionTime; + final void Function() onClear; + final void Function() onConfirm; + + const LogsConfigOptions({ + super.key, + required this.generalSwitch, + required this.updateGeneralSwitch, + required this.anonymizeClientIp, + required this.updateAnonymizeClientIp, + required this.retentionItems, + required this.retentionTime, + required this.updateRetentionTime, + required this.onClear, + required this.onConfirm + }); + + @override + Widget build(BuildContext context) { + final List dropdownItemTranslation = [ + AppLocalizations.of(context)!.hours6, + AppLocalizations.of(context)!.hours24, + AppLocalizations.of(context)!.days7, + AppLocalizations.of(context)!.days30, + AppLocalizations.of(context)!.days90, + ]; + + return Column( + children: [ + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: Material( + color: Theme.of(context).colorScheme.primary.withOpacity(0.1), + borderRadius: BorderRadius.circular(28), + child: InkWell( + onTap: () => updateGeneralSwitch(!generalSwitch), + borderRadius: BorderRadius.circular(28), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 8 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + AppLocalizations.of(context)!.enableLog, + style: const TextStyle( + fontSize: 18, + ), + ), + Switch( + value: generalSwitch, + onChanged: updateGeneralSwitch, + ) + ], + ), + ), + ), + ), + ), + const SizedBox(height: 16), + CustomCheckboxListTile( + value: anonymizeClientIp, + onChanged: (_) => updateAnonymizeClientIp(!anonymizeClientIp), + title: AppLocalizations.of(context)!.anonymizeClientIp, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 8), + ), + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 22), + child: DropdownButtonFormField( + items: retentionItems.asMap().entries.map((item) => DropdownMenuItem( + value: item.value, + child: Text(dropdownItemTranslation[item.key]), + )).toList(), + value: retentionTime, + onChanged: (value) => updateRetentionTime(value as double), + decoration: InputDecoration( + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + label: Text(AppLocalizations.of(context)!.retentionTime) + ), + borderRadius: BorderRadius.circular(20), + ), + ), + const SizedBox(height: 24), + ElevatedButton.icon( + onPressed: onClear, + icon: const Icon(Icons.delete_rounded), + label: Text(AppLocalizations.of(context)!.clearLogs), + ) + ], + ); + } +} + +class ConfigLogsLoading extends StatelessWidget { + const ConfigLogsLoading({super.key}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(24), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + AppLocalizations.of(context)!.loadingLogsSettings, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + ) + ], + ), + ), + ); + } +} + +class ConfigLogsError extends StatelessWidget { + const ConfigLogsError({super.key}); + + @override + Widget build(BuildContext context) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + AppLocalizations.of(context)!.logSettingsNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + ) + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/settings/logs_settings/logs_settings.dart b/lib/screens/settings/logs_settings/logs_settings.dart new file mode 100644 index 0000000..2fc6892 --- /dev/null +++ b/lib/screens/settings/logs_settings/logs_settings.dart @@ -0,0 +1,167 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/screens/settings/logs_settings/config_widgets.dart'; + +import 'package:adguard_home_manager/classes/process_modal.dart'; +import 'package:adguard_home_manager/functions/snackbar.dart'; +import 'package:adguard_home_manager/providers/app_config_provider.dart'; +import 'package:adguard_home_manager/constants/enums.dart'; +import 'package:adguard_home_manager/providers/servers_provider.dart'; + +class LogsSettings extends StatefulWidget { + const LogsSettings({super.key}); + + @override + State createState() => _LogsSettingsState(); +} + +class _LogsSettingsState extends State { + bool generalSwitch = false; + bool anonymizeClientIp = false; + double? retentionTime; + + List retentionItems = [ + 21600000, + 86400000, + 604800000, + 2592000000, + 7776000000 + ]; + + LoadStatus loadStatus = LoadStatus.loading; + + void loadData() async { + final serversProvider = Provider.of(context, listen: false); + + final result = await serversProvider.apiClient2!.getQueryLogInfo(); + + if (mounted) { + if (result.successful == true) { + setState(() { + generalSwitch = result.content['enabled']; + anonymizeClientIp = result.content['anonymize_client_ip']; + retentionTime = result.content['interval'] != null + ? double.parse(result.content['interval'].toString()) + : null; + loadStatus = LoadStatus.loaded; + }); + } + else { + setState(() => loadStatus = LoadStatus.error); + } + } + } + + @override + void initState() { + loadData(); + super.initState(); + } + + @override + Widget build(BuildContext context) { + final serversProvider = Provider.of(context); + final appConfigProvider = Provider.of(context); + + void clearQueries() async { + ProcessModal processModal = ProcessModal(); + processModal.open(AppLocalizations.of(context)!.updatingSettings); + + final result = await serversProvider.apiClient2!.clearLogs(); + + processModal.close(); + + if (!mounted) return; + + if (result.successful == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.logsCleared, + color: Colors.green + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.logsNotCleared, + color: Colors.red + ); + } + } + + void updateConfig() async { + ProcessModal processModal = ProcessModal(); + processModal.open(AppLocalizations.of(context)!.updatingSettings); + + final result = await serversProvider.apiClient2!.updateQueryLogParameters( + data: { + "enabled": generalSwitch, + "interval": retentionTime, + "anonymize_client_ip": anonymizeClientIp + } + ); + + processModal.close(); + + if (!mounted) return; + + if (result.successful == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.logsConfigUpdated, + color: Colors.green + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.logsConfigNotUpdated, + color: Colors.red + ); + } + } + + return Scaffold( + appBar: AppBar( + title: Text(AppLocalizations.of(context)!.logsSettings), + actions: [ + if (loadStatus == LoadStatus.loaded) IconButton( + onPressed: updateConfig, + icon: const Icon(Icons.save_rounded), + tooltip: AppLocalizations.of(context)!.save, + ), + const SizedBox(width: 8) + ], + ), + body: Builder( + builder: (context) { + switch (loadStatus) { + case LoadStatus.loading: + return const ConfigLogsLoading(); + + case LoadStatus.loaded: + return LogsConfigOptions( + generalSwitch: generalSwitch, + updateGeneralSwitch: (v) => setState(() => generalSwitch = v), + anonymizeClientIp: anonymizeClientIp, + updateAnonymizeClientIp: (v) => setState(() => anonymizeClientIp = v), + retentionItems: retentionItems, + retentionTime: retentionTime, + updateRetentionTime: (v) => setState(() => retentionTime = v), + onClear: clearQueries, + onConfirm: updateConfig + ); + + case LoadStatus.error: + return const ConfigLogsError(); + + default: + return const SizedBox(); + } + }, + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index 6efdd9b..0e5256d 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -8,6 +8,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/settings/server_info/server_info.dart'; import 'package:adguard_home_manager/screens/settings/encryption/encryption.dart'; +import 'package:adguard_home_manager/screens/settings/logs_settings/logs_settings.dart'; import 'package:adguard_home_manager/screens/settings/access_settings/access_settings.dart'; import 'package:adguard_home_manager/screens/settings/customization/customization.dart'; import 'package:adguard_home_manager/screens/settings/dhcp/dhcp.dart'; @@ -139,11 +140,19 @@ class _SettingsWidgetState extends State<_SettingsWidget> { screenToNavigate: const SafeSearchSettingsScreen(), twoColumns: widget.twoColumns, ), + _SettingsTile( + icon: Icons.list_alt_rounded, + title: AppLocalizations.of(context)!.logsSettings, + subtitle: AppLocalizations.of(context)!.logsSettingsDescription, + thisItem: 1, + screenToNavigate: const LogsSettings(), + twoColumns: widget.twoColumns, + ), _SettingsTile( icon: Icons.lock_rounded, title: AppLocalizations.of(context)!.accessSettings, subtitle: AppLocalizations.of(context)!.accessSettingsDescription, - thisItem: 1, + thisItem: 2, screenToNavigate: const AccessSettings(), twoColumns: widget.twoColumns, ), @@ -151,7 +160,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.install_desktop_rounded, title: AppLocalizations.of(context)!.dhcpSettings, subtitle: AppLocalizations.of(context)!.dhcpSettingsDescription, - thisItem: 2, + thisItem: 3, screenToNavigate: const DhcpScreen(), twoColumns: widget.twoColumns, ), @@ -159,7 +168,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.dns_rounded, title: AppLocalizations.of(context)!.dnsSettings, subtitle: AppLocalizations.of(context)!.dnsSettingsDescription, - thisItem: 3, + thisItem: 4, screenToNavigate: DnsSettings( splitView: widget.twoColumns, ), @@ -169,7 +178,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.security_rounded, title: AppLocalizations.of(context)!.encryptionSettings, subtitle: AppLocalizations.of(context)!.encryptionSettingsDescription, - thisItem: 4, + thisItem: 5, screenToNavigate: const EncryptionSettings(), twoColumns: widget.twoColumns, ), @@ -177,7 +186,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.route_rounded, title: AppLocalizations.of(context)!.dnsRewrites, subtitle: AppLocalizations.of(context)!.dnsRewritesDescription, - thisItem: 5, + thisItem: 6, screenToNavigate: const DnsRewritesScreen(), twoColumns: widget.twoColumns, ), @@ -197,7 +206,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { ), ) : null, - thisItem: 6, + thisItem: 7, screenToNavigate: const UpdateScreen(), twoColumns: widget.twoColumns, ), @@ -205,7 +214,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.info_rounded, title: AppLocalizations.of(context)!.serverInformation, subtitle: AppLocalizations.of(context)!.serverInformationDescription, - thisItem: 7, + thisItem: 8, screenToNavigate: const ServerInformation(), twoColumns: widget.twoColumns, ), @@ -215,7 +224,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.palette_rounded, title: AppLocalizations.of(context)!.customization, subtitle: AppLocalizations.of(context)!.customizationDescription, - thisItem: 8, + thisItem: 9, screenToNavigate: const Customization(), twoColumns: widget.twoColumns, ), @@ -227,7 +236,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { ? "${AppLocalizations.of(context)!.connectedTo} ${serversProvider.selectedServer!.name}" : "${AppLocalizations.of(context)!.selectedServer} ${serversProvider.selectedServer!.name}" : AppLocalizations.of(context)!.noServerSelected, - thisItem: 9, + thisItem: 10, screenToNavigate: const Servers(), twoColumns: widget.twoColumns, ), @@ -235,7 +244,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.settings, title: AppLocalizations.of(context)!.generalSettings, subtitle: AppLocalizations.of(context)!.generalSettingsDescription, - thisItem: 10, + thisItem: 11, screenToNavigate: GeneralSettings(splitView: widget.twoColumns), twoColumns: widget.twoColumns, ), @@ -243,7 +252,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.build_outlined, title: AppLocalizations.of(context)!.advancedSettings, subtitle: AppLocalizations.of(context)!.advancedSetupDescription, - thisItem: 11, + thisItem: 12, screenToNavigate: const AdvancedSettings(), twoColumns: widget.twoColumns, ), diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart index b45622a..f48d6d7 100644 --- a/lib/services/api_client.dart +++ b/lib/services/api_client.dart @@ -649,7 +649,7 @@ class ApiClientV2 { } Future clearLogs() async { - final result = await HttpRequestClient.put( + final result = await HttpRequestClient.post( urlPath: '/querylog_clear', server: server, body: {}, From c12e8c5ad342c23982c267a9927cdb2248a0c803 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 24 Jan 2024 15:14:19 +0100 Subject: [PATCH 047/236] Added ignored domains list config --- lib/l10n/app_en.arb | 4 +- lib/l10n/app_es.arb | 4 +- lib/models/querylog_config.dart | 27 ++++ .../logs_settings/config_widgets.dart | 117 ++++++++++++++++-- .../settings/logs_settings/logs_settings.dart | 79 +++++++++--- lib/services/api_client.dart | 18 ++- 6 files changed, 218 insertions(+), 31 deletions(-) create mode 100644 lib/models/querylog_config.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 79081e5..b7e9999 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -727,5 +727,7 @@ "dnsCacheNumber": "DNS cache size must be a number", "errors": "Errors", "redirectHttpsWarning": "If you have enabled \"Redirect to HTTPS automatically\" on your AdGuard Home server, you must select an HTTPS connection and use the HTTPS port of your server.", - "logsSettingsDescription": "Configure query logs" + "logsSettingsDescription": "Configure query logs", + "ignoredDomains": "Ignored domains", + "noIgnoredDomainsAdded": "No domains to ignore added" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 3846777..0ea54a0 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -727,5 +727,7 @@ "dnsCacheNumber": "El tamaño de caché de DNS debe ser un número", "errors": "Errores", "redirectHttpsWarning": "Si tienes activado \"Redireccionar a HTTPS automáticamente\" en tu servidor AdGuard Home, debes seleccionar una conexión HTTPS y utilizar el puerto de HTTPS de tu servidor.", - "logsSettingsDescription": "Configura los registros de peticiones" + "logsSettingsDescription": "Configura los registros de peticiones", + "ignoredDomains": "Dominios ignorados", + "noIgnoredDomainsAdded": "No hay añadidos dominios para ignorar" } \ No newline at end of file diff --git a/lib/models/querylog_config.dart b/lib/models/querylog_config.dart new file mode 100644 index 0000000..dfb80b4 --- /dev/null +++ b/lib/models/querylog_config.dart @@ -0,0 +1,27 @@ +class QueryLogConfig { + final List? ignored; + final int? interval; + final bool? enabled; + final bool? anonymizeClientIp; + + QueryLogConfig({ + this.ignored, + this.interval, + this.enabled, + this.anonymizeClientIp, + }); + + factory QueryLogConfig.fromJson(Map json) => QueryLogConfig( + ignored: json["ignored"] == null ? [] : List.from(json["ignored"]!.map((x) => x)), + interval: json["interval"], + enabled: json["enabled"], + anonymizeClientIp: json["anonymize_client_ip"], + ); + + Map toJson() => { + "ignored": ignored == null ? [] : List.from(ignored!.map((x) => x)), + "interval": interval, + "enabled": enabled, + "anonymize_client_ip": anonymizeClientIp, + }; +} diff --git a/lib/screens/settings/logs_settings/config_widgets.dart b/lib/screens/settings/logs_settings/config_widgets.dart index 3374854..4dbaee7 100644 --- a/lib/screens/settings/logs_settings/config_widgets.dart +++ b/lib/screens/settings/logs_settings/config_widgets.dart @@ -1,6 +1,9 @@ import 'package:flutter/material.dart'; +import 'package:uuid/uuid.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/settings/logs_settings/logs_settings.dart'; +import 'package:adguard_home_manager/widgets/section_label.dart'; import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; class LogsConfigOptions extends StatelessWidget { @@ -13,6 +16,8 @@ class LogsConfigOptions extends StatelessWidget { final void Function(double?) updateRetentionTime; final void Function() onClear; final void Function() onConfirm; + final List ignoredDomainsControllers; + final void Function(List) updateIgnoredDomainsControllers; const LogsConfigOptions({ super.key, @@ -24,11 +29,15 @@ class LogsConfigOptions extends StatelessWidget { required this.retentionTime, required this.updateRetentionTime, required this.onClear, - required this.onConfirm + required this.onConfirm, + required this.ignoredDomainsControllers, + required this.updateIgnoredDomainsControllers }); @override Widget build(BuildContext context) { + const Uuid uuid = Uuid(); + final List dropdownItemTranslation = [ AppLocalizations.of(context)!.hours6, AppLocalizations.of(context)!.hours24, @@ -37,7 +46,28 @@ class LogsConfigOptions extends StatelessWidget { AppLocalizations.of(context)!.days90, ]; - return Column( + void validateDomain(String value, String id) { + final domainRegex = RegExp(r'^([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$'); + bool error = false; + if (domainRegex.hasMatch(value)) { + error = false; + } + else { + error = true; + } + updateIgnoredDomainsControllers( + ignoredDomainsControllers.map((entry) { + if (entry.id != id) return entry; + return DomainListItemController( + id: id, + controller: entry.controller, + error: error + ); + }).toList() + ); + } + + return ListView( children: [ const SizedBox(height: 16), Padding( @@ -100,12 +130,83 @@ class LogsConfigOptions extends StatelessWidget { borderRadius: BorderRadius.circular(20), ), ), - const SizedBox(height: 24), - ElevatedButton.icon( - onPressed: onClear, - icon: const Icon(Icons.delete_rounded), - label: Text(AppLocalizations.of(context)!.clearLogs), - ) + Padding( + padding: const EdgeInsets.only(top: 24, bottom: 8), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + SectionLabel( + label: AppLocalizations.of(context)!.ignoredDomains, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 0), + ), + Padding( + padding: const EdgeInsets.only(right: 10), + child: IconButton( + onPressed: () => updateIgnoredDomainsControllers([ + ...ignoredDomainsControllers, + DomainListItemController( + id: uuid.v4(), + controller: TextEditingController(), + error: false + ), + ]), + icon: const Icon(Icons.add) + ), + ) + ], + ), + ), + if (ignoredDomainsControllers.isNotEmpty) ...ignoredDomainsControllers.map((controller) => Padding( + padding: const EdgeInsets.only( + top: 12, bottom: 12, left: 24, right: 10 + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: TextFormField( + controller: controller.controller, + onChanged: (v) => validateDomain(v, controller.id), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.link_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.domain, + errorText: controller.error + ? AppLocalizations.of(context)!.invalidDomain + : null + ), + ), + ), + const SizedBox(width: 12), + Padding( + padding: controller.error + ? const EdgeInsets.only(bottom: 24) + : const EdgeInsets.all(0), + child: IconButton( + onPressed: () => updateIgnoredDomainsControllers( + ignoredDomainsControllers.where((e) => e.id != controller.id).toList() + ), + icon: const Icon(Icons.remove_circle_outline_outlined) + ), + ) + ], + ), + )), + if (ignoredDomainsControllers.isEmpty) Container( + padding: const EdgeInsets.symmetric(vertical: 16), + child: Text( + AppLocalizations.of(context)!.noIgnoredDomainsAdded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), + ), ], ); } diff --git a/lib/screens/settings/logs_settings/logs_settings.dart b/lib/screens/settings/logs_settings/logs_settings.dart index 2fc6892..8c651e0 100644 --- a/lib/screens/settings/logs_settings/logs_settings.dart +++ b/lib/screens/settings/logs_settings/logs_settings.dart @@ -1,15 +1,29 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:uuid/uuid.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/settings/logs_settings/config_widgets.dart'; +import 'package:adguard_home_manager/models/querylog_config.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; +class DomainListItemController { + final String id; + final TextEditingController controller; + bool error; + + DomainListItemController({ + required this.id, + required this.controller, + required this.error + }); +} + class LogsSettings extends StatefulWidget { const LogsSettings({super.key}); @@ -18,9 +32,12 @@ class LogsSettings extends StatefulWidget { } class _LogsSettingsState extends State { + final Uuid uuid = const Uuid(); + bool generalSwitch = false; bool anonymizeClientIp = false; double? retentionTime; + List _ignoredDomainsControllers = []; List retentionItems = [ 21600000, @@ -37,20 +54,27 @@ class _LogsSettingsState extends State { final result = await serversProvider.apiClient2!.getQueryLogInfo(); - if (mounted) { - if (result.successful == true) { - setState(() { - generalSwitch = result.content['enabled']; - anonymizeClientIp = result.content['anonymize_client_ip']; - retentionTime = result.content['interval'] != null - ? double.parse(result.content['interval'].toString()) - : null; - loadStatus = LoadStatus.loaded; - }); - } - else { - setState(() => loadStatus = LoadStatus.error); - } + if (!mounted) return; + if (result.successful == true) { + final data = result.content as QueryLogConfig; + setState(() { + generalSwitch = data.enabled ?? false; + anonymizeClientIp = data.anonymizeClientIp ?? false; + retentionTime = data.interval != null + ? double.parse(data.interval.toString()) + : null; + if (data.ignored != null) { + _ignoredDomainsControllers = data.ignored!.map((e) => DomainListItemController( + id: uuid.v4(), + controller: TextEditingController(text: e), + error: false + )).toList(); + } + loadStatus = LoadStatus.loaded; + }); + } + else { + setState(() => loadStatus = LoadStatus.error); } } @@ -65,6 +89,10 @@ class _LogsSettingsState extends State { final serversProvider = Provider.of(context); final appConfigProvider = Provider.of(context); + final validValues = _ignoredDomainsControllers.where( + (d) => d.controller.text == "" || d.error == true + ).isEmpty; + void clearQueries() async { ProcessModal processModal = ProcessModal(); processModal.open(AppLocalizations.of(context)!.updatingSettings); @@ -99,7 +127,8 @@ class _LogsSettingsState extends State { data: { "enabled": generalSwitch, "interval": retentionTime, - "anonymize_client_ip": anonymizeClientIp + "anonymize_client_ip": anonymizeClientIp, + "ignored": _ignoredDomainsControllers.map((e) => e.controller.text).toList() } ); @@ -128,10 +157,24 @@ class _LogsSettingsState extends State { title: Text(AppLocalizations.of(context)!.logsSettings), actions: [ if (loadStatus == LoadStatus.loaded) IconButton( - onPressed: updateConfig, + onPressed: validValues ? () => updateConfig() : null, icon: const Icon(Icons.save_rounded), tooltip: AppLocalizations.of(context)!.save, ), + if (loadStatus == LoadStatus.loaded) PopupMenuButton( + itemBuilder: (context) => [ + PopupMenuItem( + onTap: clearQueries, + child: Row( + children: [ + const Icon(Icons.delete_rounded), + const SizedBox(width: 8), + Text(AppLocalizations.of(context)!.clearLogs), + ], + ) + ) + ], + ), const SizedBox(width: 8) ], ), @@ -151,7 +194,9 @@ class _LogsSettingsState extends State { retentionTime: retentionTime, updateRetentionTime: (v) => setState(() => retentionTime = v), onClear: clearQueries, - onConfirm: updateConfig + onConfirm: updateConfig, + ignoredDomainsControllers: _ignoredDomainsControllers, + updateIgnoredDomainsControllers: (v) => setState(() => _ignoredDomainsControllers = v), ); case LoadStatus.error: diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart index f48d6d7..b122a8c 100644 --- a/lib/services/api_client.dart +++ b/lib/services/api_client.dart @@ -3,6 +3,7 @@ import 'dart:convert'; import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:adguard_home_manager/models/blocked_services.dart'; +import 'package:adguard_home_manager/models/querylog_config.dart'; import 'package:adguard_home_manager/models/dns_info.dart'; import 'package:adguard_home_manager/models/encryption.dart'; import 'package:adguard_home_manager/models/dhcp.dart'; @@ -627,10 +628,19 @@ class ApiClientV2 { Future getQueryLogInfo() async { final result = await HttpRequestClient.get(urlPath: '/querylog/config', server: server); if (result.successful) { - return ApiResponse( - successful: true, - content: jsonDecode(result.body!) - ); + try { + return ApiResponse( + successful: true, + content: QueryLogConfig.fromJson(jsonDecode(result.body!)) + ); + } catch (e, stackTrace) { + Sentry.captureException( + e, + stackTrace: stackTrace, + hint: Hint.withMap({ "statusCode": result.statusCode.toString() }) + ); + return const ApiResponse(successful: false); + } } else { return const ApiResponse(successful: false); From 9529cd6f567d32d5c6d7ea32a3917b89b0b12b59 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 25 Jan 2024 00:39:36 +0100 Subject: [PATCH 048/236] Replaced ring chart with bar chart --- .../home/top_items/top_items_section.dart | 195 +++++++----------- 1 file changed, 75 insertions(+), 120 deletions(-) diff --git a/lib/screens/home/top_items/top_items_section.dart b/lib/screens/home/top_items/top_items_section.dart index bc021cf..2c6f0c1 100644 --- a/lib/screens/home/top_items/top_items_section.dart +++ b/lib/screens/home/top_items/top_items_section.dart @@ -10,6 +10,7 @@ import 'package:adguard_home_manager/screens/home/top_items/row_item.dart'; import 'package:adguard_home_manager/screens/home/top_items/top_items_screen.dart'; import 'package:adguard_home_manager/widgets/custom_pie_chart.dart'; +import 'package:adguard_home_manager/functions/number_format.dart'; import 'package:adguard_home_manager/models/menu_option.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; @@ -64,7 +65,7 @@ class _TopItemsState extends State { final withChart = widget.type != HomeTopItems.avgUpstreamResponseTime; - Map chartData() { + Map ringData() { Map values = {}; widget.data.sublist(0, widget.data.length > 5 ? 5 : widget.data.length).forEach((element) { values = { @@ -84,6 +85,29 @@ class _TopItemsState extends State { return values; } + List> lineData() { + List> values = []; + widget.data.sublist(0, widget.data.length > 5 ? 5 : widget.data.length).forEach((element) { + values.add({ + "label": element.keys.first, + "value": element.values.first.toDouble() + }); + }); + if (widget.data.length > 5) { + final int rest = List.from( + widget.data.sublist(5, widget.data.length).map((e) => e.values.first.toInt()) + ).reduce((a, b) => a + b); + values.add({ + "label": AppLocalizations.of(context)!.others, + "value": rest.toDouble() + }); + } + return values; + } + + final data = lineData(); + final total = data.map((e) => e["value"]).reduce((a, b) => a + b); + final Widget noItems = Padding( padding: const EdgeInsets.only( bottom: 20, @@ -116,7 +140,7 @@ class _TopItemsState extends State { child: Padding( padding: const EdgeInsets.all(16), child: CustomPieChart( - data: chartData(), + data: ringData(), colors: colors ) ), @@ -159,126 +183,57 @@ class _TopItemsState extends State { ], ), ), - if (widget.data.isNotEmpty && width <= 700) Builder( - builder: (context) { - if (widget.withChart == true) { - return Column( - children: [ - ExpansionPanelList( - expandedHeaderPadding: const EdgeInsets.all(0), - elevation: 0, - expansionCallback: (_, isExpanded) => setState(() => _showChart = isExpanded), - animationDuration: const Duration(milliseconds: 250), - children: [ - ExpansionPanel( - headerBuilder: (context, isExpanded) => Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Row( - mainAxisAlignment: width <= 700 - ? MainAxisAlignment.spaceBetween - : MainAxisAlignment.center, - children: [ - Flexible( - child: Text( - widget.label, - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.onSurface - ), - ), - ), - ], - ), + if (widget.data.isNotEmpty && width <= 700) ...[ + Text( + widget.label, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.onSurface + ), + ), + const SizedBox(height: 8), + if (withChart == true) Padding( + padding: const EdgeInsets.all(16), + child: ClipRRect( + borderRadius: BorderRadius.circular(20), + child: SizedBox( + height: 20, + child: LayoutBuilder( + builder: (context, constraints) => Row( + children: data.asMap().entries.map((e) => Tooltip( + message:'${e.value["label"]} (${doubleFormat((e.value["value"]/total)*100, Platform.localeName)}%)', + child: Container( + width: constraints.maxWidth*(e.value["value"]/total), + decoration: BoxDecoration( + color: colors[e.key] ), - body: Padding( - padding: const EdgeInsets.symmetric(vertical: 16), - child: Column( - children: [ - SizedBox( - height: 150, - child: CustomPieChart( - data: chartData(), - colors: colors - ) - ), - const SizedBox(height: 16), - ], - ), - ), - isExpanded: _showChart ), - ], - ), - Padding( - padding: const EdgeInsets.only(top: 8), - child: _ItemsList( - colors: colors, - data: widget.data, - clients: widget.type == HomeTopItems.recurrentClients, - type: widget.type, - showChart: _showChart, - buildValue: widget.buildValue, - menuOptions: widget.menuOptions, - onTapEntry: widget.onTapEntry, - ), - ), - if (widget.withChart == true) OthersRowItem( - items: widget.data, - showColor: _showChart, - ), - const SizedBox(height: 16), - ], - ); - } - else { - return Column( - children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 18), - child: Row( - mainAxisAlignment: width <= 700 - ? MainAxisAlignment.spaceBetween - : MainAxisAlignment.center, - children: [ - Flexible( - child: Text( - widget.label, - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.onSurface - ), - ), - ), - ], - ), - ), - Padding( - padding: const EdgeInsets.only(top: 16), - child: _ItemsList( - colors: colors, - data: widget.data, - clients: widget.type == HomeTopItems.recurrentClients, - type: widget.type, - showChart: false, - buildValue: widget.buildValue, - menuOptions: widget.menuOptions, - onTapEntry: widget.onTapEntry, - ), - ), - if (widget.withChart == true) OthersRowItem( - items: widget.data, - showColor: false, - ), - const SizedBox(height: 16), - ], - ); - } - }, - ), + )).toList() + ) + ) + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 8), + child: _ItemsList( + colors: colors, + data: widget.data, + clients: widget.type == HomeTopItems.recurrentClients, + type: widget.type, + showChart: withChart == false ? false : _showChart, + buildValue: widget.buildValue, + menuOptions: widget.menuOptions, + onTapEntry: widget.onTapEntry, + ), + ), + OthersRowItem( + items: widget.data, + showColor: withChart == false ? false : _showChart, + ), + ], if (widget.data.length > 5) ...[ Padding( From 2fd829021c28e438b9b38c6a780585784cfe61b4 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 25 Jan 2024 00:47:20 +0100 Subject: [PATCH 049/236] Removed config variable --- lib/providers/app_config_provider.dart | 24 ---- .../home/top_items/top_items_section.dart | 117 ++++++++---------- .../general_settings/general_settings.dart | 22 ---- lib/services/db/database.dart | 33 +++-- 4 files changed, 77 insertions(+), 119 deletions(-) diff --git a/lib/providers/app_config_provider.dart b/lib/providers/app_config_provider.dart index d44b5af..99e2f0f 100644 --- a/lib/providers/app_config_provider.dart +++ b/lib/providers/app_config_provider.dart @@ -52,8 +52,6 @@ class AppConfigProvider with ChangeNotifier { int _combinedChartHome = 0; - int _showTopItemsChart = 0; - String? _doNotRememberVersion; GitHubRelease? _appUpdatesAvailable; @@ -170,10 +168,6 @@ class AppConfigProvider with ChangeNotifier { return _hideServerAddress == 1 ? true : false; } - bool get showTopItemsChart { - return _showTopItemsChart == 1 ? true : false; - } - void setDbInstance(Database db) { _dbInstance = db; } @@ -408,23 +402,6 @@ class AppConfigProvider with ChangeNotifier { } } - Future setShowTopItemsChart(bool value) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'showTopItemsChart', - value: value == true ? 1 : 0 - ); - if (updated == true) { - _showTopItemsChart = value == true ? 1 : 0; - notifyListeners(); - return true; - } - else { - return false; - } - } - - Future setDoNotRememberVersion(String value) async { final updated = await updateConfigQuery( db: _dbInstance!, @@ -446,7 +423,6 @@ class AppConfigProvider with ChangeNotifier { _showIpLogs = dbData['showIpLogs'] ?? 0; _combinedChartHome = dbData['combinedChart'] ?? 0; _hideServerAddress = dbData['hideServerAddress']; - _showTopItemsChart = dbData['showTopItemsChart']; if (dbData['homeTopItemsOrder'] != null) { try { final itemsOrder = List.from( diff --git a/lib/screens/home/top_items/top_items_section.dart b/lib/screens/home/top_items/top_items_section.dart index 2c6f0c1..475ffb9 100644 --- a/lib/screens/home/top_items/top_items_section.dart +++ b/lib/screens/home/top_items/top_items_section.dart @@ -3,7 +3,6 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/home/top_items/row_item.dart'; @@ -13,9 +12,8 @@ import 'package:adguard_home_manager/widgets/custom_pie_chart.dart'; import 'package:adguard_home_manager/functions/number_format.dart'; import 'package:adguard_home_manager/models/menu_option.dart'; import 'package:adguard_home_manager/constants/enums.dart'; -import 'package:adguard_home_manager/providers/app_config_provider.dart'; -class TopItemsSection extends StatefulWidget { +class TopItemsSection extends StatelessWidget { final HomeTopItems type; final String label; final List> data; @@ -37,45 +35,32 @@ class TopItemsSection extends StatefulWidget { this.onTapEntry, }); - @override - State createState() => _TopItemsState(); -} - -class _TopItemsState extends State { - bool _showChart = true; - - final colors = [ - Colors.red, - Colors.green, - Colors.blue, - Colors.orange, - Colors.teal, - Colors.grey - ]; - - @override - void initState() { - _showChart = Provider.of(context, listen: false).showTopItemsChart; - super.initState(); - } - @override Widget build(BuildContext context) { + final colors = [ + Colors.red, + Colors.green, + Colors.blue, + Colors.orange, + Colors.teal, + Colors.grey + ]; + final width = MediaQuery.of(context).size.width; - final withChart = widget.type != HomeTopItems.avgUpstreamResponseTime; + final withChart = type != HomeTopItems.avgUpstreamResponseTime; Map ringData() { Map values = {}; - widget.data.sublist(0, widget.data.length > 5 ? 5 : widget.data.length).forEach((element) { + data.sublist(0, data.length > 5 ? 5 : data.length).forEach((element) { values = { ...values, element.keys.first: element.values.first.toDouble() }; }); - if (widget.data.length > 5) { + if (data.length > 5) { final int rest = List.from( - widget.data.sublist(5, widget.data.length).map((e) => e.values.first.toInt()) + data.sublist(5, data.length).map((e) => e.values.first.toInt()) ).reduce((a, b) => a + b); values = { ...values, @@ -87,15 +72,15 @@ class _TopItemsState extends State { List> lineData() { List> values = []; - widget.data.sublist(0, widget.data.length > 5 ? 5 : widget.data.length).forEach((element) { + data.sublist(0, data.length > 5 ? 5 : data.length).forEach((element) { values.add({ "label": element.keys.first, "value": element.values.first.toDouble() }); }); - if (widget.data.length > 5) { + if (data.length > 5) { final int rest = List.from( - widget.data.sublist(5, widget.data.length).map((e) => e.values.first.toInt()) + data.sublist(5, data.length).map((e) => e.values.first.toInt()) ).reduce((a, b) => a + b); values.add({ "label": AppLocalizations.of(context)!.others, @@ -105,8 +90,8 @@ class _TopItemsState extends State { return values; } - final data = lineData(); - final total = data.map((e) => e["value"]).reduce((a, b) => a + b); + final lineChartData = lineData(); + final total = lineChartData.map((e) => e["value"]).reduce((a, b) => a + b); final Widget noItems = Padding( padding: const EdgeInsets.only( @@ -125,8 +110,8 @@ class _TopItemsState extends State { return SizedBox( child: Column( children: [ - if (widget.data.isEmpty) noItems, - if (widget.data.isNotEmpty && width > 700) Padding( + if (data.isEmpty) noItems, + if (data.isNotEmpty && width > 700) Padding( padding: EdgeInsets.only(bottom: withChart == false ? 16 : 0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, @@ -156,7 +141,7 @@ class _TopItemsState extends State { bottom: 16 ), child: Text( - widget.label, + label, style: const TextStyle( fontSize: 18, fontWeight: FontWeight.w500 @@ -165,16 +150,16 @@ class _TopItemsState extends State { ), _ItemsList( colors: colors, - data: widget.data, - clients: widget.type == HomeTopItems.recurrentClients, - type: widget.type, - showChart: withChart == true ? _showChart : false, - buildValue: widget.buildValue, - menuOptions: widget.menuOptions, - onTapEntry: widget.onTapEntry, + data: data, + clients: type == HomeTopItems.recurrentClients, + type: type, + showChart: withChart, + buildValue: buildValue, + menuOptions: menuOptions, + onTapEntry: onTapEntry, ), if (withChart == true) OthersRowItem( - items: widget.data, + items: data, showColor: true, ) ] @@ -183,9 +168,9 @@ class _TopItemsState extends State { ], ), ), - if (widget.data.isNotEmpty && width <= 700) ...[ + if (data.isNotEmpty && width <= 700) ...[ Text( - widget.label, + label, overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 18, @@ -202,7 +187,7 @@ class _TopItemsState extends State { height: 20, child: LayoutBuilder( builder: (context, constraints) => Row( - children: data.asMap().entries.map((e) => Tooltip( + children: lineChartData.asMap().entries.map((e) => Tooltip( message:'${e.value["label"]} (${doubleFormat((e.value["value"]/total)*100, Platform.localeName)}%)', child: Container( width: constraints.maxWidth*(e.value["value"]/total), @@ -220,22 +205,22 @@ class _TopItemsState extends State { padding: const EdgeInsets.only(top: 8), child: _ItemsList( colors: colors, - data: widget.data, - clients: widget.type == HomeTopItems.recurrentClients, - type: widget.type, - showChart: withChart == false ? false : _showChart, - buildValue: widget.buildValue, - menuOptions: widget.menuOptions, - onTapEntry: widget.onTapEntry, + data: data, + clients: type == HomeTopItems.recurrentClients, + type: type, + showChart: withChart, + buildValue: buildValue, + menuOptions: menuOptions, + onTapEntry: onTapEntry, ), ), OthersRowItem( - items: widget.data, - showColor: withChart == false ? false : _showChart, + items: data, + showColor: withChart, ), ], - if (widget.data.length > 5) ...[ + if (data.length > 5) ...[ Padding( padding: const EdgeInsets.only(right: 20), child: Row( @@ -263,14 +248,14 @@ class _TopItemsState extends State { ); }, pageBuilder: (context, animation, secondaryAnimation) => TopItemsScreen( - type: widget.type, - title: widget.label, - isClient: widget.type == HomeTopItems.recurrentClients, - data: widget.data, - withProgressBar: widget.withProgressBar, - buildValue: widget.buildValue, - options: widget.menuOptions, - onTapEntry: widget.onTapEntry, + type: type, + title: label, + isClient: type == HomeTopItems.recurrentClients, + data: data, + withProgressBar: withProgressBar, + buildValue: buildValue, + options: menuOptions, + onTapEntry: onTapEntry, isFullscreen: !(width > 700 || !(Platform.isAndroid | Platform.isIOS)), ) ) diff --git a/lib/screens/settings/general_settings/general_settings.dart b/lib/screens/settings/general_settings/general_settings.dart index 74cc752..fb0560c 100644 --- a/lib/screens/settings/general_settings/general_settings.dart +++ b/lib/screens/settings/general_settings/general_settings.dart @@ -206,28 +206,6 @@ class _GeneralSettingsState extends State { ) ) ), - CustomListTile( - icon: Icons.donut_large_rounded, - title: AppLocalizations.of(context)!.showTopItemsChart, - subtitle: AppLocalizations.of(context)!.showTopItemsChartDescription, - trailing: Switch( - value: appConfigProvider.showTopItemsChart, - onChanged: (value) => updateSettings( - newStatus: value, - function: appConfigProvider.setShowTopItemsChart - ), - ), - onTap: () => updateSettings( - newStatus: !appConfigProvider.showTopItemsChart, - function: appConfigProvider.setShowTopItemsChart - ), - padding: const EdgeInsets.only( - top: 10, - bottom: 10, - left: 16, - right: 10 - ) - ), SectionLabel(label: AppLocalizations.of(context)!.logs), CustomListTile( icon: Icons.timer_rounded, diff --git a/lib/services/db/database.dart b/lib/services/db/database.dart index 7d8cf13..b60b38a 100644 --- a/lib/services/db/database.dart +++ b/lib/services/db/database.dart @@ -127,9 +127,19 @@ Future> loadDb(bool acceptsDynamicTheme) async { }); } + Future upgradeDbToV11(Database db) async { + await db.execute("ALTER TABLE appConfig DROP COLUMN showTopItemsChart"); + + await db.transaction((txn) async{ + await txn.rawQuery( + 'SELECT * FROM appConfig', + ); + }); + } + Database db = await openDatabase( 'adguard_home_manager.db', - version: 10, + version: 11, onCreate: (Database db, int version) async { await db.execute( """ @@ -165,8 +175,7 @@ Future> loadDb(bool acceptsDynamicTheme) async { combinedChart NUMERIC, doNotRememberVersion TEXT, hideServerAddress NUMERIC, - homeTopItemsOrder TEXT, - showTopItemsChart NUMERIC + homeTopItemsOrder TEXT ) """ ); @@ -185,8 +194,7 @@ Future> loadDb(bool acceptsDynamicTheme) async { showIpLogs, combinedChart, hideServerAddress, - homeTopItemsOrder, - showTopItemsChart + homeTopItemsOrder ) VALUES ( 0, @@ -199,8 +207,7 @@ Future> loadDb(bool acceptsDynamicTheme) async { 0, 0, 0, - '$homeTopItemsDefaultOrderString', - 1 + '$homeTopItemsDefaultOrderString' ) """ ); @@ -216,6 +223,7 @@ Future> loadDb(bool acceptsDynamicTheme) async { await upgradeDbToV8(db); await upgradeDbToV9(db); await upgradeDbToV10(db); + await upgradeDbToV11(db); } if (oldVersion == 2) { await upgradeDbToV3(db); @@ -226,6 +234,7 @@ Future> loadDb(bool acceptsDynamicTheme) async { await upgradeDbToV8(db); await upgradeDbToV9(db); await upgradeDbToV10(db); + await upgradeDbToV11(db); } if (oldVersion == 3) { await upgradeDbToV4(db); @@ -235,6 +244,7 @@ Future> loadDb(bool acceptsDynamicTheme) async { await upgradeDbToV8(db); await upgradeDbToV9(db); await upgradeDbToV10(db); + await upgradeDbToV11(db); } if (oldVersion == 4) { await upgradeDbToV5(db); @@ -243,6 +253,7 @@ Future> loadDb(bool acceptsDynamicTheme) async { await upgradeDbToV8(db); await upgradeDbToV9(db); await upgradeDbToV10(db); + await upgradeDbToV11(db); } if (oldVersion == 5) { await upgradeDbToV6(db); @@ -250,24 +261,32 @@ Future> loadDb(bool acceptsDynamicTheme) async { await upgradeDbToV8(db); await upgradeDbToV9(db); await upgradeDbToV10(db); + await upgradeDbToV11(db); } if (oldVersion == 6) { await upgradeDbToV7(db); await upgradeDbToV8(db); await upgradeDbToV9(db); await upgradeDbToV10(db); + await upgradeDbToV11(db); } if (oldVersion == 7) { await upgradeDbToV8(db); await upgradeDbToV9(db); await upgradeDbToV10(db); + await upgradeDbToV11(db); } if (oldVersion == 8) { await upgradeDbToV9(db); await upgradeDbToV10(db); + await upgradeDbToV11(db); } if (oldVersion == 9) { await upgradeDbToV10(db); + await upgradeDbToV11(db); + } + if (oldVersion == 10) { + await upgradeDbToV11(db); } }, onOpen: (Database db) async { From a40580f425c9f4ac13d4e288d0c95f3505a7a456 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 25 Jan 2024 00:50:35 +0100 Subject: [PATCH 050/236] Removed top items entries animation --- lib/screens/home/top_items/row_item.dart | 225 ++++++----------------- 1 file changed, 61 insertions(+), 164 deletions(-) diff --git a/lib/screens/home/top_items/row_item.dart b/lib/screens/home/top_items/row_item.dart index b323eb0..bc8856b 100644 --- a/lib/screens/home/top_items/row_item.dart +++ b/lib/screens/home/top_items/row_item.dart @@ -8,7 +8,7 @@ import 'package:adguard_home_manager/models/menu_option.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/providers/status_provider.dart'; -class RowItem extends StatefulWidget { +class RowItem extends StatelessWidget { final HomeTopItems type; final Color chartColor; final String domain; @@ -32,61 +32,14 @@ class RowItem extends StatefulWidget { this.unit, }); - @override - State createState() => _RowItemState(); -} - -class _RowItemState extends State with TickerProviderStateMixin { - late AnimationController expandController; - late Animation animation; - - @override - void initState() { - super.initState(); - prepareAnimations(); - _runExpandCheck(); - } - - void prepareAnimations() { - expandController = AnimationController( - vsync: this, - duration: const Duration(milliseconds: 250) - ); - animation = CurvedAnimation( - parent: expandController, - curve: Curves.ease, - ); - } - - void _runExpandCheck() { - if (widget.showColor) { - expandController.forward(); - } - else { - expandController.reverse(); - } - } - - @override - void didUpdateWidget(oldWidget) { - super.didUpdateWidget(oldWidget); - _runExpandCheck(); - } - - @override - void dispose() { - expandController.dispose(); - super.dispose(); - } - @override Widget build(BuildContext context) { final statusProvider = Provider.of(context); String? name; - if (widget.clients == true) { + if (clients == true) { try { - name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(widget.domain)).name; + name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(domain)).name; } catch (e) { // ---- // } @@ -95,9 +48,9 @@ class _RowItemState extends State with TickerProviderStateMixin { return Material( color: Colors.transparent, child: OptionsMenu( - value: widget.domain, - options: widget.options, - onTap: widget.onTapEntry, + value: domain, + options: options, + onTap: onTapEntry, child: Padding( padding: const EdgeInsets.symmetric( horizontal: 20, @@ -109,18 +62,13 @@ class _RowItemState extends State with TickerProviderStateMixin { Flexible( child: Row( children: [ - SizeTransition( - axisAlignment: 1.0, - sizeFactor: animation, - axis: Axis.horizontal, - child: Container( - margin: const EdgeInsets.only(right: 16), - width: 12, - height: 12, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(30), - color: widget.chartColor - ), + Container( + margin: const EdgeInsets.only(right: 16), + width: 12, + height: 12, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: chartColor ), ), Expanded( @@ -128,7 +76,7 @@ class _RowItemState extends State with TickerProviderStateMixin { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - widget.domain, + domain, overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 16, @@ -154,7 +102,7 @@ class _RowItemState extends State with TickerProviderStateMixin { ), const SizedBox(width: 16), Text( - widget.number, + number, style: TextStyle( color: Theme.of(context).colorScheme.onSurface ), @@ -167,7 +115,7 @@ class _RowItemState extends State with TickerProviderStateMixin { } } -class OthersRowItem extends StatefulWidget { +class OthersRowItem extends StatelessWidget { final List> items; final bool showColor; @@ -177,111 +125,60 @@ class OthersRowItem extends StatefulWidget { required this.showColor, }); - @override - State createState() => _OthersRowItemState(); -} - -class _OthersRowItemState extends State with SingleTickerProviderStateMixin { - late AnimationController expandController; - late Animation animation; - - @override - void initState() { - super.initState(); - prepareAnimations(); - _runExpandCheck(); - } - - void prepareAnimations() { - expandController = AnimationController( - vsync: this, - duration: const Duration(milliseconds: 250) - ); - animation = CurvedAnimation( - parent: expandController, - curve: Curves.ease, - ); - } - - void _runExpandCheck() { - if (widget.showColor) { - expandController.forward(); - } - else { - expandController.reverse(); - } - } - - @override - void didUpdateWidget(oldWidget) { - super.didUpdateWidget(oldWidget); - _runExpandCheck(); - } - - @override - void dispose() { - expandController.dispose(); - super.dispose(); - } - @override Widget build(BuildContext context) { - if (widget.items.length <= 5) { + if (items.length <= 5) { return const SizedBox(); } - return SizeTransition( - axisAlignment: 1.0, - sizeFactor: animation, - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 20, - vertical: 8 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Flexible( - child: Row( - children: [ - Container( - margin: const EdgeInsets.only(right: 16), - width: 12, - height: 12, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(30), - color: Colors.grey - ), + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 8 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + child: Row( + children: [ + Container( + margin: const EdgeInsets.only(right: 16), + width: 12, + height: 12, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: Colors.grey ), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - AppLocalizations.of(context)!.others, - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 16, - color: Theme.of(context).colorScheme.onSurface - ), + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + AppLocalizations.of(context)!.others, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurface ), - ], - ), + ), + ], ), - ], - ), + ), + ], ), - const SizedBox(width: 16), - Text( - List.from( - widget.items.sublist(5, widget.items.length).map((e) => e.values.first.toInt()) - ).reduce((a, b) => a + b).toString(), - style: TextStyle( - color: Theme.of(context).colorScheme.onSurface - ), - ) - ], - ), + ), + const SizedBox(width: 16), + Text( + List.from( + items.sublist(5, items.length).map((e) => e.values.first.toInt()) + ).reduce((a, b) => a + b).toString(), + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ) + ], ), ); } From 2d991ce9dfadaf6538a06a003b094586fc4e10d9 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 25 Jan 2024 00:51:46 +0100 Subject: [PATCH 051/236] Fixed showColor --- lib/screens/home/top_items/row_item.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/screens/home/top_items/row_item.dart b/lib/screens/home/top_items/row_item.dart index bc8856b..bfa43e7 100644 --- a/lib/screens/home/top_items/row_item.dart +++ b/lib/screens/home/top_items/row_item.dart @@ -62,7 +62,7 @@ class RowItem extends StatelessWidget { Flexible( child: Row( children: [ - Container( + if (showColor == true) Container( margin: const EdgeInsets.only(right: 16), width: 12, height: 12, @@ -142,7 +142,7 @@ class OthersRowItem extends StatelessWidget { Flexible( child: Row( children: [ - Container( + if (showColor == true) Container( margin: const EdgeInsets.only(right: 16), width: 12, height: 12, From 5b2523158b46e522fa48ade1beb4e77ab7174d5a Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 25 Jan 2024 00:55:12 +0100 Subject: [PATCH 052/236] Small change --- lib/widgets/custom_pie_chart.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/widgets/custom_pie_chart.dart b/lib/widgets/custom_pie_chart.dart index 0c8f9f6..343ec58 100644 --- a/lib/widgets/custom_pie_chart.dart +++ b/lib/widgets/custom_pie_chart.dart @@ -7,11 +7,11 @@ class CustomPieChart extends StatelessWidget { final Duration? animationDuration; const CustomPieChart({ - Key? key, + super.key, required this.data, required this.colors, - this.animationDuration = const Duration(milliseconds: 800), - }) : super(key: key); + this.animationDuration = const Duration(milliseconds: 800), + }); @override Widget build(BuildContext context) { From d73ad93180fb5191d2d4270279d06e6526a9a1cc Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 25 Jan 2024 22:34:30 +0100 Subject: [PATCH 053/236] Created block time schedule settings --- README.md | 1 + lib/l10n/app_en.arb | 20 +- lib/l10n/app_es.arb | 18 +- lib/models/clients.dart | 68 ++++- .../clients/client/blocking_schedule.dart | 143 +++++++++ .../client/blocking_schedule_modal.dart | 283 ++++++++++++++++++ lib/screens/clients/client/client_form.dart | 10 + lib/screens/clients/client/client_screen.dart | 16 +- pubspec.lock | 8 + pubspec.yaml | 1 + 10 files changed, 560 insertions(+), 8 deletions(-) create mode 100644 lib/screens/clients/client/blocking_schedule.dart create mode 100644 lib/screens/clients/client/blocking_schedule_modal.dart diff --git a/README.md b/README.md index 930d090..fb9505d 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,7 @@ On [this repository](https://github.com/JuanRodenas/Pihole_list) you can find a - [flutter reorderable list](https://pub.dev/packages/flutter_reorderable_list) - [pie chart](https://pub.dev/packages/pie_chart) - [segmented button slide](https://pub.dev/packages/segmented_button_slide) +- [timezone](https://pub.dev/packages/timezone)
    diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index b7e9999..6e281d4 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -719,7 +719,7 @@ "unblockClient": "Unblock client", "blockingClient": "Blocking client...", "unblockingClient": "Unblocking client...", - "upstreamDnsCacheConfiguration": "Configuración de la caché DNS upstream", + "upstreamDnsCacheConfiguration": "DNS upstream cache configuration", "enableDnsCachingClient": "Enable DNS caching for this client", "dnsCacheSize": "DNS cache size", "nameInvalid": "Name is required", @@ -729,5 +729,21 @@ "redirectHttpsWarning": "If you have enabled \"Redirect to HTTPS automatically\" on your AdGuard Home server, you must select an HTTPS connection and use the HTTPS port of your server.", "logsSettingsDescription": "Configure query logs", "ignoredDomains": "Ignored domains", - "noIgnoredDomainsAdded": "No domains to ignore added" + "noIgnoredDomainsAdded": "No domains to ignore added", + "pauseServiceBlocking": "Pause service blocking", + "newSchedule": "New schedule", + "editSchedule": "Edit schedule", + "timezone": "Timezone", + "monday": "Monday", + "tuesday": "Tuesday", + "wednesday": "Wednesday", + "thursday": "Thursday", + "friday": "Friday", + "saturday": "Saturday", + "sunday": "Sunday", + "from": "From: {from}", + "to": "To: {to}", + "selectStartTime": "Select start time", + "selectEndTime": "Select end time", + "startTimeBeforeEndTime": "Start time must be before end time." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 0ea54a0..55f8237 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -729,5 +729,21 @@ "redirectHttpsWarning": "Si tienes activado \"Redireccionar a HTTPS automáticamente\" en tu servidor AdGuard Home, debes seleccionar una conexión HTTPS y utilizar el puerto de HTTPS de tu servidor.", "logsSettingsDescription": "Configura los registros de peticiones", "ignoredDomains": "Dominios ignorados", - "noIgnoredDomainsAdded": "No hay añadidos dominios para ignorar" + "noIgnoredDomainsAdded": "No hay añadidos dominios para ignorar", + "pauseServiceBlocking": "Pausa del servicio de bloqueo", + "newSchedule": "Nueva programación", + "editSchedule": "Editar programación", + "timezone": "Zona horaria", + "monday": "Lunes", + "tuesday": "Martes", + "wednesday": "Miércoles", + "thursday": "Jueves", + "friday": "Viernes", + "saturday": "Sábado", + "sunday": "Domingo", + "from": "Desde: {from}", + "to": "Hasta: {to}", + "selectStartTime": "Seleccionar hora de inicio", + "selectEndTime": "Seleccionar hora de fin", + "startTimeBeforeEndTime": "La hora de inicio debe ser anterior a la hora de fin." } \ No newline at end of file diff --git a/lib/models/clients.dart b/lib/models/clients.dart index 67740bd..56a967e 100644 --- a/lib/models/clients.dart +++ b/lib/models/clients.dart @@ -91,6 +91,7 @@ class Client { final bool? ignoreStatistics; final bool? upstreamsCacheEnabled; final int? upstreamsCacheSize; + final BlockedServicesSchedule? blockedServicesSchedule; Client({ required this.name, @@ -108,6 +109,7 @@ class Client { required this.ignoreStatistics, required this.upstreamsCacheEnabled, required this.upstreamsCacheSize, + required this.blockedServicesSchedule, }); factory Client.fromJson(Map json) => Client( @@ -127,7 +129,8 @@ class Client { ignoreQuerylog: json["ignore_querylog"], ignoreStatistics: json["ignore_statistics"], upstreamsCacheEnabled: json["upstreams_cache_enabled"], - upstreamsCacheSize: json["upstreams_cache_size"] + upstreamsCacheSize: json["upstreams_cache_size"], + blockedServicesSchedule: BlockedServicesSchedule.fromJson(json["blocked_services_schedule"]) ); Map toJson() => { @@ -145,6 +148,67 @@ class Client { "ignore_querylog": ignoreQuerylog, "ignore_statistics": ignoreStatistics, "upstreams_cache_enabled": upstreamsCacheEnabled, - "upstreams_cache_size": upstreamsCacheSize + "upstreams_cache_size": upstreamsCacheSize, + "blocked_services_schedule":blockedServicesSchedule?.toJson() + }; +} + +class BlockedServicesSchedule { + final String? timeZone; + final BlockedServicesScheduleDay? mon; + final BlockedServicesScheduleDay? tue; + final BlockedServicesScheduleDay? wed; + final BlockedServicesScheduleDay? thu; + final BlockedServicesScheduleDay? fri; + final BlockedServicesScheduleDay? sat; + final BlockedServicesScheduleDay? sun; + + BlockedServicesSchedule({ + this.timeZone, + this.mon, + this.tue, + this.wed, + this.thu, + this.fri, + this.sat, + this.sun + }); + + factory BlockedServicesSchedule.fromJson(Map json) => BlockedServicesSchedule( + timeZone: json["time_zone"], + mon: json["mon"] == null ? null : BlockedServicesScheduleDay.fromJson(json["mon"]), + tue: json["tue"] == null ? null : BlockedServicesScheduleDay.fromJson(json["tue"]), + wed: json["wed"] == null ? null : BlockedServicesScheduleDay.fromJson(json["wed"]), + thu: json["thu"] == null ? null : BlockedServicesScheduleDay.fromJson(json["thu"]), + fri: json["fri"] == null ? null : BlockedServicesScheduleDay.fromJson(json["fri"]), + sat: json["sat"] == null ? null : BlockedServicesScheduleDay.fromJson(json["sat"]), + sun: json["sun"] == null ? null : BlockedServicesScheduleDay.fromJson(json["sun"]), + ); + + Map toJson() => { + "time_zone": timeZone, + "tue": tue?.toJson(), + "wed": wed?.toJson(), + "thu": thu?.toJson(), + }; +} + +class BlockedServicesScheduleDay { + final int? start; + final int? end; + + BlockedServicesScheduleDay({ + this.start, + this.end, + }); + + factory BlockedServicesScheduleDay.fromJson(Map json) => BlockedServicesScheduleDay( + start: json["start"], + end: json["end"], + ); + + Map toJson() => { + "start": start, + "end": end, }; } \ No newline at end of file diff --git a/lib/screens/clients/client/blocking_schedule.dart b/lib/screens/clients/client/blocking_schedule.dart new file mode 100644 index 0000000..0ae7abb --- /dev/null +++ b/lib/screens/clients/client/blocking_schedule.dart @@ -0,0 +1,143 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/screens/clients/client/blocking_schedule_modal.dart'; +import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; +import 'package:adguard_home_manager/widgets/section_label.dart'; + +import 'package:adguard_home_manager/models/clients.dart'; + +class BlockingSchedule extends StatelessWidget { + final BlockedServicesSchedule blockedServicesSchedule; + final void Function(BlockedServicesSchedule) setBlockedServicesSchedule; + + const BlockingSchedule({ + super.key, + required this.blockedServicesSchedule, + required this.setBlockedServicesSchedule, + }); + + @override + Widget build(BuildContext context) { + void openAddScheduleModal() { + showDialog( + context: context, + builder: (context) => BlockingScheduleModal( + onConfirm: (v) => {}, + ), + ); + } + + String formatTime(int time) { + final formatted = Duration(milliseconds: time); + final hours = formatted.inHours; + final minutes = formatted.inMinutes - hours*60; + return "${hours.toString().padLeft(2 , '0')}:${minutes.toString().padLeft(2, '0')}"; + } + + return Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + SectionLabel(label: AppLocalizations.of(context)!.pauseServiceBlocking), + Padding( + padding: const EdgeInsets.only(right: 12), + child: IconButton( + onPressed: openAddScheduleModal, + icon: const Icon(Icons.add) + ), + ) + ], + ), + const SizedBox(height: 2), + if (blockedServicesSchedule.mon != null) _ScheduleTile( + weekday: AppLocalizations.of(context)!.monday, + schedule: "${formatTime(blockedServicesSchedule.mon!.start!)} - ${formatTime(blockedServicesSchedule.mon!.end!)}", + onEdit: () => {}, + onDelete: () => {} + ), + if (blockedServicesSchedule.tue != null) _ScheduleTile( + weekday: AppLocalizations.of(context)!.tuesday, + schedule: "${formatTime(blockedServicesSchedule.tue!.start!)} - ${formatTime(blockedServicesSchedule.tue!.end!)}", + onEdit: () => {}, + onDelete: () => {} + ), + if (blockedServicesSchedule.wed != null) _ScheduleTile( + weekday: AppLocalizations.of(context)!.wednesday, + schedule: "${formatTime(blockedServicesSchedule.wed!.start!)} - ${formatTime(blockedServicesSchedule.wed!.end!)}", + onEdit: () => {}, + onDelete: () => {} + ), + if (blockedServicesSchedule.thu != null) _ScheduleTile( + weekday: AppLocalizations.of(context)!.thursday, + schedule: "${formatTime(blockedServicesSchedule.thu!.start!)} - ${formatTime(blockedServicesSchedule.thu!.end!)}", + onEdit: () => {}, + onDelete: () => {} + ), + if (blockedServicesSchedule.fri != null) _ScheduleTile( + weekday: AppLocalizations.of(context)!.friday, + schedule: "${formatTime(blockedServicesSchedule.fri!.start!)} - ${formatTime(blockedServicesSchedule.fri!.end!)}", + onEdit: () => {}, + onDelete: () => {} + ), + if (blockedServicesSchedule.sat != null) _ScheduleTile( + weekday: AppLocalizations.of(context)!.saturday, + schedule: "${formatTime(blockedServicesSchedule.sat!.start!)} - ${formatTime(blockedServicesSchedule.sat!.end!)}", + onEdit: () => {}, + onDelete: () => {} + ), + if (blockedServicesSchedule.sun != null) _ScheduleTile( + weekday: AppLocalizations.of(context)!.sunday, + schedule: "${formatTime(blockedServicesSchedule.sun!.start!)} - ${formatTime(blockedServicesSchedule.sun!.end!)}", + onEdit: () => {}, + onDelete: () => {} + ), + ], + ); + } +} + +class _ScheduleTile extends StatelessWidget { + final String weekday; + final String schedule; + final void Function() onEdit; + final void Function() onDelete; + + const _ScheduleTile({ + required this.weekday, + required this.schedule, + required this.onEdit, + required this.onDelete, + }); + + @override + Widget build(BuildContext context) { + return CustomListTile( + title: weekday, + subtitle: schedule, + trailing: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + onPressed: onEdit, + icon: const Icon(Icons.edit_rounded), + tooltip: AppLocalizations.of(context)!.edit, + ), + const SizedBox(width: 4), + IconButton( + onPressed: onDelete, + icon: const Icon(Icons.delete_rounded), + tooltip: AppLocalizations.of(context)!.delete, + ), + ], + ), + padding: const EdgeInsets.only( + left: 16, + top: 6, + right: 12, + bottom: 6 + ) + ); + } +} \ No newline at end of file diff --git a/lib/screens/clients/client/blocking_schedule_modal.dart b/lib/screens/clients/client/blocking_schedule_modal.dart new file mode 100644 index 0000000..f4e18ef --- /dev/null +++ b/lib/screens/clients/client/blocking_schedule_modal.dart @@ -0,0 +1,283 @@ +import 'package:flutter/material.dart'; +import 'package:timezone/timezone.dart' as tz; +import 'package:timezone/data/latest.dart' as tz; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/models/clients.dart'; + +class BlockingScheduleModal extends StatefulWidget { + final void Function(BlockedServicesSchedule) onConfirm; + + const BlockingScheduleModal({ + super.key, + required this.onConfirm, + }); + + @override + State createState() => _BlockingScheduleModalState(); +} + +class _BlockingScheduleModalState extends State { + String? _timezone; + List _weekdays = []; + TimeOfDay? _from; + TimeOfDay? _to; + + bool _compareTimes(TimeOfDay startTime, TimeOfDay endTime) { + bool result = false; + int startTimeInt = (startTime.hour * 60 + startTime.minute) * 60; + int endTimeInt = (endTime.hour * 60 + endTime.minute) * 60; + + if (endTimeInt > startTimeInt) { + result = true; + } else { + result = false; + } + return result; + } + + bool _validate() { + return _timezone != null && + _weekdays.isNotEmpty && + _from != null && + _to != null && + _compareTimes(_from!, _to!); + } + + int _timeOfDayToInt(TimeOfDay timeOfDay) { + return Duration( + days: 0, + hours: timeOfDay.hour, + minutes: timeOfDay.minute, + seconds: 0 + ).inMinutes; + } + + @override + void initState() { + tz.initializeTimeZones(); + _timezone = tz.local.name; + super.initState(); + } + + @override + Widget build(BuildContext context) { + void onSelectWeekday(bool newStatus, String day) { + if (newStatus == true && !_weekdays.contains(day)) { + setState(() => _weekdays.add(day)); + } + else if (newStatus == false) { + setState(() => _weekdays = _weekdays.where((e) => e != day).toList()); + } + } + + void onConfirm() { + widget.onConfirm( + BlockedServicesSchedule( + timeZone: _timezone, + mon: _weekdays.contains("mon") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, + tue: _weekdays.contains("tue") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, + wed: _weekdays.contains("wed") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, + thu: _weekdays.contains("thu") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, + fri: _weekdays.contains("fri") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, + sat: _weekdays.contains("sat") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, + sun: _weekdays.contains("sun") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, + ) + ); + } + + final valid = _validate(); + final validTimes = _from != null && _to != null + ? _compareTimes(_from!, _to!) + : null; + + return Dialog( + child: Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Icons.schedule_rounded, + size: 24, + color: Theme.of(context).listTileTheme.iconColor + ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.newSchedule, + textAlign: TextAlign.center, + style: const TextStyle( + fontSize: 24, + ), + ), + const SizedBox(height: 30), + LayoutBuilder( + builder: (context, constraints) => DropdownButtonFormField( + items: tz.timeZoneDatabase.locations.keys.map((item) => DropdownMenuItem( + value: item, + child: SizedBox( + width: constraints.maxWidth-48, + child: Text( + item, + overflow: TextOverflow.ellipsis, + ), + ), + )).toList(), + value: _timezone, + onChanged: (v) => setState(() => _timezone = v), + decoration: InputDecoration( + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + label: Text(AppLocalizations.of(context)!.timezone) + ), + borderRadius: BorderRadius.circular(20), + ), + ), + const SizedBox(height: 16), + SizedBox( + height: 50, + child: ListView( + scrollDirection: Axis.horizontal, + children: [ + FilterChip( + label: Text(AppLocalizations.of(context)!.monday), + selected: _weekdays.contains("mon"), + onSelected: (value) => onSelectWeekday(value, "mon") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.tuesday), + selected: _weekdays.contains("tue"), + onSelected: (value) => onSelectWeekday(value, "tue") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.wednesday), + selected: _weekdays.contains("wed"), + onSelected: (value) => onSelectWeekday(value, "wed") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.thursday), + selected: _weekdays.contains("thu"), + onSelected: (value) => onSelectWeekday(value, "thu") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.friday), + selected: _weekdays.contains("fri"), + onSelected: (value) => onSelectWeekday(value, "fri") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.saturday), + selected: _weekdays.contains("sat"), + onSelected: (value) => onSelectWeekday(value, "sat") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.sunday), + selected: _weekdays.contains("sun"), + onSelected: (value) => onSelectWeekday(value, "sun") + ), + ], + ), + ), + const SizedBox(height: 16), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + ElevatedButton( + onPressed: () async { + final selected = await showTimePicker( + context: context, + initialTime: _from ?? const TimeOfDay(hour: 0, minute: 0), + helpText: AppLocalizations.of(context)!.selectStartTime, + confirmText: AppLocalizations.of(context)!.confirm, + ); + setState(() => _from = selected); + }, + child: Text( + AppLocalizations.of(context)!.from( + _from != null ? "${_from!.hour.toString().padLeft(2, '0')}:${_from!.minute.toString().padLeft(2, '0')}" : "--:--" + ) + ) + ), + ElevatedButton( + onPressed: () async { + final selected = await showTimePicker( + context: context, + initialTime: _to ?? const TimeOfDay(hour: 23, minute: 59), + helpText: AppLocalizations.of(context)!.selectEndTime, + confirmText: AppLocalizations.of(context)!.confirm + ); + setState(() => _to = selected); + }, + child: Text( + AppLocalizations.of(context)!.to( + _to != null ? "${_to!.hour.toString().padLeft(2, '0')}:${_to!.minute.toString().padLeft(2, '0')}" : "--:--" + ) + ) + ), + ], + ), + if (validTimes == false) Padding( + padding: const EdgeInsets.only(top: 16), + child: Card( + color: const Color.fromARGB(255, 255, 182, 175), + elevation: 0, + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.error_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + const SizedBox(width: 16), + Expanded( + child: Text( + AppLocalizations.of(context)!.startTimeBeforeEndTime, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ), + ), + ], + ), + ), + ) + ) + ], + ), + ), + ), + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.close) + ), + const SizedBox(width: 8), + TextButton( + onPressed: valid ? () => onConfirm() : null, + child: Text(AppLocalizations.of(context)!.confirm) + ), + ], + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/clients/client/client_form.dart b/lib/screens/clients/client/client_form.dart index e127466..2d22dd7 100644 --- a/lib/screens/clients/client/client_form.dart +++ b/lib/screens/clients/client/client_form.dart @@ -8,6 +8,7 @@ import 'package:adguard_home_manager/screens/clients/client/identifiers_section. import 'package:adguard_home_manager/screens/clients/client/settings_tile.dart'; import 'package:adguard_home_manager/screens/clients/client/tags_section.dart'; import 'package:adguard_home_manager/screens/clients/client/upstream_servers_section.dart'; +import 'package:adguard_home_manager/screens/clients/client/blocking_schedule.dart'; import 'package:adguard_home_manager/widgets/custom_switch_list_tile.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; @@ -52,6 +53,8 @@ class ClientForm extends StatelessWidget { final TextEditingController dnsCacheField; final String? dnsCacheError; final void Function(String?) updateDnsCacheError; + final BlockedServicesSchedule blockedServicesSchedule; + final void Function(BlockedServicesSchedule) setBlockedServicesSchedule; const ClientForm({ super.key, @@ -90,6 +93,8 @@ class ClientForm extends StatelessWidget { required this.dnsCacheField, required this.dnsCacheError, required this.updateDnsCacheError, + required this.blockedServicesSchedule, + required this.setBlockedServicesSchedule, }); @override @@ -282,6 +287,11 @@ class ClientForm extends StatelessWidget { keyboardType: TextInputType.number, ), ), + BlockingSchedule( + blockedServicesSchedule: blockedServicesSchedule, + setBlockedServicesSchedule: setBlockedServicesSchedule, + ), + const SizedBox(height: 16), ], ); } diff --git a/lib/screens/clients/client/client_screen.dart b/lib/screens/clients/client/client_screen.dart index f41de69..225b5eb 100644 --- a/lib/screens/clients/client/client_screen.dart +++ b/lib/screens/clients/client/client_screen.dart @@ -81,6 +81,8 @@ class _ClientScreenState extends State { bool _enableDnsCache = false; final _dnsCacheField = TextEditingController(); String? _dnsCacheError; + + BlockedServicesSchedule _blockedServicesSchedule = BlockedServicesSchedule(); // VALIDATIONS bool _nameValid = true; @@ -140,6 +142,9 @@ class _ClientScreenState extends State { _dnsCacheField.text = widget.client!.upstreamsCacheSize != null ? widget.client!.upstreamsCacheSize.toString() : ""; + if (widget.client!.blockedServicesSchedule != null) { + _blockedServicesSchedule = widget.client!.blockedServicesSchedule!; + } } super.initState(); } @@ -166,7 +171,8 @@ class _ClientScreenState extends State { upstreamsCacheEnabled: _enableDnsCache, upstreamsCacheSize: _dnsCacheField.text != "" ? int.parse(_dnsCacheField.text) - : null + : null, + blockedServicesSchedule: _blockedServicesSchedule ); widget.onConfirm(client); } @@ -268,7 +274,9 @@ class _ClientScreenState extends State { updateEnableDnsCache: (v) => setState(() => _enableDnsCache = v), dnsCacheField: _dnsCacheField, dnsCacheError: _dnsCacheError, - updateDnsCacheError: (v) => setState(() => _dnsCacheError = v) + updateDnsCacheError: (v) => setState(() => _dnsCacheError = v), + blockedServicesSchedule: _blockedServicesSchedule, + setBlockedServicesSchedule: (v) => setState(() => _blockedServicesSchedule = v), ), ], ), @@ -353,7 +361,9 @@ class _ClientScreenState extends State { updateEnableDnsCache: (v) => setState(() => _enableDnsCache = v), dnsCacheField: _dnsCacheField, dnsCacheError: _dnsCacheError, - updateDnsCacheError: (v) => setState(() => _dnsCacheError = v) + updateDnsCacheError: (v) => setState(() => _dnsCacheError = v), + blockedServicesSchedule: _blockedServicesSchedule, + setBlockedServicesSchedule: (v) => setState(() => _blockedServicesSchedule = v), ), ], ), diff --git a/pubspec.lock b/pubspec.lock index cf61106..1cb21ba 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -659,6 +659,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.1" + timezone: + dependency: "direct main" + description: + name: timezone + sha256: "1cfd8ddc2d1cfd836bc93e67b9be88c3adaeca6f40a00ca999104c30693cdca0" + url: "https://pub.dev" + source: hosted + version: "0.9.2" typed_data: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index e4dbaa8..a488bef 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -76,6 +76,7 @@ dependencies: pie_chart: ^5.4.0 segmented_button_slide: ^1.0.4 http: ^1.1.2 + timezone: ^0.9.2 dev_dependencies: flutter_test: From 283d4e5c41918b74f73beb9aa0465b65da778499 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 26 Jan 2024 21:18:04 +0100 Subject: [PATCH 054/236] Improved edit schedule --- lib/models/clients.dart | 4 ++ .../clients/client/blocking_schedule.dart | 57 ++++++++++++++++--- .../client/blocking_schedule_modal.dart | 40 ++++++++----- 3 files changed, 80 insertions(+), 21 deletions(-) diff --git a/lib/models/clients.dart b/lib/models/clients.dart index 56a967e..2ebcccd 100644 --- a/lib/models/clients.dart +++ b/lib/models/clients.dart @@ -187,9 +187,13 @@ class BlockedServicesSchedule { Map toJson() => { "time_zone": timeZone, + "mon": mon?.toJson(), "tue": tue?.toJson(), "wed": wed?.toJson(), "thu": thu?.toJson(), + "fri": fri?.toJson(), + "sat": sat?.toJson(), + "sun": sun?.toJson(), }; } diff --git a/lib/screens/clients/client/blocking_schedule.dart b/lib/screens/clients/client/blocking_schedule.dart index 0ae7abb..0bcb21c 100644 --- a/lib/screens/clients/client/blocking_schedule.dart +++ b/lib/screens/clients/client/blocking_schedule.dart @@ -7,6 +7,20 @@ import 'package:adguard_home_manager/widgets/section_label.dart'; import 'package:adguard_home_manager/models/clients.dart'; +class EditBlockingSchedule { + final String timezone; + final List weekday; + final int start; + final int end; + + const EditBlockingSchedule({ + required this.timezone, + required this.weekday, + required this.start, + required this.end, + }); +} + class BlockingSchedule extends StatelessWidget { final BlockedServicesSchedule blockedServicesSchedule; final void Function(BlockedServicesSchedule) setBlockedServicesSchedule; @@ -19,11 +33,38 @@ class BlockingSchedule extends StatelessWidget { @override Widget build(BuildContext context) { + void updateSchedule(EditBlockingSchedule v) { + final scheduleJson = blockedServicesSchedule.toJson(); + for (var weekday in v.weekday) { + scheduleJson[weekday] = { + "start": v.start, + "end": v.end + }; + } + scheduleJson["time_zone"] = v.timezone; + setBlockedServicesSchedule(BlockedServicesSchedule.fromJson(scheduleJson)); + } + void openAddScheduleModal() { showDialog( context: context, builder: (context) => BlockingScheduleModal( - onConfirm: (v) => {}, + onConfirm: updateSchedule, + ), + ); + } + + void openEditScheduleModal(String weekday) { + showDialog( + context: context, + builder: (context) => BlockingScheduleModal( + schedule: EditBlockingSchedule( + timezone: blockedServicesSchedule.timeZone!, + weekday: [weekday], + start: blockedServicesSchedule.toJson()[weekday]['start'], + end: blockedServicesSchedule.toJson()[weekday]['end'], + ), + onConfirm: updateSchedule, ), ); } @@ -54,43 +95,43 @@ class BlockingSchedule extends StatelessWidget { if (blockedServicesSchedule.mon != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.monday, schedule: "${formatTime(blockedServicesSchedule.mon!.start!)} - ${formatTime(blockedServicesSchedule.mon!.end!)}", - onEdit: () => {}, + onEdit: () => openEditScheduleModal("mon"), onDelete: () => {} ), if (blockedServicesSchedule.tue != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.tuesday, schedule: "${formatTime(blockedServicesSchedule.tue!.start!)} - ${formatTime(blockedServicesSchedule.tue!.end!)}", - onEdit: () => {}, + onEdit: () => openEditScheduleModal("tue"), onDelete: () => {} ), if (blockedServicesSchedule.wed != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.wednesday, schedule: "${formatTime(blockedServicesSchedule.wed!.start!)} - ${formatTime(blockedServicesSchedule.wed!.end!)}", - onEdit: () => {}, + onEdit: () => openEditScheduleModal("wed"), onDelete: () => {} ), if (blockedServicesSchedule.thu != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.thursday, schedule: "${formatTime(blockedServicesSchedule.thu!.start!)} - ${formatTime(blockedServicesSchedule.thu!.end!)}", - onEdit: () => {}, + onEdit: () => openEditScheduleModal("thu"), onDelete: () => {} ), if (blockedServicesSchedule.fri != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.friday, schedule: "${formatTime(blockedServicesSchedule.fri!.start!)} - ${formatTime(blockedServicesSchedule.fri!.end!)}", - onEdit: () => {}, + onEdit: () => openEditScheduleModal("fri"), onDelete: () => {} ), if (blockedServicesSchedule.sat != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.saturday, schedule: "${formatTime(blockedServicesSchedule.sat!.start!)} - ${formatTime(blockedServicesSchedule.sat!.end!)}", - onEdit: () => {}, + onEdit: () => openEditScheduleModal("sat"), onDelete: () => {} ), if (blockedServicesSchedule.sun != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.sunday, schedule: "${formatTime(blockedServicesSchedule.sun!.start!)} - ${formatTime(blockedServicesSchedule.sun!.end!)}", - onEdit: () => {}, + onEdit: () => openEditScheduleModal("sun"), onDelete: () => {} ), ], diff --git a/lib/screens/clients/client/blocking_schedule_modal.dart b/lib/screens/clients/client/blocking_schedule_modal.dart index f4e18ef..c0b2a43 100644 --- a/lib/screens/clients/client/blocking_schedule_modal.dart +++ b/lib/screens/clients/client/blocking_schedule_modal.dart @@ -3,13 +3,15 @@ import 'package:timezone/timezone.dart' as tz; import 'package:timezone/data/latest.dart' as tz; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:adguard_home_manager/models/clients.dart'; +import 'package:adguard_home_manager/screens/clients/client/blocking_schedule.dart'; class BlockingScheduleModal extends StatefulWidget { - final void Function(BlockedServicesSchedule) onConfirm; + final EditBlockingSchedule? schedule; + final void Function(EditBlockingSchedule) onConfirm; const BlockingScheduleModal({ super.key, + this.schedule, required this.onConfirm, }); @@ -50,13 +52,26 @@ class _BlockingScheduleModalState extends State { hours: timeOfDay.hour, minutes: timeOfDay.minute, seconds: 0 - ).inMinutes; + ).inMilliseconds; + } + + TimeOfDay _intToTimeOfDay(int value) { + final duration = Duration(milliseconds: value); + final minutes = duration.inMinutes - duration.inHours*60; + return TimeOfDay(hour: duration.inHours, minute: minutes); } @override void initState() { tz.initializeTimeZones(); _timezone = tz.local.name; + if (widget.schedule != null) { + _timezone = widget.schedule!.timezone; + _weekdays = widget.schedule!.weekday; + _from = _intToTimeOfDay(widget.schedule!.start); + _to = _intToTimeOfDay(widget.schedule!.end); + } + super.initState(); } @@ -73,17 +88,14 @@ class _BlockingScheduleModalState extends State { void onConfirm() { widget.onConfirm( - BlockedServicesSchedule( - timeZone: _timezone, - mon: _weekdays.contains("mon") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, - tue: _weekdays.contains("tue") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, - wed: _weekdays.contains("wed") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, - thu: _weekdays.contains("thu") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, - fri: _weekdays.contains("fri") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, - sat: _weekdays.contains("sat") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, - sun: _weekdays.contains("sun") ? BlockedServicesScheduleDay(start: _timeOfDayToInt(_from!), end: _timeOfDayToInt(_to!)) : null, + EditBlockingSchedule( + timezone: _timezone!, + weekday: _weekdays, + start: _timeOfDayToInt(_from!), + end: _timeOfDayToInt(_to!) ) ); + Navigator.pop(context); } final valid = _validate(); @@ -109,7 +121,9 @@ class _BlockingScheduleModalState extends State { ), const SizedBox(height: 16), Text( - AppLocalizations.of(context)!.newSchedule, + widget.schedule != null + ? AppLocalizations.of(context)!.editSchedule + : AppLocalizations.of(context)!.newSchedule, textAlign: TextAlign.center, style: const TextStyle( fontSize: 24, From 770366eae64e2fa65381c6b103a9f6c0b64f14ac Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 26 Jan 2024 21:23:37 +0100 Subject: [PATCH 055/236] Added delete schedule and no schedule message --- lib/l10n/app_en.arb | 3 +- lib/l10n/app_es.arb | 3 +- .../clients/client/blocking_schedule.dart | 39 +++++++++++++++---- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 6e281d4..5c8adbf 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -745,5 +745,6 @@ "to": "To: {to}", "selectStartTime": "Select start time", "selectEndTime": "Select end time", - "startTimeBeforeEndTime": "Start time must be before end time." + "startTimeBeforeEndTime": "Start time must be before end time.", + "noBlockingScheduleThisDevice": "There's no blocking schedule for this device." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 55f8237..6185a8f 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -745,5 +745,6 @@ "to": "Hasta: {to}", "selectStartTime": "Seleccionar hora de inicio", "selectEndTime": "Seleccionar hora de fin", - "startTimeBeforeEndTime": "La hora de inicio debe ser anterior a la hora de fin." + "startTimeBeforeEndTime": "La hora de inicio debe ser anterior a la hora de fin.", + "noBlockingScheduleThisDevice": "No hay programación de bloqueo para este dispositivo." } \ No newline at end of file diff --git a/lib/screens/clients/client/blocking_schedule.dart b/lib/screens/clients/client/blocking_schedule.dart index 0bcb21c..f17bd4d 100644 --- a/lib/screens/clients/client/blocking_schedule.dart +++ b/lib/screens/clients/client/blocking_schedule.dart @@ -69,6 +69,12 @@ class BlockingSchedule extends StatelessWidget { ); } + void onDeleteSchedule(String weekday) { + final scheduleJson = blockedServicesSchedule.toJson(); + scheduleJson[weekday] = null; + setBlockedServicesSchedule(BlockedServicesSchedule.fromJson(scheduleJson)); + } + String formatTime(int time) { final formatted = Duration(milliseconds: time); final hours = formatted.inHours; @@ -92,47 +98,66 @@ class BlockingSchedule extends StatelessWidget { ], ), const SizedBox(height: 2), + if ( + blockedServicesSchedule.mon == null && + blockedServicesSchedule.tue == null && + blockedServicesSchedule.wed == null && + blockedServicesSchedule.thu == null && + blockedServicesSchedule.fri == null && + blockedServicesSchedule.sat == null && + blockedServicesSchedule.sun == null + ) Padding( + padding: const EdgeInsets.all(16), + child: Text( + AppLocalizations.of(context)!.noBlockingScheduleThisDevice, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + ), if (blockedServicesSchedule.mon != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.monday, schedule: "${formatTime(blockedServicesSchedule.mon!.start!)} - ${formatTime(blockedServicesSchedule.mon!.end!)}", onEdit: () => openEditScheduleModal("mon"), - onDelete: () => {} + onDelete: () => onDeleteSchedule("mon") ), if (blockedServicesSchedule.tue != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.tuesday, schedule: "${formatTime(blockedServicesSchedule.tue!.start!)} - ${formatTime(blockedServicesSchedule.tue!.end!)}", onEdit: () => openEditScheduleModal("tue"), - onDelete: () => {} + onDelete: () => onDeleteSchedule("tue") ), if (blockedServicesSchedule.wed != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.wednesday, schedule: "${formatTime(blockedServicesSchedule.wed!.start!)} - ${formatTime(blockedServicesSchedule.wed!.end!)}", onEdit: () => openEditScheduleModal("wed"), - onDelete: () => {} + onDelete: () => onDeleteSchedule("wed") ), if (blockedServicesSchedule.thu != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.thursday, schedule: "${formatTime(blockedServicesSchedule.thu!.start!)} - ${formatTime(blockedServicesSchedule.thu!.end!)}", onEdit: () => openEditScheduleModal("thu"), - onDelete: () => {} + onDelete: () => onDeleteSchedule("thu") ), if (blockedServicesSchedule.fri != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.friday, schedule: "${formatTime(blockedServicesSchedule.fri!.start!)} - ${formatTime(blockedServicesSchedule.fri!.end!)}", onEdit: () => openEditScheduleModal("fri"), - onDelete: () => {} + onDelete: () => onDeleteSchedule("fri") ), if (blockedServicesSchedule.sat != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.saturday, schedule: "${formatTime(blockedServicesSchedule.sat!.start!)} - ${formatTime(blockedServicesSchedule.sat!.end!)}", onEdit: () => openEditScheduleModal("sat"), - onDelete: () => {} + onDelete: () => onDeleteSchedule("sat") ), if (blockedServicesSchedule.sun != null) _ScheduleTile( weekday: AppLocalizations.of(context)!.sunday, schedule: "${formatTime(blockedServicesSchedule.sun!.start!)} - ${formatTime(blockedServicesSchedule.sun!.end!)}", onEdit: () => openEditScheduleModal("sun"), - onDelete: () => {} + onDelete: () => onDeleteSchedule("sun") ), ], ); From 91e3ea44f6f2c9249b5901992a63fd4eed443513 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 26 Jan 2024 21:33:41 +0100 Subject: [PATCH 056/236] Fix timezone selection --- lib/l10n/app_en.arb | 3 ++- lib/l10n/app_es.arb | 3 ++- lib/screens/clients/client/blocking_schedule_modal.dart | 1 - 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 5c8adbf..5bba23a 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -746,5 +746,6 @@ "selectStartTime": "Select start time", "selectEndTime": "Select end time", "startTimeBeforeEndTime": "Start time must be before end time.", - "noBlockingScheduleThisDevice": "There's no blocking schedule for this device." + "noBlockingScheduleThisDevice": "There's no blocking schedule for this device.", + "selectTimezone": "Select a timezone" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 6185a8f..c803224 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -746,5 +746,6 @@ "selectStartTime": "Seleccionar hora de inicio", "selectEndTime": "Seleccionar hora de fin", "startTimeBeforeEndTime": "La hora de inicio debe ser anterior a la hora de fin.", - "noBlockingScheduleThisDevice": "No hay programación de bloqueo para este dispositivo." + "noBlockingScheduleThisDevice": "No hay programación de bloqueo para este dispositivo.", + "selectTimezone": "Selecciona una zona horaria" } \ No newline at end of file diff --git a/lib/screens/clients/client/blocking_schedule_modal.dart b/lib/screens/clients/client/blocking_schedule_modal.dart index c0b2a43..239f762 100644 --- a/lib/screens/clients/client/blocking_schedule_modal.dart +++ b/lib/screens/clients/client/blocking_schedule_modal.dart @@ -64,7 +64,6 @@ class _BlockingScheduleModalState extends State { @override void initState() { tz.initializeTimeZones(); - _timezone = tz.local.name; if (widget.schedule != null) { _timezone = widget.schedule!.timezone; _weekdays = widget.schedule!.weekday; From 74a4f659248d5575bf17cca29f15f264f1181a6b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 26 Jan 2024 21:38:21 +0100 Subject: [PATCH 057/236] Added scrollbar --- .../client/blocking_schedule_modal.dart | 363 +++++++++--------- 1 file changed, 191 insertions(+), 172 deletions(-) diff --git a/lib/screens/clients/client/blocking_schedule_modal.dart b/lib/screens/clients/client/blocking_schedule_modal.dart index 239f762..020e933 100644 --- a/lib/screens/clients/client/blocking_schedule_modal.dart +++ b/lib/screens/clients/client/blocking_schedule_modal.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:timezone/timezone.dart' as tz; import 'package:timezone/data/latest.dart' as tz; @@ -20,6 +22,8 @@ class BlockingScheduleModal extends StatefulWidget { } class _BlockingScheduleModalState extends State { + final _weekdaysScrollController = ScrollController(); + String? _timezone; List _weekdays = []; TimeOfDay? _from; @@ -103,192 +107,207 @@ class _BlockingScheduleModalState extends State { : null; return Dialog( - child: Padding( - padding: const EdgeInsets.all(24), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Flexible( - child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Icon( - Icons.schedule_rounded, - size: 24, - color: Theme.of(context).listTileTheme.iconColor - ), - const SizedBox(height: 16), - Text( - widget.schedule != null - ? AppLocalizations.of(context)!.editSchedule - : AppLocalizations.of(context)!.newSchedule, - textAlign: TextAlign.center, - style: const TextStyle( - fontSize: 24, + child: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 500), + child: Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Icons.schedule_rounded, + size: 24, + color: Theme.of(context).listTileTheme.iconColor ), - ), - const SizedBox(height: 30), - LayoutBuilder( - builder: (context, constraints) => DropdownButtonFormField( - items: tz.timeZoneDatabase.locations.keys.map((item) => DropdownMenuItem( - value: item, - child: SizedBox( - width: constraints.maxWidth-48, - child: Text( - item, - overflow: TextOverflow.ellipsis, + const SizedBox(height: 16), + Text( + widget.schedule != null + ? AppLocalizations.of(context)!.editSchedule + : AppLocalizations.of(context)!.newSchedule, + textAlign: TextAlign.center, + style: const TextStyle( + fontSize: 24, + ), + ), + const SizedBox(height: 30), + LayoutBuilder( + builder: (context, constraints) => DropdownButtonFormField( + items: tz.timeZoneDatabase.locations.keys.map((item) => DropdownMenuItem( + value: item, + child: SizedBox( + width: constraints.maxWidth-48, + child: Text( + item, + overflow: TextOverflow.ellipsis, + ), + ), + )).toList(), + value: _timezone, + onChanged: (v) => setState(() => _timezone = v), + decoration: InputDecoration( + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + label: Text(AppLocalizations.of(context)!.timezone) + ), + borderRadius: BorderRadius.circular(20), + ), + ), + const SizedBox(height: 16), + SizedBox( + height: Platform.isMacOS || Platform.isLinux || Platform.isWindows ? 66 : 50, + child: Scrollbar( + controller: _weekdaysScrollController, + thumbVisibility: Platform.isMacOS || Platform.isLinux || Platform.isWindows, + interactive: Platform.isMacOS || Platform.isLinux || Platform.isWindows, + thickness: Platform.isMacOS || Platform.isLinux || Platform.isWindows ? 8 : 0, + child: Padding( + padding: EdgeInsets.only( + bottom: Platform.isMacOS || Platform.isLinux || Platform.isWindows ? 16 : 0 + ), + child: ListView( + controller: _weekdaysScrollController, + scrollDirection: Axis.horizontal, + children: [ + FilterChip( + label: Text(AppLocalizations.of(context)!.monday), + selected: _weekdays.contains("mon"), + onSelected: (value) => onSelectWeekday(value, "mon") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.tuesday), + selected: _weekdays.contains("tue"), + onSelected: (value) => onSelectWeekday(value, "tue") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.wednesday), + selected: _weekdays.contains("wed"), + onSelected: (value) => onSelectWeekday(value, "wed") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.thursday), + selected: _weekdays.contains("thu"), + onSelected: (value) => onSelectWeekday(value, "thu") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.friday), + selected: _weekdays.contains("fri"), + onSelected: (value) => onSelectWeekday(value, "fri") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.saturday), + selected: _weekdays.contains("sat"), + onSelected: (value) => onSelectWeekday(value, "sat") + ), + const SizedBox(width: 8), + FilterChip( + label: Text(AppLocalizations.of(context)!.sunday), + selected: _weekdays.contains("sun"), + onSelected: (value) => onSelectWeekday(value, "sun") + ), + ], ), ), - )).toList(), - value: _timezone, - onChanged: (v) => setState(() => _timezone = v), - decoration: InputDecoration( - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) + ), + ), + const SizedBox(height: 16), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + ElevatedButton( + onPressed: () async { + final selected = await showTimePicker( + context: context, + initialTime: _from ?? const TimeOfDay(hour: 0, minute: 0), + helpText: AppLocalizations.of(context)!.selectStartTime, + confirmText: AppLocalizations.of(context)!.confirm, + ); + setState(() => _from = selected); + }, + child: Text( + AppLocalizations.of(context)!.from( + _from != null ? "${_from!.hour.toString().padLeft(2, '0')}:${_from!.minute.toString().padLeft(2, '0')}" : "--:--" + ) ) ), - label: Text(AppLocalizations.of(context)!.timezone) - ), - borderRadius: BorderRadius.circular(20), - ), - ), - const SizedBox(height: 16), - SizedBox( - height: 50, - child: ListView( - scrollDirection: Axis.horizontal, - children: [ - FilterChip( - label: Text(AppLocalizations.of(context)!.monday), - selected: _weekdays.contains("mon"), - onSelected: (value) => onSelectWeekday(value, "mon") - ), - const SizedBox(width: 8), - FilterChip( - label: Text(AppLocalizations.of(context)!.tuesday), - selected: _weekdays.contains("tue"), - onSelected: (value) => onSelectWeekday(value, "tue") - ), - const SizedBox(width: 8), - FilterChip( - label: Text(AppLocalizations.of(context)!.wednesday), - selected: _weekdays.contains("wed"), - onSelected: (value) => onSelectWeekday(value, "wed") - ), - const SizedBox(width: 8), - FilterChip( - label: Text(AppLocalizations.of(context)!.thursday), - selected: _weekdays.contains("thu"), - onSelected: (value) => onSelectWeekday(value, "thu") - ), - const SizedBox(width: 8), - FilterChip( - label: Text(AppLocalizations.of(context)!.friday), - selected: _weekdays.contains("fri"), - onSelected: (value) => onSelectWeekday(value, "fri") - ), - const SizedBox(width: 8), - FilterChip( - label: Text(AppLocalizations.of(context)!.saturday), - selected: _weekdays.contains("sat"), - onSelected: (value) => onSelectWeekday(value, "sat") - ), - const SizedBox(width: 8), - FilterChip( - label: Text(AppLocalizations.of(context)!.sunday), - selected: _weekdays.contains("sun"), - onSelected: (value) => onSelectWeekday(value, "sun") + ElevatedButton( + onPressed: () async { + final selected = await showTimePicker( + context: context, + initialTime: _to ?? const TimeOfDay(hour: 23, minute: 59), + helpText: AppLocalizations.of(context)!.selectEndTime, + confirmText: AppLocalizations.of(context)!.confirm + ); + setState(() => _to = selected); + }, + child: Text( + AppLocalizations.of(context)!.to( + _to != null ? "${_to!.hour.toString().padLeft(2, '0')}:${_to!.minute.toString().padLeft(2, '0')}" : "--:--" + ) + ) ), ], ), - ), - const SizedBox(height: 16), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - ElevatedButton( - onPressed: () async { - final selected = await showTimePicker( - context: context, - initialTime: _from ?? const TimeOfDay(hour: 0, minute: 0), - helpText: AppLocalizations.of(context)!.selectStartTime, - confirmText: AppLocalizations.of(context)!.confirm, - ); - setState(() => _from = selected); - }, - child: Text( - AppLocalizations.of(context)!.from( - _from != null ? "${_from!.hour.toString().padLeft(2, '0')}:${_from!.minute.toString().padLeft(2, '0')}" : "--:--" - ) - ) - ), - ElevatedButton( - onPressed: () async { - final selected = await showTimePicker( - context: context, - initialTime: _to ?? const TimeOfDay(hour: 23, minute: 59), - helpText: AppLocalizations.of(context)!.selectEndTime, - confirmText: AppLocalizations.of(context)!.confirm - ); - setState(() => _to = selected); - }, - child: Text( - AppLocalizations.of(context)!.to( - _to != null ? "${_to!.hour.toString().padLeft(2, '0')}:${_to!.minute.toString().padLeft(2, '0')}" : "--:--" - ) - ) - ), - ], - ), - if (validTimes == false) Padding( - padding: const EdgeInsets.only(top: 16), - child: Card( - color: const Color.fromARGB(255, 255, 182, 175), - elevation: 0, - child: Padding( - padding: const EdgeInsets.all(16), - child: Row( - children: [ - Icon( - Icons.error_rounded, - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - const SizedBox(width: 16), - Expanded( - child: Text( - AppLocalizations.of(context)!.startTimeBeforeEndTime, - style: TextStyle( - color: Theme.of(context).colorScheme.onSurface + if (validTimes == false) Padding( + padding: const EdgeInsets.only(top: 16), + child: Card( + color: const Color.fromARGB(255, 255, 182, 175), + elevation: 0, + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.error_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + const SizedBox(width: 16), + Expanded( + child: Text( + AppLocalizations.of(context)!.startTimeBeforeEndTime, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), ), ), - ), - ], + ], + ), ), - ), + ) ) - ) - ], + ], + ), ), ), - ), - const SizedBox(height: 24), - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - TextButton( - onPressed: () => Navigator.pop(context), - child: Text(AppLocalizations.of(context)!.close) - ), - const SizedBox(width: 8), - TextButton( - onPressed: valid ? () => onConfirm() : null, - child: Text(AppLocalizations.of(context)!.confirm) - ), - ], - ) - ], + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.close) + ), + const SizedBox(width: 8), + TextButton( + onPressed: valid ? () => onConfirm() : null, + child: Text(AppLocalizations.of(context)!.confirm) + ), + ], + ) + ], + ), ), ), ); From ad3046a84b06811cea4c0632f1d916f380870134 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 26 Jan 2024 21:39:26 +0100 Subject: [PATCH 058/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index a488bef..94b1ce4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.14.1+120 +version: 2.15.0-beta.1+121 environment: sdk: '>=2.18.1 <3.0.0' From 5d458299378fb77b9c8cf172ad2a54e72fc02bf5 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 27 Jan 2024 22:04:54 +0100 Subject: [PATCH 059/236] Changed from to buttons design --- lib/l10n/app_en.arb | 4 +-- lib/l10n/app_es.arb | 4 +-- .../client/blocking_schedule_modal.dart | 26 +++++++++++++------ 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 5bba23a..4b92566 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -741,8 +741,8 @@ "friday": "Friday", "saturday": "Saturday", "sunday": "Sunday", - "from": "From: {from}", - "to": "To: {to}", + "from": "From", + "to": "To", "selectStartTime": "Select start time", "selectEndTime": "Select end time", "startTimeBeforeEndTime": "Start time must be before end time.", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index c803224..ff5bb7d 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -741,8 +741,8 @@ "friday": "Viernes", "saturday": "Sábado", "sunday": "Domingo", - "from": "Desde: {from}", - "to": "Hasta: {to}", + "from": "Desde", + "to": "Hasta", "selectStartTime": "Seleccionar hora de inicio", "selectEndTime": "Seleccionar hora de fin", "startTimeBeforeEndTime": "La hora de inicio debe ser anterior a la hora de fin.", diff --git a/lib/screens/clients/client/blocking_schedule_modal.dart b/lib/screens/clients/client/blocking_schedule_modal.dart index 020e933..1521ead 100644 --- a/lib/screens/clients/client/blocking_schedule_modal.dart +++ b/lib/screens/clients/client/blocking_schedule_modal.dart @@ -236,10 +236,15 @@ class _BlockingScheduleModalState extends State { ); setState(() => _from = selected); }, - child: Text( - AppLocalizations.of(context)!.from( - _from != null ? "${_from!.hour.toString().padLeft(2, '0')}:${_from!.minute.toString().padLeft(2, '0')}" : "--:--" - ) + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Column( + children: [ + Text(AppLocalizations.of(context)!.from), + const SizedBox(height: 2), + Text(_from != null ? "${_from!.hour.toString().padLeft(2, '0')}:${_from!.minute.toString().padLeft(2, '0')}" : "--:--") + ], + ), ) ), ElevatedButton( @@ -252,10 +257,15 @@ class _BlockingScheduleModalState extends State { ); setState(() => _to = selected); }, - child: Text( - AppLocalizations.of(context)!.to( - _to != null ? "${_to!.hour.toString().padLeft(2, '0')}:${_to!.minute.toString().padLeft(2, '0')}" : "--:--" - ) + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Column( + children: [ + Text(AppLocalizations.of(context)!.to), + const SizedBox(height: 2), + Text(_to != null ? "${_to!.hour.toString().padLeft(2, '0')}:${_to!.minute.toString().padLeft(2, '0')}" : "--:--") + ], + ), ) ), ], From 3e206027de1306585399b2c300a88dd6fb0ac094 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 27 Jan 2024 22:25:46 +0100 Subject: [PATCH 060/236] Changed general modals --- .../filters/details/list_details_screen.dart | 404 ++++++++++-------- lib/screens/filters/filters.dart | 44 +- lib/screens/home/home.dart | 2 + .../home/top_items/top_items_section.dart | 60 +-- 4 files changed, 277 insertions(+), 233 deletions(-) diff --git a/lib/screens/filters/details/list_details_screen.dart b/lib/screens/filters/details/list_details_screen.dart index bbc7c41..07d3aa0 100644 --- a/lib/screens/filters/details/list_details_screen.dart +++ b/lib/screens/filters/details/list_details_screen.dart @@ -111,177 +111,6 @@ class _ListDetailsScreenState extends State { } } - List content() { - return [ - CustomListTile( - icon: Icons.shield_rounded, - title: AppLocalizations.of(context)!.currentStatus, - subtitleWidget: Text( - list!.enabled == true - ? AppLocalizations.of(context)!.enabled - : AppLocalizations.of(context)!.disabled, - style: TextStyle( - color: list.enabled == true - ? appConfigProvider.useThemeColorForStatus == true - ? Theme.of(context).colorScheme.primary - : Colors.green - : appConfigProvider.useThemeColorForStatus == true - ? Colors.grey - : Colors.red, - fontWeight: FontWeight.w500 - ), - ), - padding: widget.dialog == true - ? const EdgeInsets.symmetric( - horizontal: 24, - vertical: 8 - ) - : null, - ), - CustomListTile( - icon: Icons.badge_rounded, - title: AppLocalizations.of(context)!.name, - subtitle: list.name, - padding: widget.dialog == true - ? const EdgeInsets.symmetric( - horizontal: 24, - vertical: 8 - ) - : null, - ), - CustomListTile( - icon: Icons.link_rounded, - title: "URL", - subtitle: list.url, - padding: widget.dialog == true - ? const EdgeInsets.symmetric( - horizontal: 24, - vertical: 8 - ) - : null, - trailing: IconButton( - onPressed: () => openUrl(list!.url), - icon: const Icon(Icons.open_in_browser_rounded), - tooltip: AppLocalizations.of(context)!.openListUrl, - ), - ), - CustomListTile( - icon: Icons.list_rounded, - title: AppLocalizations.of(context)!.rules, - subtitle: list.rulesCount.toString(), - padding: widget.dialog == true - ? const EdgeInsets.symmetric( - horizontal: 24, - vertical: 8 - ) - : null, - ), - CustomListTile( - icon: Icons.shield_rounded, - title: AppLocalizations.of(context)!.listType, - subtitle: widget.type == 'whitelist' - ? AppLocalizations.of(context)!.whitelist - : AppLocalizations.of(context)!.blacklist, - padding: widget.dialog == true - ? const EdgeInsets.symmetric( - horizontal: 24, - vertical: 8 - ) - : null, - ), - if (list.lastUpdated != null) CustomListTile( - icon: Icons.schedule_rounded, - title: AppLocalizations.of(context)!.latestUpdate, - subtitle: convertTimestampLocalTimezone(list.lastUpdated!, 'dd-MM-yyyy HH:mm'), - padding: widget.dialog == true - ? const EdgeInsets.symmetric( - horizontal: 24, - vertical: 8 - ) - : null, - ), - if (widget.dialog == true) Container(height: 16) - ]; - } - - List actions() { - return [ - IconButton( - onPressed: () => { - if (width > 700 || !(Platform.isAndroid || Platform.isIOS)) { - showDialog( - context: context, - builder: (ctx) => AddListModal( - list: list, - type: widget.type, - onEdit: ({required Filter list, required String type}) async => updateList( - action: FilteringListActions.edit, - filterList: list - ), - dialog: true, - ), - ) - } - else { - showModalBottomSheet( - context: context, - useRootNavigator: true, - builder: (ctx) => AddListModal( - list: list, - type: widget.type, - onEdit: ({required Filter list, required String type}) async => updateList( - action: FilteringListActions.edit, - filterList: list - ), - dialog: false, - ), - isScrollControlled: true, - backgroundColor: Colors.transparent - ) - } - }, - icon: const Icon(Icons.edit), - tooltip: AppLocalizations.of(context)!.edit, - ), - IconButton( - onPressed: () { - showDialog( - context: context, - builder: (c) => DeleteListModal( - onConfirm: () async { - ProcessModal processModal = ProcessModal(); - processModal.open(AppLocalizations.of(context)!.deletingList); - final result = await filteringProvider.deleteList( - listUrl: list!.url, - type: widget.type, - ); - processModal.close(); - if (result == true) { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.listDeleted, - color: Colors.green - ); - Navigator.pop(context); - } - else { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.listNotDeleted, - color: Colors.red - ); - } - } - ) - ); - }, - icon: const Icon(Icons.delete), - tooltip: AppLocalizations.of(context)!.delete, - ), - const SizedBox(width: 10), - ]; - } - if (widget.dialog == true) { return Dialog( child: ConstrainedBox( @@ -330,7 +159,11 @@ class _ListDetailsScreenState extends State { ? AppLocalizations.of(context)!.disableList : AppLocalizations.of(context)!.enableList, ), - ...actions() + _Actions( + list: list, + type: widget.type, + updateList: (action, filterList) => updateList(action: action, filterList: filterList), + ) ], ) ], @@ -340,7 +173,12 @@ class _ListDetailsScreenState extends State { child: list != null ? SingleChildScrollView( child: Wrap( - children: content(), + children: [ + _Content( + isDialog: widget.dialog, + list: list, + ) + ], ), ) : Center( @@ -361,17 +199,27 @@ class _ListDetailsScreenState extends State { return Dialog.fullscreen( child: Scaffold( appBar: AppBar( - leading: CloseButton( - onPressed: () => Navigator.pop(context), - ), title: Text(AppLocalizations.of(context)!.listDetails), - actions: list != null ? actions() : null, + actions: list != null + ? [ + _Actions( + list: list, + type: widget.type, + updateList: (action, filterList) => updateList(action: action, filterList: filterList), + ) + ] + : null, ), body: SafeArea( child: Stack( children: [ if (list != null) ListView( - children: content(), + children: [ + _Content( + isDialog: widget.dialog, + list: list, + ) + ], ), if (list == null) Center( child: Text( @@ -410,4 +258,204 @@ class _ListDetailsScreenState extends State { ); } } +} + +class _Content extends StatelessWidget { + final Filter list; + final bool isDialog; + + const _Content({ + required this.list, + required this.isDialog + }); + + @override + Widget build(BuildContext context) { + final appConfigProvider = Provider.of(context); + + return Column( + children: [ + CustomListTile( + icon: Icons.shield_rounded, + title: AppLocalizations.of(context)!.currentStatus, + subtitleWidget: Text( + list.enabled == true + ? AppLocalizations.of(context)!.enabled + : AppLocalizations.of(context)!.disabled, + style: TextStyle( + color: list.enabled == true + ? appConfigProvider.useThemeColorForStatus == true + ? Theme.of(context).colorScheme.primary + : Colors.green + : appConfigProvider.useThemeColorForStatus == true + ? Colors.grey + : Colors.red, + fontWeight: FontWeight.w500 + ), + ), + padding: isDialog == true + ? const EdgeInsets.symmetric( + horizontal: 24, + vertical: 8 + ) + : null, + ), + CustomListTile( + icon: Icons.badge_rounded, + title: AppLocalizations.of(context)!.name, + subtitle: list.name, + padding: isDialog == true + ? const EdgeInsets.symmetric( + horizontal: 24, + vertical: 8 + ) + : null, + ), + CustomListTile( + icon: Icons.link_rounded, + title: "URL", + subtitle: list.url, + padding: isDialog == true + ? const EdgeInsets.symmetric( + horizontal: 24, + vertical: 8 + ) + : null, + trailing: IconButton( + onPressed: () => openUrl(list!.url), + icon: const Icon(Icons.open_in_browser_rounded), + tooltip: AppLocalizations.of(context)!.openListUrl, + ), + ), + CustomListTile( + icon: Icons.list_rounded, + title: AppLocalizations.of(context)!.rules, + subtitle: list.rulesCount.toString(), + padding: isDialog == true + ? const EdgeInsets.symmetric( + horizontal: 24, + vertical: 8 + ) + : null, + ), + CustomListTile( + icon: Icons.shield_rounded, + title: AppLocalizations.of(context)!.listType, + subtitle: isDialog == 'whitelist' + ? AppLocalizations.of(context)!.whitelist + : AppLocalizations.of(context)!.blacklist, + padding: isDialog == true + ? const EdgeInsets.symmetric( + horizontal: 24, + vertical: 8 + ) + : null, + ), + if (list.lastUpdated != null) CustomListTile( + icon: Icons.schedule_rounded, + title: AppLocalizations.of(context)!.latestUpdate, + subtitle: convertTimestampLocalTimezone(list.lastUpdated!, 'dd-MM-yyyy HH:mm'), + padding: isDialog == true + ? const EdgeInsets.symmetric( + horizontal: 24, + vertical: 8 + ) + : null, + ), + if (isDialog == true) Container(height: 16) + ], + ); + } +} + +class _Actions extends StatelessWidget { + final Filter? list; + final String type; + final void Function(FilteringListActions, Filter) updateList; + + const _Actions({ + required this.list, + required this.type, + required this.updateList, + }); + + @override + Widget build(BuildContext context) { + final filteringProvider = Provider.of(context); + final appConfigProvider = Provider.of(context); + + final width = MediaQuery.of(context).size.width; + + return Row( + children: [ + IconButton( + onPressed: () => { + if (width > 700 || !(Platform.isAndroid || Platform.isIOS)) { + showDialog( + context: context, + builder: (ctx) => AddListModal( + list: list, + type: type, + onEdit: ({required Filter list, required String type}) async => updateList(FilteringListActions.edit, list), + dialog: true, + ), + ) + } + else { + showModalBottomSheet( + context: context, + useRootNavigator: true, + builder: (ctx) => AddListModal( + list: list, + type: type, + onEdit: ({required Filter list, required String type}) async => updateList(FilteringListActions.edit, list), + dialog: false, + ), + isScrollControlled: true, + backgroundColor: Colors.transparent + ) + } + }, + icon: const Icon(Icons.edit), + tooltip: AppLocalizations.of(context)!.edit, + ), + IconButton( + onPressed: () { + showDialog( + context: context, + builder: (c) => DeleteListModal( + onConfirm: () async { + ProcessModal processModal = ProcessModal(); + processModal.open(AppLocalizations.of(context)!.deletingList); + final result = await filteringProvider.deleteList( + listUrl: list!.url, + type: type, + ); + processModal.close(); + if (result == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.listDeleted, + color: Colors.green + ); + Navigator.pop(context); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.listNotDeleted, + color: Colors.red + ); + } + } + ) + ); + }, + icon: const Icon(Icons.delete), + tooltip: AppLocalizations.of(context)!.delete, + ), + const SizedBox(width: 10), + ], + ); + } } \ No newline at end of file diff --git a/lib/screens/filters/filters.dart b/lib/screens/filters/filters.dart index c0a7e20..2ab49a3 100644 --- a/lib/screens/filters/filters.dart +++ b/lib/screens/filters/filters.dart @@ -188,31 +188,25 @@ class _FiltersState extends State { } void openListDetails(Filter filter, String type) { - showGeneralDialog( - context: context, - barrierColor: !(width > 900 || !(Platform.isAndroid | Platform.isIOS)) - ?Colors.transparent - : Colors.black54, - transitionBuilder: (context, anim1, anim2, child) { - return SlideTransition( - position: Tween( - begin: const Offset(0, 1), - end: const Offset(0, 0) - ).animate( - CurvedAnimation( - parent: anim1, - curve: Curves.easeInOutCubicEmphasized - ) - ), - child: child, - ); - }, - pageBuilder: (context, animation, secondaryAnimation) => ListDetailsScreen( - listId: filter.id, - type: type, - dialog: width > 900 || !(Platform.isAndroid | Platform.isIOS), - ), - ); + if (width > 900) { + showDialog( + context: context, + builder: (context) => ListDetailsScreen( + listId: filter.id, + type: type, + dialog: width > 900 || !(Platform.isAndroid | Platform.isIOS), + ), + ); + } + else { + Navigator.push(context, MaterialPageRoute( + builder: (context) => ListDetailsScreen( + listId: filter.id, + type: type, + dialog: width > 900 || !(Platform.isAndroid | Platform.isIOS), + ), + )); + } } List actions() { diff --git a/lib/screens/home/home.dart b/lib/screens/home/home.dart index f34a186..b74e959 100644 --- a/lib/screens/home/home.dart +++ b/lib/screens/home/home.dart @@ -227,6 +227,8 @@ class _HomeState extends State { ), TopItemsLists(order: appConfigProvider.homeTopItemsOrder), + + const SizedBox(height: 16), ], ), if (statusProvider.loadStatus == LoadStatus.error) SliverFillRemaining( diff --git a/lib/screens/home/top_items/top_items_section.dart b/lib/screens/home/top_items/top_items_section.dart index 475ffb9..da0ccd8 100644 --- a/lib/screens/home/top_items/top_items_section.dart +++ b/lib/screens/home/top_items/top_items_section.dart @@ -228,37 +228,37 @@ class TopItemsSection extends StatelessWidget { children: [ TextButton( onPressed: () => { - showGeneralDialog( - context: context, - barrierColor: !(width > 700 || !(Platform.isAndroid | Platform.isIOS)) - ?Colors.transparent - : Colors.black54, - transitionBuilder: (context, anim1, anim2, child) { - return SlideTransition( - position: Tween( - begin: const Offset(0, 1), - end: const Offset(0, 0) - ).animate( - CurvedAnimation( - parent: anim1, - curve: Curves.easeInOutCubicEmphasized - ) - ), - child: child, - ); - }, - pageBuilder: (context, animation, secondaryAnimation) => TopItemsScreen( - type: type, - title: label, - isClient: type == HomeTopItems.recurrentClients, - data: data, - withProgressBar: withProgressBar, - buildValue: buildValue, - options: menuOptions, - onTapEntry: onTapEntry, - isFullscreen: !(width > 700 || !(Platform.isAndroid | Platform.isIOS)), + if (width > 700) { + showDialog( + context: context, + builder: (context) => TopItemsScreen( + type: type, + title: label, + isClient: type == HomeTopItems.recurrentClients, + data: data, + withProgressBar: withProgressBar, + buildValue: buildValue, + options: menuOptions, + onTapEntry: onTapEntry, + isFullscreen: !(width > 700 || !(Platform.isAndroid | Platform.isIOS)), + ), ) - ) + } + else { + Navigator.push(context, MaterialPageRoute( + builder: (context) => TopItemsScreen( + type: type, + title: label, + isClient: type == HomeTopItems.recurrentClients, + data: data, + withProgressBar: withProgressBar, + buildValue: buildValue, + options: menuOptions, + onTapEntry: onTapEntry, + isFullscreen: !(width > 700 || !(Platform.isAndroid | Platform.isIOS)), + ), + )) + } }, child: Row( mainAxisSize: MainAxisSize.min, From 7f77b3c6ca876acbe58868899c169a6280388b49 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 27 Jan 2024 23:07:00 +0100 Subject: [PATCH 061/236] Updated ios pods --- ios/Flutter/AppFrameworkInfo.plist | 2 +- ios/Podfile | 2 +- ios/Podfile.lock | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) mode change 100755 => 100644 ios/Podfile.lock diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist index 9625e10..7c56964 100755 --- a/ios/Flutter/AppFrameworkInfo.plist +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/ios/Podfile b/ios/Podfile index 88359b2..279576f 100755 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '11.0' +# platform :ios, '12.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/ios/Podfile.lock b/ios/Podfile.lock old mode 100755 new mode 100644 index c3ba953..7faf3b4 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -11,13 +11,13 @@ PODS: - FMDB/standard (2.7.5) - package_info_plus (0.4.5): - Flutter - - Sentry/HybridSDK (8.15.2): - - SentryPrivate (= 8.15.2) + - Sentry/HybridSDK (8.17.2): + - SentryPrivate (= 8.17.2) - sentry_flutter (0.0.1): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.15.2) - - SentryPrivate (8.15.2) + - Sentry/HybridSDK (= 8.17.2) + - SentryPrivate (8.17.2) - sqflite (0.0.3): - Flutter - FMDB (>= 2.7.5) @@ -84,20 +84,20 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef flutter_web_browser: 7bccaafbb0c5b8862afe7bcd158f15557109f61f FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 - Sentry: 6f5742b4c47c17c9adcf265f6f328cf4a0ed1923 - sentry_flutter: 2c309a1d4b45e59d02cfa15795705687f1e2081b - SentryPrivate: b2f7996f37781080f04a946eb4e377ff63c64195 + Sentry: 64a9f9c3637af913adcf53deced05bbe452d1410 + sentry_flutter: 57912cf425e09398bdf47f38842a1fcb9836f1be + SentryPrivate: 024c6fed507ac39ae98e6d087034160f942920d5 sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a sqlite3: 6e2d4a4879854d0ec86b476bf3c3e30870bac273 sqlite3_flutter_libs: eb769059df0356dc52ddda040f09cacc9391a7cf store_checker: 359c5051d9ec30ff0a8fa39eb5ec9df021bb745d - url_launcher_ios: bf5ce03e0e2088bad9cc378ea97fa0ed5b49673b + url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812 -PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3 +PODFILE CHECKSUM: c4c93c5f6502fe2754f48404d3594bf779584011 COCOAPODS: 1.14.3 From 0b0f38cd2e18b785890474965434e0b2300f135c Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 27 Jan 2024 23:08:04 +0100 Subject: [PATCH 062/236] Changed filter clients modal design --- lib/l10n/app_en.arb | 3 +- lib/l10n/app_es.arb | 3 +- lib/providers/logs_provider.dart | 6 +- .../filters/details/list_details_screen.dart | 4 +- lib/screens/logs/filters/clients_modal.dart | 262 ++++++++++-------- .../logs/filters/logs_filters_modal.dart | 5 +- .../settings/dhcp/select_interface_modal.dart | 79 +----- lib/widgets/list_bottom_sheet.dart | 80 ++++++ 8 files changed, 253 insertions(+), 189 deletions(-) create mode 100644 lib/widgets/list_bottom_sheet.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 4b92566..460e98d 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -747,5 +747,6 @@ "selectEndTime": "Select end time", "startTimeBeforeEndTime": "Start time must be before end time.", "noBlockingScheduleThisDevice": "There's no blocking schedule for this device.", - "selectTimezone": "Select a timezone" + "selectTimezone": "Select a timezone", + "selectClientsFiltersInfo": "Select the clients you want to display. If no clients are selected, all will be displayed." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index ff5bb7d..c730a7c 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -747,5 +747,6 @@ "selectEndTime": "Seleccionar hora de fin", "startTimeBeforeEndTime": "La hora de inicio debe ser anterior a la hora de fin.", "noBlockingScheduleThisDevice": "No hay programación de bloqueo para este dispositivo.", - "selectTimezone": "Selecciona una zona horaria" + "selectTimezone": "Selecciona una zona horaria", + "selectClientsFiltersInfo": "Selecciona los clientes que quieres mostrar. Si no hay clientes seleccionados, se mostrarán todos." } \ No newline at end of file diff --git a/lib/providers/logs_provider.dart b/lib/providers/logs_provider.dart index d9bc55f..63e81cd 100644 --- a/lib/providers/logs_provider.dart +++ b/lib/providers/logs_provider.dart @@ -20,7 +20,7 @@ class LogsProvider with ChangeNotifier { DateTime? _logsOlderThan; String _selectedResultStatus = 'all'; String? _searchText; - List? _selectedClients; + List _selectedClients = []; int _logsQuantity = 100; int _offset = 0; @@ -65,7 +65,7 @@ class LogsProvider with ChangeNotifier { return _offset; } - List? get selectedClients { + List get selectedClients { return _selectedClients; } @@ -131,7 +131,7 @@ class LogsProvider with ChangeNotifier { } void setSelectedClients(List? clients) { - _selectedClients = clients; + _selectedClients = clients ?? []; notifyListeners(); } diff --git a/lib/screens/filters/details/list_details_screen.dart b/lib/screens/filters/details/list_details_screen.dart index 07d3aa0..95da744 100644 --- a/lib/screens/filters/details/list_details_screen.dart +++ b/lib/screens/filters/details/list_details_screen.dart @@ -64,8 +64,6 @@ class _ListDetailsScreenState extends State { final filteringProvider = Provider.of(context); final appConfigProvider = Provider.of(context); - final width = MediaQuery.of(context).size.width; - Filter? list; try { list = filteringProvider.filtering != null @@ -322,7 +320,7 @@ class _Content extends StatelessWidget { ) : null, trailing: IconButton( - onPressed: () => openUrl(list!.url), + onPressed: () => openUrl(list.url), icon: const Icon(Icons.open_in_browser_rounded), tooltip: AppLocalizations.of(context)!.openListUrl, ), diff --git a/lib/screens/logs/filters/clients_modal.dart b/lib/screens/logs/filters/clients_modal.dart index 84728f8..cf8a94f 100644 --- a/lib/screens/logs/filters/clients_modal.dart +++ b/lib/screens/logs/filters/clients_modal.dart @@ -4,10 +4,13 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; +import 'package:adguard_home_manager/widgets/list_bottom_sheet.dart'; + import 'package:adguard_home_manager/providers/clients_provider.dart'; import 'package:adguard_home_manager/providers/logs_provider.dart'; -class ClientsModal extends StatefulWidget { +class ClientsModal extends StatelessWidget { final List? value; final bool dialog; @@ -17,56 +20,90 @@ class ClientsModal extends StatefulWidget { required this.dialog }); - @override - State createState() => _ClientsModalState(); -} - -class _ClientsModalState extends State { - List selectedClients = []; - - @override - void initState() { - setState(() => selectedClients = widget.value ?? []); - super.initState(); - } - @override Widget build(BuildContext context) { - final height = MediaQuery.of(context).size.height; + final clientsProvider = Provider.of(context); + final logsProvider = Provider.of(context); - if (widget.dialog == true) { + if (dialog == true) { return Dialog( child: ConstrainedBox( constraints: const BoxConstraints( maxWidth: 500 ), child: _ModalContent( - selectedClients: selectedClients, - onClientsSelected: (v) => setState(() => selectedClients = v), + selectedClients: logsProvider.selectedClients, + onClientsSelected: (v) => logsProvider.setSelectedClients(v), ) ), ); } else { - return ConstrainedBox( - constraints: BoxConstraints( - maxHeight: height-50 - ), - child: Container( - decoration: BoxDecoration( - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(28), - topRight: Radius.circular(28) + return ListBottomSheet( + icon: Icons.smartphone_rounded, + title: AppLocalizations.of(context)!.clients, + children: [ + Card( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.info_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + const SizedBox(width: 16), + Flexible( + child: Text(AppLocalizations.of(context)!.selectClientsFiltersInfo) + ) + ], + ), ), - color: Theme.of(context).dialogBackgroundColor ), - child: SafeArea( - child: _ModalContent( - selectedClients: selectedClients, - onClientsSelected: (v) => setState(() => selectedClients = v), + CustomCheckboxListTile( + padding: const EdgeInsets.only( + left: 24, + top: 8, + right: 12, + bottom: 8 ), + value: logsProvider.selectedClients.length == clientsProvider.clients!.autoClients.length, + onChanged: (v) { + if (v == true) { + logsProvider.setSelectedClients(clientsProvider.clients!.autoClients.map((e) => e.ip).toList()); + } + else { + logsProvider.setSelectedClients([]); + } + }, + title: AppLocalizations.of(context)!.selectAll + ), + ListView.builder( + shrinkWrap: true, + primary: false, + itemCount: clientsProvider.clients!.autoClients.length, + itemBuilder: (context, index) => _ListItem( + label: clientsProvider.clients!.autoClients[index].ip, + checkboxActive: logsProvider.selectedClients.contains(clientsProvider.clients!.autoClients[index].ip), + onChanged: (isSelected) { + if (isSelected == true) { + logsProvider.setSelectedClients([ + ...logsProvider.selectedClients, + clientsProvider.clients!.autoClients[index].ip + ]); + } + else { + logsProvider.setSelectedClients( + logsProvider.selectedClients.where( + (item) => item != clientsProvider.clients!.autoClients[index].ip + ).toList() + ); + } + } + ) ) - ), + ] ); } } @@ -86,97 +123,92 @@ class _ModalContent extends StatelessWidget { final clientsProvider = Provider.of(context); final logsProvider = Provider.of(context); - void apply() async { - logsProvider.setSelectedClients( - selectedClients.isNotEmpty ? selectedClients : null - ); - - Navigator.pop(context); - } - - void selectAll() { - onClientsSelected( - clientsProvider.clients!.autoClients.map((item) => item.ip).toList() - ); - } - - void unselectAll() { - onClientsSelected([]); - } - return Column( mainAxisSize: MainAxisSize.min, children: [ - Column( - children: [ - Padding( - padding: const EdgeInsets.only( - top: 24, - bottom: 16, - ), - child: Icon( - Icons.smartphone_rounded, - size: 24, - color: Theme.of(context).listTileTheme.iconColor - ), - ), - Text( - AppLocalizations.of(context)!.clients, - style: TextStyle( - fontSize: 24, - fontWeight: FontWeight.w400, - color: Theme.of(context).colorScheme.onSurface - ), - ), - const SizedBox(height: 16), - ], - ), - Flexible( - child: ListView.builder( - itemCount: clientsProvider.clients!.autoClients.length, - itemBuilder: (context, index) => _ListItem( - label: clientsProvider.clients!.autoClients[index].ip, - checkboxActive: selectedClients.contains(clientsProvider.clients!.autoClients[index].ip), - onChanged: (isSelected) { - if (isSelected == true) { - onClientsSelected([ - ...selectedClients, - clientsProvider.clients!.autoClients[index].ip - ]); - } - else { - onClientsSelected( - selectedClients.where( - (item) => item != clientsProvider.clients!.autoClients[index].ip - ).toList() - ); - } - } - ) - ) - ), Padding( - padding: const EdgeInsets.all(24), + padding: const EdgeInsets.all(16), child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - TextButton( - onPressed: selectedClients.length == clientsProvider.clients!.autoClients.length - ? () => unselectAll() - : () => selectAll(), - child: Text( - selectedClients.length == clientsProvider.clients!.autoClients.length - ? AppLocalizations.of(context)!.unselectAll - : AppLocalizations.of(context)!.selectAll - ) + CloseButton( + onPressed: () => Navigator.pop(context), ), - TextButton( - onPressed: apply, - child: Text(AppLocalizations.of(context)!.apply) + const SizedBox(width: 12), + Text( + AppLocalizations.of(context)!.clients, + style: const TextStyle( + fontSize: 22 + ), ) ], ), ), + Flexible( + child: ListView( + children: [ + Card( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.info_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + const SizedBox(width: 16), + Flexible( + child: Text(AppLocalizations.of(context)!.selectClientsFiltersInfo) + ) + ], + ), + ), + ), + CustomCheckboxListTile( + padding: const EdgeInsets.only( + left: 24, + top: 8, + right: 12, + bottom: 8 + ), + value: logsProvider.selectedClients.length == clientsProvider.clients!.autoClients.length, + onChanged: (v) { + if (v == true) { + logsProvider.setSelectedClients(clientsProvider.clients!.autoClients.map((e) => e.ip).toList()); + } + else { + logsProvider.setSelectedClients([]); + } + }, + title: AppLocalizations.of(context)!.selectAll + ), + ListView.builder( + primary: false, + shrinkWrap: true, + itemCount: clientsProvider.clients!.autoClients.length, + itemBuilder: (context, index) => _ListItem( + label: clientsProvider.clients!.autoClients[index].ip, + checkboxActive: selectedClients.contains(clientsProvider.clients!.autoClients[index].ip), + onChanged: (isSelected) { + if (isSelected == true) { + onClientsSelected([ + ...selectedClients, + clientsProvider.clients!.autoClients[index].ip + ]); + } + else { + onClientsSelected( + selectedClients.where( + (item) => item != clientsProvider.clients!.autoClients[index].ip + ).toList() + ); + } + } + ) + ), + ], + ) + ), if (Platform.isIOS) const SizedBox(height: 16) ], ); @@ -203,9 +235,9 @@ class _ListItem extends StatelessWidget { child: Padding( padding: const EdgeInsets.only( left: 24, - top: 8, + top: 4, right: 12, - bottom: 8 + bottom: 4 ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, diff --git a/lib/screens/logs/filters/logs_filters_modal.dart b/lib/screens/logs/filters/logs_filters_modal.dart index aec6b27..9f77666 100644 --- a/lib/screens/logs/filters/logs_filters_modal.dart +++ b/lib/screens/logs/filters/logs_filters_modal.dart @@ -150,6 +150,7 @@ class _FiltersList extends StatelessWidget { dialog: false, ), isScrollControlled: true, + useSafeArea: true, backgroundColor: Colors.transparent ); } @@ -225,8 +226,8 @@ class _FiltersList extends StatelessWidget { Container(height: 16), CustomListTile( title: AppLocalizations.of(context)!.client, - subtitle: logsProvider.selectedClients != null - ? "${logsProvider.selectedClients!.length} ${AppLocalizations.of(context)!.clientsSelected}" + subtitle: logsProvider.selectedClients.isNotEmpty + ? "${logsProvider.selectedClients.length} ${AppLocalizations.of(context)!.clientsSelected}" : AppLocalizations.of(context)!.all, onTap: clientsProvider.loadStatus == LoadStatus.loaded ? openSelectClients diff --git a/lib/screens/settings/dhcp/select_interface_modal.dart b/lib/screens/settings/dhcp/select_interface_modal.dart index a9c9c67..40291e9 100644 --- a/lib/screens/settings/dhcp/select_interface_modal.dart +++ b/lib/screens/settings/dhcp/select_interface_modal.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_interface_item.dart'; +import 'package:adguard_home_manager/widgets/list_bottom_sheet.dart'; import 'package:adguard_home_manager/models/dhcp.dart'; @@ -89,70 +90,20 @@ class SelectInterfaceModal extends StatelessWidget { ); } else { - return GestureDetector( - onTap: () => Navigator.of(context).pop(), - child: DraggableScrollableSheet( - initialChildSize: 0.6, - minChildSize: 0.3, - maxChildSize: 1, - builder: (context, controller) { - return Container( - decoration: BoxDecoration( - color: Theme.of(context).colorScheme.surface, - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(28), - topRight: Radius.circular(28), - ), - ), - child: Column( - children: [ - Container( - margin: const EdgeInsets.all(16), - width: 36, - height: 4, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: Colors.grey - ), - ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 16), - child: Column( - children: [ - Icon( - Icons.settings_ethernet_rounded, - size: 24, - color: Theme.of(context).listTileTheme.iconColor - ), - const SizedBox(height: 16), - Text( - AppLocalizations.of(context)!.selectInterface, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurface - ), - ), - ], - ), - ), - Expanded( - child: SafeArea( - child: ListView.builder( - controller: controller, - itemCount: interfaces.length, - itemBuilder: (context, index) => DhcpInterfaceItem( - networkInterface: interfaces[index], - onSelect: onSelect - ) - ), - ) - ), - ], - ), - ); - }, - ), + return ListBottomSheet( + icon: Icons.settings_ethernet_rounded, + title: AppLocalizations.of(context)!.selectInterface, + children: [ + ListView.builder( + primary: false, + shrinkWrap: true, + itemCount: interfaces.length, + itemBuilder: (context, index) => DhcpInterfaceItem( + networkInterface: interfaces[index], + onSelect: onSelect + ) + ), + ] ); } } diff --git a/lib/widgets/list_bottom_sheet.dart b/lib/widgets/list_bottom_sheet.dart new file mode 100644 index 0000000..2f8bd03 --- /dev/null +++ b/lib/widgets/list_bottom_sheet.dart @@ -0,0 +1,80 @@ +import 'package:flutter/material.dart'; + +class ListBottomSheet extends StatelessWidget { + final IconData icon; + final String title; + final List children; + + const ListBottomSheet({ + super.key, + required this.icon, + required this.title, + required this.children + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () => Navigator.of(context).pop(), + child: DraggableScrollableSheet( + initialChildSize: 0.6, + minChildSize: 0.3, + maxChildSize: 1, + builder: (context, controller) { + return Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(28), + topRight: Radius.circular(28), + ), + ), + child: SafeArea( + child: ListView( + controller: controller, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + margin: const EdgeInsets.all(16), + width: 36, + height: 4, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.grey + ), + ), + ], + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 16), + child: Column( + children: [ + Icon( + icon, + size: 24, + color: Theme.of(context).listTileTheme.iconColor + ), + const SizedBox(height: 16), + Text( + title, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + color: Theme.of(context).colorScheme.onSurface + ), + ), + ], + ), + ), + ...children + ], + ), + ), + ); + }, + ), + ); + } +} \ No newline at end of file From 791c42317b9b4a6aa64523d2bbdac90c7cd129cc Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 27 Jan 2024 23:08:44 +0100 Subject: [PATCH 063/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 94b1ce4..1602a5e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.15.0-beta.1+121 +version: 2.15.0-beta.2+122 environment: sdk: '>=2.18.1 <3.0.0' From 46867b951acc4851177006c2fe6a6e652fead184 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 28 Jan 2024 15:01:33 +0100 Subject: [PATCH 064/236] Updated app icon --- .../main/res/mipmap-anydpi-v26/ic_launcher.xml | 6 +++--- .../res/mipmap-anydpi-v26/ic_launcher_round.xml | 5 +++++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 3722 -> 0 bytes .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 2412 bytes .../res/mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 874 bytes .../main/res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2412 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2407 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 1562 bytes .../res/mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 650 bytes .../main/res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1562 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 5202 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 3268 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 1114 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3268 bytes .../src/main/res/mipmap-xxhdpi/ic_launcher.png | Bin 8299 -> 0 bytes .../src/main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 5358 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 1620 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5358 bytes .../src/main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 12288 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 7522 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.webp | Bin 0 -> 2154 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7522 bytes android/app/src/main/res/values/colors.xml | 4 ---- .../main/res/values/ic_launcher_background.xml | 4 ++++ 24 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp delete mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp delete mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp delete mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp delete mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp delete mode 100644 android/app/src/main/res/values/colors.xml create mode 100644 android/app/src/main/res/values/ic_launcher_background.xml diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index ce2f8b0..6c2fdb0 100644 --- a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,7 +1,7 @@ - - + + - + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 620121e3fd0e332abcc93f13b370bae5f9c344df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3722 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..4d52a7366d978b3a4e5ceaafb2066354d095119f GIT binary patch literal 874 zcmV-w1C{(zNk&Fu0{{S5MM6+kP&iCg0{{Rop+G1QzvL>CB*n_!d*EN#`+Y_jw;zdc z+(?olMefmy{den}S!$<|Bso&{X@2YseE*-SX*ZH=s|x4b``rZzSrhwDAamzE^uENT zVCSU=Pq_T#WBC;G+8?GJRs5lJ&9nIxqKks$h6bZDF^Nr-2(}W3qj6^35^J7jnUeg) zQIpV7-Av8c+_3uBiL-Ib7G0WRW*97)90du1C8Jp&$weV0z>xr}g4F1!1j8F*K{+vSdhm&{krf*mU%0C=wD9_+2SoYLK zyy>EoIUS=Qxl$Wl8yfcm$7WC;yKn;Z_lv%^}cNA@&2!`O}5v+KR)iT z|NBAOZCi#UMccM*+qP}HD{tF9Zrl37laY~`UGY8*BKki8?7#p2%m2M@zV4ki_ALNf z>?z~0f!{YA=n^pi^??YgxQv58?m`pKS!kX0q)6Zrv@Zpc!zN#WsFH6(3%gqAS!+j$ zrxWOV@4yP(V8NL=)nim-{z|bcAjN$*AC$?%*by-Xuq?5SN#yLFeFb5{a4m5Yz#Wq8&aSH#=@-J zF!Vgp<+3eQrCtvVTe%@!HuOmC-Dj#Tx(r#lgyKWh7ERM1VvgrM_i8JeIu2Ef6RaHH zUlS5J=^?KwDcv(pO!d*Cshr7Gz)vl95&e#gvBysMFm+c@p+SxPP|*6u9@26xC?y}f zTnlIdoZPBBS3_SKU?`3;=DZHdK&iPZS_W;5{nJ;*r^u7c!{#SgyOPX*|Nn100Kk~4 A_y7O^ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..ee4fa4dfb50686a12932c31f504337f0a8933251 GIT binary patch literal 2412 zcmV-y36u6xNk&Fw2><|BMM6+kP&iCj2><{uN5Byf6$gU0ZR7B#z3qn(5fk8V6`KDT zeD!?)pJD6$|5Y@-MzL+%wr$(CIkautwr%UO&7RDWIW*y_jL4*X^woSXrd*|HPwr$(CZQHh;F4+FI zjV{Etom}h*kRsc*YCHXJ4>L0}Gc&`bsYWxu`f*plbN#7Po=BV>nt18UR4Ws0*#6WAry&p~tQp*TYgP zyN+-9;XPV$^0@$D1hr)7091;m(HHc<1xyCTjGaxNUwtBgZfGUw08kq`NKY9LO!T5DOr-Zm0j%bg)qo1QUNMwN^tvCJ>-FWZnip0Bs!!LM zU#3xmwjW*V5eBfDY6e7kUBmpSQ9sJ}IlRG8X*H0-IZ702R-gn~qF^;uR)Z){E`vY~ z3l;_Gd|@>e42aOb1_f$bu!#G_#$b5l02REI3Dme?IX7kz0mn1x74xI!{h0ABVR>Re zWFhmT>fR3-n4YKhZwi7C%47s2D+fbS5W(rGM@jqAtNyLmyi=f5OP^^G*y~D zxMguwTGmFAm6yMW$#cLAju4EFVhHbN0#yzE>A=jA!H{U1h-8XQ-u%r+0);Q>7#Ptw zkXk}MMq9-HqrIbJI$fgu>wL96clB0~3fMf;$zbx}xEYWw)ddzx?(6KeNf?fybHw_@ z&Lx0$7|fUlhFdTc{)`DVoOjfa&i_#`lO+!?ZSimd6TczsAOPqvg{ZWLwhGQ0s)?pa zXqKYsH0g6Zl+Du}^e6*5KoC;9FcUprxc!vcd`hPf__jt94}+A+0TcMagcyKg$W+0E zM^EQ2UIj`k5ygrz8OJx5D(4-Ak*NrnsWD^#1OwT|(6i~2XRgeQF@n+hWbS^T5W+Xt zOdtrlPEgoS&xRJ(45m!WEjc2s*x;1Af=XXh=?%;5L4n53V#`qz6Oe4N(OrK0g8#$p-S$ECA5_JzhrQ3Nu!F?pL|nl^?Jspsl&&@-Pd{jd*8(Wqnqv*S$_V{U%e-` zuavn zt3TyiKX=C$rhwaOQ3nS12<%gD9zEqnZ?TgrS2yNQ0WOxWF}h~oL@~Q&ve_9q1(t>$|kn1`?NgS zJ=oj)?dWy=GYfzsy=%iG{k=x*^QI}{dSnZpb+S~2UosESmjUs4bjrnpv0RM+L z@8~J8*;=g|bLA5tfRM?Sb=e|)=gyt&opyZdG|4p2aMh(QIFtq5$wVF~(k@)Tvw4b! zWsYD&0YLCaItTg^t3SDahyP2v2Kpksvv~Ibuz34P#`C&6u(x@-!xoi6*CAhluqCwA z%3w$fHy;H6SiJk@h>dKaHh1xAYqpsjW%~F50KMZ=BAS)4c=FXmqM++K;mh_5B}%QE zedD770O0?rY_77_Jv=A~06tZ?L&^vj%=4cJ>N-$Fc+yU&$6}+qt^fc}ucY9)+E}&@ z05ivr%Tm7S=kKEkz&L5HdZym}p0QB@01!YJ-#k|VVBcK|#f8DxohKOp6cId@A4Aoc z#Z{J{ehPqP|J0mHYV4wu`oEtO~@=J2K5*zcUyTg)E+Izh+Is z)&b!EL@3Qm6zZLJpSL<2gx4$+n)U;I`8F8$1)OSHDLc#7ldjGxfmU>Hs!I`0?? zZ`@pKsniv&@OT1(k&BCjiRN}(0-~kp@Sgk=n9O)V(n?}@M(8yB@c%~#t#J|Qq@Pj5 z7J<|LBr*#_jQ=MBy+(usGh@d-JOgxS5Ow|4fDT8;2NFhdvSI{4WX8ml|)q>2f zYn}j4o987`P57m`W8Wo zB638(|BfW*r}OxIys=L_KRxkzU){vu*S$jE%}_bKMaU4%s=UU1l@6kS%ao;-6~}$M zj{Uky@5TQrhc^UXCb)btqDb`GN}25Y?b~xo%apZ`C;M1pTYmcOH?@`a%9{KB1>O&p z!&{Wp3dFF5_%UYZ-+$|C&RvvD2`h@WEXz955^+0l{&hCU{XlaG|E%y+IlLjzBtaDj z79q33E2X&f+Az`kdABoyk$^l#mXH%N!F<~jzgrGoS>Z3SCE?KQmX!#UDs?Q;+PWx* zcG3sx8)sqqzjH1o-c5Ou_Tu$_C)u5A@%wQX2JZXiPh$ANnwwT4KoDp;P%M}Kr-wf! z+UMtEl8?oo6?<0g^TH>8=3~C~`B#1V@K63{0-*gsDV+aoSGr_=(q}%r<_|xt`S6*m ee81g4rv@O_h5}XMa)_F^s^s3|?86QUguu({hp{C9 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 4b33d20a48e967f4400f0fda9d13094691d8b06a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2407 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..8a39f50c67d2b8e7c6b05a3874f9d28bf8bec7ae GIT binary patch literal 650 zcmV;50(JdTNk&G30ssJ4MM6+kP&iC>0ssInYrq;1uj49`WGTvifCT(2;uj;=-rF`D zHzi_l;| zjGYAKuO>{1Li55gNbB7ZV;{Xo%%5-TnaOu>cbO{xUtK+~p3^4LOzG)!OnINN{`9v? zSMxZ<>lZ!N3$JUeKL7K(+u@M5ZQI#M8QW$swmq{uYumeH+w=cFyl8s#$y)D|^iD+o zC&2pW;rzFV1EZkdMrZl!^S$Clw#iX4sA;IXBu-tJZ zY$CD_hT!A>kf`Pl@HI3f)px>Y!vw8)@I73kCS%1x662MSl&o7wa-2oT*&LFdJ|kmy z)Yk3z@@%!PAu6xDKi{Q;^ez!wgSI++QF_6enT_{8st|9Hu-Oas*rk>5-lPh>n*@|~ zKy#UWe5rwsFy*RT=q@C1p2^HhIxtnK)(Pzqz2k`-i}{@vOsdsAFvct@I<9nbMj9<< z?o%uqV@zGDNsATO5uPr!GVc#RwwO7xmFrBVMzv7V{w8~OdW@d+(nUi6bbOTS)o2=j$W=@AXQE9m6Oc^NY zA1X6#s+&459o{TJsZueM!Ul!k8stnBnyJE385k-e;M%rr>>0mp+pc0Koo(AzXY&DU z=M`-H?v>g$zdHePV{2RHrvG}FnVFfHnU+NV_kI8VC2TBag_~|JW|rQOA~nFWGlxti zI6~1gj@Y3h6<~%2Je#=z#u+#Q02Y$++O=)lE^WKDZToDS4kSr3t-1fTo^9K<-^VIw z+lJu}qy(zLJDvd8<}i-nC?BT2>kAYzhjS#(%88uEW#R7+;jA($j7S3DYF@-Aj04@J zUmK5~UKUh;aMiN_WE3|Sc!=j2o5rgFbYS(Z?{44(z>SaaA$XsvtuYvU3j)x_ZykIj1;ZC9V=@V0CZRW|j~_|V(D*L^Db0{3 zF7kcvr2`VLd3r^LBCP{r^rFi9J2nt*j0h+&l0)J(uU|n{mn950e|24q97;7aIHI#i zclxgOyM3#Jmgg!LhZF03vXFfrCm(RQC@GHyaPR3d|RSn<7-I zQk}ENhyaPqJQb2v-9M7QTsX6M;GVy8QG_nY1BaDBLIAm&d&9pbjAvfgG}T6 zQyv-6UxCsSdbfVWm>N1#|C2moMgHu32AGlm2f6LVZ%mfBgQDOemip_*nau;!m{O{-wErMyJgR;DqO@A$iv(!jV5L7! z&;mAidE_Dc4LFW7Da90Ny%-+1&AfGsFN) z7w2Bbl19Z60N`sds6PLw^7iIuHl^1asnteAD5CoOA@%2vzr_LoEyR6MrQQrs06l2g zE?YKOO4-GQD1Sb46-d04s*39yQN`887Eh6N;zc($z%VH%wh-nGXny|aV(xTSe6-sn z%`XxWj6e<@Wn_3rhCF`W-v2G4O(M#fOzcTCS=aBq!cfvp?o~^kX9JFOPRU_IL{xfm zaANTw!!w{X}`8$ zM`A=pW6|-1J&6G>&!Gbk83h9JpJjE|d!8+Ejs|fk2TX4HM*~1Fj_i^!73~m= zzj{>#Ks|svP~u=>YVk(VMZyfxHYN)I(5cf$`g?RbThC-aEjwo z>;x|_+F;5}i;=Kiy@^R5P5Gj7r`TSxQ%*I~u;Uv5eu-Xg(pjKee?V}^Dt+t|-|#fg`v-QD!a(XRcC z+b-J0v{mmUdcskNkz^=Fu6q5hI$kZpT81ZX{pGILs~+AaBNVcz-WPq literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 3128163ec05067862b57fc1d0c6e6319ceb1a148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5202 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�+)}qpx%;93eR+%P=tq{eDcZPO_?%f^4z&|=dD_`YTd?-8+Y&6 zvEyiHXlPP+c=*|)M~~)G8eK?axJ*+{abjX(aY91EWg=eT@#DvHBO)TQ!otFmcJADH z^t=u7m8zM%tjQIbaOZ4BagSn47ZrUn$= zP`O2LioG%jRB>}1JOTn&7#p!jZx|mQ14IxQAi)2R*91W@4dFBREZRU@XcKLt5A=mT z(KmE3NaI7IBon3v7!A_|f>RXYP*Z^?K>Q?$1rLF#1;$4}3$Fn(D1pD>HM|G!#b+c@ z&=%T6+vo#*p-=R!oSqEQ_@F2Wr6iRk7CZwC4le=Y1MnJ-AYaFO@fmzp5=BWCgD_28 pq;b{cQUYX9LjAguB+ZsA{|^o}C#c|i>hu5r002ovPDHLkV1h~aw;})l diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..aefe0b69900475853d378713de05030eb9bbb387 GIT binary patch literal 5358 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..3599460f1dfcaa3345aad61419fca7c20025d2aa GIT binary patch literal 1620 zcmV-a2CMl}Nk&FY1^@t8MM6+kP&iCK1^@srL%~oGe+Da(B-K{-UIr!Czm5BQjWE5} zkDmp{Z5v4v-7|YX7n^@no6B8x97&R+WDmjtei(?yxT0Yil5M+f8~;zL5J+xg1uWlx;77^n|k`7^_{*AzGr=sPGx!540pE^) z65G}p>r{eBuCXjzY_Ug38l;qj{;IpZg)Z$(DpkEk;8 z7D1$GRcq=|t(FmyWc2TldTp6~hxag!BBqR}^@xbSr*!;x4ZE}I!Tn?%Kd1A?b#FX> zIWJzPY#rs^vu*!4>l4rW<8(S*+Tp40+yM&Pww;Z%H(lGdZQHhO?~Xclr_Ppqg-#FFJcc*V~yXswV58tWU1uh{}1OKChA=8lD6Fa}Bwn`o4P#-f_(-(QMKDqu+ym9YBnwr_L?|O#rk+*x86R=rESz3bLEPKR}M$$q_Ch!Rq}U$svdfN zW4E^tUBdqch4(wI+j3l|f*tv4^6fN8rXHNz@wYJZ>&Mx9Q%Kc%>hUfTrt3R;HxqPo#w|%P4Uz9uV_YK4j-L8cP;at6%Pb_0QwptbDohUR zS1zpBXy_4>klI&MhpI_B%pNMN`ok>fld4pqas|xqWtnHD0V^uipzJIN_O?tL0ytZy z0-rB~;vmbsqkzkw1HYD;AUVJ?uSg)XWuW)g4Voh?GnfY4uLHZ6u^_tEGM$JZ_GKXV z(gUhD2z}|8?N@&)@VpG*PJ`?19jzc=0FEV&s8eWrV8xOs!@W0F_EoqU# z>2HNfu9P>F!i#udx-i%V(!+$xnlRUxtL1}A1Fd6${Y6GPGs9&gIqO1z;G2H^NCVP- z38TxH!BcD?FAe~_gZ+3N1?WSB;bY8zb_PWI6aa|7S4XQz0CR=mM?P+tWkihD0U-Ey zE#Jcd>}h0dAh;nzGor1ofqkVyh$n6UQICc3YwV!s84=ajYhYouxEl(rRvX9o#BLUz{g^XE(#662$w& z+I%mC%vs{yRVjwLS|taOJKeXF}%ihmy{9U3GZDQ+BCr3M93@*X9_HoAzWKi zKM1KC!4v`){5lF=K~gUXZ6m-f(C1bdsM?SMegSqr_N&=KkY)s=jn(REdkS0wEN)Rt*(x6x z2a#Q>h1TN)$TI_QvBxzX>|;^KfBzv9sx<5Cjr~fK8&h8lR2uPPcWOPL2ldg^#__-7 Sf5-oh{~iB3{&)QEj1vIFClprz literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..aefe0b69900475853d378713de05030eb9bbb387 GIT binary patch literal 5358 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 7eadefba48070f9c3a8a26725fd28bf8fbc32401..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..68173f9dc5fb9a06131b4fe33e9aac89e0944767 GIT binary patch literal 7522 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..7d5730598a6c6325673b3b9671b9f1223d0df2c3 GIT binary patch literal 2154 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..68173f9dc5fb9a06131b4fe33e9aac89e0944767 GIT binary patch literal 7522 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml deleted file mode 100644 index ab98328..0000000 --- a/android/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - #ffffff - \ No newline at end of file diff --git a/android/app/src/main/res/values/ic_launcher_background.xml b/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file From c87e3b4943d0a9222b1e4c3eee875ca1b39264fe Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 28 Jan 2024 15:09:41 +0100 Subject: [PATCH 065/236] Updated splash screen icon --- .../app/src/main/res/drawable-hdpi/splash.png | Bin 6268 -> 9685 bytes .../app/src/main/res/drawable-mdpi/splash.png | Bin 2758 -> 4507 bytes .../main/res/drawable-night-hdpi/splash.png | Bin 6268 -> 9685 bytes .../main/res/drawable-night-mdpi/splash.png | Bin 2758 -> 4507 bytes .../main/res/drawable-night-xhdpi/splash.png | Bin 7482 -> 13398 bytes .../main/res/drawable-night-xxhdpi/splash.png | Bin 16774 -> 21274 bytes .../res/drawable-night-xxxhdpi/splash.png | Bin 20129 -> 25528 bytes .../src/main/res/drawable-xhdpi/splash.png | Bin 7482 -> 13398 bytes .../src/main/res/drawable-xxhdpi/splash.png | Bin 16774 -> 21274 bytes .../src/main/res/drawable-xxxhdpi/splash.png | Bin 20129 -> 25528 bytes 10 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 android/app/src/main/res/drawable-night-xxxhdpi/splash.png mode change 100644 => 100755 android/app/src/main/res/drawable-xxxhdpi/splash.png diff --git a/android/app/src/main/res/drawable-hdpi/splash.png b/android/app/src/main/res/drawable-hdpi/splash.png index a042f2bcf6dc52c506d8eace296f5a95f69e70da..0952f84abef68345d0cb9a52310db31ca5fdda1b 100644 GIT binary patch literal 9685 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 P16i1zG_5%5k?_9&e|>Ax literal 6268 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 diff --git a/android/app/src/main/res/drawable-mdpi/splash.png b/android/app/src/main/res/drawable-mdpi/splash.png index 28271d4d45cb768f408859174e13e8f5dcd93eea..b8c6efb7701e589103761bbf46460c12bf82e6c8 100644 GIT binary patch literal 4507 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 bNpv96WEs*b!sfRAKLtLXJ1Nh|A<6#*Uul)d diff --git a/android/app/src/main/res/drawable-night-hdpi/splash.png b/android/app/src/main/res/drawable-night-hdpi/splash.png index a042f2bcf6dc52c506d8eace296f5a95f69e70da..0952f84abef68345d0cb9a52310db31ca5fdda1b 100644 GIT binary patch literal 9685 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 P16i1zG_5%5k?_9&e|>Ax literal 6268 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 diff --git a/android/app/src/main/res/drawable-night-mdpi/splash.png b/android/app/src/main/res/drawable-night-mdpi/splash.png index 28271d4d45cb768f408859174e13e8f5dcd93eea..b8c6efb7701e589103761bbf46460c12bf82e6c8 100644 GIT binary patch literal 4507 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 bNpv96WEs*b!sfRAKLtLXJ1Nh|A<6#*Uul)d diff --git a/android/app/src/main/res/drawable-night-xhdpi/splash.png b/android/app/src/main/res/drawable-night-xhdpi/splash.png index 46169c660951e5b6d7ee35decb2652f203f16178..09c5fe03e0145dc8bee28facd9212af217699dde 100644 GIT binary patch literal 13398 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 Mx%J7i6U00J1L`Yc*8l(j diff --git a/android/app/src/main/res/drawable-night-xxhdpi/splash.png b/android/app/src/main/res/drawable-night-xxhdpi/splash.png index 27ee599bf019baff150d9f168737b9550f9f334d..7251f533702e4121b01cf97f565dd7ec680060d1 100644 GIT binary patch literal 21274 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 O4T6S8tvnl+T=W}DfqHHL literal 16774 zcmeHuc|4SDAMcIiX`@mkTT!X3C0WPlDO-ia5Q!EwBqn=fFsi2{MU#*$qq01WP{__y z!dOQKZkU!SK|HR!!Vi4q*mF0LUvo##|7 zPE#^Ad7m5F{UpQ(bIzzJ?c?ze<-L2Z4;|X!?;tyLpzipSh0VDI&N*4@&!N3KcYe9v zZ6&I+(6(zSP`A_mqw{Xt;b3%FV!rM1?^m&lNl9buiafqf;hJkR{i)5y{G{MCcF92m zN#8+@C%}0wPV9%@Gn+->cl|5)F*&vke)m5RhF?)z_(|U-xXHE?LI@IZ=f8jaUupc; zHvYf&l=LeBsqDY5*U3mUqt+I^S~(GpX0_4oDyx{r#5O;eitXFBY|T(5X_{9{Ewk0) z{@l=8vh0?F@-ik7HaBJ!dR7tAz4p^kv3j?;heNt>vh(c<;c)?ninNxY!}iaSQ%(O5!)`|A9~~VVe~@e9CkkODe%kS1nPi<^$j6PdEw} zUrQ5>I0?_)?wL$4O618Z&1uuyJtU$+_plyPj3aM*|0#4B;-_=XLs~f{uw*&qt^M`( zZ|rE=AnZ){fQz~YznQqg7~GK*k59OEYGkyEL^xqAx9kamXaprQw6$4{v{Opjhv|ng zXB#XlWHT?sv`5v1rv%GIu;8-GE@wM&F{s0Ha(3$RshybBiTYEA>B48^L?JY`Z4aH6LLAP%fKGKqvW1CPG8!Se~x=94gf~wG9Bdp2@ zR{d`tW_e#ZwiYk~zo+BxsK5zVR ze)NZ|HeI-F5$;*{{CsD94w*!FA|8M8<6D})as^1RtqYbKR{Cj)6wZ_FFO=n-7ihF% zit(lIx~v$HwrasD{syBZzLsxqIXD(@bR^NtI2A7yQ4DI6tHzMN*<1hC=~UQJR!#|C z=S&u?yhf1IE!IOU;cB@EnnDK zc8bwRQwQ;QY*>$cTnaQD*o+Th_#|OpCWP#uROg!fD%u9E8uEsq4jfozkxy$bY?FKQPiEoTZ23DHkGSUGIxJfxqCNA%mG;8VHjSu1tP&gh zH&8h75k(h%Y0kxnJc$%Wo*h)@+T=~3c#0&vRF;E5@*MhvtK70#<{!vC*nKv$YG`mP z-hz3IrW9WtY~C6bx)+em4(#w`z@LmBT1wyDC!KediLy>x%LJHb2e5R~?{tPPE6>7l z)X8I0VGifUr|~KwS)~$&yjc43HY9xyJ$EARPbaQFVVw87i{=~eFN%nsftRI7msL^* zxf`e&^5Q{(jPJBbfpOZeN7}~Q3(IqqHJea>sB6a8s4B5z-bVEaoPQMdStqn2D_N9* zIr+NDW?EI92Jr>x^u8Ue=%}*p(LOi(w}qee4Gm&QP(mu&6i473@8KMhnfH3*<7?4z zaZI#gbmbnFrohH_h$6p^WMdYrHK=65W`oa)W&@Jru{T?70~j47Wq*l3 z>-Cfh_OonA^=8J&aFPbW`shtm?=<61b0NZAPd#_r!JkYquDMRckUiG*U^wzC z6dFp2D6>q3`~H0ZF;TUQJYD&o!ge4h;H5nNvcKHXO&L4ks<2!F&ISscw7@#7{u|s( z?q(id`C<`_!AX~EP98Ct-G=NcQC60SsVt$C*#2d`kWRbFpewsYag}EDOx_4q(RmX! z;cC1CpG1^r;GegR>G(2C*x?LJnb>WqXD59PupgI67r@R8Qef>~z=Ik? zm! zR~8g3MMjkdGp>*lPZ$GSr;7-786EI5Wqg56vd%l4r14i7I5=hixQfU9G1GxK!XF-2 zI+RpQ^BxWDKg8x1HKVKS&)7Q zl4&n!9q?SyTh}pU^;?1Nd*;+kl0n`LORKcroDe!o8KT!-3u;M+sy91l!f{P?Lg3DH z^#jPqpPVY%MFs;dbLniiu`=r=CEWDKBv?<+W02lIw`naHcIOn0W9=U05{kU>3E3!;XNc{Z48NlK(vphOz;m>Ulm;%l7 z9ybH7YI(l-lFcV8?v#P!wJE_;#A{{nZ^H+Dsvz3ojKlm7v^gbmlmL=;>53wHKV%@d zOYz&H+WFtSl%?%kwWAC=ok7xF#+^RukmBKtS$(IJ>djs4@ixddbD@aC{pu_>DUzYEhNgsC zn{k|P{boX!&)+kn_t736X+)L9+g+WN_^0=7coD^B$Kqpwlxc~O;n{Em-0MOcDlv@_gVac?Fh!>j}zhi@NlR5Ud{3)FY@IBaf! z&8sLiRy7TWO%wTb zjVu3>7RgM+gz&<)Q)MY6(ES>`k(IIa_W*5D2^TvBBGKBi9x2KW*vQ-~2udd6;|-DD z9QcGhB;9I1q(tpU$(pe#cFTNenkH(UuMBOb@%|(%+*992+m5MHDM<~Fa3FPU z9slc+r}CXSr3#>%au0=(>7Reo+%O9?*1(oS}rSPAPft>vpg&O{OC{Kh}~+&4nglFf^P4MsbG!9o*c%Q(Qaix#zhenMtzCw-|l21bCt^JW+Z2@oEB1 z1m57vyf8 zDW_#TUOiV%tEBA(CbISgAi!wFDGasyn*zTtsi;jc=Embt6sv_+VxEw@yllVeW`*C) zwx>76_@n9kTtdghydi)nM=N$Pdj8SX)}J<(VyA3kfRJJ_RLvh$pe?DV;E@Ku-*y!O z_j4HUZceUe)uiQ>z4p(dbFE$Y4vacl%5h4_M`YjT+GO8FdLo%y$fHf13ua~bmC0}A+C7)9%2`r>M# zC7ECD@Xv?MCGy@GoI$R&topJa<@FX=KmU5J+fwGFV(e6}|CcuAg?fi8q8BgLj}lCG z-!gG=(@U6Ne`nBf#3C{cRYEy6v_Y8X!@SNk2Qz9vvt` zRT(^4f6U?tkA9dO(IodB={;QQF-rt>4!2Bn^ zH>Vuo4h}Hyp&JYxlIj{A8qJSBx>4b!F35{?1OtkCX zw{4%5P(&Tx&)qvimA&i8iJo;T>PH833U0JWLmGDM#JW?4wHa5w@OARC9sd}3#;XJ~ zh;&@Q>z+M;o=DdCVnv;y@ zIA8|k=t;g_Tj4}@(%6vJ!*AFp0M#m_t`dac5Dsm@o87!;?4z6G*X$9E|Z~kbCjJCPlK#ja*=FLfFs+&T8 zNr~aZj}0P*N709QOERRDs|t?|6J0-9UY+iv=>qNZJ}wjyWl298_Lf54oe|i-xh%lF z`vn!E@AQ=^t(PRQBjv=DN^aq-`B*T{IaTVpw7HbKLhRjBHg%y!tTxCmj@F7HiC`KSy2)FW6^Q8yz&568<+45M4>4Aj@ zUsnnI0C4lYv-J{hD`&DhGYa#G>a0qdG$lmV?Z>Wdf*M6V(O`6Ni25O8+OWiIpae`j z`N~gzDpTe{$*97^*250_(Aot!y7a3*QvM;XUNrdnoop)Q7#>^vbTH;^&O~Z=B}Xjy zvxu~uv%#8O)B4lyf98%+zN-w5T%d zF#i;grHfPLTM@CB$j48at63dV{`t9;eS-&i{;l&#Zd2nglEXh`_lNq?kG~XX(-gEx z7O3*g(r-(FMSFooqu);GW;}HaDY*8I66{rBP@oGQ9I_25y<%>r@z|)OUk)4Lig~-!F&jGS4`kEAl7%A%C&|G<@;bE*`8#!InTFpth{bI;J*(mdGE!T& zKPmQIO{^R?ab1ttcd}^72cwA*)`<#Z9Y0ORAAb@Q)w=g1&u%zlsB)pUjA|f_7q6#m z!<%DfHqS$X1ioo!Bb09M8C{xao=1b1+8snKYwNO@6k}YCta8cK)IYMG3!6k;vtRJp zEU0@77Y4FhJ)^NLb87P5yZhbz=^sn0$|)t`))mxgV0foxL?hZWu!Qzm-uMYrFeE6$ zM{W*}zLsV;SL|iWX(@oaD5etD)=ht>;RSied`25_R9-CWzOad9Otgz#CytX@C6`1% zo+DTZoaT5#`k4KKrVr zrAe!ftxvBJ{Gqw&fZ{kf_9oxcOreXyeQt&|QKV0l@VmdUpo2}B2&5;o$@y>8c!mx0 zeIg&%lv0CY<_U}sB%FEB)ilwaW`5$ewzQ$09xPNkHokhNIB^X{C zQ1sN%0aD??-rs>c>+L(NnF$1B=fPEDOR8g+Y4{T`pFcz+tmi1SslMZFH>K>0B-!6u z zG6r|xVec)bT-Y=evYZQebRAHrsI>ajAU6~3V&pZDTZT3G15P)>-Y5@!3+I8lIxo$3Rxb)TqouHW5$FF-kf*v`llfxR5*M>OsKMgGH?ba&yc5WWs zj-+QEKmwjBjwwWBB^^p2k1G82Mu1mEyq}*2<$DSzKQH~ZQ8FK3qO<+OD>WK_a`#7S z#`u+L(w|X(ehiCmEz)Hp|H{T4%M|i>Q4wP*wBJIFN4Px8k16G(-{r=K0o0<~w7qYuiUZ04GGARA2cbQnaC-Z26qTsb(t2_gHEU{XC?Wx=kSnqRwUDDYe8M9{* zgXBT&fHj~SRwvEoAol0f2`S9I9o;1=s5$EXyzo+kr6F|Ha&SMbKu0mTyrHfo?1O*i zpr%_3YRwUWD9g$y(wpc22%E6Bm;83n1HnTm66fD z(ayDQEZ9>w5TpXl^tFDSS*JydhE(|?8$tC zs)Ov!|Jv9-l;K>O1#uzA@P69>6FBa-<^dlS0`tU`$khx*=1VC)f4e?59ovbvX>pg- zEh0D?cztk$#+atkOrFt-jhHR+>%`1MBc*~}@cL$3aCdq&gE3MzmcH)tEb-*F%3z1! z>Los&kveI8VY&KE(!}qK6;Btrc!K!O3CPq5q6Pp3Dx5@GvZ}=Q)X{1X@+{bcb@a$Q zrQb7hDaS3QmLKnZ^ROPfqt*W^hVObi<|WehX5f4$^#MJqx!GvL<4c!1kJX8<;4iwY z=1jCj^OFL%wu3>A1akk`Ey5<_!J zno&j?tP0ZWLhCO-^)#en>T55zS<89f0HQIM!&%jjbmpoMsSutgUl^UO$ymXTbk+sM z7cXP;G0d_OA09dDyhtVbUId!_F}S=QH~;+D`Q1{$8TDUKS^7~RMGf8?s^4#3s42G zDZwdsVzQ7kPv_Hl{qJ3p@d>?N3m2@M8;+}rrhDgpFE~1#bvUicr9*hyMpsRLGRI2c z%~ypNgovY=M?P({Lw@Z*6^=TnG*=gTe>vaui&xdzmUf}6-a~g-|HfZZf|#;W2X3G^ zwhqoTp46=>NRMvB)n8xBrq>izS}9cErZ}Dp5@nGQYtO*bAQf@2nZ{pd9;)-M`Bhvb zd6Idkr^R#9r;=I1vC*qJHSet?#qak;6R)_0wd?U4q=)$HDgUu}_rg#WaXJyhz&rw0P56yrzHN8ep;>iJe*dnTTscZa5{4UQOAL*>SNV;^(+4{(`aOg`M2dSqps+5-02fR9wiDR zMacp0e%}Y--t?RuL>rav%QN;$;WH9w7=a(m?u+TXG3~qA&;*Lk-q(h$dZm4KbO)Wl zvH!%5-LO?Hep|I)BhBtHF*tD&u&H<{>8LMdQ~-lLbzi5a^^MN#fjXydKZ#)O(}<$E z*M2@Eug!}97!<1;845rhHiX)>3MrNJ6WBbp2lTyAox?DAjJlMWTX77uL5Ii(c%1{H;X}aP@$!c?tSGg?<`UQa&vC zHS_H649JOz_S1hCdp|E+O|@NX{Qg!~<@xM@AHEN2`EU0hPQ)w>5i3|t12n) zKj7o6qD0u15yjBVozBXYJ`W&;R?}FkMAdF3K9%aIH&u|i_wx}=)+`|xAK0G%qv8v1wE|+*JOZ8~s&t-_LQ$(vEI2`hJysAE2GG-_)I#d81ZG z1M9?pmY-+pBXy^sD`I6(%-vlUskgCE$>xnXah7Pp;gDscTiw10b1L@>p89N+C7cmKfW5y_?5F(;>o-3LlSLo)tN;#s> zchVU)jo=l;VlX+}W3}^hbqzMbw}$4ZdK#|IRyStJtwWWefVzvLr{iny`bj{ISMa3K z+RL0T=eWh4>poo`&|C~3pK#nb-5ux|s^|YyH&KDA88cJEM&mh2#6r06fnKRVu+rei zwZxFZ8PU!!;j!EzsByUYK(s>ZdKMi>WJdb>Qv3Xo(|>`*z78m@jZ@C2qi82`&lj<( zR%`D1zg|;WB&3@dW9TMZ671E-{9r4*^JZMIh7>lldrFRt-7GcZZ$k~>F>3DjJJ@hXe#!Xum>qloyBYW z22!2hU!C^P;cTKxUf|BSLA>$@t@6^>T^X5g28TNR433v$$GP7{SN!GlK^e5I^UkAF z^YY@rV_k3lt-Ox*%>&^>r2lO`(zej8#)^zn7#zxihp{N~TMgD=N z>PzwI56GSDooFZHu$sxS`q~3!W5{zTwt8SaZB~m_5lglE>|2Z;n((4TY4X^n13TPiu(JAg(YMYqp*9Xp&Z1m6 z9P#^olK0HywCi)ivl_pKh9>Hv0^&>(_!BYn1vdv7U*poGQFW=yD`}|d`fiH*e55`uHB&Uu z+`199=HpLjXa)s+KG#!>>;a@S?yvG(F!fz{D42}#_auCc=G^~AL^sx|NU+WR4JcaP z3(MuSeu?3IJ~2i){J*rT!%MY`N>^e<)29I>4U_x9Hx=iDG%GdOyW(_;Q63?t!`nBN zmJx7r{o&q&ZJfvxWqNN>Y{wf;6-pW!IpVlkvh`wMH}E2FzQ6wSC8x{_Dc8o*M1I^9 zfG*(%!@Dfde+6OAFfENbS zuw}i+W>W4MnoCWg*zK}MGiy9Xb$;w43+f)V$}5YNF9~MfY>2DqI<}9q8n44CN=%7u z)J&g^gW{32fVP(G)A5Wxg^P)a*7m0hX~_s)5RUs%*Afjm+=?Ib*v?Fl3h%&rlaQ?C zd}Vg()U<#peTG;gd*wFob}t|A%&jM*b@E)d>xXY8U%mo7b%y-U6K_Ffu-12$AaE~e z%l%r@0aHi;r-dv4;g|i`S)F5FI@y>wG=ovPUufn*?}}d^GgyNA^P##IUrQtJ?Y@#F ze*Q?I4c-#+1Vt;qx}YaaEOg)gbI2`F)LY#xYgXJ6WBSXg4C|R;lNLUjE%4JF{Z!r5 zsNjOwZqHM6&3S;yfojPF-l;yO%KNb=k-MS%uPib{Ig`N>w8oqV8 z=^U4M^{MuUd$(nEH6KKa3NEb%m)eQAmp=<>e~(a>@9kxxZsaO>yuuz9246d7Q3@e$}o)TyP#+6@V* zgHWWV`b!+%J`^4p;9{iCmO~yxcui#py*F|FT5;p2xnQTDcqEPQ1_nlcAYnt(YxHox z%3p`&p0AV1vM+b5trhX33kkBKHp}+e*+g@L0s(4MjsmZngdnXMB~fC^jKB0~exgxS zxv6X8)ulfD%#}{}L84IGR`8*Yl<&GlJX?Sb-fs4;maWk<$syE$K)0SQZR4r5Mmh=# zR}zAVGHkc3?>{N)O16F)bQ!L>(-dTFt@emq41`cKs4?mGjD^}~ejd=(53?U!QTND; zZUVl#b?_U?Zb`rJB$g-NQ`PjIZ(=!nN_VuYpbX_hNIW zp^983eDl+`&_+db1r*dr2eW_pe|S`?xoYihDR?u?qZxdS0xvhNEFoN~mx>Spqb$=p zX%eFOk!%{{*`B@Z3tsJL_H+OBS@OJugt3wa0Hv6TGT^U@!9iAE_0I*I;<=)OY&ENI zy2SCTkoja!A9Fl1ZWnsQxIQvDpjTa$i5?$+idJ zr1#@140=k|nd%O-G5@iIP0VSpk1foHwR{$oziTVU*%76KeIF<#yfwe{;I$1>8~aM} zwL@umMWBlI5AJb-HI_%~5+$a-R~|L49NdG`Kn)X}`bHNUY`VgS2+zf{ou3fIBd$S6 zh$)`Unx=Pa6-?V@%6%4uFEk3mmzTg>*n4mjk^(aO>HfyfYhbI%GK17HMw&>vlfWnz zfSG*Qv;JeYpTuDdP@`%UsdwX6pK_FgQIC?p2hHBOI#$n~N?04)C3Qb&=45a9;{V>- z?+?gUV|6IFS^kK^H3|eEu4(85@mpmSX5&rf5SMjph7mE^( z6wlF3FoSN0K?2M)4Hbd!qp$kXE7>Co?gtmhH|tuNOhuvrRT~VG#FL_0PvFiB(&p)Ci`uza$Nh+MoXlnn@o9b zJWLEiKFmCzkbCvUj{c*B;a`hm81Yr1_2Bn=ouFv@WBBs1P%GxKtR6TjbtirSc&1~0 zWH7a#*wf#k!_JgVNWn}Ep`-lfzc)G&Z~qC=)w2E2z}VuZd_}o)MU=nQH6XOGn*yU9 z!Ua@h+!q}mAu~?DGRyz8H0L#Eo#@!7*sfveS&~uHeR%u7;oegU!d&wV)AQ1V}6FR=HUb+Md%YqKzvtJ`&$0yN;z(L9W5>IPX zY|#Gc#9KEV!1Zn~DQv4+ngO&Jm|tNDIO<+eWdGMgPzSCO5e&d>7pPdCpJb z^FJri>{2}x;H|!3E#^UG0mSeu@ISX^)JD74xLaWc^JDQ41ZZHF4@2 z8%%s)f{`C`lmGiinIMj+o&1S?Wp$lmV=xfA9R^xU1em(P;fB+S1ZXhS z7*1-&HR=c=Ytq0>-yGU$WFHqK=4J?ZbVW=mmow8> zqa|SUGdrXC-|9M-%V4U`6z=^g^Z4zAy34E{=mrvvz|<1U#D-dHhltJ`JSJvEOb@94 zk2VFt%|!)_={*=~bzjZR`k^uHE6^)QtnaL6fPCT)Ajt5Ofipeej4hi^wQ|leol39F z&f&S=Wr;$il7b;oImPIv4-hlmbfMiR;U`g(|B!sDXN>60a1|UUQ1CaIwIkAy$)GPm zei!T~aXc4yYt_r4ojRKGVJm?q?47W5~(ky@1>ij3E!@zk}urc7xAT zXuMcQ*YaNvP4rSYE8-t7fhq07Su^f}tzh$j8{pz2>P|)Tmw3i7M8`oJ3yyXg#*QBi z3ts65uY3&_$+cr%GO!ADQ`{!)=pe;M;$SN4NNXkSBe)ZNJhkvQr>`d9;Zk_oPU#uS z#Ed2q2ZnN_>j1n(5wf=uDo|PDM8fl+5->>x{P?EiuG&sXe;D^X0FtjWJS3GX0>Q@k zLkZ#MP3EN@ObE2g6w_y6akP}kU${FHUHKy}o4g!fTPRm`*cD>M>3S}@lp?Y6eo4$j zOB6}RTSsvN!O@}tlghp_O(KsL_tIIEfeAY=VGm*WgR;@b%)yn`?dQ9U1)8IeDP(ol zvd4e=&bC?vkJ|nlOWHy`53M+YA(2-bI_TVgzz)LG2Tu=*P-43E6|^VzYE9o$_`@yH{3}B%?b42#(E%fAV(A@Vymr}w{@J(u?*&0UkY(Xo zP^WVq%$O5hT(%^ofmLk{jbbY6zSxhTR z!bBjiH;GaeV-Q(e-AX)0a$cf=A)cBQ0bY&AZ(px zo4x7a1d{(&gaM!B{kwhub?boc9nsq*4CC(1#3LsKUmwI2=@}D&QjNJn?w@!8*vAY* z!J}YkQtyBiU%IvvI||<$02^xyNjv)P%G|2?;tUE0&AmxK3I9?^kI5kOA}W8VuMqi7 z1?hD8+cRFizs0)@&JZTxNla*wdiz_nfvt8xn!-2At5$`JbN9hHKUBTpb3TdLcTjZM ztxkGR3D1v5)e?i%cy2o#R{-EY%G<%0488rzV_#lzcFT_5p#F{HwbM1zbn-`BH+=`M zE&?!AeD52ua&`9ST~(?Z;+!Dn5z&>Xkdydjh;xM`9Sdcq+kGOdDWnbt-aRxu zN&Sk^%#K%xOZBA&C&d;Wi{{^q{RqtVnwDKdE)IbR7K`>v4JwWg6mcd5dE7X(>d$9S zNU}HOqpt&TQ5~LeikBn^70H7H!ZK^w-Lklz>feyZhhCt+Eh7#ZVlQ=wuj_%p{NQDO zg@R->AD9gG$mAT-28poA%6S7&1c4&oX$~~)LI?4)jIItx@-6hBx)TT9c?Pio%%VM=3PlvZPv=`w&{IgiU{nN~RfCNr@{?`%ufnHa-Uv6j*E^e?Yg zDFOnN4)ro>ApO^i-*^$T#pxtLhh!Dn+T`tuX_86Zzb%Dme+nVLj6C0mUs4-TlotIV z5BzF@7d2qQ?Zui4=^5r}s$H`=ML9^#Jl@kP4`ECTnIy0XYeij^X5oMh65NT%ddO?}k-x_~4`; zW;wO)wa@b1pe*;yLMVdk6BBxr1w+ut>6fy~ZcYFBf4j7H;O!aAG8i0GBFBarvNxYm zg3-PjX(hoYMMgktmwXx1B&Zw+1F)v+aJ5)HFtXeD`wndrG*!+XK-vt7PqaRAQ5bK8 zPYkrDVmF>JeoEN9A4Y<6_pV+}*;1x;7$$I$$BQti{8WSnC+YG#&rm1vW8OmF-$c1e z+b;-%ZWWS&M}>qt!M7#w^&N%QPJ8d9BCKabeQ+apLYEt^HK+Cw2DY6Yd$#}5Cq81LE05{jsf1Ee0&j`1dFeZ6QW!=j6b4(d0+fGB#)o^#~kxC&LX~r?F zDw4ubtXRzI^M(Gml0st8jXspNSd_hLWAL45mM62pr2e_X1rlM6V65=JUmpMWJ8Uq5 z|9+MJ|M+M3{QOme&7eqRGXsaBUEP8_`UC#s|N76Gh(F)8HTGsU3tnYuYJDQ_&x?2d E2j@M|lmGw# diff --git a/android/app/src/main/res/drawable-night-xxxhdpi/splash.png b/android/app/src/main/res/drawable-night-xxxhdpi/splash.png old mode 100644 new mode 100755 index 09a5539a80834f94a525b124da9f7308851199b2..539c85bcc73a23824fb21160e1437f68aae895a6 GIT binary patch literal 25528 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 literal 20129 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 diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png index 46169c660951e5b6d7ee35decb2652f203f16178..09c5fe03e0145dc8bee28facd9212af217699dde 100644 GIT binary patch literal 13398 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 Mx%J7i6U00J1L`Yc*8l(j diff --git a/android/app/src/main/res/drawable-xxhdpi/splash.png b/android/app/src/main/res/drawable-xxhdpi/splash.png index 27ee599bf019baff150d9f168737b9550f9f334d..7251f533702e4121b01cf97f565dd7ec680060d1 100644 GIT binary patch literal 21274 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 O4T6S8tvnl+T=W}DfqHHL literal 16774 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 z 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 E2j@M|lmGw# diff --git a/android/app/src/main/res/drawable-xxxhdpi/splash.png b/android/app/src/main/res/drawable-xxxhdpi/splash.png old mode 100644 new mode 100755 index 09a5539a80834f94a525b124da9f7308851199b2..539c85bcc73a23824fb21160e1437f68aae895a6 GIT binary patch literal 25528 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 literal 20129 zcmeIac|4TsA3uDf;v7X%AzRI~D@4|8rz~|Ol_W7tWl6TkHny2g9g0B{8cUXPqGTy# z-^w{&)xU?eV*UH&wsx^&Of8qeD3SIKFj;F-q&>h>=~0yzwh`R zL6A+SP8yy^kah6Sb%@Xg_(POcxPu^PuAege<3a%6)PP_@j$?@W+_C}kHf*Om-yd5Q z-fnN$EoqPu_e{2&|1a5`ukZeJ<7?R>z2tHBHtD3;r2_{)|1G+(=SWi9qw9y7w%pnK z=h@9G+?d%1GT&u1D~_r12=uY#iad7G9dEyx!l_!l<&PiOf}7yz_8{T|9Q;Kjbp_Br z7i!T@WScVjX|R4H`sXa)zodV)@h>+1b%$Cs9Q+#`{*8wy4E`^2hxT*HkNti8)~8FW zlc#pDVrlA>T+F0V7rB2cD~48MT)m_0pm!)E>wwwqGptWDP0m)x=z9=h&4SCW_Gi#& zB9u-m=5nrBPrw6}%{m(1w-}#kY^<|M=&^|cq&7ejLDKCX84t=3=J<(3DdAL2ng&*t zQW$2j386V42r2aIe&!Qe>IqJQXvAYFtt^)`*}2$Vp>7EN1EkRQkeHaqVu?FGH7RAh zlQ&w5vekXcMiAowtRWo&htiem5)@9T^XY_$@CUxzNkDMdWqZ0&w}*}sJL zfs|OvxL-sY<(DI4O@fK`q!hh6J;OhWt1i-iLw+N zM#5z2y6xW0$lfGA1lda$z>bM}>^mp5C+{BU*w0%6!S4Ysm3x}Mmvb1zj46!&6SBDD zy05y-5r!gC`#We2?;W4joiG4`Vn4qh`N zG#)S0uHE;r0zq1iAV@9a0QGB-g~KU7%KC#D4fiQ#n5MCde2B+2knjELK!z+u!cju% zFBQ8F#_CZr+sgKoh#;u!?_XVH{F5277MvD$Btu91+XI>>>}k*mygu+8p!HB>3nIxU zrPS2#P06y1K#b>)Kt5oUX1}>-Zw2jMyw@-@v#Q{&Xe=y?N0*IVF$-Fu>r~JZ;wZz} zv^)y&45+LVxHO2K#-`oRq2e4q%ybvEt^2Cr{cFnz*s{^ng~6cp_82{k`!xKN_LfqJ z@}Y+6%+ADkaG;3Fd1)=Beyf}FKvISmkG7s7=qT|cLFJLHRL>q}3h>gd0EMY! zwTY3QbdP4mNt5_bjBJ_*rN$iOuDSwR{=T|EOQZxjN&F~PNwwW!-CLw2j3C=lud2Is zlW~orRv7uyQ0iQ>>VZ@-tvzMJh)*i$By4zuQeybXLE=ZEO6KFOJ-eC3=xHu++NHLyg~Dj_cbuyxC|)m z(1$9Fvx#4`;`zio7-{wCWC5-fO4|yw5B3DzRTjm>LE^<1aV*uyFN(7tZAd@bAf^Gwn6-okl2*GRB!IPAK=`JRQM zc&RIcj$%+7^iovp-do4p+hZh|9d4X=qgU*k0&uf49@LWLl$BXU?yoA0RNgYuj8Kgp z8CNHOe4oKWKJN^zksvSGXET-Ln9V1nkk3Sb#2?aQV z6(oZ%?QByF|0Fg zhIN~Yqir|$9IOx$|8az(fUPjBjz>w2K%(m^dfPeNfh~(vMB>Hp+TQLco4)}kA;mTf z3rdBv#1rx6lNannUJ)4_^f(_lZgpag7B0=py%ySh$>$71iz0sOB~p8nl_^BhTWz6v zQTFs0jsL@3`_zO;IMQQxWZQ^%_*Pp~e;jD# zBABQ4p9&L(g;@|wE#X4AiF$<0W|k#**QF!CN~~KQjezE$+m>gIvm>z`6e22{KR6}+ zynAQSY!SD13ZpFQm{WeR;1*iSm6p@kH0&tP3Z)<344Rk%NQLvb;UM^_ zg}BVB;#J*($XZO?{KP|AH6_yfC1L7k_@Xhj=X43i*ifG zt=lrSwd`nt4I>;S-2;+W(4`JJZV641|9? zFPvNt*4q;7a}ZUR?NapPE!M|?^gtynM34D}<_yl-ehW<32&rS)_#&_<{+xW(+0bq? z3lGZzKY-Z#<0sQ<^q9R2IprVCnoGB77Z|?4$@l@VPR4nzw1vpgwq`|s+4GGB-tlB+ zP9hqs+Erm!<0~mN7s^0kq=8`kC$|jRZ3+)Er9lkJXYnHT7G=61(jYv3erky3!_Y^0 z5rz;2cQsJN4&I$() z@j-2HCEz^c1FZ_S6m{PM3NvR2qiiYzn~{rOX!j{c=gK}Fd?fSs4w zoTAs2zx7}XBN1K(+3Qyt(ga9|e*}GJ@9)OcC>J<-i++o4-oN~e_L1TVSsjnMdZ|L6 z(I^Je5Z}ccEi_BY51Lw;C6aIf)Hd^BhSGtVbdcbiIWP4?FHaH2<{AHx$HMb9+XW}S2Rm(@H2N6D zIprsYA76?NRxEI4l!KXeqdGNW6jH)rjq#{CmTKY`$*}>TJp@Qh6uSeeHCh$<$+l9g zJhXJrLKlHHzqn>WdEpD{x@OT>-GVX2QW+Qd@cnR-Z?8V{J?%1x_F5r>zMgUdn+0_a zo(!Z#h^?}e&Voq9rFq5whC?i^0x+h$cLPESjGO$c&6ta+5K`e7_5ql5^~Y;7 zb}Vlbu$i(z%9Q2vi?N0BfwT*h^|LLHVy-sr%H!L9wT{+65x|V0!kq-+*1Q84C(PJ+ zJS6g*aXn-PaaI5*G7JJ$yL^-3;AZQGxOL-EDtoz58Sb5H1pzMY1_73H<+OG&-%Vi* zl;Y3Lo0%QshhkX^ie+I($Rx!TMrUsHy7~){&r3;Z+?UzH@`X*eqnqNE??0Ah6~aQb z=C1*C+UH*hNZA~u^XScSp(h3<1I^d(o^4l=l?>|-ST_n)N4u`5CnTUz5dB8{{CqYD zSPj)C$r2i+@kjfPPCJ&(#NyUHx0BkX6f-4Nh5-bI~jsK95-{955X72PkPEruv(@ti2qY^>}=F&BRlaj zH4sn%(qV$_2>p|Mv`lKh0NyhGbpaXD5Jw%3ECE+YIPLG*oAqTT3AYZPnkv?_-`jw( z3J5#|g|RY0{oZ2sS`BIn;8fYVI0A|b?Fyk{~9+5iJ7V#L8W%^}MwrxIHMjkaTzP_2px{vmHHV|+xK&}1Y+8bIQ zR_VPWzp}C8RIsT-2dxEL!sz0A9toP^bVUT~c;i8W-6lrr_hq)T%)BK?H^B26CkH8o zm}B6SCodYeZ^D{ld5Lfu3f%d`h{y6h>LAJ z*9S%ZvxzF@cAE)-j3VGO1%+iz2F5ey5E$<43zcfFdxswO+g+3fHT@-DNJ5WjEugTu z3gW&RY=Jc+{#UFztp|F^KA`WunoR3}@G%$EyuZSWkw}pS5lJ43&dB) z1);K<5@$IAJNLoYOK**2{h1b}14S|7KhcJz8bd6GBvfk%fhVW`PSR3J=4={n9m(>1 zV=oxcxEe5l9|8+rbgO`pj19oW+X3{&pvFLvbRPsM&G-R@)lW$I$g7>whSi(3lvSYW z!e51Dq4orcAEN5qHKBH2$9mmk%t~4l#N*TJ=->D``Q3)xY?u7Qn+%rYXMOdzBt}$1 zE;UlEI(!iPNXT*Hi+$UOq-ULVZxEIa*8kunQNlT;8u z&Stn{Bn;Id4H-nJa6@0Xn2_@K0!bQ3$+AgH1!pHg@|~7aw;^81mK_C+U6MpdNmCM9 z2MR6%BYTfa-Dy#MClVE`4K$h*Lb@Dhs-Lpi`Y>o(d<05-tde`L={x?PFliXC@Ln6! zFmeJ5DZjoLQ>mb`O=~aO3z0rS-U}%Kz5R5jF<_)kEzkIQmRMJG3cq$>w9m=ajFk>cqY zezY}77j2eSkN0QWV}X^b3ymYpjfLL6B=g<=e3zj3YWE#^XyzG#g4-ZJp2Di9?WGLg zdWjr@B6mEy6FYmaaz8BW+<$Gs4Fc9VijDUq@*xI@Pv2nnsZCEFfkfZDVw?Kg&65lb zNMjchftKV8^Ef}KfDJmEg{uB=n58KJmU6bhd3#0B@4Y7i>t<=6lPaL05+lHP89m?tQXOvj1 zD;R=w?6n=^f8(2+2Yg6^!+)nY0;E$`jT0SMC35giFuW{);?#w_!eBQ>C&Wm6YV-9q zE?PVP@?DOS0HW;DTtn59Bsc+RF5T@uI^F4-D#3#8lSBt($1>1*uA|2Y{})GvnL+cV zq|s-J84`Cmfe-pZLryUCJ=r^3GM#yaWx^J>RF~~$lv?szIud8MTl?P(>dQCnl4j_Y zR1EC)Zd=c_e&X4jP<4(`OIrkqHbO7+b*Hz7Lk09Qdo?tsed~Dc4`xNVt644d# zUfaqCPTr*6dE0!twKeX0I)`zqu5aK`OMu6blPuTS**`WlKVSQsHbY6<EvJqk$3v1-PPW1 z7;f?xEc>~{<9+ErO$alP;%`>IWPDp+roKjDJe&C@*wUedMhAaB2xe7TBQQQRPX7HP zni)HtuRi?;PoZR>@k&=mV7QxdYMgBWho`5eaf@EsQ|!`2>hmaZ>0MR;Q*Ovn2{`QD zOI?qUp^2k;|96U2`)B``B0&yMoK-=iw%9kl{W<#OV!Sl@u!Jb{7%E=Xy5`MuCX^;a zIgOP`H5Ki5xcwRagwZ}#Ocr>=L8uB;Ds`BT&_43jW9HuA5w&uwqtj1#^24tP*F5%I zY{18{!vD}a&n-rU!?lekrnQ4S=FK9kT(!KW@Iwo2FzG zM4qj(Nm_cr8L1@_%A!s%mc12@oW3(Z+WW_#&99xs%AOV@}^Ep`jKY%FBeg$tohpZ{gg=ad?YGju5?LCI)mWLU7rxV@^`Fz~z zxOsp0E0uK|*0(Ox4U*LVV=|ZC1k0btcWb25i}D-(K6lWw*DCch(e9MYOf{uHJX(ru zxKH%_hTGn(w*!I)l%(b|{~~|>|Au$%7NCbXxz9!6yu-0U?e@IEqS;Jci85Nps#NCN zdl#6+Z(G)fT`8GU4_Uu=WC16MSK93iI=0jp4_L$6{rB zMO+3oBPr5k(=00L0UDltiUpn>dX8+q#DVdY!^ulGc8?_Pvw{iqY9mZ(-^oExht}(f zMzxfds&}AFJ=fDuYC>HyB~OkK4~mP4?pwpM!9n2o{lf%;Xe@IO8H2PESPvCU-~VQW zAK4c>L{6ne2y|N&w$wInG=A~W$_&mo6_#r+5-iEJi2UU1XsFcYr;TA!7>Wkw5M!jLt*`tB6>3J5X=4c91Rid6BhqopCaEyFJhKX2LfG^_H0NPtv5%pry!DRQWD)?-J7t;Kcsty1iJTLEnXI__ zl9ovsGx31t#V3Iexs>xJdC8?0YS<^YxVzw;$AQ7BG(BnZWk-g#^G&teSw^YS1cw_( z$}@vo-TI4^l+XsT{T%50NSAA`YaS0KCfdWRnX+U($?&JHAam)a#ylqZ#j<&8tB$%y zT6d9Pc}3Rt429;ec7rmnY!tf| z_xtq~^2^DWjOYq1xd*2;HtQb!&kz_gr_Vj!D`eq~MTgy^@xdOWgiAHod;N1m{bk&$ z({LNg9h4u*9#zvQB=lE5ccI(*4)k9<{oLD;gm$X-kS2YgGf9Z?KJYR|WAJU#Hntz* zF73Y8y)wOujXphi9d;yWnmIEYt}zW9BwUU-b)j)(0UNG1z2^eoOdROhawNH}#OPv+ z;=6hlJF`k}(Rrxd+tp8MJoatE(jcr}ZkV>CbQ{aX_eK0>Va$R7=Or(%B8{>ZpS9$65*^-C%@~xyYNk4j-P(0(nZx654p%_WGL3I zgW^%)R$FF>;PO6ai7QWa^hD$VkVvS;x;Qb9EZ}rHX-P`!Y}}{NI$Ee06}LVVQvD?g zQ~O;REdxf()-v2H%($izi0pow_O|>VliY-z8<1~H{~P2YukbPVf4!i{g=6nRvD6Y| z%c!JnfLu#5Qn(f>#g~cg1`pdy0y$beDCR~pskn8BWRl7Rl`1eLuccom{NMwOD#A_l z`d9q>(L7!X##~%$%W0*#|WS@_9a!-(p-%-_>X%Ejpzg#Zqx2rKVHN8kKg@QGE&R$5llQc|_@?~}&d!xii1g1TB24LoHbgm1cO zz-a70SgS0Fr0X|-=XFqET#F!8=R%*Kt*-f+e}vy)ObSSYothlgz|hY^u}#Ad&neLD z<21H~hQj2@3j`1~kJM4BSZ8@jp#r%nC`TpNQDFQJ$mHAp5x6P2(!u>H-*{zuioaGi zz*a?ZmK?0e?0^Z*J2;g+xYb&}VqIsczaQT>5gkP-Ds#=4RXyATvy8vNVkPd|v<|`M z*8Bduxdp2_gN*QCevqIqfcW%9?ufb8*kZop3KRA|Gs2FRFo}lh`a{|s0iW(2X6#X- z@)?mG$^_WDgt^wFfYpG$aTKNv18+h)s`+-3JE{u)W0_L-%{{xAEMSZSj8(u?k#vxC z3VT{E##CkM3w(78gvG_s6b<5Gnu3%H!1pjZMtMdGLT6xQU(X)Ar3yr}O)CG|o!sSdqGbZscBjQov3^`ajpGe-QJ@WNdKUYD6c_vXpT26c5#P9j7fnlX!$?Nl_(TG zd)Qpd>FJ?wbG%edPTG-oe-1O|Pj07&qlqfLqS@kAi+R3W0`Bg_%6+UjR)pu;)LPb> zEzjjCGMS&$b{vZ_QHh(?uiUy(8$!f@-&MvY;5E8iMpbM>IBx+%ERLud88c&-^Q29> zZ%paPy}xu>!nlI_!L2#1cR&eupC1dln(t-9O zIuSt??!mTZtWl_r5>F1=I7y^?2y1dAX32HD9&C1;OUo4hg)sp$_L^Y(9~+SI>S2s| zOut5jQ0FBj5&SZ_?u$}k}RcwWQx9U})~>Pq2FgP`RBLEg1OQ$!d=72Ak$ zkCp{b#vjJ=;&6YJ*WdP!a^i;bCX<$Yc^Xlfmf43vV=36=CALU<2I`|D-WNv>5a5;U zlN~nd8<589H&>KSj0KDEMtphU4c~d}43~Hhl)Gn@Gjvhu^kG;euXJDMc_Lk->D5_O z61f&x?(*X?&k!3KZkzNU&rZE|1Q>gHF&cXIkQ!7G17cju<>^mF<}m{Y%7oWSeEs+) zHiz>%hep4kyeVK*>pYL1(-DyhZ@~nqO)pCsG=b^txyMvwS(g~;48@;)cM65uiFfLF z`!MVe3nh;<4j#MS^K+`T&QlFt_of5WcD>h>$ES;jY3~6ZCG-Y^NwdLBGP<5*$>>PF z7!lzKw!ymYHTfOkJb96t&iZ*xhYQV?cF`WarkezGA+2x&?K`SvzC}^8Al2udXmgVj zEUIYOHQ5bSPOhlhf<8yWGa|o5I1K0XIj+gR-z|0E&S2Rd?>`v{C++Dv;@M7c_k?Z7 zXs1bIl&<%BX5v(nuI#^ap3w0=AGAvxx@oiFgY)5UC3ZUq(+?(3XERq+r&JD&cqfj0 zkSB`6sIPRtOCo)#NDsZ2AWt5^Vg=+jk=8%eE1(vESid0VIA> z!+!G<>WH$Z*9y_7aITIxU#`iqSI^Ot9sa>X4xw-E8Uh^r_{#T*@J#Ak?Uja3*ls0s zJecsIG|B#YTZ=y;my9EMNXc;N-G?|TF8bGdyVtsdtEUn{tVg(zz``W^~vu&D(bLU|UxgCA$b2UedaA7zEnb|3FV>u#u8XFU> zv%kQLAxE({$%_nzi#fCguk^M2oYdhhX)#$1t>H<3%X1^Gn#LxYcUewkGXrd}73+`z zn492VH+N7rA+56_WzYlO!LUvI$T`)&*Gz}4gp4&zR}9?@Y7m-y28`=}%IO`u<~TaE zF#L2ll`C3{fzjWkoN3JLdqv6tky6on$;`YZ^OzjfHhQ&RhsXwYQWy0EFX~9;k%AzG9(u!z|4`(Kxh#`l{S&I1-~np3t`zx+V-#n_>T~&1a1Wd0 z0j~m-H=5HFmCtzX&h%VtlrTxOewtE;7#StDYDZD$SJWRsWX^ywPM zE32fFA=1`d@_7;ZV!~@f?Hr7=CBxi@=ls)>2A?11=1?2bSk`82k>!lw%YIs?)5Mn- zOH142$#bFGpZ$zXW;XsEsmqa2iqW5Zb7Doa>YSXtSD`!V4d89H$~oIv9hqxCJk^FC z1fG}qFhei$+@Seq@=`_B%q zroLWKN49!h(p40xwP{cim7mAy9`ydRzx#7(n~ia>{mVnEadvgu9G)q|8W;#Ey5hsYi z3FHKfrSX@z$|83yyht{Wa1Q-LZNV0tp5^=Yp$C|+#OMPGL)Fz{%Pfi*y)9)26b8|5 z%KwNGE^rdLp(o{ES~U+J^x!I^2!KHsKEW@VW9D~%p#(FBVb~*RxSG3X zW+4*nx-EhoYM|O*$9pmF%=-2~@1p$lV=!hYv?$7_D~`sCAVxA*Yb3&l2ZpIswK{?Z zC;k9cP6sfSwY3vLbGXW$c3Wd!Rx_x>=O zXgtiFB1)v)$!b(;Bj@P7t2jvg`If+?g`5o@8RlO8A{f~}glEsZHUD6*GE~ufgn8TPF0~Dwjf(G0=?<|8qu-hlqVANaPJrO5DMnOg zD17ZQgK&Zq5K?RfhF`5i4Ikgar>88ELI0@uFt<|Tc(7t>SCQxMD<;_L3XP_a5Y?H5 zsVgD1D*?+<$-+tB<+%AVGMjaILHFbfsm;UBy;%B47#b4yABw8nQ&GSB-kq6EcN7HT zs77vDpgPa({@(rFOI~Tjny;dOUaINZCN{GA*Z6YV32s8j8*`M826TPgok%|XPLWFe z`vQv|^DQqilhJc|&CdkeqS%3M{bMoPSN|AVrbcIIa)^flLxO4Yg>8?VB%qXl2twI~Jc+be6>?nGm;7HGeDxpvmWXJ4Sk`Eot+49wlUe%COT#EhGMlDy znJX^63UGQmgi^`BnLa<6jsCN3iYlju47d%NUv>9|60SPD7n+^;WXAR;g$(O?;yUS& zs_eJ+c+f&ZxAo|ka{_7dC2h^a&Tpo+AV1-CAn9CB{t=}A51GI8#RR8whp73|^SJn| zm>MmW!h^(HK9`SqeDn+>t|+BS5NABe--efZpu$AP(HmMB1=q^%+RAVqIZ7lRo!26) z;n!*U)cgDT^tW{nbI(*3*0|hU(N|*b!;a70F6CJm&v^y8-u%%ZTNs42>jMakpXr2@ z+49fk_89H`Qiw^`$j~1TQ5K2g?FgT1x%iW)=)Xc75}IMlV@#spWE`PC02vEeUmRRfntP0ZRZHR%ReZc zCIMC>FSxU=y-%)O2tTl#Kg8jP2O$~>TdjguMxRP9s0(JemlZvpD^Ia z*Q~0ODn$&Ng{zmZuxO6;M4!9jBIBlUukL$|v&0V))esz%f^$e6l;Q=qeN_BpIWjM% zVT#)D*TYY2BWC7kHV=bNS85v4w}ijFGeo5t$;A#hZ^MbRBB!><`UiCAok8#psK#1u zNek2-v{u(;(_tP8uY=#NhW3Qayz@o-n&g5=pZ;5Dh#;bDjNJBm9&%M?tI|is&+F$2 zt6ss?ev$TeQf2;rY4Q8>+4_gdL-i|8QsbM9`gPFAyoMs=U?Q|>(NZtXD&OxKa?qABtj z$f82_iFqZ2T$7RWq$z&hGtUY%3m%-2uhG#g`;#!hd-7>4{JpNW5|@xCtMLm;a;UKG zYcy5NY>VROKSmZV=KVf*w_e0EqK>!z{xW^vNZQzH&mQDCdS`8;2~2`3^+g_*z%AQ{ z-Y=?FD&xB&i3gb9?*2|SwoATQQzg!mq1Lya>(NEf7yhJ;HYQ8t;JpP*L zC8Zdh8z<$LeCNHCq(3)3Weu3~kKPsm zk7}Bz|2c+Pq-Vo)T>iqjnk!f&2ZptzQ)g4xD@%ueC4Nx+>^Pzlaz`v3E}jnxbCiG8 z^K|V>r+R&=$Nk@9)bV~TSp?0n5eq3H^9H5UbsZVSb^=fZ*>ct-27;I(8zx6&YWPJ#vn_c^c#xy z^Kt&h`g+XzDNM*_K~~I0MbVXPOU~h2^Fh(_j#&}$Z7=<~f;-`rIO$Y@h0JCDs5|3u zIdyfXUQAQ{*aCOH<<88I=Nc5_M=oTaVFgAfrxXMs25>C_|G832#7rVUy!?sQp#p0M zc07ltVI)FsTW)KzdLc6JYa2Sj8wJzfgcs*XY-Xj+sw!5#Rq?Z+*Q=T%B2Pya$Lu3? zuCFJyoaX3S#gtt<+}u5nh1#Ol9ZY)qsYd;i#UjlF?!k(a^7Ui$bMm9gDcF~|I#Ur+A6llrUy7)k_~>=1O1a`>nkFX(logd+ z1Ot zqE}+9^>9;5zPZ^q=t@c_Ng!7cqaLkWsjTYe20!CUT962CYB*#3nY|dnT(*OY`^)#z2$f1-{rc@`;|AryhT^@gHxsxK%3iP+-)E)a}2aO50bkUM7EpH zFTTO`%Ot~*+v`wj94|FRCcMZ59R}u4sr)nz#tkTVobd>zuQO<3iAo_M^CX%HmJOG| z{hPZx1yH13Ma7R@%N%vGD{>3$swh(3Ix=~{V+lo09e7{5=irX;;+HTXu}j9?^@z;R zXliV=fdpFn3Y8>T4VxBG*LMvhv7_R`JR&`T z_w$p{iB;yBHa}?)wTqQ`bmb9d_7ukF46B^r4a${N2jzzN{RHJw;oMXToO>^y8ZtaO zj+z9nbRny5rx^8`UqW1Ad}US8qTDky>CjiI_1dMz14;J>jQkwX#f;T|pYa0g5R-6W z@3-2^OEE?D6F)n--1@ z-?xls#^py&qeyxV+Is%}3S@t}9c0olm|%ph1P1u_%RB-rG(xg9aF32ULH7r7Qy=5* z+Rpply!js!HA3xe;NEVspWF6blFakJH!G&GP}o7GG=A0iqLP{Uc}?@r5^;{ z+$gqYykq*z0h)OfT-c`w;>XFR*1yfzZL&x<3NAmPQ>%7WY|Iej1$Rd$ zFC;CcY5cl^hnOv_pm#WNOT4~{j{qfk;+E72Q`_|ITYS3k+y4CD4Uk;8p&*XjRf}dcR^21O{H-EIZ z{806c@zv>E>Xnc$3uXSY-5*EWln_I41o=j{yL^j)+YuvO9%?e_cquthZaI6H*~1~M zCk4QAPRTXb#%_Mi7mJvjo+jsoF>xf}Hw3w9e@16T!Lv`#XYEC<#Fe%$3;yS1_Z1I< zC*4O7WO;g%@BPR3k&Z%d7V*TSE`t9g1lNAG#qd{cxqNtE*m$a6lCN==niX)Rw&4x) zFQPt3}zW zt!dCVxP0_Eh+6v;WWg^-Q9rCrd?x&CU-W-tw-=`?%I@?sYwbcG*a{5X5_bJMXkMv#)IB1Kaw##=u`+4ulBylh>(a|bq!D4dd zMr)nTEI(qg8*0g3GWFAJ*T~Q3PbO=+;0eo^*~rP#;!zTM!Ua(6E5G4qKUd5DN!9UL z8_A_wt1p(Oo^9HrO7!3(sm(`iMY@_+bQcTCbM(NZw``OO4^7Mm`^)xSp5;SY3_ym( zH@S+r;hhA|FD*D_PaNsbk5;%5?NRwVa%dADf^^XXTy%>RUn|L$b7OL;iAjO|jop?j z-mTwr{rO0a7~rx|QYl|QuVu6rOcE`MLAS4iuwUr%7sC!~~K>*ttGyN2i0 zWG<>i=E-Hv@7t&Nl5lns++PY6zX;~$J8S&86y zFS}ZbF2>Y}Pp%wqy>=PY`WyOy?Xcsri7!jnaeVcqjZ#PRO6+D|Tb%_q7kTA^(u0Se zEoYan(|`F8*Lb>HLus-Sp3aiBT8r$Da5G zhpH1J4H0}S2-MycAjKu%qU|+&)_ilRJ^L3It16?-yJWrwN+2iqKzIroezp?ndy0E9 z#Z#)BE1xTIS!q#i+NO!^I{53EeW17@Nu~E~d8P}WPIU8%7gby>?VGOn+FC5c0UroB z#-XJ70v+z3wbm!P?Rx_gbuHOx7n%fJMXpx~Bg(%vkWy-;e%Z5nPupCkoV(N|Je}9e z0#2Wf($FnlVIY1V{Z$p`>oNl={f;bBMiR8p=&{-&E9 zPD*FfmZb_=v#a`{h58!Et1)0FA#ePRxcQ|tSDyBu#X@ExZ&DPA zMIq-CMV(Wd>%juCb&3RG0`}05nzVwXtREMV z+RV)eva=6(V9>_=P6oT}`DIfjq zKhKo??-`a$Ym1E%A98HIuuB-pF-DL~MqjQ3Z`K^bEfuJAS+xtWcBB)hcvKLl+QBoz;1A>tDTE zhv08C%I8<+jK=-vdmnY4ni}bE2#OXy9e*PIq+jgZ)#u*BcFRpEwW4k2V1htQO{UwJDQ*LiML zLbYqKVGEw^#w{k%UzVkhUUBc{!=GAvG5RIR)kcZ`)jkj>G1y6+7xKZsvog<#UOb7s z+RZ(8>xUcnB9Z7(DO@Wjj*uKxt2cGHsLiId(jWckR0}^kAVhkxifgr0lYd$EW?m6- z1p~F*;N0oeQtP{ss+U~j_^soHoXxG9t$b>tZpE@lBx5G2rfrmdEYxD5Fv&Cb@v$8< z>tE%qLlT}Jwka;MyK=BmzjQ6Y5y4xyC06Ax{*LfWP>223Z&5A$8|gp^{|0jgLg qP{O}y9+dEJm4o`j|F0sCMC23D8#`xHB{Ge!J!N#pFz-12um1;cJ)&^{ From 69612cc3e5534db04a85374ca555920bcf8b2e8a Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 28 Jan 2024 15:18:18 +0100 Subject: [PATCH 066/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 1602a5e..e95f496 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.15.0-beta.2+122 +version: 2.15.0-beta.3+123 environment: sdk: '>=2.18.1 <3.0.0' From 300738ca14ba0b06139f5647fb9a9c2cc61367d7 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 28 Jan 2024 17:13:18 +0100 Subject: [PATCH 067/236] Changed some error texts --- lib/l10n/app_en.arb | 2 +- lib/l10n/app_es.arb | 2 +- lib/services/auth.dart | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 460e98d..6d473e5 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -24,7 +24,7 @@ "invalidUsernamePassword": "Invalid username or password", "tooManyAttempts": "Too many attempts. Try again later.", "cantReachServer": "Can't reach server. Check connection data.", - "sslError": "SSL error. Go to Settings > Advanced settings and enable Override SSL validation.", + "sslError": "Handshake exception. Cannot establish a secure connection with the server. This can be a SSL error. Go to Settings > Advanced settings and enable Override SSL validation.", "unknownError": "Unknown error", "connectionNotCreated": "Connection couldn't be created", "connecting": "Connecting...", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index c730a7c..8180d4b 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -24,7 +24,7 @@ "invalidUsernamePassword": "Usuario o contraseña no válidos.", "tooManyAttempts": "Demasiados intentos. Prueba de nuevo más tarde.", "cantReachServer": "No se puede alcanzar el servidor. Comprueba los datos de conexión.", - "sslError": "Error de SSL. Ve a Ajustes > Ajustes avanzados y activa No comprobar SSL.", + "sslError": "Handshake exception. No se ha podido establecer una conexión segura con el servidor. Es posible que sea un error de SSL. Ve a Ajustes > Ajustes avanzados y activa No comprobar SSL.", "unknownError": "Error desconocido", "connectionNotCreated": "No se pudo crear la conexión", "connecting": "Conectando...", diff --git a/lib/services/auth.dart b/lib/services/auth.dart index a450348..68e2717 100644 --- a/lib/services/auth.dart +++ b/lib/services/auth.dart @@ -2,6 +2,8 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; +import 'package:sentry_flutter/sentry_flutter.dart'; + import 'package:adguard_home_manager/classes/http_client.dart'; import 'package:adguard_home_manager/models/server.dart'; @@ -52,7 +54,8 @@ class ServerAuth { return AuthStatus.timeoutException; } on HandshakeException { return AuthStatus.handshakeException; - } catch (e) { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return AuthStatus.unknown; } } @@ -75,7 +78,8 @@ class ServerAuth { return AuthStatus.timeoutException; } on HandshakeException { return AuthStatus.handshakeException; - } catch (e) { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return AuthStatus.unknown; } } From dd927bbd25971194914eaca94102f5c5b8068c85 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 28 Jan 2024 19:03:49 +0100 Subject: [PATCH 068/236] Fixed dhcp not available --- lib/l10n/app_en.arb | 3 ++- lib/l10n/app_es.arb | 3 ++- lib/models/dhcp.dart | 6 ++---- lib/models/server_status.dart | 5 ++++- lib/screens/settings/dhcp/dhcp.dart | 11 +++++------ lib/services/api_client.dart | 3 --- lib/services/http_requests.dart | 1 - 7 files changed, 15 insertions(+), 17 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 6d473e5..723c08a 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -748,5 +748,6 @@ "startTimeBeforeEndTime": "Start time must be before end time.", "noBlockingScheduleThisDevice": "There's no blocking schedule for this device.", "selectTimezone": "Select a timezone", - "selectClientsFiltersInfo": "Select the clients you want to display. If no clients are selected, all will be displayed." + "selectClientsFiltersInfo": "Select the clients you want to display. If no clients are selected, all will be displayed.", + "noDataThisSection": "There's no data for this section." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 8180d4b..837d9d7 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -748,5 +748,6 @@ "startTimeBeforeEndTime": "La hora de inicio debe ser anterior a la hora de fin.", "noBlockingScheduleThisDevice": "No hay programación de bloqueo para este dispositivo.", "selectTimezone": "Selecciona una zona horaria", - "selectClientsFiltersInfo": "Selecciona los clientes que quieres mostrar. Si no hay clientes seleccionados, se mostrarán todos." + "selectClientsFiltersInfo": "Selecciona los clientes que quieres mostrar. Si no hay clientes seleccionados, se mostrarán todos.", + "noDataThisSection": "No hay datos para esta sección." } \ No newline at end of file diff --git a/lib/models/dhcp.dart b/lib/models/dhcp.dart index 9e7f7ca..7953f47 100644 --- a/lib/models/dhcp.dart +++ b/lib/models/dhcp.dart @@ -1,11 +1,9 @@ import 'dart:convert'; class DhcpModel { - bool dhcpAvailable; List networkInterfaces; DhcpStatus? dhcpStatus; DhcpModel({ - required this.dhcpAvailable, required this.networkInterfaces, required this.dhcpStatus, }); @@ -83,8 +81,8 @@ class DhcpStatus { Map toJson() => { "interface_name": interfaceName, - "v4": v4 != null ? v4!.toJson() : null, - "v6": v6 != null ? v6!.toJson() : null, + "v4": v4?.toJson(), + "v6": v6?.toJson(), "leases": List.from(leases.map((x) => x)), "static_leases": List.from(staticLeases.map((x) => x)), "enabled": enabled, diff --git a/lib/models/server_status.dart b/lib/models/server_status.dart index b43dbd1..fb7c1b4 100644 --- a/lib/models/server_status.dart +++ b/lib/models/server_status.dart @@ -21,6 +21,7 @@ class ServerStatus { bool? safeSearchPixabay; bool? safeSearchYandex; bool? safeSearchYoutube; + bool dhcpAvailable; ServerStatus({ required this.stats, @@ -39,7 +40,8 @@ class ServerStatus { required this.safeSearchDuckduckgo, required this.safeSearchPixabay, required this.safeSearchYandex, - required this.safeSearchYoutube + required this.safeSearchYoutube, + required this.dhcpAvailable, }); factory ServerStatus.fromJson(Map json) => ServerStatus( @@ -64,5 +66,6 @@ class ServerStatus { safeSearchPixabay: json['safeSearch']['pixabay'], safeSearchYandex: json['safeSearch']['yandex'], safeSearchYoutube: json['safeSearch']['youtube'], + dhcpAvailable: json['status']['dhcp_available'] ); } \ No newline at end of file diff --git a/lib/screens/settings/dhcp/dhcp.dart b/lib/screens/settings/dhcp/dhcp.dart index 75d1856..a17d620 100644 --- a/lib/screens/settings/dhcp/dhcp.dart +++ b/lib/screens/settings/dhcp/dhcp.dart @@ -15,6 +15,7 @@ import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_leases.dart'; import 'package:adguard_home_manager/screens/settings/dhcp/select_interface_modal.dart'; import 'package:adguard_home_manager/functions/desktop_mode.dart'; +import 'package:adguard_home_manager/providers/status_provider.dart'; import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/providers/dhcp_provider.dart'; @@ -182,13 +183,15 @@ class _DhcpScreenState extends State { @override void initState() { - if (mounted) loadDhcpStatus(); + final statusProvider = Provider.of(context, listen: false); + if (mounted && statusProvider.serverStatus?.dhcpAvailable == true) loadDhcpStatus(); super.initState(); } @override Widget build(BuildContext context) { final serversProvider = Provider.of(context); + final statusProvider = Provider.of(context); final dhcpProvider = Provider.of(context); final appConfigProvider = Provider.of(context); @@ -353,11 +356,7 @@ class _DhcpScreenState extends State { }); } - if ( - dhcpProvider.loadStatus == LoadStatus.loaded && - dhcpProvider.dhcp != null && - dhcpProvider.dhcp!.dhcpAvailable == false - ) { + if (statusProvider.serverStatus?.dhcpAvailable != true) { return const DhcpNotAvailable(); } diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart index b122a8c..0abb737 100644 --- a/lib/services/api_client.dart +++ b/lib/services/api_client.dart @@ -490,9 +490,6 @@ class ApiClientV2 { return ApiResponse( successful: true, content: DhcpModel( - dhcpAvailable: jsonDecode(results[1].body!)['message'] != null - ? false - : true, networkInterfaces: interfaces, dhcpStatus: jsonDecode(results[1].body!)['message'] != null ? null diff --git a/lib/services/http_requests.dart b/lib/services/http_requests.dart index 37a2cc8..2d001f2 100644 --- a/lib/services/http_requests.dart +++ b/lib/services/http_requests.dart @@ -1352,7 +1352,6 @@ class ApiClient { return { 'result': 'success', 'data': DhcpModel( - dhcpAvailable: true, networkInterfaces: interfaces, dhcpStatus: DhcpStatus.fromJson(jsonDecode(result[1]['body'])) ) From 56943ec73d290df1fa3ddcbf8dc8dcf963770e1c Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 28 Jan 2024 19:04:01 +0100 Subject: [PATCH 069/236] Fixed no data issue on home top items --- .../home/top_items/top_items_section.dart | 57 +++++++++++++------ 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/lib/screens/home/top_items/top_items_section.dart b/lib/screens/home/top_items/top_items_section.dart index da0ccd8..5749f5d 100644 --- a/lib/screens/home/top_items/top_items_section.dart +++ b/lib/screens/home/top_items/top_items_section.dart @@ -90,27 +90,16 @@ class TopItemsSection extends StatelessWidget { return values; } - final lineChartData = lineData(); - final total = lineChartData.map((e) => e["value"]).reduce((a, b) => a + b); - - final Widget noItems = Padding( - padding: const EdgeInsets.only( - bottom: 20, - top: 10 - ), - child: Text( - AppLocalizations.of(context)!.noItems, - style: TextStyle( - fontSize: 16, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ), - ); + final List> lineChartData = lineData(); + final mapData = lineChartData.map((e) => e["value"]); + final List total = mapData.isNotEmpty + ? mapData.reduce((a, b) => a + b) + : []; return SizedBox( child: Column( children: [ - if (data.isEmpty) noItems, + if (data.isEmpty) _NoData(label: label), if (data.isNotEmpty && width > 700) Padding( padding: EdgeInsets.only(bottom: withChart == false ? 16 : 0), child: Row( @@ -321,4 +310,38 @@ class _ItemsList extends StatelessWidget { )).toList() ); } +} + +class _NoData extends StatelessWidget { + final String label; + + const _NoData({ + required this.label + }); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Text( + label, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.onSurface + ), + ), + const SizedBox(height: 24), + Text( + AppLocalizations.of(context)!.noDataThisSection, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 16), + ], + ); + } } \ No newline at end of file From 44d7da9977af0956cd5a39a62080e4651dab8aab Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 28 Jan 2024 20:39:42 +0100 Subject: [PATCH 070/236] Added statistics settings --- lib/l10n/app_en.arb | 11 +- lib/l10n/app_es.arb | 11 +- lib/models/statistics_config.dart | 23 ++ .../app_logs/app_log_details_modal.dart | 194 ---------- lib/screens/settings/app_logs/app_logs.dart | 81 ----- .../logs_settings/config_widgets.dart | 111 +----- .../settings/logs_settings/logs_settings.dart | 5 +- lib/screens/settings/settings.dart | 31 +- .../statistics_settings.dart | 338 ++++++++++++++++++ lib/services/api_client.dart | 35 ++ lib/widgets/custom_settings_tile.dart | 4 +- lib/widgets/load_status_widgets.dart | 76 ++++ lib/widgets/master_switch.dart | 52 +++ 13 files changed, 579 insertions(+), 393 deletions(-) create mode 100644 lib/models/statistics_config.dart delete mode 100644 lib/screens/settings/app_logs/app_log_details_modal.dart delete mode 100644 lib/screens/settings/app_logs/app_logs.dart create mode 100644 lib/screens/settings/statistics_settings/statistics_settings.dart create mode 100644 lib/widgets/load_status_widgets.dart create mode 100644 lib/widgets/master_switch.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 723c08a..bdd9f99 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -749,5 +749,14 @@ "noBlockingScheduleThisDevice": "There's no blocking schedule for this device.", "selectTimezone": "Select a timezone", "selectClientsFiltersInfo": "Select the clients you want to display. If no clients are selected, all will be displayed.", - "noDataThisSection": "There's no data for this section." + "noDataThisSection": "There's no data for this section.", + "statisticsSettings": "Statistics settings", + "statisticsSettingsDescription": "Configure data collection for statistics", + "loadingStatisticsSettings": "Loading statistics settings...", + "statisticsSettingsLoadError": "An error occured when loading statistics settings.", + "customTimeInHours": "Custom time (in hours)", + "invalidTime": "Invalid time", + "removeDomain": "Remove domain", + "addDomain": "Add domain", + "notLess1Hour": "Time cannot be less than 1 hour" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 837d9d7..d9b2f9a 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -749,5 +749,14 @@ "noBlockingScheduleThisDevice": "No hay programación de bloqueo para este dispositivo.", "selectTimezone": "Selecciona una zona horaria", "selectClientsFiltersInfo": "Selecciona los clientes que quieres mostrar. Si no hay clientes seleccionados, se mostrarán todos.", - "noDataThisSection": "No hay datos para esta sección." + "noDataThisSection": "No hay datos para esta sección.", + "statisticsSettings": "Ajustes de estadísticas", + "statisticsSettingsDescription": "Configura la recolección de datos para estadísticas", + "loadingStatisticsSettings": "Cargando ajustes de estadísticas...", + "statisticsSettingsLoadError": "Ocurrió un error al cargar los ajustes de estadísticas.", + "customTimeInHours": "Tiempo personalizado (en horas)", + "invalidTime": "Tiempo no válido", + "removeDomain": "Eliminar dominio", + "addDomain": "Añadir dominio", + "notLess1Hour": "El tiempo no puede ser inferior a 1 hora" } \ No newline at end of file diff --git a/lib/models/statistics_config.dart b/lib/models/statistics_config.dart new file mode 100644 index 0000000..f504708 --- /dev/null +++ b/lib/models/statistics_config.dart @@ -0,0 +1,23 @@ +class StatisticsConfig { + final List? ignored; + final int? interval; + final bool? enabled; + + StatisticsConfig({ + this.ignored, + this.interval, + this.enabled, + }); + + factory StatisticsConfig.fromJson(Map json) => StatisticsConfig( + ignored: json["ignored"] == null ? [] : List.from(json["ignored"]!.map((x) => x)), + interval: json["interval"], + enabled: json["enabled"], + ); + + Map toJson() => { + "ignored": ignored == null ? [] : List.from(ignored!.map((x) => x)), + "interval": interval, + "enabled": enabled, + }; +} diff --git a/lib/screens/settings/app_logs/app_log_details_modal.dart b/lib/screens/settings/app_logs/app_log_details_modal.dart deleted file mode 100644 index 26d07f2..0000000 --- a/lib/screens/settings/app_logs/app_log_details_modal.dart +++ /dev/null @@ -1,194 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; - -import 'package:adguard_home_manager/models/app_log.dart'; - -class AppLogDetailsModal extends StatefulWidget { - final AppLog log; - - const AppLogDetailsModal({ - Key? key, - required this.log - }) : super(key: key); - - @override - State createState() => _AppLogDetailsModalState(); -} - -class _AppLogDetailsModalState extends State { - String valueToShow = 'message'; - - String generateBody() { - switch (valueToShow) { - case 'message': - return widget.log.message; - - case 'statusCode': - return widget.log.statusCode != null - ? widget.log.statusCode.toString() - : "[NO STAUS CODE]"; - - case 'body': - return widget.log.resBody != null - ? widget.log.resBody.toString() - : "[NO RESPONSE BODY]"; - - default: - return ''; - } - } - - @override - Widget build(BuildContext context) { - return AlertDialog( - title: Column( - children: [ - Icon( - Icons.description_rounded, - size: 24, - color: Theme.of(context).listTileTheme.iconColor, - ), - const SizedBox(height: 16), - Text( - AppLocalizations.of(context)!.logDetails, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurface - ), - ) - ], - ), - scrollable: true, - content: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const SizedBox(height: 20), - Row( - children: [ - Material( - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(15), - bottomLeft: Radius.circular(15) - ), - color: Colors.transparent, - child: InkWell( - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(15), - bottomLeft: Radius.circular(15) - ), - onTap: () => setState(() => valueToShow = 'message'), - child: AnimatedContainer( - padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 10), - duration: const Duration(milliseconds: 200), - curve: Curves.easeInOut, - decoration: BoxDecoration( - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(15), - bottomLeft: Radius.circular(15) - ), - border: Border.all( - color: Theme.of(context).colorScheme.primary - ), - color: valueToShow == 'message' - ? Theme.of(context).colorScheme.primary - : Theme.of(context).colorScheme.primary.withOpacity(0.05) - ), - child: Text( - "Message", - style: TextStyle( - color: valueToShow == 'message' - ? Colors.white - : null - ), - ), - ), - ), - ), - Material( - color: Colors.transparent, - child: InkWell( - onTap: () => setState(() => valueToShow = 'statusCode'), - child: AnimatedContainer( - padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 10), - duration: const Duration(milliseconds: 200), - curve: Curves.easeInOut, - decoration: BoxDecoration( - border: Border( - top: BorderSide( - color: Theme.of(context).colorScheme.primary - ), - bottom: BorderSide( - color: Theme.of(context).colorScheme.primary - ), - ), - color: valueToShow == 'statusCode' - ? Theme.of(context).colorScheme.primary - : Theme.of(context).colorScheme.primary.withOpacity(0.05) - ), - child: Text( - "Status code", - style: TextStyle( - color: valueToShow == 'statusCode' - ? Colors.white - : null - ), - ), - ), - ), - ), - Material( - borderRadius: const BorderRadius.only( - topRight: Radius.circular(15), - bottomRight: Radius.circular(15) - ), - color: Colors.transparent, - child: InkWell( - borderRadius: const BorderRadius.only( - topRight: Radius.circular(15), - bottomRight: Radius.circular(15) - ), - onTap: () => setState(() => valueToShow = 'body'), - child: AnimatedContainer( - padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 10), - duration: const Duration(milliseconds: 200), - curve: Curves.easeInOut, - decoration: BoxDecoration( - borderRadius: const BorderRadius.only( - topRight: Radius.circular(15), - bottomRight: Radius.circular(15) - ), - border: Border.all( - color: Theme.of(context).colorScheme.primary - ), - color: valueToShow == 'body' - ? Theme.of(context).colorScheme.primary - : Theme.of(context).colorScheme.primary.withOpacity(0.05) - ), - child: Text( - "Body", - style: TextStyle( - color: valueToShow == 'body' - ? Colors.white - : null - ), - ), - ), - ), - ), - ], - ), - const SizedBox(height: 20), - Text(generateBody()) - ], - ), - actions: [ - TextButton( - onPressed: () => Navigator.pop(context), - child: const Text("Close") - ) - ], - ); - } -} \ No newline at end of file diff --git a/lib/screens/settings/app_logs/app_logs.dart b/lib/screens/settings/app_logs/app_logs.dart deleted file mode 100644 index 19a8502..0000000 --- a/lib/screens/settings/app_logs/app_logs.dart +++ /dev/null @@ -1,81 +0,0 @@ -// ignore_for_file: use_build_context_synchronously - -import 'dart:convert'; - -import 'package:adguard_home_manager/functions/copy_clipboard.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; - -import 'package:adguard_home_manager/screens/settings/app_logs/app_log_details_modal.dart'; - -import 'package:adguard_home_manager/providers/app_config_provider.dart'; - -class AppLogs extends StatelessWidget { - const AppLogs({Key? key}) : super(key: key); - - @override - Widget build(BuildContext context) { - final appConfigProvider = Provider.of(context); - - return Scaffold( - appBar: AppBar( - title: Text(AppLocalizations.of(context)!.logs), - actions: [ - IconButton( - onPressed: appConfigProvider.logs.isNotEmpty - ? () => copyToClipboard( - value: jsonEncode(appConfigProvider.logs.map((log) => log.toMap()).toList()), - successMessage: AppLocalizations.of(context)!.logsCopiedClipboard - ) - : null, - icon: const Icon(Icons.share), - tooltip: AppLocalizations.of(context)!.copyLogsClipboard, - ), - const SizedBox(width: 10), - ], - ), - body: appConfigProvider.logs.isNotEmpty - ? ListView.builder( - padding: const EdgeInsets.only(top: 0), - itemCount: appConfigProvider.logs.length, - itemBuilder: (context, index) => ListTile( - title: Text( - appConfigProvider.logs[index].message, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.normal, - color: Theme.of(context).colorScheme.onSurface - ), - ), - subtitle: Text( - appConfigProvider.logs[index].dateTime.toString(), - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.normal, - color: Theme.of(context).listTileTheme.textColor - ), - ), - trailing: Text(appConfigProvider.logs[index].type), - onTap: () => { - showDialog( - context: context, - builder: (context) => AppLogDetailsModal( - log: appConfigProvider.logs[index] - ) - ) - }, - ) - ) - : Center( - child: Text( - AppLocalizations.of(context)!.noSavedLogs, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ), - ) - ); - } -} \ No newline at end of file diff --git a/lib/screens/settings/logs_settings/config_widgets.dart b/lib/screens/settings/logs_settings/config_widgets.dart index 4dbaee7..5896a2b 100644 --- a/lib/screens/settings/logs_settings/config_widgets.dart +++ b/lib/screens/settings/logs_settings/config_widgets.dart @@ -4,6 +4,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/settings/logs_settings/logs_settings.dart'; import 'package:adguard_home_manager/widgets/section_label.dart'; +import 'package:adguard_home_manager/widgets/master_switch.dart'; import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; class LogsConfigOptions extends StatelessWidget { @@ -70,48 +71,21 @@ class LogsConfigOptions extends StatelessWidget { return ListView( children: [ const SizedBox(height: 16), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: Material( - color: Theme.of(context).colorScheme.primary.withOpacity(0.1), - borderRadius: BorderRadius.circular(28), - child: InkWell( - onTap: () => updateGeneralSwitch(!generalSwitch), - borderRadius: BorderRadius.circular(28), - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 20, - vertical: 8 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - AppLocalizations.of(context)!.enableLog, - style: const TextStyle( - fontSize: 18, - ), - ), - Switch( - value: generalSwitch, - onChanged: updateGeneralSwitch, - ) - ], - ), - ), - ), - ), + MasterSwitch( + label: AppLocalizations.of(context)!.enableLog, + value: generalSwitch, + onChange: updateGeneralSwitch ), const SizedBox(height: 16), CustomCheckboxListTile( value: anonymizeClientIp, onChanged: (_) => updateAnonymizeClientIp(!anonymizeClientIp), title: AppLocalizations.of(context)!.anonymizeClientIp, - padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 8), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), ), const SizedBox(height: 16), Padding( - padding: const EdgeInsets.symmetric(horizontal: 22), + padding: const EdgeInsets.symmetric(horizontal: 16), child: DropdownButtonFormField( items: retentionItems.asMap().entries.map((item) => DropdownMenuItem( value: item.value, @@ -137,10 +111,10 @@ class LogsConfigOptions extends StatelessWidget { children: [ SectionLabel( label: AppLocalizations.of(context)!.ignoredDomains, - padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 0), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 0), ), Padding( - padding: const EdgeInsets.only(right: 10), + padding: const EdgeInsets.only(right: 6), child: IconButton( onPressed: () => updateIgnoredDomainsControllers([ ...ignoredDomainsControllers, @@ -158,7 +132,7 @@ class LogsConfigOptions extends StatelessWidget { ), if (ignoredDomainsControllers.isNotEmpty) ...ignoredDomainsControllers.map((controller) => Padding( padding: const EdgeInsets.only( - top: 12, bottom: 12, left: 24, right: 10 + top: 12, bottom: 12, left: 16, right: 6 ), child: Row( crossAxisAlignment: CrossAxisAlignment.center, @@ -210,69 +184,4 @@ class LogsConfigOptions extends StatelessWidget { ], ); } -} - -class ConfigLogsLoading extends StatelessWidget { - const ConfigLogsLoading({super.key}); - - @override - Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.all(24), - child: Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Text( - AppLocalizations.of(context)!.loadingLogsSettings, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - ), - ) - ], - ), - ), - ); - } -} - -class ConfigLogsError extends StatelessWidget { - const ConfigLogsError({super.key}); - - @override - Widget build(BuildContext context) { - return Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Text( - AppLocalizations.of(context)!.logSettingsNotLoaded, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - ), - ) - ], - ), - ); - } } \ No newline at end of file diff --git a/lib/screens/settings/logs_settings/logs_settings.dart b/lib/screens/settings/logs_settings/logs_settings.dart index 8c651e0..cd723c7 100644 --- a/lib/screens/settings/logs_settings/logs_settings.dart +++ b/lib/screens/settings/logs_settings/logs_settings.dart @@ -4,6 +4,7 @@ import 'package:uuid/uuid.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/settings/logs_settings/config_widgets.dart'; +import 'package:adguard_home_manager/widgets/load_status_widgets.dart'; import 'package:adguard_home_manager/models/querylog_config.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; @@ -182,7 +183,7 @@ class _LogsSettingsState extends State { builder: (context) { switch (loadStatus) { case LoadStatus.loading: - return const ConfigLogsLoading(); + return LoadingData(text: AppLocalizations.of(context)!.loadingLogsSettings); case LoadStatus.loaded: return LogsConfigOptions( @@ -200,7 +201,7 @@ class _LogsSettingsState extends State { ); case LoadStatus.error: - return const ConfigLogsError(); + return ErrorLoadData(text: AppLocalizations.of(context)!.logSettingsNotLoaded,); default: return const SizedBox(); diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index 0e5256d..c9b7151 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -12,6 +12,7 @@ import 'package:adguard_home_manager/screens/settings/logs_settings/logs_setting import 'package:adguard_home_manager/screens/settings/access_settings/access_settings.dart'; import 'package:adguard_home_manager/screens/settings/customization/customization.dart'; import 'package:adguard_home_manager/screens/settings/dhcp/dhcp.dart'; +import 'package:adguard_home_manager/screens/settings/statistics_settings/statistics_settings.dart'; import 'package:adguard_home_manager/screens/settings/safe_search_settings.dart'; import 'package:adguard_home_manager/screens/settings/update_server/update.dart'; import 'package:adguard_home_manager/screens/settings/dns/dns.dart'; @@ -148,11 +149,19 @@ class _SettingsWidgetState extends State<_SettingsWidget> { screenToNavigate: const LogsSettings(), twoColumns: widget.twoColumns, ), + _SettingsTile( + icon: Icons.analytics_rounded, + title: AppLocalizations.of(context)!.statisticsSettings, + subtitle: AppLocalizations.of(context)!.statisticsSettingsDescription, + thisItem: 2, + screenToNavigate: const StatisticsSettings(), + twoColumns: widget.twoColumns, + ), _SettingsTile( icon: Icons.lock_rounded, title: AppLocalizations.of(context)!.accessSettings, subtitle: AppLocalizations.of(context)!.accessSettingsDescription, - thisItem: 2, + thisItem: 3, screenToNavigate: const AccessSettings(), twoColumns: widget.twoColumns, ), @@ -160,7 +169,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.install_desktop_rounded, title: AppLocalizations.of(context)!.dhcpSettings, subtitle: AppLocalizations.of(context)!.dhcpSettingsDescription, - thisItem: 3, + thisItem: 4, screenToNavigate: const DhcpScreen(), twoColumns: widget.twoColumns, ), @@ -168,7 +177,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.dns_rounded, title: AppLocalizations.of(context)!.dnsSettings, subtitle: AppLocalizations.of(context)!.dnsSettingsDescription, - thisItem: 4, + thisItem: 5, screenToNavigate: DnsSettings( splitView: widget.twoColumns, ), @@ -178,7 +187,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.security_rounded, title: AppLocalizations.of(context)!.encryptionSettings, subtitle: AppLocalizations.of(context)!.encryptionSettingsDescription, - thisItem: 5, + thisItem: 6, screenToNavigate: const EncryptionSettings(), twoColumns: widget.twoColumns, ), @@ -186,7 +195,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.route_rounded, title: AppLocalizations.of(context)!.dnsRewrites, subtitle: AppLocalizations.of(context)!.dnsRewritesDescription, - thisItem: 6, + thisItem: 7, screenToNavigate: const DnsRewritesScreen(), twoColumns: widget.twoColumns, ), @@ -206,7 +215,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { ), ) : null, - thisItem: 7, + thisItem: 8, screenToNavigate: const UpdateScreen(), twoColumns: widget.twoColumns, ), @@ -214,7 +223,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.info_rounded, title: AppLocalizations.of(context)!.serverInformation, subtitle: AppLocalizations.of(context)!.serverInformationDescription, - thisItem: 8, + thisItem: 9, screenToNavigate: const ServerInformation(), twoColumns: widget.twoColumns, ), @@ -224,7 +233,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.palette_rounded, title: AppLocalizations.of(context)!.customization, subtitle: AppLocalizations.of(context)!.customizationDescription, - thisItem: 9, + thisItem: 10, screenToNavigate: const Customization(), twoColumns: widget.twoColumns, ), @@ -236,7 +245,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { ? "${AppLocalizations.of(context)!.connectedTo} ${serversProvider.selectedServer!.name}" : "${AppLocalizations.of(context)!.selectedServer} ${serversProvider.selectedServer!.name}" : AppLocalizations.of(context)!.noServerSelected, - thisItem: 10, + thisItem: 11, screenToNavigate: const Servers(), twoColumns: widget.twoColumns, ), @@ -244,7 +253,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.settings, title: AppLocalizations.of(context)!.generalSettings, subtitle: AppLocalizations.of(context)!.generalSettingsDescription, - thisItem: 11, + thisItem: 12, screenToNavigate: GeneralSettings(splitView: widget.twoColumns), twoColumns: widget.twoColumns, ), @@ -252,7 +261,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { icon: Icons.build_outlined, title: AppLocalizations.of(context)!.advancedSettings, subtitle: AppLocalizations.of(context)!.advancedSetupDescription, - thisItem: 12, + thisItem: 13, screenToNavigate: const AdvancedSettings(), twoColumns: widget.twoColumns, ), diff --git a/lib/screens/settings/statistics_settings/statistics_settings.dart b/lib/screens/settings/statistics_settings/statistics_settings.dart new file mode 100644 index 0000000..f514e78 --- /dev/null +++ b/lib/screens/settings/statistics_settings/statistics_settings.dart @@ -0,0 +1,338 @@ +import 'package:flutter/material.dart'; +import 'package:uuid/uuid.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/screens/settings/logs_settings/logs_settings.dart'; +import 'package:adguard_home_manager/widgets/load_status_widgets.dart'; +import 'package:adguard_home_manager/widgets/section_label.dart'; +import 'package:adguard_home_manager/widgets/master_switch.dart'; + +import 'package:adguard_home_manager/classes/process_modal.dart'; +import 'package:adguard_home_manager/functions/snackbar.dart'; +import 'package:adguard_home_manager/providers/app_config_provider.dart'; +import 'package:adguard_home_manager/providers/servers_provider.dart'; +import 'package:adguard_home_manager/models/statistics_config.dart'; +import 'package:adguard_home_manager/constants/enums.dart'; + +class StatisticsSettings extends StatefulWidget { + const StatisticsSettings({super.key}); + + @override + State createState() => _StatisticsSettingsState(); +} + +class _StatisticsSettingsState extends State { + final Uuid uuid = const Uuid(); + LoadStatus _loadStatus = LoadStatus.loading; + bool _generalSwitch = false; + final List _retentionItems = [ + "custom", + "86400000", + "604800000", + "2592000000", + "7776000000" + ]; + final _customTimeController = TextEditingController(); + String? _customTimeError; + String? _retentionTime; + List _ignoredDomainsControllers = []; + + void loadData() async { + final serversProvider = Provider.of(context, listen: false); + + final result = await serversProvider.apiClient2!.getStatisticsConfig(); + + if (!mounted) return; + if (result.successful == true) { + final data = result.content as StatisticsConfig; + setState(() { + _generalSwitch = data.enabled ?? false; + if (_retentionItems.contains(data.interval.toString())) { + _retentionTime = data.interval.toString(); + } + else if (data.interval != null) { + _retentionTime = "custom"; + _customTimeController.text = Duration(milliseconds: data.interval!).inHours.toString(); + } + if (data.ignored != null) { + _ignoredDomainsControllers = data.ignored!.map((e) => DomainListItemController( + id: uuid.v4(), + controller: TextEditingController(text: e), + error: false + )).toList(); + } + _loadStatus = LoadStatus.loaded; + }); + } + else { + setState(() => _loadStatus = LoadStatus.error); + } + } + + @override + void initState() { + loadData(); + super.initState(); + } + + @override + Widget build(BuildContext context) { + final serversProvider = Provider.of(context); + final appConfigProvider = Provider.of(context); + + final List dropdownItemTranslation = [ + AppLocalizations.of(context)!.custom, + AppLocalizations.of(context)!.hours24, + AppLocalizations.of(context)!.days7, + AppLocalizations.of(context)!.days30, + AppLocalizations.of(context)!.days90, + ]; + + + void validateDomain(String value, String id) { + final domainRegex = RegExp(r'^([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$'); + bool error = false; + if (domainRegex.hasMatch(value)) { + error = false; + } + else { + error = true; + } + setState(() { + _ignoredDomainsControllers = _ignoredDomainsControllers.map((entry) { + if (entry.id != id) return entry; + return DomainListItemController( + id: id, + controller: entry.controller, + error: error + ); + }).toList(); + }); + } + + void validateCustomTime(String v) { + try { + final regex = RegExp(r'^\d+$'); + final parsed = int.parse(v); + if (!regex.hasMatch(v)) { + setState(() => _customTimeError = AppLocalizations.of(context)!.invalidTime); + } + else if (parsed < 1) { + setState(() => _customTimeError = AppLocalizations.of(context)!.notLess1Hour); + } + else { + setState(() => _customTimeError = null); + } + } catch (_) { + setState(() => _customTimeError = AppLocalizations.of(context)!.invalidTime); + } + } + + void updateConfig() async { + ProcessModal processModal = ProcessModal(); + processModal.open(AppLocalizations.of(context)!.updatingSettings); + + final result = await serversProvider.apiClient2!.updateStatisticsSettings( + body: { + "enabled": _generalSwitch, + "interval": _retentionTime == "custom" + ? Duration(hours: int.parse(_customTimeController.text)).inMilliseconds + : int.parse(_retentionTime!), + "ignored": _ignoredDomainsControllers.map((e) => e.controller.text).toList() + } + ); + + processModal.close(); + + if (!mounted) return; + + if (result.successful == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.logsConfigUpdated, + color: Colors.green + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.logsConfigNotUpdated, + color: Colors.red + ); + } + } + + final validValues = _ignoredDomainsControllers.where( + (d) => d.controller.text == "" || d.error == true + ).isEmpty && + (_retentionTime != "custom" || + (_retentionTime == "custom" && _customTimeController.text != "" && _customTimeError == null)); + + return Scaffold( + appBar: AppBar( + title: Text(AppLocalizations.of(context)!.statisticsSettings), + actions: [ + IconButton( + onPressed: validValues ? () => updateConfig() : null, + icon: const Icon(Icons.save_rounded), + tooltip: AppLocalizations.of(context)!.save, + ), + const SizedBox(width: 8) + ], + ), + body: Builder( + builder: (context) { + switch (_loadStatus) { + case LoadStatus.loading: + return LoadingData(text: AppLocalizations.of(context)!.loadingStatisticsSettings); + + case LoadStatus.loaded: + return ListView( + children: [ + const SizedBox(height: 8), + MasterSwitch( + label: AppLocalizations.of(context)!.enableLog, + value: _generalSwitch, + onChange: (v) => setState(() => _generalSwitch = v) + ), + const SizedBox(height: 24), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: DropdownButtonFormField( + items: _retentionItems.asMap().entries.map((item) => DropdownMenuItem( + value: item.value, + child: Text(dropdownItemTranslation[item.key]), + )).toList(), + value: _retentionTime, + onChanged: (value) => setState(() { + if (value != null && value != "custom") { + _customTimeError = null; + _customTimeController.text = ""; + }; + _retentionTime = value; + }), + decoration: InputDecoration( + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + label: Text(AppLocalizations.of(context)!.retentionTime) + ), + borderRadius: BorderRadius.circular(20), + ), + ), + if (_retentionTime == "custom") Padding( + padding: const EdgeInsets.only( + left: 16, + right: 16, + top: 24 + ), + child: TextFormField( + controller: _customTimeController, + onChanged: validateCustomTime, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.schedule_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.customTimeInHours, + errorText: _customTimeError + ), + keyboardType: TextInputType.number, + ), + ), + Padding( + padding: const EdgeInsets.only(top: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + SectionLabel( + label: AppLocalizations.of(context)!.ignoredDomains, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 0), + ), + Padding( + padding: const EdgeInsets.only(right: 6), + child: IconButton( + onPressed: () => setState(() => _ignoredDomainsControllers = [ + ..._ignoredDomainsControllers, + DomainListItemController( + id: uuid.v4(), + controller: TextEditingController(), + error: false + ), + ]), + icon: const Icon(Icons.add), + tooltip: AppLocalizations.of(context)!.addDomain, + ), + ) + ], + ), + ), + if (_ignoredDomainsControllers.isNotEmpty) ..._ignoredDomainsControllers.map((controller) => Padding( + padding: const EdgeInsets.only( + top: 12, bottom: 12, left: 16, right: 6 + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: TextFormField( + controller: controller.controller, + onChanged: (v) => validateDomain(v, controller.id), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.link_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.domain, + errorText: controller.error + ? AppLocalizations.of(context)!.invalidDomain + : null + ), + ), + ), + const SizedBox(width: 12), + Padding( + padding: controller.error + ? const EdgeInsets.only(bottom: 24) + : const EdgeInsets.all(0), + child: IconButton( + onPressed: () => setState(() => _ignoredDomainsControllers = _ignoredDomainsControllers.where((e) => e.id != controller.id).toList()), + icon: const Icon(Icons.remove_circle_outline_outlined), + tooltip: AppLocalizations.of(context)!.removeDomain, + ), + ) + ], + ), + )), + if (_ignoredDomainsControllers.isEmpty) Container( + padding: const EdgeInsets.symmetric(vertical: 16), + child: Text( + AppLocalizations.of(context)!.noIgnoredDomainsAdded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), + ), + ], + ); + + case LoadStatus.error: + return ErrorLoadData(text: AppLocalizations.of(context)!.statisticsSettingsLoadError); + + default: + return const SizedBox(); + } + }, + ), + ); + } +} \ No newline at end of file diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart index 0abb737..4f8ba90 100644 --- a/lib/services/api_client.dart +++ b/lib/services/api_client.dart @@ -4,6 +4,7 @@ import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:adguard_home_manager/models/blocked_services.dart'; import 'package:adguard_home_manager/models/querylog_config.dart'; +import 'package:adguard_home_manager/models/statistics_config.dart'; import 'package:adguard_home_manager/models/dns_info.dart'; import 'package:adguard_home_manager/models/encryption.dart'; import 'package:adguard_home_manager/models/dhcp.dart'; @@ -881,4 +882,38 @@ class ApiClientV2 { content: result.body != null ? jsonDecode(result.body!) : null ); } + + Future getStatisticsConfig() async { + final result = await HttpRequestClient.get(urlPath: '/stats/config', server: server); + if (result.successful) { + try { + return ApiResponse( + successful: true, + content: StatisticsConfig.fromJson(jsonDecode(result.body!)) + ); + } catch (e, stackTrace) { + Sentry.captureException( + e, + stackTrace: stackTrace, + hint: Hint.withMap({ "statusCode": result.statusCode.toString() }) + ); + return const ApiResponse(successful: false); + } + } + else { + return const ApiResponse(successful: false); + } + } + + Future updateStatisticsSettings({ + required Map body + }) async { + final result = await HttpRequestClient.put( + urlPath: '/stats/config/update', + server: server, + body: body + ); + print(result.body); + return ApiResponse(successful: result.successful); + } } \ No newline at end of file diff --git a/lib/widgets/custom_settings_tile.dart b/lib/widgets/custom_settings_tile.dart index 554f13b..824b710 100644 --- a/lib/widgets/custom_settings_tile.dart +++ b/lib/widgets/custom_settings_tile.dart @@ -12,7 +12,7 @@ class CustomSettingsTile extends StatelessWidget { final int? selectedItem; const CustomSettingsTile({ - Key? key, + super.key, required this.title, this.subtitle, this.subtitleWidget, @@ -22,7 +22,7 @@ class CustomSettingsTile extends StatelessWidget { this.padding, required this.thisItem, required this.selectedItem, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/load_status_widgets.dart b/lib/widgets/load_status_widgets.dart new file mode 100644 index 0000000..2b1e699 --- /dev/null +++ b/lib/widgets/load_status_widgets.dart @@ -0,0 +1,76 @@ +import 'package:flutter/material.dart'; + +class LoadingData extends StatelessWidget { + final String text; + + const LoadingData({ + super.key, + required this.text, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(24), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + text, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + ) + ], + ), + ), + ); + } +} + +class ErrorLoadData extends StatelessWidget { + final String text; + + const ErrorLoadData({ + super.key, + required this.text + }); + + @override + Widget build(BuildContext context) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + text, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + ) + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/widgets/master_switch.dart b/lib/widgets/master_switch.dart new file mode 100644 index 0000000..323de68 --- /dev/null +++ b/lib/widgets/master_switch.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; + +class MasterSwitch extends StatelessWidget { + final String label; + final bool value; + final void Function(bool) onChange; + final EdgeInsets? margin; + + const MasterSwitch({ + super.key, + required this.label, + required this.value, + required this.onChange, + this.margin + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: margin ?? const EdgeInsets.symmetric(horizontal: 16), + child: Material( + color: Theme.of(context).colorScheme.primary.withOpacity(0.1), + borderRadius: BorderRadius.circular(28), + child: InkWell( + onTap: () => onChange(!value), + borderRadius: BorderRadius.circular(28), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 8 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + label, + style: const TextStyle( + fontSize: 18, + ), + ), + Switch( + value: value, + onChanged: onChange, + ) + ], + ), + ), + ), + ), + ); + } +} \ No newline at end of file From 246d14151a84ae8b705f05a91193ff635c759903 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 28 Jan 2024 20:42:26 +0100 Subject: [PATCH 071/236] Fix home top items type --- lib/screens/home/top_items/top_items_section.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/screens/home/top_items/top_items_section.dart b/lib/screens/home/top_items/top_items_section.dart index 5749f5d..708a3d0 100644 --- a/lib/screens/home/top_items/top_items_section.dart +++ b/lib/screens/home/top_items/top_items_section.dart @@ -92,9 +92,9 @@ class TopItemsSection extends StatelessWidget { final List> lineChartData = lineData(); final mapData = lineChartData.map((e) => e["value"]); - final List total = mapData.isNotEmpty + final double total = mapData.isNotEmpty ? mapData.reduce((a, b) => a + b) - : []; + : 0; return SizedBox( child: Column( From 0d5aeaba42ef3e93afce9963dfaf06c14b89d49d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 29 Jan 2024 00:21:52 +0100 Subject: [PATCH 072/236] Fix --- lib/screens/filters/add_button.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/screens/filters/add_button.dart b/lib/screens/filters/add_button.dart index 7dd4d8c..dc652bc 100644 --- a/lib/screens/filters/add_button.dart +++ b/lib/screens/filters/add_button.dart @@ -39,6 +39,7 @@ class AddFiltersButton extends StatelessWidget { processModal.close(); + if (!context.mounted) return; if (result == true) { showSnacbkar( appConfigProvider: appConfigProvider, From 58bba7f1df5f9e681270dfefb4ea6eaf975b74f1 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 29 Jan 2024 00:22:00 +0100 Subject: [PATCH 073/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index e95f496..dc2f6d3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.15.0-beta.3+123 +version: 2.15.0-beta.4+124 environment: sdk: '>=2.18.1 <3.0.0' From 2f95173d22e3a77bd159234f52925519911cf210 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 29 Jan 2024 01:50:06 +0100 Subject: [PATCH 074/236] Updated libraries --- pubspec.lock | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 1cb21ba..6e0a19e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -213,10 +213,10 @@ packages: dependency: "direct main" description: name: fl_chart - sha256: fe6fec7d85975a99c73b9515a69a6e291364accfa0e4a5b3ce6de814d74b9a1c + sha256: b5e2b0f13d93f8c532b5a2786bfb44580de1f50b927bf95813fa1af617e9caf8 url: "https://pub.dev" source: hosted - version: "0.66.0" + version: "0.66.1" flutter: dependency: "direct main" description: flutter @@ -279,10 +279,10 @@ packages: dependency: "direct dev" description: name: flutter_native_splash - sha256: "9cdb5d9665dab5d098dc50feab74301c2c228cd02ca25c9b546ab572cebcd6af" + sha256: "558f10070f03ee71f850a78f7136ab239a67636a294a44a06b6b7345178edb1e" url: "https://pub.dev" source: hosted - version: "2.3.9" + version: "2.3.10" flutter_reorderable_list: dependency: "direct main" description: @@ -338,10 +338,10 @@ packages: dependency: "direct main" description: name: http - sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139 + sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.2.0" http_parser: dependency: transitive description: @@ -402,10 +402,10 @@ packages: dependency: "direct main" description: name: markdown - sha256: acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd + sha256: "1b134d9f8ff2da15cb298efe6cd8b7d2a78958c1b00384ebcbdf13fe340a6c90" url: "https://pub.dev" source: hosted - version: "7.1.1" + version: "7.2.1" matcher: dependency: transitive description: @@ -530,18 +530,18 @@ packages: dependency: transitive description: name: sentry - sha256: "89e426587b0879e53c46a0aae0eb312696d9d2d803ba14b252a65cc24b1416a2" + sha256: "5686ed515bb620dc52b4ae99a6586fe720d443591183cf1f620ec5d1f0eec100" url: "https://pub.dev" source: hosted - version: "7.14.0" + version: "7.15.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: fd089ee4e75a927be037c56815a0a54af5a519f52b803a5ffecb589bb36e2401 + sha256: "505dec3b6810562785d2c34ae871c73ff2cba6cf436c32c188f0464df226ba8f" url: "https://pub.dev" source: hosted - version: "7.14.0" + version: "7.15.0" sky_engine: dependency: transitive description: flutter @@ -567,18 +567,18 @@ packages: dependency: "direct main" description: name: sqflite - sha256: "591f1602816e9c31377d5f008c2d9ef7b8aca8941c3f89cc5fd9d84da0c38a9a" + sha256: a9016f495c927cb90557c909ff26a6d92d9bd54fc42ba92e19d4e79d61e798c6 url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.2" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "76db4d324c8cbb16ca5b60ad2f3d25cec953107c93ae65aafa480d3e6fb69f14" + sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5" url: "https://pub.dev" source: hosted - version: "2.5.2-1" + version: "2.5.3" sqflite_common_ffi: dependency: "direct main" description: @@ -599,10 +599,10 @@ packages: dependency: "direct main" description: name: sqlite3_flutter_libs - sha256: "3e3583b77cf888a68eae2e49ee4f025f66b86623ef0d83c297c8d903daa14871" + sha256: "90963b515721d6a71e96f438175cf43c979493ed14822860a300b69694c74eb6" url: "https://pub.dev" source: hosted - version: "0.5.18" + version: "0.5.19+1" stack_trace: dependency: transitive description: @@ -687,10 +687,10 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: d25bb0ca00432a5e1ee40e69c36c85863addf7cc45e433769d61bed3fe81fd96 + sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c url: "https://pub.dev" source: hosted - version: "6.2.3" + version: "6.2.4" url_launcher_android: dependency: transitive description: From 406f7c832f09266b5d6a55f3ada2e48a98a95762 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 29 Jan 2024 02:36:46 +0100 Subject: [PATCH 075/236] Change android gradle --- android/app/build.gradle | 17 +++++++---------- android/build.gradle | 13 ------------- android/settings.gradle | 31 +++++++++++++++++++++++-------- 3 files changed, 30 insertions(+), 31 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 099c059..8ab520c 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,10 +22,6 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - def keystoreProperties = new Properties() def keystorePropertiesFile = rootProject.file('key.properties') if (keystorePropertiesFile.exists()) { @@ -80,5 +77,5 @@ flutter { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20" } diff --git a/android/build.gradle b/android/build.gradle index 09b245a..bc157bd 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,16 +1,3 @@ -buildscript { - ext.kotlin_version = '1.8.20' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:7.2.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() diff --git a/android/settings.gradle b/android/settings.gradle index 44e62bc..eeb0d0e 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,11 +1,26 @@ -include ':app' +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + } + settings.ext.flutterSdkPath = flutterSdkPath() -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.2.2" apply false + id "org.jetbrains.kotlin.android" version "1.8.20" apply false +} + +include ":app" From a4e8694cc16fb3a7beccb3e622feed1d3ffe9703 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 29 Jan 2024 02:37:45 +0100 Subject: [PATCH 076/236] Changed url launcher library --- README.md | 1 - ios/Podfile.lock | 63 +++++------- lib/functions/open_url.dart | 33 +++---- linux/flutter/generated_plugin_registrant.cc | 4 - linux/flutter/generated_plugins.cmake | 1 - macos/Flutter/GeneratedPluginRegistrant.swift | 2 - pubspec.lock | 96 ++++++++----------- pubspec.yaml | 3 +- .../flutter/generated_plugin_registrant.cc | 3 - windows/flutter/generated_plugins.cmake | 1 - windows/innosetup_installer_builder.iss | 1 - 11 files changed, 79 insertions(+), 129 deletions(-) diff --git a/README.md b/README.md index fb9505d..a03478d 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,6 @@ On [this repository](https://github.com/JuanRodenas/Pihole_list) you can find a - [dynamic color](https://pub.dev/packages/dynamic_color) - [device info](https://pub.dev/packages/device_info) - [fl chart](https://pub.dev/packages/fl_chart) -- [flutter web browser](https://pub.dev/packages/flutter_web_browser) - [flutter svg](https://pub.dev/packages/flutter_svg) - [percent indicator](https://pub.dev/packages/percent_indicator) - [store checker](https://pub.dev/packages/store_checker) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 7faf3b4..2c2d827 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2,60 +2,53 @@ PODS: - device_info_plus (0.0.1): - Flutter - Flutter (1.0.0) + - flutter_custom_tabs_ios (2.0.0): + - Flutter - flutter_native_splash (0.0.1): - Flutter - - flutter_web_browser (0.17.1): - - Flutter - - FMDB (2.7.5): - - FMDB/standard (= 2.7.5) - - FMDB/standard (2.7.5) - package_info_plus (0.4.5): - Flutter - - Sentry/HybridSDK (8.17.2): - - SentryPrivate (= 8.17.2) + - Sentry/HybridSDK (8.18.0): + - SentryPrivate (= 8.18.0) - sentry_flutter (0.0.1): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.17.2) - - SentryPrivate (8.17.2) + - Sentry/HybridSDK (= 8.18.0) + - SentryPrivate (8.18.0) - sqflite (0.0.3): - Flutter - - FMDB (>= 2.7.5) - - sqlite3 (3.44.0): - - sqlite3/common (= 3.44.0) - - sqlite3/common (3.44.0) - - sqlite3/fts5 (3.44.0): + - FlutterMacOS + - sqlite3 (3.45.0): + - sqlite3/common (= 3.45.0) + - sqlite3/common (3.45.0) + - sqlite3/fts5 (3.45.0): - sqlite3/common - - sqlite3/perf-threadsafe (3.44.0): + - sqlite3/perf-threadsafe (3.45.0): - sqlite3/common - - sqlite3/rtree (3.44.0): + - sqlite3/rtree (3.45.0): - sqlite3/common - sqlite3_flutter_libs (0.0.1): - Flutter - - sqlite3 (~> 3.44.0) + - sqlite3 (~> 3.45.0) - sqlite3/fts5 - sqlite3/perf-threadsafe - sqlite3/rtree - store_checker (0.0.1): - Flutter - - url_launcher_ios (0.0.1): - - Flutter DEPENDENCIES: - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - Flutter (from `Flutter`) + - flutter_custom_tabs_ios (from `.symlinks/plugins/flutter_custom_tabs_ios/ios`) - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - - flutter_web_browser (from `.symlinks/plugins/flutter_web_browser/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - sentry_flutter (from `.symlinks/plugins/sentry_flutter/ios`) - - sqflite (from `.symlinks/plugins/sqflite/ios`) + - sqflite (from `.symlinks/plugins/sqflite/darwin`) - sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/ios`) - store_checker (from `.symlinks/plugins/store_checker/ios`) - - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) SPEC REPOS: trunk: - - FMDB - Sentry - SentryPrivate - sqlite3 @@ -65,38 +58,34 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/device_info_plus/ios" Flutter: :path: Flutter + flutter_custom_tabs_ios: + :path: ".symlinks/plugins/flutter_custom_tabs_ios/ios" flutter_native_splash: :path: ".symlinks/plugins/flutter_native_splash/ios" - flutter_web_browser: - :path: ".symlinks/plugins/flutter_web_browser/ios" package_info_plus: :path: ".symlinks/plugins/package_info_plus/ios" sentry_flutter: :path: ".symlinks/plugins/sentry_flutter/ios" sqflite: - :path: ".symlinks/plugins/sqflite/ios" + :path: ".symlinks/plugins/sqflite/darwin" sqlite3_flutter_libs: :path: ".symlinks/plugins/sqlite3_flutter_libs/ios" store_checker: :path: ".symlinks/plugins/store_checker/ios" - url_launcher_ios: - :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_custom_tabs_ios: 62439c843b2691aae516fd50119a01eb9755fff7 flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef - flutter_web_browser: 7bccaafbb0c5b8862afe7bcd158f15557109f61f - FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 - Sentry: 64a9f9c3637af913adcf53deced05bbe452d1410 - sentry_flutter: 57912cf425e09398bdf47f38842a1fcb9836f1be - SentryPrivate: 024c6fed507ac39ae98e6d087034160f942920d5 - sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a - sqlite3: 6e2d4a4879854d0ec86b476bf3c3e30870bac273 - sqlite3_flutter_libs: eb769059df0356dc52ddda040f09cacc9391a7cf + Sentry: 8984a4ffb2b9bd2894d74fb36e6f5833865bc18e + sentry_flutter: c87a0556eeb6cbf7f9f924d30e878bdedf22d364 + SentryPrivate: 2f0c9ba4c3fc993f70eab6ca95673509561e0085 + sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec + sqlite3: f307b6291c4db7b5086c38d6237446b98a738581 + sqlite3_flutter_libs: aeb4d37509853dfa79d9b59386a2dac5dd079428 store_checker: 359c5051d9ec30ff0a8fa39eb5ec9df021bb745d - url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812 PODFILE CHECKSUM: c4c93c5f6502fe2754f48404d3594bf779584011 diff --git a/lib/functions/open_url.dart b/lib/functions/open_url.dart index b435e47..48b168f 100644 --- a/lib/functions/open_url.dart +++ b/lib/functions/open_url.dart @@ -1,30 +1,21 @@ -import 'dart:io'; - -import 'package:flutter_web_browser/flutter_web_browser.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:flutter_custom_tabs/flutter_custom_tabs.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; void openUrl(String url) async { - if (Platform.isAndroid || Platform.isIOS) { - FlutterWebBrowser.openWebPage( - url: url, + try { + await launchUrl( + Uri.parse(url), customTabsOptions: const CustomTabsOptions( - instantAppsEnabled: true, + shareState: CustomTabsShareState.browserDefault, + urlBarHidingEnabled: true, showTitle: true, - urlBarHidingEnabled: false, - ), + ), safariVCOptions: const SafariViewControllerOptions( barCollapsingEnabled: true, - dismissButtonStyle: SafariViewControllerDismissButtonStyle.close, - modalPresentationCapturesStatusBarAppearance: true, - ) + dismissButtonStyle: SafariViewControllerDismissButtonStyle.close, + ), ); - } - else { - final uri = Uri.parse(url); - if (await canLaunchUrl(uri)) { - await launchUrl(uri); - } else { - throw 'Could not launch $url'; - } + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); } } \ No newline at end of file diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 1786709..cfc2a43 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -9,7 +9,6 @@ #include #include #include -#include #include void fl_register_plugins(FlPluginRegistry* registry) { @@ -22,9 +21,6 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) sqlite3_flutter_libs_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "Sqlite3FlutterLibsPlugin"); sqlite3_flutter_libs_plugin_register_with_registrar(sqlite3_flutter_libs_registrar); - g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); - url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); g_autoptr(FlPluginRegistrar) window_size_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "WindowSizePlugin"); window_size_plugin_register_with_registrar(window_size_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 59ac090..b5d8a41 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -6,7 +6,6 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color sentry_flutter sqlite3_flutter_libs - url_launcher_linux window_size ) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 31a4f66..b20cdf0 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -11,7 +11,6 @@ import package_info_plus import sentry_flutter import sqflite import sqlite3_flutter_libs -import url_launcher_macos import window_size func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { @@ -21,6 +20,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) - UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) WindowSizePlugin.register(with: registry.registrar(forPlugin: "WindowSizePlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 6e0a19e..907bae7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -222,6 +222,46 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_custom_tabs: + dependency: "direct main" + description: + name: flutter_custom_tabs + sha256: "961fe962ae55e9e41097c34e68c6d7d2de10e9a71034f83834919e31a891e728" + url: "https://pub.dev" + source: hosted + version: "2.0.0+1" + flutter_custom_tabs_android: + dependency: transitive + description: + name: flutter_custom_tabs_android + sha256: "5701a3e38117dfc59e5fa9e84a29eea9203e0062de7be56d1f775845c34456d9" + url: "https://pub.dev" + source: hosted + version: "2.0.0+1" + flutter_custom_tabs_ios: + dependency: transitive + description: + name: flutter_custom_tabs_ios + sha256: b29f687f7f366159d37347f888369fcd1259adac8ca6c7f07d356a80b091e08a + url: "https://pub.dev" + source: hosted + version: "2.0.0" + flutter_custom_tabs_platform_interface: + dependency: transitive + description: + name: flutter_custom_tabs_platform_interface + sha256: "13531a743486695d87b462b151801e11476b1b5a15274caec092420cc1943064" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + flutter_custom_tabs_web: + dependency: transitive + description: + name: flutter_custom_tabs_web + sha256: "3114b511d3942ed42c502cc57ad47eaef9622ac06dd036e2b21b19d8876f6498" + url: "https://pub.dev" + source: hosted + version: "2.0.0" flutter_displaymode: dependency: "direct main" description: @@ -313,14 +353,6 @@ packages: description: flutter source: sdk version: "0.0.0" - flutter_web_browser: - dependency: "direct main" - description: - name: flutter_web_browser - sha256: a5564b736253f745e147b8c4eff86de436324d081974cc1f16bff881134a400f - url: "https://pub.dev" - source: hosted - version: "0.17.1" flutter_web_plugins: dependency: transitive description: flutter @@ -683,46 +715,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.2" - url_launcher: - dependency: "direct main" - description: - name: url_launcher - sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c - url: "https://pub.dev" - source: hosted - version: "6.2.4" - url_launcher_android: - dependency: transitive - description: - name: url_launcher_android - sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f" - url: "https://pub.dev" - source: hosted - version: "6.2.2" - url_launcher_ios: - dependency: transitive - description: - name: url_launcher_ios - sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" - url: "https://pub.dev" - source: hosted - version: "6.2.4" - url_launcher_linux: - dependency: transitive - description: - name: url_launcher_linux - sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 - url: "https://pub.dev" - source: hosted - version: "3.1.1" - url_launcher_macos: - dependency: transitive - description: - name: url_launcher_macos - sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 - url: "https://pub.dev" - source: hosted - version: "3.1.0" url_launcher_platform_interface: dependency: transitive description: @@ -739,14 +731,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.3" - url_launcher_windows: - dependency: transitive - description: - name: url_launcher_windows - sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 - url: "https://pub.dev" - source: hosted - version: "3.1.1" uuid: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index dc2f6d3..9b4f395 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -49,7 +49,6 @@ dependencies: uuid: ^4.2.1 expandable: ^5.0.1 fl_chart: ^0.66.0 - flutter_web_browser: ^0.17.1 flutter_svg: ^2.0.9 percent_indicator: ^4.2.3 store_checker: ^1.4.0 @@ -67,7 +66,6 @@ dependencies: git: url: https://github.com/JGeek00/flutter_split_view ref: master-alt - url_launcher: ^6.2.2 contextmenu: ^3.0.0 async: ^2.11.0 sentry_flutter: ^7.13.2 @@ -77,6 +75,7 @@ dependencies: segmented_button_slide: ^1.0.4 http: ^1.1.2 timezone: ^0.9.2 + flutter_custom_tabs: ^2.0.0+1 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 50bb1c8..932f245 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -9,7 +9,6 @@ #include #include #include -#include #include void RegisterPlugins(flutter::PluginRegistry* registry) { @@ -19,8 +18,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("SentryFlutterPlugin")); Sqlite3FlutterLibsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin")); - UrlLauncherWindowsRegisterWithRegistrar( - registry->GetRegistrarForPlugin("UrlLauncherWindows")); WindowSizePluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("WindowSizePlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 71f5fcf..e7261c3 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -6,7 +6,6 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color sentry_flutter sqlite3_flutter_libs - url_launcher_windows window_size ) diff --git a/windows/innosetup_installer_builder.iss b/windows/innosetup_installer_builder.iss index 92a4b72..b25de17 100644 --- a/windows/innosetup_installer_builder.iss +++ b/windows/innosetup_installer_builder.iss @@ -43,7 +43,6 @@ Source: "..\build\windows\x64\runner\Release\flutter_windows.dll"; DestDir: "{ap Source: "..\build\windows\x64\runner\Release\sentry_flutter_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\sqlite3.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\sqlite3_flutter_libs_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion -Source: "..\build\windows\x64\runner\Release\url_launcher_windows_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\window_size_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\data\*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs createallsubdirs ; NOTE: Don't use "Flags: ignoreversion" on any shared system files From 02b9bd034faec025bb7723abdb7007b34b785acc Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 29 Jan 2024 15:04:52 +0100 Subject: [PATCH 077/236] Fixed duplicated snackbar desktop --- lib/functions/snackbar.dart | 8 +- lib/screens/settings/settings.dart | 390 +++++++++++++++-------------- macos/Podfile.lock | 53 ++-- 3 files changed, 223 insertions(+), 228 deletions(-) diff --git a/lib/functions/snackbar.dart b/lib/functions/snackbar.dart index 123ef3f..b332fcd 100644 --- a/lib/functions/snackbar.dart +++ b/lib/functions/snackbar.dart @@ -9,10 +9,12 @@ void showSnacbkar({ required AppConfigProvider appConfigProvider, required String label, required Color color, - Color? labelColor + Color? labelColor, + GlobalKey? key, }) async { + final GlobalKey scaffoldKey = key ?? scaffoldMessengerKey; if (appConfigProvider.showingSnackbar == true) { - scaffoldMessengerKey.currentState?.clearSnackBars(); + scaffoldKey.currentState?.clearSnackBars(); await Future.delayed(const Duration(milliseconds: 500)); } appConfigProvider.setShowingSnackbar(true); @@ -26,7 +28,7 @@ void showSnacbkar({ ), backgroundColor: color, ); - scaffoldMessengerKey.currentState?.showSnackBar(snackBar).closed.then( + scaffoldKey.currentState?.showSnackBar(snackBar).closed.then( (value) => appConfigProvider.setShowingSnackbar(false) ); } \ No newline at end of file diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index c9b7151..92ea100 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:adguard_home_manager/config/globals.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -101,214 +102,217 @@ class _SettingsWidgetState extends State<_SettingsWidget> { appConfigProvider.setSelectedSettingsScreen(screen: null); } - return Scaffold( - body: NestedScrollView( - headerSliverBuilder: (context, innerBoxIsScrolled) => [ - SliverOverlapAbsorber( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - sliver: SliverAppBar.large( - pinned: true, - floating: true, - centerTitle: false, - forceElevated: innerBoxIsScrolled, - surfaceTintColor: isDesktop(width) ? Colors.transparent : null, - title: Text(AppLocalizations.of(context)!.settings), + return ScaffoldMessenger( + key: widget.twoColumns ? GlobalKey() : null, + child: Scaffold( + body: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar.large( + pinned: true, + floating: true, + centerTitle: false, + forceElevated: innerBoxIsScrolled, + surfaceTintColor: isDesktop(width) ? Colors.transparent : null, + title: Text(AppLocalizations.of(context)!.settings), + ) ) - ) - ], - body: SafeArea( - top: false, - bottom: false, - child: Builder( - builder: (context) => CustomScrollView( - slivers: [ - SliverOverlapInjector( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - ), - SliverList.list( - children: [ - if ( - serversProvider.selectedServer != null && - statusProvider.serverStatus != null && - serversProvider.apiClient2 != null - ) ...[ - SectionLabel(label: AppLocalizations.of(context)!.serverSettings), - _SettingsTile( - icon: Icons.search_rounded, - title: AppLocalizations.of(context)!.safeSearch, - subtitle: AppLocalizations.of(context)!.safeSearchSettings, - thisItem: 0, - screenToNavigate: const SafeSearchSettingsScreen(), - twoColumns: widget.twoColumns, - ), - _SettingsTile( - icon: Icons.list_alt_rounded, - title: AppLocalizations.of(context)!.logsSettings, - subtitle: AppLocalizations.of(context)!.logsSettingsDescription, - thisItem: 1, - screenToNavigate: const LogsSettings(), - twoColumns: widget.twoColumns, - ), - _SettingsTile( - icon: Icons.analytics_rounded, - title: AppLocalizations.of(context)!.statisticsSettings, - subtitle: AppLocalizations.of(context)!.statisticsSettingsDescription, - thisItem: 2, - screenToNavigate: const StatisticsSettings(), - twoColumns: widget.twoColumns, - ), - _SettingsTile( - icon: Icons.lock_rounded, - title: AppLocalizations.of(context)!.accessSettings, - subtitle: AppLocalizations.of(context)!.accessSettingsDescription, - thisItem: 3, - screenToNavigate: const AccessSettings(), - twoColumns: widget.twoColumns, - ), - _SettingsTile( - icon: Icons.install_desktop_rounded, - title: AppLocalizations.of(context)!.dhcpSettings, - subtitle: AppLocalizations.of(context)!.dhcpSettingsDescription, - thisItem: 4, - screenToNavigate: const DhcpScreen(), - twoColumns: widget.twoColumns, - ), - _SettingsTile( - icon: Icons.dns_rounded, - title: AppLocalizations.of(context)!.dnsSettings, - subtitle: AppLocalizations.of(context)!.dnsSettingsDescription, - thisItem: 5, - screenToNavigate: DnsSettings( - splitView: widget.twoColumns, + ], + body: SafeArea( + top: false, + bottom: false, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + SliverList.list( + children: [ + if ( + serversProvider.selectedServer != null && + statusProvider.serverStatus != null && + serversProvider.apiClient2 != null + ) ...[ + SectionLabel(label: AppLocalizations.of(context)!.serverSettings), + _SettingsTile( + icon: Icons.search_rounded, + title: AppLocalizations.of(context)!.safeSearch, + subtitle: AppLocalizations.of(context)!.safeSearchSettings, + thisItem: 0, + screenToNavigate: const SafeSearchSettingsScreen(), + twoColumns: widget.twoColumns, ), + _SettingsTile( + icon: Icons.list_alt_rounded, + title: AppLocalizations.of(context)!.logsSettings, + subtitle: AppLocalizations.of(context)!.logsSettingsDescription, + thisItem: 1, + screenToNavigate: const LogsSettings(), + twoColumns: widget.twoColumns, + ), + _SettingsTile( + icon: Icons.analytics_rounded, + title: AppLocalizations.of(context)!.statisticsSettings, + subtitle: AppLocalizations.of(context)!.statisticsSettingsDescription, + thisItem: 2, + screenToNavigate: const StatisticsSettings(), + twoColumns: widget.twoColumns, + ), + _SettingsTile( + icon: Icons.lock_rounded, + title: AppLocalizations.of(context)!.accessSettings, + subtitle: AppLocalizations.of(context)!.accessSettingsDescription, + thisItem: 3, + screenToNavigate: const AccessSettings(), + twoColumns: widget.twoColumns, + ), + _SettingsTile( + icon: Icons.install_desktop_rounded, + title: AppLocalizations.of(context)!.dhcpSettings, + subtitle: AppLocalizations.of(context)!.dhcpSettingsDescription, + thisItem: 4, + screenToNavigate: const DhcpScreen(), + twoColumns: widget.twoColumns, + ), + _SettingsTile( + icon: Icons.dns_rounded, + title: AppLocalizations.of(context)!.dnsSettings, + subtitle: AppLocalizations.of(context)!.dnsSettingsDescription, + thisItem: 5, + screenToNavigate: DnsSettings( + splitView: widget.twoColumns, + ), + twoColumns: widget.twoColumns, + ), + _SettingsTile( + icon: Icons.security_rounded, + title: AppLocalizations.of(context)!.encryptionSettings, + subtitle: AppLocalizations.of(context)!.encryptionSettingsDescription, + thisItem: 6, + screenToNavigate: const EncryptionSettings(), + twoColumns: widget.twoColumns, + ), + _SettingsTile( + icon: Icons.route_rounded, + title: AppLocalizations.of(context)!.dnsRewrites, + subtitle: AppLocalizations.of(context)!.dnsRewritesDescription, + thisItem: 7, + screenToNavigate: const DnsRewritesScreen(), + twoColumns: widget.twoColumns, + ), + if (serversProvider.updateAvailable.data != null) _SettingsTile( + icon: Icons.system_update_rounded, + title: AppLocalizations.of(context)!.updates, + subtitle: AppLocalizations.of(context)!.updatesDescription, + trailing: serversProvider.updateAvailable.data != null && + serversProvider.updateAvailable.data!.canAutoupdate == true + ? Container( + width: 10, + height: 10, + margin: const EdgeInsets.only(right: 12), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.red + ), + ) + : null, + thisItem: 8, + screenToNavigate: const UpdateScreen(), + twoColumns: widget.twoColumns, + ), + _SettingsTile( + icon: Icons.info_rounded, + title: AppLocalizations.of(context)!.serverInformation, + subtitle: AppLocalizations.of(context)!.serverInformationDescription, + thisItem: 9, + screenToNavigate: const ServerInformation(), + twoColumns: widget.twoColumns, + ), + ], + SectionLabel(label: AppLocalizations.of(context)!.appSettings), + _SettingsTile( + icon: Icons.palette_rounded, + title: AppLocalizations.of(context)!.customization, + subtitle: AppLocalizations.of(context)!.customizationDescription, + thisItem: 10, + screenToNavigate: const Customization(), twoColumns: widget.twoColumns, ), _SettingsTile( - icon: Icons.security_rounded, - title: AppLocalizations.of(context)!.encryptionSettings, - subtitle: AppLocalizations.of(context)!.encryptionSettingsDescription, - thisItem: 6, - screenToNavigate: const EncryptionSettings(), + icon: Icons.storage_rounded, + title: AppLocalizations.of(context)!.servers, + subtitle: serversProvider.selectedServer != null + ? statusProvider.serverStatus != null + ? "${AppLocalizations.of(context)!.connectedTo} ${serversProvider.selectedServer!.name}" + : "${AppLocalizations.of(context)!.selectedServer} ${serversProvider.selectedServer!.name}" + : AppLocalizations.of(context)!.noServerSelected, + thisItem: 11, + screenToNavigate: const Servers(), twoColumns: widget.twoColumns, ), _SettingsTile( - icon: Icons.route_rounded, - title: AppLocalizations.of(context)!.dnsRewrites, - subtitle: AppLocalizations.of(context)!.dnsRewritesDescription, - thisItem: 7, - screenToNavigate: const DnsRewritesScreen(), - twoColumns: widget.twoColumns, - ), - if (serversProvider.updateAvailable.data != null) _SettingsTile( - icon: Icons.system_update_rounded, - title: AppLocalizations.of(context)!.updates, - subtitle: AppLocalizations.of(context)!.updatesDescription, - trailing: serversProvider.updateAvailable.data != null && - serversProvider.updateAvailable.data!.canAutoupdate == true - ? Container( - width: 10, - height: 10, - margin: const EdgeInsets.only(right: 12), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: Colors.red - ), - ) - : null, - thisItem: 8, - screenToNavigate: const UpdateScreen(), + icon: Icons.settings, + title: AppLocalizations.of(context)!.generalSettings, + subtitle: AppLocalizations.of(context)!.generalSettingsDescription, + thisItem: 12, + screenToNavigate: GeneralSettings(splitView: widget.twoColumns), twoColumns: widget.twoColumns, ), _SettingsTile( - icon: Icons.info_rounded, - title: AppLocalizations.of(context)!.serverInformation, - subtitle: AppLocalizations.of(context)!.serverInformationDescription, - thisItem: 9, - screenToNavigate: const ServerInformation(), + icon: Icons.build_outlined, + title: AppLocalizations.of(context)!.advancedSettings, + subtitle: AppLocalizations.of(context)!.advancedSetupDescription, + thisItem: 13, + screenToNavigate: const AdvancedSettings(), twoColumns: widget.twoColumns, ), + SectionLabel(label: AppLocalizations.of(context)!.aboutApp), + CustomListTile( + title: AppLocalizations.of(context)!.appVersion, + subtitle: appConfigProvider.getAppInfo!.version, + ), + CustomListTile( + title: AppLocalizations.of(context)!.createdBy, + subtitle: Strings.createdBy, + ), + Padding( + padding: const EdgeInsets.all(15), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + if (Platform.isAndroid) IconButton( + onPressed: () => openUrl(Urls.playStore), + icon: SvgPicture.asset( + 'assets/resources/google-play.svg', + color: Theme.of(context).colorScheme.onSurfaceVariant, + width: 30, + height: 30, + ), + tooltip: AppLocalizations.of(context)!.visitGooglePlay, + ), + IconButton( + onPressed: () => openUrl(Urls.gitHub), + icon: SvgPicture.asset( + 'assets/resources/github.svg', + color: Theme.of(context).colorScheme.onSurfaceVariant, + width: 30, + height: 30, + ), + tooltip: AppLocalizations.of(context)!.gitHub, + ), + ], + ), + ) ], - SectionLabel(label: AppLocalizations.of(context)!.appSettings), - _SettingsTile( - icon: Icons.palette_rounded, - title: AppLocalizations.of(context)!.customization, - subtitle: AppLocalizations.of(context)!.customizationDescription, - thisItem: 10, - screenToNavigate: const Customization(), - twoColumns: widget.twoColumns, - ), - _SettingsTile( - icon: Icons.storage_rounded, - title: AppLocalizations.of(context)!.servers, - subtitle: serversProvider.selectedServer != null - ? statusProvider.serverStatus != null - ? "${AppLocalizations.of(context)!.connectedTo} ${serversProvider.selectedServer!.name}" - : "${AppLocalizations.of(context)!.selectedServer} ${serversProvider.selectedServer!.name}" - : AppLocalizations.of(context)!.noServerSelected, - thisItem: 11, - screenToNavigate: const Servers(), - twoColumns: widget.twoColumns, - ), - _SettingsTile( - icon: Icons.settings, - title: AppLocalizations.of(context)!.generalSettings, - subtitle: AppLocalizations.of(context)!.generalSettingsDescription, - thisItem: 12, - screenToNavigate: GeneralSettings(splitView: widget.twoColumns), - twoColumns: widget.twoColumns, - ), - _SettingsTile( - icon: Icons.build_outlined, - title: AppLocalizations.of(context)!.advancedSettings, - subtitle: AppLocalizations.of(context)!.advancedSetupDescription, - thisItem: 13, - screenToNavigate: const AdvancedSettings(), - twoColumns: widget.twoColumns, - ), - SectionLabel(label: AppLocalizations.of(context)!.aboutApp), - CustomListTile( - title: AppLocalizations.of(context)!.appVersion, - subtitle: appConfigProvider.getAppInfo!.version, - ), - CustomListTile( - title: AppLocalizations.of(context)!.createdBy, - subtitle: Strings.createdBy, - ), - Padding( - padding: const EdgeInsets.all(15), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - if (Platform.isAndroid) IconButton( - onPressed: () => openUrl(Urls.playStore), - icon: SvgPicture.asset( - 'assets/resources/google-play.svg', - color: Theme.of(context).colorScheme.onSurfaceVariant, - width: 30, - height: 30, - ), - tooltip: AppLocalizations.of(context)!.visitGooglePlay, - ), - IconButton( - onPressed: () => openUrl(Urls.gitHub), - icon: SvgPicture.asset( - 'assets/resources/github.svg', - color: Theme.of(context).colorScheme.onSurfaceVariant, - width: 30, - height: 30, - ), - tooltip: AppLocalizations.of(context)!.gitHub, - ), - ], - ), - ) - ], - ) - ], - ) + ) + ], + ) + ), ), - ), - ) + ) + ), ); } } diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 9d30918..9df518c 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -4,38 +4,33 @@ PODS: - dynamic_color (0.0.2): - FlutterMacOS - FlutterMacOS (1.0.0) - - FMDB (2.7.5): - - FMDB/standard (= 2.7.5) - - FMDB/standard (2.7.5) - package_info_plus (0.0.1): - FlutterMacOS - - Sentry/HybridSDK (8.17.2): - - SentryPrivate (= 8.17.2) + - Sentry/HybridSDK (8.18.0): + - SentryPrivate (= 8.18.0) - sentry_flutter (0.0.1): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.17.2) - - SentryPrivate (8.17.2) - - sqflite (0.0.2): + - Sentry/HybridSDK (= 8.18.0) + - SentryPrivate (8.18.0) + - sqflite (0.0.3): + - Flutter - FlutterMacOS - - FMDB (>= 2.7.5) - - sqlite3 (3.44.0): - - sqlite3/common (= 3.44.0) - - sqlite3/common (3.44.0) - - sqlite3/fts5 (3.44.0): + - sqlite3 (3.45.0): + - sqlite3/common (= 3.45.0) + - sqlite3/common (3.45.0) + - sqlite3/fts5 (3.45.0): - sqlite3/common - - sqlite3/perf-threadsafe (3.44.0): + - sqlite3/perf-threadsafe (3.45.0): - sqlite3/common - - sqlite3/rtree (3.44.0): + - sqlite3/rtree (3.45.0): - sqlite3/common - sqlite3_flutter_libs (0.0.1): - FlutterMacOS - - sqlite3 (~> 3.44.0) + - sqlite3 (~> 3.45.0) - sqlite3/fts5 - sqlite3/perf-threadsafe - sqlite3/rtree - - url_launcher_macos (0.0.1): - - FlutterMacOS - window_size (0.0.2): - FlutterMacOS @@ -45,14 +40,12 @@ DEPENDENCIES: - FlutterMacOS (from `Flutter/ephemeral`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - sentry_flutter (from `Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos`) - - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/macos`) + - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`) - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) - - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`) SPEC REPOS: trunk: - - FMDB - Sentry - SentryPrivate - sqlite3 @@ -69,11 +62,9 @@ EXTERNAL SOURCES: sentry_flutter: :path: Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos sqflite: - :path: Flutter/ephemeral/.symlinks/plugins/sqflite/macos + :path: Flutter/ephemeral/.symlinks/plugins/sqflite/darwin sqlite3_flutter_libs: :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos - url_launcher_macos: - :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos window_size: :path: Flutter/ephemeral/.symlinks/plugins/window_size/macos @@ -81,15 +72,13 @@ SPEC CHECKSUMS: device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce - Sentry: 64a9f9c3637af913adcf53deced05bbe452d1410 - sentry_flutter: 57912cf425e09398bdf47f38842a1fcb9836f1be - SentryPrivate: 024c6fed507ac39ae98e6d087034160f942920d5 - sqflite: a5789cceda41d54d23f31d6de539d65bb14100ea - sqlite3: 6e2d4a4879854d0ec86b476bf3c3e30870bac273 - sqlite3_flutter_libs: a25f3a0f522fdcd8fef6a4a50a3d681dd43d8dea - url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 + Sentry: 8984a4ffb2b9bd2894d74fb36e6f5833865bc18e + sentry_flutter: c87a0556eeb6cbf7f9f924d30e878bdedf22d364 + SentryPrivate: 2f0c9ba4c3fc993f70eab6ca95673509561e0085 + sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec + sqlite3: f307b6291c4db7b5086c38d6237446b98a738581 + sqlite3_flutter_libs: 6b9913d8fbb718e5ebf23658aa6934a0fb509c0f window_size: 339dafa0b27a95a62a843042038fa6c3c48de195 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 From 340ef4f00efad8d6199ab055b2b9ec4a04d3a308 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 29 Jan 2024 15:05:12 +0100 Subject: [PATCH 078/236] Removed unused imports --- lib/screens/settings/settings.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index 92ea100..e16a84e 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -1,6 +1,5 @@ import 'dart:io'; -import 'package:adguard_home_manager/config/globals.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_svg/flutter_svg.dart'; From d92d755381a6d7c58db48827b050b36c1189139b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 29 Jan 2024 16:09:07 +0100 Subject: [PATCH 079/236] Changed url launcher --- README.md | 2 + lib/functions/open_url.dart | 44 ++++++++++------- lib/screens/home/appbar.dart | 3 +- linux/flutter/generated_plugin_registrant.cc | 4 ++ linux/flutter/generated_plugins.cmake | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 + macos/Podfile.lock | 6 +++ pubspec.lock | 48 +++++++++++++++++++ pubspec.yaml | 1 + .../flutter/generated_plugin_registrant.cc | 3 ++ windows/flutter/generated_plugins.cmake | 1 + windows/innosetup_installer_builder.iss | 1 + 12 files changed, 99 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index a03478d..93788ac 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,8 @@ On [this repository](https://github.com/JuanRodenas/Pihole_list) you can find a - [pie chart](https://pub.dev/packages/pie_chart) - [segmented button slide](https://pub.dev/packages/segmented_button_slide) - [timezone](https://pub.dev/packages/timezone) +- [url launcher](https://pub.dev/packages/url_launcher) +- [flutter custom tabs](https://pub.dev/packages/flutter_custom_tabs)
    diff --git a/lib/functions/open_url.dart b/lib/functions/open_url.dart index 48b168f..00cfc17 100644 --- a/lib/functions/open_url.dart +++ b/lib/functions/open_url.dart @@ -1,21 +1,33 @@ -import 'package:flutter_custom_tabs/flutter_custom_tabs.dart'; +import 'dart:io'; + +import 'package:flutter_custom_tabs/flutter_custom_tabs.dart' as flutter_custom_tabs; +import 'package:url_launcher/url_launcher.dart' as url_launcher; import 'package:sentry_flutter/sentry_flutter.dart'; void openUrl(String url) async { - try { - await launchUrl( - Uri.parse(url), - customTabsOptions: const CustomTabsOptions( - shareState: CustomTabsShareState.browserDefault, - urlBarHidingEnabled: true, - showTitle: true, - ), - safariVCOptions: const SafariViewControllerOptions( - barCollapsingEnabled: true, - dismissButtonStyle: SafariViewControllerDismissButtonStyle.close, - ), - ); - } catch (e, stackTrace) { - Sentry.captureException(e, stackTrace: stackTrace); + if (Platform.isAndroid || Platform.isIOS) { + try { + await flutter_custom_tabs.launchUrl( + Uri.parse(url), + customTabsOptions: const flutter_custom_tabs.CustomTabsOptions( + shareState: flutter_custom_tabs.CustomTabsShareState.browserDefault, + urlBarHidingEnabled: true, + showTitle: true, + ), + safariVCOptions: const flutter_custom_tabs.SafariViewControllerOptions( + barCollapsingEnabled: true, + dismissButtonStyle: flutter_custom_tabs.SafariViewControllerDismissButtonStyle.close, + ), + ); + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); + } + } + else { + try { + url_launcher.launchUrl(Uri.parse(url)); + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); + } } } \ No newline at end of file diff --git a/lib/screens/home/appbar.dart b/lib/screens/home/appbar.dart index 52ff350..5cd481f 100644 --- a/lib/screens/home/appbar.dart +++ b/lib/screens/home/appbar.dart @@ -151,7 +151,8 @@ class HomeAppBar extends StatelessWidget { ), ) ] - ) + ), + const SizedBox(width: 8), ], ); } diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index cfc2a43..1786709 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -9,6 +9,7 @@ #include #include #include +#include #include void fl_register_plugins(FlPluginRegistry* registry) { @@ -21,6 +22,9 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) sqlite3_flutter_libs_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "Sqlite3FlutterLibsPlugin"); sqlite3_flutter_libs_plugin_register_with_registrar(sqlite3_flutter_libs_registrar); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); g_autoptr(FlPluginRegistrar) window_size_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "WindowSizePlugin"); window_size_plugin_register_with_registrar(window_size_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index b5d8a41..59ac090 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -6,6 +6,7 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color sentry_flutter sqlite3_flutter_libs + url_launcher_linux window_size ) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index b20cdf0..31a4f66 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -11,6 +11,7 @@ import package_info_plus import sentry_flutter import sqflite import sqlite3_flutter_libs +import url_launcher_macos import window_size func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { @@ -20,5 +21,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) WindowSizePlugin.register(with: registry.registrar(forPlugin: "WindowSizePlugin")) } diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 9df518c..1bad97f 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -31,6 +31,8 @@ PODS: - sqlite3/fts5 - sqlite3/perf-threadsafe - sqlite3/rtree + - url_launcher_macos (0.0.1): + - FlutterMacOS - window_size (0.0.2): - FlutterMacOS @@ -42,6 +44,7 @@ DEPENDENCIES: - sentry_flutter (from `Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos`) - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`) - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) + - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`) SPEC REPOS: @@ -65,6 +68,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/sqflite/darwin sqlite3_flutter_libs: :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos + url_launcher_macos: + :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos window_size: :path: Flutter/ephemeral/.symlinks/plugins/window_size/macos @@ -79,6 +84,7 @@ SPEC CHECKSUMS: sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec sqlite3: f307b6291c4db7b5086c38d6237446b98a738581 sqlite3_flutter_libs: 6b9913d8fbb718e5ebf23658aa6934a0fb509c0f + url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 window_size: 339dafa0b27a95a62a843042038fa6c3c48de195 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 diff --git a/pubspec.lock b/pubspec.lock index 907bae7..d584bfa 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -715,6 +715,46 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.2" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c + url: "https://pub.dev" + source: hosted + version: "6.2.4" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f" + url: "https://pub.dev" + source: hosted + version: "6.2.2" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" + url: "https://pub.dev" + source: hosted + version: "6.2.4" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 + url: "https://pub.dev" + source: hosted + version: "3.1.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 + url: "https://pub.dev" + source: hosted + version: "3.1.0" url_launcher_platform_interface: dependency: transitive description: @@ -731,6 +771,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.3" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 + url: "https://pub.dev" + source: hosted + version: "3.1.1" uuid: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 9b4f395..f4bf52e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -76,6 +76,7 @@ dependencies: http: ^1.1.2 timezone: ^0.9.2 flutter_custom_tabs: ^2.0.0+1 + url_launcher: ^6.2.4 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 932f245..50bb1c8 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -9,6 +9,7 @@ #include #include #include +#include #include void RegisterPlugins(flutter::PluginRegistry* registry) { @@ -18,6 +19,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("SentryFlutterPlugin")); Sqlite3FlutterLibsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin")); + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); WindowSizePluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("WindowSizePlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index e7261c3..71f5fcf 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -6,6 +6,7 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color sentry_flutter sqlite3_flutter_libs + url_launcher_windows window_size ) diff --git a/windows/innosetup_installer_builder.iss b/windows/innosetup_installer_builder.iss index b25de17..92a4b72 100644 --- a/windows/innosetup_installer_builder.iss +++ b/windows/innosetup_installer_builder.iss @@ -43,6 +43,7 @@ Source: "..\build\windows\x64\runner\Release\flutter_windows.dll"; DestDir: "{ap Source: "..\build\windows\x64\runner\Release\sentry_flutter_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\sqlite3.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\sqlite3_flutter_libs_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "..\build\windows\x64\runner\Release\url_launcher_windows_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\window_size_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\data\*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs createallsubdirs ; NOTE: Don't use "Flags: ignoreversion" on any shared system files From aed2500fa4ed84a68a0c5bca2330206b8ddcef49 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 29 Jan 2024 16:14:34 +0100 Subject: [PATCH 080/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index f4bf52e..2d64194 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.15.0-beta.4+124 +version: 2.15.0+125 environment: sdk: '>=2.18.1 <3.0.0' From 16f1d4664cb708a2922aab3b4a5c95b6c48d29cc Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 30 Jan 2024 00:43:57 +0100 Subject: [PATCH 081/236] Fix logs filtering by client --- lib/models/applied_filters.dart | 2 +- lib/providers/logs_provider.dart | 16 ++++++++-------- lib/screens/home/top_items/top_items_lists.dart | 2 +- lib/screens/logs/logs_list_appbar.dart | 14 ++++++-------- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/lib/models/applied_filters.dart b/lib/models/applied_filters.dart index 2b60e71..f4ef1ee 100644 --- a/lib/models/applied_filters.dart +++ b/lib/models/applied_filters.dart @@ -1,7 +1,7 @@ class AppliedFiters { String selectedResultStatus = 'all'; String? searchText; - List? clients; + List clients; AppliedFiters({ required this.selectedResultStatus, diff --git a/lib/providers/logs_provider.dart b/lib/providers/logs_provider.dart index 63e81cd..cba46c0 100644 --- a/lib/providers/logs_provider.dart +++ b/lib/providers/logs_provider.dart @@ -30,7 +30,7 @@ class LogsProvider with ChangeNotifier { AppliedFiters _appliedFilters = AppliedFiters( selectedResultStatus: 'all', searchText: null, - clients: null + clients: [] ); LoadStatus get loadStatus { @@ -177,18 +177,18 @@ class LogsProvider with ChangeNotifier { if (loadingMore != null && loadingMore == true && logsData != null) { LogsData newLogsData = result.content; newLogsData.data = [...logsData!.data, ...(result.content as LogsData).data]; - if (appliedFilters.clients != null) { + if (appliedFilters.clients.isNotEmpty) { newLogsData.data = newLogsData.data.where( - (item) => appliedFilters.clients!.contains(item.client) + (item) => appliedFilters.clients.contains(item.client) ).toList(); } _logsData = newLogsData; } else { LogsData newLogsData = result.content; - if (appliedFilters.clients != null) { + if (appliedFilters.clients.isNotEmpty) { newLogsData.data = newLogsData.data.where( - (item) => appliedFilters.clients!.contains(item.client) + (item) => appliedFilters.clients.contains(item.client) ).toList(); } _logsData = newLogsData; @@ -217,7 +217,7 @@ class LogsProvider with ChangeNotifier { _appliedFilters = AppliedFiters( selectedResultStatus: 'all', searchText: null, - clients: null + clients: [] ); if (result.successful == true) { @@ -254,9 +254,9 @@ class LogsProvider with ChangeNotifier { if (result.successful == true) { LogsData newLogsData = result.content as LogsData; - if (appliedFilters.clients != null) { + if (appliedFilters.clients.isNotEmpty) { newLogsData.data = newLogsData.data.where( - (item) => appliedFilters.clients!.contains(item.client) + (item) => appliedFilters.clients.contains(item.client) ).toList(); } _logsData = newLogsData; diff --git a/lib/screens/home/top_items/top_items_lists.dart b/lib/screens/home/top_items/top_items_lists.dart index 758a0b6..7c24bd3 100644 --- a/lib/screens/home/top_items/top_items_lists.dart +++ b/lib/screens/home/top_items/top_items_lists.dart @@ -51,7 +51,7 @@ class TopItemsLists extends StatelessWidget { AppliedFiters( selectedResultStatus: 'all', searchText: value, - clients: null + clients: [] ) ); appConfigProvider.setSelectedScreen(2); diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index 144a55e..01a870c 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -70,8 +70,6 @@ class LogsListAppBar extends StatelessWidget { forceElevated: innerBoxIsScrolled, surfaceTintColor: isDesktop(width) ? Colors.transparent : null, title: Text(AppLocalizations.of(context)!.logs), - expandedHeight: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients != null - ? 170 : null, actions: [ if (!(Platform.isAndroid || Platform.isIOS)) IconButton( onPressed: () => logsProvider.fetchLogs(inOffset: 0), @@ -87,7 +85,7 @@ class LogsListAppBar extends StatelessWidget { : const SizedBox(), const SizedBox(width: 5), ], - bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients != null + bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients.isNotEmpty ? PreferredSize( preferredSize: const Size(double.maxFinite, 70), child: Container( @@ -172,7 +170,7 @@ class LogsListAppBar extends StatelessWidget { }, ), ], - if (logsProvider.appliedFilters.clients != null) ...[ + if (logsProvider.appliedFilters.clients.isNotEmpty) ...[ const SizedBox(width: 15), Chip( avatar: const Icon( @@ -181,9 +179,9 @@ class LogsListAppBar extends StatelessWidget { label: Row( children: [ Text( - logsProvider.appliedFilters.clients!.length == 1 - ? logsProvider.appliedFilters.clients![0] - : "${logsProvider.appliedFilters.clients!.length} ${AppLocalizations.of(context)!.clients}", + logsProvider.appliedFilters.clients.length == 1 + ? logsProvider.appliedFilters.clients[0] + : "${logsProvider.appliedFilters.clients.length} ${AppLocalizations.of(context)!.clients}", ), ], ), @@ -196,7 +194,7 @@ class LogsListAppBar extends StatelessWidget { AppliedFiters( selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus, searchText: logsProvider.appliedFilters.searchText, - clients: null + clients: [] ) ); logsProvider.setSelectedClients(null); From ae3e172033d71fe67ac39d9110ee7b78e45f249f Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 30 Jan 2024 01:04:06 +0100 Subject: [PATCH 082/236] Changed response status bottom sheet --- .../logs/filters/filter_status_modal.dart | 244 ++++++++---------- .../logs/filters/logs_filters_modal.dart | 6 +- lib/widgets/list_bottom_sheet.dart | 14 +- 3 files changed, 122 insertions(+), 142 deletions(-) diff --git a/lib/screens/logs/filters/filter_status_modal.dart b/lib/screens/logs/filters/filter_status_modal.dart index c08d9a8..d4e4155 100644 --- a/lib/screens/logs/filters/filter_status_modal.dart +++ b/lib/screens/logs/filters/filter_status_modal.dart @@ -1,9 +1,11 @@ -import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/widgets/list_bottom_sheet.dart'; + import 'package:adguard_home_manager/providers/logs_provider.dart'; class FilterStatusModal extends StatefulWidget { @@ -33,169 +35,141 @@ class _FilterStatusModalState extends State { Widget build(BuildContext context) { final logsProvider = Provider.of(context); - void apply() async { - logsProvider.setSelectedResultStatus(value: selectedResultStatus); - - Navigator.pop(context); - } - if (widget.dialog == true) { return Dialog( child: ConstrainedBox( constraints: const BoxConstraints( maxWidth: 400 ), - child: _Content( - onApply: apply, - updateSelectedResultStatus: (v) => setState(() => selectedResultStatus = v), - selectedResultStatus: selectedResultStatus, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: SingleChildScrollView( + child: Wrap( + children: [ + Padding( + padding: const EdgeInsets.only(top: 16, left: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + CloseButton( + onPressed: () => Navigator.pop(context), + ), + const SizedBox(width: 12), + Text( + AppLocalizations.of(context)!.responseStatus, + style: const TextStyle( + fontSize: 22 + ), + ) + ], + ), + ), + Container(height: 16), + _ItemsList( + selectedResultStatus: logsProvider.selectedResultStatus, + updateSelectedResultStatus: (v) => logsProvider.setSelectedResultStatus(value: v), + ), + Container(height: 16) + ], + ), + ), + ), + ], ) ), ); } else { - return Container( - decoration: BoxDecoration( - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(28), - topRight: Radius.circular(28) - ), - color: Theme.of(context).dialogBackgroundColor + return SizedBox( + height: 700, + child: ListBottomSheet( + icon: Icons.shield_rounded, + title: AppLocalizations.of(context)!.responseStatus, + initialChildSize: 1, + minChildSize: 0.5, + children: [ + _ItemsList( + selectedResultStatus: logsProvider.selectedResultStatus, + updateSelectedResultStatus: (v) => logsProvider.setSelectedResultStatus(value: v), + ) + ] ), - child: SafeArea( - child: _Content( - onApply: apply, - updateSelectedResultStatus: (v) => setState(() => selectedResultStatus = v), - selectedResultStatus: selectedResultStatus, - ), - ) ); } } } -class _Content extends StatelessWidget { +class _ItemsList extends StatelessWidget { final String selectedResultStatus; final void Function(String) updateSelectedResultStatus; - final void Function() onApply; - const _Content({ + const _ItemsList({ required this.selectedResultStatus, - required this.updateSelectedResultStatus, - required this.onApply, + required this.updateSelectedResultStatus }); @override Widget build(BuildContext context) { return Column( - mainAxisSize: MainAxisSize.min, children: [ - Flexible( - child: SingleChildScrollView( - child: Wrap( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Column( - children: [ - Padding( - padding: const EdgeInsets.only( - top: 24, - bottom: 16, - ), - child: Icon( - Icons.shield_rounded, - size: 24, - color: Theme.of(context).listTileTheme.iconColor - ), - ), - Text( - AppLocalizations.of(context)!.responseStatus, - style: TextStyle( - fontSize: 24, - fontWeight: FontWeight.w400, - color: Theme.of(context).colorScheme.onSurface - ), - ), - ], - ) - ], - ), - Container(height: 16), - _Item( - selectedResultStatus: selectedResultStatus, - id: "all", - icon: Icons.shield_rounded, - label: AppLocalizations.of(context)!.all, - onChanged: updateSelectedResultStatus - ), - _Item( - selectedResultStatus: selectedResultStatus, - id: "filtered", - icon: Icons.shield_rounded, - label: AppLocalizations.of(context)!.filtered, - onChanged: updateSelectedResultStatus - ), - _Item( - selectedResultStatus: selectedResultStatus, - id: "processed", - icon: Icons.verified_user_rounded, - label: AppLocalizations.of(context)!.processedRow, - onChanged: updateSelectedResultStatus - ), - _Item( - selectedResultStatus: selectedResultStatus, - id: "whitelisted", - icon: Icons.verified_user_rounded, - label: AppLocalizations.of(context)!.processedWhitelistRow, - onChanged: updateSelectedResultStatus - ), - _Item( - selectedResultStatus: selectedResultStatus, - id: "blocked", - icon: Icons.gpp_bad_rounded, - label: AppLocalizations.of(context)!.blocked, - onChanged: updateSelectedResultStatus - ), - _Item( - selectedResultStatus: selectedResultStatus, - id: "blocked_safebrowsing", - icon: Icons.gpp_bad_rounded, - label: AppLocalizations.of(context)!.blockedSafeBrowsingRow, - onChanged: updateSelectedResultStatus - ), - _Item( - selectedResultStatus: selectedResultStatus, - id: "blocked_parental", - icon: Icons.gpp_bad_rounded, - label: AppLocalizations.of(context)!.blockedParentalRow, - onChanged: updateSelectedResultStatus - ), - _Item( - selectedResultStatus: selectedResultStatus, - id: "safe_search", - icon: Icons.gpp_bad_rounded, - label: AppLocalizations.of(context)!.blockedSafeSearchRow, - onChanged: updateSelectedResultStatus - ), - ], - ), - ), + _Item( + selectedResultStatus: selectedResultStatus, + id: "all", + icon: Icons.shield_rounded, + label: AppLocalizations.of(context)!.all, + onChanged: updateSelectedResultStatus ), - Padding( - padding: const EdgeInsets.all(24), - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - TextButton( - onPressed: onApply, - child: Text(AppLocalizations.of(context)!.apply) - ) - ], - ), + _Item( + selectedResultStatus: selectedResultStatus, + id: "filtered", + icon: Icons.shield_rounded, + label: AppLocalizations.of(context)!.filtered, + onChanged: updateSelectedResultStatus + ), + _Item( + selectedResultStatus: selectedResultStatus, + id: "processed", + icon: Icons.verified_user_rounded, + label: AppLocalizations.of(context)!.processedRow, + onChanged: updateSelectedResultStatus + ), + _Item( + selectedResultStatus: selectedResultStatus, + id: "whitelisted", + icon: Icons.verified_user_rounded, + label: AppLocalizations.of(context)!.processedWhitelistRow, + onChanged: updateSelectedResultStatus + ), + _Item( + selectedResultStatus: selectedResultStatus, + id: "blocked", + icon: Icons.gpp_bad_rounded, + label: AppLocalizations.of(context)!.blocked, + onChanged: updateSelectedResultStatus + ), + _Item( + selectedResultStatus: selectedResultStatus, + id: "blocked_safebrowsing", + icon: Icons.gpp_bad_rounded, + label: AppLocalizations.of(context)!.blockedSafeBrowsingRow, + onChanged: updateSelectedResultStatus + ), + _Item( + selectedResultStatus: selectedResultStatus, + id: "blocked_parental", + icon: Icons.gpp_bad_rounded, + label: AppLocalizations.of(context)!.blockedParentalRow, + onChanged: updateSelectedResultStatus + ), + _Item( + selectedResultStatus: selectedResultStatus, + id: "safe_search", + icon: Icons.gpp_bad_rounded, + label: AppLocalizations.of(context)!.blockedSafeSearchRow, + onChanged: updateSelectedResultStatus ), - if (Platform.isIOS) const SizedBox(height: 16) ], ); } diff --git a/lib/screens/logs/filters/logs_filters_modal.dart b/lib/screens/logs/filters/logs_filters_modal.dart index 9f77666..b02dbd2 100644 --- a/lib/screens/logs/filters/logs_filters_modal.dart +++ b/lib/screens/logs/filters/logs_filters_modal.dart @@ -82,10 +82,9 @@ class _FiltersList extends StatelessWidget { final void Function() onClearSearch; const _FiltersList({ - Key? key, required this.searchController, required this.onClearSearch, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -125,7 +124,8 @@ class _FiltersList extends StatelessWidget { dialog: false, ), isScrollControlled: true, - backgroundColor: Colors.transparent + backgroundColor: Colors.transparent, + useSafeArea: true ); } } diff --git a/lib/widgets/list_bottom_sheet.dart b/lib/widgets/list_bottom_sheet.dart index 2f8bd03..219df8c 100644 --- a/lib/widgets/list_bottom_sheet.dart +++ b/lib/widgets/list_bottom_sheet.dart @@ -4,12 +4,18 @@ class ListBottomSheet extends StatelessWidget { final IconData icon; final String title; final List children; + final double? initialChildSize; + final double? minChildSize; + final double? maxChildSize; const ListBottomSheet({ super.key, required this.icon, required this.title, - required this.children + required this.children, + this.initialChildSize, + this.maxChildSize, + this.minChildSize, }); @override @@ -17,9 +23,9 @@ class ListBottomSheet extends StatelessWidget { return GestureDetector( onTap: () => Navigator.of(context).pop(), child: DraggableScrollableSheet( - initialChildSize: 0.6, - minChildSize: 0.3, - maxChildSize: 1, + initialChildSize: initialChildSize ?? 0.6, + minChildSize: minChildSize ?? 0.3, + maxChildSize: maxChildSize ?? 1, builder: (context, controller) { return Container( decoration: BoxDecoration( From 3eaf7143f28d61fc66fe5fa7a70c62528ef42ef1 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 30 Jan 2024 01:06:08 +0100 Subject: [PATCH 083/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 2d64194..aa5c383 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.15.0+125 +version: 2.15.1+126 environment: sdk: '>=2.18.1 <3.0.0' From 794b690c916ada19669e29b4022b47a6eeda94a6 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 2 Feb 2024 20:37:27 +0100 Subject: [PATCH 084/236] Save settings on shared preferences --- lib/main.dart | 92 +++--- lib/providers/app_config_provider.dart | 230 ++++++--------- .../settings/customization/customization.dart | 16 +- lib/services/db/database.dart | 270 +----------------- macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 96 +++++++ pubspec.yaml | 1 + 7 files changed, 242 insertions(+), 465 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index e6fb4ec..98669e6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -10,6 +10,7 @@ import 'package:dynamic_color/dynamic_color.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; import 'package:store_checker/store_checker.dart'; import 'package:window_size/window_size.dart'; @@ -31,8 +32,8 @@ import 'package:adguard_home_manager/providers/servers_provider.dart'; import 'package:adguard_home_manager/constants/colors.dart'; import 'package:adguard_home_manager/config/globals.dart'; import 'package:adguard_home_manager/config/theme.dart'; -import 'package:adguard_home_manager/classes/http_override.dart'; import 'package:adguard_home_manager/services/db/database.dart'; +import 'package:adguard_home_manager/classes/http_override.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -48,8 +49,12 @@ void main() async { } await dotenv.load(fileName: '.env'); + + final sharedPreferences = await SharedPreferences.getInstance(); - final AppConfigProvider appConfigProvider = AppConfigProvider(); + final AppConfigProvider appConfigProvider = AppConfigProvider( + sharedPreferencesInstance: sharedPreferences + ); final ServersProvider serversProvider = ServersProvider(); final StatusProvider statusProvider = StatusProvider(); final ClientsProvider clientsProvider = ClientsProvider(); @@ -69,9 +74,7 @@ void main() async { appConfigProvider.setIosInfo(iosInfo); } - final dbData = await loadDb(appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31); - - if (dbData['appConfig']['overrideSslCheck'] == 1) { + if (sharedPreferences.getBool('overrideSslCheck') == true) { HttpOverrides.global = MyHttpOverrides(); } @@ -80,10 +83,12 @@ void main() async { appConfigProvider.setInstallationSource(installationSource); } + final dbData = await loadDb(); serversProvider.setDbInstance(dbData['dbInstance']); - appConfigProvider.saveFromDb(dbData['dbInstance'], dbData['appConfig']); serversProvider.saveFromDb(dbData['servers']); + appConfigProvider.saveFromSharedPreferences(); + PackageInfo appInfo = await PackageInfo.fromPlatform(); appConfigProvider.setAppInfo(appInfo); @@ -208,42 +213,45 @@ class _MainState extends State

    { final appConfigProvider = Provider.of(context); return DynamicColorBuilder( - builder: (lightDynamic, darkDynamic) => MaterialApp( - title: 'AdGuard Home Manager', - theme: appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31 - ? appConfigProvider.useDynamicColor == true - ? lightTheme(lightDynamic) - : lightThemeOldVersions(colors[appConfigProvider.staticColor]) - : lightThemeOldVersions(colors[appConfigProvider.staticColor]), - darkTheme: appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31 - ? appConfigProvider.useDynamicColor == true - ? darkTheme(darkDynamic) - : darkThemeOldVersions(colors[appConfigProvider.staticColor]) - : darkThemeOldVersions(colors[appConfigProvider.staticColor]), - themeMode: appConfigProvider.selectedTheme, - debugShowCheckedModeBanner: false, - localizationsDelegates: const [ - GlobalMaterialLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - AppLocalizations.delegate, - ], - supportedLocales: const [ - Locale('en', ''), - Locale('es', ''), - Locale('zh', ''), - Locale('zh', 'CN'), - Locale('pl', ''), - Locale('tr', ''), - Locale('ru', '') - ], - scaffoldMessengerKey: scaffoldMessengerKey, - navigatorKey: globalNavigatorKey, - builder: (context, child) => CustomMenuBar( - child: child!, - ), - home: const Layout(), - ), + builder: (lightDynamic, darkDynamic) { + appConfigProvider.setSupportsDynamicTheme(lightDynamic != null && darkDynamic != null); + return MaterialApp( + title: 'AdGuard Home Manager', + theme: lightDynamic != null + ? appConfigProvider.useDynamicColor == true + ? lightTheme(lightDynamic) + : lightThemeOldVersions(colors[appConfigProvider.staticColor]) + : lightThemeOldVersions(colors[appConfigProvider.staticColor]), + darkTheme: darkDynamic != null + ? appConfigProvider.useDynamicColor == true + ? darkTheme(darkDynamic) + : darkThemeOldVersions(colors[appConfigProvider.staticColor]) + : darkThemeOldVersions(colors[appConfigProvider.staticColor]), + themeMode: appConfigProvider.selectedTheme, + debugShowCheckedModeBanner: false, + localizationsDelegates: const [ + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + AppLocalizations.delegate, + ], + supportedLocales: const [ + Locale('en', ''), + Locale('es', ''), + Locale('zh', ''), + Locale('zh', 'CN'), + Locale('pl', ''), + Locale('tr', ''), + Locale('ru', '') + ], + scaffoldMessengerKey: scaffoldMessengerKey, + navigatorKey: globalNavigatorKey, + builder: (context, child) => CustomMenuBar( + child: child!, + ), + home: const Layout(), + ); + } ); } } \ No newline at end of file diff --git a/lib/providers/app_config_provider.dart b/lib/providers/app_config_provider.dart index 99e2f0f..6b73520 100644 --- a/lib/providers/app_config_provider.dart +++ b/lib/providers/app_config_provider.dart @@ -1,22 +1,23 @@ -import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/scheduler.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; import 'package:store_checker/store_checker.dart'; import 'package:package_info_plus/package_info_plus.dart'; -import 'package:sqflite/sqlite_api.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/config/home_top_items_default_order.dart'; import 'package:adguard_home_manager/models/github_release.dart'; -import 'package:adguard_home_manager/services/db/queries.dart'; -import 'package:adguard_home_manager/functions/conversions.dart'; import 'package:adguard_home_manager/models/app_log.dart'; class AppConfigProvider with ChangeNotifier { - Database? _dbInstance; + final SharedPreferences sharedPreferencesInstance; + + AppConfigProvider({ + required this.sharedPreferencesInstance + }); PackageInfo? _appInfo; AndroidDeviceInfo? _androidDeviceInfo; @@ -28,6 +29,7 @@ class AppConfigProvider with ChangeNotifier { bool _showingSnackbar = false; + bool _supportsDynamicTheme = true; int _selectedTheme = 0; bool _useDynamicColor = true; int _staticColor = 0; @@ -38,19 +40,19 @@ class AppConfigProvider with ChangeNotifier { List _homeTopItemsOrder = homeTopItemsDefaultOrder; - int _hideServerAddress = 0; + bool _hideServerAddress = false; final List _logs = []; - int _overrideSslCheck = 0; + bool _overrideSslCheck = false; - int _hideZeroValues = 0; + bool _hideZeroValues = false; - int _showTimeLogs = 0; + bool _showTimeLogs = false; - int _showIpLogs = 0; + bool _showIpLogs = false; - int _combinedChartHome = 0; + bool _combinedChartHome = false; String? _doNotRememberVersion; @@ -88,6 +90,10 @@ class AppConfigProvider with ChangeNotifier { } } + bool get supportsDynamicTheme { + return _supportsDynamicTheme; + } + int get selectedThemeNumber { return _selectedTheme; } @@ -105,11 +111,11 @@ class AppConfigProvider with ChangeNotifier { } bool get overrideSslCheck { - return _overrideSslCheck == 1 ? true : false; + return _overrideSslCheck; } bool get hideZeroValues { - return _hideZeroValues == 1 ? true : false; + return _hideZeroValues; } int get selectedScreen { @@ -133,15 +139,15 @@ class AppConfigProvider with ChangeNotifier { } bool get showTimeLogs { - return _showTimeLogs == 1 ? true : false; + return _showTimeLogs; } bool get showIpLogs { - return _showIpLogs == 1 ? true : false; + return _showIpLogs; } bool get combinedChartHome { - return _combinedChartHome == 1 ? true : false; + return _combinedChartHome; } String? get doNotRememberVersion { @@ -165,11 +171,11 @@ class AppConfigProvider with ChangeNotifier { } bool get hideServerAddress { - return _hideServerAddress == 1 ? true : false; + return _hideServerAddress; } - void setDbInstance(Database db) { - _dbInstance = db; + void setSupportsDynamicTheme(bool value) { + _supportsDynamicTheme = value; } void setAppInfo(PackageInfo appInfo) { @@ -227,206 +233,145 @@ class AppConfigProvider with ChangeNotifier { } Future setOverrideSslCheck(bool status) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'overrideSslCheck', - value: status == true ? 1 : 0 - ); - if (updated == true) { - _overrideSslCheck = status == true ? 1 : 0; + try { + sharedPreferencesInstance.setBool('overrideSslCheck', status); + _overrideSslCheck = status; notifyListeners(); return true; - } - else { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return false; } } Future setHideZeroValues(bool status) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'hideZeroValues', - value: status == true ? 1 : 0 - ); - if (updated == true) { - _hideZeroValues = status == true ? 1 : 0; + try { + sharedPreferencesInstance.setBool('hideZeroValues', status); + _hideZeroValues = status; notifyListeners(); return true; - } - else { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return false; } } Future setshowTimeLogs(bool status) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'showTimeLogs', - value: status == true ? 1 : 0 - ); - if (updated == true) { - _showTimeLogs = status == true ? 1 : 0; + try { + sharedPreferencesInstance.setBool('showTimeLogs', status); + _showTimeLogs = status; notifyListeners(); return true; - } - else { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return false; } } Future setShowIpLogs(bool status) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'showIpLogs', - value: status == true ? 1 : 0 - ); - if (updated == true) { - _showIpLogs = status == true ? 1 : 0; + try { + sharedPreferencesInstance.setBool('showIpLogs', status); + _showIpLogs = status; notifyListeners(); return true; - } - else { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return false; } } Future setSelectedTheme(int value) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'theme', - value: value - ); - if (updated == true) { + try { + sharedPreferencesInstance.setInt('selectedTheme', value); _selectedTheme = value; notifyListeners(); return true; - } - else { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return false; } } Future setUseDynamicColor(bool value) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'useDynamicColor', - value: value == true ? 1 : 0 - ); - if (updated == true) { + try { + sharedPreferencesInstance.setBool('useDynamicColor', value); _useDynamicColor = value; notifyListeners(); return true; - } - else { - return false; - } - } - - Future setUseThemeColorForStatus(bool value) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'useThemeColorForStatus', - value: value == true ? 1 : 0 - ); - if (updated == true) { - _useThemeColorForStatus = value; - notifyListeners(); - return true; - } - else { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return false; } } Future setCombinedChartHome(bool value) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'combinedChart', - value: value == true ? 1 : 0 - ); - if (updated == true) { - _combinedChartHome = value == true ? 1 : 0; + try { + sharedPreferencesInstance.setBool('combinedChart', value); + _combinedChartHome = value; notifyListeners(); return true; - } - else { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return false; } } Future setStaticColor(int value) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'staticColor', - value: value - ); - if (updated == true) { + try { + sharedPreferencesInstance.setInt('staticColor', value); _staticColor = value; notifyListeners(); return true; - } - else { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return false; } } Future setHomeTopItemsOrder(List order) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'homeTopItemsOrder', - value: jsonEncode(List.from(order.map((e) => e.name))) - ); - if (updated == true) { + try { + sharedPreferencesInstance.setStringList('homeTopItemsOrder', List.from(order.map((e) => e.name))); _homeTopItemsOrder = order; notifyListeners(); return true; - } - else { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return false; } } Future setHideServerAddress(bool value) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'hideServerAddress', - value: value == true ? 1 : 0 - ); - if (updated == true) { - _hideServerAddress = value == true ? 1 : 0; + try { + sharedPreferencesInstance.setBool('hideServerAddress', value); + _hideServerAddress = value; notifyListeners(); return true; - } - else { + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); return false; } } Future setDoNotRememberVersion(String value) async { - final updated = await updateConfigQuery( - db: _dbInstance!, - column: 'doNotRememberVersion', - value: value - ); + final updated = await sharedPreferencesInstance.setString('hideServerAddress', value); return updated; } - - void saveFromDb(Database dbInstance, Map dbData) { - _selectedTheme = dbData['theme'] ?? 0; - _overrideSslCheck = dbData['overrideSslCheck'] ?? 0; - _hideZeroValues = dbData['hideZeroValues']; - _useDynamicColor = convertFromIntToBool(dbData['useDynamicColor'])!; - _staticColor = dbData['staticColor'] ?? 0; - _useThemeColorForStatus = dbData['useThemeColorForStatus'] != null ? convertFromIntToBool(dbData['useThemeColorForStatus'])! : false; - _showTimeLogs = dbData['showTimeLogs'] ?? 0; - _doNotRememberVersion = dbData['doNotRememberVersion']; - _showIpLogs = dbData['showIpLogs'] ?? 0; - _combinedChartHome = dbData['combinedChart'] ?? 0; - _hideServerAddress = dbData['hideServerAddress']; - if (dbData['homeTopItemsOrder'] != null) { + + void saveFromSharedPreferences() { + _selectedTheme = sharedPreferencesInstance.getInt('selectedTheme') ?? 0; + _overrideSslCheck = sharedPreferencesInstance.getBool('overrideSslCheck') ?? false; + _hideZeroValues = sharedPreferencesInstance.getBool('hideZeroValues') ?? false; + _useDynamicColor = sharedPreferencesInstance.getBool('useDynamicColor') ?? true; + _staticColor = sharedPreferencesInstance.getInt('staticColor') ?? 0; + _showTimeLogs = sharedPreferencesInstance.getBool('showTimeLogs') ?? false; + _doNotRememberVersion = sharedPreferencesInstance.getString('doNotRememberVersion'); + _showIpLogs = sharedPreferencesInstance.getBool('showIpLogs') ?? false; + _combinedChartHome = sharedPreferencesInstance.getBool('combinedChart') ?? false; + _hideServerAddress = sharedPreferencesInstance.getBool('hideServerAddress') ?? false; + if (sharedPreferencesInstance.getStringList('homeTopItemsOrder') != null) { try { final itemsOrder = List.from( - List.from(jsonDecode(dbData['homeTopItemsOrder'])).map((e) { + List.from(sharedPreferencesInstance.getStringList('homeTopItemsOrder')!).map((e) { switch (e) { case 'queriedDomains': return HomeTopItems.queriedDomains; @@ -458,8 +403,5 @@ class AppConfigProvider with ChangeNotifier { _homeTopItemsOrder = homeTopItemsDefaultOrder; } } - - _dbInstance = dbInstance; - notifyListeners(); } } \ No newline at end of file diff --git a/lib/screens/settings/customization/customization.dart b/lib/screens/settings/customization/customization.dart index 7bec949..38f93a3 100644 --- a/lib/screens/settings/customization/customization.dart +++ b/lib/screens/settings/customization/customization.dart @@ -120,7 +120,7 @@ class _CustomizationWidgetState extends State { label: AppLocalizations.of(context)!.color, padding: const EdgeInsets.only(top: 45, left: 16, right: 16, bottom: 5), ), - if (appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31) CustomSwitchListTile( + if (appConfigProvider.supportsDynamicTheme) CustomSwitchListTile( value: dynamicColor, onChanged: (value) { setState(() => dynamicColor = value); @@ -129,7 +129,10 @@ class _CustomizationWidgetState extends State { title: AppLocalizations.of(context)!.useDynamicTheme, ), if (!(appConfigProvider.androidDeviceInfo != null && appConfigProvider.androidDeviceInfo!.version.sdkInt >= 31)) const SizedBox(height: 20), - if (dynamicColor == false) Padding( + if ( + appConfigProvider.supportsDynamicTheme == false || + (appConfigProvider.supportsDynamicTheme == true && dynamicColor == false) + ) Padding( padding: const EdgeInsets.only(bottom: 8, left: 16, right: 16), child: Scrollbar( controller: _colorsScrollController, @@ -207,15 +210,6 @@ class _CustomizationWidgetState extends State { ), ), ), - CustomSwitchListTile( - value: useThemeColorInsteadGreenRed, - onChanged: (value) { - setState(() => useThemeColorInsteadGreenRed = value); - appConfigProvider.setUseThemeColorForStatus(value); - }, - title: AppLocalizations.of(context)!.useThemeColorStatus, - subtitle: AppLocalizations.of(context)!.useThemeColorStatusDescription, - ) ], ), ), diff --git a/lib/services/db/database.dart b/lib/services/db/database.dart index b60b38a..fa82957 100644 --- a/lib/services/db/database.dart +++ b/lib/services/db/database.dart @@ -1,141 +1,7 @@ import 'package:sqflite/sqflite.dart'; -import 'package:adguard_home_manager/config/home_top_items_default_order.dart'; - -Future> loadDb(bool acceptsDynamicTheme) async { +Future> loadDb() async { List>? servers; - List>? appConfig; - - Future rebuildAppConfig(Database db) async { - await db.execute("DROP TABLE appConfig"); - await db.execute("CREATE TABLE appConfig (theme NUMERIC, overrideSslCheck NUMERIC, hideZeroValues NUMERIC, useDynamicColor NUMERIC, staticColor NUMERIC, useThemeColorForStatus NUMERIC, showTimeLogs NUMERIC, showIpLogs NUMERIC, combinedChart NUMERIC, doNotRememberVersion TEXT)"); - await db.execute("INSERT INTO appConfig (theme, overrideSslCheck, hideZeroValues, useDynamicColor, staticColor, useThemeColorForStatus, showTimeLogs, showIpLogs, combinedChart) VALUES (0, 0, 0, ${acceptsDynamicTheme == true ? 1 : 0}, 0, 0, 0, 0, 0)"); - } - - Future upgradeDbToV2(Database db) async { - await db.execute("ALTER TABLE appConfig ADD COLUMN overrideSslCheck NUMERIC"); - await db.execute("UPDATE appConfig SET overrideSslCheck = 0"); - - await db.transaction((txn) async{ - await txn.rawQuery( - 'SELECT * FROM appConfig', - ); - }); - } - - Future upgradeDbToV3(Database db) async { - await db.execute("ALTER TABLE appConfig ADD COLUMN hideZeroValues NUMERIC"); - await db.execute("UPDATE appConfig SET hideZeroValues = 0"); - - await db.transaction((txn) async{ - await txn.rawQuery( - 'SELECT * FROM appConfig', - ); - }); - } - - Future upgradeDbToV4(Database db) async { - await db.execute("ALTER TABLE servers ADD COLUMN runningOnHa INTEGER"); - await db.execute("UPDATE servers SET runningOnHa = 0"); - - await db.transaction((txn) async{ - await txn.rawQuery( - 'SELECT * FROM servers', - ); - }); - } - - Future upgradeDbToV5(Database db) async { - await db.execute("ALTER TABLE appConfig ADD COLUMN useDynamicColor NUMERIC"); - await db.execute("ALTER TABLE appConfig ADD COLUMN staticColor NUMERIC"); - await db.execute("ALTER TABLE appConfig ADD COLUMN useThemeColorForStatus NUMERIC"); - await db.execute("UPDATE appConfig SET useDynamicColor = ${acceptsDynamicTheme == true ? 1 : 0}, staticColor = 0, useThemeColorForStatus = 0"); - - await db.transaction((txn) async{ - await txn.rawQuery( - 'SELECT * FROM appConfig', - ); - }); - } - - Future upgradeDbToV6(Database db) async { - await db.execute("ALTER TABLE appConfig ADD COLUMN showNameTimeLogs NUMERIC"); - await db.execute("UPDATE appConfig SET showNameTimeLogs = 0"); - - await db.transaction((txn) async{ - await txn.rawQuery( - 'SELECT * FROM appConfig', - ); - }); - } - - Future upgradeDbToV7(Database db) async { - await db.execute("ALTER TABLE appConfig ADD COLUMN doNotRememberVersion TEXT"); - - await db.transaction((txn) async{ - await txn.rawQuery( - 'SELECT * FROM appConfig', - ); - }); - } - - Future upgradeDbToV8(Database db) async { - try { - final data = await db.rawQuery( - 'SELECT * FROM appConfig', - ); - await rebuildAppConfig(db); - await db.update( - 'appConfig', - { - 'theme': data[0]['theme'], - 'overrideSslCheck': data[0]['overrideSslCheck'], - 'hideZeroValues': data[0]['hideZeroValues'], - 'useDynamicColor': data[0]['useDynamicColor'], - 'staticColor': data[0]['staticColor'], - 'useThemeColorForStatus': data[0]['useThemeColorForStatus'], - 'showTimeLogs': data[0]['showNameTimeLogs'], - 'showIpLogs': data[0]['showIpLogs'], - 'combinedChart': data[0]['combinedChart'], - } - ); - } catch (e) { - await rebuildAppConfig(db); - } - } - - Future upgradeDbToV9(Database db) async { - await db.execute("ALTER TABLE appConfig ADD COLUMN hideServerAddress NUMERIC"); - await db.execute("ALTER TABLE appConfig ADD COLUMN homeTopItemsOrder TEXT"); - await db.execute("UPDATE appConfig SET hideServerAddress = 0, homeTopItemsOrder = '$homeTopItemsDefaultOrderString'"); - - await db.transaction((txn) async{ - await txn.rawQuery( - 'SELECT * FROM appConfig', - ); - }); - } - - Future upgradeDbToV10(Database db) async { - await db.execute("ALTER TABLE appConfig ADD COLUMN showTopItemsChart NUMERIC"); - await db.execute("UPDATE appConfig SET showTopItemsChart = 1"); - - await db.transaction((txn) async{ - await txn.rawQuery( - 'SELECT * FROM appConfig', - ); - }); - } - - Future upgradeDbToV11(Database db) async { - await db.execute("ALTER TABLE appConfig DROP COLUMN showTopItemsChart"); - - await db.transaction((txn) async{ - await txn.rawQuery( - 'SELECT * FROM appConfig', - ); - }); - } Database db = await openDatabase( 'adguard_home_manager.db', @@ -159,135 +25,9 @@ Future> loadDb(bool acceptsDynamicTheme) async { ) """ ); - - await db.execute( - """ - CREATE TABLE - appConfig ( - theme NUMERIC, - overrideSslCheck NUMERIC, - hideZeroValues NUMERIC, - useDynamicColor NUMERIC, - staticColor NUMERIC, - useThemeColorForStatus NUMERIC, - showTimeLogs NUMERIC, - showIpLogs NUMERIC, - combinedChart NUMERIC, - doNotRememberVersion TEXT, - hideServerAddress NUMERIC, - homeTopItemsOrder TEXT - ) - """ - ); - - await db.execute( - """ - INSERT INTO - appConfig ( - theme, - overrideSslCheck, - hideZeroValues, - useDynamicColor, - staticColor, - useThemeColorForStatus, - showTimeLogs, - showIpLogs, - combinedChart, - hideServerAddress, - homeTopItemsOrder - ) - VALUES ( - 0, - 0, - 0, - ${acceptsDynamicTheme == true ? 1 : 0}, - 0, - 0, - 0, - 0, - 0, - 0, - '$homeTopItemsDefaultOrderString' - ) - """ - ); }, onUpgrade: (Database db, int oldVersion, int newVersion) async { - if (oldVersion == 1) { - await upgradeDbToV2(db); - await upgradeDbToV3(db); - await upgradeDbToV4(db); - await upgradeDbToV5(db); - await upgradeDbToV6(db); - await upgradeDbToV7(db); - await upgradeDbToV8(db); - await upgradeDbToV9(db); - await upgradeDbToV10(db); - await upgradeDbToV11(db); - } - if (oldVersion == 2) { - await upgradeDbToV3(db); - await upgradeDbToV4(db); - await upgradeDbToV5(db); - await upgradeDbToV6(db); - await upgradeDbToV7(db); - await upgradeDbToV8(db); - await upgradeDbToV9(db); - await upgradeDbToV10(db); - await upgradeDbToV11(db); - } - if (oldVersion == 3) { - await upgradeDbToV4(db); - await upgradeDbToV5(db); - await upgradeDbToV6(db); - await upgradeDbToV7(db); - await upgradeDbToV8(db); - await upgradeDbToV9(db); - await upgradeDbToV10(db); - await upgradeDbToV11(db); - } - if (oldVersion == 4) { - await upgradeDbToV5(db); - await upgradeDbToV6(db); - await upgradeDbToV7(db); - await upgradeDbToV8(db); - await upgradeDbToV9(db); - await upgradeDbToV10(db); - await upgradeDbToV11(db); - } - if (oldVersion == 5) { - await upgradeDbToV6(db); - await upgradeDbToV7(db); - await upgradeDbToV8(db); - await upgradeDbToV9(db); - await upgradeDbToV10(db); - await upgradeDbToV11(db); - } - if (oldVersion == 6) { - await upgradeDbToV7(db); - await upgradeDbToV8(db); - await upgradeDbToV9(db); - await upgradeDbToV10(db); - await upgradeDbToV11(db); - } - if (oldVersion == 7) { - await upgradeDbToV8(db); - await upgradeDbToV9(db); - await upgradeDbToV10(db); - await upgradeDbToV11(db); - } - if (oldVersion == 8) { - await upgradeDbToV9(db); - await upgradeDbToV10(db); - await upgradeDbToV11(db); - } - if (oldVersion == 9) { - await upgradeDbToV10(db); - await upgradeDbToV11(db); - } - if (oldVersion == 10) { - await upgradeDbToV11(db); - } + }, onOpen: (Database db) async { await db.transaction((txn) async{ @@ -295,17 +35,11 @@ Future> loadDb(bool acceptsDynamicTheme) async { 'SELECT * FROM servers', ); }); - await db.transaction((txn) async{ - appConfig = await txn.rawQuery( - 'SELECT * FROM appConfig', - ); - }); } ); return { "servers": servers, - "appConfig": appConfig![0], "dbInstance": db, }; } \ No newline at end of file diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 31a4f66..045b44f 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -9,6 +9,7 @@ import device_info_plus import dynamic_color import package_info_plus import sentry_flutter +import shared_preferences_foundation import sqflite import sqlite3_flutter_libs import url_launcher_macos @@ -19,6 +20,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DynamicColorPlugin.register(with: registry.registrar(forPlugin: "DynamicColorPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) diff --git a/pubspec.lock b/pubspec.lock index d584bfa..0f65427 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -502,6 +502,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + url: "https://pub.dev" + source: hosted + version: "2.2.1" percent_indicator: dependency: "direct main" description: @@ -526,6 +550,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.4.0" + platform: + dependency: transitive + description: + name: platform + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + url: "https://pub.dev" + source: hosted + version: "3.1.4" plugin_platform_interface: dependency: transitive description: @@ -574,6 +606,62 @@ packages: url: "https://pub.dev" source: hosted version: "7.15.0" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" + url: "https://pub.dev" + source: hosted + version: "2.2.1" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" + url: "https://pub.dev" + source: hosted + version: "2.3.5" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + url: "https://pub.dev" + source: hosted + version: "2.3.2" sky_engine: dependency: transitive description: flutter @@ -852,6 +940,14 @@ packages: url: "https://github.com/google/flutter-desktop-embedding" source: git version: "0.1.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" xml: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index aa5c383..c4119e9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -77,6 +77,7 @@ dependencies: timezone: ^0.9.2 flutter_custom_tabs: ^2.0.0+1 url_launcher: ^6.2.4 + shared_preferences: ^2.2.2 dev_dependencies: flutter_test: From 9b1e36df5b6d415d863322d9f98ecbfedfd62129 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 2 Feb 2024 20:40:42 +0100 Subject: [PATCH 085/236] Updated macos stuff --- macos/Podfile.lock | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 1bad97f..f5e5c0c 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -13,6 +13,9 @@ PODS: - FlutterMacOS - Sentry/HybridSDK (= 8.18.0) - SentryPrivate (8.18.0) + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS - sqflite (0.0.3): - Flutter - FlutterMacOS @@ -42,6 +45,7 @@ DEPENDENCIES: - FlutterMacOS (from `Flutter/ephemeral`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - sentry_flutter (from `Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos`) + - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`) - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) @@ -64,6 +68,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos sentry_flutter: :path: Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos + shared_preferences_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin sqflite: :path: Flutter/ephemeral/.symlinks/plugins/sqflite/darwin sqlite3_flutter_libs: @@ -81,6 +87,7 @@ SPEC CHECKSUMS: Sentry: 8984a4ffb2b9bd2894d74fb36e6f5833865bc18e sentry_flutter: c87a0556eeb6cbf7f9f924d30e878bdedf22d364 SentryPrivate: 2f0c9ba4c3fc993f70eab6ca95673509561e0085 + shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec sqlite3: f307b6291c4db7b5086c38d6237446b98a738581 sqlite3_flutter_libs: 6b9913d8fbb718e5ebf23658aa6934a0fb509c0f From 2585826a29cef82917b4c40229863e9bdb008bb9 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 3 Feb 2024 01:58:45 +0100 Subject: [PATCH 086/236] Show client name on logs --- lib/screens/logs/filters/clients_modal.dart | 53 ++++++++------------- lib/services/db/database.dart | 3 -- 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/lib/screens/logs/filters/clients_modal.dart b/lib/screens/logs/filters/clients_modal.dart index cf8a94f..6500717 100644 --- a/lib/screens/logs/filters/clients_modal.dart +++ b/lib/screens/logs/filters/clients_modal.dart @@ -7,6 +7,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; import 'package:adguard_home_manager/widgets/list_bottom_sheet.dart'; +import 'package:adguard_home_manager/providers/status_provider.dart'; import 'package:adguard_home_manager/providers/clients_provider.dart'; import 'package:adguard_home_manager/providers/logs_provider.dart'; @@ -228,39 +229,25 @@ class _ListItem extends StatelessWidget { @override Widget build(BuildContext context) { - return Material( - color: Colors.transparent, - child: InkWell( - onTap: () => onChanged(!checkboxActive), - child: Padding( - padding: const EdgeInsets.only( - left: 24, - top: 4, - right: 12, - bottom: 4 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Flexible( - child: Text( - label, - style: TextStyle( - fontSize: 16, - color: Theme.of(context).colorScheme.onSurface - ), - ), - ), - Checkbox( - value: checkboxActive, - onChanged: (v) => onChanged(!checkboxActive), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(5) - ), - ) - ], - ), - ), + final statusProvider = Provider.of(context); + + String? name; + try { + name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(label)).name; + } catch (e) { + // ---- // + } + + return CustomCheckboxListTile( + value: checkboxActive, + onChanged: (v) => onChanged(v), + title: label, + subtitle: name, + padding: const EdgeInsets.only( + left: 24, + top: 8, + right: 12, + bottom: 8 ), ); } diff --git a/lib/services/db/database.dart b/lib/services/db/database.dart index fa82957..fe09d16 100644 --- a/lib/services/db/database.dart +++ b/lib/services/db/database.dart @@ -25,9 +25,6 @@ Future> loadDb() async { ) """ ); - }, - onUpgrade: (Database db, int oldVersion, int newVersion) async { - }, onOpen: (Database db) async { await db.transaction((txn) async{ From 5f448f0af0485357d666ef8431ff66bd373c4575 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 3 Feb 2024 02:38:00 +0100 Subject: [PATCH 087/236] Added search clients filter --- lib/screens/logs/filters/clients_modal.dart | 438 ++++++++++++-------- lib/widgets/list_bottom_sheet.dart | 105 +++-- 2 files changed, 316 insertions(+), 227 deletions(-) diff --git a/lib/screens/logs/filters/clients_modal.dart b/lib/screens/logs/filters/clients_modal.dart index 6500717..ca15219 100644 --- a/lib/screens/logs/filters/clients_modal.dart +++ b/lib/screens/logs/filters/clients_modal.dart @@ -11,7 +11,17 @@ import 'package:adguard_home_manager/providers/status_provider.dart'; import 'package:adguard_home_manager/providers/clients_provider.dart'; import 'package:adguard_home_manager/providers/logs_provider.dart'; -class ClientsModal extends StatelessWidget { +class _ClientLog { + final String ip; + final String? name; + + const _ClientLog({ + required this.ip, + required this.name + }); +} + +class ClientsModal extends StatefulWidget { final List? value; final bool dialog; @@ -22,196 +32,278 @@ class ClientsModal extends StatelessWidget { }); @override - Widget build(BuildContext context) { - final clientsProvider = Provider.of(context); - final logsProvider = Provider.of(context); - - if (dialog == true) { - return Dialog( - child: ConstrainedBox( - constraints: const BoxConstraints( - maxWidth: 500 - ), - child: _ModalContent( - selectedClients: logsProvider.selectedClients, - onClientsSelected: (v) => logsProvider.setSelectedClients(v), - ) - ), - ); - } - else { - return ListBottomSheet( - icon: Icons.smartphone_rounded, - title: AppLocalizations.of(context)!.clients, - children: [ - Card( - margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), - child: Padding( - padding: const EdgeInsets.all(16), - child: Row( - children: [ - Icon( - Icons.info_rounded, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - const SizedBox(width: 16), - Flexible( - child: Text(AppLocalizations.of(context)!.selectClientsFiltersInfo) - ) - ], - ), - ), - ), - CustomCheckboxListTile( - padding: const EdgeInsets.only( - left: 24, - top: 8, - right: 12, - bottom: 8 - ), - value: logsProvider.selectedClients.length == clientsProvider.clients!.autoClients.length, - onChanged: (v) { - if (v == true) { - logsProvider.setSelectedClients(clientsProvider.clients!.autoClients.map((e) => e.ip).toList()); - } - else { - logsProvider.setSelectedClients([]); - } - }, - title: AppLocalizations.of(context)!.selectAll - ), - ListView.builder( - shrinkWrap: true, - primary: false, - itemCount: clientsProvider.clients!.autoClients.length, - itemBuilder: (context, index) => _ListItem( - label: clientsProvider.clients!.autoClients[index].ip, - checkboxActive: logsProvider.selectedClients.contains(clientsProvider.clients!.autoClients[index].ip), - onChanged: (isSelected) { - if (isSelected == true) { - logsProvider.setSelectedClients([ - ...logsProvider.selectedClients, - clientsProvider.clients!.autoClients[index].ip - ]); - } - else { - logsProvider.setSelectedClients( - logsProvider.selectedClients.where( - (item) => item != clientsProvider.clients!.autoClients[index].ip - ).toList() - ); - } - } - ) - ) - ] - ); - } - } + State createState() => _ClientsModalState(); } -class _ModalContent extends StatelessWidget { - final List selectedClients; - final void Function(List) onClientsSelected; +class _ClientsModalState extends State { + List<_ClientLog> _filteredClients = []; + final _searchController = TextEditingController(); - const _ModalContent({ - required this.selectedClients, - required this.onClientsSelected, - }); + @override + void initState() { + final clientsProvider = Provider.of(context, listen: false); + final statusProvider = Provider.of(context, listen: false); + _filteredClients = clientsProvider.clients!.autoClients.map((e) { + String? name; + try { + name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(e.ip)).name; + } catch (e) { + // ---- // + } + return _ClientLog( + ip: e.ip, + name: name + ); + }).toList(); + + super.initState(); + } @override Widget build(BuildContext context) { final clientsProvider = Provider.of(context); final logsProvider = Provider.of(context); + final statusProvider = Provider.of(context); - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.all(16), - child: Row( - children: [ - CloseButton( - onPressed: () => Navigator.pop(context), - ), - const SizedBox(width: 12), - Text( - AppLocalizations.of(context)!.clients, - style: const TextStyle( - fontSize: 22 - ), - ) - ], + void onSearch(String value) { + final filtered = clientsProvider.clients!.autoClients.map((e) { + String? name; + try { + name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(e.ip)).name; + } catch (e) { + // ---- // + } + return _ClientLog( + ip: e.ip, + name: name + ); + }).where( + (c) => c.ip.contains(value.toLowerCase()) || (c.name != null && c.name!.toLowerCase().contains(value.toLowerCase())) + ).toList(); + setState(() => _filteredClients = filtered); + } + + if (widget.dialog == true) { + return Dialog( + child: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: 500 ), - ), - Flexible( - child: ListView( + child: Column( + mainAxisSize: MainAxisSize.min, children: [ - Card( - margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), - child: Padding( - padding: const EdgeInsets.all(16), - child: Row( - children: [ - Icon( - Icons.info_rounded, - color: Theme.of(context).colorScheme.onSurfaceVariant, + Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + CloseButton( + onPressed: () => Navigator.pop(context), + ), + const SizedBox(width: 12), + Text( + AppLocalizations.of(context)!.clients, + style: const TextStyle( + fontSize: 22 ), - const SizedBox(width: 16), - Flexible( - child: Text(AppLocalizations.of(context)!.selectClientsFiltersInfo) + ) + ], + ), + ), + Flexible( + child: ListView( + children: [ + _SearchField( + controller: _searchController, + onClear: () => setState(() => _searchController.text = ""), + onSearch: onSearch + ), + Card( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.info_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + const SizedBox(width: 16), + Flexible( + child: Text(AppLocalizations.of(context)!.selectClientsFiltersInfo) + ) + ], + ), + ), + ), + CustomCheckboxListTile( + padding: const EdgeInsets.only( + left: 24, + top: 8, + right: 12, + bottom: 8 + ), + value: logsProvider.selectedClients.length == clientsProvider.clients!.autoClients.length, + onChanged: (v) { + if (v == true) { + logsProvider.setSelectedClients(clientsProvider.clients!.autoClients.map((e) => e.ip).toList()); + } + else { + logsProvider.setSelectedClients([]); + } + }, + title: AppLocalizations.of(context)!.selectAll + ), + ListView.builder( + primary: false, + shrinkWrap: true, + itemCount: _filteredClients.length, + itemBuilder: (context, index) => _ListItem( + label: _filteredClients[index].ip, + checkboxActive: logsProvider.selectedClients.contains(_filteredClients[index].ip), + onChanged: (isSelected) { + if (isSelected == true) { + logsProvider.setSelectedClients([ + ...logsProvider.selectedClients, + _filteredClients[index].ip + ]); + } + else { + logsProvider.setSelectedClients( + logsProvider.selectedClients.where( + (item) => item != _filteredClients[index].ip + ).toList() + ); + } + } ) - ], - ), - ), - ), - CustomCheckboxListTile( - padding: const EdgeInsets.only( - left: 24, - top: 8, - right: 12, - bottom: 8 - ), - value: logsProvider.selectedClients.length == clientsProvider.clients!.autoClients.length, - onChanged: (v) { - if (v == true) { - logsProvider.setSelectedClients(clientsProvider.clients!.autoClients.map((e) => e.ip).toList()); - } - else { - logsProvider.setSelectedClients([]); - } - }, - title: AppLocalizations.of(context)!.selectAll - ), - ListView.builder( - primary: false, - shrinkWrap: true, - itemCount: clientsProvider.clients!.autoClients.length, - itemBuilder: (context, index) => _ListItem( - label: clientsProvider.clients!.autoClients[index].ip, - checkboxActive: selectedClients.contains(clientsProvider.clients!.autoClients[index].ip), - onChanged: (isSelected) { - if (isSelected == true) { - onClientsSelected([ - ...selectedClients, - clientsProvider.clients!.autoClients[index].ip - ]); - } - else { - onClientsSelected( - selectedClients.where( - (item) => item != clientsProvider.clients!.autoClients[index].ip - ).toList() - ); - } - } + ), + ], ) ), + if (Platform.isIOS) const SizedBox(height: 16) ], ) ), - if (Platform.isIOS) const SizedBox(height: 16) - ], + ); + } + else { + return Padding( + padding: MediaQuery.of(context).viewInsets, + child: ListBottomSheet( + icon: Icons.smartphone_rounded, + title: AppLocalizations.of(context)!.clients, + children: [ + _SearchField( + controller: _searchController, + onClear: () => setState(() => _searchController.text = ""), + onSearch: onSearch + ), + Card( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.info_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + const SizedBox(width: 16), + Flexible( + child: Text(AppLocalizations.of(context)!.selectClientsFiltersInfo) + ) + ], + ), + ), + ), + CustomCheckboxListTile( + padding: const EdgeInsets.only( + left: 24, + top: 8, + right: 12, + bottom: 8 + ), + value: logsProvider.selectedClients.length == clientsProvider.clients!.autoClients.length, + onChanged: (v) { + if (v == true) { + logsProvider.setSelectedClients(clientsProvider.clients!.autoClients.map((e) => e.ip).toList()); + } + else { + logsProvider.setSelectedClients([]); + } + }, + title: AppLocalizations.of(context)!.selectAll + ), + ListView.builder( + shrinkWrap: true, + primary: false, + itemCount: _filteredClients.length, + itemBuilder: (context, index) => _ListItem( + label: _filteredClients[index].ip, + checkboxActive: logsProvider.selectedClients.contains(_filteredClients[index].ip), + onChanged: (isSelected) { + if (isSelected == true) { + logsProvider.setSelectedClients([ + ...logsProvider.selectedClients, + _filteredClients[index].ip + ]); + } + else { + logsProvider.setSelectedClients( + logsProvider.selectedClients.where( + (item) => item != _filteredClients[index].ip + ).toList() + ); + } + } + ) + ) + ] + ), + ); + } + } +} + +class _SearchField extends StatelessWidget { + final TextEditingController controller; + final void Function(String) onSearch; + final void Function() onClear; + + const _SearchField({ + required this.controller, + required this.onClear, + required this.onSearch, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: TextFormField( + controller: controller, + onChanged: onSearch, + decoration: InputDecoration( + hintText: AppLocalizations.of(context)!.search, + prefixIcon: const Icon(Icons.search_rounded), + border: InputBorder.none, + filled: true, + fillColor: Colors.grey.withOpacity(0.2), + suffixIcon: controller.text != "" + ? IconButton( + onPressed: onClear, + icon: const Icon( + Icons.close_rounded, + size: 20, + ), + tooltip: AppLocalizations.of(context)!.clearSearch, + ) + : null + ), + ), + ), ); } } diff --git a/lib/widgets/list_bottom_sheet.dart b/lib/widgets/list_bottom_sheet.dart index 219df8c..83f9c78 100644 --- a/lib/widgets/list_bottom_sheet.dart +++ b/lib/widgets/list_bottom_sheet.dart @@ -20,67 +20,64 @@ class ListBottomSheet extends StatelessWidget { @override Widget build(BuildContext context) { - return GestureDetector( - onTap: () => Navigator.of(context).pop(), - child: DraggableScrollableSheet( - initialChildSize: initialChildSize ?? 0.6, - minChildSize: minChildSize ?? 0.3, - maxChildSize: maxChildSize ?? 1, - builder: (context, controller) { - return Container( - decoration: BoxDecoration( - color: Theme.of(context).colorScheme.surface, - borderRadius: const BorderRadius.only( - topLeft: Radius.circular(28), - topRight: Radius.circular(28), - ), + return DraggableScrollableSheet( + initialChildSize: initialChildSize ?? 0.6, + minChildSize: minChildSize ?? 0.3, + maxChildSize: maxChildSize ?? 1, + builder: (context, controller) { + return Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(28), + topRight: Radius.circular(28), ), - child: SafeArea( - child: ListView( - controller: controller, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, + ), + child: SafeArea( + child: ListView( + controller: controller, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + margin: const EdgeInsets.all(16), + width: 36, + height: 4, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.grey + ), + ), + ], + ), + Padding( + padding: const EdgeInsets.symmetric(vertical: 16), + child: Column( children: [ - Container( - margin: const EdgeInsets.all(16), - width: 36, - height: 4, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: Colors.grey + Icon( + icon, + size: 24, + color: Theme.of(context).listTileTheme.iconColor + ), + const SizedBox(height: 16), + Text( + title, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + color: Theme.of(context).colorScheme.onSurface ), ), ], ), - Padding( - padding: const EdgeInsets.symmetric(vertical: 16), - child: Column( - children: [ - Icon( - icon, - size: 24, - color: Theme.of(context).listTileTheme.iconColor - ), - const SizedBox(height: 16), - Text( - title, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurface - ), - ), - ], - ), - ), - ...children - ], - ), + ), + ...children + ], ), - ); - }, - ), + ), + ); + }, ); } } \ No newline at end of file From 8df0781da62b4ceddfeca63c429efa677249205b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 3 Feb 2024 14:38:38 +0100 Subject: [PATCH 088/236] Added ipv4 and ipv6 subnet prefix length fields --- lib/l10n/app_en.arb | 4 +- lib/l10n/app_es.arb | 4 +- lib/models/dns_info.dart | 12 +- lib/providers/dns_provider.dart | 2 + .../settings/dns/dns_server_settings.dart | 214 +++++++++++------- 5 files changed, 148 insertions(+), 88 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index bdd9f99..ab2a561 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -758,5 +758,7 @@ "invalidTime": "Invalid time", "removeDomain": "Remove domain", "addDomain": "Add domain", - "notLess1Hour": "Time cannot be less than 1 hour" + "notLess1Hour": "Time cannot be less than 1 hour", + "subnetPrefixLengthIpv4": "Subnet prefix length for IPv4", + "subnetPrefixLengthIpv6": "Subnet prefix length for IPv6" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index d9b2f9a..6a701d1 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -758,5 +758,7 @@ "invalidTime": "Tiempo no válido", "removeDomain": "Eliminar dominio", "addDomain": "Añadir dominio", - "notLess1Hour": "El tiempo no puede ser inferior a 1 hora" + "notLess1Hour": "El tiempo no puede ser inferior a 1 hora", + "subnetPrefixLengthIpv4": "Longitud del prefijo de subred para IPv4", + "subnetPrefixLengthIpv6": "Longitud del prefijo de subred para IPv6" } \ No newline at end of file diff --git a/lib/models/dns_info.dart b/lib/models/dns_info.dart index c0cabd6..d4152c8 100644 --- a/lib/models/dns_info.dart +++ b/lib/models/dns_info.dart @@ -23,6 +23,8 @@ class DnsInfo { String blockingIpv6; List defaultLocalPtrUpstreams; int? blockedResponseTtl; + int? ratelimitSubnetLenIpv4; + int? ratelimitSubnetLenIpv6; DnsInfo({ required this.upstreamDns, @@ -49,6 +51,8 @@ class DnsInfo { required this.blockingIpv6, required this.defaultLocalPtrUpstreams, required this.blockedResponseTtl, + required this.ratelimitSubnetLenIpv4, + required this.ratelimitSubnetLenIpv6, }); factory DnsInfo.fromJson(Map json) => DnsInfo( @@ -75,7 +79,9 @@ class DnsInfo { blockingIpv4: json["blocking_ipv4"], blockingIpv6: json["blocking_ipv6"], defaultLocalPtrUpstreams: json["default_local_ptr_upstreams"] != null ? List.from(json["default_local_ptr_upstreams"].map((x) => x)) : [], - blockedResponseTtl: json["blocked_response_ttl"] + blockedResponseTtl: json["blocked_response_ttl"], + ratelimitSubnetLenIpv4: json["ratelimit_subnet_len_ipv4"], + ratelimitSubnetLenIpv6: json["ratelimit_subnet_len_ipv6"], ); Map toJson() => { @@ -102,6 +108,8 @@ class DnsInfo { "blocking_ipv4": blockingIpv4, "blocking_ipv6": blockingIpv6, "default_local_ptr_upstreams": List.from(defaultLocalPtrUpstreams.map((x) => x)), - "blocked_response_ttl": blockedResponseTtl + "blocked_response_ttl": blockedResponseTtl, + "ratelimit_subnet_len_ipv4": ratelimitSubnetLenIpv4, + "ratelimit_subnet_len_ipv6": ratelimitSubnetLenIpv6, }; } diff --git a/lib/providers/dns_provider.dart b/lib/providers/dns_provider.dart index 84b86cd..9c8d705 100644 --- a/lib/providers/dns_provider.dart +++ b/lib/providers/dns_provider.dart @@ -162,6 +162,8 @@ class DnsProvider with ChangeNotifier { data.blockingIpv4 = value['blocking_ipv4']; data.blockingIpv6 = value['blocking_ipv6']; data.blockedResponseTtl = value['blocked_response_ttl']; + data.ratelimitSubnetLenIpv4 = value['ratelimit_subnet_len_ipv4']; + data.ratelimitSubnetLenIpv6 = value['ratelimit_subnet_len_ipv6']; setDnsInfoData(data); return result; } diff --git a/lib/screens/settings/dns/dns_server_settings.dart b/lib/screens/settings/dns/dns_server_settings.dart index b13f593..6e747f3 100644 --- a/lib/screens/settings/dns/dns_server_settings.dart +++ b/lib/screens/settings/dns/dns_server_settings.dart @@ -23,49 +23,49 @@ class DnsServerSettingsScreen extends StatefulWidget { } class _DnsServerSettingsScreenState extends State { - final TextEditingController limitRequestsController = TextEditingController(); - String? limitRequestsError; + final _limitRequestsController = TextEditingController(); + final _ipv4PrefixSubnetController = TextEditingController(); + String? _ipv4PrefixSubnetError; + final _ipv6PrefixSubnetController = TextEditingController(); + String? _ipv6PrefixSubnetError; + String? _limitRequestsError; final _expandableCustomEdns = ExpandableController(); final _expandableEdnsIp = ExpandableController(); - bool enableEdns = false; - bool useCustomIpEdns = false; + bool _enableEdns = false; + bool _useCustomIpEdns = false; final _customIpEdnsController = TextEditingController(); - String? ednsIpError; - bool enableDnssec = false; - bool disableIpv6Resolving = false; + String? _ednsIpError; + bool _enableDnssec = false; + bool _disableIpv6Resolving = false; String blockingMode = "default"; - final TextEditingController ipv4controller = TextEditingController(); - String? ipv4error; - final TextEditingController ipv6controller = TextEditingController(); + final _ipv4controller = TextEditingController(); + String? _ipv4error; + final _ipv6controller = TextEditingController(); String? ipv6error; final _ttlController = TextEditingController(); String? _ttlError; - bool isDataValid = false; - void validateIpv4(String value) { RegExp ipAddress = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$'); if (ipAddress.hasMatch(value) == true) { - setState(() => ipv4error = null); + setState(() => _ipv4error = null); } else { - setState(() => ipv4error = AppLocalizations.of(context)!.invalidIp); + setState(() => _ipv4error = AppLocalizations.of(context)!.invalidIp); } - validateData(); } void validateEdns(String value) { RegExp ipAddress = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$'); if (ipAddress.hasMatch(value) == true) { - setState(() => ednsIpError = null); + setState(() => _ednsIpError = null); } else { - setState(() => ednsIpError = AppLocalizations.of(context)!.ipNotValid); + setState(() => _ednsIpError = AppLocalizations.of(context)!.ipNotValid); } - validateData(); } void validateIpv6(String value) { @@ -76,63 +76,77 @@ class _DnsServerSettingsScreenState extends State { else { setState(() => ipv6error = AppLocalizations.of(context)!.invalidIp); } - validateData(); } - void validateData() { + bool validateData() { if ( - limitRequestsController.text != '' && - limitRequestsError == null && + (_limitRequestsController.text == "" || (_limitRequestsController.text != "" && _limitRequestsError == null)) && ( blockingMode != 'custom_ip' || ( blockingMode == 'custom_ip' && - ipv4controller.text != '' && - ipv4error == null && - ipv6controller.text != '' && + _ipv4controller.text != '' && + _ipv4error == null && + _ipv6controller.text != '' && ipv6error == null ) ) == true && - ednsIpError == null && - _ttlError == null + _ednsIpError == null && + _ttlController.text != "" && _ttlError == null && + (_ipv4PrefixSubnetController.text == "" || (_ipv4PrefixSubnetController.text != "" && _ipv4PrefixSubnetError == null)) && + (_ipv6PrefixSubnetController.text == "" || (_ipv6PrefixSubnetController.text != "" && _ipv6PrefixSubnetError == null)) ) { - setState(() => isDataValid = true); + return true; } else { - setState(() => isDataValid = false); + return false; } } - void validateNumber(String value) { - final regex = RegExp(r'^(\d)+$'); - if (regex.hasMatch(value) == true) { - setState(() => _ttlError = null); + String? validateTtl(String value) { + if (value == "") return AppLocalizations.of(context)!.valueNotNumber; + if (int.tryParse(value) != null) { + return null; } else { - setState(() => _ttlError = AppLocalizations.of(context)!.invalidValue); + return AppLocalizations.of(context)!.valueNotNumber; + } + } + + String? validateNumber(String value) { + if (value == "") return null; + if (int.tryParse(value) != null) { + return null; + } + else { + return AppLocalizations.of(context)!.valueNotNumber; } - validateData(); } @override void initState() { final dnsProvider = Provider.of(context, listen: false); - limitRequestsController.text = dnsProvider.dnsInfo!.ratelimit.toString(); - enableEdns = dnsProvider.dnsInfo!.ednsCsEnabled; - useCustomIpEdns = dnsProvider.dnsInfo!.ednsCsUseCustom ?? false; + _limitRequestsController.text = dnsProvider.dnsInfo!.ratelimit.toString(); + _enableEdns = dnsProvider.dnsInfo!.ednsCsEnabled; + _useCustomIpEdns = dnsProvider.dnsInfo!.ednsCsUseCustom ?? false; _customIpEdnsController.text = dnsProvider.dnsInfo!.ednsCsCustomIp ?? ""; if (dnsProvider.dnsInfo!.ednsCsEnabled == true) _expandableCustomEdns.toggle(); if (dnsProvider.dnsInfo!.ednsCsUseCustom == true) _expandableEdnsIp.toggle(); - enableDnssec = dnsProvider.dnsInfo!.dnssecEnabled; - disableIpv6Resolving = dnsProvider.dnsInfo!.disableIpv6; + _enableDnssec = dnsProvider.dnsInfo!.dnssecEnabled; + _disableIpv6Resolving = dnsProvider.dnsInfo!.disableIpv6; blockingMode = dnsProvider.dnsInfo!.blockingMode; - ipv4controller.text = dnsProvider.dnsInfo!.blockingIpv4; - ipv6controller.text = dnsProvider.dnsInfo!.blockingIpv6; - isDataValid = true; + _ipv4controller.text = dnsProvider.dnsInfo!.blockingIpv4; + _ipv6controller.text = dnsProvider.dnsInfo!.blockingIpv6; _ttlController.text = dnsProvider.dnsInfo!.blockedResponseTtl != null ? dnsProvider.dnsInfo!.blockedResponseTtl.toString() : ""; + _ipv4PrefixSubnetController.text = dnsProvider.dnsInfo!.ratelimitSubnetLenIpv4 != null + ? dnsProvider.dnsInfo!.ratelimitSubnetLenIpv4.toString() + : ""; + _ipv6PrefixSubnetController.text = dnsProvider.dnsInfo!.ratelimitSubnetLenIpv6 != null + ? dnsProvider.dnsInfo!.ratelimitSubnetLenIpv6.toString() + : ""; super.initState(); } @@ -147,16 +161,18 @@ class _DnsServerSettingsScreenState extends State { processModal.open(AppLocalizations.of(context)!.savingConfig); final result = await dnsProvider.saveDnsServerConfig({ - "ratelimit": int.parse(limitRequestsController.text), - "edns_cs_enabled": enableEdns, - "edns_cs_use_custom": useCustomIpEdns, + "ratelimit": int.parse(_limitRequestsController.text), + "edns_cs_enabled": _enableEdns, + "edns_cs_use_custom": _useCustomIpEdns, "edns_cs_custom_ip": _customIpEdnsController.text, - "dnssec_enabled": enableDnssec, - "disable_ipv6": disableIpv6Resolving, + "dnssec_enabled": _enableDnssec, + "disable_ipv6": _disableIpv6Resolving, "blocking_mode": blockingMode, - "blocking_ipv4": ipv4controller.text, - "blocking_ipv6": ipv6controller.text, - "blocked_response_ttl": int.tryParse(_ttlController.text) + "blocking_ipv4": _ipv4controller.text, + "blocking_ipv6": _ipv6controller.text, + "blocked_response_ttl": int.tryParse(_ttlController.text), + "ratelimit_subnet_len_ipv4": int.tryParse(_ipv4PrefixSubnetController.text), + "ratelimit_subnet_len_ipv6": int.tryParse(_ipv6PrefixSubnetController.text), }); processModal.close(); @@ -186,22 +202,24 @@ class _DnsServerSettingsScreenState extends State { void updateBlockingMode(String mode) { if (mode != 'custom_ip') { - ipv4controller.text = ''; - ipv4error = null; - ipv6controller.text = ''; + _ipv4controller.text = ''; + _ipv4error = null; + _ipv6controller.text = ''; ipv6error = null; } setState(() => blockingMode = mode); validateData(); } + final dataValid = validateData(); + return Scaffold( appBar: AppBar( title: Text(AppLocalizations.of(context)!.dnsServerSettings), surfaceTintColor: isDesktop(width) ? Colors.transparent : null, actions: [ IconButton( - onPressed: isDataValid == true + onPressed: dataValid == true ? () => saveData() : null, icon: const Icon(Icons.save_rounded), @@ -217,16 +235,8 @@ class _DnsServerSettingsScreenState extends State { Padding( padding: const EdgeInsets.symmetric(horizontal: 16), child: TextFormField( - controller: limitRequestsController, - onChanged: (value) { - if (int.tryParse(value) != null) { - setState(() => limitRequestsError = null); - } - else { - setState(() => limitRequestsError = AppLocalizations.of(context)!.valueNotNumber); - } - validateData(); - }, + controller: _limitRequestsController, + onChanged: (v) => setState(() => _limitRequestsError = validateNumber(v)), decoration: InputDecoration( prefixIcon: const Icon(Icons.looks_one_rounded), border: const OutlineInputBorder( @@ -235,22 +245,58 @@ class _DnsServerSettingsScreenState extends State { ) ), labelText: AppLocalizations.of(context)!.limitRequestsSecond, - errorText: limitRequestsError + errorText: _limitRequestsError ), keyboardType: TextInputType.number, ), ), - const SizedBox(height: 10), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), + child: TextFormField( + controller: _ipv4PrefixSubnetController, + onChanged: (v) => setState(() => _ipv4PrefixSubnetError = validateNumber(v)), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.skip_previous_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.subnetPrefixLengthIpv4, + errorText: _ipv4PrefixSubnetError + ), + keyboardType: TextInputType.number, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: TextFormField( + controller: _ipv6PrefixSubnetController, + onChanged: (v) => setState(() => _ipv6PrefixSubnetError = validateNumber(v)), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.skip_previous_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.subnetPrefixLengthIpv6, + errorText: _ipv6PrefixSubnetError + ), + keyboardType: TextInputType.number, + ), + ), + const SizedBox(height: 16), CustomSwitchListTile( - value: enableEdns, + value: _enableEdns, onChanged: (value) => setState(() { - enableEdns = value; + _enableEdns = value; _expandableCustomEdns.toggle(); if (value == false) { - useCustomIpEdns = false; + _useCustomIpEdns = false; if (_expandableEdnsIp.expanded == true) _expandableEdnsIp.toggle(); _customIpEdnsController.text = ""; - ednsIpError = null; + _ednsIpError = null; } validateData(); }), @@ -270,13 +316,13 @@ class _DnsServerSettingsScreenState extends State { bottom: 12, right: 16 ), - value: useCustomIpEdns, + value: _useCustomIpEdns, onChanged: (value) => setState(() { - useCustomIpEdns = value; + _useCustomIpEdns = value; _expandableEdnsIp.toggle(); - if (useCustomIpEdns == false) { + if (_useCustomIpEdns == false) { _customIpEdnsController.text = ""; - ednsIpError = null; + _ednsIpError = null; } validateData(); }), @@ -304,7 +350,7 @@ class _DnsServerSettingsScreenState extends State { Radius.circular(10) ) ), - errorText: ednsIpError, + errorText: _ednsIpError, labelText: AppLocalizations.of(context)!.ipAddress, ), ), @@ -316,14 +362,14 @@ class _DnsServerSettingsScreenState extends State { ) ), CustomSwitchListTile( - value: enableDnssec, - onChanged: (value) => setState(() => enableDnssec = value), + value: _enableDnssec, + onChanged: (value) => setState(() => _enableDnssec = value), title: AppLocalizations.of(context)!.enableDnssec, subtitle: AppLocalizations.of(context)!.enableDnssecDescription, ), CustomSwitchListTile( - value: disableIpv6Resolving, - onChanged: (value) => setState(() => disableIpv6Resolving = value), + value: _disableIpv6Resolving, + onChanged: (value) => setState(() => _disableIpv6Resolving = value), title: AppLocalizations.of(context)!.disableResolvingIpv6, subtitle: AppLocalizations.of(context)!.disableResolvingIpv6Description, ), @@ -373,7 +419,7 @@ class _DnsServerSettingsScreenState extends State { Padding( padding: const EdgeInsets.symmetric(horizontal: 24), child: TextFormField( - controller: ipv4controller, + controller: _ipv4controller, onChanged: validateIpv4, decoration: InputDecoration( prefixIcon: const Icon(Icons.link_rounded), @@ -382,7 +428,7 @@ class _DnsServerSettingsScreenState extends State { Radius.circular(10) ) ), - errorText: ipv4error, + errorText: _ipv4error, helperText: AppLocalizations.of(context)!.blockingIpv4Description, helperMaxLines: 10, labelText: AppLocalizations.of(context)!.blockingIpv4, @@ -394,7 +440,7 @@ class _DnsServerSettingsScreenState extends State { Padding( padding: const EdgeInsets.symmetric(horizontal: 24), child: TextFormField( - controller: ipv6controller, + controller: _ipv6controller, onChanged: validateIpv6, decoration: InputDecoration( prefixIcon: const Icon(Icons.link_rounded), @@ -417,7 +463,7 @@ class _DnsServerSettingsScreenState extends State { padding: const EdgeInsets.all(16), child: TextFormField( controller: _ttlController, - onChanged: validateNumber, + onChanged: (v) => setState(() => _ttlError = validateTtl(v)), decoration: InputDecoration( prefixIcon: const Icon(Icons.timer_rounded), border: const OutlineInputBorder( From 1bc1efbe5686e548c7ee013109c7e77bd2b59889 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 3 Feb 2024 19:56:27 +0100 Subject: [PATCH 089/236] Added rate limit whitelist --- lib/l10n/app_en.arb | 6 +- lib/l10n/app_es.arb | 6 +- lib/models/dns_info.dart | 4 + lib/providers/dns_provider.dart | 1 + .../settings/dns/dns_server_settings.dart | 42 +++- .../dns/rate_limit_allowlist_modal.dart | 186 ++++++++++++++++++ 6 files changed, 240 insertions(+), 5 deletions(-) create mode 100644 lib/screens/settings/dns/rate_limit_allowlist_modal.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index ab2a561..238b380 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -759,6 +759,10 @@ "removeDomain": "Remove domain", "addDomain": "Add domain", "notLess1Hour": "Time cannot be less than 1 hour", + "rateLimit": "Rate limit", "subnetPrefixLengthIpv4": "Subnet prefix length for IPv4", - "subnetPrefixLengthIpv6": "Subnet prefix length for IPv6" + "subnetPrefixLengthIpv6": "Subnet prefix length for IPv6", + "rateLimitAllowlist": "Rate limit allowlist", + "rateLimitAllowlistDescription": "IP addresses excluded from rate limiting", + "dnsOptions": "DNS options" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 6a701d1..718a093 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -759,6 +759,10 @@ "removeDomain": "Eliminar dominio", "addDomain": "Añadir dominio", "notLess1Hour": "El tiempo no puede ser inferior a 1 hora", + "rateLimit": "Limitación de velocidad", "subnetPrefixLengthIpv4": "Longitud del prefijo de subred para IPv4", - "subnetPrefixLengthIpv6": "Longitud del prefijo de subred para IPv6" + "subnetPrefixLengthIpv6": "Longitud del prefijo de subred para IPv6", + "rateLimitAllowlist": "Lista de permitidos de limitación de velocidad", + "rateLimitAllowlistDescription": "Direcciones IP excluidas de la limitación de velocidad", + "dnsOptions": "Opciones de DNS" } \ No newline at end of file diff --git a/lib/models/dns_info.dart b/lib/models/dns_info.dart index d4152c8..5a53023 100644 --- a/lib/models/dns_info.dart +++ b/lib/models/dns_info.dart @@ -25,6 +25,7 @@ class DnsInfo { int? blockedResponseTtl; int? ratelimitSubnetLenIpv4; int? ratelimitSubnetLenIpv6; + List? ratelimitWhitelist; DnsInfo({ required this.upstreamDns, @@ -53,6 +54,7 @@ class DnsInfo { required this.blockedResponseTtl, required this.ratelimitSubnetLenIpv4, required this.ratelimitSubnetLenIpv6, + required this.ratelimitWhitelist, }); factory DnsInfo.fromJson(Map json) => DnsInfo( @@ -82,6 +84,7 @@ class DnsInfo { blockedResponseTtl: json["blocked_response_ttl"], ratelimitSubnetLenIpv4: json["ratelimit_subnet_len_ipv4"], ratelimitSubnetLenIpv6: json["ratelimit_subnet_len_ipv6"], + ratelimitWhitelist: json["ratelimit_whitelist"] != null ? List.from(json["ratelimit_whitelist"].map((x) => x)) : [], ); Map toJson() => { @@ -111,5 +114,6 @@ class DnsInfo { "blocked_response_ttl": blockedResponseTtl, "ratelimit_subnet_len_ipv4": ratelimitSubnetLenIpv4, "ratelimit_subnet_len_ipv6": ratelimitSubnetLenIpv6, + "ratelimit_whitelist": ratelimitWhitelist != null ? List.from(ratelimitWhitelist!.map((x) => x)) : null, }; } diff --git a/lib/providers/dns_provider.dart b/lib/providers/dns_provider.dart index 9c8d705..198053b 100644 --- a/lib/providers/dns_provider.dart +++ b/lib/providers/dns_provider.dart @@ -164,6 +164,7 @@ class DnsProvider with ChangeNotifier { data.blockedResponseTtl = value['blocked_response_ttl']; data.ratelimitSubnetLenIpv4 = value['ratelimit_subnet_len_ipv4']; data.ratelimitSubnetLenIpv6 = value['ratelimit_subnet_len_ipv6']; + data.ratelimitWhitelist = value['ratelimit_whitelist']; setDnsInfoData(data); return result; } diff --git a/lib/screens/settings/dns/dns_server_settings.dart b/lib/screens/settings/dns/dns_server_settings.dart index 6e747f3..ddae1e3 100644 --- a/lib/screens/settings/dns/dns_server_settings.dart +++ b/lib/screens/settings/dns/dns_server_settings.dart @@ -5,6 +5,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/settings/dns/rate_limit_allowlist_modal.dart'; +import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; import 'package:adguard_home_manager/widgets/custom_radio_list_tile.dart'; import 'package:adguard_home_manager/widgets/section_label.dart'; import 'package:adguard_home_manager/widgets/custom_switch_list_tile.dart'; @@ -28,6 +30,7 @@ class _DnsServerSettingsScreenState extends State { String? _ipv4PrefixSubnetError; final _ipv6PrefixSubnetController = TextEditingController(); String? _ipv6PrefixSubnetError; + List _rateLimitAllowlist = []; String? _limitRequestsError; final _expandableCustomEdns = ExpandableController(); final _expandableEdnsIp = ExpandableController(); @@ -147,6 +150,7 @@ class _DnsServerSettingsScreenState extends State { _ipv6PrefixSubnetController.text = dnsProvider.dnsInfo!.ratelimitSubnetLenIpv6 != null ? dnsProvider.dnsInfo!.ratelimitSubnetLenIpv6.toString() : ""; + _rateLimitAllowlist = dnsProvider.dnsInfo!.ratelimitWhitelist ?? []; super.initState(); } @@ -173,6 +177,7 @@ class _DnsServerSettingsScreenState extends State { "blocked_response_ttl": int.tryParse(_ttlController.text), "ratelimit_subnet_len_ipv4": int.tryParse(_ipv4PrefixSubnetController.text), "ratelimit_subnet_len_ipv6": int.tryParse(_ipv6PrefixSubnetController.text), + "ratelimit_whitelist": _rateLimitAllowlist }); processModal.close(); @@ -230,10 +235,14 @@ class _DnsServerSettingsScreenState extends State { ), body: SafeArea( child: ListView( - padding: const EdgeInsets.only(top: 10), + padding: const EdgeInsets.only(top: 0), children: [ + SectionLabel( + label: AppLocalizations.of(context)!.rateLimit, + padding: const EdgeInsets.only(left: 16, right: 16, bottom: 24, top: 8), + ), Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), + padding: const EdgeInsets.only(left: 16, right: 16, bottom: 24, top: 4), child: TextFormField( controller: _limitRequestsController, onChanged: (v) => setState(() => _limitRequestsError = validateNumber(v)), @@ -251,7 +260,7 @@ class _DnsServerSettingsScreenState extends State { ), ), Padding( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), + padding: const EdgeInsets.only(left: 16, right: 16, bottom: 24), child: TextFormField( controller: _ipv4PrefixSubnetController, onChanged: (v) => setState(() => _ipv4PrefixSubnetError = validateNumber(v)), @@ -287,6 +296,33 @@ class _DnsServerSettingsScreenState extends State { ), ), const SizedBox(height: 16), + CustomListTile( + title: AppLocalizations.of(context)!.rateLimitAllowlist, + subtitle: AppLocalizations.of(context)!.rateLimitAllowlistDescription, + onTap: () => showDialog( + context: context, + builder: (context) => RateLimitAllowlistModal( + values: _rateLimitAllowlist, + onConfirm: (ips) => setState(() => _rateLimitAllowlist = ips) + ), + ), + trailing: _rateLimitAllowlist.isNotEmpty ? Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 2), + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.primaryContainer, + borderRadius: BorderRadius.circular(40) + ), + child: Text( + _rateLimitAllowlist.length.toString(), + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.onPrimaryContainer + ), + ), + ) : null, + ), + SectionLabel(label: AppLocalizations.of(context)!.dnsOptions), CustomSwitchListTile( value: _enableEdns, onChanged: (value) => setState(() { diff --git a/lib/screens/settings/dns/rate_limit_allowlist_modal.dart b/lib/screens/settings/dns/rate_limit_allowlist_modal.dart new file mode 100644 index 0000000..e5b678e --- /dev/null +++ b/lib/screens/settings/dns/rate_limit_allowlist_modal.dart @@ -0,0 +1,186 @@ +import 'package:flutter/material.dart'; +import 'package:uuid/uuid.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +class _IpListItemController { + final String id; + final TextEditingController controller; + bool error; + + _IpListItemController({ + required this.id, + required this.controller, + required this.error + }); +} + +class RateLimitAllowlistModal extends StatefulWidget { + final List values; + final void Function(List) onConfirm; + + const RateLimitAllowlistModal({ + super.key, + required this.values, + required this.onConfirm, + }); + + @override + State createState() => _RateLimitAllowlistModalState(); +} + +class _RateLimitAllowlistModalState extends State { + final Uuid uuid = const Uuid(); + List<_IpListItemController> _controllersList = []; + + void _validateIp(String value, _IpListItemController item) { + final regexp = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$'); + if (regexp.hasMatch(value)) { + setState(() => _controllersList = _controllersList.map((e) { + if (e.id == item.id) { + return _IpListItemController( + id: e.id, + controller: e.controller, + error: false + ); + } + return e; + }).toList()); + } + else { + setState(() => _controllersList = _controllersList.map((e) { + if (e.id == item.id) { + return _IpListItemController( + id: e.id, + controller: e.controller, + error: true + ); + } + return e; + }).toList()); + } + } + + @override + void initState() { + _controllersList = widget.values.map((e) => _IpListItemController( + id: uuid.v4(), + controller: TextEditingController(text: e), + error: false + )).toList(); + + super.initState(); + } + + @override + Widget build(BuildContext context) { + final validData = _controllersList.where((e) => e.error == true).isEmpty; + + return Dialog( + child: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 500), + child: Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Center( + child: Icon( + Icons.check_circle_rounded, + size: 24, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.rateLimitAllowlist, + textAlign: TextAlign.center, + style: const TextStyle( + fontSize: 24, + ), + ), + const SizedBox(height: 16), + ..._controllersList.map((item) => Padding( + padding: const EdgeInsets.only(bottom: 16), + child: Row( + children: [ + Expanded( + child: TextFormField( + controller: item.controller, + onChanged: (v) => _validateIp(v, item), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.link_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.ipAddress, + errorText: item.error == true + ? AppLocalizations.of(context)!.invalidIp + : null + ), + keyboardType: TextInputType.number, + ), + ), + const SizedBox(width: 16), + IconButton( + onPressed: () => setState( + () => _controllersList = _controllersList.where((c) => c.id != item.id).toList() + ), + icon: const Icon(Icons.remove_circle_outline_rounded), + tooltip: AppLocalizations.of(context)!.remove, + ) + ], + ), + )), + Center( + child: ElevatedButton.icon( + onPressed: () => setState(() => _controllersList.add( + _IpListItemController( + id: uuid.v4(), + controller: TextEditingController(), + error: false + ), + )), + icon: const Icon(Icons.add_rounded), + label: Text(AppLocalizations.of(context)!.addItem), + ), + ) + ], + ), + ) + ), + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.cancel) + ), + const SizedBox(width: 8), + TextButton( + onPressed: validData == true + ? () { + widget.onConfirm( + _controllersList.map((e) => e.controller.text).toList() + ); + Navigator.pop(context); + } + : null, + child: Text(AppLocalizations.of(context)!.confirm) + ), + ], + ) + ], + ), + ), + ), + ); + } +} \ No newline at end of file From 2fca44f1957fa26535070e266c7c63489ae91a47 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 3 Feb 2024 20:00:06 +0100 Subject: [PATCH 090/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index c4119e9..32eca7e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.15.1+126 +version: 2.16.0-beta.1+127 environment: sdk: '>=2.18.1 <3.0.0' From c150d2ba230c3ba8cd532f9a2a92d392bbb1663b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 4 Feb 2024 21:23:45 +0100 Subject: [PATCH 091/236] Added edit custom rules --- lib/l10n/app_en.arb | 7 +- lib/l10n/app_es.arb | 7 +- lib/providers/filtering_provider.dart | 17 + lib/screens/filters/add_button.dart | 84 +++- lib/screens/filters/custom_rules_list.dart | 29 +- .../filters/modals/add_custom_rule.dart | 416 ------------------ .../add_custom_rule/add_custom_rule.dart | 326 ++++++++++++++ .../add_custom_rule/custom_rule_docs.dart | 166 +++++++ .../add_custom_rule/edit_custom_rules.dart | 167 +++++++ lib/widgets/tab_content_list.dart | 6 +- 10 files changed, 789 insertions(+), 436 deletions(-) delete mode 100644 lib/screens/filters/modals/add_custom_rule.dart create mode 100644 lib/screens/filters/modals/add_custom_rule/add_custom_rule.dart create mode 100644 lib/screens/filters/modals/add_custom_rule/custom_rule_docs.dart create mode 100644 lib/screens/filters/modals/add_custom_rule/edit_custom_rules.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 238b380..4786d6b 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -764,5 +764,10 @@ "subnetPrefixLengthIpv6": "Subnet prefix length for IPv6", "rateLimitAllowlist": "Rate limit allowlist", "rateLimitAllowlistDescription": "IP addresses excluded from rate limiting", - "dnsOptions": "DNS options" + "dnsOptions": "DNS options", + "editor": "Editor", + "editCustomRules": "Edit custom rules", + "savingCustomRules": "Saving custom rules...", + "customRulesUpdatedSuccessfully": "Custom rules updated successfully", + "customRulesNotUpdated": "Custom rules could not be updated" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 718a093..d7ba7a0 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -764,5 +764,10 @@ "subnetPrefixLengthIpv6": "Longitud del prefijo de subred para IPv6", "rateLimitAllowlist": "Lista de permitidos de limitación de velocidad", "rateLimitAllowlistDescription": "Direcciones IP excluidas de la limitación de velocidad", - "dnsOptions": "Opciones de DNS" + "dnsOptions": "Opciones de DNS", + "editor": "Editor", + "editCustomRules": "Editar reglas personalizadas", + "savingCustomRules": "Guardando reglas personalizadas...", + "customRulesUpdatedSuccessfully": "Reglas personalizadas actualizadas correctamente", + "customRulesNotUpdated": "Las reglas personalizadas no pudieron ser actualizadas" } \ No newline at end of file diff --git a/lib/providers/filtering_provider.dart b/lib/providers/filtering_provider.dart index a264429..d43a1b5 100644 --- a/lib/providers/filtering_provider.dart +++ b/lib/providers/filtering_provider.dart @@ -289,6 +289,23 @@ class FilteringProvider with ChangeNotifier { } } + Future setCustomRules(List rules) async { + final newRules = rules.where((r) => r != " " && r != "").toList(); + final result = await _serversProvider!.apiClient2!.setCustomRules(rules: newRules); + + if (result.successful == true) { + Filtering filteringData = filtering!; + filteringData.userRules = newRules; + _filtering = filteringData; + notifyListeners(); + return true; + } + else { + notifyListeners(); + return false; + } + } + Future> addList({required String name, required String url, required String type}) async { final result1 = await _serversProvider!.apiClient2!.addFilteringList( data: { diff --git a/lib/screens/filters/add_button.dart b/lib/screens/filters/add_button.dart index dc652bc..bc5a22f 100644 --- a/lib/screens/filters/add_button.dart +++ b/lib/screens/filters/add_button.dart @@ -6,7 +6,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:adguard_home_manager/screens/filters/modals/add_custom_rule.dart'; +import 'package:adguard_home_manager/screens/filters/modals/add_custom_rule/edit_custom_rules.dart'; +import 'package:adguard_home_manager/screens/filters/modals/add_custom_rule/add_custom_rule.dart'; import 'package:adguard_home_manager/screens/filters/details/add_list_modal.dart'; import 'package:adguard_home_manager/providers/filtering_provider.dart'; @@ -19,10 +20,10 @@ class AddFiltersButton extends StatelessWidget { final Widget Function(void Function()) widget; const AddFiltersButton({ - Key? key, + super.key, required this.type, required this.widget - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -56,6 +57,31 @@ class AddFiltersButton extends StatelessWidget { } } + void confirmEditCustomRules(List rules) async { + ProcessModal processModal = ProcessModal(); + processModal.open(AppLocalizations.of(context)!.savingCustomRules); + + final result = await filteringProvider.setCustomRules(rules); + + processModal.close(); + + if (!context.mounted) return; + if (result == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.customRulesUpdatedSuccessfully, + color: Colors.green + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.customRulesNotUpdated, + color: Colors.red + ); + } + } + void openAddCustomRule() { showGeneralDialog( context: context, @@ -83,6 +109,33 @@ class AddFiltersButton extends StatelessWidget { ); } + void openEditCustomRule() { + showGeneralDialog( + context: context, + barrierColor: !(width > 700 || !(Platform.isAndroid || Platform.isIOS)) + ?Colors.transparent + : Colors.black54, + transitionBuilder: (context, anim1, anim2, child) { + return SlideTransition( + position: Tween( + begin: const Offset(0, 1), + end: const Offset(0, 0) + ).animate( + CurvedAnimation( + parent: anim1, + curve: Curves.easeInOutCubicEmphasized + ) + ), + child: child, + ); + }, + pageBuilder: (context, animation, secondaryAnimation) => EditCustomRules( + fullScreen: !(width > 700 || !(Platform.isAndroid || Platform.isIOS)), + onConfirm: confirmEditCustomRules, + ), + ); + } + void confirmAddList({required String name, required String url, required String type}) async { ProcessModal processModal = ProcessModal(); processModal.open(AppLocalizations.of(context)!.addingList); @@ -147,10 +200,25 @@ class AddFiltersButton extends StatelessWidget { } } - return widget( - type == 'blacklist' || type == 'whitelist' - ? () => openAddWhitelistBlacklist() - : () => openAddCustomRule(), - ); + switch (type) { + case 'blacklist': + case 'whitelist': + return widget( + () => openAddWhitelistBlacklist(), + ); + + case 'add_custom_rule': + return widget( + () => openAddCustomRule(), + ); + + case 'edit_custom_rule': + return widget( + () => openEditCustomRule(), + ); + + default: + return const SizedBox(); + } } } \ No newline at end of file diff --git a/lib/screens/filters/custom_rules_list.dart b/lib/screens/filters/custom_rules_list.dart index 8706f1a..25a1d4c 100644 --- a/lib/screens/filters/custom_rules_list.dart +++ b/lib/screens/filters/custom_rules_list.dart @@ -20,12 +20,12 @@ class CustomRulesList extends StatefulWidget { final void Function(String) onRemoveCustomRule; const CustomRulesList({ - Key? key, + super.key, required this.loadStatus, required this.scrollController, required this.data, required this.onRemoveCustomRule - }) : super(key: key); + }); @override State createState() => _CustomRulesListState(); @@ -210,13 +210,26 @@ class _CustomRulesListState extends State { ); } }, - fab: AddFiltersButton( - type: 'custom_rule', - widget: (fn) => FloatingActionButton( - onPressed: fn, - child: const Icon(Icons.add), - ), + fab: Column( + children: [ + AddFiltersButton( + type: 'edit_custom_rule', + widget: (fn) => FloatingActionButton.small( + onPressed: fn, + child: const Icon(Icons.edit_rounded), + ), + ), + const SizedBox(height: 16), + AddFiltersButton( + type: 'add_custom_rule', + widget: (fn) => FloatingActionButton( + onPressed: fn, + child: const Icon(Icons.add), + ), + ), + ], ), + heightFabHidden: -120, fabVisible: isVisible, ); } diff --git a/lib/screens/filters/modals/add_custom_rule.dart b/lib/screens/filters/modals/add_custom_rule.dart deleted file mode 100644 index abe68bc..0000000 --- a/lib/screens/filters/modals/add_custom_rule.dart +++ /dev/null @@ -1,416 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:segmented_button_slide/segmented_button_slide.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; - -import 'package:adguard_home_manager/functions/open_url.dart'; -import 'package:adguard_home_manager/constants/urls.dart'; - -class AddCustomRule extends StatefulWidget { - final void Function(String) onConfirm; - final bool fullScreen; - - const AddCustomRule({ - super.key, - required this.onConfirm, - required this.fullScreen - }); - - @override - State createState() => _AddCustomRuleState(); -} - -enum BlockingPresets { block, unblock, custom } - -class _AddCustomRuleState extends State { - final TextEditingController domainController = TextEditingController(); - String? domainError; - - BlockingPresets preset = BlockingPresets.block; - - bool addImportant = false; - - bool checkValidValues() { - if ( - domainController.text != '' && - domainError == null - ) { - return true; - } - else { - return false; - } - } - - void validateDomain(String value) { - final domainRegex = RegExp(r'^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$'); - if (domainRegex.hasMatch(value)) { - setState(() => domainError = null); - } - else { - setState(() => domainError = AppLocalizations.of(context)!.domainNotValid); - } - checkValidValues(); - } - - String buildRule({String?value}) { - String rule = ""; - - String fieldValue = value ?? domainController.text; - - if (preset == BlockingPresets.block) { - rule = "||${fieldValue.trim()}^"; - } - else if (preset == BlockingPresets.unblock) { - rule = "@@||${fieldValue.trim()}^"; - } - else { - rule = fieldValue.trim(); - } - - if (addImportant == true) { - rule = "$rule\$important"; - } - - return rule; - } - - @override - Widget build(BuildContext context) { - - List content() { - return [ - const SizedBox(height: 24), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - padding: const EdgeInsets.symmetric( - horizontal: 10, - vertical: 5 - ), - decoration: BoxDecoration( - color: Theme.of(context).colorScheme.primary.withOpacity(0.1), - borderRadius: BorderRadius.circular(30), - border: Border.all( - color: Theme.of(context).colorScheme.primary - ) - ), - child: Text( - buildRule(), - textAlign: TextAlign.center, - style: TextStyle( - color: Theme.of(context).colorScheme.primary, - fontWeight: FontWeight.w500 - ), - ) - ), - ], - ), - Container(height: 30), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: TextFormField( - controller: domainController, - onChanged: (value) => setState(() => {}), - decoration: InputDecoration( - prefixIcon: const Icon(Icons.link_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - errorText: domainError, - labelText: AppLocalizations.of(context)!.domain, - ), - ), - ), - Container(height: 30), - SegmentedButtonSlide( - entries: [ - SegmentedButtonSlideEntry(label: AppLocalizations.of(context)!.block), - SegmentedButtonSlideEntry(label: AppLocalizations.of(context)!.unblock), - SegmentedButtonSlideEntry(label: AppLocalizations.of(context)!.custom), - ], - selectedEntry: preset.index, - onChange: (v) => setState(() => preset = BlockingPresets.values[v]), - colors: SegmentedButtonSlideColors( - barColor: Theme.of(context).colorScheme.primary.withOpacity(0.2), - backgroundSelectedColor: Theme.of(context).colorScheme.primary, - foregroundSelectedColor: Theme.of(context).colorScheme.onPrimary, - foregroundUnselectedColor: Theme.of(context).colorScheme.onSurface, - hoverColor: Theme.of(context).colorScheme.onSurfaceVariant, - ), - textOverflow: TextOverflow.ellipsis, - fontSize: 14, - height: 40, - margin: const EdgeInsets.symmetric( - horizontal: 24, - ), - ), - Container(height: 20), - Material( - color: Colors.transparent, - child: InkWell( - onTap: () => setState(() => addImportant = !addImportant), - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 28), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.only(left: 10), - child: Text( - AppLocalizations.of(context)!.addImportant, - style: TextStyle( - fontSize: 16, - color: Theme.of(context).colorScheme.onSurface - ), - ), - ), - Switch( - value: addImportant, - onChanged: (value) => setState(() => addImportant = value), - ) - ], - ), - ), - ), - ), - Container(height: 20), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: Card( - child: Padding( - padding: const EdgeInsets.all(20), - child: Column( - children: [ - Row( - children: [ - Icon( - Icons.info, - color: Theme.of(context).colorScheme.onSurface - ), - const SizedBox(width: 20), - Text( - AppLocalizations.of(context)!.examples, - style: TextStyle( - fontSize: 18, - color: Theme.of(context).colorScheme.onSurface - ), - ) - ], - ), - const SizedBox(height: 20), - SizedBox( - width: double.maxFinite, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "||example.org^", - textAlign: TextAlign.left, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.primary - ), - ), - const SizedBox(height: 5), - Text( - AppLocalizations.of(context)!.example1, - style: TextStyle( - fontSize: 14, - color: Theme.of(context).colorScheme.primary - ), - ), - const SizedBox(height: 20), - Text( - "@@||example.org^", - textAlign: TextAlign.left, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.primary - ), - ), - const SizedBox(height: 5), - Text( - AppLocalizations.of(context)!.example2, - style: TextStyle( - fontSize: 14, - color: Theme.of(context).colorScheme.primary - ), - ), - const SizedBox(height: 20), - Text( - "! Here goes a comment", - textAlign: TextAlign.left, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.primary - ), - ), - Text( - "# Also a comment", - textAlign: TextAlign.left, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.primary - ), - ), - const SizedBox(height: 5), - Text( - AppLocalizations.of(context)!.example3, - style: TextStyle( - fontSize: 14, - color: Theme.of(context).colorScheme.primary - ), - ), - const SizedBox(height: 20), - Text( - "/REGEX/", - textAlign: TextAlign.left, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.primary - ), - ), - const SizedBox(height: 5), - Text( - AppLocalizations.of(context)!.example4, - style: TextStyle( - fontSize: 14, - color: Theme.of(context).colorScheme.primary - ), - ), - ], - ), - ) - ], - ), - ), - ), - ), - Container(height: 20), - Material( - color: Colors.transparent, - child: InkWell( - onTap: () => openUrl(Urls.customRuleDocs), - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 28, vertical: 10), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: const EdgeInsets.only(left: 10), - child: Text( - AppLocalizations.of(context)!.moreInformation, - style: TextStyle( - fontSize: 16, - color: Theme.of(context).colorScheme.onSurface - ), - ), - ), - Padding( - padding: const EdgeInsets.only(right: 15), - child: Icon( - Icons.open_in_new, - color: Theme.of(context).colorScheme.onSurface - ), - ) - ], - ), - ), - ), - ), - Container(height: 20) - ]; - } - - if (widget.fullScreen == true) { - return Dialog.fullscreen( - child: Scaffold( - appBar: AppBar( - leading: CloseButton(onPressed: () => Navigator.pop(context)), - title: Text(AppLocalizations.of(context)!.addCustomRule), - actions: [ - IconButton( - onPressed: checkValidValues() == true - ? () { - Navigator.pop(context); - widget.onConfirm(buildRule()); - } - : null, - icon: const Icon(Icons.check) - ), - const SizedBox(width: 10) - ], - ), - body: SafeArea( - child: ListView( - children: content(), - ), - ) - ), - ); - } - else { - return Dialog( - child: ConstrainedBox( - constraints: const BoxConstraints( - maxWidth: 500 - ), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Padding( - padding: const EdgeInsets.all(16), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - children: [ - IconButton( - onPressed: () => Navigator.pop(context), - icon: const Icon(Icons.clear_rounded), - tooltip: AppLocalizations.of(context)!.close, - ), - const SizedBox(width: 8), - Text( - AppLocalizations.of(context)!.addCustomRule, - style: const TextStyle( - fontSize: 22 - ), - ), - ], - ), - IconButton( - onPressed: checkValidValues() == true - ? () { - Navigator.pop(context); - widget.onConfirm(buildRule()); - } - : null, - icon: const Icon(Icons.check) - ) - ], - ), - ), - Flexible( - child: SingleChildScrollView( - child: Wrap( - alignment: WrapAlignment.center, - children: content(), - ), - ), - ) - ], - ), - ), - ); - } - } -} \ No newline at end of file diff --git a/lib/screens/filters/modals/add_custom_rule/add_custom_rule.dart b/lib/screens/filters/modals/add_custom_rule/add_custom_rule.dart new file mode 100644 index 0000000..ad43ebb --- /dev/null +++ b/lib/screens/filters/modals/add_custom_rule/add_custom_rule.dart @@ -0,0 +1,326 @@ +import 'package:flutter/material.dart'; +import 'package:segmented_button_slide/segmented_button_slide.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/screens/filters/modals/add_custom_rule/custom_rule_docs.dart'; + +enum _BlockingPresets { block, unblock, custom } + +class AddCustomRule extends StatefulWidget { + final void Function(String) onConfirm; + final bool fullScreen; + + const AddCustomRule({ + super.key, + required this.onConfirm, + required this.fullScreen + }); + + @override + State createState() => _AddCustomRuleState(); +} + +class _AddCustomRuleState extends State { + final TextEditingController _domainController = TextEditingController(); + String? _domainError; + + _BlockingPresets _preset = _BlockingPresets.block; + + bool _addImportant = false; + + bool _checkValidValues() { + if ( + _domainController.text != '' && + _domainError == null + ) { + return true; + } + else { + return false; + } + } + + void validateDomain(String value) { + final domainRegex = RegExp(r'^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$'); + if (domainRegex.hasMatch(value)) { + setState(() => _domainError = null); + } + else { + setState(() => _domainError = AppLocalizations.of(context)!.domainNotValid); + } + _checkValidValues(); + } + + @override + Widget build(BuildContext context) { + if (widget.fullScreen == true) { + return Dialog.fullscreen( + child: Scaffold( + appBar: AppBar( + leading: CloseButton(onPressed: () => Navigator.pop(context)), + title: Text(AppLocalizations.of(context)!.addCustomRule), + actions: [ + IconButton( + onPressed: _checkValidValues() == true + ? () { + Navigator.pop(context); + widget.onConfirm( + _buildRule( + domainController: _domainController, + important: _addImportant, + preset: _preset + ) + ); + } + : null, + icon: const Icon(Icons.check) + ), + const SizedBox(width: 10) + ], + ), + body: SafeArea( + child: ListView( + children: [ + _CustomRuleEditor( + domainController: _domainController, + domainError: _domainError, + important: _addImportant, + preset: _preset, + setImportant: (v) => setState(() => _addImportant = v), + setPreset: (v) => setState(() => _preset = v), + validateDomain: validateDomain + ) + ] + ), + ) + ), + ); + } + else { + return Dialog( + child: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: 500 + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.all(16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () => Navigator.pop(context), + icon: const Icon(Icons.clear_rounded), + tooltip: AppLocalizations.of(context)!.close, + ), + const SizedBox(width: 8), + Text( + AppLocalizations.of(context)!.addCustomRule, + style: const TextStyle( + fontSize: 22 + ), + ), + ], + ), + IconButton( + onPressed: _checkValidValues() == true + ? () { + Navigator.pop(context); + widget.onConfirm( + _buildRule( + domainController: _domainController, + important: _addImportant, + preset: _preset + ) + ); + } + : null, + icon: const Icon(Icons.check) + ) + ], + ), + ), + Flexible( + child: SingleChildScrollView( + child: Wrap( + alignment: WrapAlignment.center, + children: [ + _CustomRuleEditor( + domainController: _domainController, + domainError: _domainError, + important: _addImportant, + preset: _preset, + setImportant: (v) => setState(() => _addImportant = v), + setPreset: (v) => setState(() => _preset = v), + validateDomain: validateDomain + ) + ] + ), + ), + ) + ], + ), + ), + ); + } + } +} + +class _CustomRuleEditor extends StatelessWidget { + final TextEditingController domainController; + final String? domainError; + final bool important; + final void Function(bool) setImportant; + final _BlockingPresets preset; + final void Function(_BlockingPresets) setPreset; + final void Function(String) validateDomain; + + const _CustomRuleEditor({ + required this.domainController, + required this.domainError, + required this.important, + required this.setImportant, + required this.preset, + required this.setPreset, + required this.validateDomain, + }); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + padding: const EdgeInsets.symmetric( + horizontal: 10, + vertical: 5 + ), + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.primary.withOpacity(0.1), + borderRadius: BorderRadius.circular(30), + border: Border.all( + color: Theme.of(context).colorScheme.primary + ) + ), + child: Text( + _buildRule( + domainController: domainController, + important: important, + preset: preset, + ), + textAlign: TextAlign.center, + style: TextStyle( + color: Theme.of(context).colorScheme.primary, + fontWeight: FontWeight.w500 + ), + ) + ), + ], + ), + Container(height: 30), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: TextFormField( + controller: domainController, + onChanged: validateDomain, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.link_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + errorText: domainError, + labelText: AppLocalizations.of(context)!.domain, + ), + ), + ), + Container(height: 30), + SegmentedButtonSlide( + entries: [ + SegmentedButtonSlideEntry(label: AppLocalizations.of(context)!.block), + SegmentedButtonSlideEntry(label: AppLocalizations.of(context)!.unblock), + SegmentedButtonSlideEntry(label: AppLocalizations.of(context)!.custom), + ], + selectedEntry: preset.index, + onChange: (v) => setPreset(_BlockingPresets.values[v]), + colors: SegmentedButtonSlideColors( + barColor: Theme.of(context).colorScheme.primary.withOpacity(0.2), + backgroundSelectedColor: Theme.of(context).colorScheme.primary, + foregroundSelectedColor: Theme.of(context).colorScheme.onPrimary, + foregroundUnselectedColor: Theme.of(context).colorScheme.onSurface, + hoverColor: Theme.of(context).colorScheme.onSurfaceVariant, + ), + textOverflow: TextOverflow.ellipsis, + fontSize: 14, + height: 40, + margin: const EdgeInsets.symmetric( + horizontal: 24, + ), + ), + Container(height: 20), + Material( + color: Colors.transparent, + child: InkWell( + onTap: () => setImportant(!important), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 28), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(left: 10), + child: Text( + AppLocalizations.of(context)!.addImportant, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurface + ), + ), + ), + Switch( + value: important, + onChanged: setImportant, + ) + ], + ), + ), + ), + ), + Container(height: 20), + const CustomRuleDocs(), + Container(height: 20) + ] + ); + } +} + + String _buildRule({ + String? value, + required TextEditingController domainController, + required _BlockingPresets preset, + required bool important +}) { + String rule = ""; + String fieldValue = value ?? domainController.text; + if (preset == _BlockingPresets.block) { + rule = "||${fieldValue.trim()}^"; + } + else if (preset == _BlockingPresets.unblock) { + rule = "@@||${fieldValue.trim()}^"; + } + else { + rule = fieldValue.trim(); + } + if (important == true) { + rule = "$rule\$important"; + } + return rule; + } \ No newline at end of file diff --git a/lib/screens/filters/modals/add_custom_rule/custom_rule_docs.dart b/lib/screens/filters/modals/add_custom_rule/custom_rule_docs.dart new file mode 100644 index 0000000..3d2c359 --- /dev/null +++ b/lib/screens/filters/modals/add_custom_rule/custom_rule_docs.dart @@ -0,0 +1,166 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/constants/urls.dart'; +import 'package:adguard_home_manager/functions/open_url.dart'; + +class CustomRuleDocs extends StatelessWidget { + const CustomRuleDocs({super.key}); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: Card( + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + children: [ + Row( + children: [ + Icon( + Icons.info, + color: Theme.of(context).colorScheme.onSurface + ), + const SizedBox(width: 20), + Text( + AppLocalizations.of(context)!.examples, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).colorScheme.onSurface + ), + ) + ], + ), + const SizedBox(height: 20), + SizedBox( + width: double.maxFinite, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "||example.org^", + textAlign: TextAlign.left, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.primary + ), + ), + const SizedBox(height: 5), + Text( + AppLocalizations.of(context)!.example1, + style: TextStyle( + fontSize: 14, + color: Theme.of(context).colorScheme.primary + ), + ), + const SizedBox(height: 20), + Text( + "@@||example.org^", + textAlign: TextAlign.left, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.primary + ), + ), + const SizedBox(height: 5), + Text( + AppLocalizations.of(context)!.example2, + style: TextStyle( + fontSize: 14, + color: Theme.of(context).colorScheme.primary + ), + ), + const SizedBox(height: 20), + Text( + "! Here goes a comment", + textAlign: TextAlign.left, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.primary + ), + ), + Text( + "# Also a comment", + textAlign: TextAlign.left, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.primary + ), + ), + const SizedBox(height: 5), + Text( + AppLocalizations.of(context)!.example3, + style: TextStyle( + fontSize: 14, + color: Theme.of(context).colorScheme.primary + ), + ), + const SizedBox(height: 20), + Text( + "/REGEX/", + textAlign: TextAlign.left, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.primary + ), + ), + const SizedBox(height: 5), + Text( + AppLocalizations.of(context)!.example4, + style: TextStyle( + fontSize: 14, + color: Theme.of(context).colorScheme.primary + ), + ), + ], + ), + ) + ], + ), + ), + ), + ), + Container(height: 8), + Material( + color: Colors.transparent, + child: InkWell( + onTap: () => openUrl(Urls.customRuleDocs), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(left: 10), + child: Text( + AppLocalizations.of(context)!.moreInformation, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurface + ), + ), + ), + Padding( + padding: const EdgeInsets.only(right: 15), + child: Icon( + Icons.open_in_new, + color: Theme.of(context).colorScheme.onSurface + ), + ) + ], + ), + ), + ), + ), + ], + ); + } +} \ No newline at end of file diff --git a/lib/screens/filters/modals/add_custom_rule/edit_custom_rules.dart b/lib/screens/filters/modals/add_custom_rule/edit_custom_rules.dart new file mode 100644 index 0000000..e1fc1d1 --- /dev/null +++ b/lib/screens/filters/modals/add_custom_rule/edit_custom_rules.dart @@ -0,0 +1,167 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/screens/filters/modals/add_custom_rule/custom_rule_docs.dart'; + +import 'package:adguard_home_manager/providers/filtering_provider.dart'; + +class EditCustomRules extends StatefulWidget { + final bool fullScreen; + final void Function(List) onConfirm; + + const EditCustomRules({ + super.key, + required this.fullScreen, + required this.onConfirm, + }); + + @override + State createState() => _EditCustomRulesState(); +} + +class _EditCustomRulesState extends State { + final _fieldController = TextEditingController(); + + @override + void initState() { + final filteringProvider = Provider.of(context, listen: false); + print(filteringProvider.filtering!.userRules); + if (filteringProvider.filtering != null) { + _fieldController.text = filteringProvider.filtering!.userRules.join("\n"); + } + + super.initState(); + } + + @override + Widget build(BuildContext context) { + if (widget.fullScreen == true) { + return Dialog.fullscreen( + child: Scaffold( + appBar: AppBar( + leading: CloseButton(onPressed: () => Navigator.pop(context)), + title: Text(AppLocalizations.of(context)!.editCustomRules), + actions: [ + IconButton( + onPressed: () { + Navigator.pop(context); + widget.onConfirm(_fieldController.text.split("\n")); + }, + icon: const Icon(Icons.save_rounded), + tooltip: AppLocalizations.of(context)!.save, + ), + const SizedBox(width: 10) + ], + ), + body: SafeArea( + child: ListView( + children: [ + _CustomRulesRawEditor(fieldController: _fieldController) + ] + ), + ) + ), + ); + } + else { + return Dialog( + child: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: 500 + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.all(16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () => Navigator.pop(context), + icon: const Icon(Icons.clear_rounded), + tooltip: AppLocalizations.of(context)!.close, + ), + const SizedBox(width: 8), + Text( + AppLocalizations.of(context)!.addCustomRule, + style: const TextStyle( + fontSize: 22 + ), + ), + ], + ), + IconButton( + onPressed: () { + Navigator.pop(context); + widget.onConfirm(_fieldController.text.split("\n")); + }, + icon: const Icon(Icons.save_rounded), + tooltip: AppLocalizations.of(context)!.save, + ) + ], + ), + ), + Flexible( + child: SingleChildScrollView( + child: Wrap( + alignment: WrapAlignment.center, + children: [ + _CustomRulesRawEditor(fieldController: _fieldController) + ] + ), + ), + ) + ], + ), + ), + ); + } + } +} + +class _CustomRulesRawEditor extends StatelessWidget { + final TextEditingController fieldController; + + const _CustomRulesRawEditor({ + required this.fieldController + }); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + const SizedBox(height: 24), + SizedBox( + height: 300, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 28), + child: TextField( + controller: fieldController, + decoration: InputDecoration( + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.rules, + floatingLabelBehavior: FloatingLabelBehavior.always + ), + autocorrect: false, + expands: true, + minLines: null, + maxLines: null, + textAlignVertical: TextAlignVertical.top, + ), + ), + ), + const SizedBox(height: 24), + const CustomRuleDocs(), + const SizedBox(height: 16), + ], + ); + } +} \ No newline at end of file diff --git a/lib/widgets/tab_content_list.dart b/lib/widgets/tab_content_list.dart index 92b7913..0e09a4f 100644 --- a/lib/widgets/tab_content_list.dart +++ b/lib/widgets/tab_content_list.dart @@ -17,6 +17,7 @@ class CustomTabContentList extends StatelessWidget { final bool? fabVisible; final bool? noSliver; final EdgeInsets? listPadding; + final double? heightFabHidden; const CustomTabContentList({ super.key, @@ -31,7 +32,8 @@ class CustomTabContentList extends StatelessWidget { this.fab, this.fabVisible, this.noSliver, - this.listPadding + this.listPadding, + this.heightFabHidden, }); @override @@ -150,7 +152,7 @@ class CustomTabContentList extends StatelessWidget { bottom: fabVisible != null && fabVisible == true ? appConfigProvider.showingSnackbar ? 90 : 20 - : -90, + : (heightFabHidden ?? -90), right: 20, child: SafeArea(child: fab!) ), From ed0bc6528569569e4d7b11a8145ed6905035493d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 4 Feb 2024 21:28:08 +0100 Subject: [PATCH 092/236] Bug fixes --- lib/models/clients.dart | 4 +++- lib/models/server_status.dart | 2 +- lib/screens/settings/logs_settings/config_widgets.dart | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/models/clients.dart b/lib/models/clients.dart index 2ebcccd..9527804 100644 --- a/lib/models/clients.dart +++ b/lib/models/clients.dart @@ -130,7 +130,9 @@ class Client { ignoreStatistics: json["ignore_statistics"], upstreamsCacheEnabled: json["upstreams_cache_enabled"], upstreamsCacheSize: json["upstreams_cache_size"], - blockedServicesSchedule: BlockedServicesSchedule.fromJson(json["blocked_services_schedule"]) + blockedServicesSchedule: json["blocked_services_schedule"] != null + ? BlockedServicesSchedule.fromJson(json["blocked_services_schedule"]) + : null ); Map toJson() => { diff --git a/lib/models/server_status.dart b/lib/models/server_status.dart index fb7c1b4..16e20b4 100644 --- a/lib/models/server_status.dart +++ b/lib/models/server_status.dart @@ -66,6 +66,6 @@ class ServerStatus { safeSearchPixabay: json['safeSearch']['pixabay'], safeSearchYandex: json['safeSearch']['yandex'], safeSearchYoutube: json['safeSearch']['youtube'], - dhcpAvailable: json['status']['dhcp_available'] + dhcpAvailable: json['status']['dhcp_available'] ?? false ); } \ No newline at end of file diff --git a/lib/screens/settings/logs_settings/config_widgets.dart b/lib/screens/settings/logs_settings/config_widgets.dart index 5896a2b..002fd96 100644 --- a/lib/screens/settings/logs_settings/config_widgets.dart +++ b/lib/screens/settings/logs_settings/config_widgets.dart @@ -92,7 +92,7 @@ class LogsConfigOptions extends StatelessWidget { child: Text(dropdownItemTranslation[item.key]), )).toList(), value: retentionTime, - onChanged: (value) => updateRetentionTime(value as double), + onChanged: (value) => updateRetentionTime(double.tryParse(value.toString())), decoration: InputDecoration( border: const OutlineInputBorder( borderRadius: BorderRadius.all( From 3e152db6ac9c329dc4f1dee13dfce2701329cac2 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 7 Feb 2024 19:46:35 +0100 Subject: [PATCH 093/236] Added show and hide top items --- lib/l10n/app_en.arb | 4 +- lib/l10n/app_es.arb | 4 +- .../general_settings/general_settings.dart | 6 +- .../reorderable_top_items_home.dart | 174 ++++++++---------- .../show_hide_top_items_list.dart | 87 +++++++++ .../top_items_list_settings.dart | 131 +++++++++++++ lib/widgets/custom_switch_list_tile.dart | 15 +- 7 files changed, 317 insertions(+), 104 deletions(-) rename lib/screens/settings/general_settings/{ => top_items_list}/reorderable_top_items_home.dart (62%) create mode 100644 lib/screens/settings/general_settings/top_items_list/show_hide_top_items_list.dart create mode 100644 lib/screens/settings/general_settings/top_items_list/top_items_list_settings.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 4786d6b..6bb805e 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -769,5 +769,7 @@ "editCustomRules": "Edit custom rules", "savingCustomRules": "Saving custom rules...", "customRulesUpdatedSuccessfully": "Custom rules updated successfully", - "customRulesNotUpdated": "Custom rules could not be updated" + "customRulesNotUpdated": "Custom rules could not be updated", + "reorder": "Reorder", + "showHide": "Show/hide" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index d7ba7a0..afe0758 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -769,5 +769,7 @@ "editCustomRules": "Editar reglas personalizadas", "savingCustomRules": "Guardando reglas personalizadas...", "customRulesUpdatedSuccessfully": "Reglas personalizadas actualizadas correctamente", - "customRulesNotUpdated": "Las reglas personalizadas no pudieron ser actualizadas" + "customRulesNotUpdated": "Las reglas personalizadas no pudieron ser actualizadas", + "reorder": "Reordenar", + "showHide": "Mostrar/ocultar" } \ No newline at end of file diff --git a/lib/screens/settings/general_settings/general_settings.dart b/lib/screens/settings/general_settings/general_settings.dart index fb0560c..7439353 100644 --- a/lib/screens/settings/general_settings/general_settings.dart +++ b/lib/screens/settings/general_settings/general_settings.dart @@ -8,7 +8,7 @@ import 'package:provider/provider.dart'; import 'package:store_checker/store_checker.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:adguard_home_manager/screens/settings/general_settings/reorderable_top_items_home.dart'; +import 'package:adguard_home_manager/screens/settings/general_settings/top_items_list/top_items_list_settings.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; import 'package:adguard_home_manager/widgets/section_label.dart'; @@ -199,10 +199,10 @@ class _GeneralSettingsState extends State { title: AppLocalizations.of(context)!.topItemsOrder, subtitle: AppLocalizations.of(context)!.topItemsOrderDescription, onTap: () => widget.splitView == true - ? SplitView.of(context).push(const ReorderableTopItemsHome()) + ? SplitView.of(context).push(const TopItemsListSettings()) : Navigator.of(context).push( MaterialPageRoute( - builder: (context) => const ReorderableTopItemsHome() + builder: (context) => const TopItemsListSettings() ) ) ), diff --git a/lib/screens/settings/general_settings/reorderable_top_items_home.dart b/lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart similarity index 62% rename from lib/screens/settings/general_settings/reorderable_top_items_home.dart rename to lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart index 46e3a58..cdb39b7 100644 --- a/lib/screens/settings/general_settings/reorderable_top_items_home.dart +++ b/lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart @@ -1,6 +1,5 @@ import 'dart:io'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_reorderable_list/flutter_reorderable_list.dart' as reorderable_list; @@ -8,8 +7,6 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; -import 'package:adguard_home_manager/functions/desktop_mode.dart'; -import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; @@ -29,7 +26,14 @@ enum DraggingMode { } class ReorderableTopItemsHome extends StatefulWidget { - const ReorderableTopItemsHome({super.key}); + final List persistHomeTopItems; + final void Function(List value) setPersistHomeTopItems; + + const ReorderableTopItemsHome({ + super.key, + required this.persistHomeTopItems, + required this.setPersistHomeTopItems, + }); @override State createState() => _ReorderableTopItemsHomeState(); @@ -37,7 +41,6 @@ class ReorderableTopItemsHome extends StatefulWidget { class _ReorderableTopItemsHomeState extends State { List homeTopItemsList = []; - List persistHomeTopItemsList = []; List<_ItemData> renderItems = []; int _indexOfKey(Key key) { @@ -63,7 +66,7 @@ class _ReorderableTopItemsHomeState extends State { void _reorderDone(Key item) { renderItems[_indexOfKey(item)]; - setState(() => persistHomeTopItemsList = homeTopItemsList); + widget.setPersistHomeTopItems(homeTopItemsList); } List reorderEnumItems(int oldIndex, int newIndex) { @@ -75,10 +78,8 @@ class _ReorderableTopItemsHomeState extends State { @override void initState() { - final appConfigProvider = Provider.of(context, listen: false); - homeTopItemsList = appConfigProvider.homeTopItemsOrder; - persistHomeTopItemsList = appConfigProvider.homeTopItemsOrder; - renderItems = appConfigProvider.homeTopItemsOrder.asMap().entries.map( + homeTopItemsList = widget.persistHomeTopItems; + renderItems = widget.persistHomeTopItems.asMap().entries.map( (e) => _ItemData( key: ValueKey(e.key), title: e.value, @@ -136,99 +137,80 @@ class _ReorderableTopItemsHomeState extends State { } } - void saveSettings() async { - final result = await appConfigProvider.setHomeTopItemsOrder(homeTopItemsList); - if (!mounted) return; - if (result == true) { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.settingsSaved, - color: Colors.green - ); - } - else { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.settingsNotSaved, - color: Colors.red - ); - } - } + final draggingMode = Platform.isAndroid ? DraggingMode.android : DraggingMode.iOS; - return Scaffold( - appBar: AppBar( - title: Text(AppLocalizations.of(context)!.topItemsOrder), - surfaceTintColor: isDesktop(width) ? Colors.transparent : null, - actions: [ - IconButton( - onPressed: !listEquals(appConfigProvider.homeTopItemsOrder, persistHomeTopItemsList) - ? () => saveSettings() - : null, - icon: const Icon(Icons.save_rounded), - tooltip: AppLocalizations.of(context)!.save, - ), - const SizedBox(width: 8) - ], - ), - body: Column( - children: [ - Card( - margin: const EdgeInsets.all(16), - child: Padding( - padding: const EdgeInsets.all(16), - child: Row( - children: [ - Icon( - Icons.info_rounded, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - const SizedBox(width: 16), - Flexible( - child: Text(AppLocalizations.of(context)!.topItemsReorderInfo) - ) - ], - ), - ), - ), - Expanded( - child: reorderable_list.ReorderableList( - onReorder: _reorderCallback, - onReorderDone: _reorderDone, - child: ListView.builder( - itemBuilder: (context, index) => reorderable_list.ReorderableItem( - key: renderItems[index].key, - childBuilder: (context, state) { - if (draggingMode == DraggingMode.android) { - return reorderable_list.DelayedReorderableListener( - child: _Tile( - draggingMode: draggingMode, - isFirst: index == 0, - isLast: index == renderItems.length - 1, - state: state, - tileWidget: tile(renderItems[index].title), + return SafeArea( + top: false, + bottom: true, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + SliverList.list( + children: [ + Card( + margin: const EdgeInsets.all(16), + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Icon( + Icons.info_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, ), - ); - } - else { - return _Tile( - draggingMode: draggingMode, - isFirst: index == 0, - isLast: index == renderItems.length - 1, - state: state, - tileWidget: tile(renderItems[index].title), - ); - } - }, + const SizedBox(width: 16), + Flexible( + child: Text(AppLocalizations.of(context)!.topItemsReorderInfo) + ) + ], + ), + ), ), - itemCount: renderItems.length, - ) - ), - ), - ], + reorderable_list.ReorderableList( + onReorder: _reorderCallback, + onReorderDone: _reorderDone, + child: ListView.builder( + primary: false, + shrinkWrap: true, + padding: const EdgeInsets.only(top: 0), + itemBuilder: (context, index) => reorderable_list.ReorderableItem( + key: renderItems[index].key, + childBuilder: (context, state) { + if (draggingMode == DraggingMode.android) { + return reorderable_list.DelayedReorderableListener( + child: _Tile( + draggingMode: draggingMode, + isFirst: index == 0, + isLast: index == renderItems.length - 1, + state: state, + tileWidget: tile(renderItems[index].title), + ), + ); + } + else { + return _Tile( + draggingMode: draggingMode, + isFirst: index == 0, + isLast: index == renderItems.length - 1, + state: state, + tileWidget: tile(renderItems[index].title), + ); + } + }, + ), + itemCount: renderItems.length, + ) + ), + ] + ) + ], + ), ), ); } diff --git a/lib/screens/settings/general_settings/top_items_list/show_hide_top_items_list.dart b/lib/screens/settings/general_settings/top_items_list/show_hide_top_items_list.dart new file mode 100644 index 0000000..3088692 --- /dev/null +++ b/lib/screens/settings/general_settings/top_items_list/show_hide_top_items_list.dart @@ -0,0 +1,87 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/widgets/custom_switch_list_tile.dart'; +import 'package:adguard_home_manager/constants/enums.dart'; + +class ShowHideTopItemsList extends StatelessWidget { + final List enabledHomeTopItems; + final void Function(List) setEnabledHomeTopItems; + + const ShowHideTopItemsList({ + super.key, + required this.enabledHomeTopItems, + required this.setEnabledHomeTopItems, + }); + + @override + Widget build(BuildContext context) { + const padding = EdgeInsets.symmetric(horizontal: 16, vertical: 8); + + void updateValue(HomeTopItems value, bool newStatus) { + if (newStatus == true) { + setEnabledHomeTopItems([ + ...enabledHomeTopItems, + value + ]); + } + else { + setEnabledHomeTopItems(enabledHomeTopItems.where((e) => e != value).toList()); + } + } + + return SafeArea( + top: false, + bottom: true, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + SliverList.list( + children: [ + const SizedBox(height: 8), + CustomSwitchListTile( + value: enabledHomeTopItems.contains(HomeTopItems.queriedDomains), + onChanged: (v) => updateValue(HomeTopItems.queriedDomains, v), + title: AppLocalizations.of(context)!.topQueriedDomains, + leadingIcon: Icons.install_desktop_outlined, + padding: padding, + ), + CustomSwitchListTile( + value: enabledHomeTopItems.contains(HomeTopItems.blockedDomains), + onChanged: (v) => updateValue(HomeTopItems.blockedDomains, v), + title: AppLocalizations.of(context)!.topBlockedDomains, + leadingIcon: Icons.block_rounded, + padding: padding, + ), + CustomSwitchListTile( + value: enabledHomeTopItems.contains(HomeTopItems.recurrentClients), + onChanged: (v) => updateValue(HomeTopItems.recurrentClients, v), + title: AppLocalizations.of(context)!.topClients, + leadingIcon: Icons.smartphone_rounded, + padding: padding, + ), + CustomSwitchListTile( + value: enabledHomeTopItems.contains(HomeTopItems.topUpstreams), + onChanged: (v) => updateValue(HomeTopItems.topUpstreams, v), + title: AppLocalizations.of(context)!.topUpstreams, + leadingIcon: Icons.upload_file_rounded, + padding: padding, + ), + CustomSwitchListTile( + value: enabledHomeTopItems.contains(HomeTopItems.avgUpstreamResponseTime), + onChanged: (v) => updateValue(HomeTopItems.avgUpstreamResponseTime, v), + title: AppLocalizations.of(context)!.averageUpstreamResponseTime, + leadingIcon: Icons.timer_rounded, + padding: padding, + ), + ] + ) + ], + ), + ) + ); + } +} \ No newline at end of file diff --git a/lib/screens/settings/general_settings/top_items_list/top_items_list_settings.dart b/lib/screens/settings/general_settings/top_items_list/top_items_list_settings.dart new file mode 100644 index 0000000..9e9c836 --- /dev/null +++ b/lib/screens/settings/general_settings/top_items_list/top_items_list_settings.dart @@ -0,0 +1,131 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/screens/settings/general_settings/top_items_list/show_hide_top_items_list.dart'; +import 'package:adguard_home_manager/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart'; + +import 'package:adguard_home_manager/constants/enums.dart'; +import 'package:adguard_home_manager/functions/desktop_mode.dart'; +import 'package:adguard_home_manager/functions/snackbar.dart'; +import 'package:adguard_home_manager/providers/app_config_provider.dart'; + +class TopItemsListSettings extends StatefulWidget { + const TopItemsListSettings({super.key}); + + @override + State createState() => _TopItemsListSettingsState(); +} + +class _TopItemsListSettingsState extends State with TickerProviderStateMixin { + late TabController _tabController; + + List persistHomeTopItemsList = []; + + @override + void initState() { + final appConfigProvider = Provider.of(context, listen: false); + persistHomeTopItemsList = appConfigProvider.homeTopItemsOrder; + + super.initState(); + + _tabController = TabController(length: 2, vsync: this); + } + + @override + Widget build(BuildContext context) { + final appConfigProvider = Provider.of(context); + + final width = MediaQuery.of(context).size.width; + + void saveSettings() async { + final result = await appConfigProvider.setHomeTopItemsOrder(persistHomeTopItemsList); + if (!context.mounted) return; + if (result == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.settingsSaved, + color: Colors.green + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.settingsNotSaved, + color: Colors.red + ); + } + } + + return Scaffold( + body: DefaultTabController( + length: 2, + child: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar( + pinned: true, + floating: true, + centerTitle: false, + forceElevated: innerBoxIsScrolled, + surfaceTintColor: isDesktop(width) ? Colors.transparent : null, + title: Text(AppLocalizations.of(context)!.topItemsOrder), + actions: [ + IconButton( + onPressed: !listEquals(appConfigProvider.homeTopItemsOrder, persistHomeTopItemsList) + ? () => saveSettings() + : null, + icon: const Icon(Icons.save_rounded), + tooltip: AppLocalizations.of(context)!.save, + ), + const SizedBox(width: 8) + ], + bottom: TabBar( + controller: _tabController, + unselectedLabelColor: Theme.of(context).colorScheme.onSurfaceVariant, + tabs: [ + Tab( + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon(Icons.reorder_rounded), + const SizedBox(width: 8), + Text(AppLocalizations.of(context)!.reorder) + ], + ), + ), + Tab( + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon(Icons.remove_red_eye_rounded), + const SizedBox(width: 8), + Text(AppLocalizations.of(context)!.showHide) + ], + ), + ), + ] + ) + ), + ) + ], + body: TabBarView( + controller: _tabController, + children: [ + ReorderableTopItemsHome( + persistHomeTopItems: persistHomeTopItemsList, + setPersistHomeTopItems: (v) => setState(() => persistHomeTopItemsList = v), + ), + ShowHideTopItemsList( + enabledHomeTopItems: persistHomeTopItemsList, + setEnabledHomeTopItems: (v) => setState(() => persistHomeTopItemsList = v), + ) + ] + ) + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/widgets/custom_switch_list_tile.dart b/lib/widgets/custom_switch_list_tile.dart index 84db718..84e65c5 100644 --- a/lib/widgets/custom_switch_list_tile.dart +++ b/lib/widgets/custom_switch_list_tile.dart @@ -7,16 +7,18 @@ class CustomSwitchListTile extends StatelessWidget { final String? subtitle; final bool? disabled; final EdgeInsets? padding; + final IconData? leadingIcon; const CustomSwitchListTile({ - Key? key, + super.key, required this.value, required this.onChanged, required this.title, this.disabled, this.subtitle, - this.padding - }) : super(key: key); + this.padding, + this.leadingIcon, + }); @override Widget build(BuildContext context) { @@ -33,6 +35,13 @@ class CustomSwitchListTile extends StatelessWidget { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ + if (leadingIcon != null) ...[ + Icon( + leadingIcon, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + const SizedBox(width: 16), + ], Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, From 5ca3c04c89fedb5e469bab323d8f979465d96376 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 7 Feb 2024 19:49:25 +0100 Subject: [PATCH 094/236] Improvements --- .../reorderable_top_items_home.dart | 115 +++++++++--------- 1 file changed, 58 insertions(+), 57 deletions(-) diff --git a/lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart b/lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart index cdb39b7..dc513a7 100644 --- a/lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart +++ b/lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart @@ -1,14 +1,12 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; import 'package:flutter_reorderable_list/flutter_reorderable_list.dart' as reorderable_list; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; import 'package:adguard_home_manager/constants/enums.dart'; -import 'package:adguard_home_manager/providers/app_config_provider.dart'; class _ItemData { final HomeTopItems title; @@ -90,55 +88,7 @@ class _ReorderableTopItemsHomeState extends State { } @override - Widget build(BuildContext context) { - final appConfigProvider = Provider.of(context); - - final width = MediaQuery.of(context).size.width; - - Widget tile(HomeTopItems title) { - switch (title) { - case HomeTopItems.queriedDomains: - return CustomListTile( - title: AppLocalizations.of(context)!.topQueriedDomains, - icon: Icons.install_desktop_outlined, - padding: const EdgeInsets.all(16) - ); - - case HomeTopItems.blockedDomains: - return CustomListTile( - title: AppLocalizations.of(context)!.topBlockedDomains, - icon: Icons.block_rounded, - padding: const EdgeInsets.all(16) - ); - - case HomeTopItems.recurrentClients: - return CustomListTile( - title: AppLocalizations.of(context)!.topClients, - icon: Icons.smartphone_rounded, - padding: const EdgeInsets.all(16) - ); - - case HomeTopItems.topUpstreams: - return CustomListTile( - title: AppLocalizations.of(context)!.topUpstreams, - icon: Icons.upload_file_rounded, - padding: const EdgeInsets.all(16) - ); - - case HomeTopItems.avgUpstreamResponseTime: - return CustomListTile( - title: AppLocalizations.of(context)!.averageUpstreamResponseTime, - icon: Icons.timer_rounded, - padding: const EdgeInsets.all(16) - ); - - default: - return const SizedBox(); - } - } - - - + Widget build(BuildContext context) { final draggingMode = Platform.isAndroid ? DraggingMode.android : DraggingMode.iOS; @@ -184,22 +134,22 @@ class _ReorderableTopItemsHomeState extends State { childBuilder: (context, state) { if (draggingMode == DraggingMode.android) { return reorderable_list.DelayedReorderableListener( - child: _Tile( + child: _ReorderableTile( draggingMode: draggingMode, isFirst: index == 0, isLast: index == renderItems.length - 1, state: state, - tileWidget: tile(renderItems[index].title), + tileWidget: _TopItemTile(tile: renderItems[index].title), ), ); } else { - return _Tile( + return _ReorderableTile( draggingMode: draggingMode, isFirst: index == 0, isLast: index == renderItems.length - 1, state: state, - tileWidget: tile(renderItems[index].title), + tileWidget: _TopItemTile(tile: renderItems[index].title), ); } }, @@ -216,14 +166,65 @@ class _ReorderableTopItemsHomeState extends State { } } -class _Tile extends StatelessWidget { +class _TopItemTile extends StatelessWidget { + final HomeTopItems tile; + + const _TopItemTile({ + required this.tile, + }); + + @override + Widget build(BuildContext context) { + switch (tile) { + case HomeTopItems.queriedDomains: + return CustomListTile( + title: AppLocalizations.of(context)!.topQueriedDomains, + icon: Icons.install_desktop_outlined, + padding: const EdgeInsets.all(16) + ); + + case HomeTopItems.blockedDomains: + return CustomListTile( + title: AppLocalizations.of(context)!.topBlockedDomains, + icon: Icons.block_rounded, + padding: const EdgeInsets.all(16) + ); + + case HomeTopItems.recurrentClients: + return CustomListTile( + title: AppLocalizations.of(context)!.topClients, + icon: Icons.smartphone_rounded, + padding: const EdgeInsets.all(16) + ); + + case HomeTopItems.topUpstreams: + return CustomListTile( + title: AppLocalizations.of(context)!.topUpstreams, + icon: Icons.upload_file_rounded, + padding: const EdgeInsets.all(16) + ); + + case HomeTopItems.avgUpstreamResponseTime: + return CustomListTile( + title: AppLocalizations.of(context)!.averageUpstreamResponseTime, + icon: Icons.timer_rounded, + padding: const EdgeInsets.all(16) + ); + + default: + return const SizedBox(); + } + } +} + +class _ReorderableTile extends StatelessWidget { final Widget tileWidget; final bool isFirst; final bool isLast; final reorderable_list.ReorderableItemState state; final DraggingMode draggingMode; - const _Tile({ + const _ReorderableTile({ required this.tileWidget, required this.isFirst, required this.isLast, From 11dd6b23bd806cb6f0417580048f7d0c3d7753a5 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 7 Feb 2024 19:55:44 +0100 Subject: [PATCH 095/236] Added no items to reorder message --- lib/l10n/app_en.arb | 3 ++- lib/l10n/app_es.arb | 3 ++- lib/providers/app_config_provider.dart | 7 +------ .../reorderable_top_items_home.dart | 21 ++++++++++++++++++- 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 6bb805e..a928180 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -771,5 +771,6 @@ "customRulesUpdatedSuccessfully": "Custom rules updated successfully", "customRulesNotUpdated": "Custom rules could not be updated", "reorder": "Reorder", - "showHide": "Show/hide" + "showHide": "Show/hide", + "noElementsReorderMessage": "Enable some elements on the show/hide tab to reorder them here." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index afe0758..b744b99 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -771,5 +771,6 @@ "customRulesUpdatedSuccessfully": "Reglas personalizadas actualizadas correctamente", "customRulesNotUpdated": "Las reglas personalizadas no pudieron ser actualizadas", "reorder": "Reordenar", - "showHide": "Mostrar/ocultar" + "showHide": "Mostrar/ocultar", + "noElementsReorderMessage": "Activa algunos elementos en la pestaña de mostrar/ocultar para reordenarlos aquí." } \ No newline at end of file diff --git a/lib/providers/app_config_provider.dart b/lib/providers/app_config_provider.dart index 6b73520..f31eb3c 100644 --- a/lib/providers/app_config_provider.dart +++ b/lib/providers/app_config_provider.dart @@ -370,7 +370,7 @@ class AppConfigProvider with ChangeNotifier { _hideServerAddress = sharedPreferencesInstance.getBool('hideServerAddress') ?? false; if (sharedPreferencesInstance.getStringList('homeTopItemsOrder') != null) { try { - final itemsOrder = List.from( + _homeTopItemsOrder = List.from( List.from(sharedPreferencesInstance.getStringList('homeTopItemsOrder')!).map((e) { switch (e) { case 'queriedDomains': @@ -393,11 +393,6 @@ class AppConfigProvider with ChangeNotifier { } }).where((e) => e != null).toList() ); - final missingItems = homeTopItemsDefaultOrder.where((e) => !itemsOrder.contains(e)); - _homeTopItemsOrder = [ - ...itemsOrder, - ...missingItems - ]; } catch (e) { Sentry.captureException(e); _homeTopItemsOrder = homeTopItemsDefaultOrder; diff --git a/lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart b/lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart index dc513a7..332a64b 100644 --- a/lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart +++ b/lib/screens/settings/general_settings/top_items_list/reorderable_top_items_home.dart @@ -122,7 +122,26 @@ class _ReorderableTopItemsHomeState extends State { ), ), ), - reorderable_list.ReorderableList( + if (homeTopItemsList.isEmpty) Padding( + padding: const EdgeInsets.all(16), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.max, + children: [ + Center( + child: Text( + AppLocalizations.of(context)!.noElementsReorderMessage, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + ), + ], + ), + ), + if (homeTopItemsList.isNotEmpty) reorderable_list.ReorderableList( onReorder: _reorderCallback, onReorderDone: _reorderDone, child: ListView.builder( From b977aed9bdff67a5f2cfee888d07431569015632 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 7 Feb 2024 19:57:54 +0100 Subject: [PATCH 096/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 32eca7e..c9ad2f4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.16.0-beta.1+127 +version: 2.16.0-beta.2+128 environment: sdk: '>=2.18.1 <3.0.0' From 3f057062f12a56d4906d160077f8d21cee9fe307 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 7 Feb 2024 23:35:20 +0100 Subject: [PATCH 097/236] Added plain dns control --- lib/l10n/app_en.arb | 4 +++- lib/l10n/app_es.arb | 4 +++- lib/models/encryption.dart | 4 ++++ lib/screens/settings/encryption/encryption.dart | 15 +++++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index a928180..1869104 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -772,5 +772,7 @@ "customRulesNotUpdated": "Custom rules could not be updated", "reorder": "Reorder", "showHide": "Show/hide", - "noElementsReorderMessage": "Enable some elements on the show/hide tab to reorder them here." + "noElementsReorderMessage": "Enable some elements on the show/hide tab to reorder them here.", + "enablePlainDns": "Enable plain DNS", + "enablePlainDnsDescription": "Plain DNS is enabled by default. You can disable it to force all devices to use encrypted DNS. To do this, you must enable at least one encrypted DNS protocol." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index b744b99..7070fea 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -772,5 +772,7 @@ "customRulesNotUpdated": "Las reglas personalizadas no pudieron ser actualizadas", "reorder": "Reordenar", "showHide": "Mostrar/ocultar", - "noElementsReorderMessage": "Activa algunos elementos en la pestaña de mostrar/ocultar para reordenarlos aquí." + "noElementsReorderMessage": "Activa algunos elementos en la pestaña de mostrar/ocultar para reordenarlos aquí.", + "enablePlainDns": "Activar DNS simple (sin cifrado)", + "enablePlainDnsDescription": "El DNS simple (sin cifrado) está activado de forma predeterminada. Puedes desactivarlo para obligar a todos los dispositivos a utilizar DNS cifrado. Para ello, debes habilitar al menos un protocolo DNS cifrado." } \ No newline at end of file diff --git a/lib/models/encryption.dart b/lib/models/encryption.dart index 1315868..5fff3e0 100644 --- a/lib/models/encryption.dart +++ b/lib/models/encryption.dart @@ -39,6 +39,7 @@ class EncryptionData { final String certificatePath; final String privateKeyPath; final bool privateKeySaved; + final bool? servePlainDns; EncryptionData({ required this.validCert, @@ -65,6 +66,7 @@ class EncryptionData { required this.certificatePath, required this.privateKeyPath, required this.privateKeySaved, + required this.servePlainDns, }); @@ -93,6 +95,7 @@ class EncryptionData { certificatePath: json["certificate_path"], privateKeyPath: json["private_key_path"], privateKeySaved: json["private_key_saved"], + servePlainDns: json["serve_plain_dns"], ); Map toJson() => { @@ -120,6 +123,7 @@ class EncryptionData { "certificate_path": certificatePath, "private_key_path": privateKeyPath, "private_key_saved": privateKeySaved, + "serve_plain_dns": servePlainDns, }; } diff --git a/lib/screens/settings/encryption/encryption.dart b/lib/screens/settings/encryption/encryption.dart index 1efdad4..1929ef7 100644 --- a/lib/screens/settings/encryption/encryption.dart +++ b/lib/screens/settings/encryption/encryption.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; import 'package:adguard_home_manager/widgets/section_label.dart'; import 'package:adguard_home_manager/widgets/custom_switch_list_tile.dart'; import 'package:adguard_home_manager/screens/settings/encryption/status.dart'; @@ -35,6 +36,8 @@ class _EncryptionSettingsState extends State { bool enabled = false; + bool? _plainDns; + final TextEditingController domainNameController = TextEditingController(); String? domainError; @@ -112,6 +115,7 @@ class _EncryptionSettingsState extends State { privateKeyPathController.text = data.privateKeyPath; } usePreviouslySavedKey = data.privateKeySaved; + _plainDns = data.servePlainDns; loadStatus = LoadStatus.loaded; }); } @@ -224,6 +228,7 @@ class _EncryptionSettingsState extends State { "private_key_saved": usePreviouslySavedKey, "certificate_path": certificatePathController.text, "private_key_path": privateKeyPathController.text, + "serve_plain_dns": _plainDns } ); @@ -271,6 +276,7 @@ class _EncryptionSettingsState extends State { "private_key_saved": false, "certificate_path": "", "private_key_path": "", + "serve_plain_dns": true } ); if (!mounted) return; @@ -372,6 +378,15 @@ class _EncryptionSettingsState extends State { onEditValidate(); } ), + if (_plainDns != null) ...[ + const SizedBox(height: 8), + CustomCheckboxListTile( + value: _plainDns!, + onChanged: (v) => setState(() => _plainDns = v), + title: AppLocalizations.of(context)!.enablePlainDns, + subtitle: AppLocalizations.of(context)!.enablePlainDnsDescription, + ), + ], SectionLabel( label: AppLocalizations.of(context)!.serverConfiguration, padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), From 2f4bf402fe53fc55095c15df4acad4a7b3f5f315 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 7 Feb 2024 23:44:32 +0100 Subject: [PATCH 098/236] Fix keyboard closes on edit encryption --- lib/screens/settings/encryption/encryption.dart | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/screens/settings/encryption/encryption.dart b/lib/screens/settings/encryption/encryption.dart index 1929ef7..3c678b8 100644 --- a/lib/screens/settings/encryption/encryption.dart +++ b/lib/screens/settings/encryption/encryption.dart @@ -73,7 +73,7 @@ class _EncryptionSettingsState extends State { bool localValidationValid = false; String? validDataError; - int certKeyValidApi = 0; + bool _dataValidApi = true; EncryptionValidation? certKeyValid; String? encryptionResultMessage; @@ -125,8 +125,6 @@ class _EncryptionSettingsState extends State { } Future checkValidDataApi({Map? data}) async { - setState(() => certKeyValidApi = 0); - final result = await Provider.of(context, listen: false).apiClient2!.checkEncryptionSettings( data: data ?? { "enabled": enabled, @@ -150,11 +148,11 @@ class _EncryptionSettingsState extends State { final object = data.encryptionValidation!; setState(() { if (object.warningValidation != null && object.warningValidation != '') { - certKeyValidApi = 2; + _dataValidApi = false; validDataError = object.warningValidation; } else { - certKeyValidApi = 1; + _dataValidApi = true; validDataError = null; } certKeyValid = object; @@ -163,7 +161,7 @@ class _EncryptionSettingsState extends State { else { setState(() { encryptionResultMessage = data.message; - certKeyValidApi = 2; + _dataValidApi = false; }); } } @@ -351,7 +349,7 @@ class _EncryptionSettingsState extends State { case LoadStatus.loaded: return ListView( children: [ - if (certKeyValidApi == 2 && (validDataError != null || encryptionResultMessage != null)) Card( + if (_dataValidApi == false && (validDataError != null || encryptionResultMessage != null)) Card( margin: const EdgeInsets.all(16), color: Colors.red.withOpacity(0.2), elevation: 0, From 7d2da49bc86969f1e48c33f45d4f2d3aad6bb393 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 8 Feb 2024 00:25:58 +0100 Subject: [PATCH 099/236] Changed logs search --- .../logs/filters/logs_filters_modal.dart | 67 +--------- lib/screens/logs/logs_list_appbar.dart | 124 ++++++++++++++++-- 2 files changed, 122 insertions(+), 69 deletions(-) diff --git a/lib/screens/logs/filters/logs_filters_modal.dart b/lib/screens/logs/filters/logs_filters_modal.dart index b02dbd2..b506cff 100644 --- a/lib/screens/logs/filters/logs_filters_modal.dart +++ b/lib/screens/logs/filters/logs_filters_modal.dart @@ -15,7 +15,7 @@ import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/providers/clients_provider.dart'; import 'package:adguard_home_manager/providers/logs_provider.dart'; -class LogsFiltersModal extends StatefulWidget { +class LogsFiltersModal extends StatelessWidget { final bool dialog; const LogsFiltersModal({ @@ -23,22 +23,9 @@ class LogsFiltersModal extends StatefulWidget { required this.dialog }); - @override - State createState() => _LogsFiltersModalState(); -} - -class _LogsFiltersModalState extends State { - TextEditingController searchController = TextEditingController(); - - @override - void initState() { - searchController.text = Provider.of(context, listen: false).searchText ?? ''; - super.initState(); - } - @override Widget build(BuildContext context) { - if (widget.dialog == true) { + if (dialog == true) { return Padding( padding: MediaQuery.of(context).viewInsets, child: Dialog( @@ -46,10 +33,7 @@ class _LogsFiltersModalState extends State { constraints: const BoxConstraints( maxWidth: 500 ), - child: _FiltersList( - searchController: searchController, - onClearSearch: () => setState(() => searchController.text = "") - ) + child: const _FiltersList() ) ), ); @@ -65,11 +49,8 @@ class _LogsFiltersModalState extends State { topRight: Radius.circular(28) ) ), - child: SafeArea( - child: _FiltersList( - searchController: searchController, - onClearSearch: () => setState(() => searchController.text = "") - ), + child: const SafeArea( + child: _FiltersList(), ) ), ); @@ -78,13 +59,7 @@ class _LogsFiltersModalState extends State { } class _FiltersList extends StatelessWidget { - final TextEditingController searchController; - final void Function() onClearSearch; - - const _FiltersList({ - required this.searchController, - required this.onClearSearch, - }); + const _FiltersList(); @override Widget build(BuildContext context) { @@ -194,35 +169,6 @@ class _FiltersList extends StatelessWidget { ), ], ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: Row( - children: [ - Expanded( - child: TextFormField( - controller: searchController, - onChanged: logsProvider.setSearchText, - decoration: InputDecoration( - prefixIcon: const Icon(Icons.search_rounded), - border: const OutlineInputBorder( - borderRadius: BorderRadius.all( - Radius.circular(10) - ) - ), - labelText: AppLocalizations.of(context)!.search, - suffixIcon: IconButton( - onPressed: () { - onClearSearch(); - logsProvider.setSearchText(null); - }, - icon: const Icon(Icons.clear) - ), - ), - ), - ) - ], - ), - ), Container(height: 16), CustomListTile( title: AppLocalizations.of(context)!.client, @@ -300,7 +246,6 @@ class _FiltersList extends StatelessWidget { children: [ TextButton( onPressed: () { - searchController.text = ""; logsProvider.requestResetFilters(); }, child: Text(AppLocalizations.of(context)!.resetFilters) diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index 01a870c..ee4dfd1 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -76,14 +76,31 @@ class LogsListAppBar extends StatelessWidget { icon: const Icon(Icons.refresh_rounded), tooltip: AppLocalizations.of(context)!.refresh, ), - logsProvider.loadStatus == LoadStatus.loaded - ? IconButton( - onPressed: openFilersModal, - icon: const Icon(Icons.filter_list_rounded), - tooltip: AppLocalizations.of(context)!.filters, - ) - : const SizedBox(), - const SizedBox(width: 5), + if (logsProvider.loadStatus == LoadStatus.loaded) IconButton( + onPressed: () => showDialog( + context: context, + builder: (context) => _Search( + onSearch: (v) { + logsProvider.setAppliedFilters( + AppliedFiters( + selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus, + searchText: v != "" ? v : null, + clients: logsProvider.appliedFilters.clients + ) + ); + logsProvider.filterLogs(); + }, + ), + ), + icon: const Icon(Icons.search_rounded), + tooltip: AppLocalizations.of(context)!.search, + ), + if (logsProvider.loadStatus == LoadStatus.loaded) IconButton( + onPressed: openFilersModal, + icon: const Icon(Icons.filter_list_rounded), + tooltip: AppLocalizations.of(context)!.filters, + ), + const SizedBox(width: 8), ], bottom: logsProvider.appliedFilters.searchText != null || logsProvider.appliedFilters.selectedResultStatus != 'all' || logsProvider.appliedFilters.clients.isNotEmpty ? PreferredSize( @@ -213,4 +230,95 @@ class LogsListAppBar extends StatelessWidget { : null, ); } +} + +class _Search extends StatefulWidget { + final void Function(String) onSearch; + + const _Search({ + required this.onSearch + }); + + @override + State<_Search> createState() => _SearchState(); +} + +class _SearchState extends State<_Search> { + final _searchController = TextEditingController(); + + @override + void initState() { + final logsProvider = Provider.of(context, listen: false); + _searchController.text = logsProvider.appliedFilters.searchText ?? ""; + + super.initState(); + } + + @override + Widget build(BuildContext context) { + final logsProvider = Provider.of(context); + + return GestureDetector( + onTap: () => Navigator.pop(context), + child: Material( + color: Colors.transparent, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + GestureDetector( + onTap: () => {}, + child: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 500), + child: Container( + margin: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, + borderRadius: BorderRadius.circular(16) + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(16), + child: TextFormField( + controller: _searchController, + onChanged: (v) { + if (v == "") { + logsProvider.setSearchText(null); + return; + } + logsProvider.setSearchText(v); + }, + onFieldSubmitted: (v) { + widget.onSearch(v); + Navigator.pop(context); + }, + autofocus: true, + decoration: InputDecoration( + hintText: AppLocalizations.of(context)!.search, + prefixIcon: const Icon(Icons.search_rounded), + border: InputBorder.none, + filled: true, + fillColor: Colors.grey.withOpacity(0.2), + suffixIcon: _searchController.text != "" + ? IconButton( + onPressed: () { + _searchController.text = ""; + logsProvider.setSearchText(null); + }, + icon: const Icon( + Icons.close_rounded, + size: 20, + ), + tooltip: AppLocalizations.of(context)!.clearSearch, + ) + : null + ), + ), + ), + ), + ), + ) + ], + ), + ), + ); + } } \ No newline at end of file From 6e8ecf11a0d3eb81a2123546e9c2b2cbd4da078d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 8 Feb 2024 00:28:05 +0100 Subject: [PATCH 100/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index c9ad2f4..5b76b9a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.16.0-beta.2+128 +version: 2.16.0-beta.3+129 environment: sdk: '>=2.18.1 <3.0.0' From 5f4580b6a063c002341a2a37fd634494efabcb54 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo <47545344+JGeek00@users.noreply.github.com> Date: Thu, 8 Feb 2024 00:54:07 +0100 Subject: [PATCH 101/236] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..53a21e8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**App info (please complete the following information):** + - OS version: [e.g. iOS 17.2] + - App version [e.g. v2.16.0] + +**Additional context** +Add any other context about the problem here. From 5dbe1e3f740e5eb583366bdb12ba15abdcf9a9f0 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 8 Feb 2024 01:02:11 +0100 Subject: [PATCH 102/236] Updated bug template --- .github/ISSUE_TEMPLATE/bug_report.md | 31 ------------------- .github/ISSUE_TEMPLATE/bug_report.yml | 43 +++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 31 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 53a21e8..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: bug -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**App info (please complete the following information):** - - OS version: [e.g. iOS 17.2] - - App version [e.g. v2.16.0] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..4bd774c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,43 @@ +name: Report a bug +description: | + You detected something wrong on the application. +body: + - type: textarea + attributes: + label: Steps to reproduce + description: Steps to reproduce the problem you are running into. + placeholder: | + 1. ... + 2. ... + 3. ... + validations: + required: true + - type: textarea + attributes: + label: Expected results + description: What is expected to happen. + validations: + required: true + - type: textarea + attributes: + label: Actual results + description: What is actually happening. + validations: + required: true + - type: textarea + attributes: + label: Screenshots or Video + description: | + Upload any screenshots or video of the bug. + value: | + Screenshots or video demonstration + required: true + - type: textarea + attributes: + label: App and OS details + description: | + Some details about the app version and the OS where you are running the application. + value: | + - App version: (eg: v2.16.0) + - Device OS version: (eg: Android 14) + required: true \ No newline at end of file From 034280afa80525d99b1852f80de31f7879813ab2 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 8 Feb 2024 01:05:24 +0100 Subject: [PATCH 103/236] Updated bug template --- .github/ISSUE_TEMPLATE/bug_report.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 4bd774c..a50a380 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,8 +1,11 @@ name: Report a bug description: | You detected something wrong on the application. +title: "[Bug]: " +labels: ["bug"] body: - type: textarea + id: steps attributes: label: Steps to reproduce description: Steps to reproduce the problem you are running into. @@ -13,18 +16,21 @@ body: validations: required: true - type: textarea + id: expected-results attributes: label: Expected results description: What is expected to happen. validations: required: true - type: textarea + id: actual-results attributes: label: Actual results description: What is actually happening. validations: required: true - type: textarea + id: screenshots attributes: label: Screenshots or Video description: | @@ -33,6 +39,7 @@ body: Screenshots or video demonstration required: true - type: textarea + id: app-os-details attributes: label: App and OS details description: | From 7fa5eee0143347232934fb7b4b57a862a9848758 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 8 Feb 2024 01:08:02 +0100 Subject: [PATCH 104/236] Updated bug template --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index a50a380..ff90375 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -47,4 +47,5 @@ body: value: | - App version: (eg: v2.16.0) - Device OS version: (eg: Android 14) + validations: required: true \ No newline at end of file From c249b757b25fc1c15a70883e9c1d4054251c9502 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 8 Feb 2024 01:08:34 +0100 Subject: [PATCH 105/236] Updated bug template --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index ff90375..e5406c3 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -37,6 +37,7 @@ body: Upload any screenshots or video of the bug. value: | Screenshots or video demonstration + validations: required: true - type: textarea id: app-os-details From d51964de32f44fcfc55aa63cefc1447b896de87b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 8 Feb 2024 01:14:09 +0100 Subject: [PATCH 106/236] Added agh feature request --- .../ISSUE_TEMPLATE/feature_request_agh.yml | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/feature_request_agh.yml diff --git a/.github/ISSUE_TEMPLATE/feature_request_agh.yml b/.github/ISSUE_TEMPLATE/feature_request_agh.yml new file mode 100644 index 0000000..aeaf999 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request_agh.yml @@ -0,0 +1,33 @@ +name: Request a new feature that has been added to AdGuard Home +description: | + The AdGuard Home team added recently a new feature that you want on the app. +title: "[AGH Feature Request]: " +labels: ["feature request"] +body: + - type: textarea + id: description + attributes: + label: Description + description: Describe the feature that you want on the app. + placeholder: | + Write the details here... + validations: + required: true + - type: textarea + id: screenshots + attributes: + label: Screenshots + description: Attach some screenshots of where that new feature is located on the web administration panel. + placeholder: | + Screenshots here. + validations: + required: true + - type: textarea + id: version-introduced + attributes: + label: Version where feature was introduced + description: Version of the AdGuard Home server where this feature was introduced. + placeholder: | + - Version: (eg: v0.107.44) + validations: + required: true \ No newline at end of file From a2d8e9d1c18e9b94cdb73827890dd448e1807081 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 8 Feb 2024 01:20:11 +0100 Subject: [PATCH 107/236] Added app feature request --- .../ISSUE_TEMPLATE/feature_request_app.yml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/feature_request_app.yml diff --git a/.github/ISSUE_TEMPLATE/feature_request_app.yml b/.github/ISSUE_TEMPLATE/feature_request_app.yml new file mode 100644 index 0000000..0323540 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request_app.yml @@ -0,0 +1,20 @@ +name: Request a new feature or an improvement for the app itself +description: | + You want a new feature for the application, or an improvement for an existing one. +title: "[App Feature Request]: " +labels: ["feature request"] +body: + - type: markdown + attributes: + value: | + ℹ️ IMPORTANT INFO ℹ️ + Please note that if the functionality is related to data representation, it may not be implemented, as AdGuard Home Manager depends on the capabilities of the AdGuard Home API. + - type: textarea + id: description + attributes: + label: Description + description: Describe the feature that you want on the app. + placeholder: | + Write the details here... + validations: + required: true \ No newline at end of file From 0dc10abc29e55d9b3edcf1935732085dd6628888 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 8 Feb 2024 01:21:53 +0100 Subject: [PATCH 108/236] Fix template --- .github/ISSUE_TEMPLATE/feature_request_app.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request_app.yml b/.github/ISSUE_TEMPLATE/feature_request_app.yml index 0323540..b558105 100644 --- a/.github/ISSUE_TEMPLATE/feature_request_app.yml +++ b/.github/ISSUE_TEMPLATE/feature_request_app.yml @@ -4,7 +4,8 @@ description: | title: "[App Feature Request]: " labels: ["feature request"] body: - - type: markdown + - type: markdown + id: important-info attributes: value: | ℹ️ IMPORTANT INFO ℹ️ From 00f77fc12c43cbf9e2eac2a189f1dc33fd4c435d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 8 Feb 2024 01:28:38 +0100 Subject: [PATCH 109/236] Updated templates --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 - .../ISSUE_TEMPLATE/feature_request_agh.yml | 3 +-- .../ISSUE_TEMPLATE/feature_request_app.yml | 3 +-- .github/ISSUE_TEMPLATE/question.yml | 19 +++++++++++++++++++ 4 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/question.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index e5406c3..cf174cb 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,7 +1,6 @@ name: Report a bug description: | You detected something wrong on the application. -title: "[Bug]: " labels: ["bug"] body: - type: textarea diff --git a/.github/ISSUE_TEMPLATE/feature_request_agh.yml b/.github/ISSUE_TEMPLATE/feature_request_agh.yml index aeaf999..55972db 100644 --- a/.github/ISSUE_TEMPLATE/feature_request_agh.yml +++ b/.github/ISSUE_TEMPLATE/feature_request_agh.yml @@ -1,8 +1,7 @@ name: Request a new feature that has been added to AdGuard Home description: | The AdGuard Home team added recently a new feature that you want on the app. -title: "[AGH Feature Request]: " -labels: ["feature request"] +labels: ["agh feature request"] body: - type: textarea id: description diff --git a/.github/ISSUE_TEMPLATE/feature_request_app.yml b/.github/ISSUE_TEMPLATE/feature_request_app.yml index b558105..3cf08e6 100644 --- a/.github/ISSUE_TEMPLATE/feature_request_app.yml +++ b/.github/ISSUE_TEMPLATE/feature_request_app.yml @@ -1,8 +1,7 @@ name: Request a new feature or an improvement for the app itself description: | You want a new feature for the application, or an improvement for an existing one. -title: "[App Feature Request]: " -labels: ["feature request"] +labels: ["app feature request"] body: - type: markdown id: important-info diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml new file mode 100644 index 0000000..805783f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.yml @@ -0,0 +1,19 @@ +name: You have a question about the app +description: | + You want ask something that's not related with a feature request or a bug. +labels: ["question"] +body: + - type: markdown + id: important-info + attributes: + value: | + Having problems while adding a connection to a server? Check out [this guide](https://github.com/JGeek00/adguard-home-manager/wiki/Create-a-connection). + - type: textarea + id: question + attributes: + label: Question + description: Write your question here giving the maximum detail possible. + placeholder: | + Write your question here... + validations: + required: true \ No newline at end of file From 3a210fb9fda3d84b164aa942a09e5f30db17e343 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 9 Feb 2024 01:22:05 +0100 Subject: [PATCH 110/236] Updated turkish translation --- lib/l10n/app_tr.arb | 256 +++++++++++++++++++++++++++++--------------- 1 file changed, 171 insertions(+), 85 deletions(-) diff --git a/lib/l10n/app_tr.arb b/lib/l10n/app_tr.arb index 06c3b08..12c8980 100644 --- a/lib/l10n/app_tr.arb +++ b/lib/l10n/app_tr.arb @@ -11,7 +11,7 @@ "port": "Bağlantı noktası", "username": "Kullanıcı adı", "password": "Şifre", - "defaultServer": "Varsayılan sunucu", + "defaultServer": "Varsayılan sunucu olarak ayarla", "general": "Genel", "connection": "Bağlantı", "authentication": "Kimlik doğrulama", @@ -40,18 +40,18 @@ "removeWarning": "Bu AdGuard Home sunucusuyla olan bağlantıyı kaldırmak istediğinizden emin misiniz?", "cancel": "İptal", "defaultConnection": "Varsayılan bağlantı", - "setDefault": "Varsayılan ayarla", + "setDefault": "Varsayılan sunucu yap", "edit": "Düzenle", "delete": "Sil", "save": "Kaydet", "serverStatus": "Sunucu durumu", "connectionNotUpdated": "Bağlantı Güncellenmedi", "ruleFilteringWidget": "Kural filtreleme", - "safeBrowsingWidget": "Güvenli gezinti", + "safeBrowsingWidget": "Güvenli gezinme", "parentalFilteringWidget": "Ebeveyn filtreleme", "safeSearchWidget": "Güvenli arama", "ruleFiltering": "Kural filtreleme", - "safeBrowsing": "Güvenli gezinti", + "safeBrowsing": "Güvenli gezinme", "parentalFiltering": "Ebeveyn filtreleme", "safeSearch": "Güvenli arama", "serverStatusNotRefreshed": "Sunucu durumu yenilenemedi", @@ -63,9 +63,9 @@ "topBlockedDomains": "En çok engellenenler", "appSettings": "Uygulama ayarları", "theme": "Tema", - "light": "Aydınlık", - "dark": "Karanlık", - "systemDefined": "Sistemle uyumlu hale getir", + "light": "Açık", + "dark": "Koyu", + "systemDefined": "Otomatik (Cihazınızın renk düzenine göre)", "close": "Kapat", "connectedTo": "Bağlandı:", "selectedServer": "Seçili sunucu:", @@ -80,8 +80,8 @@ "appVersion": "Uygulama sürümü", "createdBy": "Geliştirici", "clients": "İstemciler", - "allowed": "İzin verildi", - "blocked": "Engellendi", + "allowed": "İzin verilen", + "blocked": "Engellenen", "noClientsList": "Bu listede hiç istemci yok", "activeClients": "Etkin", "removeClient": "İstemciyi kaldır", @@ -102,7 +102,7 @@ "copyLogsClipboard": "Günlükleri panoya kopyala", "logsCopiedClipboard": "Günlükler panoya kopyalandı", "advancedSettings": "Gelişmiş ayarlar", - "dontCheckCertificate": "SSL sertifikasını asla kontrol etme", + "dontCheckCertificate": "SSL sertifikasını kontrol etme", "dontCheckCertificateDescription": "Sunucunun SSL sertifikası doğrulamasını geçersiz kılar", "advancedSetupDescription": "Gelişmiş seçenekleri yönet", "settingsUpdatedSuccessfully": "Ayarlar başarıyla güncellendi.", @@ -114,8 +114,8 @@ "processedRow": "İşlendi (Liste yok)", "blockedBlacklist": "Engellendi\nKara Liste", "blockedBlacklistRow": "Engellendi (Kara liste)", - "blockedSafeBrowsing": "Engellendi\nGüvenli gezinti", - "blockedSafeBrowsingRow": "Engellendi (Güvenli gezinti)", + "blockedSafeBrowsing": "Engellendi\nGüvenli gezinme", + "blockedSafeBrowsingRow": "Engellendi (Güvenli gezinme)", "blockedParental": "Engellendi\nEbeveyn filtreleme", "blockedParentalRow": "Engellendi (Ebeveyn filtreleme)", "blockedInvalid": "Engellendi\nGeçersiz", @@ -181,7 +181,7 @@ "visitGooglePlay": "Google Play sayfasını ziyaret et", "gitHub": "Kaynak kodlarına GitHub'dan ulaşabilirsiniz", "blockClient": "İstemciyi engelle", - "selectTags": "Etiketleri seçin", + "selectTags": "Etiketleri seç", "noTagsSelected": "Seçili etiket yok", "tags": "Etiketler", "identifiers": "Tanımlayıcılar", @@ -190,19 +190,19 @@ "noIdentifiers": "Tanımlayıcı eklenmedi", "useGlobalSettings": "Küresel ayarları kullan", "enableFiltering": "Filtrelemeyi etkinleştir", - "enableSafeBrowsing": "Güvenli gezintiyi etkinleştir", + "enableSafeBrowsing": "Güvenli gezinmeyi etkinleştir", "enableParentalControl": "Ebeveyn kontrolünü etkinleştir", - "enableSafeSearch": "Güvenli aramayı aktif et", + "enableSafeSearch": "Güvenli aramayı etkinleştir", "blockedServices": "Engellenen hizmetler", "selectBlockedServices": "Engellenen hizmetleri seç", "noBlockedServicesSelected": "Engellenen hizmetler seçilmedi", "services": "Hizmetler", "servicesBlocked": "Hizmetler engellendi", - "tagsSelected": "Seçilen etiketler", - "upstreamServers": "Üst kaynak sunucuları", + "tagsSelected": "Etiket seçildi", + "upstreamServers": "Üst sunucular", "serverAddress": "Sunucu adresi", - "noUpstreamServers": "Üst kaynak sunucusu yok.", - "willBeUsedGeneralServers": "Genel üst kaynak sunucuları kullanılacak.", + "noUpstreamServers": "Üst sunucu yok.", + "willBeUsedGeneralServers": "Genel üst sunucular kullanılacak.", "added": "Eklenenler", "clientUpdatedSuccessfully": "İstemci başarıyla güncellendi", "clientNotUpdated": "İstemci güncellenemedi", @@ -215,7 +215,7 @@ "blacklists": "Kara listeler", "rules": "Kurallar", "customRules": "Özel kurallar", - "enabledRules": "Etkin kurallar", + "enabledRules": "Etkin kural", "enabled": "Etkin", "disabled": "Devre dışı", "rule": "Kural", @@ -234,7 +234,7 @@ "addWhitelist": "Beyaz liste ekle", "addBlacklist": "Kara liste ekle", "urlNotValid": "Bağlantı adresi geçerli değil", - "urlAbsolutePath": "Bağlantı adresi veya kesin dosya yolu", + "urlAbsolutePath": "Bağlantı adresi veya dosya yolu", "addingList": "Liste ekleniyor...", "listAdded": "Liste başarıyla eklendi. Eklenen öğeler:", "listAlreadyAdded": "Liste zaten eklenmiş", @@ -267,13 +267,13 @@ "seeDnsAddresses": "DNS adreslerine göz at", "dnsPort": "DNS bağlantı noktası", "httpPort": "HTTP bağlantı noktası", - "protectionEnabled": "Koruma etkin mi?", - "dhcpAvailable": "DHCP mevcut mu?", - "serverRunning": "Sunucu çalışıyor mu?", + "protectionEnabled": "Koruma durumu", + "dhcpAvailable": "DHCP durumu", + "serverRunning": "Sunucu durumu", "serverVersion": "Sunucu sürümü", "serverLanguage": "Sunucu dili", - "yes": "Evet", - "no": "Hayır", + "yes": "Etkin", + "no": "Mevcut değil", "allowedClients": "İzin verilen istemciler", "disallowedClients": "İzin verilmeyen istemciler", "disallowedDomains": "İzin verilmeyen alan adları", @@ -288,7 +288,7 @@ "addClientFieldDescription": "CIDR'ler, IP adresi veya ClientID", "clientIdentifier": "İstemci tanımlayıcısı", "allowClient": "İstemciye izin ver", - "disallowClient": "İstemciye izin verme", + "disallowClient": "İstemciyi engelle", "noDisallowedDomains": "İzin verilmeyen alan adı yok", "domainNotAdded": "Alan adı eklenemedi", "statusSelected": "Durum seçildi.", @@ -305,11 +305,11 @@ "block": "Engelle", "unblock": "Engeli kaldır", "custom": "Özel", - "addImportant": "Ekle ($important)", + "addImportant": "Başına $important ekle", "howCreateRules": "Özel kurallar nasıl oluşturulur?", "examples": "Örnekler", - "example1": "example.org ve tüm alt alan adlarına erişimi engeller.", - "example2": "example.org ve tüm alt alan adlarına erişimi engellemeyi kaldırır.", + "example1": "example.org (ornek.org) ve tüm alt alan adlarına erişimi engeller.", + "example2": "example.org (ornek.org) ve tüm alt alan adlarına erişimi engellemeyi kaldırır.", "example3": "Yorum ekler.", "example4": "Belirtilen düzenli ifadeye uyan alan adlarına erişimi engeller.", "moreInformation": "Daha fazla bilgi", @@ -342,7 +342,7 @@ "dhcpSettingsNotLoaded": "DHCP ayarları yüklenemedi", "loadingDhcp": "DHCP ayarları yükleniyor...", "enableDhcpServer": "DHCP sunucusunu etkinleştir", - "selectInterface": "Arayüz seçin", + "selectInterface": "Arayüz seç", "hardwareAddress": "Donanım adresi", "gatewayIp": "Ağ Geçidi IP'si", "ipv4addresses": "IPv4 adresleri", @@ -368,37 +368,37 @@ "restoringConfig": "Yapılandırma geri yükleniyor...", "configRestored": "Yapılandırma başarıyla sıfırlandı", "configNotRestored": "Yapılandırma sıfırlanamadı", - "dhcpStatic": "DHCP statik kiralamaları", - "noDhcpStaticLeases": "DHCP statik kiralamaları bulunamadı", + "dhcpStatic": "DHCP statik kiraları", + "noDhcpStaticLeases": "DHCP statik kirası bulunamadı", "deleting": "Siliniyor...", - "staticLeaseDeleted": "DHCP statik kiralama başarıyla silindi", - "staticLeaseNotDeleted": "DHCP statik kiralaması silinemedi", - "deleteStaticLease": "Statik kiralamayı sil", + "staticLeaseDeleted": "DHCP statik kirası başarıyla silindi", + "staticLeaseNotDeleted": "DHCP statik kirası silinemedi", + "deleteStaticLease": "Statik kirasını sil", "deleteStaticLeaseDescription": "DHCP statik kirası silinecek. Bu işlem geri alınamaz.", - "addStaticLease": "Statik kiralama ekleyin", + "addStaticLease": "Statik kira ekleyin", "macAddress": "MAC adresi", "macAddressNotValid": "MAC adresi geçersiz", "hostName": "Ana bilgisayar adı", "hostNameError": "Ana bilgisayar adı boş olamaz", "creating": "Oluşturuluyor...", - "staticLeaseCreated": "DHCP statik kiralaması başarıyla oluşturuldu", - "staticLeaseNotCreated": "DHCP statik kiralaması oluşturulamadı", - "staticLeaseExists": "DHCP statik kiralaması zaten mevcut", + "staticLeaseCreated": "DHCP statik kirası başarıyla oluşturuldu", + "staticLeaseNotCreated": "DHCP statik kirası oluşturulamadı", + "staticLeaseExists": "DHCP statik kirası zaten mevcut", "serverNotConfigured": "Sunucu yapılandırılmamış", - "restoreLeases": "Kiralamaları sıfırla", - "restoreLeasesMessage": "Devam etmek istediğinizden emin misiniz? Bu, mevcut tüm kiralamaları sıfırlayacaktır. Bu işlem geri alınamaz.", - "restoringLeases": "Kiralamalar sıfırlanıyor...", - "leasesRestored": "Kiralamalar başarıyla sıfırlandı", + "restoreLeases": "Kiraları sıfırla", + "restoreLeasesMessage": "Devam etmek istediğinizden emin misiniz? Bu, mevcut tüm kiraları sıfırlayacaktır. Bu işlem geri alınamaz.", + "restoringLeases": "Kiralar sıfırlanıyor...", + "leasesRestored": "Kiralar başarıyla sıfırlandı", "leasesNotRestored": "Kiralar sıfırlanamadı", - "dhcpLeases": "DHCP kiralamaları", - "noLeases": "Kullanılabilir DHCP kiralaması yok", + "dhcpLeases": "DHCP kiraları", + "noLeases": "Kullanılabilir DHCP kiraları yok", "dnsRewrites": "DNS yeniden yazımları", "dnsRewritesDescription": "Özel DNS kurallarını yapılandır", "loadingRewriteRules": "Yeniden yazım kuralları yükleniyor...", "rewriteRulesNotLoaded": "DNS yeniden yazım kuralları yüklenemedi.", "noRewriteRules": "DNS yeniden yazım kuralları yok", "answer": "Yanıt", - "deleteDnsRewrite": "DNS yeniden yazımı sil", + "deleteDnsRewrite": "DNS yeniden yazımını sil", "deleteDnsRewriteMessage": "Bu DNS yeniden yazımını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "dnsRewriteRuleDeleted": "DNS yeniden yazım kuralı başarıyla silindi", "dnsRewriteRuleNotDeleted": "DNS yeniden yazım kuralı silinemedi", @@ -409,7 +409,7 @@ "logsSettings": "Günlük ayarları", "enableLog": "Günlüğü etkinleştir", "clearLogs": "Günlükleri temizle", - "anonymizeClientIp": "İstemci IP'sini anonimleştir", + "anonymizeClientIp": "İstemci IP'sini gizle", "hours6": "6 saat", "days30": "30 gün", "days90": "90 gün", @@ -427,17 +427,17 @@ "noItems": "Burada gösterilecek öğe yok", "dnsSettings": "DNS ayarları", "dnsSettingsDescription": "DNS sunucuları ile bağlantıyı yapılandır", - "upstreamDns": "Üst kaynak DNS sunucuları", + "upstreamDns": "Üst DNS sunucuları", "bootstrapDns": "Önyükleme DNS sunucuları", - "noUpstreamDns": "Üst kaynak DNS sunucuları eklenmedi.", + "noUpstreamDns": "Üst DNS sunucuları eklenmedi.", "dnsMode": "DNS modu", "noDnsMode": "DNS modu seçili değil", "loadBalancing": "Yük dengeleme", "parallelRequests": "Paralel istekler", "fastestIpAddress": "En hızlı IP adresi", - "loadBalancingDescription": "Her seferinde bir üst kaynak sunucusuna sorgu yap. AdGuard Home, sunucuyu seçmek için ağırlıklı rastgele algoritmasını kullanır, böylece en hızlı sunucu daha sık kullanılır.", - "parallelRequestsDescription": "Tüm üst kaynak sunucularını aynı anda sorgulayarak çözümlemeyi hızlandırmak için paralel sorgular kullanın.", - "fastestIpAddressDescription": "Tüm DNS sunucularına sorgu yapın ve tüm yanıtlar arasında en hızlı IP adresini döndürün. Bu, AdGuard Home'un tüm DNS sunucularından yanıtları beklemesi gerektiği için DNS sorgularını yavaşlatır, ancak genel bağlantıyı iyileştirir.", + "loadBalancingDescription": "Her seferinde bir üst sunucuya sorgu yapar. AdGuard Home, sunucuyu seçmek için ağırlıklı rastgele algoritmasını kullanır, böylece en hızlı sunucu daha sık kullanılır.", + "parallelRequestsDescription": "Tüm üst sunucuları aynı anda sorgulayarak çözümlemeyi hızlandırmak için paralel sorgular kullanır.", + "fastestIpAddressDescription": "Tüm DNS sunucularına sorgu yapın ve tüm yanıtlar arasında en hızlı IP adresini döndürür. Bu, AdGuard Home'un tüm DNS sunucularından yanıtları beklemesi gerektiği için DNS sorgularını yavaşlatır, ancak genel bağlantıyı iyileştirir.", "noBootstrapDns": "Önyükleme DNS sunucuları eklenmedi.", "bootstrapDnsServersInfo": "Önyükleme ​​DNS sunucuları, üst kaynaklarda belirttiğiniz DoH/DoT çözümleyicilerinin IP adreslerini çözmek için kullanılır.", "privateReverseDnsServers": "Özel ters DNS sunucuları", @@ -446,36 +446,36 @@ "addItem": "Öğe ekle", "noServerAddressesAdded": "Sunucu adresleri eklenmedi.", "usePrivateReverseDnsResolvers": "Özel ters DNS çözümleyicilerini kullan", - "usePrivateReverseDnsResolversDescription": "Bu üst kaynak sunucularını kullanarak yerel olarak sunulan adresler için ters DNS sorguları gerçekleştirin. Devre dışı bırakılırsa, AdGuard Home, DHCP, /etc/hosts vb. kaynaklardan bilinen istemciler dışında tüm PTR isteklerine NXDOMAIN yanıtı verir.", + "usePrivateReverseDnsResolversDescription": "Bu üst sunucuları kullanarak yerel olarak sunulan adresler için ters DNS sorguları gerçekleştirin. Devre dışı bırakılırsa, AdGuard Home, DHCP, /etc/hosts vb. kaynaklardan bilinen istemciler dışında tüm PTR isteklerine NXDOMAIN yanıtı verir.", "enableReverseResolving": "İstemcilerin IP adreslerinin ters çözümlemesini etkinleştir", - "enableReverseResolvingDescription": "İstemcilerin IP adreslerini karşılık gelen çözücülere PTR sorguları göndererek IP adreslerini tersine çözümleyerek (yerel istemciler için özel DNS sunucuları, genel IP adresine sahip istemciler için üst kaynak sunucuları) istemcilerin ana bilgisayar adlarını tersine çöz.", + "enableReverseResolvingDescription": "Karşılık gelen çözümleyicilere (yerel istemciler için özel DNS sunucuları, genel IP adresleri olan istemciler için üst sunuculara) PTR sorguları göndererek istemcilerin IP adreslerini ana makine adlarının tersine çözer.", "dnsServerSettings": "AdGuard Home DNS sunucusu ayarları", - "limitRequestsSecond": "Saniye başına sınırlama isteği", + "limitRequestsSecond": "Sıklık limiti", "valueNotNumber": "Değer bir sayı değil", "enableEdns": "EDNS istemci alt ağını etkinleştir", - "enableEdnsDescription": "Kaynak yönü isteklerine EDNS İstemci Alt Ağı Seçeneği (ECS) ekleyin ve istemciler tarafından gönderilen değerleri sorgu günlüğüne kaydedin.", + "enableEdnsDescription": "Kaynak yönü isteklerine EDNS İstemci Alt Ağı Seçeneği (ECS) ekler ve istemciler tarafından gönderilen değerleri sorgu günlüğüne kaydeder.", "enableDnssec": "DNSSEC'i etkinleştir", - "enableDnssecDescription": "Giden DNS sorguları için DNSSEC özelliğini etkinleştir ve sonucu kontrol edin.(DNSSEC etkinleştirilmiş bir çözümleyici gerekli)", + "enableDnssecDescription": "Giden DNS sorguları için DNSSEC özelliğini etkinleştirir ve sonucu kontrol eder. (DNSSEC etkinleştirilmiş bir çözümleyici gerekli)", "disableResolvingIpv6": "IPv6 adreslerinin çözümlenmesini devre dışı bırak", - "disableResolvingIpv6Description": "IPv6 adresleri için tüm DNS sorgularını bırakın (AAAA yazın) ve HTTPS yanıtlarından IPv6 ipuçlarını kaldırın.", + "disableResolvingIpv6Description": "IPv6 adresleri için tüm DNS sorgularını bırakır (AAAA yazar) ve HTTPS yanıtlarından IPv6 ipuçlarını kaldırır.", "blockingMode": "Engelleme modu", "defaultMode": "Varsayılan", - "defaultDescription": "Reklam engelleme tarzı bir kural tarafından engellendiğinde sıfır IP adresi ile yanıt verin. (A için 0.0.0.0; :: AAAA için) /etc/hosts tarzı bir kural tarafından engellendiğinde kuralda belirtilen IP adresi ile yanıt verin.", - "refusedDescription": "REFUSED kodu ile yanıt verin.", - "nxdomainDescription": "NXDOMAIN kodu ile yanıt verin.", + "defaultDescription": "Reklam engelleme tarzı bir kural tarafından engellendiğinde sıfır IP adresi ile yanıt verir. (A için 0.0.0.0; :: AAAA için) /etc/hosts tarzı bir kural tarafından engellendiğinde kuralda belirtilen IP adresi ile yanıt verir.", + "refusedDescription": "REFUSED kodu ile yanıt verir.", + "nxdomainDescription": "NXDOMAIN kodu ile yanıt verir.", "nullIp": "Boş IP", - "nullIpDescription": "Sıfır IP adresi ile yanıt verin. (A için 0.0.0.0; :: AAAA için)", + "nullIpDescription": "Sıfır IP adresi ile yanıt verir. (A için 0.0.0.0; :: AAAA için)", "customIp": "Özel IP", - "customIpDescription": "Manuel olarak ayarlanmış bir IP adresi ile yanıt verin.", + "customIpDescription": "Manuel olarak ayarlanmış bir IP adresi ile yanıt verir.", "dnsCacheConfig": "DNS önbellek yapılandırması", "cacheSize": "Önbellek boyutu", - "inBytes": "Bayt olarak", + "inBytes": "Alınacak önbelleğin boyutunu ayarla (bayt olarak)", "overrideMinimumTtl": "Minimum kullanım süresini geçersiz kıl", - "overrideMinimumTtlDescription": "DNS yanıtlarını önbelleğe alırken üst sunucudan alınan minimum kullanım süresi değerini ayarlayın (saniye olarak)", + "overrideMinimumTtlDescription": "DNS yanıtlarını önbelleğe alırken üst sunucudan alınan minimum kullanım süresi değerini (TTL) saniye olarak ayarlayın.", "overrideMaximumTtl": "Maksimum kullanım süresini geçersiz kıl", - "overrideMaximumTtlDescription": "DNS önbelleğindeki girişler için maksimum kullanım süresi değerini ayarlayın (saniye olarak)", + "overrideMaximumTtlDescription": "DNS yanıtlarını önbelleğe alırken üst sunucudan alınan maksimum kullanım süresi değerini (TTL) saniye olarak ayarlayın.", "optimisticCaching": "İyimser önbelleğe alma", - "optimisticCachingDescription": "Girişlerin süresi dolmuş olsa bile Adguard Home'un önbellekten yanıt vermesini sağlayın ve aynı zamanda bunları yenilemeye çalışın.", + "optimisticCachingDescription": "Girişlerin süresi dolmuş olsa bile Adguard Home'un önbellekten yanıt vermesini sağlar ve aynı zamanda bunları yenilemeye çalışır.", "loadingDnsConfig": "DNS yapılandırması yükleniyor...", "dnsConfigNotLoaded": "DNS yapılandırması yüklenemedi.", "blockingIpv4": "IPv4 engelleniyor", @@ -487,7 +487,7 @@ "dnsConfigNotSaved": "DNS sunucusu yapılandırması kaydedilemedi", "savingConfig": "Yapılandırma kaydediliyor...", "someValueNotValid": "Bazı değerler geçerli değil", - "upstreamDnsDescription": "Üst kaynak sunucularını ve DNS modunu yapılandır", + "upstreamDnsDescription": "Üst sunucuları ve DNS modunu yapılandır", "bootstrapDnsDescription": "Önyükleme DNS sunucularını yapılandır", "privateReverseDnsDescription": "Özel DNS çözümleyicileri yapılandır ve özel ters DNS çözümlemeyi etkinleştir", "dnsServerSettingsDescription": "Hız limiti, engelleme modu ve daha fazlasını yapılandır", @@ -513,13 +513,13 @@ "certificatesDescription": "Şifreleme kullanmak için, alan adınız için geçerli bir SSL sertifikası zinciri sağlamanız gereklidir. letsencrypt.org'dan ücretsiz bir sertifika alabilir veya güvenilir sertifika yetkililerinden satın alabilirsiniz.", "certificateFilePath": "Sertifika dosyası belirle", "pasteCertificateContent": "Sertifika içeriğini yapıştır", - "certificatePath": "Sertifika dosya yolu", + "certificatePath": "Sertifikanın dosya yolu", "certificateContent": "Sertifika içeriği", "privateKey": "Özel anahtarlar", "privateKeyFile": "Özel anahtar dosyası belirle", "pastePrivateKey": "Özel anahtar içeriğini yapıştır", - "usePreviousKey": "Önceden kaydedilmiş anahtarı kullan", - "privateKeyPath": "Özel anahtar dosya yolu", + "usePreviousKey": "Önceden kaydedilmiş olan anahtarı kullan", + "privateKeyPath": "Özel anahtarın dosya yolu", "invalidCertificate": "Geçersiz sertifika", "invalidPrivateKey": "Geçersiz özel anahtar", "validatingData": "Veri doğrulama", @@ -560,8 +560,8 @@ "validPrivateKey": "Geçerli özel anahtar", "expirationDate": "Son kullanma tarihi", "keysNotMatch": "Geçersiz bir sertifika veya anahtar: tls: özel anahtar genel anahtarla eşleşmiyor.", - "timeLogs": "Günlüklerdeki işlem süresi", - "timeLogsDescription": "Günlükler listesinde zaman yerine işlem süresini göster", + "timeLogs": "Günlüklerde işlem süresi göster", + "timeLogsDescription": "Günlükler listesinde zaman yerine işlem süresini göster.", "hostNames": "Ana bilgisayar adları", "keyType": "Anahtar türü", "updateAvailable": "Güncelleme mevcut", @@ -591,7 +591,7 @@ "updates": "Güncellemeler", "updatesDescription": "AdGuard Home sunucusunu güncelle", "updateNow": "Şimdi güncelle", - "currentVersion": "Mevcut sürüm", + "currentVersion": "Yüklü sürüm", "requestStartUpdateFailed": "Güncellemeyi başlatma isteği başarısız oldu", "requestStartUpdateSuccessful": "Güncellemeyi başlatma isteği başarılı", "serverUpdated": "Sunucu güncellendi", @@ -618,15 +618,15 @@ "copiedClipboard": "Panoya kopyalandı", "seeDetails": "Detayları gör", "listNotAvailable": "Liste mevcut değil", - "copyListUrl": "Liste bağlantısını kopyala", - "listUrlCopied": "Panoya kopyalanan bağlantı adresini listeleyin", + "copyListUrl": "Bağlantıyı kopyala", + "listUrlCopied": "Liste bağlantısı panoya kopyalandı", "unsupportedVersion": "Desteklenmeyen sürüm", "unsupprtedVersionMessage": "Sunucu sürümünüz {version} için destek garantisi verilmiyor. Bu uygulamanın bu sunucu sürümüyle çalışmasında bazı sorunlar olabilir. AdGuard Home Yöneticisi, AdGuard Home sunucunun kararlı sürümleriyle çalışacak şekilde tasarlanmıştır. Alfa ve beta sürümleriyle çalışabilir, ancak uyumluluk garanti edilmez ve uygulama bu sürümlerle çalışırken bazı sorunlar yaşayabilir.", "iUnderstand": "Anladım", "appUpdates": "Uygulama güncellemeleri", - "usingLatestVersion": "En son sürümü kullanıyorsunuz :)", - "ipLogs": "Günlüklerdeki IP", - "ipLogsDescription": "Günlükler listesinde istemci adı yerine IP adresini göster", + "usingLatestVersion": "En son sürümü kullanıyorsunuz", + "ipLogs": "Günlüklerde IP adresini göster", + "ipLogsDescription": "Günlükler listesinde istemci adı yerine IP adresini göster.", "application": "Uygulama", "combinedChart": "Birleştirilmiş grafik", "combinedChartDescription": "Tüm grafikleri bir araya getirir.", @@ -655,11 +655,11 @@ "queries": "Sorgular", "adultSites": "Yetişkin içerikler", "quickFilters": "Hızlı filtreler", - "searchDomainInternet": "İnternette alan adı ara", + "searchDomainInternet": "Alan adını arat", "hideServerAddress": "Sunucu adresini gizle", "hideServerAddressDescription": "Ana ekranda sunucu adresini gizler.", "topItemsOrder": "Öne çıkan öğeler sıralaması", - "topItemsOrderDescription": "Ana ekrandaki öne çıkan öğe listelerini sırala", + "topItemsOrderDescription": "Ana ekrandaki öne çıkan öğe listelerini sıralayın.", "topItemsReorderInfo": "Yeniden sıralamak için bir öğeyi basılı tutun ve kaydırın.", "discardChanges": "Değişiklikleri iptal et", "discardChangesDescription": "Değişiklikleri iptal etmek istediğinizden emin misiniz?", @@ -687,6 +687,92 @@ "unsupportedServerVersionMessage": "AdGuard Home sunucu sürümünüz çok eski ve AdGuard Home Manager tarafından desteklenmiyor. Bu uygulamayı kullanmak için AdGuard Home sunucunuzu daha yeni bir sürüme yükseltmeniz gerekecektir.", "yourVersion": "Yüklü sürüm: {version}", "minimumRequiredVersion": "Gerekli minimum sürüm: {version}", - "topUpstreams": "Öne çıkan üst kaynaklar", - "averageUpstreamResponseTime": "Üst kaynak ortalama yanıt süresi" -} + "topUpstreams": "Öne çıkan DNS sunucuları", + "averageUpstreamResponseTime": "DNS sunucusu ortalama işlem süresi" , + "dhcpNotAvailable": "DHCP sunucusu kullanılamıyor.", + "osServerInstalledIncompatible": "AdGuard Home, işletim sisteminizde DHCP sunucusu çalıştıramıyor.", + "resetSettings": "Ayarları sıfırla", + "resetEncryptionSettingsDescription": "Şifreleme ayarlarını sıfırlamak istediğinizden emin misiniz?", + "resettingConfig": "Yapılandırma sıfırlanıyor...", + "configurationResetSuccessfully": "Yapılandırma başarıyla sıfırlandı", + "configurationResetError": "Yapılandırma sıfırlanamadı", + "testUpstreamDnsServers": "DNS sunucusunu test et", + "errorTestUpstreamDns": "DNS sunucularını test ederken hata oluştu.", + "useCustomIpEdns": "EDNS için özel IP kullan", + "useCustomIpEdnsDescription": "EDNS için özel IP kullanımına izin ver", + "sortingOptions": "Sıralama seçenekleri", + "fromHighestToLowest": "Yüksekten düşüğe", + "fromLowestToHighest": "Düşükten yükseğe", + "queryLogsAndStatistics": "Sorgu günlüğü ve istatistikler", + "ignoreClientQueryLog": "Sorgu günlüğünde bu istemciyi yoksay", + "ignoreClientStatistics": "İstatistiklerde bu istemciyi yoksay", + "savingChanges": "Değişiklikler kaydediliyor...", + "fallbackDnsServers": "Yedek DNS sunucuları", + "fallbackDnsServersDescription": "Yedek DNS sunucularını yapılandır", + "fallbackDnsServersInfo": "Üst DNS sunucuları yanıt vermediğinde kullanılan yedek DNS sunucularının listesi. Sözdizimi, yukarıdaki ana üst kaynak alanıyla aynıdır.", + "noFallbackDnsAdded": "Yedek DNS sunucusu eklenmedi.", + "blockedResponseTtl": "Engellenen yanıtın kullanım süresi", + "blockedResponseTtlDescription": "İstemcilerin filtrelenmiş bir yanıtı kaç saniye süreyle önbelleğe alması gerektiğini belirtir", + "invalidValue": "Geçersiz değer", + "noDataChart": "Bu grafiği görüntüleyecek veri yok.", + "noData": "Veri yok", + "unblockClient": "İstemci engelini kaldır", + "blockingClient": "İstemci engelleniyor...", + "unblockingClient": "İstemci engeli kaldırılıyor...", + "upstreamDnsCacheConfiguration": "DNS önbellek yapılandırması", + "enableDnsCachingClient": "Bu istemci için DNS önbelleğe almayı etkinleştir", + "dnsCacheSize": "DNS önbellek boyutu (bayt cinsinden)", + "nameInvalid": "Ad gereklidir", + "oneIdentifierRequired": "En az bir tanımlayıcı gereklidir", + "dnsCacheNumber": "DNS önbellek boyutu bir rakam içermelidir", + "errors": "Hatalar", + "redirectHttpsWarning": "AdGuard Home sunucunuzda \"Otomatik olarak HTTPS'e yönlendir\" seçeneğini etkinleştirdiyseniz, bir HTTPS bağlantısı seçmeli ve sunucunuzun HTTPS bağlantı noktasını kullanmalısınız.", + "logsSettingsDescription": "Sorgu günlüklerini yapılandır", + "ignoredDomains": "Yok sayılan alan adları", + "noIgnoredDomainsAdded": "Yok sayılacak alan adı eklenmedi", + "pauseServiceBlocking": "Hizmet engellemeyi duraklat", + "newSchedule": "Yeni program", + "editSchedule": "Programı düzenle", + "timezone": "Zaman dilimi", + "monday": "Pazartesi", + "tuesday": "Salı", + "wednesday": "Çarşamba", + "thursday": "Perşembe", + "friday": "Cuma", + "saturday": "Cumartesi", + "sunday": "Pazar", + "from": "Başlangıç: {from}", + "to": "Bitiş: {to}", + "selectStartTime": "Başlangıç zamanını seç", + "selectEndTime": "Bitiş zamanını seç", + "startTimeBeforeEndTime": "Başlangıç zamanı bitiş zamanından önce olmalıdır.", + "noBlockingScheduleThisDevice": "Bu cihaz için herhangi bir engelleme programı bulunmamaktadır.", + "selectTimezone": "Bir zaman dilimi seç", + "selectClientsFiltersInfo": "Görüntülemek istediğiniz istemcileri seçin. Hiçbir istemci seçilmemişse, hepsi görüntülenecektir.", + "noDataThisSection": "Bu bölüm için veri yok.", + "statisticsSettings": "İstatistik ayarları", + "statisticsSettingsDescription": "İstatistikler için veri toplamayı yapılandır", + "loadingStatisticsSettings": "İstatistik ayarları yükleniyor...", + "statisticsSettingsLoadError": "İstatistik ayarları yüklenirken bir hata oluştu.", + "customTimeInHours": "Özel zaman (saat olarak)", + "invalidTime": "Geçersiz zaman", + "removeDomain": "Alan adını kaldır", + "addDomain": "Alan adı ekle", + "notLess1Hour": "Zaman 1 saatten az olamaz", + "rateLimit": "Hız sınırı", + "subnetPrefixLengthIpv4": "IPv4 için alt ağ önek uzunluğu", + "subnetPrefixLengthIpv6": "IPv6 için alt ağ önek uzunluğu", + "rateLimitAllowlist": "Hız sınırlama izin listesi", + "rateLimitAllowlistDescription": "Hız sınırlamasından hariç tutulan IP adresleri", + "dnsOptions": "DNS ayarları", + "editor": "Editör", + "editCustomRules": "Özel kuralları düzenle", + "savingCustomRules": "Özel kurallar kaydediliyor...", + "customRulesUpdatedSuccessfully": "Özel kurallar başarıyla güncellendi", + "customRulesNotUpdated": "Özel kurallar güncellenemedi", + "reorder": "Sırala", + "showHide": "Göster/gizle", + "noElementsReorderMessage": "Burada yeniden sıralamak için göster/gizle sekmesindeki bazı öğeleri etkinleştirin.", + "enablePlainDns": "Düz DNS'i etkinleştir", + "enablePlainDnsDescription": "Düz DNS varsayılan olarak etkindir. Tüm aygıtları şifrelenmiş DNS kullanmaya zorlamak için bunu devre dışı bırakabilirsiniz. Bunu yapmak için en az bir şifrelenmiş DNS protokolünü etkinleştirmeniz gerekir." +} \ No newline at end of file From dba9c8b9ac4be5a018c0ec2664c52505944b5b3e Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 9 Feb 2024 01:29:11 +0100 Subject: [PATCH 111/236] Bug fixes --- lib/l10n/app_tr.arb | 4 ++-- lib/screens/filters/add_button.dart | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/l10n/app_tr.arb b/lib/l10n/app_tr.arb index 12c8980..9e84991 100644 --- a/lib/l10n/app_tr.arb +++ b/lib/l10n/app_tr.arb @@ -741,8 +741,8 @@ "friday": "Cuma", "saturday": "Cumartesi", "sunday": "Pazar", - "from": "Başlangıç: {from}", - "to": "Bitiş: {to}", + "from": "Başlangıç", + "to": "Bitiş", "selectStartTime": "Başlangıç zamanını seç", "selectEndTime": "Bitiş zamanını seç", "startTimeBeforeEndTime": "Başlangıç zamanı bitiş zamanından önce olmalıdır.", diff --git a/lib/screens/filters/add_button.dart b/lib/screens/filters/add_button.dart index bc5a22f..7f7663e 100644 --- a/lib/screens/filters/add_button.dart +++ b/lib/screens/filters/add_button.dart @@ -144,6 +144,7 @@ class AddFiltersButton extends StatelessWidget { processModal.close(); + if (!context.mounted) return; if (result['success'] == true) { showSnacbkar( appConfigProvider: appConfigProvider, From 34246d238bd21d0f46e8039f81d3b3596a043a1f Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 9 Feb 2024 01:29:16 +0100 Subject: [PATCH 112/236] Updated libraries --- pubspec.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 0f65427..c1c90ca 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -141,10 +141,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: "0042cb3b2a76413ea5f8a2b40cec2a33e01d0c937e91f0f7c211fde4f7739ba6" + sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" url: "https://pub.dev" source: hosted - version: "9.1.1" + version: "9.1.2" device_info_plus_platform_interface: dependency: transitive description: @@ -386,10 +386,10 @@ packages: dependency: transitive description: name: image - sha256: "004a2e90ce080f8627b5a04aecb4cdfac87d2c3f3b520aa291260be5a32c033d" + sha256: "49a0d4b0c12402853d3f227fe7c315601b238d126aa4caa5dbb2dcf99421aa4a" url: "https://pub.dev" source: hosted - version: "4.1.4" + version: "4.1.6" intl: dependency: "direct main" description: @@ -594,18 +594,18 @@ packages: dependency: transitive description: name: sentry - sha256: "5686ed515bb620dc52b4ae99a6586fe720d443591183cf1f620ec5d1f0eec100" + sha256: a7946f4a90b0feb47214981d881b98149e05f6c576da9f2a2f33945bf561de25 url: "https://pub.dev" source: hosted - version: "7.15.0" + version: "7.16.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: "505dec3b6810562785d2c34ae871c73ff2cba6cf436c32c188f0464df226ba8f" + sha256: "6db7fa1b076faf2f5dd77d8cc9ef206171f32a290cc638842d78e5d62b441a27" url: "https://pub.dev" source: hosted - version: "7.15.0" + version: "7.16.0" shared_preferences: dependency: "direct main" description: @@ -703,10 +703,10 @@ packages: dependency: "direct main" description: name: sqflite_common_ffi - sha256: d0e3f0d04fdf668e57db8db1df758f56c4193cb429092c708e7bfcc6ab04b27e + sha256: "754927d82de369a6b9e760fb60640aa81da650f35ffd468d5a992814d6022908" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.2+1" sqlite3: dependency: transitive description: @@ -719,10 +719,10 @@ packages: dependency: "direct main" description: name: sqlite3_flutter_libs - sha256: "90963b515721d6a71e96f438175cf43c979493ed14822860a300b69694c74eb6" + sha256: d6c31c8511c441d1f12f20b607343df1afe4eddf24a1cf85021677c8eea26060 url: "https://pub.dev" source: hosted - version: "0.5.19+1" + version: "0.5.20" stack_trace: dependency: transitive description: @@ -879,26 +879,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "18f6690295af52d081f6808f2f7c69f0eed6d7e23a71539d75f4aeb8f0062172" + sha256: "4ac59808bbfca6da38c99f415ff2d3a5d7ca0a6b4809c71d9cf30fba5daf9752" url: "https://pub.dev" source: hosted - version: "1.1.9+2" + version: "1.1.10+1" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "531d20465c10dfac7f5cd90b60bbe4dd9921f1ec4ca54c83ebb176dbacb7bb2d" + sha256: f3247e7ab0ec77dc759263e68394990edc608fb2b480b80db8aa86ed09279e33 url: "https://pub.dev" source: hosted - version: "1.1.9+2" + version: "1.1.10+1" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "03012b0a33775c5530576b70240308080e1d5050f0faf000118c20e6463bc0ad" + sha256: "18489bdd8850de3dd7ca8a34e0c446f719ec63e2bab2e7a8cc66a9028dd76c5a" url: "https://pub.dev" source: hosted - version: "1.1.9+2" + version: "1.1.10+1" vector_math: dependency: transitive description: From 6985efc4cb4c36fd5906f4eab2e99d199d136128 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 9 Feb 2024 01:44:31 +0100 Subject: [PATCH 113/236] Small improvement --- lib/screens/logs/logs_list_appbar.dart | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index ee4dfd1..e4bf2ed 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -62,7 +62,7 @@ class LogsListAppBar extends StatelessWidget { "blocked_parental": AppLocalizations.of(context)!.blockedParentalRow, "safe_search": AppLocalizations.of(context)!.safeSearch, }; - +print(MediaQuery.of(context).viewPadding.top); return SliverAppBar.large( pinned: true, floating: true, @@ -80,6 +80,7 @@ class LogsListAppBar extends StatelessWidget { onPressed: () => showDialog( context: context, builder: (context) => _Search( + hasTopBar: MediaQuery.of(context).viewPadding.top > 0, onSearch: (v) { logsProvider.setAppliedFilters( AppliedFiters( @@ -234,9 +235,11 @@ class LogsListAppBar extends StatelessWidget { class _Search extends StatefulWidget { final void Function(String) onSearch; + final bool hasTopBar; const _Search({ - required this.onSearch + required this.onSearch, + required this.hasTopBar, }); @override @@ -270,7 +273,9 @@ class _SearchState extends State<_Search> { child: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 500), child: Container( - margin: const EdgeInsets.all(16), + margin: widget.hasTopBar + ? const EdgeInsets.symmetric(horizontal: 16) + : const EdgeInsets.all(16), decoration: BoxDecoration( color: Theme.of(context).colorScheme.surface, borderRadius: BorderRadius.circular(16) From e2757d4b8f85a9db99d9ea86dabafc5fa1b3ff49 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 9 Feb 2024 01:45:02 +0100 Subject: [PATCH 114/236] Upgraded android gradle and macos podfile --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/settings.gradle | 2 +- macos/Podfile.lock | 32 +++++++++---------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index cb24abd..3c472b9 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index eeb0d0e..b14b9f7 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -19,7 +19,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.2.2" apply false + id "com.android.application" version '7.4.2' apply false id "org.jetbrains.kotlin.android" version "1.8.20" apply false } diff --git a/macos/Podfile.lock b/macos/Podfile.lock index f5e5c0c..a257617 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -6,31 +6,31 @@ PODS: - FlutterMacOS (1.0.0) - package_info_plus (0.0.1): - FlutterMacOS - - Sentry/HybridSDK (8.18.0): - - SentryPrivate (= 8.18.0) + - Sentry/HybridSDK (8.19.0): + - SentryPrivate (= 8.19.0) - sentry_flutter (0.0.1): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.18.0) - - SentryPrivate (8.18.0) + - Sentry/HybridSDK (= 8.19.0) + - SentryPrivate (8.19.0) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS - sqflite (0.0.3): - Flutter - FlutterMacOS - - sqlite3 (3.45.0): - - sqlite3/common (= 3.45.0) - - sqlite3/common (3.45.0) - - sqlite3/fts5 (3.45.0): + - sqlite3 (3.45.1): + - sqlite3/common (= 3.45.1) + - sqlite3/common (3.45.1) + - sqlite3/fts5 (3.45.1): - sqlite3/common - - sqlite3/perf-threadsafe (3.45.0): + - sqlite3/perf-threadsafe (3.45.1): - sqlite3/common - - sqlite3/rtree (3.45.0): + - sqlite3/rtree (3.45.1): - sqlite3/common - sqlite3_flutter_libs (0.0.1): - FlutterMacOS - - sqlite3 (~> 3.45.0) + - sqlite3 (~> 3.45.1) - sqlite3/fts5 - sqlite3/perf-threadsafe - sqlite3/rtree @@ -84,13 +84,13 @@ SPEC CHECKSUMS: dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce - Sentry: 8984a4ffb2b9bd2894d74fb36e6f5833865bc18e - sentry_flutter: c87a0556eeb6cbf7f9f924d30e878bdedf22d364 - SentryPrivate: 2f0c9ba4c3fc993f70eab6ca95673509561e0085 + Sentry: 1ebcaef678a27c8ac515f974cb5425dd1bbdec2f + sentry_flutter: ecdfbedee55337205561cfa782ee02d31ec83e1f + SentryPrivate: 765c9b4ebe9ac1a5fcdc067c5a1cfbf3f10e1677 shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec - sqlite3: f307b6291c4db7b5086c38d6237446b98a738581 - sqlite3_flutter_libs: 6b9913d8fbb718e5ebf23658aa6934a0fb509c0f + sqlite3: 73b7fc691fdc43277614250e04d183740cb15078 + sqlite3_flutter_libs: 06a05802529659a272beac4ee1350bfec294f386 url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 window_size: 339dafa0b27a95a62a843042038fa6c3c48de195 From 9cd480aa9a094b133c9fb6c41c1fd728bab15a7e Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 9 Feb 2024 01:48:32 +0100 Subject: [PATCH 115/236] Disable plain dns on general disabled --- lib/screens/settings/encryption/encryption.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/screens/settings/encryption/encryption.dart b/lib/screens/settings/encryption/encryption.dart index 3c678b8..4e48f6c 100644 --- a/lib/screens/settings/encryption/encryption.dart +++ b/lib/screens/settings/encryption/encryption.dart @@ -383,6 +383,7 @@ class _EncryptionSettingsState extends State { onChanged: (v) => setState(() => _plainDns = v), title: AppLocalizations.of(context)!.enablePlainDns, subtitle: AppLocalizations.of(context)!.enablePlainDnsDescription, + disabled: enabled == false, ), ], SectionLabel( From eb703c6f5815a0d7acb24c1b826cd5c64e14bacd Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 9 Feb 2024 01:48:56 +0100 Subject: [PATCH 116/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 5b76b9a..7a260b5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.16.0-beta.3+129 +version: 2.16.0+130 environment: sdk: '>=2.18.1 <3.0.0' From ca4fa5d7dfd221a9a33b0acc6a43e7d60b460f0a Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 9 Feb 2024 03:00:42 +0100 Subject: [PATCH 117/236] Bug fixes --- lib/screens/clients/clients.dart | 2 +- lib/screens/filters/add_button.dart | 4 +-- .../filters/filters_triple_column.dart | 27 ++++++++++++++----- .../add_custom_rule.dart | 2 +- .../custom_rule_docs.dart | 0 .../edit_custom_rules.dart | 5 ++-- lib/screens/settings/settings.dart | 4 ++- 7 files changed, 29 insertions(+), 15 deletions(-) rename lib/screens/filters/modals/{add_custom_rule => custom_rules}/add_custom_rule.dart (99%) rename lib/screens/filters/modals/{add_custom_rule => custom_rules}/custom_rule_docs.dart (100%) rename lib/screens/filters/modals/{add_custom_rule => custom_rules}/edit_custom_rules.dart (95%) diff --git a/lib/screens/clients/clients.dart b/lib/screens/clients/clients.dart index 3d494ae..1549bb6 100644 --- a/lib/screens/clients/clients.dart +++ b/lib/screens/clients/clients.dart @@ -23,7 +23,7 @@ class _ClientsState extends State with TickerProviderStateMixin { return Scaffold( body: LayoutBuilder( builder: (context, constraints) { - if (constraints.maxWidth > 1000) { + if (constraints.maxWidth > 900) { return SplitView.material( hideDivider: true, flexWidth: const FlexWidth(mainViewFlexWidth: 1, secondaryViewFlexWidth: 2), diff --git a/lib/screens/filters/add_button.dart b/lib/screens/filters/add_button.dart index 7f7663e..be9f0f4 100644 --- a/lib/screens/filters/add_button.dart +++ b/lib/screens/filters/add_button.dart @@ -6,8 +6,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:adguard_home_manager/screens/filters/modals/add_custom_rule/edit_custom_rules.dart'; -import 'package:adguard_home_manager/screens/filters/modals/add_custom_rule/add_custom_rule.dart'; +import 'package:adguard_home_manager/screens/filters/modals/custom_rules/edit_custom_rules.dart'; +import 'package:adguard_home_manager/screens/filters/modals/custom_rules/add_custom_rule.dart'; import 'package:adguard_home_manager/screens/filters/details/add_list_modal.dart'; import 'package:adguard_home_manager/providers/filtering_provider.dart'; diff --git a/lib/screens/filters/filters_triple_column.dart b/lib/screens/filters/filters_triple_column.dart index 7d15639..686ee15 100644 --- a/lib/screens/filters/filters_triple_column.dart +++ b/lib/screens/filters/filters_triple_column.dart @@ -247,21 +247,34 @@ class FiltersTripleColumn extends StatelessWidget { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text( - AppLocalizations.of(context)!.customRules, - style: const TextStyle( - fontSize: 18, - fontWeight: FontWeight.w500 + Flexible( + child: Text( + AppLocalizations.of(context)!.customRules, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.w500 + ), ), ), + const SizedBox(width: 16), AddFiltersButton( - type: '', + type: 'edit_custom_rule', + widget: (fn) => IconButton( + onPressed: fn, + icon: const Icon(Icons.edit_rounded), + tooltip: AppLocalizations.of(context)!.editCustomRules, + ) + ), + const SizedBox(width: 8), + AddFiltersButton( + type: 'add_custom_rule', widget: (fn) => IconButton( onPressed: fn, icon: const Icon(Icons.add_rounded), tooltip: AppLocalizations.of(context)!.addCustomRule, ) - ) + ), ], ), ), diff --git a/lib/screens/filters/modals/add_custom_rule/add_custom_rule.dart b/lib/screens/filters/modals/custom_rules/add_custom_rule.dart similarity index 99% rename from lib/screens/filters/modals/add_custom_rule/add_custom_rule.dart rename to lib/screens/filters/modals/custom_rules/add_custom_rule.dart index ad43ebb..00fe303 100644 --- a/lib/screens/filters/modals/add_custom_rule/add_custom_rule.dart +++ b/lib/screens/filters/modals/custom_rules/add_custom_rule.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:segmented_button_slide/segmented_button_slide.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:adguard_home_manager/screens/filters/modals/add_custom_rule/custom_rule_docs.dart'; +import 'package:adguard_home_manager/screens/filters/modals/custom_rules/custom_rule_docs.dart'; enum _BlockingPresets { block, unblock, custom } diff --git a/lib/screens/filters/modals/add_custom_rule/custom_rule_docs.dart b/lib/screens/filters/modals/custom_rules/custom_rule_docs.dart similarity index 100% rename from lib/screens/filters/modals/add_custom_rule/custom_rule_docs.dart rename to lib/screens/filters/modals/custom_rules/custom_rule_docs.dart diff --git a/lib/screens/filters/modals/add_custom_rule/edit_custom_rules.dart b/lib/screens/filters/modals/custom_rules/edit_custom_rules.dart similarity index 95% rename from lib/screens/filters/modals/add_custom_rule/edit_custom_rules.dart rename to lib/screens/filters/modals/custom_rules/edit_custom_rules.dart index e1fc1d1..ba02ab0 100644 --- a/lib/screens/filters/modals/add_custom_rule/edit_custom_rules.dart +++ b/lib/screens/filters/modals/custom_rules/edit_custom_rules.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:adguard_home_manager/screens/filters/modals/add_custom_rule/custom_rule_docs.dart'; +import 'package:adguard_home_manager/screens/filters/modals/custom_rules/custom_rule_docs.dart'; import 'package:adguard_home_manager/providers/filtering_provider.dart'; @@ -26,7 +26,6 @@ class _EditCustomRulesState extends State { @override void initState() { final filteringProvider = Provider.of(context, listen: false); - print(filteringProvider.filtering!.userRules); if (filteringProvider.filtering != null) { _fieldController.text = filteringProvider.filtering!.userRules.join("\n"); } @@ -87,7 +86,7 @@ class _EditCustomRulesState extends State { ), const SizedBox(width: 8), Text( - AppLocalizations.of(context)!.addCustomRule, + AppLocalizations.of(context)!.editCustomRules, style: const TextStyle( fontSize: 22 ), diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index e16a84e..9ebe282 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -83,6 +83,8 @@ class _SettingsWidget extends StatefulWidget { } class _SettingsWidgetState extends State<_SettingsWidget> { + final scaffoldMessengerKey = GlobalKey(); + @override void initState() { Provider.of(context, listen: false).setSelectedSettingsScreen(screen: null); @@ -102,7 +104,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { } return ScaffoldMessenger( - key: widget.twoColumns ? GlobalKey() : null, + key: widget.twoColumns ? scaffoldMessengerKey : null, child: Scaffold( body: NestedScrollView( headerSliverBuilder: (context, innerBoxIsScrolled) => [ From c60b62345b1f265554459e8f9962c622a9a5c783 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 9 Feb 2024 03:01:09 +0100 Subject: [PATCH 118/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 7a260b5..2c1f9b0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.16.0+130 +version: 2.16.1+131 environment: sdk: '>=2.18.1 <3.0.0' From 568b879054f5cf6f2db27458a675115597bfee18 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 18 Feb 2024 21:30:08 +0100 Subject: [PATCH 119/236] Added client name added clients desktop --- lib/screens/clients/client/added_client_tile.dart | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/screens/clients/client/added_client_tile.dart b/lib/screens/clients/client/added_client_tile.dart index 8c10fd7..5af9e46 100644 --- a/lib/screens/clients/client/added_client_tile.dart +++ b/lib/screens/clients/client/added_client_tile.dart @@ -81,7 +81,7 @@ class _AddedClientTileState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - widget.client.ids.toString().replaceAll(RegExp(r'^\[|\]$'), ''), + widget.client.name, style: TextStyle( fontSize: 16, fontWeight: FontWeight.w400, @@ -89,6 +89,15 @@ class _AddedClientTileState extends State { ), ), const SizedBox(height: 8), + Text( + widget.client.ids.toString().replaceAll(RegExp(r'^\[|\]$'), ''), + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w400, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), + const SizedBox(height: 8), Row( children: [ Icon( From 923fb97f031604e64ed8cdfaa40f83934652e766 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 18 Feb 2024 21:37:06 +0100 Subject: [PATCH 120/236] Added date log details --- lib/functions/check_app_updates.dart | 2 +- lib/l10n/app_en.arb | 3 +- lib/l10n/app_es.arb | 3 +- lib/providers/filtering_provider.dart | 1 - .../logs/details/log_details_screen.dart | 333 ++++++++++-------- lib/screens/logs/logs_list_appbar.dart | 2 +- lib/services/api_client.dart | 1 - 7 files changed, 184 insertions(+), 161 deletions(-) diff --git a/lib/functions/check_app_updates.dart b/lib/functions/check_app_updates.dart index e002556..dc08f29 100644 --- a/lib/functions/check_app_updates.dart +++ b/lib/functions/check_app_updates.dart @@ -30,7 +30,7 @@ Future checkAppUpdates({ gitHubRelease: gitHubRelease, isBeta: isBeta ); -print(update); + if (update == true) { setUpdateAvailable(gitHubRelease); diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 1869104..9df4e41 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -774,5 +774,6 @@ "showHide": "Show/hide", "noElementsReorderMessage": "Enable some elements on the show/hide tab to reorder them here.", "enablePlainDns": "Enable plain DNS", - "enablePlainDnsDescription": "Plain DNS is enabled by default. You can disable it to force all devices to use encrypted DNS. To do this, you must enable at least one encrypted DNS protocol." + "enablePlainDnsDescription": "Plain DNS is enabled by default. You can disable it to force all devices to use encrypted DNS. To do this, you must enable at least one encrypted DNS protocol.", + "date": "Date" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 7070fea..eed494f 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -774,5 +774,6 @@ "showHide": "Mostrar/ocultar", "noElementsReorderMessage": "Activa algunos elementos en la pestaña de mostrar/ocultar para reordenarlos aquí.", "enablePlainDns": "Activar DNS simple (sin cifrado)", - "enablePlainDnsDescription": "El DNS simple (sin cifrado) está activado de forma predeterminada. Puedes desactivarlo para obligar a todos los dispositivos a utilizar DNS cifrado. Para ello, debes habilitar al menos un protocolo DNS cifrado." + "enablePlainDnsDescription": "El DNS simple (sin cifrado) está activado de forma predeterminada. Puedes desactivarlo para obligar a todos los dispositivos a utilizar DNS cifrado. Para ello, debes habilitar al menos un protocolo DNS cifrado.", + "date": "Fecha" } \ No newline at end of file diff --git a/lib/providers/filtering_provider.dart b/lib/providers/filtering_provider.dart index d43a1b5..9947233 100644 --- a/lib/providers/filtering_provider.dart +++ b/lib/providers/filtering_provider.dart @@ -133,7 +133,6 @@ class FilteringProvider with ChangeNotifier { if (result2.successful == true) { _filtering = result2.content as Filtering; notifyListeners(); - print(result.content); return { "success": true, "data": result.content diff --git a/lib/screens/logs/details/log_details_screen.dart b/lib/screens/logs/details/log_details_screen.dart index 42918dd..0c35f35 100644 --- a/lib/screens/logs/details/log_details_screen.dart +++ b/lib/screens/logs/details/log_details_screen.dart @@ -37,27 +37,6 @@ class LogDetailsScreen extends StatelessWidget { final width = MediaQuery.of(context).size.width; - Filter? getList(int id) { - try { - return statusProvider.filteringStatus!.filters.firstWhere((filter) => filter.id == id, orElse: () { - return statusProvider.filteringStatus!.whitelistFilters.firstWhere((filter) => filter.id == id); - }); - } catch (_) { - return null; - } - } - - Widget getResult() { - final filter = getFilteredStatus(context, appConfigProvider, log.reason, true); - return Text( - filter['label'], - style: TextStyle( - color: filter['color'], - fontWeight: FontWeight.w500 - ), - ); - } - void blockUnblock(String domain, String newStatus) async { final ProcessModal processModal = ProcessModal(); processModal.open(AppLocalizations.of(context)!.savingUserFilters); @@ -85,8 +64,175 @@ class LogDetailsScreen extends StatelessWidget { } } - List content() { - return [ + if (dialog) { + return Dialog( + child: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: 500 + ), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.all(16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + IconButton( + onPressed: () => Navigator.pop(context), + icon: const Icon(Icons.clear_rounded) + ), + const SizedBox(width: 16), + Text( + AppLocalizations.of(context)!.logDetails, + style: const TextStyle( + fontSize: 22 + ), + ), + ], + ), + Row( + children: [ + IconButton( + onPressed: () => openUrl("${Urls.googleSearchUrl}?q=${log.question.name}"), + icon: const Icon(Icons.travel_explore_rounded), + tooltip: AppLocalizations.of(context)!.searchDomainInternet + ), + IconButton( + onPressed: log.question.name != null + ? () => blockUnblock( + log.question.name!, + getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true ? 'unblock' : 'block' + ) + : null, + icon: Icon( + getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true + ? Icons.check_circle_rounded + : Icons.block + ), + tooltip: getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true + ? AppLocalizations.of(context)!.unblockDomain + : AppLocalizations.of(context)!.blockDomain, + ), + ], + ) + ], + ), + ), + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 8), + child: ListView( + children: [ + _Content(log: log) + ] + ) + ), + ) + ], + ), + ), + ); + } + else { + return Scaffold( + body: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar.large( + pinned: true, + floating: true, + centerTitle: false, + forceElevated: innerBoxIsScrolled, + surfaceTintColor: isDesktop(width) ? Colors.transparent : null, + title: Text(AppLocalizations.of(context)!.logDetails), + actions: [ + IconButton( + onPressed: () => openUrl("${Urls.googleSearchUrl}?q=${log.question.name}"), + icon: const Icon(Icons.travel_explore_rounded), + tooltip: AppLocalizations.of(context)!.searchDomainInternet + ), + if (statusProvider.filteringStatus != null) IconButton( + onPressed: log.question.name != null + ? () => blockUnblock( + log.question.name!, + getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true ? 'unblock' : 'block' + ) + : null, + icon: Icon( + getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true + ? Icons.check_circle_rounded + : Icons.block + ), + tooltip: getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true + ? AppLocalizations.of(context)!.unblockDomain + : AppLocalizations.of(context)!.blockDomain, + ), + const SizedBox(width: 10) + ], + ), + ) + ], + body: SafeArea( + top: false, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + SliverList.list( + children: [ + _Content(log: log) + ] + ) + ], + ), + ) + ) + ), + ); + } + } +} + +class _Content extends StatelessWidget { + final Log log; + + const _Content({ + required this.log, + }); + + @override + Widget build(BuildContext context) { + final appConfigProvider = Provider.of(context); + final statusProvider = Provider.of(context); + + Widget getResult() { + final filter = getFilteredStatus(context, appConfigProvider, log.reason, true); + return Text( + filter['label'], + style: TextStyle( + color: filter['color'], + fontWeight: FontWeight.w500 + ), + ); + } + + Filter? getList(int id) { + try { + return statusProvider.filteringStatus!.filters.firstWhere((filter) => filter.id == id, orElse: () { + return statusProvider.filteringStatus!.whitelistFilters.firstWhere((filter) => filter.id == id); + }); + } catch (_) { + return null; + } + } + + return Column( + children: [ SectionLabel(label: AppLocalizations.of(context)!.status), LogListTile( icon: Icons.shield_rounded, @@ -118,6 +264,11 @@ class LogDetailsScreen extends StatelessWidget { title: AppLocalizations.of(context)!.blockingRule, subtitle: log.rule ), + LogListTile( + icon: Icons.calendar_month_rounded, + title: AppLocalizations.of(context)!.date, + subtitle: convertTimestampLocalTimezone(log.time, 'dd-MM-yyyy') + ), LogListTile( icon: Icons.schedule, title: AppLocalizations.of(context)!.time, @@ -180,7 +331,7 @@ class LogDetailsScreen extends StatelessWidget { else { return const SizedBox(); } - }).toList() + }) ], if (log.answer.isNotEmpty) ...[ SectionLabel(label: AppLocalizations.of(context)!.answers), @@ -206,137 +357,9 @@ class LogDetailsScreen extends StatelessWidget { ), ), ) - )).toList() + )) ] - ]; - } - - if (dialog) { - return Dialog( - child: ConstrainedBox( - constraints: const BoxConstraints( - maxWidth: 500 - ), - child: Column( - children: [ - Padding( - padding: const EdgeInsets.all(16), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - children: [ - IconButton( - onPressed: () => Navigator.pop(context), - icon: const Icon(Icons.clear_rounded) - ), - const SizedBox(width: 16), - Text( - AppLocalizations.of(context)!.logDetails, - style: const TextStyle( - fontSize: 22 - ), - ), - ], - ), - Row( - children: [ - IconButton( - onPressed: () => openUrl("${Urls.googleSearchUrl}?q=${log.question.name}"), - icon: const Icon(Icons.travel_explore_rounded), - tooltip: AppLocalizations.of(context)!.searchDomainInternet - ), - IconButton( - onPressed: log.question.name != null - ? () => blockUnblock( - log.question.name!, - getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true ? 'unblock' : 'block' - ) - : null, - icon: Icon( - getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true - ? Icons.check_circle_rounded - : Icons.block - ), - tooltip: getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true - ? AppLocalizations.of(context)!.unblockDomain - : AppLocalizations.of(context)!.blockDomain, - ), - ], - ) - ], - ), - ), - Expanded( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 8), - child: ListView( - children: content(), - ) - ), - ) - ], - ), - ), - ); - } - else { - return Scaffold( - body: NestedScrollView( - headerSliverBuilder: (context, innerBoxIsScrolled) => [ - SliverOverlapAbsorber( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - sliver: SliverAppBar.large( - pinned: true, - floating: true, - centerTitle: false, - forceElevated: innerBoxIsScrolled, - surfaceTintColor: isDesktop(width) ? Colors.transparent : null, - title: Text(AppLocalizations.of(context)!.logDetails), - actions: [ - IconButton( - onPressed: () => openUrl("${Urls.googleSearchUrl}?q=${log.question.name}"), - icon: const Icon(Icons.travel_explore_rounded), - tooltip: AppLocalizations.of(context)!.searchDomainInternet - ), - if (statusProvider.filteringStatus != null) IconButton( - onPressed: log.question.name != null - ? () => blockUnblock( - log.question.name!, - getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true ? 'unblock' : 'block' - ) - : null, - icon: Icon( - getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true - ? Icons.check_circle_rounded - : Icons.block - ), - tooltip: getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true - ? AppLocalizations.of(context)!.unblockDomain - : AppLocalizations.of(context)!.blockDomain, - ), - const SizedBox(width: 10) - ], - ), - ) - ], - body: SafeArea( - top: false, - child: Builder( - builder: (context) => CustomScrollView( - slivers: [ - SliverOverlapInjector( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - ), - SliverList.list( - children: content() - ) - ], - ), - ) - ) - ), - ); - } + ], + ); } } \ No newline at end of file diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index e4bf2ed..9b5ab3b 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -62,7 +62,7 @@ class LogsListAppBar extends StatelessWidget { "blocked_parental": AppLocalizations.of(context)!.blockedParentalRow, "safe_search": AppLocalizations.of(context)!.safeSearch, }; -print(MediaQuery.of(context).viewPadding.top); + return SliverAppBar.large( pinned: true, floating: true, diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart index 4f8ba90..9bc283e 100644 --- a/lib/services/api_client.dart +++ b/lib/services/api_client.dart @@ -913,7 +913,6 @@ class ApiClientV2 { server: server, body: body ); - print(result.body); return ApiResponse(successful: result.successful); } } \ No newline at end of file From e21e34668d051ca81059f2b508e49a432e8d6afc Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 18 Feb 2024 21:41:20 +0100 Subject: [PATCH 121/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 2c1f9b0..94c5042 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.16.1+131 +version: 2.16.2+132 environment: sdk: '>=2.18.1 <3.0.0' From dcad63fe5c0d7388274fd00ae632def0639179c0 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 21 Feb 2024 02:34:36 +0100 Subject: [PATCH 122/236] New update server screen --- lib/l10n/app_en.arb | 3 +- lib/l10n/app_es.arb | 3 +- lib/screens/settings/settings.dart | 2 +- .../settings/update_server/update_screen.dart | 320 ++++++++++++++++++ 4 files changed, 325 insertions(+), 3 deletions(-) create mode 100644 lib/screens/settings/update_server/update_screen.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 9df4e41..439dac5 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -775,5 +775,6 @@ "noElementsReorderMessage": "Enable some elements on the show/hide tab to reorder them here.", "enablePlainDns": "Enable plain DNS", "enablePlainDnsDescription": "Plain DNS is enabled by default. You can disable it to force all devices to use encrypted DNS. To do this, you must enable at least one encrypted DNS protocol.", - "date": "Date" + "date": "Date", + "loadingChangelog": "Loading changelog..." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index eed494f..79aaa7d 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -775,5 +775,6 @@ "noElementsReorderMessage": "Activa algunos elementos en la pestaña de mostrar/ocultar para reordenarlos aquí.", "enablePlainDns": "Activar DNS simple (sin cifrado)", "enablePlainDnsDescription": "El DNS simple (sin cifrado) está activado de forma predeterminada. Puedes desactivarlo para obligar a todos los dispositivos a utilizar DNS cifrado. Para ello, debes habilitar al menos un protocolo DNS cifrado.", - "date": "Fecha" + "date": "Fecha", + "loadingChangelog": "Cargando registro de cambios..." } \ No newline at end of file diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index 9ebe282..718593e 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -14,7 +14,7 @@ import 'package:adguard_home_manager/screens/settings/customization/customizatio import 'package:adguard_home_manager/screens/settings/dhcp/dhcp.dart'; import 'package:adguard_home_manager/screens/settings/statistics_settings/statistics_settings.dart'; import 'package:adguard_home_manager/screens/settings/safe_search_settings.dart'; -import 'package:adguard_home_manager/screens/settings/update_server/update.dart'; +import 'package:adguard_home_manager/screens/settings/update_server/update_screen.dart'; import 'package:adguard_home_manager/screens/settings/dns/dns.dart'; import 'package:adguard_home_manager/screens/settings/dns_rewrites/dns_rewrites.dart'; import 'package:adguard_home_manager/screens/servers/servers.dart'; diff --git a/lib/screens/settings/update_server/update_screen.dart b/lib/screens/settings/update_server/update_screen.dart new file mode 100644 index 0000000..4dd4b52 --- /dev/null +++ b/lib/screens/settings/update_server/update_screen.dart @@ -0,0 +1,320 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_html/flutter_html.dart'; +import 'package:html/parser.dart' as html; +import 'package:markdown/markdown.dart' as md; +import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/constants/enums.dart'; +import 'package:adguard_home_manager/classes/process_modal.dart'; +import 'package:adguard_home_manager/functions/snackbar.dart'; +import 'package:adguard_home_manager/functions/open_url.dart'; +import 'package:adguard_home_manager/providers/app_config_provider.dart'; +import 'package:adguard_home_manager/providers/servers_provider.dart'; + +const _minExent = 64.0; +const _maxExent = 240.0; + +const _iconMaxBottomPositionExent = 130.0; +const _iconMinBottomPositionExent = 34.0; + +const _textMaxBottomPositionExent = 70.0; +const _textMinBottomPositionExent = 16.0; + +const _versionTextMaxBottomPositionExent = 30.0; +const _versionTextMinBottomPositionExent = 0.0; + +const _textMaxFontSize = 24.0; +const _textMinFontSize = 22.0; + +const _iconSafetyMargin = 15.0; + +const _iconSize = 45.0; + +class UpdateScreen extends StatefulWidget { + const UpdateScreen({super.key}); + + @override + State createState() => _UpdateScreenState(); +} + +class _UpdateScreenState extends State { + final _scrollController = ScrollController(); + bool _isScrolled = false; + + String? _htmlChangelog; + + void processChangelog() async { + final serversProvider = Provider.of(context, listen: false); + final markdownResult = await compute(md.markdownToHtml, serversProvider.updateAvailable.data!.changelog!); + final htmlParsedResult = await compute(html.parse, markdownResult); + setState(() => _htmlChangelog = htmlParsedResult.outerHtml); + } + + @override + void initState() { + final serversProvider = Provider.of(context, listen: false); + _scrollController.addListener(() { + final newValue = _scrollController.offset > 20; + if (!( + serversProvider.updatingServer == false && + serversProvider.updateAvailable.data!.canAutoupdate != null && + serversProvider.updateAvailable.data!.canAutoupdate == true + )) return; + if (_isScrolled == newValue) return; + setState(() => _isScrolled = newValue); + }); + + processChangelog(); + + super.initState(); + } + + @override + Widget build(BuildContext context) { + final serversProvider = Provider.of(context); + final appConfigProvider = Provider.of(context); + + void update() async { + ProcessModal processModal = ProcessModal(); + processModal.open(AppLocalizations.of(context)!.requestingUpdate); + + final result = await serversProvider.apiClient2!.requestUpdateServer(); + + processModal.close(); + + if (!mounted) return; + if (result.successful == true) { + serversProvider.recheckPeriodServerUpdated(); + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.requestStartUpdateSuccessful, + color: Colors.green, + labelColor: Colors.white, + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.requestStartUpdateFailed, + color: Colors.red, + labelColor: Colors.white, + ); + } + } + + return Scaffold( + body: SafeArea( + top: false, + child: Stack( + children: [ + CustomScrollView( + controller: _scrollController, + slivers: [ + SliverPersistentHeader( + pinned: true, + delegate: _Header( + onRefresh: () => serversProvider.checkServerUpdatesAvailable( + server: serversProvider.selectedServer!, + ), + viewPaddingTop: MediaQuery.of(context).viewPadding.top + ) + ), + SliverList.list( + children: [ + const SizedBox(height: 16), + if (_htmlChangelog != null) Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Text( + "Changelog ${serversProvider.updateAvailable.data!.canAutoupdate == true + ? serversProvider.updateAvailable.data!.newVersion + : serversProvider.updateAvailable.data!.currentVersion}", + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + ), + if (_htmlChangelog != null) Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: Html( + data: _htmlChangelog, + onLinkTap: (url, context, attributes) => url != null ? openUrl(url) : null, + ) + ), + if (_htmlChangelog == null) Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 32), + child: Column( + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingChangelog, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ) + ], + ) + ), + ] + ) + ], + ), + if ( + serversProvider.updatingServer == false && + serversProvider.updateAvailable.data!.canAutoupdate != null && + serversProvider.updateAvailable.data!.canAutoupdate == true + ) AnimatedPositioned( + right: 20, + bottom: _isScrolled ? -70 : 20, + duration: const Duration(milliseconds: 200), + curve: Curves.ease, + child: FloatingActionButton( + onPressed: () => update(), + tooltip: AppLocalizations.of(context)!.updateNow, + child: const Icon(Icons.download_rounded), + ), + ) + ], + ), + ), + ); + } +} + +class _Header extends SliverPersistentHeaderDelegate { + final void Function() onRefresh; + final double viewPaddingTop; + + const _Header({ + required this.onRefresh, + required this.viewPaddingTop, + }); + + @override + Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) { + final serversProvider = Provider.of(context); + + final iconMaxBottomPositionExent = _iconMaxBottomPositionExent + viewPaddingTop; + final iconMinBottomPositionExent = _iconMinBottomPositionExent + viewPaddingTop; + final textMaxBottomPositionExent = _textMaxBottomPositionExent + viewPaddingTop; + final textMinBottomPositionExent = _textMinBottomPositionExent + viewPaddingTop; + final versionTextMaxBottomPositionExent = _versionTextMaxBottomPositionExent + viewPaddingTop; + final versionTextMinBottomPositionExent = _versionTextMinBottomPositionExent + viewPaddingTop; + + final iconPercentage = shrinkOffset.clamp(0, _maxExent-_minExent-_iconSafetyMargin)/(_maxExent-_minExent-_iconSafetyMargin); + final textPercentage = shrinkOffset.clamp(0, _maxExent-_minExent)/(_maxExent-_minExent); + + final textFontSize = _textMinFontSize + (_textMaxFontSize-_textMinFontSize)*(1-textPercentage); + final mainText = _textMinBottomPositionExent + (textMaxBottomPositionExent-textMinBottomPositionExent)*(1-textPercentage); + final versionText = _versionTextMinBottomPositionExent + (versionTextMaxBottomPositionExent-versionTextMinBottomPositionExent)*(1-textPercentage); + + final iconBottom = _iconMinBottomPositionExent + (iconMaxBottomPositionExent-iconMinBottomPositionExent)*(1-iconPercentage); + + return LayoutBuilder( + builder: (context, constraints) => Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surfaceVariant, + ), + child: Align( + alignment: Alignment.topLeft, + child: SafeArea( + bottom: false, + child: Stack( + fit: StackFit.expand, + alignment: Alignment.center, + children: [ + if (Navigator.of(context).canPop()) Positioned( + top: 8, + left: 0, + child: BackButton( + onPressed: () => Navigator.pop(context), + ), + ), + Positioned( + top: 8, + right: 0, + child: IconButton( + onPressed: onRefresh, + icon: const Icon(Icons.refresh_rounded), + tooltip: AppLocalizations.of(context)!.refresh, + ) + ), + Positioned( + bottom: iconBottom, + left: (constraints.maxWidth/2)-(_iconSize/2), + child: Opacity( + opacity: 1-iconPercentage, + child: Icon( + serversProvider.updateAvailable.data!.canAutoupdate == true + ? Icons.system_update_rounded + : Icons.system_security_update_good_rounded, + size: _iconSize, + color: Theme.of(context).colorScheme.primary, + ), + ), + ), + Positioned( + bottom: mainText, + child: ConstrainedBox( + constraints: BoxConstraints( + maxWidth: constraints.maxWidth-100 + ), + child: Text( + serversProvider.updateAvailable.loadStatus == LoadStatus.loading + ? AppLocalizations.of(context)!.checkingUpdates + : serversProvider.updateAvailable.data!.canAutoupdate == true + ? AppLocalizations.of(context)!.updateAvailable + : AppLocalizations.of(context)!.serverUpdated, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: textFontSize, + fontWeight: FontWeight.w400 + ), + ), + ) + ), + Positioned( + bottom: versionText, + child: ConstrainedBox( + constraints: BoxConstraints( + maxWidth: constraints.maxWidth-100 + ), + child: Opacity( + opacity: 1-iconPercentage, + child: Text( + serversProvider.updateAvailable.data!.canAutoupdate == true + ? "${AppLocalizations.of(context)!.newVersion}: ${serversProvider.updateAvailable.data!.newVersion ?? 'N/A'}" + : "${AppLocalizations.of(context)!.installedVersion}: ${serversProvider.updateAvailable.data!.currentVersion}", + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w700, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + ), + ) + ) + ], + ), + ), + ), + ), + ); + } + + @override + double get maxExtent => _maxExent + viewPaddingTop; + + @override + double get minExtent => _minExent + viewPaddingTop; + + @override + bool shouldRebuild(covariant SliverPersistentHeaderDelegate oldDelegate) => false; +} \ No newline at end of file From 7a89aea3a59540c9e7ad92ac93f650702698bc18 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 21 Feb 2024 10:50:02 +0100 Subject: [PATCH 123/236] Changed dns addresses modal --- .../server_info/dns_addresses_modal.dart | 93 +++++++++++-------- .../settings/server_info/server_info.dart | 27 ++++-- 2 files changed, 76 insertions(+), 44 deletions(-) diff --git a/lib/screens/settings/server_info/dns_addresses_modal.dart b/lib/screens/settings/server_info/dns_addresses_modal.dart index 2a6fa2f..e5fb87a 100644 --- a/lib/screens/settings/server_info/dns_addresses_modal.dart +++ b/lib/screens/settings/server_info/dns_addresses_modal.dart @@ -1,54 +1,71 @@ import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; +import 'package:adguard_home_manager/widgets/list_bottom_sheet.dart'; + class DnsAddressesModal extends StatelessWidget { + final bool isDialog; final List dnsAddresses; const DnsAddressesModal({ - Key? key, + super.key, + required this.isDialog, required this.dnsAddresses, - }) : super(key: key); + }); @override Widget build(BuildContext context) { - return AlertDialog( - title: Column( - children: [ - Icon( - Icons.route_rounded, - color: Theme.of(context).listTileTheme.iconColor - ), - const SizedBox(height: 16), - Text( - AppLocalizations.of(context)!.dnsAddresses, - style: TextStyle( - color: Theme.of(context).colorScheme.onSurface + if (isDialog == true) { + return AlertDialog( + title: Column( + children: [ + Icon( + Icons.route_rounded, + color: Theme.of(context).listTileTheme.iconColor ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.dnsAddresses, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ) + ], + ), + content: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 500), + child: SingleChildScrollView( + child: Wrap( + children: dnsAddresses.map((address) => ListTile( + title: Text( + address, + style: TextStyle( + fontWeight: FontWeight.normal, + color: Theme.of(context).listTileTheme.textColor + ), + ), + )).toList(), + ), + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.close) ) ], - ), - content: SizedBox( - height: dnsAddresses.length*56 < 500 - ? dnsAddresses.length*56 : 500, - width: double.minPositive, - child: ListView( - children: dnsAddresses.map((address) => ListTile( - title: Text( - address, - style: TextStyle( - fontWeight: FontWeight.normal, - color: Theme.of(context).listTileTheme.textColor - ), - ), - )).toList(), - ), - ), - actions: [ - TextButton( - onPressed: () => Navigator.pop(context), - child: Text(AppLocalizations.of(context)!.close) - ) - ], - ); + ); + } + else { + return ListBottomSheet( + icon: Icons.route_rounded, + title: AppLocalizations.of(context)!.dnsAddresses, + children: dnsAddresses.map((address) => CustomListTile( + title: address, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16), + )).toList(), + ); + } } } \ No newline at end of file diff --git a/lib/screens/settings/server_info/server_info.dart b/lib/screens/settings/server_info/server_info.dart index b15d8e0..85de4f6 100644 --- a/lib/screens/settings/server_info/server_info.dart +++ b/lib/screens/settings/server_info/server_info.dart @@ -86,12 +86,27 @@ class _ServerInformationState extends State { title: AppLocalizations.of(context)!.dnsAddresses, subtitle: AppLocalizations.of(context)!.seeDnsAddresses, onTap: () { - showModal( - context: context, - builder: (context) => DnsAddressesModal( - dnsAddresses: serverInfo.data!.dnsAddresses - ) - ); + if (width > 700) { + showDialog( + context: context, + builder: (context) => DnsAddressesModal( + dnsAddresses: serverInfo.data!.dnsAddresses, + isDialog: true, + ) + ); + } + else { + showModalBottomSheet( + context: context, + builder: (context) => DnsAddressesModal( + dnsAddresses: serverInfo.data!.dnsAddresses, + isDialog: false, + ), + isScrollControlled: true, + backgroundColor: Colors.transparent, + useSafeArea: true + ); + } }, ), CustomListTile( From e603814d42834ebeda1d7e3015674536ac3c99eb Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 21 Feb 2024 10:50:33 +0100 Subject: [PATCH 124/236] Removed unused imports --- lib/screens/settings/server_info/server_info.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/screens/settings/server_info/server_info.dart b/lib/screens/settings/server_info/server_info.dart index 85de4f6..9757497 100644 --- a/lib/screens/settings/server_info/server_info.dart +++ b/lib/screens/settings/server_info/server_info.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:animations/animations.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; From 693e66e125f0556918a8dbfd0ac0a0593f2579c6 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 21 Feb 2024 13:14:36 +0100 Subject: [PATCH 125/236] Added loading indicator --- .../settings/update_server/update_screen.dart | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/screens/settings/update_server/update_screen.dart b/lib/screens/settings/update_server/update_screen.dart index 4dd4b52..aa85e7c 100644 --- a/lib/screens/settings/update_server/update_screen.dart +++ b/lib/screens/settings/update_server/update_screen.dart @@ -250,13 +250,20 @@ class _Header extends SliverPersistentHeaderDelegate { left: (constraints.maxWidth/2)-(_iconSize/2), child: Opacity( opacity: 1-iconPercentage, - child: Icon( - serversProvider.updateAvailable.data!.canAutoupdate == true - ? Icons.system_update_rounded - : Icons.system_security_update_good_rounded, - size: _iconSize, - color: Theme.of(context).colorScheme.primary, - ), + child: serversProvider.updateAvailable.loadStatus == LoadStatus.loading + ? const Column( + children: [ + CircularProgressIndicator(), + SizedBox(height: 4) + ], + ) + : Icon( + serversProvider.updateAvailable.data!.canAutoupdate == true + ? Icons.system_update_rounded + : Icons.system_security_update_good_rounded, + size: _iconSize, + color: Theme.of(context).colorScheme.primary, + ), ), ), Positioned( From f624fdbc43b61f36f9d94e153a0d1be774ab6f56 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 21 Feb 2024 13:16:37 +0100 Subject: [PATCH 126/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 94c5042..3ef7c66 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.16.2+132 +version: 2.16.3+133 environment: sdk: '>=2.18.1 <3.0.0' From 19ae91905f7bcbb3f9a2e97ce816f9ef2a497be6 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 14:43:25 +0100 Subject: [PATCH 127/236] Added project specific vscode settings --- .vscode/settings.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9ad1ad1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,12 @@ +{ + "editor.formatOnSave": false, + "editor.defaultFormatter": "Dart-Code.flutter", + "dart.lineLength": 120, + "[dart]": { + "editor.rulers": [ + 120 + ], + "editor.defaultFormatter": "Dart-Code.dart-code", + "editor.formatOnSave": false, + } +} \ No newline at end of file From 8859468a660418160b791371a8f7391536187d16 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 14:44:00 +0100 Subject: [PATCH 128/236] Updated libraries --- pubspec.lock | 120 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 76 insertions(+), 44 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index c1c90ca..38751b2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -189,10 +189,10 @@ packages: dependency: transitive description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" file: dependency: transitive description: @@ -213,10 +213,10 @@ packages: dependency: "direct main" description: name: fl_chart - sha256: b5e2b0f13d93f8c532b5a2786bfb44580de1f50b927bf95813fa1af617e9caf8 + sha256: "00b74ae680df6b1135bdbea00a7d1fc072a9180b7c3f3702e4b19a9943f5ed7d" url: "https://pub.dev" source: hosted - version: "0.66.1" + version: "0.66.2" flutter: dependency: "direct main" description: flutter @@ -311,10 +311,10 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: "30088ce826b5b9cfbf9e8bece34c716c8a59fa54461dcae1e4ac01a94639e762" + sha256: a64c5323ac83ed2b7940d2b6288d160aa1753ff271ba9d9b2a86770414aa3eab url: "https://pub.dev" source: hosted - version: "0.6.18+3" + version: "0.6.20+1" flutter_native_splash: dependency: "direct dev" description: @@ -344,10 +344,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: d39e7f95621fc84376bc0f7d504f05c3a41488c562f4a8ad410569127507402c + sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" url: "https://pub.dev" source: hosted - version: "2.0.9" + version: "2.0.10+1" flutter_test: dependency: "direct dev" description: flutter @@ -386,10 +386,10 @@ packages: dependency: transitive description: name: image - sha256: "49a0d4b0c12402853d3f227fe7c315601b238d126aa4caa5dbb2dcf99421aa4a" + sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e" url: "https://pub.dev" source: hosted - version: "4.1.6" + version: "4.1.7" intl: dependency: "direct main" description: @@ -414,6 +414,30 @@ packages: url: "https://pub.dev" source: hosted version: "4.8.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" lints: dependency: transitive description: @@ -442,26 +466,26 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.0" nested: dependency: transitive description: @@ -490,10 +514,10 @@ packages: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" path_parsing: dependency: transitive description: @@ -578,10 +602,10 @@ packages: dependency: "direct main" description: name: provider - sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096" + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c url: "https://pub.dev" source: hosted - version: "6.1.1" + version: "6.1.2" segmented_button_slide: dependency: "direct main" description: @@ -594,18 +618,18 @@ packages: dependency: transitive description: name: sentry - sha256: a7946f4a90b0feb47214981d881b98149e05f6c576da9f2a2f33945bf561de25 + sha256: d2ee9c850d876d285f22e2e662f400ec2438df9939fe4acd5d780df9841794ce url: "https://pub.dev" source: hosted - version: "7.16.0" + version: "7.16.1" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: "6db7fa1b076faf2f5dd77d8cc9ef206171f32a290cc638842d78e5d62b441a27" + sha256: "5b428c189c825f16fb14e9166529043f06b965d5b59bfc3a1415e39c082398c0" url: "https://pub.dev" source: hosted - version: "7.16.0" + version: "7.16.1" shared_preferences: dependency: "direct main" description: @@ -711,10 +735,10 @@ packages: dependency: transitive description: name: sqlite3 - sha256: c4a4c5a4b2a32e2d0f6837b33d7c91a67903891a5b7dbe706cf4b1f6b0c798c5 + sha256: "072128763f1547e3e9b4735ce846bfd226d68019ccda54db4cd427b12dfdedc9" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.4.0" sqlite3_flutter_libs: dependency: "direct main" description: @@ -807,26 +831,26 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c + sha256: "0ecc004c62fd3ed36a2ffcbe0dd9700aee63bd7532d0b642a488b1ec310f492e" url: "https://pub.dev" source: hosted - version: "6.2.4" + version: "6.2.5" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f" + sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745 url: "https://pub.dev" source: hosted - version: "6.2.2" + version: "6.3.0" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" + sha256: "9149d493b075ed740901f3ee844a38a00b33116c7c5c10d7fb27df8987fb51d5" url: "https://pub.dev" source: hosted - version: "6.2.4" + version: "6.2.5" url_launcher_linux: dependency: transitive description: @@ -847,10 +871,10 @@ packages: dependency: transitive description: name: url_launcher_platform_interface - sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" url_launcher_web: dependency: transitive description: @@ -879,26 +903,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "4ac59808bbfca6da38c99f415ff2d3a5d7ca0a6b4809c71d9cf30fba5daf9752" + sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" url: "https://pub.dev" source: hosted - version: "1.1.10+1" + version: "1.1.11+1" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: f3247e7ab0ec77dc759263e68394990edc608fb2b480b80db8aa86ed09279e33 + sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da url: "https://pub.dev" source: hosted - version: "1.1.10+1" + version: "1.1.11+1" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "18489bdd8850de3dd7ca8a34e0c446f719ec63e2bab2e7a8cc66a9028dd76c5a" + sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" url: "https://pub.dev" source: hosted - version: "1.1.10+1" + version: "1.1.11+1" vector_math: dependency: transitive description: @@ -907,14 +931,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + url: "https://pub.dev" + source: hosted + version: "13.0.0" web: dependency: transitive description: name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05" url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "0.4.2" win32: dependency: transitive description: @@ -965,5 +997,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.2.0 <4.0.0" - flutter: ">=3.16.0" + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.19.0" From 0821fd4e0e442565ed13fd8b66e877976195e7a5 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 14:44:10 +0100 Subject: [PATCH 129/236] Fix duplicated snackbars logs --- lib/screens/logs/logs_list.dart | 354 +++++++++++++++-------------- lib/screens/settings/settings.dart | 4 +- 2 files changed, 181 insertions(+), 177 deletions(-) diff --git a/lib/screens/logs/logs_list.dart b/lib/screens/logs/logs_list.dart index ced94ca..6036f77 100644 --- a/lib/screens/logs/logs_list.dart +++ b/lib/screens/logs/logs_list.dart @@ -33,6 +33,7 @@ class LogsListWidget extends StatefulWidget { } class _LogsListWidgetState extends State { + final _scaffoldMessengerKey = GlobalKey(); bool showDivider = true; void fetchFilteringRules() async { @@ -93,194 +94,197 @@ class _LogsListWidgetState extends State { Widget build(BuildContext context) { final logsProvider = Provider.of(context); - return Scaffold( - body: NestedScrollView( - headerSliverBuilder: (context, innerBoxIsScrolled) => [ - SliverOverlapAbsorber( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - sliver: LogsListAppBar( - innerBoxIsScrolled: innerBoxIsScrolled, - showDivider: showDivider, + return ScaffoldMessenger( + key: widget.twoColumns ? _scaffoldMessengerKey : null, + child: Scaffold( + body: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: LogsListAppBar( + innerBoxIsScrolled: innerBoxIsScrolled, + showDivider: showDivider, + ) ) - ) - ], - body: Builder( - builder: (context) { - switch (logsProvider.loadStatus) { - case LoadStatus.loading: - return SafeArea( - top: false, - bottom: false, - child: Builder( - builder: (context) => CustomScrollView( - slivers: [ - SliverOverlapInjector( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - ), - SliverFillRemaining( - child: SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingLogs, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), + ], + body: Builder( + builder: (context) { + switch (logsProvider.loadStatus) { + case LoadStatus.loading: + return SafeArea( + top: false, + bottom: false, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + SliverFillRemaining( + child: SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingLogs, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ) ) - ) - ], - ), - ) - ); - - case LoadStatus.loaded: - return SafeArea( - top: false, - bottom: false, - child: Builder( - builder: (context) => RefreshIndicator( - onRefresh: () async { - await logsProvider.fetchLogs(inOffset: 0); - }, - displacement: 95, - child: NotificationListener( - onNotification: scrollListener, - child: CustomScrollView( - slivers: [ - SliverOverlapInjector( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - ), - if (logsProvider.logsData!.data.isNotEmpty) SliverList.builder( - itemCount: logsProvider.isLoadingMore - ? logsProvider.logsData!.data.length + 1 - : logsProvider.logsData!.data.length, - itemBuilder: (context, index) { - if (logsProvider.isLoadingMore == true && index == logsProvider.logsData!.data.length) { - return const Padding( - padding: EdgeInsets.symmetric(vertical: 20), - child: Center( - child: CircularProgressIndicator(), - ), - ); - } - else if (logsProvider.logsData!.data[index].question.name != null) { - return LogTile( - log: logsProvider.logsData!.data[index], - index: index, - length: logsProvider.logsData!.data.length, - isLogSelected: widget.selectedLog != null && widget.selectedLog == logsProvider.logsData!.data[index], - onLogTap: (log) { - if (!widget.twoColumns) { - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => LogDetailsScreen( - log: log, - dialog: false, + ], + ), + ) + ); + + case LoadStatus.loaded: + return SafeArea( + top: false, + bottom: false, + child: Builder( + builder: (context) => RefreshIndicator( + onRefresh: () async { + await logsProvider.fetchLogs(inOffset: 0); + }, + displacement: 95, + child: NotificationListener( + onNotification: scrollListener, + child: CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + if (logsProvider.logsData!.data.isNotEmpty) SliverList.builder( + itemCount: logsProvider.isLoadingMore + ? logsProvider.logsData!.data.length + 1 + : logsProvider.logsData!.data.length, + itemBuilder: (context, index) { + if (logsProvider.isLoadingMore == true && index == logsProvider.logsData!.data.length) { + return const Padding( + padding: EdgeInsets.symmetric(vertical: 20), + child: Center( + child: CircularProgressIndicator(), + ), + ); + } + else if (logsProvider.logsData!.data[index].question.name != null) { + return LogTile( + log: logsProvider.logsData!.data[index], + index: index, + length: logsProvider.logsData!.data.length, + isLogSelected: widget.selectedLog != null && widget.selectedLog == logsProvider.logsData!.data[index], + onLogTap: (log) { + if (!widget.twoColumns) { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => LogDetailsScreen( + log: log, + dialog: false, + ) ) - ) - ); - } - widget.onLogSelected(log); - }, - twoColumns: widget.twoColumns, - ); + ); + } + widget.onLogSelected(log); + }, + twoColumns: widget.twoColumns, + ); + } + else { + return null; + } } - else { - return null; - } - } - ), - if (logsProvider.logsData!.data.isEmpty) SliverFillRemaining( - child: Center( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - AppLocalizations.of(context)!.noLogsDisplay, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ), - if (logsProvider.logsOlderThan != null) Padding( - padding: const EdgeInsets.only( - top: 30, - left: 20, - right: 20 - ), - child: Text( - AppLocalizations.of(context)!.noLogsThatOld, - textAlign: TextAlign.center, + ), + if (logsProvider.logsData!.data.isEmpty) SliverFillRemaining( + child: Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + AppLocalizations.of(context)!.noLogsDisplay, style: TextStyle( - fontSize: 16, + fontSize: 24, color: Theme.of(context).colorScheme.onSurfaceVariant, ), ), - ), - ] + if (logsProvider.logsOlderThan != null) Padding( + padding: const EdgeInsets.only( + top: 30, + left: 20, + right: 20 + ), + child: Text( + AppLocalizations.of(context)!.noLogsThatOld, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), + ), + ] + ), ), - ), - ) - ], + ) + ], + ), ), ), - ), - ) - ); - - case LoadStatus.error: - return SafeArea( - top: false, - bottom: false, - child: Builder( - builder: (context) => CustomScrollView( - slivers: [ - SliverOverlapInjector( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - ), - SliverFillRemaining( - child: SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.logsNotLoaded, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, + ) + ); + + case LoadStatus.error: + return SafeArea( + top: false, + bottom: false, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + SliverFillRemaining( + child: SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, ), - ) - ], - ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.logsNotLoaded, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ) ) - ) - ], - ), - ) - ); - - default: - return const SizedBox(); - } - }, - ) + ], + ), + ) + ); + + default: + return const SizedBox(); + } + }, + ) + ), ), ); } diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index 718593e..bce5e11 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -83,7 +83,7 @@ class _SettingsWidget extends StatefulWidget { } class _SettingsWidgetState extends State<_SettingsWidget> { - final scaffoldMessengerKey = GlobalKey(); + final _scaffoldMessengerKey = GlobalKey(); @override void initState() { @@ -104,7 +104,7 @@ class _SettingsWidgetState extends State<_SettingsWidget> { } return ScaffoldMessenger( - key: widget.twoColumns ? scaffoldMessengerKey : null, + key: widget.twoColumns ? _scaffoldMessengerKey : null, child: Scaffold( body: NestedScrollView( headerSliverBuilder: (context, innerBoxIsScrolled) => [ From 9de9b0afecd7664d19baedb982bedc7c6e8092a9 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 14:49:30 +0100 Subject: [PATCH 130/236] Fixed statistics config updated text --- lib/l10n/app_en.arb | 2 ++ lib/l10n/app_es.arb | 2 ++ .../settings/statistics_settings/statistics_settings.dart | 8 ++++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 439dac5..dc938f5 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -754,6 +754,8 @@ "statisticsSettingsDescription": "Configure data collection for statistics", "loadingStatisticsSettings": "Loading statistics settings...", "statisticsSettingsLoadError": "An error occured when loading statistics settings.", + "statisticsConfigUpdated": "Statistics settings updated successfully", + "statisticsConfigNotUpdated": "Statistics settings couldn't be updated", "customTimeInHours": "Custom time (in hours)", "invalidTime": "Invalid time", "removeDomain": "Remove domain", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 79aaa7d..040beb1 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -754,6 +754,8 @@ "statisticsSettingsDescription": "Configura la recolección de datos para estadísticas", "loadingStatisticsSettings": "Cargando ajustes de estadísticas...", "statisticsSettingsLoadError": "Ocurrió un error al cargar los ajustes de estadísticas.", + "statisticsConfigNotUpdated": "La configuración de estadísticas no pudo ser actualizada.", + "statisticsConfigUpdated": "Configuración de estadísticas actualizada correctamente.", "customTimeInHours": "Tiempo personalizado (en horas)", "invalidTime": "Tiempo no válido", "removeDomain": "Eliminar dominio", diff --git a/lib/screens/settings/statistics_settings/statistics_settings.dart b/lib/screens/settings/statistics_settings/statistics_settings.dart index f514e78..27e4570 100644 --- a/lib/screens/settings/statistics_settings/statistics_settings.dart +++ b/lib/screens/settings/statistics_settings/statistics_settings.dart @@ -145,19 +145,19 @@ class _StatisticsSettingsState extends State { processModal.close(); - if (!mounted) return; + if (!context.mounted) return; if (result.successful == true) { showSnacbkar( appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.logsConfigUpdated, + label: AppLocalizations.of(context)!.statisticsConfigUpdated, color: Colors.green ); } else { showSnacbkar( appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.logsConfigNotUpdated, + label: AppLocalizations.of(context)!.statisticsConfigNotUpdated, color: Colors.red ); } @@ -209,7 +209,7 @@ class _StatisticsSettingsState extends State { if (value != null && value != "custom") { _customTimeError = null; _customTimeController.text = ""; - }; + } _retentionTime = value; }), decoration: InputDecoration( From ba2a27fef04e2f0daf819e869ea4430a39d3f867 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 14:55:40 +0100 Subject: [PATCH 131/236] Fixed fallback dns regex --- lib/l10n/app_en.arb | 3 ++- lib/l10n/app_es.arb | 3 ++- lib/screens/settings/dns/fallback_dns.dart | 5 +++-- lib/screens/settings/dns/upstream_dns.dart | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index dc938f5..89d1fb5 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -778,5 +778,6 @@ "enablePlainDns": "Enable plain DNS", "enablePlainDnsDescription": "Plain DNS is enabled by default. You can disable it to force all devices to use encrypted DNS. To do this, you must enable at least one encrypted DNS protocol.", "date": "Date", - "loadingChangelog": "Loading changelog..." + "loadingChangelog": "Loading changelog...", + "invalidIpOrUrl": "Invalid IP address or URL" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 040beb1..32fb2c6 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -778,5 +778,6 @@ "enablePlainDns": "Activar DNS simple (sin cifrado)", "enablePlainDnsDescription": "El DNS simple (sin cifrado) está activado de forma predeterminada. Puedes desactivarlo para obligar a todos los dispositivos a utilizar DNS cifrado. Para ello, debes habilitar al menos un protocolo DNS cifrado.", "date": "Fecha", - "loadingChangelog": "Cargando registro de cambios..." + "loadingChangelog": "Cargando registro de cambios...", + "invalidIpOrUrl": "Dirección IP o URL no válida" } \ No newline at end of file diff --git a/lib/screens/settings/dns/fallback_dns.dart b/lib/screens/settings/dns/fallback_dns.dart index dcae0a2..916aa90 100644 --- a/lib/screens/settings/dns/fallback_dns.dart +++ b/lib/screens/settings/dns/fallback_dns.dart @@ -24,11 +24,12 @@ class _FallbackDnsScreenState extends State { void validateIp(Map field, String value) { RegExp ipAddress = RegExp(r'(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)'); - if (ipAddress.hasMatch(value) == true) { + RegExp url = RegExp(r'(https?|tls):\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)'); + if (ipAddress.hasMatch(value) == true || url.hasMatch(value) == true) { setState(() => field['error'] = null); } else { - setState(() => field['error'] = AppLocalizations.of(context)!.invalidIp); + setState(() => field['error'] = AppLocalizations.of(context)!.invalidIpOrUrl); } checkValidValues(); } diff --git a/lib/screens/settings/dns/upstream_dns.dart b/lib/screens/settings/dns/upstream_dns.dart index e540053..7f83fd8 100644 --- a/lib/screens/settings/dns/upstream_dns.dart +++ b/lib/screens/settings/dns/upstream_dns.dart @@ -263,7 +263,7 @@ class _UpstreamDnsScreenState extends State { const SizedBox(width: 4), ], ), - )).toList(), + )), const SizedBox(height: 12), Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, From dac07edd893d95ef060ba9827c6b232e1c578e59 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 15:16:50 +0100 Subject: [PATCH 132/236] Changes vscode rules --- .vscode/settings.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9ad1ad1..791c93f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,7 @@ { "editor.formatOnSave": false, + "editor.formatOnPaste": false, + "editor.formatOnType": false, "editor.defaultFormatter": "Dart-Code.flutter", "dart.lineLength": 120, "[dart]": { @@ -8,5 +10,7 @@ ], "editor.defaultFormatter": "Dart-Code.dart-code", "editor.formatOnSave": false, + "editor.formatOnPaste": false, + "editor.formatOnType": false } } \ No newline at end of file From 133d29aa91ebe2d40d79b727cc842d9b3a53a75f Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 15:17:11 +0100 Subject: [PATCH 133/236] Bump compileSdkVersion and targetSdkVersion android --- android/app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 8ab520c..29785d0 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -29,7 +29,7 @@ if (keystorePropertiesFile.exists()) { } android { - compileSdkVersion 33 + compileSdkVersion 34 ndkVersion flutter.ndkVersion compileOptions { @@ -51,7 +51,7 @@ android { // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. minSdkVersion 26 - targetSdkVersion 33 + targetSdkVersion 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } From 7c0b592715f4a292140eb902442a7ea0225eb33b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 15:17:27 +0100 Subject: [PATCH 134/236] Changed handling of comments fallback dns --- lib/screens/settings/dns/fallback_dns.dart | 95 +++++++++++++++++++--- lib/screens/settings/dns/upstream_dns.dart | 2 +- 2 files changed, 84 insertions(+), 13 deletions(-) diff --git a/lib/screens/settings/dns/fallback_dns.dart b/lib/screens/settings/dns/fallback_dns.dart index 916aa90..8c45af8 100644 --- a/lib/screens/settings/dns/fallback_dns.dart +++ b/lib/screens/settings/dns/fallback_dns.dart @@ -1,5 +1,6 @@ -// ignore_for_file: use_build_context_synchronously +import 'dart:io'; +import 'package:adguard_home_manager/screens/settings/dns/comment_modal.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -48,12 +49,20 @@ class _FallbackDnsScreenState extends State { final dnsProvider = Provider.of(context, listen: false); for (var item in dnsProvider.dnsInfo!.fallbackDns!) { - final controller = TextEditingController(); - controller.text = item; - fallbackControllers.add({ - 'controller': controller, - 'error': null - }); + if (item.contains("#")) { + fallbackControllers.add({ + 'comment': item + }); + } + else { + final controller = TextEditingController(); + controller.text = item; + fallbackControllers.add({ + 'controller': controller, + 'error': null, + 'isComment': item.contains("#") + }); + } } validValues = true; super.initState(); @@ -71,11 +80,16 @@ class _FallbackDnsScreenState extends State { processModal.open(AppLocalizations.of(context)!.savingConfig); final result = await dnsProvider.saveFallbackDnsConfig({ - "fallback_dns": fallbackControllers.map((e) => e['controller'].text).toList(), + "fallback_dns": fallbackControllers.map( + (e) => e['controller'] != null + ? e['controller'].text + : e['comment'] + ).toList(), }); processModal.close(); + if (!context.mounted) return; if (result.successful == true) { showSnacbkar( appConfigProvider: appConfigProvider, @@ -99,6 +113,37 @@ class _FallbackDnsScreenState extends State { } } + void openEditCommentModal(Map item, int position) { + if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) { + showDialog( + context: context, + builder: (context) => CommentModal( + comment: item['comment'], + onConfirm: (value) { + setState(() => fallbackControllers[position] = { 'comment': value }); + }, + dialog: true, + ), + ); + } + else { + showModalBottomSheet( + context: context, + useRootNavigator: true, + builder: (context) => CommentModal( + comment: item['comment'], + onConfirm: (value) { + setState(() => fallbackControllers[position] = { 'comment': value }); + }, + dialog: false, + ), + backgroundColor: Colors.transparent, + isScrollControlled: true, + isDismissible: true + ); + } + } + return Scaffold( appBar: AppBar( title: Text(AppLocalizations.of(context)!.fallbackDnsServers), @@ -168,29 +213,55 @@ class _FallbackDnsScreenState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Expanded( + if (c['controller'] != null) Expanded( child: TextFormField( controller: c['controller'], onChanged: (value) => validateIp(c, value), decoration: InputDecoration( - prefixIcon: const Icon(Icons.dns_rounded), + prefixIcon: Icon( + c['isComment'] == true + ? Icons.comment_rounded + : Icons.dns_rounded + ), border: const OutlineInputBorder( borderRadius: BorderRadius.all( Radius.circular(10) ) ), errorText: c['error'], - labelText: AppLocalizations.of(context)!.dnsServer, + labelText: c['isComment'] == true + ? AppLocalizations.of(context)!.comment + : AppLocalizations.of(context)!.dnsServer, ) ), ), const SizedBox(width: 8), + if (c['comment'] != null) Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + c['comment'], + style: TextStyle( + fontSize: 16, + color: Theme.of(context).listTileTheme.iconColor + ), + ), + IconButton( + onPressed: () => openEditCommentModal(c, fallbackControllers.indexOf(c)), + icon: const Icon(Icons.edit), + tooltip: AppLocalizations.of(context)!.edit, + ) + ], + ), + ), IconButton( onPressed: () { setState(() => fallbackControllers = fallbackControllers.where((con) => con != c).toList()); checkValidValues(); }, - icon: const Icon(Icons.remove_circle_outline) + icon: const Icon(Icons.remove_circle_outline), + tooltip: AppLocalizations.of(context)!.remove, ) ], ), diff --git a/lib/screens/settings/dns/upstream_dns.dart b/lib/screens/settings/dns/upstream_dns.dart index 7f83fd8..c99c9bc 100644 --- a/lib/screens/settings/dns/upstream_dns.dart +++ b/lib/screens/settings/dns/upstream_dns.dart @@ -47,7 +47,7 @@ class _UpstreamDnsScreenState extends State { final dnsProvider = Provider.of(context, listen: false); for (var item in dnsProvider.dnsInfo!.upstreamDns) { - if (item == '#') { + if (item.contains("#")) { dnsServers.add({ 'comment': item }); From 019367ca933513f8a643340456350341af6ed849 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 15:29:56 +0100 Subject: [PATCH 135/236] Fix hour mismatch home charts --- lib/screens/home/chart.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/screens/home/chart.dart b/lib/screens/home/chart.dart index 0093ae8..ac1fce5 100644 --- a/lib/screens/home/chart.dart +++ b/lib/screens/home/chart.dart @@ -43,7 +43,7 @@ class _HomeChartState extends State { if (!(appConfigProvider.hideZeroValues == true && isEmpty == true)) { List dateTimes = []; - DateTime currentDate = DateTime.now().subtract(Duration(hours: widget.hoursInterval*widget.data.length+1)); + DateTime currentDate = DateTime.now().subtract(Duration(hours: widget.hoursInterval*widget.data.length)); for (var i = 0; i < widget.data.length; i++) { currentDate = currentDate.add(Duration(hours: widget.hoursInterval)); dateTimes.add(currentDate); From 654284b46ac4fc5acfaa1ef66637364f76b2ef96 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 15:33:26 +0100 Subject: [PATCH 136/236] Added add comment fallback dns --- lib/screens/settings/dns/fallback_dns.dart | 47 +++++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/lib/screens/settings/dns/fallback_dns.dart b/lib/screens/settings/dns/fallback_dns.dart index 8c45af8..849eb4d 100644 --- a/lib/screens/settings/dns/fallback_dns.dart +++ b/lib/screens/settings/dns/fallback_dns.dart @@ -113,6 +113,44 @@ class _FallbackDnsScreenState extends State { } } + void openAddCommentModal() { + if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) { + showDialog( + context: context, + builder: (context) => CommentModal( + onConfirm: (value) { + setState(() { + fallbackControllers.add({ + 'comment': value + }); + }); + }, + dialog: true, + ), + ); + } + else { + showModalBottomSheet( + context: context, + useRootNavigator: true, + builder: (context) => CommentModal( + onConfirm: (value) { + setState(() { + fallbackControllers.add({ + 'comment': value + }); + }); + }, + dialog: false, + ), + backgroundColor: Colors.transparent, + isScrollControlled: true, + isDismissible: true + ); + } + } + + void openEditCommentModal(Map item, int position) { if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) { showDialog( @@ -267,9 +305,14 @@ class _FallbackDnsScreenState extends State { ), )), Row( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisSize: MainAxisSize.min, children: [ + ElevatedButton.icon( + onPressed: openAddCommentModal, + icon: const Icon(Icons.add), + label: Text(AppLocalizations.of(context)!.comment) + ), ElevatedButton.icon( onPressed: () { setState(() => fallbackControllers.add({ @@ -279,7 +322,7 @@ class _FallbackDnsScreenState extends State { checkValidValues(); }, icon: const Icon(Icons.add), - label: Text(AppLocalizations.of(context)!.addItem) + label: Text(AppLocalizations.of(context)!.address) ), ], ), From 59a7a31a4f5339bd39c27e39e4103cf8dd0eec0b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 15:34:11 +0100 Subject: [PATCH 137/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 3ef7c66..70e1dff 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.16.3+133 +version: 2.16.4+134 environment: sdk: '>=2.18.1 <3.0.0' From a58b97a1bd1e1a8b3138f161270c1ea607263b43 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 29 Feb 2024 15:44:49 +0100 Subject: [PATCH 138/236] Updated macos stuff --- macos/Podfile.lock | 16 ++++++++-------- macos/Runner.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index a257617..33a5a97 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -6,13 +6,13 @@ PODS: - FlutterMacOS (1.0.0) - package_info_plus (0.0.1): - FlutterMacOS - - Sentry/HybridSDK (8.19.0): - - SentryPrivate (= 8.19.0) + - Sentry/HybridSDK (8.20.0): + - SentryPrivate (= 8.20.0) - sentry_flutter (0.0.1): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.19.0) - - SentryPrivate (8.19.0) + - Sentry/HybridSDK (= 8.20.0) + - SentryPrivate (8.20.0) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS @@ -84,9 +84,9 @@ SPEC CHECKSUMS: dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce - Sentry: 1ebcaef678a27c8ac515f974cb5425dd1bbdec2f - sentry_flutter: ecdfbedee55337205561cfa782ee02d31ec83e1f - SentryPrivate: 765c9b4ebe9ac1a5fcdc067c5a1cfbf3f10e1677 + Sentry: a8d7b373b9f9868442b02a0c425192f693103cbf + sentry_flutter: 03e7660857a8cdb236e71456a7e8447b65c8a788 + SentryPrivate: 006b24af16828441f70e2ab6adf241bd0a8ad130 shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec sqlite3: 73b7fc691fdc43277614250e04d183740cb15078 @@ -96,4 +96,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 -COCOAPODS: 1.14.3 +COCOAPODS: 1.15.2 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index cb14ee0..f7a463a 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -202,7 +202,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index b1bc689..6982a10 100644 --- a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ Date: Thu, 29 Feb 2024 18:47:20 +0300 Subject: [PATCH 139/236] Update app_tr.arb --- lib/l10n/app_tr.arb | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/lib/l10n/app_tr.arb b/lib/l10n/app_tr.arb index 9e84991..42c0f33 100644 --- a/lib/l10n/app_tr.arb +++ b/lib/l10n/app_tr.arb @@ -75,7 +75,7 @@ "userNotEmpty": "Kullanıcı adı boş bırakılamaz", "passwordNotEmpty": "Şifre boş bırakılamaz", "examplePath": "Örnek: /adguard", - "helperPath": "Ters proxy kullanıyorsanız", + "helperPath": "Eğer ters proxy kullanıyorsanız", "aboutApp": "Uygulama hakkında", "appVersion": "Uygulama sürümü", "createdBy": "Geliştirici", @@ -103,7 +103,7 @@ "logsCopiedClipboard": "Günlükler panoya kopyalandı", "advancedSettings": "Gelişmiş ayarlar", "dontCheckCertificate": "SSL sertifikasını kontrol etme", - "dontCheckCertificateDescription": "Sunucunun SSL sertifikası doğrulamasını geçersiz kılar", + "dontCheckCertificateDescription": "Sunucunun SSL sertifikası doğrulamasını geçersiz kılar.", "advancedSetupDescription": "Gelişmiş seçenekleri yönet", "settingsUpdatedSuccessfully": "Ayarlar başarıyla güncellendi.", "cannotUpdateSettings": "Ayarlar güncellenemiyor.", @@ -131,11 +131,11 @@ "rewrite": "Yeniden Yaz", "status": "Durum", "result": "Sonuç", - "time": "Zaman", + "time": "Saat", "blocklist": "Engelleme Listesi", "request": "İstek", "domain": "Alan adı", - "type": "Tip", + "type": "Tür", "clas": "Sınıf", "response": "Yanıt", "dnsServer": "DNS sunucusu", @@ -204,7 +204,7 @@ "noUpstreamServers": "Üst sunucu yok.", "willBeUsedGeneralServers": "Genel üst sunucular kullanılacak.", "added": "Eklenenler", - "clientUpdatedSuccessfully": "İstemci başarıyla güncellendi", + "clientUpdatedSuccessfully": "İstemci ayarları başarıyla güncellendi", "clientNotUpdated": "İstemci güncellenemedi", "clientDeletedSuccessfully": "İstemci başarıyla kaldırıldı", "clientNotDeleted": "İstemci silinemedi", @@ -308,8 +308,8 @@ "addImportant": "Başına $important ekle", "howCreateRules": "Özel kurallar nasıl oluşturulur?", "examples": "Örnekler", - "example1": "example.org (ornek.org) ve tüm alt alan adlarına erişimi engeller.", - "example2": "example.org (ornek.org) ve tüm alt alan adlarına erişimi engellemeyi kaldırır.", + "example1": "example.org ve tüm alt alan adlarına erişimi engeller.", + "example2": "example.org ve tüm alt alan adlarına erişimi engellemeyi kaldırır.", "example3": "Yorum ekler.", "example4": "Belirtilen düzenli ifadeye uyan alan adlarına erişimi engeller.", "moreInformation": "Daha fazla bilgi", @@ -418,7 +418,7 @@ "logSettingsNotLoaded": "Günlük ayarları yüklenemedi.", "updatingSettings": "Ayarlar güncelleniyor...", "logsConfigUpdated": "Günlük ayarları başarıyla güncellendi", - "logsConfigNotUpdated": "Günlük ayarları başarıyla güncellendi", + "logsConfigNotUpdated": "Günlük ayarları güncellenemedi", "deletingLogs": "Günlükler temizleniyor...", "logsCleared": "Günlükler başarıyla temizlendi", "logsNotCleared": "Günlükler temizlenemedi", @@ -436,7 +436,7 @@ "parallelRequests": "Paralel istekler", "fastestIpAddress": "En hızlı IP adresi", "loadBalancingDescription": "Her seferinde bir üst sunucuya sorgu yapar. AdGuard Home, sunucuyu seçmek için ağırlıklı rastgele algoritmasını kullanır, böylece en hızlı sunucu daha sık kullanılır.", - "parallelRequestsDescription": "Tüm üst sunucuları aynı anda sorgulayarak çözümlemeyi hızlandırmak için paralel sorgular kullanır.", + "parallelRequestsDescription": "Tüm üst sunucuları aynı anda sorgulayarak çözümlemeyi hızlandırmak için paralel sorgular kullanılır.", "fastestIpAddressDescription": "Tüm DNS sunucularına sorgu yapın ve tüm yanıtlar arasında en hızlı IP adresini döndürür. Bu, AdGuard Home'un tüm DNS sunucularından yanıtları beklemesi gerektiği için DNS sorgularını yavaşlatır, ancak genel bağlantıyı iyileştirir.", "noBootstrapDns": "Önyükleme DNS sunucuları eklenmedi.", "bootstrapDnsServersInfo": "Önyükleme ​​DNS sunucuları, üst kaynaklarda belirttiğiniz DoH/DoT çözümleyicilerinin IP adreslerini çözmek için kullanılır.", @@ -469,7 +469,7 @@ "customIpDescription": "Manuel olarak ayarlanmış bir IP adresi ile yanıt verir.", "dnsCacheConfig": "DNS önbellek yapılandırması", "cacheSize": "Önbellek boyutu", - "inBytes": "Alınacak önbelleğin boyutunu ayarla (bayt olarak)", + "inBytes": "Alınacak önbelleğin boyutunu ayarla (Bayt olarak)", "overrideMinimumTtl": "Minimum kullanım süresini geçersiz kıl", "overrideMinimumTtlDescription": "DNS yanıtlarını önbelleğe alırken üst sunucudan alınan minimum kullanım süresi değerini (TTL) saniye olarak ayarlayın.", "overrideMaximumTtl": "Maksimum kullanım süresini geçersiz kıl", @@ -494,7 +494,7 @@ "dnsCacheConfigDescription": "Sunucunun DNS önbelleğini nasıl yöneteceğini yapılandır", "comment": "Yorum", "address": "Adres", - "commentsDescription": "Yorumlar her zaman # işareti ile başlar. Onu eklemenize gerek yok, otomatik olarak eklenir.", + "commentsDescription": "Yorumlar her zaman # işareti ile başlar. Eklemenize gerek yok, otomatik olarak eklenecektir.", "encryptionSettings": "Şifreleme ayarları", "encryptionSettingsDescription": "Şifreleme (HTTPS/QUIC/TLS) desteği", "loadingEncryptionSettings": "Şifreleme ayarları yükleniyor...", @@ -560,8 +560,8 @@ "validPrivateKey": "Geçerli özel anahtar", "expirationDate": "Son kullanma tarihi", "keysNotMatch": "Geçersiz bir sertifika veya anahtar: tls: özel anahtar genel anahtarla eşleşmiyor.", - "timeLogs": "Günlüklerde işlem süresi göster", - "timeLogsDescription": "Günlükler listesinde zaman yerine işlem süresini göster.", + "timeLogs": "Günlüklerde işlem süresini göster", + "timeLogsDescription": "Günlükler listesinde zaman yerine işlem süresini gösterir.", "hostNames": "Ana bilgisayar adları", "keyType": "Anahtar türü", "updateAvailable": "Güncelleme mevcut", @@ -626,7 +626,7 @@ "appUpdates": "Uygulama güncellemeleri", "usingLatestVersion": "En son sürümü kullanıyorsunuz", "ipLogs": "Günlüklerde IP adresini göster", - "ipLogsDescription": "Günlükler listesinde istemci adı yerine IP adresini göster.", + "ipLogsDescription": "Günlükler listesinde istemci adı yerine IP adresini gösterir.", "application": "Uygulama", "combinedChart": "Birleştirilmiş grafik", "combinedChartDescription": "Tüm grafikleri bir araya getirir.", @@ -688,7 +688,7 @@ "yourVersion": "Yüklü sürüm: {version}", "minimumRequiredVersion": "Gerekli minimum sürüm: {version}", "topUpstreams": "Öne çıkan DNS sunucuları", - "averageUpstreamResponseTime": "DNS sunucusu ortalama işlem süresi" , + "averageUpstreamResponseTime": "DNS sunucuları işlem süresi" , "dhcpNotAvailable": "DHCP sunucusu kullanılamıyor.", "osServerInstalledIncompatible": "AdGuard Home, işletim sisteminizde DHCP sunucusu çalıştıramıyor.", "resetSettings": "Ayarları sıfırla", @@ -721,7 +721,7 @@ "unblockingClient": "İstemci engeli kaldırılıyor...", "upstreamDnsCacheConfiguration": "DNS önbellek yapılandırması", "enableDnsCachingClient": "Bu istemci için DNS önbelleğe almayı etkinleştir", - "dnsCacheSize": "DNS önbellek boyutu (bayt cinsinden)", + "dnsCacheSize": "DNS önbellek boyutu (Bayt cinsinden)", "nameInvalid": "Ad gereklidir", "oneIdentifierRequired": "En az bir tanımlayıcı gereklidir", "dnsCacheNumber": "DNS önbellek boyutu bir rakam içermelidir", @@ -754,7 +754,9 @@ "statisticsSettingsDescription": "İstatistikler için veri toplamayı yapılandır", "loadingStatisticsSettings": "İstatistik ayarları yükleniyor...", "statisticsSettingsLoadError": "İstatistik ayarları yüklenirken bir hata oluştu.", - "customTimeInHours": "Özel zaman (saat olarak)", + "statisticsConfigUpdated": "İstatistik ayarları başarıyla güncellendi", + "statisticsConfigNotUpdated": "İstatistik ayarları güncellenemedi", + "customTimeInHours": "Özel zaman (Saat olarak)", "invalidTime": "Geçersiz zaman", "removeDomain": "Alan adını kaldır", "addDomain": "Alan adı ekle", @@ -774,5 +776,8 @@ "showHide": "Göster/gizle", "noElementsReorderMessage": "Burada yeniden sıralamak için göster/gizle sekmesindeki bazı öğeleri etkinleştirin.", "enablePlainDns": "Düz DNS'i etkinleştir", - "enablePlainDnsDescription": "Düz DNS varsayılan olarak etkindir. Tüm aygıtları şifrelenmiş DNS kullanmaya zorlamak için bunu devre dışı bırakabilirsiniz. Bunu yapmak için en az bir şifrelenmiş DNS protokolünü etkinleştirmeniz gerekir." + "enablePlainDnsDescription": "Düz DNS varsayılan olarak etkindir. Tüm aygıtları şifrelenmiş DNS kullanmaya zorlamak için bunu devre dışı bırakabilirsiniz. Bunu yapmak için en az bir şifrelenmiş DNS protokolünü etkinleştirmeniz gerekir.", + "date": "Tarih", + "loadingChangelog": "Değişiklikler yükleniyor...", + "invalidIpOrUrl": "Geçersiz IP adresi veya URL" } \ No newline at end of file From ad6cb92d4bebc0b193b0a5161a2a6aa940f7e4c5 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Mar 2024 13:44:07 +0100 Subject: [PATCH 140/236] Add persistent client logs --- lib/l10n/app_en.arb | 3 +- lib/l10n/app_es.arb | 3 +- lib/screens/clients/client/client_screen.dart | 21 +++++++- .../client/client_screen_functions.dart | 2 + lib/screens/clients/fab.dart | 2 +- lib/screens/logs/log_tile.dart | 48 +++++++++++++++++++ 6 files changed, 75 insertions(+), 4 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 89d1fb5..17b3cc7 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -779,5 +779,6 @@ "enablePlainDnsDescription": "Plain DNS is enabled by default. You can disable it to force all devices to use encrypted DNS. To do this, you must enable at least one encrypted DNS protocol.", "date": "Date", "loadingChangelog": "Loading changelog...", - "invalidIpOrUrl": "Invalid IP address or URL" + "invalidIpOrUrl": "Invalid IP address or URL", + "addPersistentClient": "Add as a persistent client" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 32fb2c6..cd63b77 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -779,5 +779,6 @@ "enablePlainDnsDescription": "El DNS simple (sin cifrado) está activado de forma predeterminada. Puedes desactivarlo para obligar a todos los dispositivos a utilizar DNS cifrado. Para ello, debes habilitar al menos un protocolo DNS cifrado.", "date": "Fecha", "loadingChangelog": "Cargando registro de cambios...", - "invalidIpOrUrl": "Dirección IP o URL no válida" + "invalidIpOrUrl": "Dirección IP o URL no válida", + "addPersistentClient": "Añadir como cliente persistente" } \ No newline at end of file diff --git a/lib/screens/clients/client/client_screen.dart b/lib/screens/clients/client/client_screen.dart index 225b5eb..64bde26 100644 --- a/lib/screens/clients/client/client_screen.dart +++ b/lib/screens/clients/client/client_screen.dart @@ -10,6 +10,16 @@ import 'package:adguard_home_manager/models/safe_search.dart'; import 'package:adguard_home_manager/providers/clients_provider.dart'; import 'package:adguard_home_manager/models/clients.dart'; +class ClientInitialData { + final String name; + final String ip; + + const ClientInitialData({ + required this.name, + required this.ip, + }); +} + class ControllerListItem { final String id; final TextEditingController controller; @@ -25,13 +35,15 @@ class ClientScreen extends StatefulWidget { final void Function(Client) onConfirm; final void Function(Client)? onDelete; final bool fullScreen; + final ClientInitialData? initialData; const ClientScreen({ super.key, this.client, required this.onConfirm, this.onDelete, - required this.fullScreen + required this.fullScreen, + this.initialData, }); @override @@ -146,6 +158,13 @@ class _ClientScreenState extends State { _blockedServicesSchedule = widget.client!.blockedServicesSchedule!; } } + if (widget.initialData != null) { + nameController.text = widget.initialData!.name; + identifiersControllers[0] = ControllerListItem( + id: uuid.v4(), + controller: TextEditingController(text: widget.initialData!.ip) + ); + } super.initState(); } diff --git a/lib/screens/clients/client/client_screen_functions.dart b/lib/screens/clients/client/client_screen_functions.dart index f0338a1..2c176c4 100644 --- a/lib/screens/clients/client/client_screen_functions.dart +++ b/lib/screens/clients/client/client_screen_functions.dart @@ -80,6 +80,7 @@ void openClientFormModal({ Client? client, required void Function(Client) onConfirm, void Function(Client)? onDelete, + ClientInitialData? initialData, }) { showGeneralDialog( context: context, @@ -105,6 +106,7 @@ void openClientFormModal({ client: client, onConfirm: onConfirm, onDelete: onDelete, + initialData: initialData, ), ); } diff --git a/lib/screens/clients/fab.dart b/lib/screens/clients/fab.dart index 64fd098..a46b89a 100644 --- a/lib/screens/clients/fab.dart +++ b/lib/screens/clients/fab.dart @@ -14,7 +14,7 @@ import 'package:adguard_home_manager/classes/process_modal.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; class ClientsFab extends StatelessWidget { - const ClientsFab({Key? key}) : super(key: key); + const ClientsFab({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index f5db5ee..5f3a834 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -4,12 +4,16 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/clients/client/client_screen_functions.dart'; +import 'package:adguard_home_manager/screens/clients/client/client_screen.dart'; import 'package:adguard_home_manager/widgets/options_menu.dart'; import 'package:adguard_home_manager/providers/status_provider.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/functions/copy_clipboard.dart'; +import 'package:adguard_home_manager/models/clients.dart'; +import 'package:adguard_home_manager/providers/clients_provider.dart'; import 'package:adguard_home_manager/models/menu_option.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/functions/get_filtered_status.dart'; @@ -40,6 +44,7 @@ class LogTile extends StatelessWidget { Widget build(BuildContext context) { final appConfigProvider = Provider.of(context); final statusProvider = Provider.of(context); + final clientsProvider = Provider.of(context); Widget logStatusWidget({ required IconData icon, @@ -118,6 +123,39 @@ class LogTile extends StatelessWidget { } } + void confirmAddClient(Client client) async { + ProcessModal processModal = ProcessModal(); + processModal.open(AppLocalizations.of(context)!.addingClient); + + final result = await clientsProvider.addClient(client); + + processModal.close(); + + if (result == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.clientAddedSuccessfully, + color: Colors.green + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.clientNotAdded, + color: Colors.red + ); + } + } + + void openAddClient() { + openClientFormModal( + context: context, + width: MediaQuery.of(context).size.width, + onConfirm: confirmAddClient, + initialData: ClientInitialData(name: "Client ${log.client}", ip: log.client) + ); + } + final domainBlocked = isDomainBlocked(log.reason); if (twoColumns && !(useAlwaysNormalTile == true)) { @@ -141,6 +179,11 @@ class LogTile extends StatelessWidget { newStatus: domainBlocked == true ? 'unblock' : 'block' ) ), + if (log.clientInfo?.name == "") MenuOption( + title: AppLocalizations.of(context)!.addPersistentClient, + icon: Icons.add_rounded, + action: openAddClient + ), if (log.question.name != null) MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, @@ -319,6 +362,11 @@ class LogTile extends StatelessWidget { newStatus: domainBlocked == true ? 'unblock' : 'block' ) ), + if (log.clientInfo?.name == "") MenuOption( + title: AppLocalizations.of(context)!.addPersistentClient, + icon: Icons.add_rounded, + action: openAddClient + ), if (log.question.name != null) MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, From ce8d38958ec58d619e90298a29c32f4ceb149f48 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Mar 2024 13:57:15 +0100 Subject: [PATCH 141/236] Fix desktop and sliver app bar add client --- lib/screens/clients/client/client_screen.dart | 147 ++++++++++-------- lib/screens/logs/log_tile.dart | 13 +- 2 files changed, 91 insertions(+), 69 deletions(-) diff --git a/lib/screens/clients/client/client_screen.dart b/lib/screens/clients/client/client_screen.dart index 64bde26..05d53a0 100644 --- a/lib/screens/clients/client/client_screen.dart +++ b/lib/screens/clients/client/client_screen.dart @@ -235,71 +235,90 @@ class _ClientScreenState extends State { if (widget.fullScreen == true) { - return Dialog.fullscreen( - child: Scaffold( - appBar: AppBar( - leading: IconButton( - onPressed: () => Navigator.pop(context), - icon: const Icon(Icons.close) - ), - title: Text( - widget.client != null - ? AppLocalizations.of(context)!.client - : AppLocalizations.of(context)!.addClient - ), - actions: actions(), - ), + return Material( + child: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar.large( + pinned: true, + floating: true, + centerTitle: false, + forceElevated: innerBoxIsScrolled, + leading: IconButton( + onPressed: () => Navigator.pop(context), + icon: const Icon(Icons.close) + ), + title: Text( + widget.client != null + ? AppLocalizations.of(context)!.client + : AppLocalizations.of(context)!.addClient + ), + actions: actions(), + ) + ) + ], body: SafeArea( - child: ListView( - controller: _scrollController, - children: [ - if (!_nameValid || !_identifiersValid || !_dnsCacheValid) _Errors( - nameValid: _nameValid, - identifiersValid: _identifiersValid, - dnsCacheValid: _dnsCacheValid - ), - ClientForm( - isFullScreen: true, - client: widget.client, - nameController: nameController, - identifiersControllers: identifiersControllers, - selectedTags: selectedTags, - useGlobalSettingsFiltering: useGlobalSettingsFiltering, - enableFiltering: enableFiltering, - enableParentalControl: enableParentalControl, - enableSafeBrowsing: enableSafeBrowsing, - enableSafeSearch: enableSafeSearch, - safeSearch: safeSearch, - blockedServices: blockedServices, - updateBlockedServices: (v) => setState(() => blockedServices = v), - upstreamServers: upstreamServers, - updateUpstreamServers: (v) => setState(() => upstreamServers = v), - defaultSafeSearch: defaultSafeSearch, - useGlobalSettingsServices: useGlobalSettingsServices, - updateSelectedTags: (v) => setState(() => selectedTags = v), - updateIdentifiersControllers: (v) => setState(() => identifiersControllers = v), - enableDisableGlobalSettingsFiltering: enableDisableGlobalSettingsFiltering, - updateEnableFiltering: (v) => setState(() => enableFiltering = v), - updateEnableParentalControl: (v) => setState(() => enableParentalControl = v), - updateEnableSafeBrowsing: (v) => setState(() => enableSafeBrowsing = v), - updateEnableSafeSearch: (v) => setState(() => enableSafeSearch = v), - updateSafeSearch: (v) => setState(() => safeSearch = v), - updateUseGlobalSettingsServices: (v) => setState(() => useGlobalSettingsServices = v), - ignoreClientQueryLog: _ignoreClientQueryLog, - ignoreClientStatistics: _ignoreClientStatistics, - updateIgnoreClientQueryLog: (v) => setState(() => _ignoreClientQueryLog = v), - updateIgnoreClientStatistics: (v) => setState(() => _ignoreClientStatistics = v), - enableDnsCache: _enableDnsCache, - updateEnableDnsCache: (v) => setState(() => _enableDnsCache = v), - dnsCacheField: _dnsCacheField, - dnsCacheError: _dnsCacheError, - updateDnsCacheError: (v) => setState(() => _dnsCacheError = v), - blockedServicesSchedule: _blockedServicesSchedule, - setBlockedServicesSchedule: (v) => setState(() => _blockedServicesSchedule = v), - ), - ], - ), - ), + top: false, + bottom: true, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + SliverList.list( + children: [ + if (!_nameValid || !_identifiersValid || !_dnsCacheValid) _Errors( + nameValid: _nameValid, + identifiersValid: _identifiersValid, + dnsCacheValid: _dnsCacheValid + ), + ClientForm( + isFullScreen: true, + client: widget.client, + nameController: nameController, + identifiersControllers: identifiersControllers, + selectedTags: selectedTags, + useGlobalSettingsFiltering: useGlobalSettingsFiltering, + enableFiltering: enableFiltering, + enableParentalControl: enableParentalControl, + enableSafeBrowsing: enableSafeBrowsing, + enableSafeSearch: enableSafeSearch, + safeSearch: safeSearch, + blockedServices: blockedServices, + updateBlockedServices: (v) => setState(() => blockedServices = v), + upstreamServers: upstreamServers, + updateUpstreamServers: (v) => setState(() => upstreamServers = v), + defaultSafeSearch: defaultSafeSearch, + useGlobalSettingsServices: useGlobalSettingsServices, + updateSelectedTags: (v) => setState(() => selectedTags = v), + updateIdentifiersControllers: (v) => setState(() => identifiersControllers = v), + enableDisableGlobalSettingsFiltering: enableDisableGlobalSettingsFiltering, + updateEnableFiltering: (v) => setState(() => enableFiltering = v), + updateEnableParentalControl: (v) => setState(() => enableParentalControl = v), + updateEnableSafeBrowsing: (v) => setState(() => enableSafeBrowsing = v), + updateEnableSafeSearch: (v) => setState(() => enableSafeSearch = v), + updateSafeSearch: (v) => setState(() => safeSearch = v), + updateUseGlobalSettingsServices: (v) => setState(() => useGlobalSettingsServices = v), + ignoreClientQueryLog: _ignoreClientQueryLog, + ignoreClientStatistics: _ignoreClientStatistics, + updateIgnoreClientQueryLog: (v) => setState(() => _ignoreClientQueryLog = v), + updateIgnoreClientStatistics: (v) => setState(() => _ignoreClientStatistics = v), + enableDnsCache: _enableDnsCache, + updateEnableDnsCache: (v) => setState(() => _enableDnsCache = v), + dnsCacheField: _dnsCacheField, + dnsCacheError: _dnsCacheError, + updateDnsCacheError: (v) => setState(() => _dnsCacheError = v), + blockedServicesSchedule: _blockedServicesSchedule, + setBlockedServicesSchedule: (v) => setState(() => _blockedServicesSchedule = v), + ), + ], + ) + ], + ), + ) + ) ), ); } diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index 5f3a834..c59aa64 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -148,11 +148,14 @@ class LogTile extends StatelessWidget { } void openAddClient() { - openClientFormModal( - context: context, - width: MediaQuery.of(context).size.width, - onConfirm: confirmAddClient, - initialData: ClientInitialData(name: "Client ${log.client}", ip: log.client) + Future.delayed( + const Duration(milliseconds: 0), + () => openClientFormModal( + context: context, + width: MediaQuery.of(context).size.width, + onConfirm: confirmAddClient, + initialData: ClientInitialData(name: "Client ${log.client}", ip: log.client) + ) ); } From d65ea6520c9e2d1707833dc936df595a02eb9137 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Mar 2024 14:14:49 +0100 Subject: [PATCH 142/236] Added sliver app bar client logs --- lib/screens/clients/client/client_screen.dart | 2 +- .../clients/client/logs_list_client.dart | 283 ++++++++++-------- 2 files changed, 157 insertions(+), 128 deletions(-) diff --git a/lib/screens/clients/client/client_screen.dart b/lib/screens/clients/client/client_screen.dart index 05d53a0..573e6cf 100644 --- a/lib/screens/clients/client/client_screen.dart +++ b/lib/screens/clients/client/client_screen.dart @@ -260,7 +260,7 @@ class _ClientScreenState extends State { ], body: SafeArea( top: false, - bottom: true, + bottom: false, child: Builder( builder: (context) => CustomScrollView( slivers: [ diff --git a/lib/screens/clients/client/logs_list_client.dart b/lib/screens/clients/client/logs_list_client.dart index 3267128..2d76396 100644 --- a/lib/screens/clients/client/logs_list_client.dart +++ b/lib/screens/clients/client/logs_list_client.dart @@ -131,146 +131,175 @@ class _LogsListClientState extends State { setState(() => previousIp = widget.ip); } - return Scaffold( - appBar: AppBar( - title: Text(widget.name != null && widget.name != '' ? widget.name! : widget.ip), - centerTitle: true, - surfaceTintColor: isDesktop(MediaQuery.of(context).size.width) - ? Colors.transparent - : null, - actions: [ - if (!(Platform.isAndroid || Platform.isIOS)) ...[ - IconButton( - onPressed: fetchLogs, - icon: const Icon(Icons.refresh_rounded), - tooltip: AppLocalizations.of(context)!.refresh, - ), - const SizedBox(width: 8) - ] - ], - ), - body: SafeArea( - child: Builder( - builder: (context) { - switch (loadStatus) { - case 0: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingLogs, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], + return Material( + child: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar.large( + pinned: true, + floating: true, + centerTitle: false, + forceElevated: innerBoxIsScrolled, + title: SafeArea( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + AppLocalizations.of(context)!.client, + style: const TextStyle( + fontSize: 24 + ), + ), + const SizedBox(height: 4), + Text( + widget.name != null && widget.name != '' ? widget.name! : widget.ip, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.secondary + ), + ) + ], + ), + ), + surfaceTintColor: isDesktop(MediaQuery.of(context).size.width) + ? Colors.transparent + : null, + actions: [ + if (!(Platform.isAndroid || Platform.isIOS)) ...[ + IconButton( + onPressed: fetchLogs, + icon: const Icon(Icons.refresh_rounded), + tooltip: AppLocalizations.of(context)!.refresh, ), - ); - - case 1: - if (logsData!.data.isNotEmpty) { - return RefreshIndicator( - onRefresh: fetchLogs, - child: ListView.builder( - controller: scrollController, - padding: const EdgeInsets.only(top: 0), - itemCount: isLoadingMore == true - ? logsData!.data.length+1 - : logsData!.data.length, - itemBuilder: (context, index) { - if (isLoadingMore == true && index == logsData!.data.length) { - return const Padding( - padding: EdgeInsets.symmetric(vertical: 20), - child: Center( - child: CircularProgressIndicator(), + const SizedBox(width: 8) + ] + ], + ) + ) + ], + body: SafeArea( + top: false, + bottom: false, + child: Builder( + builder: (context) => RefreshIndicator( + onRefresh: fetchLogs, + displacement: 95, + child: CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + if (loadStatus == 0) SliverFillRemaining( + child: SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingLogs, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, ), - ); - } - else { - return LogTile( - log: logsData!.data[index], - index: index, - length: logsData!.data.length, - useAlwaysNormalTile: true, - onLogTap: (log) => { - if (width > 700) { - showDialog( - context: context, + ) + ], + ), + ) + ), + if (loadStatus == 1 && logsData!.data.isNotEmpty) SliverList.builder( + itemCount: isLoadingMore == true + ? logsData!.data.length+1 + : logsData!.data.length, + itemBuilder: (context, index) { + if (isLoadingMore == true && index == logsData!.data.length) { + return const Padding( + padding: EdgeInsets.symmetric(vertical: 20), + child: Center( + child: CircularProgressIndicator(), + ), + ); + } + else { + return LogTile( + log: logsData!.data[index], + index: index, + length: logsData!.data.length, + useAlwaysNormalTile: true, + onLogTap: (log) => { + if (width > 700) { + showDialog( + context: context, + builder: (context) => LogDetailsScreen( + log: log, + dialog: true + ) + ) + } + else { + Navigator.of(context).push( + MaterialPageRoute( builder: (context) => LogDetailsScreen( log: log, - dialog: true + dialog: false ) ) - } - else { - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => LogDetailsScreen( - log: log, - dialog: false - ) - ) - ) - } - }, - twoColumns: widget.splitView, - ); - } + ) + } + }, + twoColumns: widget.splitView, + ); } - ), - ); - } - else { - return Center( - child: Text( - AppLocalizations.of(context)!.noLogsDisplay, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ), - ); - } - - case 2: - return SizedBox( - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.logsNotLoaded, + } + ), + if (loadStatus == 1 && logsData!.data.isEmpty) SliverFillRemaining( + child: Center( + child: Text( + AppLocalizations.of(context)!.noLogsDisplay, textAlign: TextAlign.center, style: TextStyle( fontSize: 22, color: Theme.of(context).colorScheme.onSurfaceVariant, ), - ) - ], + ), + ), ), - ); - - default: - return const SizedBox(); - } - }, - ), - ) + if (loadStatus == 2) SliverFillRemaining( + child: SizedBox( + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.logsNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ), + ) + ], + ), + ), + ) + ) + ), ); } } \ No newline at end of file From 31ad3fcf6aab5c83384b60c710675c12f88b1b34 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Mar 2024 14:40:02 +0100 Subject: [PATCH 143/236] Fixed logs search bar --- lib/screens/logs/logs_list_appbar.dart | 157 ++++++++++++++----------- 1 file changed, 86 insertions(+), 71 deletions(-) diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index 9b5ab3b..341593a 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -8,11 +8,14 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/logs/filters/logs_filters_modal.dart'; +import 'package:adguard_home_manager/config/globals.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/functions/desktop_mode.dart'; import 'package:adguard_home_manager/models/applied_filters.dart'; import 'package:adguard_home_manager/providers/logs_provider.dart'; +final GlobalKey _searchButtonKey = GlobalKey(); + class LogsListAppBar extends StatelessWidget { final bool innerBoxIsScrolled; final bool showDivider; @@ -52,6 +55,25 @@ class LogsListAppBar extends StatelessWidget { } } + void showSearchDialog() { + showDialog( + context: context, + builder: (context) => _Search( + searchButtonRenderBox: _searchButtonKey.currentContext!.findRenderObject() as RenderBox, + onSearch: (v) { + logsProvider.setAppliedFilters( + AppliedFiters( + selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus, + searchText: v != "" ? v : null, + clients: logsProvider.appliedFilters.clients + ) + ); + logsProvider.filterLogs(); + }, + ), + ); + } + final Map translatedString = { "all": AppLocalizations.of(context)!.all, "filtered": AppLocalizations.of(context)!.filtered, @@ -77,22 +99,8 @@ class LogsListAppBar extends StatelessWidget { tooltip: AppLocalizations.of(context)!.refresh, ), if (logsProvider.loadStatus == LoadStatus.loaded) IconButton( - onPressed: () => showDialog( - context: context, - builder: (context) => _Search( - hasTopBar: MediaQuery.of(context).viewPadding.top > 0, - onSearch: (v) { - logsProvider.setAppliedFilters( - AppliedFiters( - selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus, - searchText: v != "" ? v : null, - clients: logsProvider.appliedFilters.clients - ) - ); - logsProvider.filterLogs(); - }, - ), - ), + key: _searchButtonKey, + onPressed: showSearchDialog, icon: const Icon(Icons.search_rounded), tooltip: AppLocalizations.of(context)!.search, ), @@ -235,11 +243,11 @@ class LogsListAppBar extends StatelessWidget { class _Search extends StatefulWidget { final void Function(String) onSearch; - final bool hasTopBar; + final RenderBox searchButtonRenderBox; const _Search({ required this.onSearch, - required this.hasTopBar, + required this.searchButtonRenderBox, }); @override @@ -261,67 +269,74 @@ class _SearchState extends State<_Search> { Widget build(BuildContext context) { final logsProvider = Provider.of(context); + final Offset position = widget.searchButtonRenderBox.localToGlobal(Offset.zero); + return GestureDetector( onTap: () => Navigator.pop(context), child: Material( color: Colors.transparent, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - GestureDetector( - onTap: () => {}, - child: ConstrainedBox( - constraints: const BoxConstraints(maxWidth: 500), - child: Container( - margin: widget.hasTopBar - ? const EdgeInsets.symmetric(horizontal: 16) - : const EdgeInsets.all(16), - decoration: BoxDecoration( - color: Theme.of(context).colorScheme.surface, - borderRadius: BorderRadius.circular(16) - ), - child: ClipRRect( - borderRadius: BorderRadius.circular(16), - child: TextFormField( - controller: _searchController, - onChanged: (v) { - if (v == "") { - logsProvider.setSearchText(null); - return; - } - logsProvider.setSearchText(v); - }, - onFieldSubmitted: (v) { - widget.onSearch(v); - Navigator.pop(context); - }, - autofocus: true, - decoration: InputDecoration( - hintText: AppLocalizations.of(context)!.search, - prefixIcon: const Icon(Icons.search_rounded), - border: InputBorder.none, - filled: true, - fillColor: Colors.grey.withOpacity(0.2), - suffixIcon: _searchController.text != "" - ? IconButton( - onPressed: () { - _searchController.text = ""; + child: LayoutBuilder( + builder: (context, constraints) { + final double width = constraints.maxWidth - 32 > 500 ? 500 : constraints.maxWidth - 32; + return Stack( + alignment: Alignment.topCenter, + children: [ + Positioned( + top: position.dy - MediaQuery.of(globalNavigatorKey.currentContext!).viewPadding.top, + child: SizedBox( + width: width, + child: GestureDetector( + onTap: () => {}, + child: Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, + borderRadius: BorderRadius.circular(16) + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(16), + child: TextFormField( + controller: _searchController, + onChanged: (v) { + if (v == "") { logsProvider.setSearchText(null); - }, - icon: const Icon( - Icons.close_rounded, - size: 20, - ), - tooltip: AppLocalizations.of(context)!.clearSearch, - ) - : null + return; + } + logsProvider.setSearchText(v); + }, + onFieldSubmitted: (v) { + widget.onSearch(v); + Navigator.pop(context); + }, + autofocus: true, + decoration: InputDecoration( + hintText: AppLocalizations.of(context)!.search, + prefixIcon: const Icon(Icons.search_rounded), + border: InputBorder.none, + filled: true, + fillColor: Colors.grey.withOpacity(0.2), + suffixIcon: _searchController.text != "" + ? IconButton( + onPressed: () { + _searchController.text = ""; + logsProvider.setSearchText(null); + }, + icon: const Icon( + Icons.close_rounded, + size: 20, + ), + tooltip: AppLocalizations.of(context)!.clearSearch, + ) + : null + ), + ), + ), ), ), ), - ), - ), - ) - ], + ) + ], + ); + } ), ), ); From 806e74ca9fa29a8731ce5bbdebbfbd94c95ce170 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Mar 2024 20:07:24 +0100 Subject: [PATCH 144/236] Added block unblock domain for a client --- lib/l10n/app_en.arb | 6 +++- lib/l10n/app_es.arb | 6 +++- lib/screens/logs/log_tile.dart | 51 ++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 17b3cc7..cd626ac 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -780,5 +780,9 @@ "date": "Date", "loadingChangelog": "Loading changelog...", "invalidIpOrUrl": "Invalid IP address or URL", - "addPersistentClient": "Add as a persistent client" + "addPersistentClient": "Add as a persistent client", + "blockThisClientOnly": "Block for this client only", + "unblockThisClientOnly": "Unblock for this client only", + "domainBlockedThisClient": "{domain} blocked for this client", + "domainUnblockedThisClient": "{domain} unblocked for this client" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index cd63b77..1faf2c7 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -780,5 +780,9 @@ "date": "Fecha", "loadingChangelog": "Cargando registro de cambios...", "invalidIpOrUrl": "Dirección IP o URL no válida", - "addPersistentClient": "Añadir como cliente persistente" + "addPersistentClient": "Añadir como cliente persistente", + "blockThisClientOnly": "Bloquear sólo para este cliente", + "unblockThisClientOnly": "Desbloquear sólo para este cliente", + "domainBlockedThisClient": "{domain} bloqueado para este cliente", + "domainUnblockedThisClient": "{domain} desbloqueado para este cliente" } \ No newline at end of file diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index c59aa64..bd44f95 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -9,6 +9,7 @@ import 'package:adguard_home_manager/screens/clients/client/client_screen.dart'; import 'package:adguard_home_manager/widgets/options_menu.dart'; import 'package:adguard_home_manager/providers/status_provider.dart'; +import 'package:adguard_home_manager/providers/filtering_provider.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/functions/copy_clipboard.dart'; @@ -45,6 +46,7 @@ class LogTile extends StatelessWidget { final appConfigProvider = Provider.of(context); final statusProvider = Provider.of(context); final clientsProvider = Provider.of(context); + final filteringProvider = Provider.of(context); Widget logStatusWidget({ required IconData icon, @@ -147,6 +149,37 @@ class LogTile extends StatelessWidget { } } + void blockUnblockRuleClient() async { + ProcessModal processModal = ProcessModal(); + processModal.open(AppLocalizations.of(context)!.addingRule); + + final rule = isDomainBlocked(log.reason) == true + ? "@@||${log.question.name}^\$client='${log.client}'" + : "||${log.question.name}^\$client='${log.client}'"; + + final result = await filteringProvider.addCustomRule(rule); + + processModal.close(); + + if (!context.mounted) return; + if (result == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: isDomainBlocked(log.reason) == true + ? AppLocalizations.of(context)!.domainUnblockedThisClient(log.question.name!) + : AppLocalizations.of(context)!.domainBlockedThisClient(log.question.name!), + color: Colors.green + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.ruleNotAdded, + color: Colors.red + ); + } + } + void openAddClient() { Future.delayed( const Duration(milliseconds: 0), @@ -182,6 +215,15 @@ class LogTile extends StatelessWidget { newStatus: domainBlocked == true ? 'unblock' : 'block' ) ), + MenuOption( + title: domainBlocked == true + ? AppLocalizations.of(context)!.unblockThisClientOnly + : AppLocalizations.of(context)!.blockThisClientOnly, + icon: domainBlocked == true + ? Icons.check_rounded + : Icons.block_rounded, + action: blockUnblockRuleClient + ), if (log.clientInfo?.name == "") MenuOption( title: AppLocalizations.of(context)!.addPersistentClient, icon: Icons.add_rounded, @@ -365,6 +407,15 @@ class LogTile extends StatelessWidget { newStatus: domainBlocked == true ? 'unblock' : 'block' ) ), + MenuOption( + title: domainBlocked == true + ? AppLocalizations.of(context)!.unblockThisClientOnly + : AppLocalizations.of(context)!.blockThisClientOnly, + icon: domainBlocked == true + ? Icons.check_rounded + : Icons.block_rounded, + action: blockUnblockRuleClient + ), if (log.clientInfo?.name == "") MenuOption( title: AppLocalizations.of(context)!.addPersistentClient, icon: Icons.add_rounded, From 5fdeaa80b7bba075bc2b77c168e2208bdea1ea88 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Mar 2024 20:33:14 +0100 Subject: [PATCH 145/236] Added option to allow and disallow client --- lib/l10n/app_en.arb | 9 +++++- lib/l10n/app_es.arb | 9 +++++- lib/screens/logs/log_tile.dart | 59 ++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 2 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index cd626ac..93b08af 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -784,5 +784,12 @@ "blockThisClientOnly": "Block for this client only", "unblockThisClientOnly": "Unblock for this client only", "domainBlockedThisClient": "{domain} blocked for this client", - "domainUnblockedThisClient": "{domain} unblocked for this client" + "domainUnblockedThisClient": "{domain} unblocked for this client", + "disallowThisClient": "Disallow this client", + "allowThisClient": "Allow this client", + "clientAllowedSuccessfully": "Client allowed successfully", + "clientDisallowedSuccessfully": "Client disallowed successfully", + "changesNotSaved": "Changes could not be saved", + "allowingClient": "Allowing client...", + "disallowingClient": "Disallowing client..." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 1faf2c7..e777f48 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -784,5 +784,12 @@ "blockThisClientOnly": "Bloquear sólo para este cliente", "unblockThisClientOnly": "Desbloquear sólo para este cliente", "domainBlockedThisClient": "{domain} bloqueado para este cliente", - "domainUnblockedThisClient": "{domain} desbloqueado para este cliente" + "domainUnblockedThisClient": "{domain} desbloqueado para este cliente", + "disallowThisClient": "No permitir este cliente", + "allowThisClient": "Permitir este cliente", + "clientAllowedSuccessfully": "Cliente permitido correctamente", + "clientDisallowedSuccessfully": "Cliente no permitido correctamente", + "changesNotSaved": "Los cambios no han podido ser guardados", + "allowingClient": "Permitiendo cliente...", + "disallowingClient": "No permitiendo cliente..." } \ No newline at end of file diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index bd44f95..f077c31 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -180,6 +180,47 @@ class LogTile extends StatelessWidget { } } + void allowDisallowClient() async { + ProcessModal processModal = ProcessModal(); + processModal.open( + log.clientInfo!.disallowed == true + ? AppLocalizations.of(context)!.allowingClient + : AppLocalizations.of(context)!.disallowingClient + ); + + final result = await clientsProvider.addClientList( + log.client, + log.clientInfo!.disallowed == true + ? AccessSettingsList.allowed + : AccessSettingsList.disallowed + ); + + processModal.close(); + + if (!context.mounted) return; + if (result.successful == true) { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.clientAddedSuccessfully, + color: Colors.green + ); + } + else if (result.successful == false && result.content == 'client_another_list') { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.clientAnotherList, + color: Colors.red + ); + } + else { + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.changesNotSaved, + color: Colors.red + ); + } + } + void openAddClient() { Future.delayed( const Duration(milliseconds: 0), @@ -229,6 +270,15 @@ class LogTile extends StatelessWidget { icon: Icons.add_rounded, action: openAddClient ), + MenuOption( + title: log.clientInfo!.disallowed == true + ? AppLocalizations.of(context)!.allowThisClient + : AppLocalizations.of(context)!.disallowThisClient, + icon: log.clientInfo!.disallowed == true + ? Icons.check_rounded + : Icons.block_rounded, + action: allowDisallowClient + ), if (log.question.name != null) MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, @@ -421,6 +471,15 @@ class LogTile extends StatelessWidget { icon: Icons.add_rounded, action: openAddClient ), + MenuOption( + title: log.clientInfo!.disallowed == true + ? AppLocalizations.of(context)!.allowThisClient + : AppLocalizations.of(context)!.disallowThisClient, + icon: log.clientInfo!.disallowed == true + ? Icons.check_rounded + : Icons.block_rounded, + action: allowDisallowClient + ), if (log.question.name != null) MenuOption( title: AppLocalizations.of(context)!.copyClipboard, icon: Icons.copy_rounded, From a8d0bd95a6a6d84fb50e8e97bd2cb96b9183d01a Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Mar 2024 20:41:49 +0100 Subject: [PATCH 146/236] Changed options menu --- lib/widgets/options_menu.dart | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lib/widgets/options_menu.dart b/lib/widgets/options_menu.dart index ad91b33..8daeb00 100644 --- a/lib/widgets/options_menu.dart +++ b/lib/widgets/options_menu.dart @@ -76,6 +76,7 @@ class _OptionsModal extends StatelessWidget { Widget build(BuildContext context) { return AlertDialog( contentPadding: const EdgeInsets.symmetric(vertical: 16), + scrollable: true, title: Column( children: [ Icon( @@ -94,19 +95,17 @@ class _OptionsModal extends StatelessWidget { ), content: ConstrainedBox( constraints: const BoxConstraints( - maxWidth: 400 + maxWidth: 500 ), - child: SingleChildScrollView( - child: Wrap( - children: options(value).map((opt) => CustomListTileDialog( - title: opt.title, - icon: opt.icon, - onTap: () { - Navigator.pop(context); - opt.action(); - }, - )).toList() - ), + child: Column( + children: options(value).map((opt) => CustomListTileDialog( + title: opt.title, + icon: opt.icon, + onTap: () { + Navigator.pop(context); + opt.action(); + }, + )).toList() ), ), actions: [ From 4b3129656ba71617963b8d4d41a99702ca2868a2 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Mar 2024 20:43:03 +0100 Subject: [PATCH 147/236] Updated libraries --- pubspec.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 38751b2..f59e518 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -157,10 +157,10 @@ packages: dependency: "direct main" description: name: dynamic_color - sha256: a866f1f8947bfdaf674d7928e769eac7230388a2e7a2542824fad4bb5b87be3b + sha256: eae98052fa6e2826bdac3dd2e921c6ce2903be15c6b7f8b6d8a5d49b5086298d url: "https://pub.dev" source: hosted - version: "1.6.9" + version: "1.7.0" equatable: dependency: transitive description: @@ -311,10 +311,10 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: a64c5323ac83ed2b7940d2b6288d160aa1753ff271ba9d9b2a86770414aa3eab + sha256: cb44f7831b23a6bdd0f501718b0d2e8045cbc625a15f668af37ddb80314821db url: "https://pub.dev" source: hosted - version: "0.6.20+1" + version: "0.6.21" flutter_native_splash: dependency: "direct dev" description: @@ -458,10 +458,10 @@ packages: dependency: "direct main" description: name: markdown - sha256: "1b134d9f8ff2da15cb298efe6cd8b7d2a78958c1b00384ebcbdf13fe340a6c90" + sha256: ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051 url: "https://pub.dev" source: hosted - version: "7.2.1" + version: "7.2.2" matcher: dependency: transitive description: @@ -618,18 +618,18 @@ packages: dependency: transitive description: name: sentry - sha256: d2ee9c850d876d285f22e2e662f400ec2438df9939fe4acd5d780df9841794ce + sha256: a524a87d096799b775530176c8c082afe7aa1f10cc31ba078fecdd74e9afc923 url: "https://pub.dev" source: hosted - version: "7.16.1" + version: "7.17.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: "5b428c189c825f16fb14e9166529043f06b965d5b59bfc3a1415e39c082398c0" + sha256: e0f8367f8f7c74dba9f7521f71700bce6c6ee065cf342f065d4fce411b84fc7b url: "https://pub.dev" source: hosted - version: "7.16.1" + version: "7.17.0" shared_preferences: dependency: "direct main" description: @@ -951,10 +951,10 @@ packages: dependency: transitive description: name: win32 - sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" + sha256: "8cb58b45c47dcb42ab3651533626161d6b67a2921917d8d429791f76972b3480" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.3.0" win32_registry: dependency: transitive description: From ac5be8b5001fa1c0ac94095773b92084e76d1c71 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Mar 2024 20:43:28 +0100 Subject: [PATCH 148/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 70e1dff..20d81bb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.16.4+134 +version: 2.17.0+135 environment: sdk: '>=2.18.1 <3.0.0' From e88b61eb906bec7498bd8d3b86024a45740b31d1 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 9 Mar 2024 20:43:28 +0100 Subject: [PATCH 149/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 70e1dff..66651ef 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.16.4+134 +version: 2.17.0-beta.1+135 environment: sdk: '>=2.18.1 <3.0.0' From b270ca2b8c75abe989328e0e688416a906d01597 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 10 Mar 2024 14:51:35 +0100 Subject: [PATCH 150/236] Added sliverappbar to more screens --- .../modals/blocked_services_screen.dart | 367 +++++++++++------- .../modals/custom_rules/add_custom_rule.dart | 94 +++-- .../custom_rules/edit_custom_rules.dart | 66 ++-- macos/Podfile.lock | 14 +- 4 files changed, 331 insertions(+), 210 deletions(-) diff --git a/lib/screens/filters/modals/blocked_services_screen.dart b/lib/screens/filters/modals/blocked_services_screen.dart index b95dd4f..f3f52ec 100644 --- a/lib/screens/filters/modals/blocked_services_screen.dart +++ b/lib/screens/filters/modals/blocked_services_screen.dart @@ -85,38 +85,130 @@ class _BlockedServicesScreenStateWidget extends State { if (widget.fullScreen == true) { return Dialog.fullscreen( - child: Scaffold( - appBar: AppBar( - leading: CloseButton(onPressed: () => Navigator.pop(context)), - title: Text(AppLocalizations.of(context)!.blockedServices), - actions: [ - IconButton( - onPressed: updateBlockedServices, - icon: const Icon( - Icons.save_rounded - ), - tooltip: AppLocalizations.of(context)!.save, - ), - const SizedBox(width: 10) - ], - ), - body: SafeArea( - child: RefreshIndicator( - onRefresh: () async { - final result = await filteringProvider.loadBlockedServices(); - if (result == false) { - showSnacbkar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.blockedServicesListNotLoaded, - color: Colors.red - ); - } - }, - child: _Content( - values: values, - updateValues: updateValues, + child: Material( + child: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar.large( + pinned: true, + floating: true, + centerTitle: false, + forceElevated: innerBoxIsScrolled, + leading: CloseButton(onPressed: () => Navigator.pop(context)), + title: Text(AppLocalizations.of(context)!.blockedServices), + actions: [ + IconButton( + onPressed: updateBlockedServices, + icon: const Icon( + Icons.save_rounded + ), + tooltip: AppLocalizations.of(context)!.save, + ), + const SizedBox(width: 10) + ], + ) ) - ), + ], + body: SafeArea( + top: false, + bottom: true, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + if (filteringProvider.blockedServicesLoadStatus == LoadStatus.loading) Container( + padding: const EdgeInsets.symmetric(horizontal: 16), + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingBlockedServicesList, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ), + if (filteringProvider.blockedServicesLoadStatus == LoadStatus.loaded) SliverList.builder( + itemCount: filteringProvider.blockedServices!.services.length, + itemBuilder: (context, index) => Material( + color: Colors.transparent, + child: InkWell( + onTap: () => updateValues( + values.contains(filteringProvider.blockedServices!.services[index].id), + filteringProvider.blockedServices!.services[index] + ), + child: Padding( + padding: const EdgeInsets.only( + top: 6, + bottom: 6, + right: 12, + left: 24 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + filteringProvider.blockedServices!.services[index].name, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurface + ), + ), + Checkbox( + value: values.contains(filteringProvider.blockedServices!.services[index].id), + onChanged: (value) => updateValues( + value!, + filteringProvider.blockedServices!.services[index] + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5) + ), + ) + ], + ), + ), + ), + ) + ), + if (filteringProvider.blockedServicesLoadStatus == LoadStatus.error) Container( + padding: const EdgeInsets.symmetric(horizontal: 16), + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.blockedServicesListNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ) + ], + ), + ) + ) ), ), ); @@ -162,9 +254,105 @@ class _BlockedServicesScreenStateWidget extends State { ), ), Expanded( - child: _Content( - values: values, - updateValues: updateValues, + child: Builder( + builder: (ctx) { + switch (filteringProvider.blockedServicesLoadStatus) { + case LoadStatus.loading: + return Container( + padding: const EdgeInsets.symmetric(horizontal: 16), + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingBlockedServicesList, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + case LoadStatus.loaded: + return ListView.builder( + itemCount: filteringProvider.blockedServices!.services.length, + itemBuilder: (context, index) => Material( + color: Colors.transparent, + child: InkWell( + onTap: () => updateValues( + values.contains(filteringProvider.blockedServices!.services[index].id), + filteringProvider.blockedServices!.services[index] + ), + child: Padding( + padding: const EdgeInsets.only( + top: 6, + bottom: 6, + right: 12, + left: 24 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + filteringProvider.blockedServices!.services[index].name, + style: TextStyle( + fontSize: 16, + color: Theme.of(context).colorScheme.onSurface + ), + ), + Checkbox( + value: values.contains(filteringProvider.blockedServices!.services[index].id), + onChanged: (value) => updateValues( + value!, + filteringProvider.blockedServices!.services[index] + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5) + ), + ) + ], + ), + ), + ), + ) + ); + + case LoadStatus.error: + return Container( + padding: const EdgeInsets.symmetric(horizontal: 16), + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, + ), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.blockedServicesListNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), + ); + + default: + return const SizedBox(); + } + }, ) ), ], @@ -175,117 +363,6 @@ class _BlockedServicesScreenStateWidget extends State { } } -class _Content extends StatelessWidget { - final List values; - final void Function(bool value, BlockedService item) updateValues; - - const _Content({ - required this.values, - required this.updateValues, - }); - - @override - Widget build(BuildContext context) { - final filteringProvider = Provider.of(context); - - switch (filteringProvider.blockedServicesLoadStatus) { - case LoadStatus.loading: - return Container( - padding: const EdgeInsets.symmetric(horizontal: 16), - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingBlockedServicesList, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), - ); - - case LoadStatus.loaded: - return ListView.builder( - itemCount: filteringProvider.blockedServices!.services.length, - itemBuilder: (context, index) => Material( - color: Colors.transparent, - child: InkWell( - onTap: () => updateValues( - values.contains(filteringProvider.blockedServices!.services[index].id), - filteringProvider.blockedServices!.services[index] - ), - child: Padding( - padding: const EdgeInsets.only( - top: 6, - bottom: 6, - right: 12, - left: 24 - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - filteringProvider.blockedServices!.services[index].name, - style: TextStyle( - fontSize: 16, - color: Theme.of(context).colorScheme.onSurface - ), - ), - Checkbox( - value: values.contains(filteringProvider.blockedServices!.services[index].id), - onChanged: (value) => updateValues( - value!, - filteringProvider.blockedServices!.services[index] - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(5) - ), - ) - ], - ), - ), - ), - ) - ); - - case LoadStatus.error: - return Container( - padding: const EdgeInsets.symmetric(horizontal: 16), - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.blockedServicesListNotLoaded, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], - ), - ); - - default: - return const SizedBox(); - } - } -} void openBlockedServicesModal({ required BuildContext context, diff --git a/lib/screens/filters/modals/custom_rules/add_custom_rule.dart b/lib/screens/filters/modals/custom_rules/add_custom_rule.dart index 00fe303..7e6e604 100644 --- a/lib/screens/filters/modals/custom_rules/add_custom_rule.dart +++ b/lib/screens/filters/modals/custom_rules/add_custom_rule.dart @@ -55,44 +55,66 @@ class _AddCustomRuleState extends State { Widget build(BuildContext context) { if (widget.fullScreen == true) { return Dialog.fullscreen( - child: Scaffold( - appBar: AppBar( - leading: CloseButton(onPressed: () => Navigator.pop(context)), - title: Text(AppLocalizations.of(context)!.addCustomRule), - actions: [ - IconButton( - onPressed: _checkValidValues() == true - ? () { - Navigator.pop(context); - widget.onConfirm( - _buildRule( - domainController: _domainController, - important: _addImportant, - preset: _preset - ) - ); - } - : null, - icon: const Icon(Icons.check) - ), - const SizedBox(width: 10) - ], - ), - body: SafeArea( - child: ListView( - children: [ - _CustomRuleEditor( - domainController: _domainController, - domainError: _domainError, - important: _addImportant, - preset: _preset, - setImportant: (v) => setState(() => _addImportant = v), - setPreset: (v) => setState(() => _preset = v), - validateDomain: validateDomain + child: Material( + child: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar.large( + pinned: true, + floating: true, + centerTitle: false, + forceElevated: innerBoxIsScrolled, + leading: CloseButton(onPressed: () => Navigator.pop(context)), + title: Text(AppLocalizations.of(context)!.addCustomRule), + actions: [ + IconButton( + onPressed: _checkValidValues() == true + ? () { + Navigator.pop(context); + widget.onConfirm( + _buildRule( + domainController: _domainController, + important: _addImportant, + preset: _preset + ) + ); + } + : null, + icon: const Icon(Icons.check) + ), + const SizedBox(width: 10) + ], + ) ) - ] + ], + body: SafeArea( + top: false, + bottom: true, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + SliverList.list( + children: [ + _CustomRuleEditor( + domainController: _domainController, + domainError: _domainError, + important: _addImportant, + preset: _preset, + setImportant: (v) => setState(() => _addImportant = v), + setPreset: (v) => setState(() => _preset = v), + validateDomain: validateDomain + ) + ] + ) + ], + ), + ) + ) ), - ) ), ); } diff --git a/lib/screens/filters/modals/custom_rules/edit_custom_rules.dart b/lib/screens/filters/modals/custom_rules/edit_custom_rules.dart index ba02ab0..b063411 100644 --- a/lib/screens/filters/modals/custom_rules/edit_custom_rules.dart +++ b/lib/screens/filters/modals/custom_rules/edit_custom_rules.dart @@ -37,29 +37,51 @@ class _EditCustomRulesState extends State { Widget build(BuildContext context) { if (widget.fullScreen == true) { return Dialog.fullscreen( - child: Scaffold( - appBar: AppBar( - leading: CloseButton(onPressed: () => Navigator.pop(context)), - title: Text(AppLocalizations.of(context)!.editCustomRules), - actions: [ - IconButton( - onPressed: () { - Navigator.pop(context); - widget.onConfirm(_fieldController.text.split("\n")); - }, - icon: const Icon(Icons.save_rounded), - tooltip: AppLocalizations.of(context)!.save, - ), - const SizedBox(width: 10) - ], + child: Material( + child: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar.large( + pinned: true, + floating: true, + centerTitle: false, + forceElevated: innerBoxIsScrolled, + leading: CloseButton(onPressed: () => Navigator.pop(context)), + title: Text(AppLocalizations.of(context)!.editCustomRules), + actions: [ + IconButton( + onPressed: () { + Navigator.pop(context); + widget.onConfirm(_fieldController.text.split("\n")); + }, + icon: const Icon(Icons.save_rounded), + tooltip: AppLocalizations.of(context)!.save, + ), + const SizedBox(width: 10) + ], + ) + ) + ], + body: SafeArea( + top: false, + bottom: true, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + SliverList.list( + children: [ + _CustomRulesRawEditor(fieldController: _fieldController) + ] + ) + ], + ), + ) + ) ), - body: SafeArea( - child: ListView( - children: [ - _CustomRulesRawEditor(fieldController: _fieldController) - ] - ), - ) ), ); } diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 33a5a97..a7aa080 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -6,13 +6,13 @@ PODS: - FlutterMacOS (1.0.0) - package_info_plus (0.0.1): - FlutterMacOS - - Sentry/HybridSDK (8.20.0): - - SentryPrivate (= 8.20.0) + - Sentry/HybridSDK (8.21.0): + - SentryPrivate (= 8.21.0) - sentry_flutter (0.0.1): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.20.0) - - SentryPrivate (8.20.0) + - Sentry/HybridSDK (= 8.21.0) + - SentryPrivate (8.21.0) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS @@ -84,9 +84,9 @@ SPEC CHECKSUMS: dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce - Sentry: a8d7b373b9f9868442b02a0c425192f693103cbf - sentry_flutter: 03e7660857a8cdb236e71456a7e8447b65c8a788 - SentryPrivate: 006b24af16828441f70e2ab6adf241bd0a8ad130 + Sentry: ebc12276bd17613a114ab359074096b6b3725203 + sentry_flutter: dff1df05dc39c83d04f9330b36360fc374574c5e + SentryPrivate: d651efb234cf385ec9a1cdd3eff94b5e78a0e0fe shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec sqlite3: 73b7fc691fdc43277614250e04d183740cb15078 From e013b1496e618eec44f03dedeb40c69534b3446f Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 10 Mar 2024 20:30:25 +0100 Subject: [PATCH 151/236] Bug fixes --- lib/screens/logs/log_tile.dart | 4 ++-- lib/screens/logs/logs.dart | 10 +++++++++- lib/screens/logs/logs_list_appbar.dart | 9 +++++---- lib/screens/settings/dns/dns_server_settings.dart | 2 +- lib/screens/settings/update_server/update_screen.dart | 3 ++- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index f077c31..9dfea35 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -256,7 +256,7 @@ class LogTile extends StatelessWidget { newStatus: domainBlocked == true ? 'unblock' : 'block' ) ), - MenuOption( + if (filteringProvider.filtering != null) MenuOption( title: domainBlocked == true ? AppLocalizations.of(context)!.unblockThisClientOnly : AppLocalizations.of(context)!.blockThisClientOnly, @@ -457,7 +457,7 @@ class LogTile extends StatelessWidget { newStatus: domainBlocked == true ? 'unblock' : 'block' ) ), - MenuOption( + if (filteringProvider.filtering != null) MenuOption( title: domainBlocked == true ? AppLocalizations.of(context)!.unblockThisClientOnly : AppLocalizations.of(context)!.blockThisClientOnly, diff --git a/lib/screens/logs/logs.dart b/lib/screens/logs/logs.dart index 560db9c..e99317d 100644 --- a/lib/screens/logs/logs.dart +++ b/lib/screens/logs/logs.dart @@ -1,14 +1,16 @@ // ignore_for_file: use_build_context_synchronously import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import 'package:adguard_home_manager/screens/logs/logs_list.dart'; import 'package:adguard_home_manager/screens/logs/details/log_details_screen.dart'; import 'package:adguard_home_manager/models/logs.dart'; +import 'package:adguard_home_manager/providers/filtering_provider.dart'; class Logs extends StatefulWidget { - const Logs({Key? key}) : super(key: key); + const Logs({super.key}); @override State createState() => _LogsState(); @@ -17,6 +19,12 @@ class Logs extends StatefulWidget { class _LogsState extends State { Log? _selectedLog; + @override + void initState() { + Provider.of(context, listen: false).fetchFilters(); + super.initState(); + } + @override Widget build(BuildContext context) { return LayoutBuilder( diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index 341593a..5014806 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -59,7 +59,7 @@ class LogsListAppBar extends StatelessWidget { showDialog( context: context, builder: (context) => _Search( - searchButtonRenderBox: _searchButtonKey.currentContext!.findRenderObject() as RenderBox, + searchButtonRenderBox: _searchButtonKey.currentContext?.findRenderObject() as RenderBox?, onSearch: (v) { logsProvider.setAppliedFilters( AppliedFiters( @@ -243,7 +243,7 @@ class LogsListAppBar extends StatelessWidget { class _Search extends StatefulWidget { final void Function(String) onSearch; - final RenderBox searchButtonRenderBox; + final RenderBox? searchButtonRenderBox; const _Search({ required this.onSearch, @@ -269,7 +269,8 @@ class _SearchState extends State<_Search> { Widget build(BuildContext context) { final logsProvider = Provider.of(context); - final Offset position = widget.searchButtonRenderBox.localToGlobal(Offset.zero); + final position = widget.searchButtonRenderBox?.localToGlobal(Offset.zero); + final topPadding = MediaQuery.of(globalNavigatorKey.currentContext!).viewPadding.top; return GestureDetector( onTap: () => Navigator.pop(context), @@ -282,7 +283,7 @@ class _SearchState extends State<_Search> { alignment: Alignment.topCenter, children: [ Positioned( - top: position.dy - MediaQuery.of(globalNavigatorKey.currentContext!).viewPadding.top, + top: position != null ? position.dy - topPadding : topPadding, child: SizedBox( width: width, child: GestureDetector( diff --git a/lib/screens/settings/dns/dns_server_settings.dart b/lib/screens/settings/dns/dns_server_settings.dart index ddae1e3..a4b7369 100644 --- a/lib/screens/settings/dns/dns_server_settings.dart +++ b/lib/screens/settings/dns/dns_server_settings.dart @@ -165,7 +165,7 @@ class _DnsServerSettingsScreenState extends State { processModal.open(AppLocalizations.of(context)!.savingConfig); final result = await dnsProvider.saveDnsServerConfig({ - "ratelimit": int.parse(_limitRequestsController.text), + "ratelimit": int.tryParse(_limitRequestsController.text), "edns_cs_enabled": _enableEdns, "edns_cs_use_custom": _useCustomIpEdns, "edns_cs_custom_ip": _customIpEdnsController.text, diff --git a/lib/screens/settings/update_server/update_screen.dart b/lib/screens/settings/update_server/update_screen.dart index aa85e7c..5386ad8 100644 --- a/lib/screens/settings/update_server/update_screen.dart +++ b/lib/screens/settings/update_server/update_screen.dart @@ -47,6 +47,7 @@ class _UpdateScreenState extends State { void processChangelog() async { final serversProvider = Provider.of(context, listen: false); + if (serversProvider.updateAvailable.data?.changelog == null) return; final markdownResult = await compute(md.markdownToHtml, serversProvider.updateAvailable.data!.changelog!); final htmlParsedResult = await compute(html.parse, markdownResult); setState(() => _htmlChangelog = htmlParsedResult.outerHtml); @@ -84,7 +85,7 @@ class _UpdateScreenState extends State { processModal.close(); - if (!mounted) return; + if (!context.mounted) return; if (result.successful == true) { serversProvider.recheckPeriodServerUpdated(); showSnacbkar( From fd25088791d841fb20bface406aab39d1094da51 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 10 Mar 2024 20:31:16 +0100 Subject: [PATCH 152/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 66651ef..232e855 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.17.0-beta.1+135 +version: 2.17.0+136 environment: sdk: '>=2.18.1 <3.0.0' From 5be5377110f94407e949fee770d927747df2e117 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 10 Mar 2024 21:15:24 +0100 Subject: [PATCH 153/236] Removed splitview package --- lib/screens/clients/added_list.dart | 4 +- lib/screens/clients/clients.dart | 37 +++++++--------- lib/screens/clients/clients_lists.dart | 18 ++++++-- lib/screens/settings/dhcp/dhcp.dart | 14 +++--- lib/screens/settings/dns/dns.dart | 4 +- .../general_settings/general_settings.dart | 6 ++- lib/screens/settings/settings.dart | 44 ++++++++++--------- pubspec.lock | 9 ---- pubspec.yaml | 4 -- 9 files changed, 71 insertions(+), 69 deletions(-) diff --git a/lib/screens/clients/added_list.dart b/lib/screens/clients/added_list.dart index aa86785..0bb668b 100644 --- a/lib/screens/clients/added_list.dart +++ b/lib/screens/clients/added_list.dart @@ -3,10 +3,10 @@ import 'package:flutter/material.dart'; import 'package:animations/animations.dart'; import 'package:flutter/rendering.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/clients/clients.dart'; import 'package:adguard_home_manager/screens/clients/client/client_screen_functions.dart'; import 'package:adguard_home_manager/screens/clients/client/added_client_tile.dart'; import 'package:adguard_home_manager/screens/clients/client/remove_client_modal.dart'; @@ -107,7 +107,7 @@ class _AddedListState extends State { if (result == true) { if (widget.splitView == true) { - SplitView.of(context).popUntil(0); + Navigator.of(clientsNavigatorKey.currentContext!).popUntil((route) => false); } showSnacbkar( appConfigProvider: appConfigProvider, diff --git a/lib/screens/clients/clients.dart b/lib/screens/clients/clients.dart index 1549bb6..2ca57f1 100644 --- a/lib/screens/clients/clients.dart +++ b/lib/screens/clients/clients.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/clients/clients_lists.dart'; import 'package:adguard_home_manager/models/clients.dart'; +final clientsNavigatorKey = GlobalKey(); + class Clients extends StatefulWidget { const Clients({super.key}); @@ -24,26 +24,23 @@ class _ClientsState extends State with TickerProviderStateMixin { body: LayoutBuilder( builder: (context, constraints) { if (constraints.maxWidth > 900) { - return SplitView.material( - hideDivider: true, - flexWidth: const FlexWidth(mainViewFlexWidth: 1, secondaryViewFlexWidth: 2), - placeholder: Center( - child: Padding( - padding: const EdgeInsets.all(24), - child: Text( - AppLocalizations.of(context)!.selectClientLeftColumn, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - ), - ), + return Row( + children: [ + const Expanded( + flex: 1, + child: ClientsLists( + splitView: true, + ) ), - child: const ClientsLists( - splitView: true, + Expanded( + flex: 2, + child: Navigator( + key: clientsNavigatorKey, + onGenerateRoute: (settings) => MaterialPageRoute(builder: (ctx) => const SizedBox()), + ), ) - ); + ], + ); } else { return const ClientsLists( diff --git a/lib/screens/clients/clients_lists.dart b/lib/screens/clients/clients_lists.dart index bdc56b8..a2cfa19 100644 --- a/lib/screens/clients/clients_lists.dart +++ b/lib/screens/clients/clients_lists.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/clients/clients.dart'; import 'package:adguard_home_manager/screens/clients/added_list.dart'; import 'package:adguard_home_manager/screens/clients/client/logs_list_client.dart'; import 'package:adguard_home_manager/screens/clients/clients_list.dart'; @@ -68,7 +68,13 @@ class _ClientsListsState extends State with TickerProviderStateMix splitView: widget.splitView, ); if (widget.splitView) { - SplitView.of(context).push(w); + Navigator.of(clientsNavigatorKey.currentContext!).pushReplacement( + PageRouteBuilder( + pageBuilder: (context, animation1, animation2) => w, + transitionDuration: Duration.zero, + reverseTransitionDuration: Duration.zero, + ) + ); } else { Navigator.of(context).push( @@ -88,7 +94,13 @@ class _ClientsListsState extends State with TickerProviderStateMix splitView: widget.splitView, ); if (widget.splitView) { - SplitView.of(context).push(w); + Navigator.of(clientsNavigatorKey.currentContext!).pushReplacement( + PageRouteBuilder( + pageBuilder: (context, animation1, animation2) => w, + transitionDuration: Duration.zero, + reverseTransitionDuration: Duration.zero, + ) + ); } else { Navigator.of(context).push( diff --git a/lib/screens/settings/dhcp/dhcp.dart b/lib/screens/settings/dhcp/dhcp.dart index a17d620..f7facd6 100644 --- a/lib/screens/settings/dhcp/dhcp.dart +++ b/lib/screens/settings/dhcp/dhcp.dart @@ -3,10 +3,10 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/settings/settings.dart'; import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_not_available.dart'; import 'package:adguard_home_manager/widgets/confirm_action_modal.dart'; import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_main_button.dart'; @@ -610,11 +610,11 @@ class _DhcpScreenState extends State { ElevatedButton( onPressed: () { if (!(Platform.isAndroid || Platform.isIOS)) { - SplitView.of(context).push( - DhcpLeases( + Navigator.of(settingsNavigatorKey.currentContext!).push( + MaterialPageRoute(builder: (ctx) => DhcpLeases( items: dhcpProvider.dhcp!.dhcpStatus!.leases, staticLeases: false, - ) + )) ); } else { @@ -639,11 +639,11 @@ class _DhcpScreenState extends State { ElevatedButton( onPressed: () { if (!(Platform.isAndroid || Platform.isIOS)) { - SplitView.of(context).push( - DhcpLeases( + Navigator.of(settingsNavigatorKey.currentContext!).push( + MaterialPageRoute(builder: (ctx) => DhcpLeases( items: dhcpProvider.dhcp!.dhcpStatus!.staticLeases, staticLeases: true, - ) + )) ); } else { diff --git a/lib/screens/settings/dns/dns.dart b/lib/screens/settings/dns/dns.dart index 4a7c78a..baba9fa 100644 --- a/lib/screens/settings/dns/dns.dart +++ b/lib/screens/settings/dns/dns.dart @@ -1,10 +1,10 @@ // ignore_for_file: use_build_context_synchronously import 'package:flutter/material.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/settings/settings.dart'; import 'package:adguard_home_manager/screens/settings/dns/fallback_dns.dart'; import 'package:adguard_home_manager/screens/settings/dns/test_upstream_dns_modal.dart'; import 'package:adguard_home_manager/screens/settings/dns/clear_dns_cache_dialog.dart'; @@ -52,7 +52,7 @@ class _DnsSettingsState extends State { void navigate(Widget w) { if (widget.splitView) { - SplitView.of(context).push(w); + Navigator.of(settingsNavigatorKey.currentContext!).push(MaterialPageRoute(builder: (ctx) => w)); } else { Navigator.of(context).push( diff --git a/lib/screens/settings/general_settings/general_settings.dart b/lib/screens/settings/general_settings/general_settings.dart index 7439353..7c396da 100644 --- a/lib/screens/settings/general_settings/general_settings.dart +++ b/lib/screens/settings/general_settings/general_settings.dart @@ -3,11 +3,11 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:provider/provider.dart'; import 'package:store_checker/store_checker.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/settings/settings.dart'; import 'package:adguard_home_manager/screens/settings/general_settings/top_items_list/top_items_list_settings.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; @@ -199,7 +199,9 @@ class _GeneralSettingsState extends State { title: AppLocalizations.of(context)!.topItemsOrder, subtitle: AppLocalizations.of(context)!.topItemsOrderDescription, onTap: () => widget.splitView == true - ? SplitView.of(context).push(const TopItemsListSettings()) + ? Navigator.of(settingsNavigatorKey.currentContext!).push( + MaterialPageRoute(builder: (ctx) => const TopItemsListSettings()) + ) : Navigator.of(context).push( MaterialPageRoute( builder: (context) => const TopItemsListSettings() diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index bce5e11..0f55b89 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -3,7 +3,6 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:flutter_split_view/flutter_split_view.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/settings/server_info/server_info.dart'; @@ -33,6 +32,8 @@ import 'package:adguard_home_manager/providers/status_provider.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; +final settingsNavigatorKey = GlobalKey(); + class Settings extends StatelessWidget { const Settings({super.key}); @@ -41,25 +42,22 @@ class Settings extends StatelessWidget { return LayoutBuilder( builder: (context, constraints) { if (constraints.maxWidth > 900) { - return SplitView.material( - hideDivider: true, - flexWidth: const FlexWidth(mainViewFlexWidth: 1, secondaryViewFlexWidth: 2), - placeholder: Center( - child: Padding( - padding: const EdgeInsets.all(24), - child: Text( - AppLocalizations.of(context)!.selectOptionLeftColumn, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - ), + return Row( + children: [ + const Expanded( + flex: 1, + child: _SettingsWidget( + twoColumns: true, + ) ), - ), - child: const _SettingsWidget( - twoColumns: true, - ), + Expanded( + flex: 2, + child: Navigator( + key: settingsNavigatorKey, + onGenerateRoute: (settings) => MaterialPageRoute(builder: (ctx) => const SizedBox()), + ), + ) + ], ); } else { @@ -351,7 +349,13 @@ class _SettingsTile extends StatelessWidget { selectedItem: appConfigProvider.selectedSettingsScreen, onTap: () { appConfigProvider.setSelectedSettingsScreen(screen: thisItem, notify: true); - SplitView.of(context).setSecondary(screenToNavigate); + Navigator.of(settingsNavigatorKey.currentContext!).pushReplacement( + PageRouteBuilder( + pageBuilder: (context, animation1, animation2) => screenToNavigate, + transitionDuration: Duration.zero, + reverseTransitionDuration: Duration.zero, + ), + ); }, ); } diff --git a/pubspec.lock b/pubspec.lock index f59e518..a1ae53b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -331,15 +331,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" - flutter_split_view: - dependency: "direct main" - description: - path: "." - ref: master-alt - resolved-ref: a6aa2419243cc0abccf9474ce340790d6c0ded6f - url: "https://github.com/JGeek00/flutter_split_view" - source: git - version: "0.1.2" flutter_svg: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 232e855..8aa5909 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -62,10 +62,6 @@ dependencies: git: url: https://github.com/google/flutter-desktop-embedding path: plugins/window_size - flutter_split_view: - git: - url: https://github.com/JGeek00/flutter_split_view - ref: master-alt contextmenu: ^3.0.0 async: ^2.11.0 sentry_flutter: ^7.13.2 From 999da666b46eecc34f1b8492a7d47da4f8e75908 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 10 Mar 2024 21:24:17 +0100 Subject: [PATCH 154/236] Replaced window size with window manager --- lib/main.dart | 5 +++-- linux/flutter/generated_plugin_registrant.cc | 12 +++++++---- linux/flutter/generated_plugins.cmake | 3 ++- macos/Flutter/GeneratedPluginRegistrant.swift | 6 ++++-- macos/Podfile.lock | 16 +++++++++----- pubspec.lock | 21 ++++++++++++------- pubspec.yaml | 5 +---- .../flutter/generated_plugin_registrant.cc | 9 +++++--- windows/flutter/generated_plugins.cmake | 3 ++- 9 files changed, 51 insertions(+), 29 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 98669e6..db378ae 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -13,7 +13,7 @@ import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; import 'package:store_checker/store_checker.dart'; -import 'package:window_size/window_size.dart'; +import 'package:window_manager/window_manager.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -40,7 +40,8 @@ void main() async { SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) { - setWindowMinSize(const Size(500, 500)); + await windowManager.ensureInitialized(); + WindowManager.instance.setMinimumSize(const Size(1280, 720)); } if (Platform.isWindows || Platform.isLinux) { diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 1786709..fd3f3f5 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -7,15 +7,19 @@ #include "generated_plugin_registrant.h" #include +#include #include #include #include -#include +#include void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) dynamic_color_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "DynamicColorPlugin"); dynamic_color_plugin_register_with_registrar(dynamic_color_registrar); + g_autoptr(FlPluginRegistrar) screen_retriever_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverPlugin"); + screen_retriever_plugin_register_with_registrar(screen_retriever_registrar); g_autoptr(FlPluginRegistrar) sentry_flutter_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "SentryFlutterPlugin"); sentry_flutter_plugin_register_with_registrar(sentry_flutter_registrar); @@ -25,7 +29,7 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); - g_autoptr(FlPluginRegistrar) window_size_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "WindowSizePlugin"); - window_size_plugin_register_with_registrar(window_size_registrar); + g_autoptr(FlPluginRegistrar) window_manager_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "WindowManagerPlugin"); + window_manager_plugin_register_with_registrar(window_manager_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 59ac090..307410d 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -4,10 +4,11 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color + screen_retriever sentry_flutter sqlite3_flutter_libs url_launcher_linux - window_size + window_manager ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 045b44f..28ea475 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -8,21 +8,23 @@ import Foundation import device_info_plus import dynamic_color import package_info_plus +import screen_retriever import sentry_flutter import shared_preferences_foundation import sqflite import sqlite3_flutter_libs import url_launcher_macos -import window_size +import window_manager func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) DynamicColorPlugin.register(with: registry.registrar(forPlugin: "DynamicColorPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) + ScreenRetrieverPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverPlugin")) SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) - WindowSizePlugin.register(with: registry.registrar(forPlugin: "WindowSizePlugin")) + WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin")) } diff --git a/macos/Podfile.lock b/macos/Podfile.lock index a7aa080..5357874 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -6,6 +6,8 @@ PODS: - FlutterMacOS (1.0.0) - package_info_plus (0.0.1): - FlutterMacOS + - screen_retriever (0.0.1): + - FlutterMacOS - Sentry/HybridSDK (8.21.0): - SentryPrivate (= 8.21.0) - sentry_flutter (0.0.1): @@ -36,7 +38,7 @@ PODS: - sqlite3/rtree - url_launcher_macos (0.0.1): - FlutterMacOS - - window_size (0.0.2): + - window_manager (0.2.0): - FlutterMacOS DEPENDENCIES: @@ -44,12 +46,13 @@ DEPENDENCIES: - dynamic_color (from `Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) + - screen_retriever (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos`) - sentry_flutter (from `Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos`) - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`) - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - - window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`) + - window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`) SPEC REPOS: trunk: @@ -66,6 +69,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral package_info_plus: :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos + screen_retriever: + :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos sentry_flutter: :path: Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos shared_preferences_foundation: @@ -76,14 +81,15 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos url_launcher_macos: :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos - window_size: - :path: Flutter/ephemeral/.symlinks/plugins/window_size/macos + window_manager: + :path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos SPEC CHECKSUMS: device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce + screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38 Sentry: ebc12276bd17613a114ab359074096b6b3725203 sentry_flutter: dff1df05dc39c83d04f9330b36360fc374574c5e SentryPrivate: d651efb234cf385ec9a1cdd3eff94b5e78a0e0fe @@ -92,7 +98,7 @@ SPEC CHECKSUMS: sqlite3: 73b7fc691fdc43277614250e04d183740cb15078 sqlite3_flutter_libs: 06a05802529659a272beac4ee1350bfec294f386 url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 - window_size: 339dafa0b27a95a62a843042038fa6c3c48de195 + window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 diff --git a/pubspec.lock b/pubspec.lock index a1ae53b..7b50c80 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -597,6 +597,14 @@ packages: url: "https://pub.dev" source: hosted version: "6.1.2" + screen_retriever: + dependency: transitive + description: + name: screen_retriever + sha256: "6ee02c8a1158e6dae7ca430da79436e3b1c9563c8cf02f524af997c201ac2b90" + url: "https://pub.dev" + source: hosted + version: "0.1.9" segmented_button_slide: dependency: "direct main" description: @@ -954,15 +962,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.2" - window_size: + window_manager: dependency: "direct main" description: - path: "plugins/window_size" - ref: HEAD - resolved-ref: "6c66ad23ee79749f30a8eece542cf54eaf157ed8" - url: "https://github.com/google/flutter-desktop-embedding" - source: git - version: "0.1.0" + name: window_manager + sha256: b3c895bdf936c77b83c5254bec2e6b3f066710c1f89c38b20b8acc382b525494 + url: "https://pub.dev" + source: hosted + version: "0.3.8" xdg_directories: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8aa5909..daf62b3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -58,10 +58,6 @@ dependencies: flutter_html: ^3.0.0-beta.2 sqlite3_flutter_libs: ^0.5.18 sqflite_common_ffi: ^2.3.1 - window_size: - git: - url: https://github.com/google/flutter-desktop-embedding - path: plugins/window_size contextmenu: ^3.0.0 async: ^2.11.0 sentry_flutter: ^7.13.2 @@ -74,6 +70,7 @@ dependencies: flutter_custom_tabs: ^2.0.0+1 url_launcher: ^6.2.4 shared_preferences: ^2.2.2 + window_manager: ^0.3.8 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 50bb1c8..683e616 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -7,20 +7,23 @@ #include "generated_plugin_registrant.h" #include +#include #include #include #include -#include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { DynamicColorPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); + ScreenRetrieverPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ScreenRetrieverPlugin")); SentryFlutterPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("SentryFlutterPlugin")); Sqlite3FlutterLibsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin")); UrlLauncherWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("UrlLauncherWindows")); - WindowSizePluginRegisterWithRegistrar( - registry->GetRegistrarForPlugin("WindowSizePlugin")); + WindowManagerPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("WindowManagerPlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 71f5fcf..b2ba396 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -4,10 +4,11 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color + screen_retriever sentry_flutter sqlite3_flutter_libs url_launcher_windows - window_size + window_manager ) list(APPEND FLUTTER_FFI_PLUGIN_LIST From 7e13285b7eb479d83a2b79d25b874a6214c3f799 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 10 Mar 2024 21:30:25 +0100 Subject: [PATCH 155/236] Changed size --- lib/main.dart | 2 +- windows/runner/main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index db378ae..dce3456 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -41,7 +41,7 @@ void main() async { if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) { await windowManager.ensureInitialized(); - WindowManager.instance.setMinimumSize(const Size(1280, 720)); + WindowManager.instance.setMinimumSize(const Size(500, 700)); } if (Platform.isWindows || Platform.isLinux) { diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp index 1c992e7..618eef7 100644 --- a/windows/runner/main.cpp +++ b/windows/runner/main.cpp @@ -26,7 +26,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); - Win32Window::Size size(1280, 720); + Win32Window::Size size(500,700); if (!window.Create(L"AdGuard Home Manager", origin, size)) { return EXIT_FAILURE; } From d48687bfa073fec2d93a74d5bff85cc0ddb48ceb Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 10 Mar 2024 21:53:06 +0100 Subject: [PATCH 156/236] Fixed innosetup --- windows/innosetup_installer_builder.iss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/innosetup_installer_builder.iss b/windows/innosetup_installer_builder.iss index 92a4b72..53b8fc7 100644 --- a/windows/innosetup_installer_builder.iss +++ b/windows/innosetup_installer_builder.iss @@ -44,7 +44,7 @@ Source: "..\build\windows\x64\runner\Release\sentry_flutter_plugin.dll"; DestDir Source: "..\build\windows\x64\runner\Release\sqlite3.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\sqlite3_flutter_libs_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\url_launcher_windows_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion -Source: "..\build\windows\x64\runner\Release\window_size_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "..\build\windows\x64\runner\Release\window_manager_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\data\*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs createallsubdirs ; NOTE: Don't use "Flags: ignoreversion" on any shared system files From d3b6833e1542a692b7d78e1c3f1807dad8eb7007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EF=BC=B7=EF=BC=A9=EF=BC=AE=EF=BC=BA=EF=BC=AF=EF=BC=B2?= =?UTF-8?q?=EF=BC=B4?= <75412448+mikropsoft@users.noreply.github.com> Date: Fri, 15 Mar 2024 19:43:51 +0300 Subject: [PATCH 157/236] Update app_tr.arb --- lib/l10n/app_tr.arb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/l10n/app_tr.arb b/lib/l10n/app_tr.arb index 42c0f33..423dfa3 100644 --- a/lib/l10n/app_tr.arb +++ b/lib/l10n/app_tr.arb @@ -779,5 +779,17 @@ "enablePlainDnsDescription": "Düz DNS varsayılan olarak etkindir. Tüm aygıtları şifrelenmiş DNS kullanmaya zorlamak için bunu devre dışı bırakabilirsiniz. Bunu yapmak için en az bir şifrelenmiş DNS protokolünü etkinleştirmeniz gerekir.", "date": "Tarih", "loadingChangelog": "Değişiklikler yükleniyor...", - "invalidIpOrUrl": "Geçersiz IP adresi veya URL" + "invalidIpOrUrl": "Geçersiz IP adresi veya URL", + "addPersistentClient": "Kalıcı istemci olarak ekle", + "blockThisClientOnly": "Yalnızca bu istemci için engelle", + "unblockThisClientOnly": "Yalnızca bu istemci için engeli kaldır", + "domainBlockedThisClient": "Bu istemci için {domain} engellendi", + "domainUnblockedThisClient": "Bu istemci için {domain} engeli kaldırıldı", + "disallowThisClient": "Bu istemciye izin verme", + "allowThisClient": "Bu istemciye izin ver", + "clientAllowedSuccessfully": "İstemciye başarıyla izin verildi", + "clientDisallowedSuccessfully": "İstemci başarıyla reddedildi", + "changesNotSaved": "Değişiklikler kaydedilemedi", + "allowingClient": "İstemciye izin veriliyor...", + "disallowingClient": "İstemci reddediliyor..." } \ No newline at end of file From 18ee68d6840c1eebc73bd336c0f73bfd6fb24747 Mon Sep 17 00:00:00 2001 From: Zutzo <126886178+zutzo@users.noreply.github.com> Date: Tue, 16 Apr 2024 13:06:09 +0000 Subject: [PATCH 158/236] Update app_zh.arb --- lib/l10n/app_zh.arb | 177 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 153 insertions(+), 24 deletions(-) diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 8d246eb..7599fc5 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -23,7 +23,7 @@ "invalidUsernamePassword": "用户名或密码错误", "tooManyAttempts": "尝试次数过多,请稍后再试", "cantReachServer": "无法连接服务器,请检查连接信息是否正确", - "sslError": "SSL 错误。转到 设置 > 高级设置 并启用 不检查 SSL 证书", + "sslError": "SSL 错误 转到 设置 > 高级设置 并启用 不检查 SSL 证书", "unknownError": "未知错误", "connectionNotCreated": "连接无法创建", "connecting": "正在连接...", @@ -158,7 +158,7 @@ "notSelected": "未选择", "resetFilters": "重置过滤器", "noLogsDisplay": "无日志可显示", - "noLogsThatOld": "选择的时间段可能没有日志。尝试选择近期时间。", + "noLogsThatOld": "选择的时间段可能没有日志 请尝试选择近期时间 ", "apply": "应用", "selectAll": "全选", "unselectAll": "取消全选", @@ -235,7 +235,7 @@ "urlNotValid": "URL 无效", "urlAbsolutePath": "URL 或绝对路径", "addingList": "正在添加订阅规则...", - "listAdded": "订阅规则添加成功 。已添加项目:", + "listAdded": "订阅规则添加成功 已添加项目:", "listAlreadyAdded": "订阅规则已被添加", "listUrlInvalid": "订阅规则 URL 无效", "listNotAdded": "无法添加订阅规则", @@ -282,7 +282,7 @@ "clientsNotLoaded": "无法加载客户端", "noAllowedClients": "没有已允许的客户端", "allowedClientsDescription": "如果此列表中有条目,AdGuard Home 将仅接受来自这些客户端的请求", - "blockedClientsDescription": "如果此列表中有条目,AdGuard Home 将拒绝来自这些客户端的请求。如果已允许客户端中有条目,则会忽略此字段", + "blockedClientsDescription": "如果此列表中有条目,AdGuard Home 将拒绝来自这些客户端的请求 如果已允许客户端中有条目,则会忽略此字段", "disallowedDomainsDescription": "AdGuard Home 会丢弃与这些域名匹配的 DNS 查询,这些查询甚至不会出现在查询日志中", "addClientFieldDescription": "CIDR、IP 地址或客户端 ID", "clientIdentifier": "客户端标识符", @@ -358,7 +358,7 @@ "seconds": "{time} 秒", "leaseTimeNotValid": "租期无效", "restoreConfiguration": "重置配置", - "restoreConfigurationMessage": "您确定要继续吗?这将重置所有配置。此操作无法撤消", + "restoreConfigurationMessage": "您确定要继续吗?这将重置所有配置 此操作无法撤消", "changeInterface": "更改接口", "savingSettings": "正在保存设置...", "settingsSaved": "设置保存成功", @@ -372,7 +372,7 @@ "staticLeaseDeleted": "DHCP 静态租用删除成功", "staticLeaseNotDeleted": "无法删除 DHCP 静态租用", "deleteStaticLease": "删除静态租用", - "deleteStaticLeaseDescription": "DHCP 静态租用将被删除。此操作无法撤消", + "deleteStaticLeaseDescription": "DHCP 静态租用将被删除 此操作无法撤消", "addStaticLease": "添加静态租用", "macAddress": "MAC 地址", "macAddressNotValid": "MAC 地址无效", @@ -384,7 +384,7 @@ "staticLeaseExists": "DHCP 静态租用已存在", "serverNotConfigured": "未配置服务器", "restoreLeases": "重置租用", - "restoreLeasesMessage": "您确定要继续吗?这将重置所有现有租用。此操作无法撤消", + "restoreLeasesMessage": "您确定要继续吗?这将重置所有现有租用 此操作无法撤消", "restoringLeases": "正在重置租用...", "leasesRestored": "租用重置成功", "leasesNotRestored": "无法重置租用", @@ -427,24 +427,24 @@ "dnsSettingsDescription": "配置与 DNS 服务器的连接", "upstreamDns": "上游 DNS 服务器", "bootstrapDns": "引导 DNS 服务器", - "noUpstreamDns": "未添加上游 DNS 服务器。", + "noUpstreamDns": "未添加上游 DNS 服务器 ", "dnsMode": "DNS 模式", "noDnsMode": "未选择 DNS 模式", "loadBalancing": "负载均衡", "parallelRequests": "并行请求", "fastestIpAddress": "最快的 IP 地址", - "loadBalancingDescription": "每次查询一个上游服务器。AdGuard Home 使用其加权随机算法选择服务器,以便更频繁地使用最快的服务器", + "loadBalancingDescription": "每次查询一个上游服务器 AdGuard Home 使用其加权随机算法选择服务器,以便更频繁地使用最快的服务器", "parallelRequestsDescription": "使用并行查询同时加速解析,同时查询所有上游服务器", - "fastestIpAddressDescription": "查询所有 DNS 服务器并返回所有响应中最快的 IP 地址。这会减慢 DNS 查询,因为 AdGuard Home 必须等待所有 DNS 服务器的响应,但可以改善整体连接性", - "noBootstrapDns": "未添加引导 DNS 服务器。", - "bootstrapDnsServersInfo": "引导 DNS 服务器用于解析您指定的上游 DoH/DoT 解析器的 IP 地址。", + "fastestIpAddressDescription": "查询所有 DNS 服务器并返回所有响应中最快的 IP 地址 这会减慢 DNS 查询,因为 AdGuard Home 必须等待所有 DNS 服务器的响应,但可以改善整体连接性", + "noBootstrapDns": "未添加引导 DNS 服务器 ", + "bootstrapDnsServersInfo": "引导 DNS 服务器用于解析您指定的上游 DoH/DoT 解析器的 IP 地址 ", "privateReverseDnsServers": "私有反向 DNS 服务器", - "privateReverseDnsServersDescription": "AdGuard Home 用于本地 PTR 查询的 DNS 服务器。这些服务器用于解析私有 IP 范围内的地址的 PTR 请求,例如 \"192.168.12.34\"。如果未设置,AdGuard Home 将使用操作系统的默认 DNS 解析器地址,但不包括 AdGuard Home 本身的地址。", + "privateReverseDnsServersDescription": "AdGuard Home 用于本地 PTR 查询的 DNS 服务器 这些服务器用于解析私有 IP 范围内的地址的 PTR 请求,例如 \"192.168.12.34\" 如果未设置,AdGuard Home 将使用操作系统的默认 DNS 解析器地址,但不包括 AdGuard Home 本身的地址 ", "reverseDnsDefault": "默认情况下,AdGuard Home 使用以下默认反向 DNS 解析器", "addItem": "添加项目", "noServerAddressesAdded": "未添加服务器地址", "usePrivateReverseDnsResolvers": "使用私有反向 DNS 解析器", - "usePrivateReverseDnsResolversDescription": "使用这些上游服务器执行本地提供的地址的反向 DNS 查询。如果禁用,AdGuard Home 会对所有此类 PTR 请求(除了来自 DHCP、/etc/hosts 等已知客户端)响应 NXDOMAIN", + "usePrivateReverseDnsResolversDescription": "使用这些上游服务器执行本地提供的地址的反向 DNS 查询 如果禁用,AdGuard Home 会对所有此类 PTR 请求(除了来自 DHCP、/etc/hosts 等已知客户端)响应 NXDOMAIN", "enableReverseResolving": "启用客户端 IP 地址的反向解析", "enableReverseResolvingDescription": "通过向相应的解析器发送 PTR 查询,将客户端 IP 地址进行反向解析为主机名(对于本地客户端使用私有 DNS 服务器,对于具有公共 IP 地址的客户端使用上游服务器)", "dnsServerSettings": "AdGuard Home DNS 服务器设置", @@ -492,7 +492,7 @@ "dnsCacheConfigDescription": "配置服务器如何管理 DNS 缓存", "comment": "注释", "address": "地址", - "commentsDescription": "注释始终以 # 开头。您无需添加它,系统将自动添加", + "commentsDescription": "注释始终以 # 开头 您无需添加它,系统将自动添加", "encryptionSettings": "加密设置", "encryptionSettingsDescription": "加密(HTTPS/QUIC/TLS)支持", "loadingEncryptionSettings": "正在加载加密设置...", @@ -502,13 +502,13 @@ "enableEncryptionDescription": "如果启用加密,AdGuard Home 管理界面将通过 HTTPS 运行,并且 DNS 服务器将监听 DNS-over-HTTPS 和 DNS-over-TLS 请求", "serverConfiguration": "服务器配置", "domainName": "域名", - "domainNameDescription": "如果设置,AdGuard Home 将检测 ClientID、响应 DDR 查询并执行其他连接验证。如果未设置,这些功能将被禁用。必须与证书中的 DNS 名称之一匹配", + "domainNameDescription": "如果设置,AdGuard Home 将检测 ClientID、响应 DDR 查询并执行其他连接验证 如果未设置,这些功能将被禁用 必须与证书中的 DNS 名称之一匹配", "redirectHttps": "自动重定向到 HTTPS", "httpsPort": "HTTPS 端口", "tlsPort": "DNS-over-TLS 端口", "dnsOverQuicPort": "DNS-over-QUIC 端口", "certificates": "证书", - "certificatesDescription": "为了使用加密,您需要为您的域提供有效的 SSL 证书链。您可以在 letsencrypt.org 上获得免费证书,也可以从受信任的证书颁发机构购买", + "certificatesDescription": "为了使用加密,您需要为您的域提供有效的 SSL 证书链 您可以在 letsencrypt.org 上获得免费证书,也可以从受信任的证书颁发机构购买", "certificateFilePath": "设置证书文件路径", "pasteCertificateContent": "粘贴证书内容", "certificatePath": "证书路径", @@ -526,13 +526,13 @@ "encryptionConfigSaved": "加密配置已成功保存", "encryptionConfigNotSaved": "无法保存加密配置", "configError": "配置错误", - "enterOnlyCertificate": "只输入证书。不要输入 ---BEGIN--- 和 ---END--- 行。", - "enterOnlyPrivateKey": "只输入密钥。不要输入 ---BEGIN--- 和 ---END--- 行。", + "enterOnlyCertificate": "只输入证书 不要输入 ---BEGIN--- 和 ---END--- 行 ", + "enterOnlyPrivateKey": "只输入密钥 不要输入 ---BEGIN--- 和 ---END--- 行 ", "noItemsSearch": "没有匹配的项目", "clearSearch": "清除搜索", "exitSearch": "退出搜索", "searchClients": "搜索客户端", - "noClientsSearch": "没有匹配的客户端。", + "noClientsSearch": "没有匹配的客户端 ", "customization": "定制", "customizationDescription": "自定义此应用程序", "color": "颜色", @@ -598,7 +598,7 @@ "checkUpdates": "检查更新", "requestingUpdate": "正在请求更新...", "autoupdateUnavailable": "自动更新不可用", - "autoupdateUnavailableDescription": "此服务器不支持自动更新服务。这可能是因为服务器正在 Docker 容器中运行。您需要手动更新服务器", + "autoupdateUnavailableDescription": "此服务器不支持自动更新服务 这可能是因为服务器正在 Docker 容器中运行 您需要手动更新服务器", "minute": "{time} 分钟", "minutes": "{time} 分钟", "hour": "{time} 小时", @@ -606,7 +606,7 @@ "remainingTime": "剩余时间", "safeSearchSettings": "安全搜索设置", "loadingSafeSearchSettings": "正在加载安全搜索设置...", - "safeSearchSettingsNotLoaded": "加载安全搜索设置时出错。", + "safeSearchSettingsNotLoaded": "加载安全搜索设置时出错 ", "loadingLogsSettings": "正在加载日志设置...", "selectOptionLeftColumn": "在左侧栏中选择一个选项", "selectClientLeftColumn": "在左侧栏中选择一个客户端", @@ -619,7 +619,7 @@ "copyListUrl": "复制订阅规则 URL", "listUrlCopied": "订阅规则 URL 已复制到剪贴板", "unsupportedVersion": "不支持的版本", - "unsupprtedVersionMessage": "您的服务器版本 {version} 不在支持范围,配合使用可能会存在问题\n\nAdGuard Home Manager 只适配了 AdGuard Home 服务器的稳定版本。alpha 和 beta 版本也许能用,但不保证兼容性,同时使用时可能会存在问题", + "unsupprtedVersionMessage": "您的服务器版本 {version} 不在支持范围,配合使用可能会存在问题\n\nAdGuard Home Manager 只适配了 AdGuard Home 服务器的稳定版本 alpha 和 beta 版本也许能用,但不保证兼容性,同时使用时可能会存在问题", "iUnderstand": "我了解", "appUpdates": "应用程序更新", "usingLatestVersion": "您正在使用最新版本", @@ -658,7 +658,136 @@ "hideServerAddressDescription": "在主页上隐藏服务器地址", "topItemsOrder": "顶部项目顺序", "topItemsOrderDescription": "排列主页顶部项目列表", - "topItemsReorderInfo": "按住并滑动一个项目以重新排序。", + "topItemsReorderInfo": "按住并滑动一个项目以重新排序 ", "discardChanges": "放弃更改", "discardChangesDescription": "您确定要放弃更改吗?" + "others": "其他", + "showChart": "显示图表", + "hideChart": "隐藏图表", + "showTopItemsChart": "显示顶部项目图表", + "showTopItemsChartDescription": "默认情况下在移动视图中显示顶部项目部分的环形图 ", + "openMenu": "打开菜单", + "closeMenu": "关闭菜单", + "openListUrl": "打开列表URL", + "selectionMode": "选择模式", + "enableDisableSelected": "启用或禁用选定项目", + "deleteSelected": "删除选定项目", + "deleteSelectedLists": "删除选定列表", + "allSelectedListsDeletedSuccessfully": "所有选定列表已成功删除 ", + "deletionResult": "删除结果", + "deletingLists": "正在删除列表...", + "failedElements": "失败元素", + "processingLists": "正在处理列表...", + "enableDisableResult": "启用或禁用结果", + "selectedListsEnabledDisabledSuccessfully": "所有选定列表已成功启用或禁用" + "sslWarning": "如果您正在使用带有自签名证书的 HTTPS 连接,请确保在设置 > 高级设置中启用 '不检查 SSL 证书' ", + "unsupportedServerVersion": "不支持的服务器版本", + "unsupportedServerVersionMessage": "您的 AdGuard Home 服务器版本过旧,不受 AdGuard Home Manager 支持 您需要将 AdGuard Home 服务器升级到更新的版本才能使用此应用程序 ", + "yourVersion": "您的版本:{version}", + "minimumRequiredVersion": "最低要求版本:{version}", + "topUpstreams": "主要上游", + "averageUpstreamResponseTime": "平均上游响应时间", + "dhcpNotAvailable": "DHCP 服务器不可用 ", + "osServerInstalledIncompatible": "服务器安装的操作系统与此功能不兼容 ", + "resetSettings": "重置设置", + "resetEncryptionSettingsDescription": "您确定要将加密设置重置为默认值吗?", + "resettingConfig": "正在重置配置...", + "configurationResetSuccessfully": "配置已成功重置", + "configurationResetError": "配置无法重置", + "testUpstreamDnsServers": "测试上游 DNS 服务器", + "errorTestUpstreamDns": "测试上游 DNS 服务器时出错 ", + "useCustomIpEdns": "使用 EDNS 的自定义 IP", + "useCustomIpEdnsDescription": "允许使用 EDNS 的自定义 IP", + "sortingOptions": "排序选项", + "fromHighestToLowest": "从高到低", + "fromLowestToHighest": "从低到高", + "queryLogsAndStatistics": "查询日志和统计", + "ignoreClientQueryLog": "在查询日志中忽略此客户端", + "ignoreClientStatistics": "在统计中忽略此客户端", + "savingChanges": "正在保存更改...", + "fallbackDnsServers": "备用 DNS 服务器", + "fallbackDnsServersDescription": "配置备用 DNS 服务器", + "fallbackDnsServersInfo": "当上游 DNS 服务器无响应时使用的备用 DNS 服务器列表 语法与上面的主上游字段相同 ", + "noFallbackDnsAdded": "未添加备用 DNS 服务器 ", + "blockedResponseTtl": "被阻止的响应 TTL", + "blockedResponseTtlDescription": "指定客户端应缓存过滤响应的秒数", + "invalidValue": "无效值", + "noDataChart": "没有数据显示此图表 ", + "noData": "无数据", + "unblockClient": "解除客户端封锁", + "blockingClient": "正在封锁客户端...", + "unblockingClient": "正在解除客户端封锁...", + "upstreamDnsCacheConfiguration": "DNS 上游缓存配置", + "enableDnsCachingClient": "为此客户端启用 DNS 缓存", + "dnsCacheSize": "DNS 缓存大小", + "nameInvalid": "名称是必需的", + "oneIdentifierRequired": "至少需要一个标识符", + "dnsCacheNumber": "DNS 缓存大小必须是一个数字", + "errors": "错误", + "redirectHttpsWarning": "如果您在 AdGuard Home 服务器上启用了 '自动重定向到 HTTPS',则必须选择 HTTPS 连接并使用服务器的 HTTPS 端口 ", + "logsSettingsDescription": "配置查询日志", + "ignoredDomains": "忽略的域名", + "noIgnoredDomainsAdded": "未添加忽略的域名", + "pauseServiceBlocking": "暂停服务阻止", + "newSchedule": "新计划", + "editSchedule": "编辑计划", + "timezone": "时区", + "monday": "星期一", + "tuesday": "星期二", + "wednesday": "星期三", + "thursday": "星期四", + "friday": "星期五", + "saturday": "星期六", + "sunday": "星期日", + "from": "从", + "to": "到", + "selectStartTime": "选择开始时间", + "selectEndTime": "选择结束时间", + "startTimeBeforeEndTime": "开始时间必须在结束时间之前 ", + "noBlockingScheduleThisDevice": "此设备没有阻止计划 ", + "selectTimezone": "选择时区", + "selectClientsFiltersInfo": "选择您想要显示的客户端 如果没有选择任何客户端,将显示所有客户端 ", + "noDataThisSection": "本节没有数据 ", + "statisticsSettings": "统计设置", + "statisticsSettingsDescription": "配置统计数据收集", + "loadingStatisticsSettings": "正在加载统计设置...", + "statisticsSettingsLoadError": "加载统计设置时发生错误 ", + "statisticsConfigUpdated": "统计设置成功更新", + "statisticsConfigNotUpdated": "统计设置无法更新", + "customTimeInHours": "自定义时间(以小时为单位)", + "invalidTime": "无效时间", + "removeDomain": "移除域名", + "addDomain": "添加域名", + "notLess1Hour": "时间不能少于 1 小时", + "rateLimit": "速率限制", + "subnetPrefixLengthIpv4": "IPv4 的子网前缀长度", + "subnetPrefixLengthIpv6": "IPv6 的子网前缀长度", + "rateLimitAllowlist": "速率限制白名单", + "rateLimitAllowlistDescription": "从速率限制中排除的 IP 地址", + "dnsOptions": "DNS 选项", + "editor": "编辑器", + "editCustomRules": "编辑自定义规则", + "savingCustomRules": "正在保存自定义规则...", + "customRulesUpdatedSuccessfully": "自定义规则成功更新", + "customRulesNotUpdated": "自定义规则无法更新", + "reorder": "重新排序", + "showHide": "显示/隐藏", + "noElementsReorderMessage": "在显示/隐藏标签页上启用一些元素,然后在这里重新排序 ", + "enablePlainDns": "启用普通 DNS", + "enablePlainDnsDescription": "默认启用普通 DNS 您可以禁用它,强制所有设备使用加密 DNS 要做到这一点,您必须至少启用一个加密 DNS 协议 ", + "date": "日期", + "loadingChangelog": "正在加载更新日志...", + "invalidIpOrUrl": "无效的 IP 地址或 URL", + "addPersistentClient": "添加为持久客户端", + "blockThisClientOnly": "仅为此客户端封锁", + "unblockThisClientOnly": "仅为此客户端解封", + "domainBlockedThisClient": "{domain} 已为此客户端封锁", + "domainUnblockedThisClient": "{domain} 已为此客户端解封", + "disallowThisClient": "禁止此客户端", + "allowThisClient": "允许此客户端", + "clientAllowedSuccessfully": "客户端成功允许", + "clientDisallowedSuccessfully": "客户端成功禁止", + "changesNotSaved": "更改无法保存", + "allowingClient": "正在允许客户端...", + "disallowingClient": "正在禁止客户端..." } From f838302720877db3bc4209804b1748e4c5aae9bd Mon Sep 17 00:00:00 2001 From: Zutzo <126886178+zutzo@users.noreply.github.com> Date: Tue, 16 Apr 2024 13:07:15 +0000 Subject: [PATCH 159/236] Update app_zh_CN.arb --- lib/l10n/app_zh_CN.arb | 177 +++++++++++++++++++++++++++++++++++------ 1 file changed, 153 insertions(+), 24 deletions(-) diff --git a/lib/l10n/app_zh_CN.arb b/lib/l10n/app_zh_CN.arb index 8d246eb..7599fc5 100644 --- a/lib/l10n/app_zh_CN.arb +++ b/lib/l10n/app_zh_CN.arb @@ -23,7 +23,7 @@ "invalidUsernamePassword": "用户名或密码错误", "tooManyAttempts": "尝试次数过多,请稍后再试", "cantReachServer": "无法连接服务器,请检查连接信息是否正确", - "sslError": "SSL 错误。转到 设置 > 高级设置 并启用 不检查 SSL 证书", + "sslError": "SSL 错误 转到 设置 > 高级设置 并启用 不检查 SSL 证书", "unknownError": "未知错误", "connectionNotCreated": "连接无法创建", "connecting": "正在连接...", @@ -158,7 +158,7 @@ "notSelected": "未选择", "resetFilters": "重置过滤器", "noLogsDisplay": "无日志可显示", - "noLogsThatOld": "选择的时间段可能没有日志。尝试选择近期时间。", + "noLogsThatOld": "选择的时间段可能没有日志 请尝试选择近期时间 ", "apply": "应用", "selectAll": "全选", "unselectAll": "取消全选", @@ -235,7 +235,7 @@ "urlNotValid": "URL 无效", "urlAbsolutePath": "URL 或绝对路径", "addingList": "正在添加订阅规则...", - "listAdded": "订阅规则添加成功 。已添加项目:", + "listAdded": "订阅规则添加成功 已添加项目:", "listAlreadyAdded": "订阅规则已被添加", "listUrlInvalid": "订阅规则 URL 无效", "listNotAdded": "无法添加订阅规则", @@ -282,7 +282,7 @@ "clientsNotLoaded": "无法加载客户端", "noAllowedClients": "没有已允许的客户端", "allowedClientsDescription": "如果此列表中有条目,AdGuard Home 将仅接受来自这些客户端的请求", - "blockedClientsDescription": "如果此列表中有条目,AdGuard Home 将拒绝来自这些客户端的请求。如果已允许客户端中有条目,则会忽略此字段", + "blockedClientsDescription": "如果此列表中有条目,AdGuard Home 将拒绝来自这些客户端的请求 如果已允许客户端中有条目,则会忽略此字段", "disallowedDomainsDescription": "AdGuard Home 会丢弃与这些域名匹配的 DNS 查询,这些查询甚至不会出现在查询日志中", "addClientFieldDescription": "CIDR、IP 地址或客户端 ID", "clientIdentifier": "客户端标识符", @@ -358,7 +358,7 @@ "seconds": "{time} 秒", "leaseTimeNotValid": "租期无效", "restoreConfiguration": "重置配置", - "restoreConfigurationMessage": "您确定要继续吗?这将重置所有配置。此操作无法撤消", + "restoreConfigurationMessage": "您确定要继续吗?这将重置所有配置 此操作无法撤消", "changeInterface": "更改接口", "savingSettings": "正在保存设置...", "settingsSaved": "设置保存成功", @@ -372,7 +372,7 @@ "staticLeaseDeleted": "DHCP 静态租用删除成功", "staticLeaseNotDeleted": "无法删除 DHCP 静态租用", "deleteStaticLease": "删除静态租用", - "deleteStaticLeaseDescription": "DHCP 静态租用将被删除。此操作无法撤消", + "deleteStaticLeaseDescription": "DHCP 静态租用将被删除 此操作无法撤消", "addStaticLease": "添加静态租用", "macAddress": "MAC 地址", "macAddressNotValid": "MAC 地址无效", @@ -384,7 +384,7 @@ "staticLeaseExists": "DHCP 静态租用已存在", "serverNotConfigured": "未配置服务器", "restoreLeases": "重置租用", - "restoreLeasesMessage": "您确定要继续吗?这将重置所有现有租用。此操作无法撤消", + "restoreLeasesMessage": "您确定要继续吗?这将重置所有现有租用 此操作无法撤消", "restoringLeases": "正在重置租用...", "leasesRestored": "租用重置成功", "leasesNotRestored": "无法重置租用", @@ -427,24 +427,24 @@ "dnsSettingsDescription": "配置与 DNS 服务器的连接", "upstreamDns": "上游 DNS 服务器", "bootstrapDns": "引导 DNS 服务器", - "noUpstreamDns": "未添加上游 DNS 服务器。", + "noUpstreamDns": "未添加上游 DNS 服务器 ", "dnsMode": "DNS 模式", "noDnsMode": "未选择 DNS 模式", "loadBalancing": "负载均衡", "parallelRequests": "并行请求", "fastestIpAddress": "最快的 IP 地址", - "loadBalancingDescription": "每次查询一个上游服务器。AdGuard Home 使用其加权随机算法选择服务器,以便更频繁地使用最快的服务器", + "loadBalancingDescription": "每次查询一个上游服务器 AdGuard Home 使用其加权随机算法选择服务器,以便更频繁地使用最快的服务器", "parallelRequestsDescription": "使用并行查询同时加速解析,同时查询所有上游服务器", - "fastestIpAddressDescription": "查询所有 DNS 服务器并返回所有响应中最快的 IP 地址。这会减慢 DNS 查询,因为 AdGuard Home 必须等待所有 DNS 服务器的响应,但可以改善整体连接性", - "noBootstrapDns": "未添加引导 DNS 服务器。", - "bootstrapDnsServersInfo": "引导 DNS 服务器用于解析您指定的上游 DoH/DoT 解析器的 IP 地址。", + "fastestIpAddressDescription": "查询所有 DNS 服务器并返回所有响应中最快的 IP 地址 这会减慢 DNS 查询,因为 AdGuard Home 必须等待所有 DNS 服务器的响应,但可以改善整体连接性", + "noBootstrapDns": "未添加引导 DNS 服务器 ", + "bootstrapDnsServersInfo": "引导 DNS 服务器用于解析您指定的上游 DoH/DoT 解析器的 IP 地址 ", "privateReverseDnsServers": "私有反向 DNS 服务器", - "privateReverseDnsServersDescription": "AdGuard Home 用于本地 PTR 查询的 DNS 服务器。这些服务器用于解析私有 IP 范围内的地址的 PTR 请求,例如 \"192.168.12.34\"。如果未设置,AdGuard Home 将使用操作系统的默认 DNS 解析器地址,但不包括 AdGuard Home 本身的地址。", + "privateReverseDnsServersDescription": "AdGuard Home 用于本地 PTR 查询的 DNS 服务器 这些服务器用于解析私有 IP 范围内的地址的 PTR 请求,例如 \"192.168.12.34\" 如果未设置,AdGuard Home 将使用操作系统的默认 DNS 解析器地址,但不包括 AdGuard Home 本身的地址 ", "reverseDnsDefault": "默认情况下,AdGuard Home 使用以下默认反向 DNS 解析器", "addItem": "添加项目", "noServerAddressesAdded": "未添加服务器地址", "usePrivateReverseDnsResolvers": "使用私有反向 DNS 解析器", - "usePrivateReverseDnsResolversDescription": "使用这些上游服务器执行本地提供的地址的反向 DNS 查询。如果禁用,AdGuard Home 会对所有此类 PTR 请求(除了来自 DHCP、/etc/hosts 等已知客户端)响应 NXDOMAIN", + "usePrivateReverseDnsResolversDescription": "使用这些上游服务器执行本地提供的地址的反向 DNS 查询 如果禁用,AdGuard Home 会对所有此类 PTR 请求(除了来自 DHCP、/etc/hosts 等已知客户端)响应 NXDOMAIN", "enableReverseResolving": "启用客户端 IP 地址的反向解析", "enableReverseResolvingDescription": "通过向相应的解析器发送 PTR 查询,将客户端 IP 地址进行反向解析为主机名(对于本地客户端使用私有 DNS 服务器,对于具有公共 IP 地址的客户端使用上游服务器)", "dnsServerSettings": "AdGuard Home DNS 服务器设置", @@ -492,7 +492,7 @@ "dnsCacheConfigDescription": "配置服务器如何管理 DNS 缓存", "comment": "注释", "address": "地址", - "commentsDescription": "注释始终以 # 开头。您无需添加它,系统将自动添加", + "commentsDescription": "注释始终以 # 开头 您无需添加它,系统将自动添加", "encryptionSettings": "加密设置", "encryptionSettingsDescription": "加密(HTTPS/QUIC/TLS)支持", "loadingEncryptionSettings": "正在加载加密设置...", @@ -502,13 +502,13 @@ "enableEncryptionDescription": "如果启用加密,AdGuard Home 管理界面将通过 HTTPS 运行,并且 DNS 服务器将监听 DNS-over-HTTPS 和 DNS-over-TLS 请求", "serverConfiguration": "服务器配置", "domainName": "域名", - "domainNameDescription": "如果设置,AdGuard Home 将检测 ClientID、响应 DDR 查询并执行其他连接验证。如果未设置,这些功能将被禁用。必须与证书中的 DNS 名称之一匹配", + "domainNameDescription": "如果设置,AdGuard Home 将检测 ClientID、响应 DDR 查询并执行其他连接验证 如果未设置,这些功能将被禁用 必须与证书中的 DNS 名称之一匹配", "redirectHttps": "自动重定向到 HTTPS", "httpsPort": "HTTPS 端口", "tlsPort": "DNS-over-TLS 端口", "dnsOverQuicPort": "DNS-over-QUIC 端口", "certificates": "证书", - "certificatesDescription": "为了使用加密,您需要为您的域提供有效的 SSL 证书链。您可以在 letsencrypt.org 上获得免费证书,也可以从受信任的证书颁发机构购买", + "certificatesDescription": "为了使用加密,您需要为您的域提供有效的 SSL 证书链 您可以在 letsencrypt.org 上获得免费证书,也可以从受信任的证书颁发机构购买", "certificateFilePath": "设置证书文件路径", "pasteCertificateContent": "粘贴证书内容", "certificatePath": "证书路径", @@ -526,13 +526,13 @@ "encryptionConfigSaved": "加密配置已成功保存", "encryptionConfigNotSaved": "无法保存加密配置", "configError": "配置错误", - "enterOnlyCertificate": "只输入证书。不要输入 ---BEGIN--- 和 ---END--- 行。", - "enterOnlyPrivateKey": "只输入密钥。不要输入 ---BEGIN--- 和 ---END--- 行。", + "enterOnlyCertificate": "只输入证书 不要输入 ---BEGIN--- 和 ---END--- 行 ", + "enterOnlyPrivateKey": "只输入密钥 不要输入 ---BEGIN--- 和 ---END--- 行 ", "noItemsSearch": "没有匹配的项目", "clearSearch": "清除搜索", "exitSearch": "退出搜索", "searchClients": "搜索客户端", - "noClientsSearch": "没有匹配的客户端。", + "noClientsSearch": "没有匹配的客户端 ", "customization": "定制", "customizationDescription": "自定义此应用程序", "color": "颜色", @@ -598,7 +598,7 @@ "checkUpdates": "检查更新", "requestingUpdate": "正在请求更新...", "autoupdateUnavailable": "自动更新不可用", - "autoupdateUnavailableDescription": "此服务器不支持自动更新服务。这可能是因为服务器正在 Docker 容器中运行。您需要手动更新服务器", + "autoupdateUnavailableDescription": "此服务器不支持自动更新服务 这可能是因为服务器正在 Docker 容器中运行 您需要手动更新服务器", "minute": "{time} 分钟", "minutes": "{time} 分钟", "hour": "{time} 小时", @@ -606,7 +606,7 @@ "remainingTime": "剩余时间", "safeSearchSettings": "安全搜索设置", "loadingSafeSearchSettings": "正在加载安全搜索设置...", - "safeSearchSettingsNotLoaded": "加载安全搜索设置时出错。", + "safeSearchSettingsNotLoaded": "加载安全搜索设置时出错 ", "loadingLogsSettings": "正在加载日志设置...", "selectOptionLeftColumn": "在左侧栏中选择一个选项", "selectClientLeftColumn": "在左侧栏中选择一个客户端", @@ -619,7 +619,7 @@ "copyListUrl": "复制订阅规则 URL", "listUrlCopied": "订阅规则 URL 已复制到剪贴板", "unsupportedVersion": "不支持的版本", - "unsupprtedVersionMessage": "您的服务器版本 {version} 不在支持范围,配合使用可能会存在问题\n\nAdGuard Home Manager 只适配了 AdGuard Home 服务器的稳定版本。alpha 和 beta 版本也许能用,但不保证兼容性,同时使用时可能会存在问题", + "unsupprtedVersionMessage": "您的服务器版本 {version} 不在支持范围,配合使用可能会存在问题\n\nAdGuard Home Manager 只适配了 AdGuard Home 服务器的稳定版本 alpha 和 beta 版本也许能用,但不保证兼容性,同时使用时可能会存在问题", "iUnderstand": "我了解", "appUpdates": "应用程序更新", "usingLatestVersion": "您正在使用最新版本", @@ -658,7 +658,136 @@ "hideServerAddressDescription": "在主页上隐藏服务器地址", "topItemsOrder": "顶部项目顺序", "topItemsOrderDescription": "排列主页顶部项目列表", - "topItemsReorderInfo": "按住并滑动一个项目以重新排序。", + "topItemsReorderInfo": "按住并滑动一个项目以重新排序 ", "discardChanges": "放弃更改", "discardChangesDescription": "您确定要放弃更改吗?" + "others": "其他", + "showChart": "显示图表", + "hideChart": "隐藏图表", + "showTopItemsChart": "显示顶部项目图表", + "showTopItemsChartDescription": "默认情况下在移动视图中显示顶部项目部分的环形图 ", + "openMenu": "打开菜单", + "closeMenu": "关闭菜单", + "openListUrl": "打开列表URL", + "selectionMode": "选择模式", + "enableDisableSelected": "启用或禁用选定项目", + "deleteSelected": "删除选定项目", + "deleteSelectedLists": "删除选定列表", + "allSelectedListsDeletedSuccessfully": "所有选定列表已成功删除 ", + "deletionResult": "删除结果", + "deletingLists": "正在删除列表...", + "failedElements": "失败元素", + "processingLists": "正在处理列表...", + "enableDisableResult": "启用或禁用结果", + "selectedListsEnabledDisabledSuccessfully": "所有选定列表已成功启用或禁用" + "sslWarning": "如果您正在使用带有自签名证书的 HTTPS 连接,请确保在设置 > 高级设置中启用 '不检查 SSL 证书' ", + "unsupportedServerVersion": "不支持的服务器版本", + "unsupportedServerVersionMessage": "您的 AdGuard Home 服务器版本过旧,不受 AdGuard Home Manager 支持 您需要将 AdGuard Home 服务器升级到更新的版本才能使用此应用程序 ", + "yourVersion": "您的版本:{version}", + "minimumRequiredVersion": "最低要求版本:{version}", + "topUpstreams": "主要上游", + "averageUpstreamResponseTime": "平均上游响应时间", + "dhcpNotAvailable": "DHCP 服务器不可用 ", + "osServerInstalledIncompatible": "服务器安装的操作系统与此功能不兼容 ", + "resetSettings": "重置设置", + "resetEncryptionSettingsDescription": "您确定要将加密设置重置为默认值吗?", + "resettingConfig": "正在重置配置...", + "configurationResetSuccessfully": "配置已成功重置", + "configurationResetError": "配置无法重置", + "testUpstreamDnsServers": "测试上游 DNS 服务器", + "errorTestUpstreamDns": "测试上游 DNS 服务器时出错 ", + "useCustomIpEdns": "使用 EDNS 的自定义 IP", + "useCustomIpEdnsDescription": "允许使用 EDNS 的自定义 IP", + "sortingOptions": "排序选项", + "fromHighestToLowest": "从高到低", + "fromLowestToHighest": "从低到高", + "queryLogsAndStatistics": "查询日志和统计", + "ignoreClientQueryLog": "在查询日志中忽略此客户端", + "ignoreClientStatistics": "在统计中忽略此客户端", + "savingChanges": "正在保存更改...", + "fallbackDnsServers": "备用 DNS 服务器", + "fallbackDnsServersDescription": "配置备用 DNS 服务器", + "fallbackDnsServersInfo": "当上游 DNS 服务器无响应时使用的备用 DNS 服务器列表 语法与上面的主上游字段相同 ", + "noFallbackDnsAdded": "未添加备用 DNS 服务器 ", + "blockedResponseTtl": "被阻止的响应 TTL", + "blockedResponseTtlDescription": "指定客户端应缓存过滤响应的秒数", + "invalidValue": "无效值", + "noDataChart": "没有数据显示此图表 ", + "noData": "无数据", + "unblockClient": "解除客户端封锁", + "blockingClient": "正在封锁客户端...", + "unblockingClient": "正在解除客户端封锁...", + "upstreamDnsCacheConfiguration": "DNS 上游缓存配置", + "enableDnsCachingClient": "为此客户端启用 DNS 缓存", + "dnsCacheSize": "DNS 缓存大小", + "nameInvalid": "名称是必需的", + "oneIdentifierRequired": "至少需要一个标识符", + "dnsCacheNumber": "DNS 缓存大小必须是一个数字", + "errors": "错误", + "redirectHttpsWarning": "如果您在 AdGuard Home 服务器上启用了 '自动重定向到 HTTPS',则必须选择 HTTPS 连接并使用服务器的 HTTPS 端口 ", + "logsSettingsDescription": "配置查询日志", + "ignoredDomains": "忽略的域名", + "noIgnoredDomainsAdded": "未添加忽略的域名", + "pauseServiceBlocking": "暂停服务阻止", + "newSchedule": "新计划", + "editSchedule": "编辑计划", + "timezone": "时区", + "monday": "星期一", + "tuesday": "星期二", + "wednesday": "星期三", + "thursday": "星期四", + "friday": "星期五", + "saturday": "星期六", + "sunday": "星期日", + "from": "从", + "to": "到", + "selectStartTime": "选择开始时间", + "selectEndTime": "选择结束时间", + "startTimeBeforeEndTime": "开始时间必须在结束时间之前 ", + "noBlockingScheduleThisDevice": "此设备没有阻止计划 ", + "selectTimezone": "选择时区", + "selectClientsFiltersInfo": "选择您想要显示的客户端 如果没有选择任何客户端,将显示所有客户端 ", + "noDataThisSection": "本节没有数据 ", + "statisticsSettings": "统计设置", + "statisticsSettingsDescription": "配置统计数据收集", + "loadingStatisticsSettings": "正在加载统计设置...", + "statisticsSettingsLoadError": "加载统计设置时发生错误 ", + "statisticsConfigUpdated": "统计设置成功更新", + "statisticsConfigNotUpdated": "统计设置无法更新", + "customTimeInHours": "自定义时间(以小时为单位)", + "invalidTime": "无效时间", + "removeDomain": "移除域名", + "addDomain": "添加域名", + "notLess1Hour": "时间不能少于 1 小时", + "rateLimit": "速率限制", + "subnetPrefixLengthIpv4": "IPv4 的子网前缀长度", + "subnetPrefixLengthIpv6": "IPv6 的子网前缀长度", + "rateLimitAllowlist": "速率限制白名单", + "rateLimitAllowlistDescription": "从速率限制中排除的 IP 地址", + "dnsOptions": "DNS 选项", + "editor": "编辑器", + "editCustomRules": "编辑自定义规则", + "savingCustomRules": "正在保存自定义规则...", + "customRulesUpdatedSuccessfully": "自定义规则成功更新", + "customRulesNotUpdated": "自定义规则无法更新", + "reorder": "重新排序", + "showHide": "显示/隐藏", + "noElementsReorderMessage": "在显示/隐藏标签页上启用一些元素,然后在这里重新排序 ", + "enablePlainDns": "启用普通 DNS", + "enablePlainDnsDescription": "默认启用普通 DNS 您可以禁用它,强制所有设备使用加密 DNS 要做到这一点,您必须至少启用一个加密 DNS 协议 ", + "date": "日期", + "loadingChangelog": "正在加载更新日志...", + "invalidIpOrUrl": "无效的 IP 地址或 URL", + "addPersistentClient": "添加为持久客户端", + "blockThisClientOnly": "仅为此客户端封锁", + "unblockThisClientOnly": "仅为此客户端解封", + "domainBlockedThisClient": "{domain} 已为此客户端封锁", + "domainUnblockedThisClient": "{domain} 已为此客户端解封", + "disallowThisClient": "禁止此客户端", + "allowThisClient": "允许此客户端", + "clientAllowedSuccessfully": "客户端成功允许", + "clientDisallowedSuccessfully": "客户端成功禁止", + "changesNotSaved": "更改无法保存", + "allowingClient": "正在允许客户端...", + "disallowingClient": "正在禁止客户端..." } From e4298cc0620002cceba047664b58a88f48b53ae9 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 24 Apr 2024 17:44:31 +0200 Subject: [PATCH 160/236] Fixed chinese translation --- lib/l10n/app_zh.arb | 4 ++-- lib/l10n/app_zh_CN.arb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 7599fc5..a789942 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -660,7 +660,7 @@ "topItemsOrderDescription": "排列主页顶部项目列表", "topItemsReorderInfo": "按住并滑动一个项目以重新排序 ", "discardChanges": "放弃更改", - "discardChangesDescription": "您确定要放弃更改吗?" + "discardChangesDescription": "您确定要放弃更改吗?", "others": "其他", "showChart": "显示图表", "hideChart": "隐藏图表", @@ -679,7 +679,7 @@ "failedElements": "失败元素", "processingLists": "正在处理列表...", "enableDisableResult": "启用或禁用结果", - "selectedListsEnabledDisabledSuccessfully": "所有选定列表已成功启用或禁用" + "selectedListsEnabledDisabledSuccessfully": "所有选定列表已成功启用或禁用", "sslWarning": "如果您正在使用带有自签名证书的 HTTPS 连接,请确保在设置 > 高级设置中启用 '不检查 SSL 证书' ", "unsupportedServerVersion": "不支持的服务器版本", "unsupportedServerVersionMessage": "您的 AdGuard Home 服务器版本过旧,不受 AdGuard Home Manager 支持 您需要将 AdGuard Home 服务器升级到更新的版本才能使用此应用程序 ", diff --git a/lib/l10n/app_zh_CN.arb b/lib/l10n/app_zh_CN.arb index 7599fc5..a789942 100644 --- a/lib/l10n/app_zh_CN.arb +++ b/lib/l10n/app_zh_CN.arb @@ -660,7 +660,7 @@ "topItemsOrderDescription": "排列主页顶部项目列表", "topItemsReorderInfo": "按住并滑动一个项目以重新排序 ", "discardChanges": "放弃更改", - "discardChangesDescription": "您确定要放弃更改吗?" + "discardChangesDescription": "您确定要放弃更改吗?", "others": "其他", "showChart": "显示图表", "hideChart": "隐藏图表", @@ -679,7 +679,7 @@ "failedElements": "失败元素", "processingLists": "正在处理列表...", "enableDisableResult": "启用或禁用结果", - "selectedListsEnabledDisabledSuccessfully": "所有选定列表已成功启用或禁用" + "selectedListsEnabledDisabledSuccessfully": "所有选定列表已成功启用或禁用", "sslWarning": "如果您正在使用带有自签名证书的 HTTPS 连接,请确保在设置 > 高级设置中启用 '不检查 SSL 证书' ", "unsupportedServerVersion": "不支持的服务器版本", "unsupportedServerVersionMessage": "您的 AdGuard Home 服务器版本过旧,不受 AdGuard Home Manager 支持 您需要将 AdGuard Home 服务器升级到更新的版本才能使用此应用程序 ", From 3c397d208f6f41279fe60b2316f1998b61347fd1 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 24 Apr 2024 17:52:20 +0200 Subject: [PATCH 161/236] Small bug fixes --- lib/screens/logs/log_tile.dart | 19 +++++++++++-------- .../settings/dns/test_upstream_dns_modal.dart | 4 ++++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index 9dfea35..2a6a720 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -1,5 +1,3 @@ -// ignore_for_file: use_build_context_synchronously - import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -133,6 +131,8 @@ class LogTile extends StatelessWidget { processModal.close(); + if (!context.mounted) return; + if (result == true) { showSnacbkar( appConfigProvider: appConfigProvider, @@ -224,12 +224,15 @@ class LogTile extends StatelessWidget { void openAddClient() { Future.delayed( const Duration(milliseconds: 0), - () => openClientFormModal( - context: context, - width: MediaQuery.of(context).size.width, - onConfirm: confirmAddClient, - initialData: ClientInitialData(name: "Client ${log.client}", ip: log.client) - ) + () { + if (!context.mounted) return; + openClientFormModal( + context: context, + width: MediaQuery.of(context).size.width, + onConfirm: confirmAddClient, + initialData: ClientInitialData(name: "Client ${log.client}", ip: log.client) + ); + } ); } diff --git a/lib/screens/settings/dns/test_upstream_dns_modal.dart b/lib/screens/settings/dns/test_upstream_dns_modal.dart index 8410334..7bff710 100644 --- a/lib/screens/settings/dns/test_upstream_dns_modal.dart +++ b/lib/screens/settings/dns/test_upstream_dns_modal.dart @@ -29,6 +29,10 @@ class _TestUpstreamDnsModalState extends State { void checkDns() async { final dnsProvider = Provider.of(context, listen: false); + if (dnsProvider.dnsInfo == null) { + setState(() => loadStatus = LoadStatus.error); + return; + } final result = await Provider.of(context, listen: false).apiClient2!.testUpstreamDns( body: { "bootstrap_dns": dnsProvider.dnsInfo!.bootstrapDns, From 23264705789bbc5021c7bf83db248ec73ed3554d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 24 Apr 2024 17:59:25 +0200 Subject: [PATCH 162/236] Updated libraries --- lib/widgets/combined_line_chart.dart | 2 +- lib/widgets/line_chart.dart | 2 +- pubspec.lock | 120 +++++++++++++-------------- pubspec.yaml | 10 +-- 4 files changed, 67 insertions(+), 67 deletions(-) diff --git a/lib/widgets/combined_line_chart.dart b/lib/widgets/combined_line_chart.dart index d22b2cc..6f3a87f 100644 --- a/lib/widgets/combined_line_chart.dart +++ b/lib/widgets/combined_line_chart.dart @@ -86,7 +86,7 @@ class CustomCombinedLineChart extends StatelessWidget { enabled: true, touchTooltipData: LineTouchTooltipData( fitInsideHorizontally: true, - tooltipBgColor: selectedTheme == ThemeMode.light + getTooltipColor: (touchedSpot) => selectedTheme == ThemeMode.light ? const Color.fromRGBO(220, 220, 220, 0.9) : const Color.fromRGBO(35, 35, 35, 0.9), getTooltipItems: (items) { diff --git a/lib/widgets/line_chart.dart b/lib/widgets/line_chart.dart index 5a5e181..5ac8bdd 100644 --- a/lib/widgets/line_chart.dart +++ b/lib/widgets/line_chart.dart @@ -91,7 +91,7 @@ class CustomLineChart extends StatelessWidget { enabled: true, touchTooltipData: LineTouchTooltipData( fitInsideHorizontally: true, - tooltipBgColor: selectedTheme == ThemeMode.light + getTooltipColor: (touchedSpot) => selectedTheme == ThemeMode.light ? const Color.fromRGBO(220, 220, 220, 0.9) : const Color.fromRGBO(35, 35, 35, 0.9), getTooltipItems: (items) => [ diff --git a/pubspec.lock b/pubspec.lock index 7b50c80..4c0330d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: args - sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.0" async: dependency: "direct main" description: @@ -133,18 +133,18 @@ packages: dependency: "direct main" description: name: cupertino_icons - sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.0.8" device_info_plus: dependency: "direct main" description: name: device_info_plus - sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" + sha256: eead12d1a1ed83d8283ab4c2f3fca23ac4082f29f25f29dff0f758f57d06ec91 url: "https://pub.dev" source: hosted - version: "9.1.2" + version: "10.1.0" device_info_plus_platform_interface: dependency: transitive description: @@ -213,10 +213,10 @@ packages: dependency: "direct main" description: name: fl_chart - sha256: "00b74ae680df6b1135bdbea00a7d1fc072a9180b7c3f3702e4b19a9943f5ed7d" + sha256: "2b7c1f5d867da9a054661641c8f499c55c47c39acccb97b3bc673f5fa9a39e74" url: "https://pub.dev" source: hosted - version: "0.66.2" + version: "0.67.0" flutter: dependency: "direct main" description: flutter @@ -298,10 +298,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 + sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" flutter_localizations: dependency: "direct main" description: flutter @@ -311,18 +311,18 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: cb44f7831b23a6bdd0f501718b0d2e8045cbc625a15f668af37ddb80314821db + sha256: "9921f9deda326f8a885e202b1e35237eadfc1345239a0f6f0f1ff287e047547f" url: "https://pub.dev" source: hosted - version: "0.6.21" + version: "0.7.1" flutter_native_splash: dependency: "direct dev" description: name: flutter_native_splash - sha256: "558f10070f03ee71f850a78f7136ab239a67636a294a44a06b6b7345178edb1e" + sha256: edf39bcf4d74aca1eb2c1e43c3e445fd9f494013df7f0da752fefe72020eedc0 url: "https://pub.dev" source: hosted - version: "2.3.10" + version: "2.4.0" flutter_reorderable_list: dependency: "direct main" description: @@ -361,10 +361,10 @@ packages: dependency: "direct main" description: name: http - sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba + sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" http_parser: dependency: transitive description: @@ -393,10 +393,10 @@ packages: dependency: transitive description: name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf url: "https://pub.dev" source: hosted - version: "0.6.7" + version: "0.7.1" json_annotation: dependency: transitive description: @@ -489,18 +489,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "88bc797f44a94814f2213db1c9bd5badebafdfb8290ca9f78d4b9ee2a3db4d79" + sha256: "2c582551839386fa7ddbc7770658be7c0f87f388a4bff72066478f597c34d17f" url: "https://pub.dev" source: hosted - version: "5.0.1" + version: "7.0.0" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6" + sha256: f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.0" path: dependency: transitive description: @@ -585,10 +585,10 @@ packages: dependency: transitive description: name: pointycastle - sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" + sha256: "79fbafed02cfdbe85ef3fd06c7f4bc2cbcba0177e61b765264853d4253b21744" url: "https://pub.dev" source: hosted - version: "3.7.4" + version: "3.9.0" provider: dependency: "direct main" description: @@ -617,34 +617,34 @@ packages: dependency: transitive description: name: sentry - sha256: a524a87d096799b775530176c8c082afe7aa1f10cc31ba078fecdd74e9afc923 + sha256: "961630a4dba41cebd692612421fd3805a991ebd8ef4a8d84a6c179e6b89eaf22" url: "https://pub.dev" source: hosted - version: "7.17.0" + version: "8.0.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: e0f8367f8f7c74dba9f7521f71700bce6c6ee065cf342f065d4fce411b84fc7b + sha256: "705da7adfcd1fb23fc8720b6e222f5e03d53f1d020cd635586c319ee323366b4" url: "https://pub.dev" source: hosted - version: "7.17.0" + version: "8.0.0" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" + sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" + sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" shared_preferences_foundation: dependency: transitive description: @@ -673,10 +673,10 @@ packages: dependency: transitive description: name: shared_preferences_web - sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" + sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.3.0" shared_preferences_windows: dependency: transitive description: @@ -710,42 +710,42 @@ packages: dependency: "direct main" description: name: sqflite - sha256: a9016f495c927cb90557c909ff26a6d92d9bd54fc42ba92e19d4e79d61e798c6 + sha256: "5ce2e1a15e822c3b4bfb5400455775e421da7098eed8adc8f26298ada7c9308c" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.3" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5" + sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" url: "https://pub.dev" source: hosted - version: "2.5.3" + version: "2.5.4" sqflite_common_ffi: dependency: "direct main" description: name: sqflite_common_ffi - sha256: "754927d82de369a6b9e760fb60640aa81da650f35ffd468d5a992814d6022908" + sha256: "4d6137c29e930d6e4a8ff373989dd9de7bac12e3bc87bce950f6e844e8ad3bb5" url: "https://pub.dev" source: hosted - version: "2.3.2+1" + version: "2.3.3" sqlite3: dependency: transitive description: name: sqlite3 - sha256: "072128763f1547e3e9b4735ce846bfd226d68019ccda54db4cd427b12dfdedc9" + sha256: "1abbeb84bf2b1a10e5e1138c913123c8aa9d83cd64e5f9a0dd847b3c83063202" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.2" sqlite3_flutter_libs: dependency: "direct main" description: name: sqlite3_flutter_libs - sha256: d6c31c8511c441d1f12f20b607343df1afe4eddf24a1cf85021677c8eea26060 + sha256: fb2a106a2ea6042fe57de2c47074cc31539a941819c91e105b864744605da3f5 url: "https://pub.dev" source: hosted - version: "0.5.20" + version: "0.5.21" stack_trace: dependency: transitive description: @@ -806,10 +806,10 @@ packages: dependency: "direct main" description: name: timezone - sha256: "1cfd8ddc2d1cfd836bc93e67b9be88c3adaeca6f40a00ca999104c30693cdca0" + sha256: a6ccda4a69a442098b602c44e61a1e2b4bf6f5516e875bbf0f427d5df14745d5 url: "https://pub.dev" source: hosted - version: "0.9.2" + version: "0.9.3" typed_data: dependency: transitive description: @@ -830,18 +830,18 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "0ecc004c62fd3ed36a2ffcbe0dd9700aee63bd7532d0b642a488b1ec310f492e" + sha256: "6ce1e04375be4eed30548f10a315826fd933c1e493206eab82eed01f438c8d2e" url: "https://pub.dev" source: hosted - version: "6.2.5" + version: "6.2.6" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745 + sha256: "360a6ed2027f18b73c8d98e159dda67a61b7f2e0f6ec26e86c3ada33b0621775" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.3.1" url_launcher_ios: dependency: transitive description: @@ -878,10 +878,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b + sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.1" url_launcher_windows: dependency: transitive description: @@ -894,10 +894,10 @@ packages: dependency: "direct main" description: name: uuid - sha256: cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8 + sha256: "814e9e88f21a176ae1359149021870e87f7cddaf633ab678a5d2b0bff7fd1ba8" url: "https://pub.dev" source: hosted - version: "4.3.3" + version: "4.4.0" vector_graphics: dependency: transitive description: @@ -942,26 +942,26 @@ packages: dependency: transitive description: name: web - sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05" + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" url: "https://pub.dev" source: hosted - version: "0.4.2" + version: "0.5.1" win32: dependency: transitive description: name: win32 - sha256: "8cb58b45c47dcb42ab3651533626161d6b67a2921917d8d429791f76972b3480" + sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a" url: "https://pub.dev" source: hosted - version: "5.3.0" + version: "5.4.0" win32_registry: dependency: transitive description: name: win32_registry - sha256: "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a" + sha256: "10589e0d7f4e053f2c61023a31c9ce01146656a70b7b7f0828c0b46d7da2a9bb" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.3" window_manager: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index daf62b3..4caf999 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -41,18 +41,18 @@ dependencies: intl: any provider: ^6.1.1 sqflite: ^2.3.0 - package_info_plus: ^5.0.1 + package_info_plus: ^7.0.0 flutter_displaymode: ^0.6.0 dynamic_color: ^1.6.8 animations: ^2.0.10 - device_info_plus: ^9.1.1 + device_info_plus: ^10.1.0 uuid: ^4.2.1 expandable: ^5.0.1 - fl_chart: ^0.66.0 + fl_chart: ^0.67.0 flutter_svg: ^2.0.9 percent_indicator: ^4.2.3 store_checker: ^1.4.0 - flutter_markdown: ^0.6.18+2 + flutter_markdown: ^0.7.1 markdown: ^7.1.1 html: ^0.15.4 flutter_html: ^3.0.0-beta.2 @@ -60,7 +60,7 @@ dependencies: sqflite_common_ffi: ^2.3.1 contextmenu: ^3.0.0 async: ^2.11.0 - sentry_flutter: ^7.13.2 + sentry_flutter: ^8.0.0 flutter_dotenv: ^5.1.0 flutter_reorderable_list: ^1.3.1 pie_chart: ^5.4.0 From 9295321cdaa651e8f9fb3d219476e6c2d1194583 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 24 Apr 2024 18:01:32 +0200 Subject: [PATCH 163/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 4caf999..c90cb23 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.17.0+136 +version: 2.17.1+137 environment: sdk: '>=2.18.1 <3.0.0' From 212e57149f2ed1e73ff6d7d395ef81cd10f53888 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 24 Apr 2024 18:12:53 +0200 Subject: [PATCH 164/236] Updated macos pods --- macos/Podfile.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 5357874..ead0b21 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -10,7 +10,7 @@ PODS: - FlutterMacOS - Sentry/HybridSDK (8.21.0): - SentryPrivate (= 8.21.0) - - sentry_flutter (0.0.1): + - sentry_flutter (8.0.0): - Flutter - FlutterMacOS - Sentry/HybridSDK (= 8.21.0) @@ -21,18 +21,18 @@ PODS: - sqflite (0.0.3): - Flutter - FlutterMacOS - - sqlite3 (3.45.1): - - sqlite3/common (= 3.45.1) - - sqlite3/common (3.45.1) - - sqlite3/fts5 (3.45.1): + - "sqlite3 (3.45.3+1)": + - "sqlite3/common (= 3.45.3+1)" + - "sqlite3/common (3.45.3+1)" + - "sqlite3/fts5 (3.45.3+1)": - sqlite3/common - - sqlite3/perf-threadsafe (3.45.1): + - "sqlite3/perf-threadsafe (3.45.3+1)": - sqlite3/common - - sqlite3/rtree (3.45.1): + - "sqlite3/rtree (3.45.3+1)": - sqlite3/common - sqlite3_flutter_libs (0.0.1): - FlutterMacOS - - sqlite3 (~> 3.45.1) + - "sqlite3 (~> 3.45.3+1)" - sqlite3/fts5 - sqlite3/perf-threadsafe - sqlite3/rtree @@ -85,18 +85,18 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos SPEC CHECKSUMS: - device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f + device_info_plus: ce1b7762849d3ec103d0e0517299f2db7ad60720 dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - package_info_plus: 02d7a575e80f194102bef286361c6c326e4c29ce + package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38 Sentry: ebc12276bd17613a114ab359074096b6b3725203 - sentry_flutter: dff1df05dc39c83d04f9330b36360fc374574c5e + sentry_flutter: 4ce59806771a82cc2d2a4657b320c9801530db62 SentryPrivate: d651efb234cf385ec9a1cdd3eff94b5e78a0e0fe shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec - sqlite3: 73b7fc691fdc43277614250e04d183740cb15078 - sqlite3_flutter_libs: 06a05802529659a272beac4ee1350bfec294f386 + sqlite3: 02d1f07eaaa01f80a1c16b4b31dfcbb3345ee01a + sqlite3_flutter_libs: 8d204ef443cf0d5c1c8b058044eab53f3943a9c5 url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8 From 5f5d79147f4b0081954a81e3d2b67cc594c9bc53 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sat, 8 Jun 2024 21:45:49 +0200 Subject: [PATCH 165/236] Updated readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 93788ac..96520c4 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Check the privacy policy [here](https://github.com/JGeek00/adguard-home-manager/ This is an unofficial application. The AdGuard Home team and the development of the AdGuard Home software is not related in any way with this application. ## Recommended configuration and lists -On [this repository](https://github.com/JuanRodenas/Pihole_list) you can find a recommended configuration for AdGuard Home and some lists. Thanks to [JuanRodenas](https://github.com/JuanRodenas). +On [this repository](https://github.com/juanico10/Pihole_list) you can find a recommended configuration for AdGuard Home and some lists. Thanks to [juanico10](https://github.com/juanico10). ## Generate production build
      From c5d2892ec2c5f504ea0b137859275277b0f82f93 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 17 Jun 2024 13:28:00 +0200 Subject: [PATCH 166/236] Updated libraries --- pubspec.lock | 144 +++++++++++++++++++++------------------------------ pubspec.yaml | 6 +-- 2 files changed, 63 insertions(+), 87 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 4c0330d..b196e63 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: archive - sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d" + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d url: "https://pub.dev" source: hosted - version: "3.4.10" + version: "3.6.1" args: dependency: transitive description: @@ -105,14 +105,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.0" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" crypto: dependency: transitive description: @@ -213,10 +205,10 @@ packages: dependency: "direct main" description: name: fl_chart - sha256: "2b7c1f5d867da9a054661641c8f499c55c47c39acccb97b3bc673f5fa9a39e74" + sha256: d0f0d49112f2f4b192481c16d05b6418bd7820e021e265a3c22db98acf7ed7fb url: "https://pub.dev" source: hosted - version: "0.67.0" + version: "0.68.0" flutter: dependency: "direct main" description: flutter @@ -298,10 +290,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" + sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "4.0.0" flutter_localizations: dependency: "direct main" description: flutter @@ -311,10 +303,10 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: "9921f9deda326f8a885e202b1e35237eadfc1345239a0f6f0f1ff287e047547f" + sha256: ff76a9300a06ad1f2b394e54c0b4beaaf6a95f95c98540c918b870221499bb10 url: "https://pub.dev" source: hosted - version: "0.7.1" + version: "0.7.2" flutter_native_splash: dependency: "direct dev" description: @@ -377,66 +369,58 @@ packages: dependency: transitive description: name: image - sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e" + sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" url: "https://pub.dev" source: hosted - version: "4.1.7" + version: "4.2.0" intl: dependency: "direct main" description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" - js: - dependency: transitive - description: - name: js - sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf - url: "https://pub.dev" - source: hosted - version: "0.7.1" + version: "0.19.0" json_annotation: dependency: transitive description: name: json_annotation - sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" url: "https://pub.dev" source: hosted - version: "4.8.1" + version: "4.9.0" leak_tracker: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.4" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.3" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" lints: dependency: transitive description: name: lints - sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "4.0.0" list_counter: dependency: transitive description: @@ -473,10 +457,10 @@ packages: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.12.0" nested: dependency: transitive description: @@ -489,10 +473,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "2c582551839386fa7ddbc7770658be7c0f87f388a4bff72066478f597c34d17f" + sha256: b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0 url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "8.0.0" package_info_plus_platform_interface: dependency: transitive description: @@ -569,10 +553,10 @@ packages: dependency: transitive description: name: platform - sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" plugin_platform_interface: dependency: transitive description: @@ -581,14 +565,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: "79fbafed02cfdbe85ef3fd06c7f4bc2cbcba0177e61b765264853d4253b21744" - url: "https://pub.dev" - source: hosted - version: "3.9.0" provider: dependency: "direct main" description: @@ -617,18 +593,18 @@ packages: dependency: transitive description: name: sentry - sha256: "961630a4dba41cebd692612421fd3805a991ebd8ef4a8d84a6c179e6b89eaf22" + sha256: fd1fbfe860c05f5c52820ec4dbf2b6473789e83ead26cfc18bca4fe80bf3f008 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "8.2.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: "705da7adfcd1fb23fc8720b6e222f5e03d53f1d020cd635586c319ee323366b4" + sha256: c64f0aec5332bec87083b61514d1b6b29e435b9045d03ce1575861192b9a5680 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "8.2.0" shared_preferences: dependency: "direct main" description: @@ -641,18 +617,18 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" + sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" + sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7" url: "https://pub.dev" source: hosted - version: "2.3.5" + version: "2.4.0" shared_preferences_linux: dependency: transitive description: @@ -710,10 +686,10 @@ packages: dependency: "direct main" description: name: sqflite - sha256: "5ce2e1a15e822c3b4bfb5400455775e421da7098eed8adc8f26298ada7c9308c" + sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.3.3+1" sqflite_common: dependency: transitive description: @@ -734,18 +710,18 @@ packages: dependency: transitive description: name: sqlite3 - sha256: "1abbeb84bf2b1a10e5e1138c913123c8aa9d83cd64e5f9a0dd847b3c83063202" + sha256: b384f598b813b347c5a7e5ffad82cbaff1bec3d1561af267041e66f6f0899295 url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" sqlite3_flutter_libs: dependency: "direct main" description: name: sqlite3_flutter_libs - sha256: fb2a106a2ea6042fe57de2c47074cc31539a941819c91e105b864744605da3f5 + sha256: "62bbb4073edbcdf53f40c80775f33eea01d301b7b81417e5b3fb7395416258c1" url: "https://pub.dev" source: hosted - version: "0.5.21" + version: "0.5.24" stack_trace: dependency: transitive description: @@ -798,10 +774,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.0" timezone: dependency: "direct main" description: @@ -830,26 +806,26 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "6ce1e04375be4eed30548f10a315826fd933c1e493206eab82eed01f438c8d2e" + sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" url: "https://pub.dev" source: hosted - version: "6.2.6" + version: "6.3.0" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "360a6ed2027f18b73c8d98e159dda67a61b7f2e0f6ec26e86c3ada33b0621775" + sha256: ceb2625f0c24ade6ef6778d1de0b2e44f2db71fded235eb52295247feba8c5cf url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.3" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "9149d493b075ed740901f3ee844a38a00b33116c7c5c10d7fb27df8987fb51d5" + sha256: "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89" url: "https://pub.dev" source: hosted - version: "6.2.5" + version: "6.3.0" url_launcher_linux: dependency: transitive description: @@ -862,10 +838,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 + sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.2.0" url_launcher_platform_interface: dependency: transitive description: @@ -934,10 +910,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.1" web: dependency: transitive description: @@ -950,10 +926,10 @@ packages: dependency: transitive description: name: win32 - sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a" + sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4 url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "5.5.1" win32_registry: dependency: transitive description: @@ -966,10 +942,10 @@ packages: dependency: "direct main" description: name: window_manager - sha256: b3c895bdf936c77b83c5254bec2e6b3f066710c1f89c38b20b8acc382b525494 + sha256: "8699323b30da4cdbe2aa2e7c9de567a6abd8a97d9a5c850a3c86dcd0b34bbfbf" url: "https://pub.dev" source: hosted - version: "0.3.8" + version: "0.3.9" xdg_directories: dependency: transitive description: @@ -995,5 +971,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.3.0 <4.0.0" - flutter: ">=3.19.0" + dart: ">=3.4.0 <4.0.0" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index c90cb23..f2b0e49 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -41,14 +41,14 @@ dependencies: intl: any provider: ^6.1.1 sqflite: ^2.3.0 - package_info_plus: ^7.0.0 + package_info_plus: ^8.0.0 flutter_displaymode: ^0.6.0 dynamic_color: ^1.6.8 animations: ^2.0.10 device_info_plus: ^10.1.0 uuid: ^4.2.1 expandable: ^5.0.1 - fl_chart: ^0.67.0 + fl_chart: ^0.68.0 flutter_svg: ^2.0.9 percent_indicator: ^4.2.3 store_checker: ^1.4.0 @@ -81,7 +81,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^3.0.1 + flutter_lints: ^4.0.0 flutter_launcher_icons: ^0.13.1 flutter_native_splash: ^2.3.8 From 1dd23906c3203036a325f269695c175d18debf30 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 17 Jun 2024 13:28:12 +0200 Subject: [PATCH 167/236] Added options to copy to clipboard on log details --- lib/l10n/app_en.arb | 5 +- lib/l10n/app_es.arb | 5 +- .../logs/details/log_details_screen.dart | 15 ++- lib/screens/logs/details/log_list_tile.dart | 95 ++++++++++--------- 4 files changed, 68 insertions(+), 52 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 93b08af..3348119 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -791,5 +791,8 @@ "clientDisallowedSuccessfully": "Client disallowed successfully", "changesNotSaved": "Changes could not be saved", "allowingClient": "Allowing client...", - "disallowingClient": "Disallowing client..." + "disallowingClient": "Disallowing client...", + "clientIpCopied": "Client IP copied to the clipboard", + "clientNameCopied": "Client name copied to the clipboard", + "dnsServerAddressCopied": "DNS server address copied to the clipboard" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index e777f48..811ee22 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -791,5 +791,8 @@ "clientDisallowedSuccessfully": "Cliente no permitido correctamente", "changesNotSaved": "Los cambios no han podido ser guardados", "allowingClient": "Permitiendo cliente...", - "disallowingClient": "No permitiendo cliente..." + "disallowingClient": "No permitiendo cliente...", + "clientIpCopied": "Dirección IP del cliente copiada al portapapeles", + "clientNameCopied": "Nombre del cliente copiado al portapapeles", + "dnsServerAddressCopied": "Dirección del servidor DNS copiada al portapapeles" } \ No newline at end of file diff --git a/lib/screens/logs/details/log_details_screen.dart b/lib/screens/logs/details/log_details_screen.dart index 0c35f35..5d78823 100644 --- a/lib/screens/logs/details/log_details_screen.dart +++ b/lib/screens/logs/details/log_details_screen.dart @@ -1,5 +1,6 @@ // ignore_for_file: use_build_context_synchronously +import 'package:adguard_home_manager/functions/copy_clipboard.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -275,10 +276,11 @@ class _Content extends StatelessWidget { subtitle: convertTimestampLocalTimezone(log.time, 'HH:mm:ss') ), SectionLabel(label: AppLocalizations.of(context)!.request), - LogListTile( + if (log.question.name != null) LogListTile( icon: Icons.domain_rounded, title: AppLocalizations.of(context)!.domain, - subtitle: log.question.name + subtitle: log.question.name, + onTap: () => copyToClipboard(value: log.question.name!, successMessage: AppLocalizations.of(context)!.domainCopiedClipboard), ), LogListTile( icon: Icons.category_rounded, @@ -294,7 +296,8 @@ class _Content extends StatelessWidget { if (log.upstream != null && log.upstream != '') LogListTile( icon: Icons.dns_rounded, title: AppLocalizations.of(context)!.dnsServer, - subtitle: log.upstream + subtitle: log.upstream, + onTap: () => copyToClipboard(value: log.upstream!, successMessage: AppLocalizations.of(context)!.dnsServerAddressCopied) ), LogListTile( icon: Icons.timer_rounded, @@ -310,12 +313,14 @@ class _Content extends StatelessWidget { LogListTile( icon: Icons.smartphone_rounded, title: AppLocalizations.of(context)!.deviceIp, - subtitle: log.client + subtitle: log.client, + onTap: () => copyToClipboard(value: log.client, successMessage: AppLocalizations.of(context)!.clientIpCopied), ), if (log.clientInfo != null && log.clientInfo!.name != '') LogListTile( icon: Icons.abc_rounded, title: AppLocalizations.of(context)!.deviceName, - subtitle: log.clientInfo!.name + subtitle: log.clientInfo!.name, + onTap: () => copyToClipboard(value: log.clientInfo!.name, successMessage: AppLocalizations.of(context)!.clientNameCopied), ), if (log.rules.isNotEmpty) ...[ SectionLabel(label: AppLocalizations.of(context)!.rules), diff --git a/lib/screens/logs/details/log_list_tile.dart b/lib/screens/logs/details/log_list_tile.dart index c45f0f8..15edd6b 100644 --- a/lib/screens/logs/details/log_list_tile.dart +++ b/lib/screens/logs/details/log_list_tile.dart @@ -6,63 +6,68 @@ class LogListTile extends StatelessWidget { final String? subtitle; final Widget? subtitleWidget; final Widget? trailing; + final void Function()? onTap; const LogListTile({ - Key? key, + super.key, required this.icon, required this.title, this.subtitle, this.subtitleWidget, this.trailing, - }) : super(key: key); + this.onTap, + }); @override Widget build(BuildContext context) { - return Container( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Flexible( - child: Row( - children: [ - Icon( - icon, - size: 24, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - const SizedBox(width: 16), - Flexible( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - title, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w400, - color: Theme.of(context).colorScheme.onSurface - ), - ), - const SizedBox(height: 3), - subtitleWidget ?? Text( - subtitle!, - style: TextStyle( - fontSize: 14, - color: Theme.of(context).listTileTheme.textColor, - ), - ) - ], + return InkWell( + onTap: onTap, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + child: Row( + children: [ + Icon( + icon, + size: 24, + color: Theme.of(context).colorScheme.onSurfaceVariant, ), - ), - ], + const SizedBox(width: 16), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w400, + color: Theme.of(context).colorScheme.onSurface + ), + ), + const SizedBox(height: 3), + subtitleWidget ?? Text( + subtitle!, + style: TextStyle( + fontSize: 14, + color: Theme.of(context).listTileTheme.textColor, + ), + ) + ], + ), + ), + ], + ), ), - ), - if (trailing != null) ...[ - const SizedBox(width: 16), - trailing! - ] - ], + if (trailing != null) ...[ + const SizedBox(width: 16), + trailing! + ] + ], + ), ), ); } From 8801428167f5bc1c58f395399e1419ad2ed8038a Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 17 Jun 2024 13:55:54 +0200 Subject: [PATCH 168/236] Fixed missing language --- lib/screens/settings/server_info/server_info.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/screens/settings/server_info/server_info.dart b/lib/screens/settings/server_info/server_info.dart index 9757497..8f5c927 100644 --- a/lib/screens/settings/server_info/server_info.dart +++ b/lib/screens/settings/server_info/server_info.dart @@ -138,7 +138,7 @@ class _ServerInformationState extends State { title: AppLocalizations.of(context)!.serverVersion, subtitle: serverInfo.data!.version, ), - CustomListTile( + if (serverInfo.data!.language != "") CustomListTile( title: AppLocalizations.of(context)!.serverLanguage, subtitle: serverInfo.data!.language, ), From 4dd77a39d8409bfcec3fe4de5663dcd61c59284c Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 17 Jun 2024 13:56:02 +0200 Subject: [PATCH 169/236] Fixed wrong colors --- lib/config/theme.dart | 12 ++++++++++++ pubspec.yaml | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/config/theme.dart b/lib/config/theme.dart index 8a8aadf..fce953a 100644 --- a/lib/config/theme.dart +++ b/lib/config/theme.dart @@ -15,6 +15,15 @@ ThemeData lightTheme(ColorScheme? dynamicColorScheme) => ThemeData( textColor: dynamicColorScheme != null ? dynamicColorScheme.onSurfaceVariant : const Color.fromRGBO(117, 117, 117, 1), iconColor: dynamicColorScheme != null ? dynamicColorScheme.onSurfaceVariant : const Color.fromRGBO(117, 117, 117, 1), ), + cardTheme: CardTheme( + surfaceTintColor: dynamicColorScheme?.surfaceTint + ), + popupMenuTheme: PopupMenuThemeData( + surfaceTintColor: dynamicColorScheme?.surfaceTint + ), + navigationBarTheme: NavigationBarThemeData( + surfaceTintColor: dynamicColorScheme?.surfaceTint + ) ); ThemeData darkTheme(ColorScheme? dynamicColorScheme) => ThemeData( @@ -33,6 +42,9 @@ ThemeData darkTheme(ColorScheme? dynamicColorScheme) => ThemeData( textColor: dynamicColorScheme != null ? dynamicColorScheme.onSurfaceVariant : const Color.fromRGBO(187, 187, 187, 1), iconColor: dynamicColorScheme != null ? dynamicColorScheme.onSurfaceVariant : const Color.fromRGBO(187, 187, 187, 1), ), + cardTheme: CardTheme( + surfaceTintColor: dynamicColorScheme?.surfaceTint + ) ); ThemeData lightThemeOldVersions(MaterialColor primaryColor) => ThemeData( diff --git a/pubspec.yaml b/pubspec.yaml index f2b0e49..1b1c059 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,7 +43,7 @@ dependencies: sqflite: ^2.3.0 package_info_plus: ^8.0.0 flutter_displaymode: ^0.6.0 - dynamic_color: ^1.6.8 + dynamic_color: ^1.7.0 animations: ^2.0.10 device_info_plus: ^10.1.0 uuid: ^4.2.1 From ad6e75b6fbace41231884957c06c4a8e7947fb5d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 17 Jun 2024 13:56:59 +0200 Subject: [PATCH 170/236] Fixed on dark theme --- lib/config/theme.dart | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/config/theme.dart b/lib/config/theme.dart index fce953a..fc81165 100644 --- a/lib/config/theme.dart +++ b/lib/config/theme.dart @@ -44,6 +44,12 @@ ThemeData darkTheme(ColorScheme? dynamicColorScheme) => ThemeData( ), cardTheme: CardTheme( surfaceTintColor: dynamicColorScheme?.surfaceTint + ), + popupMenuTheme: PopupMenuThemeData( + surfaceTintColor: dynamicColorScheme?.surfaceTint + ), + navigationBarTheme: NavigationBarThemeData( + surfaceTintColor: dynamicColorScheme?.surfaceTint ) ); From d34d88172202cd6207c25f0110290541622e2bfa Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 17 Jun 2024 17:16:08 +0200 Subject: [PATCH 171/236] Added predictive navigation --- lib/config/theme.dart | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/config/theme.dart b/lib/config/theme.dart index fc81165..a9ffa71 100644 --- a/lib/config/theme.dart +++ b/lib/config/theme.dart @@ -23,6 +23,11 @@ ThemeData lightTheme(ColorScheme? dynamicColorScheme) => ThemeData( ), navigationBarTheme: NavigationBarThemeData( surfaceTintColor: dynamicColorScheme?.surfaceTint + ), + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: PredictiveBackPageTransitionsBuilder() + } ) ); @@ -50,6 +55,11 @@ ThemeData darkTheme(ColorScheme? dynamicColorScheme) => ThemeData( ), navigationBarTheme: NavigationBarThemeData( surfaceTintColor: dynamicColorScheme?.surfaceTint + ), + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: PredictiveBackPageTransitionsBuilder() + } ) ); @@ -69,6 +79,11 @@ ThemeData lightThemeOldVersions(MaterialColor primaryColor) => ThemeData( iconColor: Color.fromRGBO(117, 117, 117, 1), ), brightness: Brightness.light, + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: PredictiveBackPageTransitionsBuilder() + } + ) ); ThemeData darkThemeOldVersions(MaterialColor primaryColor) => ThemeData( @@ -90,4 +105,9 @@ ThemeData darkThemeOldVersions(MaterialColor primaryColor) => ThemeData( iconColor: Color.fromRGBO(187, 187, 187, 1), ), brightness: Brightness.dark, + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: PredictiveBackPageTransitionsBuilder() + } + ) ); \ No newline at end of file From b981f4a5cb810b7cd2fafd90d42454d8c955fb3e Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 17 Jun 2024 17:17:13 +0200 Subject: [PATCH 172/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 1b1c059..1a8cda0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.17.1+137 +version: 2.18.0-beta.1+138 environment: sdk: '>=2.18.1 <3.0.0' From 27b0c3a3a02a17426c956266a96a957587b458f2 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 18 Jun 2024 01:30:54 +0200 Subject: [PATCH 173/236] Updated macOS stuff --- macos/Podfile.lock | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index ead0b21..96c9ba0 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -8,31 +8,32 @@ PODS: - FlutterMacOS - screen_retriever (0.0.1): - FlutterMacOS - - Sentry/HybridSDK (8.21.0): - - SentryPrivate (= 8.21.0) - - sentry_flutter (8.0.0): + - Sentry/HybridSDK (8.25.2) + - sentry_flutter (8.2.0): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.21.0) - - SentryPrivate (8.21.0) + - Sentry/HybridSDK (= 8.25.2) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS - sqflite (0.0.3): - Flutter - FlutterMacOS - - "sqlite3 (3.45.3+1)": - - "sqlite3/common (= 3.45.3+1)" - - "sqlite3/common (3.45.3+1)" - - "sqlite3/fts5 (3.45.3+1)": + - "sqlite3 (3.46.0+1)": + - "sqlite3/common (= 3.46.0+1)" + - "sqlite3/common (3.46.0+1)" + - "sqlite3/dbstatvtab (3.46.0+1)": - sqlite3/common - - "sqlite3/perf-threadsafe (3.45.3+1)": + - "sqlite3/fts5 (3.46.0+1)": - sqlite3/common - - "sqlite3/rtree (3.45.3+1)": + - "sqlite3/perf-threadsafe (3.46.0+1)": + - sqlite3/common + - "sqlite3/rtree (3.46.0+1)": - sqlite3/common - sqlite3_flutter_libs (0.0.1): - FlutterMacOS - - "sqlite3 (~> 3.45.3+1)" + - "sqlite3 (~> 3.46.0+1)" + - sqlite3/dbstatvtab - sqlite3/fts5 - sqlite3/perf-threadsafe - sqlite3/rtree @@ -57,7 +58,6 @@ DEPENDENCIES: SPEC REPOS: trunk: - Sentry - - SentryPrivate - sqlite3 EXTERNAL SOURCES: @@ -90,14 +90,13 @@ SPEC CHECKSUMS: FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38 - Sentry: ebc12276bd17613a114ab359074096b6b3725203 - sentry_flutter: 4ce59806771a82cc2d2a4657b320c9801530db62 - SentryPrivate: d651efb234cf385ec9a1cdd3eff94b5e78a0e0fe - shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 + Sentry: 51b056d96914a741f63eca774d118678b1eb05a1 + sentry_flutter: e8397d13e297a5d4b6be8a752e33140b21c5cc97 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec - sqlite3: 02d1f07eaaa01f80a1c16b4b31dfcbb3345ee01a - sqlite3_flutter_libs: 8d204ef443cf0d5c1c8b058044eab53f3943a9c5 - url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 + sqlite3: 292c3e1bfe89f64e51ea7fc7dab9182a017c8630 + sqlite3_flutter_libs: 5ca46c1a04eddfbeeb5b16566164aa7ad1616e7b + url_launcher_macos: 5f437abeda8c85500ceb03f5c1938a8c5a705399 window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 From 9a747dd2fb5c49707637024bf4f250d652a27820 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 18 Jun 2024 01:31:21 +0200 Subject: [PATCH 174/236] Added added clients list to client filters on logs --- lib/screens/logs/filters/clients_modal.dart | 163 ++++++++++++-------- 1 file changed, 96 insertions(+), 67 deletions(-) diff --git a/lib/screens/logs/filters/clients_modal.dart b/lib/screens/logs/filters/clients_modal.dart index ca15219..5e5dbc6 100644 --- a/lib/screens/logs/filters/clients_modal.dart +++ b/lib/screens/logs/filters/clients_modal.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:segmented_button_slide/segmented_button_slide.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; @@ -14,10 +15,12 @@ import 'package:adguard_home_manager/providers/logs_provider.dart'; class _ClientLog { final String ip; final String? name; + final List? ids; const _ClientLog({ required this.ip, - required this.name + required this.name, + this.ids, }); } @@ -38,6 +41,7 @@ class ClientsModal extends StatefulWidget { class _ClientsModalState extends State { List<_ClientLog> _filteredClients = []; final _searchController = TextEditingController(); + int _selectedList = 0; @override void initState() { @@ -65,22 +69,46 @@ class _ClientsModalState extends State { final logsProvider = Provider.of(context); final statusProvider = Provider.of(context); - void onSearch(String value) { - final filtered = clientsProvider.clients!.autoClients.map((e) { - String? name; - try { - name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(e.ip)).name; - } catch (e) { - // ---- // - } - return _ClientLog( - ip: e.ip, - name: name - ); - }).where( - (c) => c.ip.contains(value.toLowerCase()) || (c.name != null && c.name!.toLowerCase().contains(value.toLowerCase())) - ).toList(); - setState(() => _filteredClients = filtered); + void onSearch({required String value, int? selectedList}) { + if ((selectedList ?? _selectedList) == 1) { + final filtered = clientsProvider.clients!.clients.map((e) { + String? name; + try { + name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(e.ids[0])).name; + } catch (e) { + // ---- // + } + return _ClientLog( + ip: e.ids[0], + name: name, + ids: e.ids + ); + }).where( + (c) => c.ip.contains(value.toLowerCase()) || (c.name != null && c.name!.toLowerCase().contains(value.toLowerCase())) + ).toList(); + setState(() => _filteredClients = filtered); + } + else { + final filtered = clientsProvider.clients!.autoClients.map((e) { + String? name; + try { + name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(e.ip)).name; + } catch (e) { + // ---- // + } + return _ClientLog( + ip: e.ip, + name: name + ); + }).where( + (c) => c.ip.contains(value.toLowerCase()) || (c.name != null && c.name!.toLowerCase().contains(value.toLowerCase())) + ).toList(); + setState(() => _filteredClients = filtered); + } + } + + void onListChange(int list) { + onSearch(value: _searchController.text, selectedList: list); } if (widget.dialog == true) { @@ -115,7 +143,7 @@ class _ClientsModalState extends State { _SearchField( controller: _searchController, onClear: () => setState(() => _searchController.text = ""), - onSearch: onSearch + onSearch: (v) => onSearch(value: v) ), Card( margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), @@ -135,30 +163,34 @@ class _ClientsModalState extends State { ), ), ), - CustomCheckboxListTile( - padding: const EdgeInsets.only( - left: 24, - top: 8, - right: 12, - bottom: 8 + Padding( + padding: const EdgeInsets.all(16), + child: SegmentedButtonSlide( + entries: [ + SegmentedButtonSlideEntry(icon: Icons.devices, label: AppLocalizations.of(context)!.activeClients), + SegmentedButtonSlideEntry(icon: Icons.add_rounded, label: AppLocalizations.of(context)!.added), + ], + selectedEntry: _selectedList, + onChange: (v) { + onListChange(v); + setState(() => _selectedList = v); + }, + colors: SegmentedButtonSlideColors( + barColor: Theme.of(context).colorScheme.primary.withOpacity(0.2), + backgroundSelectedColor: Theme.of(context).colorScheme.primary, + foregroundSelectedColor: Theme.of(context).colorScheme.onPrimary, + foregroundUnselectedColor: Theme.of(context).colorScheme.onSurface, + hoverColor: Theme.of(context).colorScheme.onSurfaceVariant, + ), ), - value: logsProvider.selectedClients.length == clientsProvider.clients!.autoClients.length, - onChanged: (v) { - if (v == true) { - logsProvider.setSelectedClients(clientsProvider.clients!.autoClients.map((e) => e.ip).toList()); - } - else { - logsProvider.setSelectedClients([]); - } - }, - title: AppLocalizations.of(context)!.selectAll ), ListView.builder( primary: false, shrinkWrap: true, itemCount: _filteredClients.length, itemBuilder: (context, index) => _ListItem( - label: _filteredClients[index].ip, + title: _filteredClients[index].ip, + subtitle: _selectedList == 0 ? _filteredClients[index].name : _filteredClients[index].ids?.join(", "), checkboxActive: logsProvider.selectedClients.contains(_filteredClients[index].ip), onChanged: (isSelected) { if (isSelected == true) { @@ -196,7 +228,7 @@ class _ClientsModalState extends State { _SearchField( controller: _searchController, onClear: () => setState(() => _searchController.text = ""), - onSearch: onSearch + onSearch: (v) => onSearch(value: v) ), Card( margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), @@ -216,30 +248,34 @@ class _ClientsModalState extends State { ), ), ), - CustomCheckboxListTile( - padding: const EdgeInsets.only( - left: 24, - top: 8, - right: 12, - bottom: 8 + Padding( + padding: const EdgeInsets.all(16), + child: SegmentedButtonSlide( + entries: [ + SegmentedButtonSlideEntry(icon: Icons.devices, label: AppLocalizations.of(context)!.activeClients), + SegmentedButtonSlideEntry(icon: Icons.add_rounded, label: AppLocalizations.of(context)!.added), + ], + selectedEntry: _selectedList, + onChange: (v) { + onListChange(v); + setState(() => _selectedList = v); + }, + colors: SegmentedButtonSlideColors( + barColor: Theme.of(context).colorScheme.primary.withOpacity(0.2), + backgroundSelectedColor: Theme.of(context).colorScheme.primary, + foregroundSelectedColor: Theme.of(context).colorScheme.onPrimary, + foregroundUnselectedColor: Theme.of(context).colorScheme.onSurface, + hoverColor: Theme.of(context).colorScheme.onSurfaceVariant, + ), ), - value: logsProvider.selectedClients.length == clientsProvider.clients!.autoClients.length, - onChanged: (v) { - if (v == true) { - logsProvider.setSelectedClients(clientsProvider.clients!.autoClients.map((e) => e.ip).toList()); - } - else { - logsProvider.setSelectedClients([]); - } - }, - title: AppLocalizations.of(context)!.selectAll ), ListView.builder( shrinkWrap: true, primary: false, itemCount: _filteredClients.length, itemBuilder: (context, index) => _ListItem( - label: _filteredClients[index].ip, + title: _selectedList == 0 ? _filteredClients[index].ip : _filteredClients[index].name ?? "", + subtitle: _selectedList == 0 ? _filteredClients[index].name : _filteredClients[index].ids?.join(", "), checkboxActive: logsProvider.selectedClients.contains(_filteredClients[index].ip), onChanged: (isSelected) { if (isSelected == true) { @@ -257,7 +293,7 @@ class _ClientsModalState extends State { } } ) - ) + ), ] ), ); @@ -309,32 +345,25 @@ class _SearchField extends StatelessWidget { } class _ListItem extends StatelessWidget { - final String label; + final String title; + final String? subtitle; final bool checkboxActive; final void Function(bool) onChanged; const _ListItem({ - required this.label, + required this.title, + this.subtitle, required this.checkboxActive, required this.onChanged, }); @override Widget build(BuildContext context) { - final statusProvider = Provider.of(context); - - String? name; - try { - name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(label)).name; - } catch (e) { - // ---- // - } - return CustomCheckboxListTile( value: checkboxActive, onChanged: (v) => onChanged(v), - title: label, - subtitle: name, + title: title, + subtitle: subtitle, padding: const EdgeInsets.only( left: 24, top: 8, From 4f903d8e4c5718135d5499c604539bd88b569f9e Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 18 Jun 2024 01:32:04 +0200 Subject: [PATCH 175/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 1a8cda0..c9259b7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.18.0-beta.1+138 +version: 2.18.0-beta.2+139 environment: sdk: '>=2.18.1 <3.0.0' From cce54c8ba5567a4325744c1deaea86744ed34097 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 18 Jun 2024 21:50:38 +0200 Subject: [PATCH 176/236] Check if it's not ip to apply "" --- lib/functions/is_ip.dart | 10 ++++++++++ lib/screens/logs/filters/clients_modal.dart | 5 +++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 lib/functions/is_ip.dart diff --git a/lib/functions/is_ip.dart b/lib/functions/is_ip.dart new file mode 100644 index 0000000..667bf0b --- /dev/null +++ b/lib/functions/is_ip.dart @@ -0,0 +1,10 @@ +bool isIpAddress(String value) { + final ipv4Regexp = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$'); + final ipv6Regexp = RegExp(r'(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))'); + if (ipv4Regexp.hasMatch(value) || ipv6Regexp.hasMatch(value)) { + return true; + } + else { + return false; + } +} \ No newline at end of file diff --git a/lib/screens/logs/filters/clients_modal.dart b/lib/screens/logs/filters/clients_modal.dart index 5e5dbc6..ea15c41 100644 --- a/lib/screens/logs/filters/clients_modal.dart +++ b/lib/screens/logs/filters/clients_modal.dart @@ -6,6 +6,7 @@ import 'package:segmented_button_slide/segmented_button_slide.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; +import 'package:adguard_home_manager/functions/is_ip.dart'; import 'package:adguard_home_manager/widgets/list_bottom_sheet.dart'; import 'package:adguard_home_manager/providers/status_provider.dart'; @@ -79,9 +80,9 @@ class _ClientsModalState extends State { // ---- // } return _ClientLog( - ip: e.ids[0], + ip: isIpAddress(e.ids[0]) ? e.ids[0] : '"${e.ids[0]}"', name: name, - ids: e.ids + ids: e.ids.map((i) => isIpAddress(i) ? i : '"$i"').toList() ); }).where( (c) => c.ip.contains(value.toLowerCase()) || (c.name != null && c.name!.toLowerCase().contains(value.toLowerCase())) From a8cbed5ca09551c3ee016b5f1160e3a74d76ed70 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 21 Jun 2024 02:32:23 +0200 Subject: [PATCH 177/236] Added search button to added clients --- lib/l10n/app_en.arb | 3 +- lib/l10n/app_es.arb | 3 +- lib/screens/logs/filters/clients_modal.dart | 56 +++++++++++++++------ 3 files changed, 46 insertions(+), 16 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 3348119..39ec621 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -794,5 +794,6 @@ "disallowingClient": "Disallowing client...", "clientIpCopied": "Client IP copied to the clipboard", "clientNameCopied": "Client name copied to the clipboard", - "dnsServerAddressCopied": "DNS server address copied to the clipboard" + "dnsServerAddressCopied": "DNS server address copied to the clipboard", + "select": "Select" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 811ee22..399f429 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -794,5 +794,6 @@ "disallowingClient": "No permitiendo cliente...", "clientIpCopied": "Dirección IP del cliente copiada al portapapeles", "clientNameCopied": "Nombre del cliente copiado al portapapeles", - "dnsServerAddressCopied": "Dirección del servidor DNS copiada al portapapeles" + "dnsServerAddressCopied": "Dirección del servidor DNS copiada al portapapeles", + "select": "Seleccionar" } \ No newline at end of file diff --git a/lib/screens/logs/filters/clients_modal.dart b/lib/screens/logs/filters/clients_modal.dart index ea15c41..ac7b384 100644 --- a/lib/screens/logs/filters/clients_modal.dart +++ b/lib/screens/logs/filters/clients_modal.dart @@ -8,6 +8,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; import 'package:adguard_home_manager/functions/is_ip.dart'; import 'package:adguard_home_manager/widgets/list_bottom_sheet.dart'; +import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; import 'package:adguard_home_manager/providers/status_provider.dart'; import 'package:adguard_home_manager/providers/clients_provider.dart'; @@ -80,9 +81,9 @@ class _ClientsModalState extends State { // ---- // } return _ClientLog( - ip: isIpAddress(e.ids[0]) ? e.ids[0] : '"${e.ids[0]}"', + ip: e.ids[0], name: name, - ids: e.ids.map((i) => isIpAddress(i) ? i : '"$i"').toList() + ids: e.ids ); }).where( (c) => c.ip.contains(value.toLowerCase()) || (c.name != null && c.name!.toLowerCase().contains(value.toLowerCase())) @@ -112,6 +113,13 @@ class _ClientsModalState extends State { onSearch(value: _searchController.text, selectedList: list); } + void searchAddedClient(_ClientLog client) { + final notIps = client.ids?.where((e) => isIpAddress(e) == false).toList(); + if (notIps == null) return; + logsProvider.setSearchText('"${notIps[0]}"'); + Navigator.of(context).pop(); + } + if (widget.dialog == true) { return Dialog( child: ConstrainedBox( @@ -193,6 +201,8 @@ class _ClientsModalState extends State { title: _filteredClients[index].ip, subtitle: _selectedList == 0 ? _filteredClients[index].name : _filteredClients[index].ids?.join(", "), checkboxActive: logsProvider.selectedClients.contains(_filteredClients[index].ip), + isAddedClient: _selectedList == 0, + onSearchAddedClient: () => searchAddedClient(_filteredClients[index]), onChanged: (isSelected) { if (isSelected == true) { logsProvider.setSelectedClients([ @@ -278,6 +288,8 @@ class _ClientsModalState extends State { title: _selectedList == 0 ? _filteredClients[index].ip : _filteredClients[index].name ?? "", subtitle: _selectedList == 0 ? _filteredClients[index].name : _filteredClients[index].ids?.join(", "), checkboxActive: logsProvider.selectedClients.contains(_filteredClients[index].ip), + isAddedClient: _selectedList == 1, + onSearchAddedClient: () => searchAddedClient(_filteredClients[index]), onChanged: (isSelected) { if (isSelected == true) { logsProvider.setSelectedClients([ @@ -350,27 +362,43 @@ class _ListItem extends StatelessWidget { final String? subtitle; final bool checkboxActive; final void Function(bool) onChanged; + final bool isAddedClient; + final void Function() onSearchAddedClient; const _ListItem({ required this.title, this.subtitle, required this.checkboxActive, required this.onChanged, + required this.isAddedClient, + required this.onSearchAddedClient, }); @override Widget build(BuildContext context) { - return CustomCheckboxListTile( - value: checkboxActive, - onChanged: (v) => onChanged(v), - title: title, - subtitle: subtitle, - padding: const EdgeInsets.only( - left: 24, - top: 8, - right: 12, - bottom: 8 - ), - ); + if (isAddedClient == true) { + return CustomListTile( + title: title, + subtitle: subtitle, + trailing: TextButton( + onPressed: onSearchAddedClient, + child: Text(AppLocalizations.of(context)!.select) + ), + ); + } + else { + return CustomCheckboxListTile( + value: checkboxActive, + onChanged: (v) => onChanged(v), + title: title, + subtitle: subtitle, + padding: const EdgeInsets.only( + left: 24, + top: 8, + right: 12, + bottom: 8 + ), + ); + } } } \ No newline at end of file From b685010a03f95545c84d32ffaf15d7b105d8230a Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Fri, 21 Jun 2024 15:31:54 +0200 Subject: [PATCH 178/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index c9259b7..9779159 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.18.0-beta.2+139 +version: 2.18.0-beta.3+140 environment: sdk: '>=2.18.1 <3.0.0' From f8f18be7230e10ac62b32bff7359f13a283a6f7f Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 24 Jun 2024 03:00:02 +0200 Subject: [PATCH 179/236] Fix windows installer builder --- windows/innosetup_installer_builder.iss | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/innosetup_installer_builder.iss b/windows/innosetup_installer_builder.iss index 53b8fc7..b2a93ce 100644 --- a/windows/innosetup_installer_builder.iss +++ b/windows/innosetup_installer_builder.iss @@ -40,6 +40,7 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{ Source: "..\build\windows\x64\runner\Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\dynamic_color_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\flutter_windows.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "..\build\windows\x64\runner\Release\screen_retriever_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\sentry_flutter_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\sqlite3.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\sqlite3_flutter_libs_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion From 0eae951eedae7dd52cfe322c2d6f51a5f5182551 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 24 Jun 2024 03:02:33 +0200 Subject: [PATCH 180/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 9779159..a12e5aa 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.18.0-beta.3+140 +version: 2.18.0+141 environment: sdk: '>=2.18.1 <3.0.0' From be3e76eafca562795580d3da7252d8b45c1f998b Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 8 Sep 2024 17:16:07 +0200 Subject: [PATCH 181/236] Updated libraries --- .../modals/custom_rules/add_custom_rule.dart | 14 +- lib/screens/logs/filters/clients_modal.dart | 25 ++- lib/widgets/add_server/add_server_modal.dart | 14 +- macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 196 +++++++++--------- pubspec.yaml | 6 +- 6 files changed, 142 insertions(+), 115 deletions(-) diff --git a/lib/screens/filters/modals/custom_rules/add_custom_rule.dart b/lib/screens/filters/modals/custom_rules/add_custom_rule.dart index 7e6e604..b528c02 100644 --- a/lib/screens/filters/modals/custom_rules/add_custom_rule.dart +++ b/lib/screens/filters/modals/custom_rules/add_custom_rule.dart @@ -276,16 +276,22 @@ class _CustomRuleEditor extends StatelessWidget { colors: SegmentedButtonSlideColors( barColor: Theme.of(context).colorScheme.primary.withOpacity(0.2), backgroundSelectedColor: Theme.of(context).colorScheme.primary, - foregroundSelectedColor: Theme.of(context).colorScheme.onPrimary, - foregroundUnselectedColor: Theme.of(context).colorScheme.onSurface, - hoverColor: Theme.of(context).colorScheme.onSurfaceVariant, ), textOverflow: TextOverflow.ellipsis, - fontSize: 14, height: 40, margin: const EdgeInsets.symmetric( horizontal: 24, ), + selectedTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onPrimary, + fontWeight: FontWeight.w700 + ), + unselectedTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onSurface, + ), + hoverTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), ), Container(height: 20), Material( diff --git a/lib/screens/logs/filters/clients_modal.dart b/lib/screens/logs/filters/clients_modal.dart index ac7b384..403f098 100644 --- a/lib/screens/logs/filters/clients_modal.dart +++ b/lib/screens/logs/filters/clients_modal.dart @@ -187,9 +187,15 @@ class _ClientsModalState extends State { colors: SegmentedButtonSlideColors( barColor: Theme.of(context).colorScheme.primary.withOpacity(0.2), backgroundSelectedColor: Theme.of(context).colorScheme.primary, - foregroundSelectedColor: Theme.of(context).colorScheme.onPrimary, - foregroundUnselectedColor: Theme.of(context).colorScheme.onSurface, - hoverColor: Theme.of(context).colorScheme.onSurfaceVariant, + ), + selectedTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onPrimary, + ), + unselectedTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onSurface, + ), + hoverTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant, ), ), ), @@ -274,9 +280,16 @@ class _ClientsModalState extends State { colors: SegmentedButtonSlideColors( barColor: Theme.of(context).colorScheme.primary.withOpacity(0.2), backgroundSelectedColor: Theme.of(context).colorScheme.primary, - foregroundSelectedColor: Theme.of(context).colorScheme.onPrimary, - foregroundUnselectedColor: Theme.of(context).colorScheme.onSurface, - hoverColor: Theme.of(context).colorScheme.onSurfaceVariant, + ), + selectedTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onPrimary, + fontWeight: FontWeight.w700 + ), + unselectedTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onSurface, + ), + hoverTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant, ), ), ), diff --git a/lib/widgets/add_server/add_server_modal.dart b/lib/widgets/add_server/add_server_modal.dart index ac7d4a1..e6888da 100644 --- a/lib/widgets/add_server/add_server_modal.dart +++ b/lib/widgets/add_server/add_server_modal.dart @@ -419,16 +419,22 @@ class _AddServerModalState extends State { colors: SegmentedButtonSlideColors( barColor: Theme.of(context).colorScheme.primary.withOpacity(0.2), backgroundSelectedColor: Theme.of(context).colorScheme.primary, - foregroundSelectedColor: Theme.of(context).colorScheme.onPrimary, - foregroundUnselectedColor: Theme.of(context).colorScheme.onSurface, - hoverColor: Theme.of(context).colorScheme.onSurfaceVariant, ), textOverflow: TextOverflow.ellipsis, - fontSize: 14, height: 40, margin: const EdgeInsets.symmetric( horizontal: 24, ), + selectedTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onPrimary, + fontWeight: FontWeight.w700 + ), + unselectedTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onSurface, + ), + hoverTextStyle: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), ), Card( margin: const EdgeInsets.only( diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 28ea475..cf249ab 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -13,6 +13,7 @@ import sentry_flutter import shared_preferences_foundation import sqflite import sqlite3_flutter_libs +import store_checker import url_launcher_macos import window_manager @@ -25,6 +26,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) + StoreCheckerPlugin.register(with: registry.registrar(forPlugin: "StoreCheckerPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index b196e63..235ec9f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: ansicolor - sha256: "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880" + sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.0.3" archive: dependency: transitive description: @@ -109,10 +109,10 @@ packages: dependency: transitive description: name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" csslib: dependency: transitive description: @@ -133,18 +133,18 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: eead12d1a1ed83d8283ab4c2f3fca23ac4082f29f25f29dff0f758f57d06ec91 + sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074 url: "https://pub.dev" source: hosted - version: "10.1.0" + version: "10.1.2" device_info_plus_platform_interface: dependency: transitive description: name: device_info_plus_platform_interface - sha256: d3b01d5868b50ae571cd1dc6e502fc94d956b665756180f7b16ead09e836fd64 + sha256: "282d3cf731045a2feb66abfe61bbc40870ae50a3ed10a4d3d217556c35c8c2ba" url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.0.1" dynamic_color: dependency: "direct main" description: @@ -181,10 +181,10 @@ packages: dependency: transitive description: name: ffi - sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" file: dependency: transitive description: @@ -205,10 +205,10 @@ packages: dependency: "direct main" description: name: fl_chart - sha256: d0f0d49112f2f4b192481c16d05b6418bd7820e021e265a3c22db98acf7ed7fb + sha256: "94307bef3a324a0d329d3ab77b2f0c6e5ed739185ffc029ed28c0f9b019ea7ef" url: "https://pub.dev" source: hosted - version: "0.68.0" + version: "0.69.0" flutter: dependency: "direct main" description: flutter @@ -218,42 +218,42 @@ packages: dependency: "direct main" description: name: flutter_custom_tabs - sha256: "961fe962ae55e9e41097c34e68c6d7d2de10e9a71034f83834919e31a891e728" + sha256: "34167bd15fa3479855c011f868e0789c9569c12b64358ca7250accc5a24c3312" url: "https://pub.dev" source: hosted - version: "2.0.0+1" + version: "2.1.0" flutter_custom_tabs_android: dependency: transitive description: name: flutter_custom_tabs_android - sha256: "5701a3e38117dfc59e5fa9e84a29eea9203e0062de7be56d1f775845c34456d9" + sha256: cf06fde8c002f326dc6cbf69ee3f97c3feead4436229da02d2e2aa39d5a5dbf4 url: "https://pub.dev" source: hosted - version: "2.0.0+1" + version: "2.1.0" flutter_custom_tabs_ios: dependency: transitive description: name: flutter_custom_tabs_ios - sha256: b29f687f7f366159d37347f888369fcd1259adac8ca6c7f07d356a80b091e08a + sha256: ef2de533bc45fb84fefc3854bc8b1e43001671c6bc6bc55faa57942eecd3f70a url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.1.0" flutter_custom_tabs_platform_interface: dependency: transitive description: name: flutter_custom_tabs_platform_interface - sha256: "13531a743486695d87b462b151801e11476b1b5a15274caec092420cc1943064" + sha256: e18e9b08f92582123bdb84fb6e4c91804b0579700fed6f887d32fd9a1e96a5d5 url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.1.0" flutter_custom_tabs_web: dependency: transitive description: name: flutter_custom_tabs_web - sha256: "3114b511d3942ed42c502cc57ad47eaef9622ac06dd036e2b21b19d8876f6498" + sha256: "08ae322b11e1972a233d057542279873d0f9d1d5f8159c2c741457239d9d562c" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.1.0" flutter_displaymode: dependency: "direct main" description: @@ -303,18 +303,18 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: ff76a9300a06ad1f2b394e54c0b4beaaf6a95f95c98540c918b870221499bb10 + sha256: a23c41ee57573e62fc2190a1f36a0480c4d90bde3a8a8d7126e5d5992fb53fb7 url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.3+1" flutter_native_splash: dependency: "direct dev" description: name: flutter_native_splash - sha256: edf39bcf4d74aca1eb2c1e43c3e445fd9f494013df7f0da752fefe72020eedc0 + sha256: aa06fec78de2190f3db4319dd60fdc8d12b2626e93ef9828633928c2dcaea840 url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" flutter_reorderable_list: dependency: "direct main" description: @@ -353,10 +353,10 @@ packages: dependency: "direct main" description: name: http - sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" http_parser: dependency: transitive description: @@ -393,18 +393,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -449,18 +449,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" nested: dependency: transitive description: @@ -473,18 +473,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0 + sha256: a75164ade98cb7d24cfd0a13c6408927c6b217fa60dee5a7ff5c116a58f28918 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "8.0.2" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e + sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.0.1" path: dependency: transitive description: @@ -521,10 +521,10 @@ packages: dependency: transitive description: name: path_provider_windows - sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.0" percent_indicator: dependency: "direct main" description: @@ -585,82 +585,82 @@ packages: dependency: "direct main" description: name: segmented_button_slide - sha256: "96d67344fa65f6b98a317d930bfd4e81e47c4f9e3e2ab1ee8925b55f72cded13" + sha256: d0563010c79a101340cfc127ee5a27c8c7d8640d5ef857a36e9d0b46bc01fed4 url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "2.0.0" sentry: dependency: transitive description: name: sentry - sha256: fd1fbfe860c05f5c52820ec4dbf2b6473789e83ead26cfc18bca4fe80bf3f008 + sha256: "1af8308298977259430d118ab25be8e1dda626cdefa1e6ce869073d530d39271" url: "https://pub.dev" source: hosted - version: "8.2.0" + version: "8.8.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: c64f0aec5332bec87083b61514d1b6b29e435b9045d03ce1575861192b9a5680 + sha256: "18fe4d125c2d529bd6127200f0d2895768266a8c60b4fb50b2086fd97e1a4ab2" url: "https://pub.dev" source: hosted - version: "8.2.0" + version: "8.8.0" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 + sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.2" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577" + sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.2" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7" + sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.5.2" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.4.2" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" sky_engine: dependency: transitive description: flutter @@ -694,10 +694,10 @@ packages: dependency: transitive description: name: sqflite_common - sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" + sha256: "7b41b6c3507854a159e24ae90a8e3e9cc01eb26a477c118d6dca065b5f55453e" url: "https://pub.dev" source: hosted - version: "2.5.4" + version: "2.5.4+2" sqflite_common_ffi: dependency: "direct main" description: @@ -710,10 +710,10 @@ packages: dependency: transitive description: name: sqlite3 - sha256: b384f598b813b347c5a7e5ffad82cbaff1bec3d1561af267041e66f6f0899295 + sha256: "45f168ae2213201b54e09429ed0c593dc2c88c924a1488d6f9c523a255d567cb" url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.4.6" sqlite3_flutter_libs: dependency: "direct main" description: @@ -734,10 +734,10 @@ packages: dependency: "direct main" description: name: store_checker - sha256: c9c1a93f11fa756fea23a2a08d7e54e84626a8d3c759cf49fc694a3a5afdc705 + sha256: "9e5841e4f922cc7f0283323ff3c78fd31ace14c22e988525d33355c35d7c815a" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.6.0" stream_channel: dependency: transitive description: @@ -758,10 +758,10 @@ packages: dependency: transitive description: name: synchronized - sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" + sha256: a824e842b8a054f91a728b783c177c1e4731f6b124f9192468457a8913371255 url: "https://pub.dev" source: hosted - version: "3.1.0+1" + version: "3.2.0" term_glyph: dependency: transitive description: @@ -774,18 +774,18 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.2" timezone: dependency: "direct main" description: name: timezone - sha256: a6ccda4a69a442098b602c44e61a1e2b4bf6f5516e875bbf0f427d5df14745d5 + sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d" url: "https://pub.dev" source: hosted - version: "0.9.3" + version: "0.9.4" typed_data: dependency: transitive description: @@ -814,26 +814,26 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: ceb2625f0c24ade6ef6778d1de0b2e44f2db71fded235eb52295247feba8c5cf + sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab url: "https://pub.dev" source: hosted - version: "6.3.3" + version: "6.3.10" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89" + sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.3.1" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 + sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.2.0" url_launcher_macos: dependency: transitive description: @@ -854,26 +854,26 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" + sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.3" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 + sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" uuid: dependency: "direct main" description: name: uuid - sha256: "814e9e88f21a176ae1359149021870e87f7cddaf633ab678a5d2b0bff7fd1ba8" + sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 url: "https://pub.dev" source: hosted - version: "4.4.0" + version: "4.5.0" vector_graphics: dependency: transitive description: @@ -910,42 +910,42 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "14.2.5" web: dependency: transitive description: name: web - sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "1.0.0" win32: dependency: transitive description: name: win32 - sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4 + sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" url: "https://pub.dev" source: hosted - version: "5.5.1" + version: "5.5.4" win32_registry: dependency: transitive description: name: win32_registry - sha256: "10589e0d7f4e053f2c61023a31c9ce01146656a70b7b7f0828c0b46d7da2a9bb" + sha256: "723b7f851e5724c55409bb3d5a32b203b3afe8587eaf5dafb93a5fed8ecda0d6" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.1.4" window_manager: dependency: "direct main" description: name: window_manager - sha256: "8699323b30da4cdbe2aa2e7c9de567a6abd8a97d9a5c850a3c86dcd0b34bbfbf" + sha256: ab8b2a7f97543d3db2b506c9d875e637149d48ee0c6a5cb5f5fd6e0dac463792 url: "https://pub.dev" source: hosted - version: "0.3.9" + version: "0.4.2" xdg_directories: dependency: transitive description: @@ -971,5 +971,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.4.0 <4.0.0" - flutter: ">=3.22.0" + dart: ">=3.5.0 <4.0.0" + flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index a12e5aa..150159a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -48,7 +48,7 @@ dependencies: device_info_plus: ^10.1.0 uuid: ^4.2.1 expandable: ^5.0.1 - fl_chart: ^0.68.0 + fl_chart: ^0.69.0 flutter_svg: ^2.0.9 percent_indicator: ^4.2.3 store_checker: ^1.4.0 @@ -64,13 +64,13 @@ dependencies: flutter_dotenv: ^5.1.0 flutter_reorderable_list: ^1.3.1 pie_chart: ^5.4.0 - segmented_button_slide: ^1.0.4 + segmented_button_slide: ^2.0.0 http: ^1.1.2 timezone: ^0.9.2 flutter_custom_tabs: ^2.0.0+1 url_launcher: ^6.2.4 shared_preferences: ^2.2.2 - window_manager: ^0.3.8 + window_manager: ^0.4.2 dev_dependencies: flutter_test: From 7991f29707bb54ae679b9af48994d4e2e5cb8ae0 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 8 Sep 2024 18:17:05 +0200 Subject: [PATCH 182/236] Added realtime logs --- lib/l10n/app_en.arb | 4 +- lib/l10n/app_es.arb | 4 +- lib/providers/live_logs_provider.dart | 51 ++++++++++++ lib/screens/logs/live/live_logs_screen.dart | 89 +++++++++++++++++++++ lib/screens/logs/logs_list_appbar.dart | 46 ++++++++++- lib/services/api_client.dart | 4 +- 6 files changed, 190 insertions(+), 8 deletions(-) create mode 100644 lib/providers/live_logs_provider.dart create mode 100644 lib/screens/logs/live/live_logs_screen.dart diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 39ec621..609c616 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -795,5 +795,7 @@ "clientIpCopied": "Client IP copied to the clipboard", "clientNameCopied": "Client name copied to the clipboard", "dnsServerAddressCopied": "DNS server address copied to the clipboard", - "select": "Select" + "select": "Select", + "liveLogs": "Live logs", + "hereWillAppearRealtimeLogs": "Here there will appear the logs on realtime." } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 399f429..231eeaf 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -795,5 +795,7 @@ "clientIpCopied": "Dirección IP del cliente copiada al portapapeles", "clientNameCopied": "Nombre del cliente copiado al portapapeles", "dnsServerAddressCopied": "Dirección del servidor DNS copiada al portapapeles", - "select": "Seleccionar" + "select": "Seleccionar", + "liveLogs": "Registros en directo", + "hereWillAppearRealtimeLogs": "Aquí aparecerán los registros en tiempo real." } \ No newline at end of file diff --git a/lib/providers/live_logs_provider.dart b/lib/providers/live_logs_provider.dart new file mode 100644 index 0000000..044dd57 --- /dev/null +++ b/lib/providers/live_logs_provider.dart @@ -0,0 +1,51 @@ +import 'dart:async'; + +import 'package:flutter/widgets.dart'; + +import 'package:adguard_home_manager/models/logs.dart'; +import 'package:adguard_home_manager/providers/servers_provider.dart'; + +class LiveLogsProvider with ChangeNotifier { + ServersProvider? _serversProvider; + + update(ServersProvider? provider) { + _serversProvider = provider; + } + + bool _isDisposed = false; + + @override + void dispose() { + _isDisposed = true; + super.dispose(); + } + + List _logs = []; + + List get logs { + return _logs; + } + + DateTime? _lastTime; + + void startFetchLogs() { + _lastTime = DateTime.now(); + _fetchLogs(); + } + + void _fetchLogs() async { + if (_lastTime == null) return; + final result = await _serversProvider!.apiClient2!.getLogs( + count: 100 + ); + if (result.successful == false || result.content == null) return; + final valid = (result.content as LogsData).data.where((e) => e.time.isAfter(_lastTime!)); + _logs = [...valid, ..._logs]; + _lastTime = DateTime.now(); + notifyListeners(); + + await Future.delayed(const Duration(seconds: 2)); + if (_isDisposed == true) return; + _fetchLogs(); + } +} \ No newline at end of file diff --git a/lib/screens/logs/live/live_logs_screen.dart b/lib/screens/logs/live/live_logs_screen.dart new file mode 100644 index 0000000..7d20374 --- /dev/null +++ b/lib/screens/logs/live/live_logs_screen.dart @@ -0,0 +1,89 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/screens/logs/details/log_details_screen.dart'; +import 'package:adguard_home_manager/screens/logs/log_tile.dart'; + +import 'package:adguard_home_manager/providers/live_logs_provider.dart'; + +class LiveLogsScreen extends StatefulWidget { + const LiveLogsScreen({super.key}); + + @override + State createState() => _LiveLogsScreenState(); +} + +class _LiveLogsScreenState extends State { + @override + void initState() { + Provider.of(context, listen: false).startFetchLogs(); + + super.initState(); + } + + @override + Widget build(BuildContext context) { + final liveLogsProvider = Provider.of(context); +print(liveLogsProvider.logs.length); + return Scaffold( + body: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar.large( + title: Text(AppLocalizations.of(context)!.liveLogs), + ) + ) + ], + body: SafeArea( + top: false, + bottom: false, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + if (liveLogsProvider.logs.isEmpty) SliverFillRemaining( + child: Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text( + AppLocalizations.of(context)!.hereWillAppearRealtimeLogs, + textAlign: TextAlign.center, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant, + fontSize: 24 + ), + ), + ), + ), + ), + if (liveLogsProvider.logs.isNotEmpty) SliverList.builder( + itemCount: liveLogsProvider.logs.length, + itemBuilder: (context, index) => LogTile( + log: liveLogsProvider.logs[index], + length: liveLogsProvider.logs.length, + index: index, + onLogTap: (log) { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => LogDetailsScreen( + log: log, + dialog: false, + ) + ) + ); + }, + twoColumns: false + ), + ) + ], + ), + ) + ) + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index 5014806..88c1c29 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -6,11 +6,14 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/screens/logs/live/live_logs_screen.dart'; import 'package:adguard_home_manager/screens/logs/filters/logs_filters_modal.dart'; import 'package:adguard_home_manager/config/globals.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/functions/desktop_mode.dart'; +import 'package:adguard_home_manager/providers/live_logs_provider.dart'; +import 'package:adguard_home_manager/providers/servers_provider.dart'; import 'package:adguard_home_manager/models/applied_filters.dart'; import 'package:adguard_home_manager/providers/logs_provider.dart'; @@ -74,6 +77,22 @@ class LogsListAppBar extends StatelessWidget { ); } + void openLiveLogsScreen() { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => MultiProvider( + providers: [ + ChangeNotifierProxyProvider( + create: (context) => LiveLogsProvider(), + update: (context, servers, logs) => logs!..update(servers), + ), + ], + child: const LiveLogsScreen() + ) + ) + ); + } + final Map translatedString = { "all": AppLocalizations.of(context)!.all, "filtered": AppLocalizations.of(context)!.filtered, @@ -104,10 +123,29 @@ class LogsListAppBar extends StatelessWidget { icon: const Icon(Icons.search_rounded), tooltip: AppLocalizations.of(context)!.search, ), - if (logsProvider.loadStatus == LoadStatus.loaded) IconButton( - onPressed: openFilersModal, - icon: const Icon(Icons.filter_list_rounded), - tooltip: AppLocalizations.of(context)!.filters, + if (logsProvider.loadStatus == LoadStatus.loaded) PopupMenuButton( + itemBuilder: (context) => [ + PopupMenuItem( + onTap: openFilersModal, + child: Row( + children: [ + const Icon(Icons.filter_list_rounded), + const SizedBox(width: 10), + Text(AppLocalizations.of(context)!.filters) + ], + ) + ), + PopupMenuItem( + onTap: openLiveLogsScreen, + child: Row( + children: [ + const Icon(Icons.stream_rounded), + const SizedBox(width: 10), + Text(AppLocalizations.of(context)!.liveLogs) + ], + ) + ), + ], ), const SizedBox(width: 8), ], diff --git a/lib/services/api_client.dart b/lib/services/api_client.dart index 9bc283e..ce3e033 100644 --- a/lib/services/api_client.dart +++ b/lib/services/api_client.dart @@ -206,14 +206,14 @@ class ApiClientV2 { } Future getLogs({ - required int count, + int? count, int? offset, DateTime? olderThan, String? responseStatus, String? search }) async { final result = await HttpRequestClient.get( - urlPath: '/querylog?limit=$count${offset != null ? '&offset=$offset' : ''}${olderThan != null ? '&older_than=${olderThan.toIso8601String()}' : ''}${responseStatus != null ? '&response_status=$responseStatus' : ''}${search != null ? '&search=$search' : ''}', + urlPath: '/querylog?${count != null ? 'limit=$count' : ''}${offset != null ? '&offset=$offset' : ''}${olderThan != null ? '&older_than=${olderThan.toIso8601String()}' : ''}${responseStatus != null ? '&response_status=$responseStatus' : ''}${search != null ? '&search=$search' : ''}', server: server ); if (result.successful == true) { From bd08c98849b1342deb5e4b645d56a947a853d193 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 8 Sep 2024 18:17:26 +0200 Subject: [PATCH 183/236] Removed print --- lib/screens/logs/live/live_logs_screen.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/screens/logs/live/live_logs_screen.dart b/lib/screens/logs/live/live_logs_screen.dart index 7d20374..1c09957 100644 --- a/lib/screens/logs/live/live_logs_screen.dart +++ b/lib/screens/logs/live/live_logs_screen.dart @@ -25,7 +25,7 @@ class _LiveLogsScreenState extends State { @override Widget build(BuildContext context) { final liveLogsProvider = Provider.of(context); -print(liveLogsProvider.logs.length); + return Scaffold( body: NestedScrollView( headerSliverBuilder: (context, innerBoxIsScrolled) => [ From 7d1845f8064fc5065a94ac0f7e13f99c7669a381 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 8 Sep 2024 18:21:13 +0200 Subject: [PATCH 184/236] Fix blocked services screen --- .../modals/blocked_services_screen.dart | 82 ++++++++++--------- 1 file changed, 43 insertions(+), 39 deletions(-) diff --git a/lib/screens/filters/modals/blocked_services_screen.dart b/lib/screens/filters/modals/blocked_services_screen.dart index f3f52ec..c62950d 100644 --- a/lib/screens/filters/modals/blocked_services_screen.dart +++ b/lib/screens/filters/modals/blocked_services_screen.dart @@ -119,24 +119,26 @@ class _BlockedServicesScreenStateWidget extends State { SliverOverlapInjector( handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), ), - if (filteringProvider.blockedServicesLoadStatus == LoadStatus.loading) Container( - padding: const EdgeInsets.symmetric(horizontal: 16), - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.loadingBlockedServicesList, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), - ) - ], + if (filteringProvider.blockedServicesLoadStatus == LoadStatus.loading) SliverFillRemaining( + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16), + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const CircularProgressIndicator(), + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.loadingBlockedServicesList, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), ), ), if (filteringProvider.blockedServicesLoadStatus == LoadStatus.loaded) SliverList.builder( @@ -181,28 +183,30 @@ class _BlockedServicesScreenStateWidget extends State { ), ) ), - if (filteringProvider.blockedServicesLoadStatus == LoadStatus.error) Container( - padding: const EdgeInsets.symmetric(horizontal: 16), - width: double.maxFinite, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.error, - color: Colors.red, - size: 50, - ), - const SizedBox(height: 30), - Text( - AppLocalizations.of(context)!.blockedServicesListNotLoaded, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, + if (filteringProvider.blockedServicesLoadStatus == LoadStatus.error) SliverFillRemaining( + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16), + width: double.maxFinite, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon( + Icons.error, + color: Colors.red, + size: 50, ), - ) - ], + const SizedBox(height: 30), + Text( + AppLocalizations.of(context)!.blockedServicesListNotLoaded, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ) + ], + ), ), ) ], From d6b16b230c25474531b7c61b48c5079710c16f31 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 8 Sep 2024 19:03:57 +0200 Subject: [PATCH 185/236] Added split view --- .../clients/client/logs_list_client.dart | 6 +- .../logs/details/log_details_screen.dart | 8 +- lib/screens/logs/live/live_logs_list.dart | 90 ++++++++++++++++ lib/screens/logs/live/live_logs_screen.dart | 101 ++++++++---------- lib/screens/logs/logs.dart | 1 + lib/screens/logs/logs_list.dart | 1 + 6 files changed, 144 insertions(+), 63 deletions(-) create mode 100644 lib/screens/logs/live/live_logs_list.dart diff --git a/lib/screens/clients/client/logs_list_client.dart b/lib/screens/clients/client/logs_list_client.dart index 2d76396..f12f8e4 100644 --- a/lib/screens/clients/client/logs_list_client.dart +++ b/lib/screens/clients/client/logs_list_client.dart @@ -237,7 +237,8 @@ class _LogsListClientState extends State { context: context, builder: (context) => LogDetailsScreen( log: log, - dialog: true + dialog: true, + twoColumns: widget.splitView, ) ) } @@ -246,7 +247,8 @@ class _LogsListClientState extends State { MaterialPageRoute( builder: (context) => LogDetailsScreen( log: log, - dialog: false + dialog: false, + twoColumns: widget.splitView, ) ) ) diff --git a/lib/screens/logs/details/log_details_screen.dart b/lib/screens/logs/details/log_details_screen.dart index 5d78823..d0a80e9 100644 --- a/lib/screens/logs/details/log_details_screen.dart +++ b/lib/screens/logs/details/log_details_screen.dart @@ -1,6 +1,5 @@ // ignore_for_file: use_build_context_synchronously -import 'package:adguard_home_manager/functions/copy_clipboard.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -11,6 +10,7 @@ import 'package:adguard_home_manager/screens/logs/details/log_list_tile.dart'; import 'package:adguard_home_manager/functions/desktop_mode.dart'; import 'package:adguard_home_manager/functions/open_url.dart'; +import 'package:adguard_home_manager/functions/copy_clipboard.dart'; import 'package:adguard_home_manager/constants/urls.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; import 'package:adguard_home_manager/functions/get_filtered_status.dart'; @@ -24,11 +24,13 @@ import 'package:adguard_home_manager/providers/app_config_provider.dart'; class LogDetailsScreen extends StatelessWidget { final Log log; final bool dialog; + final bool twoColumns; const LogDetailsScreen({ super.key, required this.log, - required this.dialog + required this.dialog, + required this.twoColumns, }); @override @@ -137,6 +139,7 @@ class LogDetailsScreen extends StatelessWidget { ); } else { + print(twoColumns); return Scaffold( body: NestedScrollView( headerSliverBuilder: (context, innerBoxIsScrolled) => [ @@ -148,6 +151,7 @@ class LogDetailsScreen extends StatelessWidget { centerTitle: false, forceElevated: innerBoxIsScrolled, surfaceTintColor: isDesktop(width) ? Colors.transparent : null, + automaticallyImplyLeading: twoColumns != true, title: Text(AppLocalizations.of(context)!.logDetails), actions: [ IconButton( diff --git a/lib/screens/logs/live/live_logs_list.dart b/lib/screens/logs/live/live_logs_list.dart new file mode 100644 index 0000000..bf812e8 --- /dev/null +++ b/lib/screens/logs/live/live_logs_list.dart @@ -0,0 +1,90 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/screens/logs/log_tile.dart'; +import 'package:adguard_home_manager/screens/logs/details/log_details_screen.dart'; + +import 'package:adguard_home_manager/models/logs.dart'; +import 'package:adguard_home_manager/providers/live_logs_provider.dart'; + +class LiveLogsList extends StatelessWidget { + final Log? selectedLog; + final void Function(Log) onLogSelected; + final bool twoColumns; + + const LiveLogsList({ + super.key, + required this.selectedLog, + required this.onLogSelected, + required this.twoColumns, + }); + + @override + Widget build(BuildContext context) { + final liveLogsProvider = Provider.of(context); + + return NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar.large( + title: Text(AppLocalizations.of(context)!.liveLogs), + ) + ) + ], + body: SafeArea( + top: false, + bottom: false, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + if (liveLogsProvider.logs.isEmpty) SliverFillRemaining( + child: Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text( + AppLocalizations.of(context)!.hereWillAppearRealtimeLogs, + textAlign: TextAlign.center, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant, + fontSize: 24 + ), + ), + ), + ), + ), + if (liveLogsProvider.logs.isNotEmpty) SliverList.builder( + itemCount: liveLogsProvider.logs.length, + itemBuilder: (context, index) => LogTile( + log: liveLogsProvider.logs[index], + length: liveLogsProvider.logs.length, + index: index, + onLogTap: (log) { + if (!twoColumns) { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => LogDetailsScreen( + log: log, + dialog: false, + twoColumns: twoColumns, + ) + ) + ); + } + onLogSelected(log); + }, + isLogSelected: selectedLog == liveLogsProvider.logs[index], + twoColumns: twoColumns + ), + ) + ], + ), + ) + ) + ); + } +} \ No newline at end of file diff --git a/lib/screens/logs/live/live_logs_screen.dart b/lib/screens/logs/live/live_logs_screen.dart index 1c09957..06977b1 100644 --- a/lib/screens/logs/live/live_logs_screen.dart +++ b/lib/screens/logs/live/live_logs_screen.dart @@ -3,8 +3,10 @@ import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/logs/details/log_details_screen.dart'; +import 'package:adguard_home_manager/screens/logs/live/live_logs_list.dart'; import 'package:adguard_home_manager/screens/logs/log_tile.dart'; +import 'package:adguard_home_manager/models/logs.dart'; import 'package:adguard_home_manager/providers/live_logs_provider.dart'; class LiveLogsScreen extends StatefulWidget { @@ -15,6 +17,8 @@ class LiveLogsScreen extends StatefulWidget { } class _LiveLogsScreenState extends State { + Log? _selectedLog; + @override void initState() { Provider.of(context, listen: false).startFetchLogs(); @@ -24,66 +28,45 @@ class _LiveLogsScreenState extends State { @override Widget build(BuildContext context) { - final liveLogsProvider = Provider.of(context); - - return Scaffold( - body: NestedScrollView( - headerSliverBuilder: (context, innerBoxIsScrolled) => [ - SliverOverlapAbsorber( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - sliver: SliverAppBar.large( - title: Text(AppLocalizations.of(context)!.liveLogs), - ) - ) - ], - body: SafeArea( - top: false, - bottom: false, - child: Builder( - builder: (context) => CustomScrollView( - slivers: [ - SliverOverlapInjector( - handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), - ), - if (liveLogsProvider.logs.isEmpty) SliverFillRemaining( - child: Center( - child: Padding( - padding: const EdgeInsets.all(16), - child: Text( - AppLocalizations.of(context)!.hereWillAppearRealtimeLogs, - textAlign: TextAlign.center, - style: TextStyle( - color: Theme.of(context).colorScheme.onSurfaceVariant, - fontSize: 24 - ), - ), - ), + return Scaffold( + body: LayoutBuilder( + builder: (context, constraints) { + if (constraints.maxWidth > 800) { + return Material( + color: Colors.transparent, + child: Row( + children: [ + Expanded( + flex: 2, + child: LiveLogsList( + twoColumns: true, + selectedLog: _selectedLog, + onLogSelected: (log) => setState(() => _selectedLog = log), + ) ), - ), - if (liveLogsProvider.logs.isNotEmpty) SliverList.builder( - itemCount: liveLogsProvider.logs.length, - itemBuilder: (context, index) => LogTile( - log: liveLogsProvider.logs[index], - length: liveLogsProvider.logs.length, - index: index, - onLogTap: (log) { - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => LogDetailsScreen( - log: log, - dialog: false, - ) + Expanded( + flex: 3, + child: _selectedLog != null + ? LogDetailsScreen( + log: _selectedLog!, + dialog: false, + twoColumns: true, ) - ); - }, - twoColumns: false - ), - ) - ], - ), - ) - ) - ), - ); + : const SizedBox() + ) + ], + ), + ); + } + else { + return LiveLogsList( + twoColumns: false, + selectedLog: _selectedLog, + onLogSelected: (log) => setState(() => _selectedLog = log), + ); + } + }, + ), + ); } } \ No newline at end of file diff --git a/lib/screens/logs/logs.dart b/lib/screens/logs/logs.dart index e99317d..d008297 100644 --- a/lib/screens/logs/logs.dart +++ b/lib/screens/logs/logs.dart @@ -48,6 +48,7 @@ class _LogsState extends State { ? LogDetailsScreen( log: _selectedLog!, dialog: false, + twoColumns: true, ) : const SizedBox() ) diff --git a/lib/screens/logs/logs_list.dart b/lib/screens/logs/logs_list.dart index 6036f77..e50847a 100644 --- a/lib/screens/logs/logs_list.dart +++ b/lib/screens/logs/logs_list.dart @@ -188,6 +188,7 @@ class _LogsListWidgetState extends State { builder: (context) => LogDetailsScreen( log: log, dialog: false, + twoColumns: widget.twoColumns, ) ) ); From b7d4680f9c9acb0fd110e2ae3267cc4b4708c247 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 8 Sep 2024 19:07:05 +0200 Subject: [PATCH 186/236] Updated macOS stuff --- macos/Podfile.lock | 32 +++++++++++++++++++------------- macos/Runner/AppDelegate.swift | 2 +- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 96c9ba0..54fe2f5 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -8,27 +8,27 @@ PODS: - FlutterMacOS - screen_retriever (0.0.1): - FlutterMacOS - - Sentry/HybridSDK (8.25.2) - - sentry_flutter (8.2.0): + - Sentry/HybridSDK (8.35.1) + - sentry_flutter (8.8.0): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.25.2) + - Sentry/HybridSDK (= 8.35.1) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS - sqflite (0.0.3): - Flutter - FlutterMacOS - - "sqlite3 (3.46.0+1)": - - "sqlite3/common (= 3.46.0+1)" - - "sqlite3/common (3.46.0+1)" - - "sqlite3/dbstatvtab (3.46.0+1)": + - "sqlite3 (3.46.1+1)": + - "sqlite3/common (= 3.46.1+1)" + - "sqlite3/common (3.46.1+1)" + - "sqlite3/dbstatvtab (3.46.1+1)": - sqlite3/common - - "sqlite3/fts5 (3.46.0+1)": + - "sqlite3/fts5 (3.46.1+1)": - sqlite3/common - - "sqlite3/perf-threadsafe (3.46.0+1)": + - "sqlite3/perf-threadsafe (3.46.1+1)": - sqlite3/common - - "sqlite3/rtree (3.46.0+1)": + - "sqlite3/rtree (3.46.1+1)": - sqlite3/common - sqlite3_flutter_libs (0.0.1): - FlutterMacOS @@ -37,6 +37,8 @@ PODS: - sqlite3/fts5 - sqlite3/perf-threadsafe - sqlite3/rtree + - store_checker (0.0.1): + - FlutterMacOS - url_launcher_macos (0.0.1): - FlutterMacOS - window_manager (0.2.0): @@ -52,6 +54,7 @@ DEPENDENCIES: - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`) - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) + - store_checker (from `Flutter/ephemeral/.symlinks/plugins/store_checker/macos`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`) @@ -79,6 +82,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/sqflite/darwin sqlite3_flutter_libs: :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos + store_checker: + :path: Flutter/ephemeral/.symlinks/plugins/store_checker/macos url_launcher_macos: :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos window_manager: @@ -90,12 +95,13 @@ SPEC CHECKSUMS: FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38 - Sentry: 51b056d96914a741f63eca774d118678b1eb05a1 - sentry_flutter: e8397d13e297a5d4b6be8a752e33140b21c5cc97 + Sentry: 1fe34e9c2cbba1e347623610d26db121dcb569f1 + sentry_flutter: a39c2a2d67d5e5b9cb0b94a4985c76dd5b3fc737 shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec - sqlite3: 292c3e1bfe89f64e51ea7fc7dab9182a017c8630 + sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb sqlite3_flutter_libs: 5ca46c1a04eddfbeeb5b16566164aa7ad1616e7b + store_checker: 387169de0dffe57b6370d54cc027e9f95051b57f url_launcher_macos: 5f437abeda8c85500ceb03f5c1938a8c5a705399 window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8 diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift index d53ef64..8e02df2 100644 --- a/macos/Runner/AppDelegate.swift +++ b/macos/Runner/AppDelegate.swift @@ -1,7 +1,7 @@ import Cocoa import FlutterMacOS -@NSApplicationMain +@main class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true From 8761652eaa5ac33062957f77b35aba4b0d5c3f74 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 8 Sep 2024 19:08:23 +0200 Subject: [PATCH 187/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 150159a..4d754b2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.18.0+141 +version: 2.19.0-beta.1+142 environment: sdk: '>=2.18.1 <3.0.0' From ffcc0c2da0bebe71467c3d0522e838f40fa6fe12 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 8 Sep 2024 19:27:34 +0200 Subject: [PATCH 188/236] Removed store checker and added install referrer --- README.md | 4 +++- lib/functions/check_app_updates.dart | 10 +++------- lib/main.dart | 4 ++-- lib/providers/app_config_provider.dart | 8 ++++---- lib/screens/logs/live/live_logs_screen.dart | 2 -- .../general_settings/general_settings.dart | 11 ++--------- macos/Flutter/GeneratedPluginRegistrant.swift | 2 -- pubspec.lock | 16 ++++++++-------- pubspec.yaml | 2 +- 9 files changed, 23 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 96520c4..dac7569 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,6 @@ On [this repository](https://github.com/juanico10/Pihole_list) you can find a re - [fl chart](https://pub.dev/packages/fl_chart) - [flutter svg](https://pub.dev/packages/flutter_svg) - [percent indicator](https://pub.dev/packages/percent_indicator) -- [store checker](https://pub.dev/packages/store_checker) - [flutter markdown](https://pub.dev/packages/flutter_markdown) - [markdown](https://pub.dev/packages/markdown) - [html](https://pub.dev/packages/html) @@ -132,6 +131,9 @@ On [this repository](https://github.com/juanico10/Pihole_list) you can find a re - [timezone](https://pub.dev/packages/timezone) - [url launcher](https://pub.dev/packages/url_launcher) - [flutter custom tabs](https://pub.dev/packages/flutter_custom_tabs) +- [shared preferences](https://pub.dev/packages/shared_preferences) +- [window manager](https://pub.dev/packages/window_manager) +- [install referrer](https://pub.dev/packages/install_referrer)
      diff --git a/lib/functions/check_app_updates.dart b/lib/functions/check_app_updates.dart index dc08f29..e6137d7 100644 --- a/lib/functions/check_app_updates.dart +++ b/lib/functions/check_app_updates.dart @@ -1,6 +1,6 @@ import 'dart:io'; -import 'package:store_checker/store_checker.dart'; +import 'package:install_referrer/install_referrer.dart'; import 'package:adguard_home_manager/functions/compare_versions.dart'; import 'package:adguard_home_manager/services/external_requests.dart'; @@ -9,7 +9,7 @@ import 'package:adguard_home_manager/models/github_release.dart'; Future checkAppUpdates({ required String currentBuildNumber, required void Function(GitHubRelease?) setUpdateAvailable, - required Source installationSource, + required InstallationAppReferrer? installationSource, required bool isBeta }) async { var result = isBeta @@ -35,11 +35,7 @@ Future checkAppUpdates({ setUpdateAvailable(gitHubRelease); if (Platform.isAndroid) { - if ( - installationSource == Source.IS_INSTALLED_FROM_LOCAL_SOURCE || - installationSource == Source.IS_INSTALLED_FROM_PLAY_PACKAGE_INSTALLER || - installationSource == Source.UNKNOWN - ) { + if (installationSource == InstallationAppReferrer.androidManually) { return gitHubRelease; } else { diff --git a/lib/main.dart b/lib/main.dart index dce3456..ecd9f7e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:install_referrer/install_referrer.dart'; import 'package:provider/provider.dart'; import 'package:flutter_displaymode/flutter_displaymode.dart'; import 'package:dynamic_color/dynamic_color.dart'; @@ -12,7 +13,6 @@ import 'package:package_info_plus/package_info_plus.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; -import 'package:store_checker/store_checker.dart'; import 'package:window_manager/window_manager.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -80,7 +80,7 @@ void main() async { } if (Platform.isAndroid || Platform.isIOS) { - Source installationSource = await StoreChecker.getSource; + InstallationAppReferrer installationSource = await InstallReferrer.referrer; appConfigProvider.setInstallationSource(installationSource); } diff --git a/lib/providers/app_config_provider.dart b/lib/providers/app_config_provider.dart index f31eb3c..afdc467 100644 --- a/lib/providers/app_config_provider.dart +++ b/lib/providers/app_config_provider.dart @@ -2,9 +2,9 @@ import 'package:flutter/material.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/scheduler.dart'; +import 'package:install_referrer/install_referrer.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:shared_preferences/shared_preferences.dart'; -import 'package:store_checker/store_checker.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:adguard_home_manager/constants/enums.dart'; @@ -58,7 +58,7 @@ class AppConfigProvider with ChangeNotifier { GitHubRelease? _appUpdatesAvailable; - Source _installationSource = Source.UNKNOWN; + InstallationAppReferrer? _installationSource; PackageInfo? get getAppInfo { return _appInfo; @@ -162,7 +162,7 @@ class AppConfigProvider with ChangeNotifier { return _appUpdatesAvailable; } - Source get installationSource { + InstallationAppReferrer? get installationSource { return _installationSource; } @@ -227,7 +227,7 @@ class AppConfigProvider with ChangeNotifier { notifyListeners(); } - void setInstallationSource(Source value) { + void setInstallationSource(InstallationAppReferrer value) { _installationSource = value; notifyListeners(); } diff --git a/lib/screens/logs/live/live_logs_screen.dart b/lib/screens/logs/live/live_logs_screen.dart index 06977b1..5c35e1a 100644 --- a/lib/screens/logs/live/live_logs_screen.dart +++ b/lib/screens/logs/live/live_logs_screen.dart @@ -1,10 +1,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/logs/details/log_details_screen.dart'; import 'package:adguard_home_manager/screens/logs/live/live_logs_list.dart'; -import 'package:adguard_home_manager/screens/logs/log_tile.dart'; import 'package:adguard_home_manager/models/logs.dart'; import 'package:adguard_home_manager/providers/live_logs_provider.dart'; diff --git a/lib/screens/settings/general_settings/general_settings.dart b/lib/screens/settings/general_settings/general_settings.dart index 7c396da..936bd8b 100644 --- a/lib/screens/settings/general_settings/general_settings.dart +++ b/lib/screens/settings/general_settings/general_settings.dart @@ -3,8 +3,8 @@ import 'dart:io'; import 'package:flutter/material.dart'; +import 'package:install_referrer/install_referrer.dart'; import 'package:provider/provider.dart'; -import 'package:store_checker/store_checker.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/settings/settings.dart'; @@ -253,14 +253,7 @@ class _GeneralSettingsState extends State { right: 10 ) ), - if ( - !(Platform.isAndroid || Platform.isIOS) || - (Platform.isAndroid && ( - appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_LOCAL_SOURCE || - appConfigProvider.installationSource == Source.IS_INSTALLED_FROM_PLAY_PACKAGE_INSTALLER || - appConfigProvider.installationSource == Source.UNKNOWN - )) - ) ...[ + if (!(Platform.isAndroid || Platform.isIOS) || (Platform.isAndroid && (appConfigProvider.installationSource == InstallationAppReferrer.androidManually ))) ...[ SectionLabel(label: AppLocalizations.of(context)!.application), CustomListTile( icon: Icons.system_update_rounded, diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index cf249ab..28ea475 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -13,7 +13,6 @@ import sentry_flutter import shared_preferences_foundation import sqflite import sqlite3_flutter_libs -import store_checker import url_launcher_macos import window_manager @@ -26,7 +25,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) - StoreCheckerPlugin.register(with: registry.registrar(forPlugin: "StoreCheckerPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 235ec9f..e7c67eb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -373,6 +373,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.2.0" + install_referrer: + dependency: "direct main" + description: + name: install_referrer + sha256: "901c56d24ee3c3010dfd0bbebf305ed6b4b0f3fe969192081c167590a64cd78b" + url: "https://pub.dev" + source: hosted + version: "1.2.1" intl: dependency: "direct main" description: @@ -730,14 +738,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.11.1" - store_checker: - dependency: "direct main" - description: - name: store_checker - sha256: "9e5841e4f922cc7f0283323ff3c78fd31ace14c22e988525d33355c35d7c815a" - url: "https://pub.dev" - source: hosted - version: "1.6.0" stream_channel: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 4d754b2..3378718 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -51,7 +51,6 @@ dependencies: fl_chart: ^0.69.0 flutter_svg: ^2.0.9 percent_indicator: ^4.2.3 - store_checker: ^1.4.0 flutter_markdown: ^0.7.1 markdown: ^7.1.1 html: ^0.15.4 @@ -71,6 +70,7 @@ dependencies: url_launcher: ^6.2.4 shared_preferences: ^2.2.2 window_manager: ^0.4.2 + install_referrer: ^1.2.1 dev_dependencies: flutter_test: From 715ca0ab3fbfb2d0434af02621a76bb2f998ffc8 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 8 Sep 2024 19:30:50 +0200 Subject: [PATCH 189/236] Updated readme --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index dac7569..d46c921 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,15 @@ This is an unofficial application. The AdGuard Home team and the development of ## Recommended configuration and lists On [this repository](https://github.com/juanico10/Pihole_list) you can find a recommended configuration for AdGuard Home and some lists. Thanks to [juanico10](https://github.com/juanico10). +## Donations +If you like the project and you want to contribute with the development, you can [become a sponsor on GitHub](https://github.com/sponsors/JGeek00), or you can donate using PayPal. + + + ## Generate production build
      • From f7c3ba03746295e00ff3b592f6ab3f977dbcec5f Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 18:13:26 +0200 Subject: [PATCH 190/236] Fixed most of the warnings --- lib/functions/snackbar.dart | 2 +- lib/models/filtering.dart | 2 +- lib/models/filtering_status.dart | 2 +- lib/models/logs.dart | 2 +- lib/providers/app_config_provider.dart | 2 +- lib/screens/clients/added_list.dart | 8 ++++---- .../clients/client/client_placeholder.dart | 4 ++-- .../clients/client/remove_client_modal.dart | 4 ++-- .../clients/client/safe_search_modal.dart | 4 ++-- lib/screens/clients/client/services_modal.dart | 4 ++-- lib/screens/clients/fab.dart | 4 ++-- lib/screens/clients/search_clients.dart | 10 +++++----- lib/screens/connect/fab.dart | 2 +- lib/screens/filters/add_button.dart | 16 ++++++++-------- lib/screens/filters/custom_rules_list.dart | 4 ++-- .../filters/details/list_details_screen.dart | 16 ++++++++++------ lib/screens/filters/filters.dart | 18 +++++++++--------- lib/screens/filters/filters_list.dart | 8 ++++---- lib/screens/filters/filters_triple_column.dart | 2 +- lib/screens/filters/list_options_menu.dart | 4 ++-- .../modals/blocked_services_screen.dart | 4 ++-- .../modals/remove_custom_rule_modal.dart | 4 ++-- .../modals/update_interval_lists_modal.dart | 4 ++-- .../selection/delete_selection_modal.dart | 4 ++-- .../enable_disable_selection_modal.dart | 4 ++-- .../filters/selection/selection_lists.dart | 7 +++---- .../filters/selection/selection_screen.dart | 4 ++-- lib/screens/home/combined_chart.dart | 5 ++--- lib/screens/home/fab.dart | 2 +- lib/screens/home/home.dart | 2 +- .../management_modal/management_modal.dart | 2 +- .../home/management_modal/small_switch.dart | 4 ++-- .../home/top_items/top_items_lists.dart | 10 +++++----- .../home/top_items/top_items_screen.dart | 2 +- .../logs/details/log_details_screen.dart | 5 ++--- lib/screens/logs/log_tile.dart | 18 +++++++++--------- lib/screens/logs/logs_list.dart | 4 ++-- .../settings/access_settings/clients_list.dart | 14 +++++++------- lib/screens/settings/advanced_setings.dart | 4 ++-- .../settings/customization/color_item.dart | 2 +- .../customization/theme_mode_button.dart | 12 ++++++------ .../dhcp/delete_static_lease_modal.dart | 4 ++-- lib/screens/settings/dhcp/dhcp.dart | 12 ++++++------ lib/screens/settings/dhcp/dhcp_leases.dart | 12 ++++++------ lib/screens/settings/dns/bootstrap_dns.dart | 8 ++++---- lib/screens/settings/dns/cache_config.dart | 10 +++++----- lib/screens/settings/dns/dns.dart | 4 ++-- .../settings/dns/dns_server_settings.dart | 6 +++--- lib/screens/settings/dns/fallback_dns.dart | 6 +++--- .../settings/dns/private_reverse_servers.dart | 6 +++--- lib/screens/settings/dns/upstream_dns.dart | 6 +++--- .../dns_rewrites/delete_dns_rewrite.dart | 4 ++-- .../settings/dns_rewrites/dns_rewrites.dart | 14 +++++++------- .../encryption/config_error_modal.dart | 4 ++-- .../settings/encryption/custom_text_field.dart | 4 ++-- .../settings/encryption/encryption.dart | 8 ++++---- .../settings/encryption/error_message.dart | 4 ++-- .../settings/encryption/master_switch.dart | 4 ++-- lib/screens/settings/encryption/status.dart | 4 ++-- .../general_settings/general_settings.dart | 4 ++-- .../top_items_list_settings.dart | 4 ++-- .../settings/logs_settings/logs_settings.dart | 12 ++++++------ lib/screens/settings/safe_search_settings.dart | 4 ++-- .../statistics_settings.dart | 4 ++-- .../update_server/autoupdate_unavailable.dart | 2 +- lib/screens/settings/update_server/update.dart | 6 +++--- .../settings/update_server/update_screen.dart | 6 +++--- lib/widgets/add_server/add_server_modal.dart | 8 ++++---- lib/widgets/add_server/form_text_field.dart | 4 ++-- lib/widgets/combined_line_chart.dart | 10 +++++----- lib/widgets/confirm_action_modal.dart | 4 ++-- lib/widgets/custom_checkbox_list_tile.dart | 4 ++-- lib/widgets/custom_list_tile.dart | 4 ++-- lib/widgets/custom_radio.dart | 4 ++-- lib/widgets/custom_radio_list_tile.dart | 4 ++-- lib/widgets/custom_radio_toggle.dart | 4 ++-- lib/widgets/line_chart.dart | 10 +++++----- lib/widgets/menu_bar.dart | 4 ++-- lib/widgets/option_box.dart | 4 ++-- lib/widgets/process_dialog.dart | 4 ++-- lib/widgets/section_label.dart | 4 ++-- lib/widgets/servers_list/delete_modal.dart | 8 ++++---- .../servers_list/server_tile_functions.dart | 11 ++++++----- lib/widgets/servers_list/servers_list.dart | 4 ++-- .../servers_list/servers_list_item.dart | 2 +- lib/widgets/update_modal.dart | 4 ++-- lib/widgets/version_warning_modal.dart | 4 ++-- 87 files changed, 252 insertions(+), 250 deletions(-) diff --git a/lib/functions/snackbar.dart b/lib/functions/snackbar.dart index b332fcd..d0d7bc0 100644 --- a/lib/functions/snackbar.dart +++ b/lib/functions/snackbar.dart @@ -5,7 +5,7 @@ import 'package:flutter/material.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/config/globals.dart'; -void showSnacbkar({ +void showSnackbar({ required AppConfigProvider appConfigProvider, required String label, required Color color, diff --git a/lib/models/filtering.dart b/lib/models/filtering.dart index 7b521d2..5e43bf4 100644 --- a/lib/models/filtering.dart +++ b/lib/models/filtering.dart @@ -63,7 +63,7 @@ class Filter { Map toJson() => { "url": url, "name": name, - "last_updated": lastUpdated != null ? lastUpdated!.toIso8601String() : null, + "last_updated": lastUpdated?.toIso8601String(), "id": id, "rules_count": rulesCount, "enabled": enabled, diff --git a/lib/models/filtering_status.dart b/lib/models/filtering_status.dart index bfd219d..83908c3 100644 --- a/lib/models/filtering_status.dart +++ b/lib/models/filtering_status.dart @@ -65,7 +65,7 @@ class Filter { Map toJson() => { "url": url, "name": name, - "last_updated": lastUpdated != null ? lastUpdated!.toIso8601String() : null, + "last_updated": lastUpdated?.toIso8601String(), "id": id, "rules_count": rulesCount, "enabled": enabled, diff --git a/lib/models/logs.dart b/lib/models/logs.dart index 9ba3738..b4991be 100644 --- a/lib/models/logs.dart +++ b/lib/models/logs.dart @@ -30,7 +30,7 @@ class LogsData { Map toJson() => { "data": List.from(data.map((x) => x.toJson())), - "oldest": oldest != null ? oldest!.toIso8601String() : null, + "oldest": oldest?.toIso8601String(), }; } diff --git a/lib/providers/app_config_provider.dart b/lib/providers/app_config_provider.dart index afdc467..3b843b9 100644 --- a/lib/providers/app_config_provider.dart +++ b/lib/providers/app_config_provider.dart @@ -33,7 +33,7 @@ class AppConfigProvider with ChangeNotifier { int _selectedTheme = 0; bool _useDynamicColor = true; int _staticColor = 0; - bool _useThemeColorForStatus = false; + final bool _useThemeColorForStatus = false; int _selectedClientsTab = 0; int _selectedFiltersTab = 0; diff --git a/lib/screens/clients/added_list.dart b/lib/screens/clients/added_list.dart index 0bb668b..2cceaab 100644 --- a/lib/screens/clients/added_list.dart +++ b/lib/screens/clients/added_list.dart @@ -82,14 +82,14 @@ class _AddedListState extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientUpdatedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientNotUpdated, color: Colors.red @@ -109,14 +109,14 @@ class _AddedListState extends State { if (widget.splitView == true) { Navigator.of(clientsNavigatorKey.currentContext!).popUntil((route) => false); } - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientDeletedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientNotDeleted, color: Colors.red diff --git a/lib/screens/clients/client/client_placeholder.dart b/lib/screens/clients/client/client_placeholder.dart index cf4f485..0e8f018 100644 --- a/lib/screens/clients/client/client_placeholder.dart +++ b/lib/screens/clients/client/client_placeholder.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; class ClientPlaceholder extends StatelessWidget { - const ClientPlaceholder({Key? key}) : super(key: key); + const ClientPlaceholder({super.key}); @override Widget build(BuildContext context) { - return Center( + return const Center( child: Text("Select a client"), ); } diff --git a/lib/screens/clients/client/remove_client_modal.dart b/lib/screens/clients/client/remove_client_modal.dart index 4427d22..b531540 100644 --- a/lib/screens/clients/client/remove_client_modal.dart +++ b/lib/screens/clients/client/remove_client_modal.dart @@ -5,9 +5,9 @@ class RemoveClientModal extends StatelessWidget { final void Function() onConfirm; const RemoveClientModal({ - Key? key, + super.key, required this.onConfirm - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/clients/client/safe_search_modal.dart b/lib/screens/clients/client/safe_search_modal.dart index 1be694c..1d539be 100644 --- a/lib/screens/clients/client/safe_search_modal.dart +++ b/lib/screens/clients/client/safe_search_modal.dart @@ -11,11 +11,11 @@ class SafeSearchModal extends StatefulWidget { final void Function(SafeSearch) onConfirm; const SafeSearchModal({ - Key? key, + super.key, required this.safeSearch, required this.disabled, required this.onConfirm - }) : super(key: key); + }); @override State createState() => _SafeSearchModalState(); diff --git a/lib/screens/clients/client/services_modal.dart b/lib/screens/clients/client/services_modal.dart index 1a98275..b8f69dc 100644 --- a/lib/screens/clients/client/services_modal.dart +++ b/lib/screens/clients/client/services_modal.dart @@ -10,10 +10,10 @@ class ServicesModal extends StatefulWidget { final void Function(List) onConfirm; const ServicesModal({ - Key? key, + super.key, required this.blockedServices, required this.onConfirm, - }) : super(key: key); + }); @override State createState() => _ServicesModalStateWidget(); diff --git a/lib/screens/clients/fab.dart b/lib/screens/clients/fab.dart index a46b89a..383a2f3 100644 --- a/lib/screens/clients/fab.dart +++ b/lib/screens/clients/fab.dart @@ -33,14 +33,14 @@ class ClientsFab extends StatelessWidget { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientAddedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientNotAdded, color: Colors.red diff --git a/lib/screens/clients/search_clients.dart b/lib/screens/clients/search_clients.dart index e5b1451..2654c24 100644 --- a/lib/screens/clients/search_clients.dart +++ b/lib/screens/clients/search_clients.dart @@ -95,14 +95,14 @@ class _SearchClientsState extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientDeletedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientNotDeleted, color: Colors.red @@ -119,14 +119,14 @@ class _SearchClientsState extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientUpdatedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientNotUpdated, color: Colors.red @@ -205,7 +205,7 @@ class _SearchClientsState extends State { height: 1, decoration: BoxDecoration( color: showDivider == true - ? Theme.of(context).colorScheme.surfaceVariant + ? Theme.of(context).colorScheme.surfaceContainerHighest : Colors.transparent ), ), diff --git a/lib/screens/connect/fab.dart b/lib/screens/connect/fab.dart index 05ed1a2..f826485 100644 --- a/lib/screens/connect/fab.dart +++ b/lib/screens/connect/fab.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:adguard_home_manager/widgets/add_server/add_server_functions.dart'; class FabConnect extends StatelessWidget { - const FabConnect({Key? key}) : super(key: key); + const FabConnect({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/screens/filters/add_button.dart b/lib/screens/filters/add_button.dart index be9f0f4..2eca7d4 100644 --- a/lib/screens/filters/add_button.dart +++ b/lib/screens/filters/add_button.dart @@ -42,14 +42,14 @@ class AddFiltersButton extends StatelessWidget { if (!context.mounted) return; if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.ruleAddedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.ruleNotAdded, color: Colors.red @@ -67,14 +67,14 @@ class AddFiltersButton extends StatelessWidget { if (!context.mounted) return; if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.customRulesUpdatedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.customRulesNotUpdated, color: Colors.red @@ -146,28 +146,28 @@ class AddFiltersButton extends StatelessWidget { if (!context.mounted) return; if (result['success'] == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: "${AppLocalizations.of(context)!.listAdded} ${result['data']}.", color: Colors.green ); } else if (result['success'] == false && result['error'] == 'invalid_url') { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.listUrlInvalid, color: Colors.red ); } else if (result['success'] == false && result['error'] == 'url_exists') { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.listAlreadyAdded, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.listNotAdded, color: Colors.red diff --git a/lib/screens/filters/custom_rules_list.dart b/lib/screens/filters/custom_rules_list.dart index 25a1d4c..304972f 100644 --- a/lib/screens/filters/custom_rules_list.dart +++ b/lib/screens/filters/custom_rules_list.dart @@ -163,7 +163,7 @@ class _CustomRulesListState extends State { onPressed: () async { final result = await filteringProvider.fetchFilters(); if (result == false) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.errorLoadFilters, color: Colors.red @@ -203,7 +203,7 @@ class _CustomRulesListState extends State { onRefresh: () async { final result = await filteringProvider.fetchFilters(); if (result == false) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.errorLoadFilters, color: Colors.red diff --git a/lib/screens/filters/details/list_details_screen.dart b/lib/screens/filters/details/list_details_screen.dart index 95da744..188854c 100644 --- a/lib/screens/filters/details/list_details_screen.dart +++ b/lib/screens/filters/details/list_details_screen.dart @@ -94,14 +94,14 @@ class _ListDetailsScreenState extends State { ); processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.listDataUpdated, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.listDataNotUpdated, color: Colors.red @@ -175,6 +175,7 @@ class _ListDetailsScreenState extends State { _Content( isDialog: widget.dialog, list: list, + type: widget.type, ) ], ), @@ -216,6 +217,7 @@ class _ListDetailsScreenState extends State { _Content( isDialog: widget.dialog, list: list, + type: widget.type, ) ], ), @@ -261,10 +263,12 @@ class _ListDetailsScreenState extends State { class _Content extends StatelessWidget { final Filter list; final bool isDialog; + final String type; const _Content({ required this.list, - required this.isDialog + required this.isDialog, + required this.type, }); @override @@ -339,7 +343,7 @@ class _Content extends StatelessWidget { CustomListTile( icon: Icons.shield_rounded, title: AppLocalizations.of(context)!.listType, - subtitle: isDialog == 'whitelist' + subtitle: type == 'whitelist' ? AppLocalizations.of(context)!.whitelist : AppLocalizations.of(context)!.blacklist, padding: isDialog == true @@ -431,7 +435,7 @@ class _Actions extends StatelessWidget { ); processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.listDeleted, color: Colors.green @@ -439,7 +443,7 @@ class _Actions extends StatelessWidget { Navigator.pop(context); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.listNotDeleted, color: Colors.red diff --git a/lib/screens/filters/filters.dart b/lib/screens/filters/filters.dart index 2ab49a3..ab624e0 100644 --- a/lib/screens/filters/filters.dart +++ b/lib/screens/filters/filters.dart @@ -24,7 +24,7 @@ import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/models/clients.dart'; class Filters extends StatefulWidget { - const Filters({Key? key}) : super(key: key); + const Filters({super.key}); @override State createState() => _FiltersState(); @@ -57,14 +57,14 @@ class _FiltersState extends State { if (!mounted) return; processModal.close(); if (result['success'] == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: "${result['data']['updated']} ${AppLocalizations.of(context)!.listsUpdated}", color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.listsNotUpdated, color: Colors.red @@ -109,14 +109,14 @@ class _FiltersState extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.filteringStatusUpdated, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.filteringStatusNotUpdated, color: Colors.red @@ -133,14 +133,14 @@ class _FiltersState extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.updateFrequencyChanged, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.updateFrequencyNotChanged, color: Colors.red @@ -163,14 +163,14 @@ class _FiltersState extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.ruleRemovedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.ruleNotRemoved, color: Colors.red diff --git a/lib/screens/filters/filters_list.dart b/lib/screens/filters/filters_list.dart index f4cca03..b9d4617 100644 --- a/lib/screens/filters/filters_list.dart +++ b/lib/screens/filters/filters_list.dart @@ -27,13 +27,13 @@ class FiltersList extends StatefulWidget { final void Function(Filter, String) onOpenDetailsScreen; const FiltersList({ - Key? key, + super.key, required this.loadStatus, required this.scrollController, required this.data, required this.type, required this.onOpenDetailsScreen - }) : super(key: key); + }); @override State createState() => _FiltersListState(); @@ -133,7 +133,7 @@ class _FiltersListState extends State { onPressed: () async { final result = await filteringProvider.fetchFilters(); if (result == false && mounted) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.errorLoadFilters, color: Colors.red @@ -173,7 +173,7 @@ class _FiltersListState extends State { onRefresh: () async { final result = await filteringProvider.fetchFilters(); if (result == false && mounted) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.errorLoadFilters, color: Colors.red diff --git a/lib/screens/filters/filters_triple_column.dart b/lib/screens/filters/filters_triple_column.dart index 686ee15..a659fa8 100644 --- a/lib/screens/filters/filters_triple_column.dart +++ b/lib/screens/filters/filters_triple_column.dart @@ -84,7 +84,7 @@ class FiltersTripleColumn extends StatelessWidget { onPressed: () async { final result = await filteringProvider.fetchFilters(); if (result == false && context.mounted) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.errorLoadFilters, color: Colors.red diff --git a/lib/screens/filters/list_options_menu.dart b/lib/screens/filters/list_options_menu.dart index c35d080..4d2f57f 100644 --- a/lib/screens/filters/list_options_menu.dart +++ b/lib/screens/filters/list_options_menu.dart @@ -59,14 +59,14 @@ class ListOptionsMenu extends StatelessWidget { if (!context.mounted) return; if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.listDataUpdated, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.listDataNotUpdated, color: Colors.red diff --git a/lib/screens/filters/modals/blocked_services_screen.dart b/lib/screens/filters/modals/blocked_services_screen.dart index c62950d..ac54c61 100644 --- a/lib/screens/filters/modals/blocked_services_screen.dart +++ b/lib/screens/filters/modals/blocked_services_screen.dart @@ -68,14 +68,14 @@ class _BlockedServicesScreenStateWidget extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.blockedServicesUpdated, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.blockedServicesNotUpdated, color: Colors.red diff --git a/lib/screens/filters/modals/remove_custom_rule_modal.dart b/lib/screens/filters/modals/remove_custom_rule_modal.dart index f1c4352..ec281f7 100644 --- a/lib/screens/filters/modals/remove_custom_rule_modal.dart +++ b/lib/screens/filters/modals/remove_custom_rule_modal.dart @@ -5,9 +5,9 @@ class RemoveCustomRule extends StatelessWidget { final void Function() onConfirm; const RemoveCustomRule({ - Key? key, + super.key, required this.onConfirm - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/filters/modals/update_interval_lists_modal.dart b/lib/screens/filters/modals/update_interval_lists_modal.dart index f6504a5..ce7058b 100644 --- a/lib/screens/filters/modals/update_interval_lists_modal.dart +++ b/lib/screens/filters/modals/update_interval_lists_modal.dart @@ -235,10 +235,10 @@ class _Content extends StatelessWidget { } : null, style: ButtonStyle( - overlayColor: MaterialStateProperty.all( + overlayColor: WidgetStateProperty.all( Theme.of(context).colorScheme.primary.withOpacity(0.1) ), - foregroundColor: MaterialStateProperty.all( + foregroundColor: WidgetStateProperty.all( selectedOption != null ? Theme.of(context).colorScheme.primary : Colors.grey, diff --git a/lib/screens/filters/selection/delete_selection_modal.dart b/lib/screens/filters/selection/delete_selection_modal.dart index 944d515..ecf77e5 100644 --- a/lib/screens/filters/selection/delete_selection_modal.dart +++ b/lib/screens/filters/selection/delete_selection_modal.dart @@ -9,11 +9,11 @@ class DeleteSelectionModal extends StatefulWidget { final void Function() onDelete; const DeleteSelectionModal({ - Key? key, + super.key, required this.selectedBlacklists, required this.selectedWhitelists, required this.onDelete, - }) : super(key: key); + }); @override State createState() => _DeleteSelectionModalState(); diff --git a/lib/screens/filters/selection/enable_disable_selection_modal.dart b/lib/screens/filters/selection/enable_disable_selection_modal.dart index fdb809c..d14fe7c 100644 --- a/lib/screens/filters/selection/enable_disable_selection_modal.dart +++ b/lib/screens/filters/selection/enable_disable_selection_modal.dart @@ -9,11 +9,11 @@ class EnableDisableSelectionModal extends StatefulWidget { final void Function() onDelete; const EnableDisableSelectionModal({ - Key? key, + super.key, required this.selectedBlacklists, required this.selectedWhitelists, required this.onDelete, - }) : super(key: key); + }); @override State createState() => _EnableDisableSelectionModalState(); diff --git a/lib/screens/filters/selection/selection_lists.dart b/lib/screens/filters/selection/selection_lists.dart index b423f77..a7988e9 100644 --- a/lib/screens/filters/selection/selection_lists.dart +++ b/lib/screens/filters/selection/selection_lists.dart @@ -13,13 +13,13 @@ class SelectionList extends StatelessWidget { final void Function() unselectAll; const SelectionList({ - Key? key, + super.key, required this.lists, required this.selectedLists, required this.onSelect, required this.selectAll, required this.unselectAll, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -231,11 +231,10 @@ class _CheckboxTile extends StatelessWidget { final bool isSelected; const _CheckboxTile({ - Key? key, required this.list, required this.onSelect, required this.isSelected, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/filters/selection/selection_screen.dart b/lib/screens/filters/selection/selection_screen.dart index 1475454..5907012 100644 --- a/lib/screens/filters/selection/selection_screen.dart +++ b/lib/screens/filters/selection/selection_screen.dart @@ -82,8 +82,8 @@ class _SelectionScreenState extends State with TickerProviderSt blacklists: _selectedBlacklists, whitelists: _selectedWhitelists ); - if (!mounted) return; processModal.close(); + if (!context.mounted) return; showDialog( context: context, builder: (ctx) => SelectionResultModal( @@ -113,8 +113,8 @@ class _SelectionScreenState extends State with TickerProviderSt blacklists: _selectedBlacklists, whitelists: _selectedWhitelists ); - if (!mounted) return; processModal.close(); + if (!context.mounted) return; showDialog( context: context, builder: (ctx) => SelectionResultModal( diff --git a/lib/screens/home/combined_chart.dart b/lib/screens/home/combined_chart.dart index 89519db..f951cea 100644 --- a/lib/screens/home/combined_chart.dart +++ b/lib/screens/home/combined_chart.dart @@ -37,7 +37,7 @@ class CombinedChartItem { } class CombinedHomeChart extends StatelessWidget { - const CombinedHomeChart({Key? key}) : super(key: key); + const CombinedHomeChart({super.key}); List? removeZero(List list) { final removed = list.where((i) => i > 0); @@ -266,12 +266,11 @@ class _Legend extends StatelessWidget { final String? secondaryValue; const _Legend({ - Key? key, required this.label, required this.color, required this.primaryValue, this.secondaryValue - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/home/fab.dart b/lib/screens/home/fab.dart index bd77be7..7e465be 100644 --- a/lib/screens/home/fab.dart +++ b/lib/screens/home/fab.dart @@ -7,7 +7,7 @@ import 'package:adguard_home_manager/providers/status_provider.dart'; import 'package:adguard_home_manager/constants/enums.dart'; class HomeFab extends StatelessWidget { - const HomeFab({Key? key}) : super(key: key); + const HomeFab({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/screens/home/home.dart b/lib/screens/home/home.dart index b74e959..7a60115 100644 --- a/lib/screens/home/home.dart +++ b/lib/screens/home/home.dart @@ -93,7 +93,7 @@ class _HomeState extends State { onRefresh: () async { final result = await statusProvider.getServerStatus(); if (mounted && result == false) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.serverStatusNotRefreshed, color: Colors.red diff --git a/lib/screens/home/management_modal/management_modal.dart b/lib/screens/home/management_modal/management_modal.dart index b18586b..5a931ad 100644 --- a/lib/screens/home/management_modal/management_modal.dart +++ b/lib/screens/home/management_modal/management_modal.dart @@ -82,7 +82,7 @@ class _ManagementModalState extends State with SingleTickerProv time: time ); if (mounted && result == false) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.invalidUsernamePassword, color: Colors.red diff --git a/lib/screens/home/management_modal/small_switch.dart b/lib/screens/home/management_modal/small_switch.dart index 4e34d68..192360c 100644 --- a/lib/screens/home/management_modal/small_switch.dart +++ b/lib/screens/home/management_modal/small_switch.dart @@ -8,13 +8,13 @@ class SmallSwitch extends StatelessWidget { final bool disabled; const SmallSwitch({ - Key? key, + super.key, required this.label, required this.icon, required this.value, required this.onChange, required this.disabled, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/home/top_items/top_items_lists.dart b/lib/screens/home/top_items/top_items_lists.dart index 7c24bd3..3ca6e24 100644 --- a/lib/screens/home/top_items/top_items_lists.dart +++ b/lib/screens/home/top_items/top_items_lists.dart @@ -83,14 +83,14 @@ class TopItemsLists extends StatelessWidget { if (!context.mounted) return; if (rules == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.userFilteringRulesUpdated, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.userFilteringRulesNotUpdated, color: Colors.red @@ -121,21 +121,21 @@ class TopItemsLists extends StatelessWidget { processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientAddedSuccessfully, color: Colors.green ); } else if (result.successful == false && result.content == 'client_another_list') { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientAnotherList, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: newList == AccessSettingsList.allowed || newList == AccessSettingsList.disallowed ? AppLocalizations.of(context)!.clientNotRemoved diff --git a/lib/screens/home/top_items/top_items_screen.dart b/lib/screens/home/top_items/top_items_screen.dart index 1070953..94675ad 100644 --- a/lib/screens/home/top_items/top_items_screen.dart +++ b/lib/screens/home/top_items/top_items_screen.dart @@ -348,7 +348,7 @@ class _Content extends StatelessWidget { percent: screenData[index].values.toList()[0]/total, barRadius: const Radius.circular(5), progressColor: Theme.of(context).colorScheme.primary, - backgroundColor: Theme.of(context).colorScheme.surfaceVariant, + backgroundColor: Theme.of(context).colorScheme.surfaceContainerHighest, ), ), const SizedBox(width: 10), diff --git a/lib/screens/logs/details/log_details_screen.dart b/lib/screens/logs/details/log_details_screen.dart index d0a80e9..5ffe18e 100644 --- a/lib/screens/logs/details/log_details_screen.dart +++ b/lib/screens/logs/details/log_details_screen.dart @@ -52,14 +52,14 @@ class LogDetailsScreen extends StatelessWidget { processModal.close(); if (rules == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.userFilteringRulesUpdated, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.userFilteringRulesNotUpdated, color: Colors.red @@ -139,7 +139,6 @@ class LogDetailsScreen extends StatelessWidget { ); } else { - print(twoColumns); return Scaffold( body: NestedScrollView( headerSliverBuilder: (context, innerBoxIsScrolled) => [ diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index 2a6a720..bed2e40 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -108,14 +108,14 @@ class LogTile extends StatelessWidget { if (!context.mounted) return; if (rules == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.userFilteringRulesUpdated, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.userFilteringRulesNotUpdated, color: Colors.red @@ -134,14 +134,14 @@ class LogTile extends StatelessWidget { if (!context.mounted) return; if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientAddedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientNotAdded, color: Colors.red @@ -163,7 +163,7 @@ class LogTile extends StatelessWidget { if (!context.mounted) return; if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: isDomainBlocked(log.reason) == true ? AppLocalizations.of(context)!.domainUnblockedThisClient(log.question.name!) @@ -172,7 +172,7 @@ class LogTile extends StatelessWidget { ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.ruleNotAdded, color: Colors.red @@ -199,21 +199,21 @@ class LogTile extends StatelessWidget { if (!context.mounted) return; if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientAddedSuccessfully, color: Colors.green ); } else if (result.successful == false && result.content == 'client_another_list') { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientAnotherList, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.changesNotSaved, color: Colors.red diff --git a/lib/screens/logs/logs_list.dart b/lib/screens/logs/logs_list.dart index e50847a..4281af0 100644 --- a/lib/screens/logs/logs_list.dart +++ b/lib/screens/logs/logs_list.dart @@ -42,7 +42,7 @@ class _LogsListWidgetState extends State { final result = await statusProvider.getFilteringRules(); if (mounted && result == false) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.couldntGetFilteringStatus, color: Colors.red @@ -56,7 +56,7 @@ class _LogsListWidgetState extends State { final result = await clientsProvider.fetchClients(); if (mounted && result == false) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.couldntGetFilteringStatus, color: Colors.red diff --git a/lib/screens/settings/access_settings/clients_list.dart b/lib/screens/settings/access_settings/clients_list.dart index 0b83a4d..bf2c4d4 100644 --- a/lib/screens/settings/access_settings/clients_list.dart +++ b/lib/screens/settings/access_settings/clients_list.dart @@ -71,7 +71,7 @@ class _ClientsListState extends State { Future refetchClients() async { final result = await clientsProvider.fetchClients(); if (result == false && mounted) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientsNotLoaded, color: Colors.red @@ -104,21 +104,21 @@ class _ClientsListState extends State { processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientRemovedSuccessfully, color: Colors.green ); } else if (result.successful == false && result.content == 'client_another_list') { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientAnotherList, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: type == AccessSettingsList.allowed || type == AccessSettingsList.disallowed ? AppLocalizations.of(context)!.clientNotRemoved @@ -137,21 +137,21 @@ class _ClientsListState extends State { processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientAddedSuccessfully, color: Colors.green ); } else if (result.successful == false && result.content == 'client_another_list') { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.clientAnotherList, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: type == AccessSettingsList.allowed || type == AccessSettingsList.disallowed ? AppLocalizations.of(context)!.clientNotRemoved diff --git a/lib/screens/settings/advanced_setings.dart b/lib/screens/settings/advanced_setings.dart index 9483cd8..6026082 100644 --- a/lib/screens/settings/advanced_setings.dart +++ b/lib/screens/settings/advanced_setings.dart @@ -26,14 +26,14 @@ class AdvancedSettings extends StatelessWidget { final result = await function(newStatus); if (!context.mounted) return; if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.settingsUpdatedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.cannotUpdateSettings, color: Colors.red diff --git a/lib/screens/settings/customization/color_item.dart b/lib/screens/settings/customization/color_item.dart index d753bf5..00873d0 100644 --- a/lib/screens/settings/customization/color_item.dart +++ b/lib/screens/settings/customization/color_item.dart @@ -31,7 +31,7 @@ class ColorItem extends StatelessWidget { child: InkWell( onTap: () => onChanged(numericValue), borderRadius: BorderRadius.circular(50), - overlayColor: const MaterialStatePropertyAll(Colors.grey), + overlayColor: const WidgetStatePropertyAll(Colors.grey), child: Container( width: 50, height: 50, diff --git a/lib/screens/settings/customization/theme_mode_button.dart b/lib/screens/settings/customization/theme_mode_button.dart index df3f8d1..e48a511 100644 --- a/lib/screens/settings/customization/theme_mode_button.dart +++ b/lib/screens/settings/customization/theme_mode_button.dart @@ -9,14 +9,14 @@ class ThemeModeButton extends StatelessWidget { final bool? disabled; const ThemeModeButton({ - Key? key, + super.key, required this.icon, required this.value, required this.selected, required this.label, required this.onChanged, this.disabled - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -32,19 +32,19 @@ class ThemeModeButton extends StatelessWidget { ? () => onChanged(value) : null, style: ButtonStyle( - elevation: MaterialStateProperty.all(0), - shape: MaterialStateProperty.all( + elevation: WidgetStateProperty.all(0), + shape: WidgetStateProperty.all( RoundedRectangleBorder( borderRadius: BorderRadius.circular(30), ) ), - backgroundColor: MaterialStateProperty.all( + backgroundColor: WidgetStateProperty.all( value == selected ? disabled == null || disabled == false ? Theme.of(context).colorScheme.primary : greyBackgroundColor : disabled == null || disabled == false - ? Theme.of(context).colorScheme.surfaceVariant + ? Theme.of(context).colorScheme.surfaceContainerHighest : greyBackgroundColor, ) ), diff --git a/lib/screens/settings/dhcp/delete_static_lease_modal.dart b/lib/screens/settings/dhcp/delete_static_lease_modal.dart index 77ad241..f797e89 100644 --- a/lib/screens/settings/dhcp/delete_static_lease_modal.dart +++ b/lib/screens/settings/dhcp/delete_static_lease_modal.dart @@ -5,9 +5,9 @@ class DeleteStaticLeaseModal extends StatelessWidget { final void Function() onConfirm; const DeleteStaticLeaseModal({ - Key? key, + super.key, required this.onConfirm - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/settings/dhcp/dhcp.dart b/lib/screens/settings/dhcp/dhcp.dart index f7facd6..449b063 100644 --- a/lib/screens/settings/dhcp/dhcp.dart +++ b/lib/screens/settings/dhcp/dhcp.dart @@ -221,14 +221,14 @@ class _DhcpScreenState extends State { if (!mounted) return; processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.settingsSaved, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.settingsNotSaved, color: Colors.red @@ -245,14 +245,14 @@ class _DhcpScreenState extends State { processModal.close(); if (result.successful == true) { clearAll(); - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.configRestored, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.configNotRestored, color: Colors.red @@ -276,14 +276,14 @@ class _DhcpScreenState extends State { data.dhcpStatus!.leases = []; dhcpProvider.setDhcpData(data); - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.leasesRestored, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.leasesNotRestored, color: Colors.red diff --git a/lib/screens/settings/dhcp/dhcp_leases.dart b/lib/screens/settings/dhcp/dhcp_leases.dart index 9bb1fe3..7b90d13 100644 --- a/lib/screens/settings/dhcp/dhcp_leases.dart +++ b/lib/screens/settings/dhcp/dhcp_leases.dart @@ -43,14 +43,14 @@ class DhcpLeases extends StatelessWidget { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.staticLeaseDeleted, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.staticLeaseNotDeleted, color: Colors.red @@ -67,28 +67,28 @@ class DhcpLeases extends StatelessWidget { processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.staticLeaseCreated, color: Colors.green ); } else if (result.successful == false && result.content == "already_exists") { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.staticLeaseExists, color: Colors.red ); } else if (result.successful == false && result.content == "server_not_configured") { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.serverNotConfigured, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.staticLeaseNotCreated, color: Colors.red diff --git a/lib/screens/settings/dns/bootstrap_dns.dart b/lib/screens/settings/dns/bootstrap_dns.dart index c970f34..833396d 100644 --- a/lib/screens/settings/dns/bootstrap_dns.dart +++ b/lib/screens/settings/dns/bootstrap_dns.dart @@ -80,21 +80,21 @@ class _BootstrapDnsScreenState extends State { processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsConfigSaved, color: Colors.green ); } else if (result.successful == false && result.statusCode == 400) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.someValueNotValid, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsConfigNotSaved, color: Colors.red @@ -197,7 +197,7 @@ class _BootstrapDnsScreenState extends State { ) ], ), - )).toList(), + )), Row( mainAxisAlignment: MainAxisAlignment.center, mainAxisSize: MainAxisSize.min, diff --git a/lib/screens/settings/dns/cache_config.dart b/lib/screens/settings/dns/cache_config.dart index 40a99f8..e2edb4d 100644 --- a/lib/screens/settings/dns/cache_config.dart +++ b/lib/screens/settings/dns/cache_config.dart @@ -86,21 +86,21 @@ class _CacheConfigDnsScreenState extends State { processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsConfigSaved, color: Colors.green ); } else if (result.successful== false && result.statusCode == 400) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.someValueNotValid, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsConfigNotSaved, color: Colors.red @@ -139,14 +139,14 @@ class _CacheConfigDnsScreenState extends State { void clearCache() async { final result = await clearDnsCache(context, serversProvider.selectedServer!); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsCacheCleared, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsCacheNotCleared, color: Colors.red diff --git a/lib/screens/settings/dns/dns.dart b/lib/screens/settings/dns/dns.dart index baba9fa..564fff2 100644 --- a/lib/screens/settings/dns/dns.dart +++ b/lib/screens/settings/dns/dns.dart @@ -66,14 +66,14 @@ class _DnsSettingsState extends State { void clearCache() async { final result = await clearDnsCache(context, serversProvider.selectedServer!); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsCacheCleared, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsCacheNotCleared, color: Colors.red diff --git a/lib/screens/settings/dns/dns_server_settings.dart b/lib/screens/settings/dns/dns_server_settings.dart index a4b7369..fc74d88 100644 --- a/lib/screens/settings/dns/dns_server_settings.dart +++ b/lib/screens/settings/dns/dns_server_settings.dart @@ -183,21 +183,21 @@ class _DnsServerSettingsScreenState extends State { processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsConfigSaved, color: Colors.green ); } else if (result.successful == false && result.statusCode == 400) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.someValueNotValid, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsConfigNotSaved, color: Colors.red diff --git a/lib/screens/settings/dns/fallback_dns.dart b/lib/screens/settings/dns/fallback_dns.dart index 849eb4d..19040ed 100644 --- a/lib/screens/settings/dns/fallback_dns.dart +++ b/lib/screens/settings/dns/fallback_dns.dart @@ -91,21 +91,21 @@ class _FallbackDnsScreenState extends State { if (!context.mounted) return; if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsConfigSaved, color: Colors.green ); } else if (result.successful == false && result.statusCode == 400) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.someValueNotValid, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsConfigNotSaved, color: Colors.red diff --git a/lib/screens/settings/dns/private_reverse_servers.dart b/lib/screens/settings/dns/private_reverse_servers.dart index a9419e9..1ea4cc3 100644 --- a/lib/screens/settings/dns/private_reverse_servers.dart +++ b/lib/screens/settings/dns/private_reverse_servers.dart @@ -112,21 +112,21 @@ class _PrivateReverseDnsServersScreenState extends State { processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsConfigSaved, color: Colors.green ); } else if (result.successful == false && result.statusCode == 400) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.someValueNotValid, color: Colors.red ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsConfigNotSaved, color: Colors.red diff --git a/lib/screens/settings/dns_rewrites/delete_dns_rewrite.dart b/lib/screens/settings/dns_rewrites/delete_dns_rewrite.dart index fb2c705..be6b7b4 100644 --- a/lib/screens/settings/dns_rewrites/delete_dns_rewrite.dart +++ b/lib/screens/settings/dns_rewrites/delete_dns_rewrite.dart @@ -5,9 +5,9 @@ class DeleteDnsRewrite extends StatelessWidget { final void Function() onConfirm; const DeleteDnsRewrite({ - Key? key, + super.key, required this.onConfirm - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/settings/dns_rewrites/dns_rewrites.dart b/lib/screens/settings/dns_rewrites/dns_rewrites.dart index 301c3a1..ad38c44 100644 --- a/lib/screens/settings/dns_rewrites/dns_rewrites.dart +++ b/lib/screens/settings/dns_rewrites/dns_rewrites.dart @@ -67,14 +67,14 @@ class _DnsRewritesScreenState extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsRewriteRuleDeleted, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsRewriteRuleNotDeleted, color: Colors.red @@ -91,14 +91,14 @@ class _DnsRewritesScreenState extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsRewriteRuleAdded, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsRewriteRuleNotAdded, color: Colors.red @@ -115,14 +115,14 @@ class _DnsRewritesScreenState extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsRewriteRuleUpdated, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.dnsRewriteRuleNotUpdated, color: Colors.red @@ -169,7 +169,7 @@ class _DnsRewritesScreenState extends State { onRefresh: () async { final result = await rewriteRulesProvider.fetchRules(); if (result == false) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.rewriteRulesNotLoaded, color: Colors.red diff --git a/lib/screens/settings/encryption/config_error_modal.dart b/lib/screens/settings/encryption/config_error_modal.dart index 1e2cfd0..4fdcec3 100644 --- a/lib/screens/settings/encryption/config_error_modal.dart +++ b/lib/screens/settings/encryption/config_error_modal.dart @@ -5,9 +5,9 @@ class EncryptionErrorModal extends StatelessWidget { final String error; const EncryptionErrorModal({ - Key? key, + super.key, required this.error, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/settings/encryption/custom_text_field.dart b/lib/screens/settings/encryption/custom_text_field.dart index 6a1cac8..1290104 100644 --- a/lib/screens/settings/encryption/custom_text_field.dart +++ b/lib/screens/settings/encryption/custom_text_field.dart @@ -12,7 +12,7 @@ class EncryptionTextField extends StatelessWidget { final String? helperText; const EncryptionTextField({ - Key? key, + super.key, required this.enabled, required this.controller, required this.icon, @@ -22,7 +22,7 @@ class EncryptionTextField extends StatelessWidget { this.keyboardType, this.multiline, this.helperText, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/settings/encryption/encryption.dart b/lib/screens/settings/encryption/encryption.dart index 4e48f6c..764f303 100644 --- a/lib/screens/settings/encryption/encryption.dart +++ b/lib/screens/settings/encryption/encryption.dart @@ -233,14 +233,14 @@ class _EncryptionSettingsState extends State { processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.encryptionConfigSaved, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.encryptionConfigNotSaved, color: Colors.red @@ -282,14 +282,14 @@ class _EncryptionSettingsState extends State { processModal.close(); if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.configurationResetSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.configurationResetError, color: Colors.red diff --git a/lib/screens/settings/encryption/error_message.dart b/lib/screens/settings/encryption/error_message.dart index be132d8..01dc221 100644 --- a/lib/screens/settings/encryption/error_message.dart +++ b/lib/screens/settings/encryption/error_message.dart @@ -5,9 +5,9 @@ class ErrorMessageEncryption extends StatelessWidget { final String errorMessage; const ErrorMessageEncryption({ - Key? key, + super.key, required this.errorMessage, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/settings/encryption/master_switch.dart b/lib/screens/settings/encryption/master_switch.dart index f13c4fa..474c0f9 100644 --- a/lib/screens/settings/encryption/master_switch.dart +++ b/lib/screens/settings/encryption/master_switch.dart @@ -6,10 +6,10 @@ class EncryptionMasterSwitch extends StatelessWidget { final void Function(bool) onChange; const EncryptionMasterSwitch({ - Key? key, + super.key, required this.value, required this.onChange - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/settings/encryption/status.dart b/lib/screens/settings/encryption/status.dart index eb344ae..0c11f5a 100644 --- a/lib/screens/settings/encryption/status.dart +++ b/lib/screens/settings/encryption/status.dart @@ -8,10 +8,10 @@ class Status extends StatelessWidget { final String label; const Status({ - Key? key, + super.key, required this.valid, required this.label - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/screens/settings/general_settings/general_settings.dart b/lib/screens/settings/general_settings/general_settings.dart index 936bd8b..0029752 100644 --- a/lib/screens/settings/general_settings/general_settings.dart +++ b/lib/screens/settings/general_settings/general_settings.dart @@ -49,14 +49,14 @@ class _GeneralSettingsState extends State { }) async { final result = await function(newStatus); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.settingsUpdatedSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.cannotUpdateSettings, color: Colors.red diff --git a/lib/screens/settings/general_settings/top_items_list/top_items_list_settings.dart b/lib/screens/settings/general_settings/top_items_list/top_items_list_settings.dart index 9e9c836..89b1613 100644 --- a/lib/screens/settings/general_settings/top_items_list/top_items_list_settings.dart +++ b/lib/screens/settings/general_settings/top_items_list/top_items_list_settings.dart @@ -43,14 +43,14 @@ class _TopItemsListSettingsState extends State with Ticker final result = await appConfigProvider.setHomeTopItemsOrder(persistHomeTopItemsList); if (!context.mounted) return; if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.settingsSaved, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.settingsNotSaved, color: Colors.red diff --git a/lib/screens/settings/logs_settings/logs_settings.dart b/lib/screens/settings/logs_settings/logs_settings.dart index cd723c7..0d55ce5 100644 --- a/lib/screens/settings/logs_settings/logs_settings.dart +++ b/lib/screens/settings/logs_settings/logs_settings.dart @@ -102,17 +102,17 @@ class _LogsSettingsState extends State { processModal.close(); - if (!mounted) return; + if (!context.mounted) return; if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.logsCleared, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.logsNotCleared, color: Colors.red @@ -135,17 +135,17 @@ class _LogsSettingsState extends State { processModal.close(); - if (!mounted) return; + if (!context.mounted) return; if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.logsConfigUpdated, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.logsConfigNotUpdated, color: Colors.red diff --git a/lib/screens/settings/safe_search_settings.dart b/lib/screens/settings/safe_search_settings.dart index 793a1c2..c9d5eef 100644 --- a/lib/screens/settings/safe_search_settings.dart +++ b/lib/screens/settings/safe_search_settings.dart @@ -90,7 +90,7 @@ class _SafeSearchSettingsScreenState extends State { processModal.close(); if (result == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.settingsUpdatedSuccessfully, color: Colors.green, @@ -98,7 +98,7 @@ class _SafeSearchSettingsScreenState extends State { ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.settingsNotSaved, color: Colors.red, diff --git a/lib/screens/settings/statistics_settings/statistics_settings.dart b/lib/screens/settings/statistics_settings/statistics_settings.dart index 27e4570..67a2989 100644 --- a/lib/screens/settings/statistics_settings/statistics_settings.dart +++ b/lib/screens/settings/statistics_settings/statistics_settings.dart @@ -148,14 +148,14 @@ class _StatisticsSettingsState extends State { if (!context.mounted) return; if (result.successful == true) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.statisticsConfigUpdated, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.statisticsConfigNotUpdated, color: Colors.red diff --git a/lib/screens/settings/update_server/autoupdate_unavailable.dart b/lib/screens/settings/update_server/autoupdate_unavailable.dart index 9846448..1ba4ae7 100644 --- a/lib/screens/settings/update_server/autoupdate_unavailable.dart +++ b/lib/screens/settings/update_server/autoupdate_unavailable.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; class AutoUpdateUnavailableModal extends StatelessWidget { - const AutoUpdateUnavailableModal({Key? key}) : super(key: key); + const AutoUpdateUnavailableModal({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/screens/settings/update_server/update.dart b/lib/screens/settings/update_server/update.dart index d1f8d95..de951b7 100644 --- a/lib/screens/settings/update_server/update.dart +++ b/lib/screens/settings/update_server/update.dart @@ -41,7 +41,7 @@ class UpdateScreen extends StatelessWidget { if (result.successful == true) { serversProvider.recheckPeriodServerUpdated(); - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.requestStartUpdateSuccessful, color: Colors.green, @@ -49,7 +49,7 @@ class UpdateScreen extends StatelessWidget { ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.requestStartUpdateFailed, color: Colors.red, @@ -203,7 +203,7 @@ class UpdateScreen extends StatelessWidget { body: Column( children: [ Container( - color: Theme.of(context).colorScheme.surfaceVariant, + color: Theme.of(context).colorScheme.surfaceContainerHighest, child: SafeArea( child: headerPortrait() ) diff --git a/lib/screens/settings/update_server/update_screen.dart b/lib/screens/settings/update_server/update_screen.dart index 5386ad8..4ddc959 100644 --- a/lib/screens/settings/update_server/update_screen.dart +++ b/lib/screens/settings/update_server/update_screen.dart @@ -88,7 +88,7 @@ class _UpdateScreenState extends State { if (!context.mounted) return; if (result.successful == true) { serversProvider.recheckPeriodServerUpdated(); - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.requestStartUpdateSuccessful, color: Colors.green, @@ -96,7 +96,7 @@ class _UpdateScreenState extends State { ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.requestStartUpdateFailed, color: Colors.red, @@ -220,7 +220,7 @@ class _Header extends SliverPersistentHeaderDelegate { return LayoutBuilder( builder: (context, constraints) => Container( decoration: BoxDecoration( - color: Theme.of(context).colorScheme.surfaceVariant, + color: Theme.of(context).colorScheme.surfaceContainerHighest, ), child: Align( alignment: Alignment.topLeft, diff --git a/lib/widgets/add_server/add_server_modal.dart b/lib/widgets/add_server/add_server_modal.dart index e6888da..ec00ff6 100644 --- a/lib/widgets/add_server/add_server_modal.dart +++ b/lib/widgets/add_server/add_server_modal.dart @@ -157,7 +157,7 @@ class _AddServerModalState extends State { if (result != AuthStatus.success) { cancelConnecting(); if (mounted) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: getErrorMessage(result), color: Colors.red @@ -206,7 +206,7 @@ class _AddServerModalState extends State { if (serverCreated != null) { if (mounted) setState(() => isConnecting = false); if (mounted) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.connectionNotCreated, color: Colors.red @@ -256,7 +256,7 @@ class _AddServerModalState extends State { if (result != AuthStatus.success) { cancelConnecting(); if (mounted) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: getErrorMessage(result), color: Colors.red @@ -306,7 +306,7 @@ class _AddServerModalState extends State { ) ); if (mounted) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.connectionNotCreated, color: Colors.red diff --git a/lib/widgets/add_server/form_text_field.dart b/lib/widgets/add_server/form_text_field.dart index 0fb6f94..72d410b 100644 --- a/lib/widgets/add_server/form_text_field.dart +++ b/lib/widgets/add_server/form_text_field.dart @@ -13,7 +13,7 @@ class FormTextField extends StatelessWidget { final bool isConnecting; const FormTextField({ - Key? key, + super.key, required this.label, required this.controller, this.error, @@ -24,7 +24,7 @@ class FormTextField extends StatelessWidget { this.hintText, this.helperText, required this.isConnecting - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/combined_line_chart.dart b/lib/widgets/combined_line_chart.dart index 6f3a87f..9aceb67 100644 --- a/lib/widgets/combined_line_chart.dart +++ b/lib/widgets/combined_line_chart.dart @@ -15,12 +15,12 @@ class CustomCombinedLineChart extends StatelessWidget { final bool daysInterval; const CustomCombinedLineChart({ - Key? key, + super.key, required this.inputData, required this.context, required this.dates, required this.daysInterval - }) : super(key: key); + }); LineChartData mainData(Map data, ThemeMode selectedTheme) { String chartDate(DateTime date) { @@ -55,11 +55,11 @@ class CustomCombinedLineChart extends StatelessWidget { } return LineChartData( - gridData: FlGridData( + gridData: const FlGridData( show: false, drawVerticalLine: false, ), - titlesData: FlTitlesData( + titlesData: const FlTitlesData( show: false, ), borderData: FlBorderData( @@ -73,7 +73,7 @@ class CustomCombinedLineChart extends StatelessWidget { barWidth: 2, isStrokeCapRound: true, preventCurveOverShooting: true, - dotData: FlDotData( + dotData: const FlDotData( show: false, ), belowBarData: BarAreaData( diff --git a/lib/widgets/confirm_action_modal.dart b/lib/widgets/confirm_action_modal.dart index d0bb314..4ed9cd7 100644 --- a/lib/widgets/confirm_action_modal.dart +++ b/lib/widgets/confirm_action_modal.dart @@ -8,12 +8,12 @@ class ConfirmActionModal extends StatelessWidget { final void Function() onConfirm; const ConfirmActionModal({ - Key? key, + super.key, required this.icon, required this.title, required this.message, required this.onConfirm - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/custom_checkbox_list_tile.dart b/lib/widgets/custom_checkbox_list_tile.dart index be14a3c..39c4cdf 100644 --- a/lib/widgets/custom_checkbox_list_tile.dart +++ b/lib/widgets/custom_checkbox_list_tile.dart @@ -9,14 +9,14 @@ class CustomCheckboxListTile extends StatelessWidget { final EdgeInsets? padding; const CustomCheckboxListTile({ - Key? key, + super.key, required this.value, required this.onChanged, required this.title, this.disabled, this.subtitle, this.padding - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/custom_list_tile.dart b/lib/widgets/custom_list_tile.dart index 0523468..5bf1e42 100644 --- a/lib/widgets/custom_list_tile.dart +++ b/lib/widgets/custom_list_tile.dart @@ -14,7 +14,7 @@ class CustomListTile extends StatelessWidget { final Color? color; const CustomListTile({ - Key? key, + super.key, required this.title, this.subtitle, this.subtitleWidget, @@ -26,7 +26,7 @@ class CustomListTile extends StatelessWidget { this.disabled, this.onHover, this.color, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/custom_radio.dart b/lib/widgets/custom_radio.dart index f8f2a08..5058316 100644 --- a/lib/widgets/custom_radio.dart +++ b/lib/widgets/custom_radio.dart @@ -7,12 +7,12 @@ class CustomRadio extends StatelessWidget { final Color backgroundColor; const CustomRadio({ - Key? key, + super.key, required this.value, required this.groupValue, this.onChange, required this.backgroundColor, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/custom_radio_list_tile.dart b/lib/widgets/custom_radio_list_tile.dart index 4d59b3c..0469bc9 100644 --- a/lib/widgets/custom_radio_list_tile.dart +++ b/lib/widgets/custom_radio_list_tile.dart @@ -11,14 +11,14 @@ class CustomRadioListTile extends StatelessWidget { final void Function(String) onChanged; const CustomRadioListTile({ - Key? key, + super.key, required this.groupValue, required this.value, required this.radioBackgroundColor, required this.title, this.subtitle, required this.onChanged, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/custom_radio_toggle.dart b/lib/widgets/custom_radio_toggle.dart index 59cb9e9..2698243 100644 --- a/lib/widgets/custom_radio_toggle.dart +++ b/lib/widgets/custom_radio_toggle.dart @@ -7,12 +7,12 @@ class CustomRadioToggle extends StatelessWidget { final void Function(String) onTap; const CustomRadioToggle({ - Key? key, + super.key, required this.groupSelected, required this.value, required this.label, required this.onTap, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/line_chart.dart b/lib/widgets/line_chart.dart index 5ac8bdd..f6899d1 100644 --- a/lib/widgets/line_chart.dart +++ b/lib/widgets/line_chart.dart @@ -13,13 +13,13 @@ class CustomLineChart extends StatelessWidget { final BuildContext context; const CustomLineChart({ - Key? key, + super.key, required this.data, required this.color, required this.dates, required this.daysInterval, required this.context - }) : super(key: key); + }); String chartDate(DateTime date) { String twoDigits(int number) => number.toString().padLeft(2, '0'); @@ -55,11 +55,11 @@ class CustomLineChart extends StatelessWidget { LineChartData mainData(Map data, ThemeMode selectedTheme) { return LineChartData( - gridData: FlGridData( + gridData: const FlGridData( show: false, drawVerticalLine: false, ), - titlesData: FlTitlesData( + titlesData: const FlTitlesData( show: false, ), borderData: FlBorderData( @@ -73,7 +73,7 @@ class CustomLineChart extends StatelessWidget { barWidth: 2, isStrokeCapRound: true, preventCurveOverShooting: true, - dotData: FlDotData( + dotData: const FlDotData( show: false, ), belowBarData: BarAreaData( diff --git a/lib/widgets/menu_bar.dart b/lib/widgets/menu_bar.dart index 0151b87..fe80446 100644 --- a/lib/widgets/menu_bar.dart +++ b/lib/widgets/menu_bar.dart @@ -11,9 +11,9 @@ class CustomMenuBar extends StatelessWidget { final Widget child; const CustomMenuBar({ - Key? key, + super.key, required this.child - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/option_box.dart b/lib/widgets/option_box.dart index f19a88f..e8514ef 100644 --- a/lib/widgets/option_box.dart +++ b/lib/widgets/option_box.dart @@ -7,12 +7,12 @@ class OptionBox extends StatelessWidget { final String label; const OptionBox({ - Key? key, + super.key, required this.optionsValue, required this.itemValue, required this.onTap, required this.label, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/process_dialog.dart b/lib/widgets/process_dialog.dart index 0c91442..f7f85a9 100644 --- a/lib/widgets/process_dialog.dart +++ b/lib/widgets/process_dialog.dart @@ -4,9 +4,9 @@ class ProcessDialog extends StatelessWidget { final String message; const ProcessDialog({ - Key? key, + super.key, required this.message, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/section_label.dart b/lib/widgets/section_label.dart index c1f767a..1e3980f 100644 --- a/lib/widgets/section_label.dart +++ b/lib/widgets/section_label.dart @@ -5,10 +5,10 @@ class SectionLabel extends StatelessWidget { final EdgeInsets? padding; const SectionLabel({ - Key? key, + super.key, required this.label, this.padding - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/servers_list/delete_modal.dart b/lib/widgets/servers_list/delete_modal.dart index dbf169d..4067d18 100644 --- a/lib/widgets/servers_list/delete_modal.dart +++ b/lib/widgets/servers_list/delete_modal.dart @@ -13,9 +13,9 @@ class DeleteModal extends StatelessWidget { final Server serverToDelete; const DeleteModal({ - Key? key, + super.key, required this.serverToDelete, - }) : super(key: key); + }); @override Widget build(BuildContext context) { @@ -34,14 +34,14 @@ class DeleteModal extends StatelessWidget { appConfigProvider.setSelectedScreen(0); } - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.connectionRemoved, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.connectionCannotBeRemoved, color: Colors.red diff --git a/lib/widgets/servers_list/server_tile_functions.dart b/lib/widgets/servers_list/server_tile_functions.dart index ec3c92e..06dbaee 100644 --- a/lib/widgets/servers_list/server_tile_functions.dart +++ b/lib/widgets/servers_list/server_tile_functions.dart @@ -50,14 +50,15 @@ void showDeleteModal({ required BuildContext context, required Server server }) async { - await Future.delayed(const Duration(seconds: 0), () => { + await Future.delayed(const Duration(seconds: 0), () { + if (!context.mounted) return; showDialog( context: context, builder: (context) => DeleteModal( serverToDelete: server, ), barrierDismissible: false - ) + ); }); } @@ -133,7 +134,7 @@ void connectToServer({ process.close(); if (!context.mounted) return; final appConfigProvider = Provider.of(context, listen: false); - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.cannotConnect, color: Colors.red @@ -150,14 +151,14 @@ void setDefaultServer({ if (!context.mounted) return; final appConfigProvider = Provider.of(context, listen: false); if (result == null) { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.connectionDefaultSuccessfully, color: Colors.green ); } else { - showSnacbkar( + showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.connectionDefaultFailed, color: Colors.red diff --git a/lib/widgets/servers_list/servers_list.dart b/lib/widgets/servers_list/servers_list.dart index 8e530f2..d5a8d1b 100644 --- a/lib/widgets/servers_list/servers_list.dart +++ b/lib/widgets/servers_list/servers_list.dart @@ -16,13 +16,13 @@ class ServersList extends StatelessWidget { final double breakingWidth; const ServersList({ - Key? key, + super.key, required this.context, required this.controllers, required this.onChange, required this.scrollController, required this.breakingWidth - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/widgets/servers_list/servers_list_item.dart b/lib/widgets/servers_list/servers_list_item.dart index 47ca6fe..29b11a5 100644 --- a/lib/widgets/servers_list/servers_list_item.dart +++ b/lib/widgets/servers_list/servers_list_item.dart @@ -68,7 +68,7 @@ class _ServersListItemState extends State with SingleTickerProv decoration: BoxDecoration( border: Border( bottom: BorderSide( - color: Theme.of(context).colorScheme.surfaceVariant, + color: Theme.of(context).colorScheme.surfaceContainerHighest, width: 1 ) ) diff --git a/lib/widgets/update_modal.dart b/lib/widgets/update_modal.dart index 5b99b66..8cedd2e 100644 --- a/lib/widgets/update_modal.dart +++ b/lib/widgets/update_modal.dart @@ -11,10 +11,10 @@ class UpdateModal extends StatefulWidget { final void Function(String, String) onDownload; const UpdateModal({ - Key? key, + super.key, required this.gitHubRelease, required this.onDownload, - }) : super(key: key); + }); @override State createState() => _UpdateModalState(); diff --git a/lib/widgets/version_warning_modal.dart b/lib/widgets/version_warning_modal.dart index f2230b0..72dbe4d 100644 --- a/lib/widgets/version_warning_modal.dart +++ b/lib/widgets/version_warning_modal.dart @@ -5,9 +5,9 @@ class VersionWarningModal extends StatelessWidget { final String version; const VersionWarningModal({ - Key? key, + super.key, required this.version, - }) : super(key: key); + }); @override Widget build(BuildContext context) { From 29af26f118c5c902cbf76b1cac90ea30e271476d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 18:18:20 +0200 Subject: [PATCH 191/236] Added padding bottom list live logs --- lib/screens/logs/live/live_logs_list.dart | 47 ++++++++++++----------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/lib/screens/logs/live/live_logs_list.dart b/lib/screens/logs/live/live_logs_list.dart index bf812e8..4bdf02f 100644 --- a/lib/screens/logs/live/live_logs_list.dart +++ b/lib/screens/logs/live/live_logs_list.dart @@ -51,34 +51,37 @@ class LiveLogsList extends StatelessWidget { textAlign: TextAlign.center, style: TextStyle( color: Theme.of(context).colorScheme.onSurfaceVariant, - fontSize: 24 + fontSize: 22 ), ), ), ), ), - if (liveLogsProvider.logs.isNotEmpty) SliverList.builder( - itemCount: liveLogsProvider.logs.length, - itemBuilder: (context, index) => LogTile( - log: liveLogsProvider.logs[index], - length: liveLogsProvider.logs.length, - index: index, - onLogTap: (log) { - if (!twoColumns) { - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => LogDetailsScreen( - log: log, - dialog: false, - twoColumns: twoColumns, + if (liveLogsProvider.logs.isNotEmpty) SliverPadding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewPadding.bottom), + sliver: SliverList.builder( + itemCount: liveLogsProvider.logs.length, + itemBuilder: (context, index) => LogTile( + log: liveLogsProvider.logs[index], + length: liveLogsProvider.logs.length, + index: index, + onLogTap: (log) { + if (!twoColumns) { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => LogDetailsScreen( + log: log, + dialog: false, + twoColumns: twoColumns, + ) ) - ) - ); - } - onLogSelected(log); - }, - isLogSelected: selectedLog == liveLogsProvider.logs[index], - twoColumns: twoColumns + ); + } + onLogSelected(log); + }, + isLogSelected: selectedLog == liveLogsProvider.logs[index], + twoColumns: twoColumns + ), ), ) ], From f9149056fdc05dcf98ed80fa179f664ae8e8e548 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 18:21:46 +0200 Subject: [PATCH 192/236] Fixed logs search bar --- lib/screens/logs/logs_list_appbar.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index 88c1c29..caab9fa 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -365,7 +365,8 @@ class _SearchState extends State<_Search> { ), tooltip: AppLocalizations.of(context)!.clearSearch, ) - : null + : null, + contentPadding: const EdgeInsets.symmetric(vertical: 12), ), ), ), From 9eb200f5daef69374fad1893ff574a13ab2a401a Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 18:51:57 +0200 Subject: [PATCH 193/236] Changed design top items screen --- .../home/top_items/top_items_screen.dart | 422 +++++++++--------- lib/screens/logs/logs_list_appbar.dart | 120 +---- lib/widgets/floating_search_bar.dart | 110 +++++ 3 files changed, 339 insertions(+), 313 deletions(-) create mode 100644 lib/widgets/floating_search_bar.dart diff --git a/lib/screens/home/top_items/top_items_screen.dart b/lib/screens/home/top_items/top_items_screen.dart index 94675ad..0f7465f 100644 --- a/lib/screens/home/top_items/top_items_screen.dart +++ b/lib/screens/home/top_items/top_items_screen.dart @@ -9,6 +9,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/widgets/options_menu.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; +import 'package:adguard_home_manager/widgets/floating_search_bar.dart'; import 'package:adguard_home_manager/models/menu_option.dart'; import 'package:adguard_home_manager/constants/enums.dart'; @@ -16,6 +17,7 @@ import 'package:adguard_home_manager/functions/number_format.dart'; import 'package:adguard_home_manager/providers/status_provider.dart'; enum _SortingOptions { highestToLowest, lowestToHighest } +final GlobalKey _searchButtonKey = GlobalKey(); class TopItemsScreen extends StatefulWidget { final HomeTopItems type; @@ -47,15 +49,18 @@ class TopItemsScreen extends StatefulWidget { class _TopItemsScreenState extends State { _SortingOptions _sortingOptions = _SortingOptions.highestToLowest; - bool searchActive = false; final TextEditingController searchController = TextEditingController(); + String? _currentSearchValue = ""; List> data = []; List> screenData = []; void search(String value) { List> newValues = widget.data.where((item) => item.keys.toList()[0].contains(value)).toList(); - setState(() => screenData = newValues); + setState(() { + screenData = newValues; + _currentSearchValue = searchController.text; + }); } @override @@ -75,118 +80,129 @@ class _TopItemsScreenState extends State { final sortedValues = _sortingOptions == _SortingOptions.lowestToHighest ? screenData.reversed.toList() : screenData.toList(); + + void showSearchDialog() { + showDialog( + context: context, + builder: (context) => FloatingSearchBar( + existingSearchValue: _currentSearchValue, + searchButtonRenderBox: _searchButtonKey.currentContext?.findRenderObject() as RenderBox?, + onSearchCompleted: (v) { + List> newValues = widget.data.where((item) => item.keys.toList()[0].contains(v)).toList(); + setState(() { + screenData = newValues; + _currentSearchValue = v; + }); + }, + ), + ); + } if (widget.isFullscreen == true) { - return Dialog.fullscreen( - child: Scaffold( - appBar: AppBar( - title: searchActive == true - ? Padding( - padding: const EdgeInsets.only(bottom: 3), - child: TextFormField( - controller: searchController, - onChanged: search, - decoration: InputDecoration( - hintText: AppLocalizations.of(context)!.search, - hintStyle: const TextStyle( - fontWeight: FontWeight.normal, - fontSize: 18 + return Scaffold( + body: NestedScrollView( + headerSliverBuilder: (context, innerBoxIsScrolled) => [ + SliverOverlapAbsorber( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + sliver: SliverAppBar.large( + title: Text(widget.title), + actions: [ + IconButton( + key: _searchButtonKey, + onPressed: showSearchDialog, + icon: const Icon(Icons.search_rounded), + tooltip: AppLocalizations.of(context)!.search, + ), + PopupMenuButton( + icon: const Icon(Icons.sort_rounded), + itemBuilder: (context) => [ + PopupMenuItem( + onTap: () => setState(() => _sortingOptions = _SortingOptions.highestToLowest), + child: Row( + children: [ + const Icon(Icons.arrow_downward_rounded), + const SizedBox(width: 8), + Expanded( + child: Text(AppLocalizations.of(context)!.fromHighestToLowest) + ), + const SizedBox(width: 16), + Icon( + _sortingOptions == _SortingOptions.highestToLowest + ? Icons.radio_button_checked_rounded + : Icons.radio_button_unchecked_rounded, + color: _sortingOptions == _SortingOptions.highestToLowest + ? Theme.of(context).colorScheme.primary + : Theme.of(context).colorScheme.onSurfaceVariant, + ) + ], + ) ), - border: InputBorder.none, - ), - style: const TextStyle( - fontWeight: FontWeight.normal, - fontSize: 18 - ), - autofocus: true, - ), - ) - : Text(widget.title), - leading: searchActive == true ? - IconButton( - onPressed: () => setState(() { - searchActive = false; - searchController.text = ''; - screenData = data; - }), - icon: const Icon(Icons.arrow_back), - tooltip: AppLocalizations.of(context)!.exitSearch, - ) : null, - actions: [ - if (searchActive == false) IconButton( - onPressed: () => setState(() => searchActive = true), - icon: const Icon(Icons.search), - tooltip: AppLocalizations.of(context)!.search, - ), - if (searchActive == true) IconButton( - onPressed: () => setState(() { - searchController.text = ''; - screenData = data; - }), - icon: const Icon(Icons.clear_rounded), - tooltip: AppLocalizations.of(context)!.clearSearch, - ), - PopupMenuButton( - icon: const Icon(Icons.sort_rounded), - itemBuilder: (context) => [ - PopupMenuItem( - onTap: () => setState(() => _sortingOptions = _SortingOptions.highestToLowest), - child: Row( - children: [ - const Icon(Icons.arrow_downward_rounded), - const SizedBox(width: 8), - Expanded( - child: Text(AppLocalizations.of(context)!.fromHighestToLowest) - ), - const SizedBox(width: 16), - Icon( - _sortingOptions == _SortingOptions.highestToLowest - ? Icons.radio_button_checked_rounded - : Icons.radio_button_unchecked_rounded, - color: _sortingOptions == _SortingOptions.highestToLowest - ? Theme.of(context).colorScheme.primary - : Theme.of(context).colorScheme.onSurfaceVariant, + PopupMenuItem( + onTap: () => setState(() => _sortingOptions = _SortingOptions.lowestToHighest), + child: Row( + children: [ + const Icon(Icons.arrow_upward_rounded), + const SizedBox(width: 8), + Expanded( + child: Text(AppLocalizations.of(context)!.fromLowestToHighest) + ), + const SizedBox(width: 16), + Icon( + _sortingOptions == _SortingOptions.lowestToHighest + ? Icons.radio_button_checked_rounded + : Icons.radio_button_unchecked_rounded, + color: _sortingOptions == _SortingOptions.lowestToHighest + ? Theme.of(context).colorScheme.primary + : Theme.of(context).colorScheme.onSurfaceVariant, + ) + ], ) - ], - ) + ), + ], ), - PopupMenuItem( - onTap: () => setState(() => _sortingOptions = _SortingOptions.lowestToHighest), - child: Row( - children: [ - const Icon(Icons.arrow_upward_rounded), - const SizedBox(width: 8), - Expanded( - child: Text(AppLocalizations.of(context)!.fromLowestToHighest) + const SizedBox(width: 8) + ], + ) + ) + ], + body: SafeArea( + top: false, + bottom: false, + child: Builder( + builder: (context) => CustomScrollView( + slivers: [ + SliverOverlapInjector( + handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context), + ), + if (sortedValues.isEmpty) Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + AppLocalizations.of(context)!.noItemsSearch, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, ), - const SizedBox(width: 16), - Icon( - _sortingOptions == _SortingOptions.lowestToHighest - ? Icons.radio_button_checked_rounded - : Icons.radio_button_unchecked_rounded, - color: _sortingOptions == _SortingOptions.lowestToHighest - ? Theme.of(context).colorScheme.primary - : Theme.of(context).colorScheme.onSurfaceVariant, - ) - ], - ) + ), + ), + ), + if (sortedValues.isNotEmpty) SliverList.builder( + itemCount: sortedValues.length, + itemBuilder: (context, index) => _Item( + data: sortedValues[index], + isClient: widget.isClient, + options: widget.options, + total: total, + withProgressBar: widget.withProgressBar, + onTapEntry: widget.onTapEntry, + buildValue: widget.buildValue, + ), ), ], ), - const SizedBox(width: 8) - ], - ), - body: SafeArea( - child: _Content( - buildValue: widget.buildValue, - isClient: widget.isClient, - onTapEntry: widget.onTapEntry, - options: widget.options, - screenData: sortedValues, - total: total, - withProgressBar: widget.withProgressBar, - ), - ), + ) + ) ), ); } @@ -242,14 +258,29 @@ class _TopItemsScreenState extends State { ), ), Expanded( - child: _Content( - buildValue: widget.buildValue, - isClient: widget.isClient, - onTapEntry: widget.onTapEntry, - options: widget.options, - screenData: sortedValues, - total: total, - withProgressBar: widget.withProgressBar, + child: sortedValues.isNotEmpty ? ListView.builder( + itemCount: sortedValues.length, + itemBuilder: (context, index) => _Item( + data: sortedValues[index], + isClient: widget.isClient, + options: widget.options, + withProgressBar: widget.withProgressBar, + onTapEntry: widget.onTapEntry, + buildValue: widget.buildValue, + total: total, + ), + ) : Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Text( + AppLocalizations.of(context)!.noItemsSearch, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), + ), ), ), ], @@ -260,8 +291,8 @@ class _TopItemsScreenState extends State { } } -class _Content extends StatelessWidget { - final List> screenData; +class _Item extends StatelessWidget { + final dynamic data; final bool? isClient; final List Function(dynamic) options; final bool withProgressBar; @@ -269,8 +300,8 @@ class _Content extends StatelessWidget { final String Function(dynamic) buildValue; final double total; - const _Content({ - required this.screenData, + const _Item({ + required this.data, required this.isClient, required this.options, required this.withProgressBar, @@ -283,98 +314,75 @@ class _Content extends StatelessWidget { Widget build(BuildContext context) { final statusProvider = Provider.of(context); - if (screenData.isNotEmpty) { - return ListView.builder( - padding: const EdgeInsets.only(top: 0), - itemCount: screenData.length, - itemBuilder: (context, index) { - String? name; - if (isClient != null && isClient == true) { - try { - name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(screenData[index].keys.toList()[0])).name; - } catch (e) { - // ---- // - } - } - - return OptionsMenu( - options: options, - value: screenData[index].keys.toList()[0], - onTap: onTapEntry != null - ? (v) { - onTapEntry!(v); - Navigator.pop(context); - } - : null, - child: CustomListTile( - title: screenData[index].keys.toList()[0], - trailing: Text( - buildValue(screenData[index].values.toList()[0]), - style: TextStyle( - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - ), - subtitleWidget: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - if (name != null) ...[ - Text( - name, - style: TextStyle( - fontSize: 14, - color: Theme.of(context).colorScheme.onSurface - ), - ), - const SizedBox(height: 5), - ], - if (withProgressBar == true) Row( - children: [ - SizedBox( - width: 50, - child: Text( - "${doubleFormat((screenData[index].values.toList()[0]/total*100), Platform.localeName)}%", - style: TextStyle( - color: Theme.of(context).listTileTheme.textColor - ), - ), - ), - const SizedBox(width: 10), - Flexible( - child: LinearPercentIndicator( - animation: true, - lineHeight: 4, - animationDuration: 500, - curve: Curves.easeOut, - percent: screenData[index].values.toList()[0]/total, - barRadius: const Radius.circular(5), - progressColor: Theme.of(context).colorScheme.primary, - backgroundColor: Theme.of(context).colorScheme.surfaceContainerHighest, - ), - ), - const SizedBox(width: 10), - ], - ), - ], - ) - ), - ); - } - ); + String? name; + if (isClient != null && isClient == true) { + try { + name = statusProvider.serverStatus!.clients.firstWhere((c) => c.ids.contains(data.keys.toList()[0])).name; + } catch (e) { + // ---- // + } } - else { - return Center( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Text( - AppLocalizations.of(context)!.noItemsSearch, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 22, - color: Theme.of(context).colorScheme.onSurfaceVariant, - ), + + return OptionsMenu( + options: options, + value: data.keys.toList()[0], + onTap: onTapEntry != null + ? (v) { + onTapEntry!(v); + Navigator.pop(context); + } + : null, + child: CustomListTile( + title: data.keys.toList()[0], + trailing: Text( + buildValue(data.values.toList()[0]), + style: TextStyle( + color: Theme.of(context).colorScheme.onSurfaceVariant ), ), - ); - } + subtitleWidget: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (name != null) ...[ + Text( + name, + style: TextStyle( + fontSize: 14, + color: Theme.of(context).colorScheme.onSurface + ), + ), + const SizedBox(height: 5), + ], + if (withProgressBar == true) Row( + children: [ + SizedBox( + width: 50, + child: Text( + "${doubleFormat((data.values.toList()[0]/total*100), Platform.localeName)}%", + style: TextStyle( + color: Theme.of(context).listTileTheme.textColor + ), + ), + ), + const SizedBox(width: 10), + Flexible( + child: LinearPercentIndicator( + animation: true, + lineHeight: 4, + animationDuration: 500, + curve: Curves.easeOut, + percent: data.values.toList()[0]/total, + barRadius: const Radius.circular(5), + progressColor: Theme.of(context).colorScheme.primary, + backgroundColor: Theme.of(context).colorScheme.surfaceContainerHighest, + ), + ), + const SizedBox(width: 10), + ], + ), + ], + ) + ), + ); } } \ No newline at end of file diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index caab9fa..2a052f6 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -8,8 +8,8 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/logs/live/live_logs_screen.dart'; import 'package:adguard_home_manager/screens/logs/filters/logs_filters_modal.dart'; +import 'package:adguard_home_manager/widgets/floating_search_bar.dart'; -import 'package:adguard_home_manager/config/globals.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/functions/desktop_mode.dart'; import 'package:adguard_home_manager/providers/live_logs_provider.dart'; @@ -61,9 +61,10 @@ class LogsListAppBar extends StatelessWidget { void showSearchDialog() { showDialog( context: context, - builder: (context) => _Search( + builder: (context) => FloatingSearchBar( + existingSearchValue: logsProvider.appliedFilters.searchText ?? "", searchButtonRenderBox: _searchButtonKey.currentContext?.findRenderObject() as RenderBox?, - onSearch: (v) { + onSearchCompleted: (v) { logsProvider.setAppliedFilters( AppliedFiters( selectedResultStatus: logsProvider.appliedFilters.selectedResultStatus, @@ -73,6 +74,16 @@ class LogsListAppBar extends StatelessWidget { ); logsProvider.filterLogs(); }, + onSearchFieldUpdated: (v) { + if (v == "") { + logsProvider.setSearchText(null); + return; + } + logsProvider.setSearchText(v); + }, + onSearchFieldCleared: () { + logsProvider.setSearchText(null); + }, ), ); } @@ -279,106 +290,3 @@ class LogsListAppBar extends StatelessWidget { } } -class _Search extends StatefulWidget { - final void Function(String) onSearch; - final RenderBox? searchButtonRenderBox; - - const _Search({ - required this.onSearch, - required this.searchButtonRenderBox, - }); - - @override - State<_Search> createState() => _SearchState(); -} - -class _SearchState extends State<_Search> { - final _searchController = TextEditingController(); - - @override - void initState() { - final logsProvider = Provider.of(context, listen: false); - _searchController.text = logsProvider.appliedFilters.searchText ?? ""; - - super.initState(); - } - - @override - Widget build(BuildContext context) { - final logsProvider = Provider.of(context); - - final position = widget.searchButtonRenderBox?.localToGlobal(Offset.zero); - final topPadding = MediaQuery.of(globalNavigatorKey.currentContext!).viewPadding.top; - - return GestureDetector( - onTap: () => Navigator.pop(context), - child: Material( - color: Colors.transparent, - child: LayoutBuilder( - builder: (context, constraints) { - final double width = constraints.maxWidth - 32 > 500 ? 500 : constraints.maxWidth - 32; - return Stack( - alignment: Alignment.topCenter, - children: [ - Positioned( - top: position != null ? position.dy - topPadding : topPadding, - child: SizedBox( - width: width, - child: GestureDetector( - onTap: () => {}, - child: Container( - decoration: BoxDecoration( - color: Theme.of(context).colorScheme.surface, - borderRadius: BorderRadius.circular(16) - ), - child: ClipRRect( - borderRadius: BorderRadius.circular(16), - child: TextFormField( - controller: _searchController, - onChanged: (v) { - if (v == "") { - logsProvider.setSearchText(null); - return; - } - logsProvider.setSearchText(v); - }, - onFieldSubmitted: (v) { - widget.onSearch(v); - Navigator.pop(context); - }, - autofocus: true, - decoration: InputDecoration( - hintText: AppLocalizations.of(context)!.search, - prefixIcon: const Icon(Icons.search_rounded), - border: InputBorder.none, - filled: true, - fillColor: Colors.grey.withOpacity(0.2), - suffixIcon: _searchController.text != "" - ? IconButton( - onPressed: () { - _searchController.text = ""; - logsProvider.setSearchText(null); - }, - icon: const Icon( - Icons.close_rounded, - size: 20, - ), - tooltip: AppLocalizations.of(context)!.clearSearch, - ) - : null, - contentPadding: const EdgeInsets.symmetric(vertical: 12), - ), - ), - ), - ), - ), - ), - ) - ], - ); - } - ), - ), - ); - } -} \ No newline at end of file diff --git a/lib/widgets/floating_search_bar.dart b/lib/widgets/floating_search_bar.dart new file mode 100644 index 0000000..bc09058 --- /dev/null +++ b/lib/widgets/floating_search_bar.dart @@ -0,0 +1,110 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/config/globals.dart'; + +class FloatingSearchBar extends StatefulWidget { + final void Function(String) onSearchCompleted; + final RenderBox? searchButtonRenderBox; + final String? existingSearchValue; + final void Function(String)? onSearchFieldUpdated; + final void Function()? onSearchFieldCleared; + + const FloatingSearchBar({ + super.key, + required this.onSearchCompleted, + required this.searchButtonRenderBox, + this.existingSearchValue, + this.onSearchFieldUpdated, + this.onSearchFieldCleared, + }); + + @override + State createState() => _SearchState(); +} + +class _SearchState extends State { + final _searchController = TextEditingController(); + + @override + void initState() { + if (widget.existingSearchValue != null) { + _searchController.text = widget.existingSearchValue!; + } + + super.initState(); + } + + @override + Widget build(BuildContext context) { + final position = widget.searchButtonRenderBox?.localToGlobal(Offset.zero); + final topPadding = MediaQuery.of(globalNavigatorKey.currentContext!).viewPadding.top; + + return GestureDetector( + onTap: () => Navigator.pop(context), + child: Material( + color: Colors.transparent, + child: LayoutBuilder( + builder: (context, constraints) { + final double width = constraints.maxWidth - 32 > 500 ? 500 : constraints.maxWidth - 32; + return Stack( + alignment: Alignment.topCenter, + children: [ + Positioned( + top: position != null ? position.dy - topPadding : topPadding, + child: SizedBox( + width: width, + child: GestureDetector( + onTap: () => {}, + child: Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, + borderRadius: BorderRadius.circular(16) + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(16), + child: TextFormField( + controller: _searchController, + onChanged: widget.onSearchFieldUpdated, + onFieldSubmitted: (v) { + widget.onSearchCompleted(v); + Navigator.pop(context); + }, + autofocus: true, + decoration: InputDecoration( + hintText: AppLocalizations.of(context)!.search, + prefixIcon: const Icon(Icons.search_rounded), + border: InputBorder.none, + filled: true, + fillColor: Colors.grey.withOpacity(0.2), + suffixIcon: _searchController.text != "" + ? IconButton( + onPressed: () { + setState(() => _searchController.text = ""); + if (widget.onSearchFieldCleared != null) { + widget.onSearchFieldCleared!(); + } + }, + icon: const Icon( + Icons.close_rounded, + size: 20, + ), + tooltip: AppLocalizations.of(context)!.clearSearch, + ) + : null, + contentPadding: const EdgeInsets.symmetric(vertical: 12), + ), + ), + ), + ), + ), + ), + ) + ], + ); + } + ), + ), + ); + } +} \ No newline at end of file From b223076daebfcca745f5b9bc4f7e8ffbe7a54ab1 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 18:53:23 +0200 Subject: [PATCH 194/236] Fix bottom padding top items list --- .../home/top_items/top_items_screen.dart | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/screens/home/top_items/top_items_screen.dart b/lib/screens/home/top_items/top_items_screen.dart index 0f7465f..1524f75 100644 --- a/lib/screens/home/top_items/top_items_screen.dart +++ b/lib/screens/home/top_items/top_items_screen.dart @@ -187,16 +187,19 @@ class _TopItemsScreenState extends State { ), ), ), - if (sortedValues.isNotEmpty) SliverList.builder( - itemCount: sortedValues.length, - itemBuilder: (context, index) => _Item( - data: sortedValues[index], - isClient: widget.isClient, - options: widget.options, - total: total, - withProgressBar: widget.withProgressBar, - onTapEntry: widget.onTapEntry, - buildValue: widget.buildValue, + if (sortedValues.isNotEmpty) SliverPadding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewPadding.bottom), + sliver: SliverList.builder( + itemCount: sortedValues.length, + itemBuilder: (context, index) => _Item( + data: sortedValues[index], + isClient: widget.isClient, + options: widget.options, + total: total, + withProgressBar: widget.withProgressBar, + onTapEntry: widget.onTapEntry, + buildValue: widget.buildValue, + ), ), ), ], From c0f7449a954624129b52a30ee1262673f7260010 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 19:05:07 +0200 Subject: [PATCH 195/236] Fixed some colors --- lib/config/theme.dart | 6 ++++++ lib/screens/home/top_items/top_items_screen.dart | 2 +- lib/screens/settings/customization/theme_mode_button.dart | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/config/theme.dart b/lib/config/theme.dart index a9ffa71..93b5365 100644 --- a/lib/config/theme.dart +++ b/lib/config/theme.dart @@ -24,6 +24,9 @@ ThemeData lightTheme(ColorScheme? dynamicColorScheme) => ThemeData( navigationBarTheme: NavigationBarThemeData( surfaceTintColor: dynamicColorScheme?.surfaceTint ), + dialogTheme: DialogTheme( + surfaceTintColor: dynamicColorScheme?.surfaceTint + ), pageTransitionsTheme: const PageTransitionsTheme( builders: { TargetPlatform.android: PredictiveBackPageTransitionsBuilder() @@ -56,6 +59,9 @@ ThemeData darkTheme(ColorScheme? dynamicColorScheme) => ThemeData( navigationBarTheme: NavigationBarThemeData( surfaceTintColor: dynamicColorScheme?.surfaceTint ), + dialogTheme: DialogTheme( + surfaceTintColor: dynamicColorScheme?.surfaceTint + ), pageTransitionsTheme: const PageTransitionsTheme( builders: { TargetPlatform.android: PredictiveBackPageTransitionsBuilder() diff --git a/lib/screens/home/top_items/top_items_screen.dart b/lib/screens/home/top_items/top_items_screen.dart index 1524f75..bf0a0f5 100644 --- a/lib/screens/home/top_items/top_items_screen.dart +++ b/lib/screens/home/top_items/top_items_screen.dart @@ -377,7 +377,7 @@ class _Item extends StatelessWidget { percent: data.values.toList()[0]/total, barRadius: const Radius.circular(5), progressColor: Theme.of(context).colorScheme.primary, - backgroundColor: Theme.of(context).colorScheme.surfaceContainerHighest, + backgroundColor: Theme.of(context).colorScheme.surfaceTint.withOpacity(0.2), ), ), const SizedBox(width: 10), diff --git a/lib/screens/settings/customization/theme_mode_button.dart b/lib/screens/settings/customization/theme_mode_button.dart index e48a511..ec949c0 100644 --- a/lib/screens/settings/customization/theme_mode_button.dart +++ b/lib/screens/settings/customization/theme_mode_button.dart @@ -44,7 +44,7 @@ class ThemeModeButton extends StatelessWidget { ? Theme.of(context).colorScheme.primary : greyBackgroundColor : disabled == null || disabled == false - ? Theme.of(context).colorScheme.surfaceContainerHighest + ? Theme.of(context).colorScheme.surfaceTint.withOpacity(0.1) : greyBackgroundColor, ) ), From 2f1e8d38a868804e995fcbeb710b468080a4b7df Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 19:16:41 +0200 Subject: [PATCH 196/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 3378718..f821dbf 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.19.0-beta.1+142 +version: 2.19.0+143 environment: sdk: '>=2.18.1 <3.0.0' From a171eda41c602dc6b8aeb5c6c0d6903345327262 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 19:25:49 +0200 Subject: [PATCH 197/236] Updated workflow --- .github/workflows/release-stable.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release-stable.yaml b/.github/workflows/release-stable.yaml index 220c56d..45c9beb 100644 --- a/.github/workflows/release-stable.yaml +++ b/.github/workflows/release-stable.yaml @@ -24,15 +24,14 @@ jobs: - name: Decode .env run: echo "${{ secrets.ENV }}" | base64 --decode > .env - name: Read pubspec.yaml - uses: adore-me/read-yaml@v1.0.0 + uses: pietrobolcato/action-read-yaml@1.0.0 id: read_pubspec with: - file: './pubspec.yaml' - key-path: '["version"]' + config: ${{ github.workspace }}/pubspec.yaml - name: Save version on env variable id: save_version run: | - version=${{ steps.read_pubspec.outputs.data }} + version=${{ steps.read_pubspec.outputs['version'] }} IFS='+' read -r -a split <<< "$version" echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV From 67bc6a1716df2b08e4733e72950c6c5a985f2944 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 19:27:04 +0200 Subject: [PATCH 198/236] Updated workflow --- .github/workflows/release-stable.yaml | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release-stable.yaml b/.github/workflows/release-stable.yaml index 45c9beb..9b0dd17 100644 --- a/.github/workflows/release-stable.yaml +++ b/.github/workflows/release-stable.yaml @@ -80,15 +80,14 @@ jobs: - name: Decode .env run: echo "${{ secrets.ENV }}" | base64 --decode > .env - name: Read pubspec.yaml - uses: adore-me/read-yaml@v1.0.0 + uses: pietrobolcato/action-read-yaml@1.0.0 id: read_pubspec with: - file: './pubspec.yaml' - key-path: '["version"]' + config: ${{ github.workspace }}/pubspec.yaml - name: Save version on env variable id: save_version run: | - version=${{ steps.read_pubspec.outputs.data }} + version=${{ steps.read_pubspec.outputs['version'] }} IFS='+' read -r -a split <<< "$version" echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV @@ -140,15 +139,14 @@ jobs: - name: Decode .env run: echo "${{ secrets.ENV }}" | base64 --decode > .env - name: Read pubspec.yaml - uses: adore-me/read-yaml@v1.0.0 + uses: pietrobolcato/action-read-yaml@1.0.0 id: read_pubspec with: - file: './pubspec.yaml' - key-path: '["version"]' + config: ${{ github.workspace }}/pubspec.yaml - name: Save version on env variable id: save_version run: | - version=${{ steps.read_pubspec.outputs.data }} + version=${{ steps.read_pubspec.outputs['version'] }} IFS='+' read -r -a split <<< "$version" echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV @@ -203,16 +201,14 @@ jobs: run: | [IO.File]::WriteAllBytes('.env', [Convert]::FromBase64String('${{ secrets.ENV }}')) - name: Read pubspec.yaml - uses: adore-me/read-yaml@v1.0.0 + uses: pietrobolcato/action-read-yaml@1.0.0 id: read_pubspec with: - file: './pubspec.yaml' - key-path: '["version"]' + config: ${{ github.workspace }}/pubspec.yaml - name: Save version on env variable - shell: bash id: save_version run: | - version=${{ steps.read_pubspec.outputs.data }} + version=${{ steps.read_pubspec.outputs['version'] }} IFS='+' read -r -a split <<< "$version" echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV From fc2305266fbc5a6f940863ed660af5630ba3f363 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 19:34:04 +0200 Subject: [PATCH 199/236] Updated workflow --- .github/workflows/release-stable.yaml | 28 +++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release-stable.yaml b/.github/workflows/release-stable.yaml index 9b0dd17..11750fe 100644 --- a/.github/workflows/release-stable.yaml +++ b/.github/workflows/release-stable.yaml @@ -24,14 +24,15 @@ jobs: - name: Decode .env run: echo "${{ secrets.ENV }}" | base64 --decode > .env - name: Read pubspec.yaml - uses: pietrobolcato/action-read-yaml@1.0.0 + uses: jbutcher5/read-yaml@1.6 id: read_pubspec with: - config: ${{ github.workspace }}/pubspec.yaml + file: './pubspec.yaml' # File to read from + key-path: '["version"]' - name: Save version on env variable id: save_version run: | - version=${{ steps.read_pubspec.outputs['version'] }} + version=${{ steps.read_pubspec.outputs.data }} IFS='+' read -r -a split <<< "$version" echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV @@ -80,14 +81,15 @@ jobs: - name: Decode .env run: echo "${{ secrets.ENV }}" | base64 --decode > .env - name: Read pubspec.yaml - uses: pietrobolcato/action-read-yaml@1.0.0 + uses: jbutcher5/read-yaml@1.6 id: read_pubspec with: - config: ${{ github.workspace }}/pubspec.yaml + file: './pubspec.yaml' + key-path: '["version"]' - name: Save version on env variable id: save_version run: | - version=${{ steps.read_pubspec.outputs['version'] }} + version=${{ steps.read_pubspec.outputs.data }} IFS='+' read -r -a split <<< "$version" echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV @@ -139,14 +141,15 @@ jobs: - name: Decode .env run: echo "${{ secrets.ENV }}" | base64 --decode > .env - name: Read pubspec.yaml - uses: pietrobolcato/action-read-yaml@1.0.0 + uses: jbutcher5/read-yaml@1.6 id: read_pubspec with: - config: ${{ github.workspace }}/pubspec.yaml + file: './pubspec.yaml' + key-path: '["version"]' - name: Save version on env variable id: save_version run: | - version=${{ steps.read_pubspec.outputs['version'] }} + version=${{ steps.read_pubspec.outputs.data }} IFS='+' read -r -a split <<< "$version" echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV @@ -201,14 +204,15 @@ jobs: run: | [IO.File]::WriteAllBytes('.env', [Convert]::FromBase64String('${{ secrets.ENV }}')) - name: Read pubspec.yaml - uses: pietrobolcato/action-read-yaml@1.0.0 + uses: jbutcher5/read-yaml@1.6 id: read_pubspec with: - config: ${{ github.workspace }}/pubspec.yaml + file: './pubspec.yaml' + key-path: '["version"]' - name: Save version on env variable id: save_version run: | - version=${{ steps.read_pubspec.outputs['version'] }} + version=${{ steps.read_pubspec.outputs.data }} IFS='+' read -r -a split <<< "$version" echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV From 3055c3582b31ee4f56ca11a6d1d95bce87b059a4 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 19:46:45 +0200 Subject: [PATCH 200/236] Updated workflow --- .github/workflows/release-beta.yaml | 2 -- .github/workflows/release-stable.yaml | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/release-beta.yaml b/.github/workflows/release-beta.yaml index 8f72ac4..3ded1c1 100644 --- a/.github/workflows/release-beta.yaml +++ b/.github/workflows/release-beta.yaml @@ -2,8 +2,6 @@ name: Compile and release beta build on: workflow_dispatch: - branches: - - beta jobs: build-android: diff --git a/.github/workflows/release-stable.yaml b/.github/workflows/release-stable.yaml index 11750fe..01630ac 100644 --- a/.github/workflows/release-stable.yaml +++ b/.github/workflows/release-stable.yaml @@ -2,8 +2,6 @@ name: Compile and release production build on: workflow_dispatch: - branches: - - master jobs: build-android: @@ -210,6 +208,7 @@ jobs: file: './pubspec.yaml' key-path: '["version"]' - name: Save version on env variable + shell: bash id: save_version run: | version=${{ steps.read_pubspec.outputs.data }} From 7579e2d58008c5d390b678c393e7de29b50cd6f6 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 21:14:58 +0200 Subject: [PATCH 201/236] Updated workflows --- .github/workflows/release-beta.yaml | 4 ++-- .github/workflows/release-stable.yaml | 8 ++++---- .vscode/settings.json | 6 +++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release-beta.yaml b/.github/workflows/release-beta.yaml index 3ded1c1..854ee28 100644 --- a/.github/workflows/release-beta.yaml +++ b/.github/workflows/release-beta.yaml @@ -24,10 +24,10 @@ jobs: - name: Decode .env run: echo "${{ secrets.ENV }}" | base64 --decode > .env - name: Read pubspec.yaml - uses: adore-me/read-yaml@v1.0.0 + uses: JGeek00/read-yaml-files@2.0.0 id: read_pubspec with: - file: './pubspec.yaml' + file: './pubspec.yaml' # File to read from key-path: '["version"]' - name: Save version on env variable id: save_version diff --git a/.github/workflows/release-stable.yaml b/.github/workflows/release-stable.yaml index 01630ac..0b0ae0c 100644 --- a/.github/workflows/release-stable.yaml +++ b/.github/workflows/release-stable.yaml @@ -22,7 +22,7 @@ jobs: - name: Decode .env run: echo "${{ secrets.ENV }}" | base64 --decode > .env - name: Read pubspec.yaml - uses: jbutcher5/read-yaml@1.6 + uses: JGeek00/read-yaml-files@2.0.0 id: read_pubspec with: file: './pubspec.yaml' # File to read from @@ -79,7 +79,7 @@ jobs: - name: Decode .env run: echo "${{ secrets.ENV }}" | base64 --decode > .env - name: Read pubspec.yaml - uses: jbutcher5/read-yaml@1.6 + uses: JGeek00/read-yaml-files@2.0.0 id: read_pubspec with: file: './pubspec.yaml' @@ -139,7 +139,7 @@ jobs: - name: Decode .env run: echo "${{ secrets.ENV }}" | base64 --decode > .env - name: Read pubspec.yaml - uses: jbutcher5/read-yaml@1.6 + uses: JGeek00/read-yaml-files@2.0.0 id: read_pubspec with: file: './pubspec.yaml' @@ -202,7 +202,7 @@ jobs: run: | [IO.File]::WriteAllBytes('.env', [Convert]::FromBase64String('${{ secrets.ENV }}')) - name: Read pubspec.yaml - uses: jbutcher5/read-yaml@1.6 + uses: JGeek00/read-yaml-files@2.0.0 id: read_pubspec with: file: './pubspec.yaml' diff --git a/.vscode/settings.json b/.vscode/settings.json index 791c93f..769a50d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,5 +12,9 @@ "editor.formatOnSave": false, "editor.formatOnPaste": false, "editor.formatOnType": false - } + }, + "cSpell.ignorePaths": [ + "/pubspec.yaml", + "/.github/workflows" + ] } \ No newline at end of file From 7bb7ad40c4a3358751039d477908dcd9f4c45604 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 22:32:26 +0200 Subject: [PATCH 202/236] Fixed some bugs --- lib/models/dns_statistics.dart | 2 +- lib/providers/dns_provider.dart | 28 +++++++++++-------- lib/screens/filters/add_button.dart | 2 ++ lib/screens/filters/custom_rules_list.dart | 2 +- lib/screens/home/appbar.dart | 1 + lib/screens/logs/filters/clients_modal.dart | 2 +- lib/screens/logs/log_tile.dart | 4 +++ .../statistics_settings.dart | 2 +- 8 files changed, 28 insertions(+), 15 deletions(-) diff --git a/lib/models/dns_statistics.dart b/lib/models/dns_statistics.dart index f279886..ca6c247 100644 --- a/lib/models/dns_statistics.dart +++ b/lib/models/dns_statistics.dart @@ -5,7 +5,7 @@ DnsStatistics dnsStatisticsFromJson(String str) => DnsStatistics.fromJson(json.d String dnsStatisticsToJson(DnsStatistics data) => json.encode(data.toJson()); class DnsStatistics { - final String timeUnits; + final String? timeUnits; final List> topQueriedDomains; final List> topClients; final List> topBlockedDomains; diff --git a/lib/providers/dns_provider.dart b/lib/providers/dns_provider.dart index 198053b..a59c3c5 100644 --- a/lib/providers/dns_provider.dart +++ b/lib/providers/dns_provider.dart @@ -151,20 +151,26 @@ class DnsProvider with ChangeNotifier { final result = await _serversProvider!.apiClient2!.setDnsConfig( data: value ); + + void updateValue(dynamic parameter, dynamic value) { + if (value != null) { + parameter = value; + } + } if (result.successful == true) { DnsInfo data = dnsInfo!; - data.ratelimit = value['ratelimit']; - data.ednsCsEnabled = value['edns_cs_enabled']; - data.dnssecEnabled = value['dnssec_enabled']; - data.disableIpv6 = value['disable_ipv6']; - data.blockingMode = value['blocking_mode']; - data.blockingIpv4 = value['blocking_ipv4']; - data.blockingIpv6 = value['blocking_ipv6']; - data.blockedResponseTtl = value['blocked_response_ttl']; - data.ratelimitSubnetLenIpv4 = value['ratelimit_subnet_len_ipv4']; - data.ratelimitSubnetLenIpv6 = value['ratelimit_subnet_len_ipv6']; - data.ratelimitWhitelist = value['ratelimit_whitelist']; + updateValue(data.ratelimit, value['ratelimit']); + updateValue(data.ednsCsEnabled, value['edns_cs_enabled']); + updateValue(data.dnssecEnabled, value['dnssec_enabled']); + updateValue(data.disableIpv6, value['disable_ipv6']); + updateValue(data.blockingMode, value['blocking_mode']); + updateValue(data.blockingIpv4, value['blocking_ipv4']); + updateValue(data.blockingIpv6, value['blocking_ipv6']); + updateValue(data.blockedResponseTtl, value['blocked_response_ttl']); + updateValue(data.ratelimitSubnetLenIpv4, value['ratelimit_subnet_len_ipv4']); + updateValue(data.ratelimitSubnetLenIpv6, value['ratelimit_subnet_len_ipv6']); + updateValue(data.ratelimitWhitelist, value['ratelimit_whitelist']); setDnsInfoData(data); return result; } diff --git a/lib/screens/filters/add_button.dart b/lib/screens/filters/add_button.dart index 2eca7d4..1621b68 100644 --- a/lib/screens/filters/add_button.dart +++ b/lib/screens/filters/add_button.dart @@ -137,6 +137,8 @@ class AddFiltersButton extends StatelessWidget { } void confirmAddList({required String name, required String url, required String type}) async { + if (!context.mounted) return; + ProcessModal processModal = ProcessModal(); processModal.open(AppLocalizations.of(context)!.addingList); diff --git a/lib/screens/filters/custom_rules_list.dart b/lib/screens/filters/custom_rules_list.dart index 304972f..4cd5bde 100644 --- a/lib/screens/filters/custom_rules_list.dart +++ b/lib/screens/filters/custom_rules_list.dart @@ -162,7 +162,7 @@ class _CustomRulesListState extends State { TextButton.icon( onPressed: () async { final result = await filteringProvider.fetchFilters(); - if (result == false) { + if (result == false && context.mounted) { showSnackbar( appConfigProvider: appConfigProvider, label: AppLocalizations.of(context)!.errorLoadFilters, diff --git a/lib/screens/home/appbar.dart b/lib/screens/home/appbar.dart index 5cd481f..d4b447c 100644 --- a/lib/screens/home/appbar.dart +++ b/lib/screens/home/appbar.dart @@ -34,6 +34,7 @@ class HomeAppBar extends StatelessWidget { void navigateServers() { Future.delayed(const Duration(milliseconds: 0), (() { + if (!context.mounted) return; Navigator.of(context).push( MaterialPageRoute(builder: (context) => const Servers()) ); diff --git a/lib/screens/logs/filters/clients_modal.dart b/lib/screens/logs/filters/clients_modal.dart index 403f098..ef0e989 100644 --- a/lib/screens/logs/filters/clients_modal.dart +++ b/lib/screens/logs/filters/clients_modal.dart @@ -115,7 +115,7 @@ class _ClientsModalState extends State { void searchAddedClient(_ClientLog client) { final notIps = client.ids?.where((e) => isIpAddress(e) == false).toList(); - if (notIps == null) return; + if (notIps == null || notIps.isEmpty) return; logsProvider.setSearchText('"${notIps[0]}"'); Navigator.of(context).pop(); } diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index bed2e40..342817f 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -96,6 +96,8 @@ class LogTile extends StatelessWidget { } void blockUnblock({required String domain, required String newStatus}) async { + if (!context.mounted) return; + final ProcessModal processModal = ProcessModal(); processModal.open(AppLocalizations.of(context)!.savingUserFilters); @@ -124,6 +126,8 @@ class LogTile extends StatelessWidget { } void confirmAddClient(Client client) async { + if (!context.mounted) return; + ProcessModal processModal = ProcessModal(); processModal.open(AppLocalizations.of(context)!.addingClient); diff --git a/lib/screens/settings/statistics_settings/statistics_settings.dart b/lib/screens/settings/statistics_settings/statistics_settings.dart index 67a2989..7f58d67 100644 --- a/lib/screens/settings/statistics_settings/statistics_settings.dart +++ b/lib/screens/settings/statistics_settings/statistics_settings.dart @@ -138,7 +138,7 @@ class _StatisticsSettingsState extends State { "enabled": _generalSwitch, "interval": _retentionTime == "custom" ? Duration(hours: int.parse(_customTimeController.text)).inMilliseconds - : int.parse(_retentionTime!), + : int.parse(_retentionTime ?? _retentionItems[0]), "ignored": _ignoredDomainsControllers.map((e) => e.controller.text).toList() } ); From b65dc35cb75b81336544e62be2509eda93ef46a8 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 11 Sep 2024 22:43:26 +0200 Subject: [PATCH 203/236] Exclude some sentry logs --- lib/main.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/main.dart b/lib/main.dart index ecd9f7e..854dd43 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -169,6 +169,20 @@ void main() async { (options) { options.dsn = dotenv.env['SENTRY_DSN']; options.sendDefaultPii = false; + options.beforeSend = (event, hint) { + if (event.throwable is HttpException) { + return null; + } + + if ( + event.message?.formatted.contains("Unexpected character") ?? false || + (event.throwable != null && event.throwable!.toString().contains("Unexpected character")) + ) { + return null; // Exclude this event + } + + return event; + }; }, appRunner: () => startApp() ); From d903da00510f617ee0e278d804c10d8e6dbf3b98 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 12 Sep 2024 14:33:32 +0200 Subject: [PATCH 204/236] Removed app updates notifier due to a bug on the library --- lib/functions/check_app_updates.dart | 100 ++++++------- lib/main.dart | 6 - .../general_settings/general_settings.dart | 133 +++++++++--------- lib/widgets/layout.dart | 38 +++-- 4 files changed, 130 insertions(+), 147 deletions(-) diff --git a/lib/functions/check_app_updates.dart b/lib/functions/check_app_updates.dart index e6137d7..504ba2c 100644 --- a/lib/functions/check_app_updates.dart +++ b/lib/functions/check_app_updates.dart @@ -1,57 +1,57 @@ -import 'dart:io'; +// import 'dart:io'; -import 'package:install_referrer/install_referrer.dart'; +// import 'package:install_referrer/install_referrer.dart'; -import 'package:adguard_home_manager/functions/compare_versions.dart'; -import 'package:adguard_home_manager/services/external_requests.dart'; -import 'package:adguard_home_manager/models/github_release.dart'; +// import 'package:adguard_home_manager/functions/compare_versions.dart'; +// import 'package:adguard_home_manager/services/external_requests.dart'; +// import 'package:adguard_home_manager/models/github_release.dart'; -Future checkAppUpdates({ - required String currentBuildNumber, - required void Function(GitHubRelease?) setUpdateAvailable, - required InstallationAppReferrer? installationSource, - required bool isBeta -}) async { - var result = isBeta - ? await ExternalRequests.getReleasesGitHub() - : await ExternalRequests.getReleaseData(); +// Future checkAppUpdates({ +// required String currentBuildNumber, +// required void Function(GitHubRelease?) setUpdateAvailable, +// required InstallationAppReferrer? installationSource, +// required bool isBeta +// }) async { +// var result = isBeta +// ? await ExternalRequests.getReleasesGitHub() +// : await ExternalRequests.getReleaseData(); - if (result.successful == true) { - late GitHubRelease gitHubRelease; - if (isBeta) { - gitHubRelease = (result.content as List).firstWhere((r) => r.prerelease == true); - } - else { - gitHubRelease = result.content as GitHubRelease; - } +// if (result.successful == true) { +// late GitHubRelease gitHubRelease; +// if (isBeta) { +// gitHubRelease = (result.content as List).firstWhere((r) => r.prerelease == true); +// } +// else { +// gitHubRelease = result.content as GitHubRelease; +// } - final update = gitHubUpdateExists( - currentBuildNumber: currentBuildNumber, - gitHubRelease: gitHubRelease, - isBeta: isBeta - ); +// final update = gitHubUpdateExists( +// currentBuildNumber: currentBuildNumber, +// gitHubRelease: gitHubRelease, +// isBeta: isBeta +// ); - if (update == true) { - setUpdateAvailable(gitHubRelease); +// if (update == true) { +// setUpdateAvailable(gitHubRelease); - if (Platform.isAndroid) { - if (installationSource == InstallationAppReferrer.androidManually) { - return gitHubRelease; - } - else { - return null; - } - } - else if (Platform.isIOS) { - return null; - } - else { - return gitHubRelease; - } - } - else { - setUpdateAvailable(null); - } - } - return null; -} \ No newline at end of file +// if (Platform.isAndroid) { +// if (installationSource == InstallationAppReferrer.androidManually) { +// return gitHubRelease; +// } +// else { +// return null; +// } +// } +// else if (Platform.isIOS) { +// return null; +// } +// else { +// return gitHubRelease; +// } +// } +// else { +// setUpdateAvailable(null); +// } +// } +// return null; +// } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 854dd43..10b1862 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,7 +4,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; -import 'package:install_referrer/install_referrer.dart'; import 'package:provider/provider.dart'; import 'package:flutter_displaymode/flutter_displaymode.dart'; import 'package:dynamic_color/dynamic_color.dart'; @@ -79,11 +78,6 @@ void main() async { HttpOverrides.global = MyHttpOverrides(); } - if (Platform.isAndroid || Platform.isIOS) { - InstallationAppReferrer installationSource = await InstallReferrer.referrer; - appConfigProvider.setInstallationSource(installationSource); - } - final dbData = await loadDb(); serversProvider.setDbInstance(dbData['dbInstance']); serversProvider.saveFromDb(dbData['servers']); diff --git a/lib/screens/settings/general_settings/general_settings.dart b/lib/screens/settings/general_settings/general_settings.dart index 0029752..f32446d 100644 --- a/lib/screens/settings/general_settings/general_settings.dart +++ b/lib/screens/settings/general_settings/general_settings.dart @@ -1,9 +1,4 @@ -// ignore_for_file: use_build_context_synchronously - -import 'dart:io'; - import 'package:flutter/material.dart'; -import 'package:install_referrer/install_referrer.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -13,11 +8,8 @@ import 'package:adguard_home_manager/screens/settings/general_settings/top_items import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; import 'package:adguard_home_manager/widgets/section_label.dart'; -import 'package:adguard_home_manager/functions/check_app_updates.dart'; import 'package:adguard_home_manager/functions/desktop_mode.dart'; import 'package:adguard_home_manager/functions/snackbar.dart'; -import 'package:adguard_home_manager/functions/open_url.dart'; -import 'package:adguard_home_manager/functions/app_update_download_link.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; class GeneralSettings extends StatefulWidget { @@ -48,6 +40,7 @@ class _GeneralSettingsState extends State { required Future Function(bool) function }) async { final result = await function(newStatus); + if (!context.mounted) return; if (result == true) { showSnackbar( appConfigProvider: appConfigProvider, @@ -64,60 +57,60 @@ class _GeneralSettingsState extends State { } } - Future checkUpdatesAvailable() async { - setState(() => appUpdatesStatus = AppUpdatesStatus.checking); + // Future checkUpdatesAvailable() async { + // setState(() => appUpdatesStatus = AppUpdatesStatus.checking); - final res = await checkAppUpdates( - currentBuildNumber: appConfigProvider.getAppInfo!.buildNumber, - setUpdateAvailable: appConfigProvider.setAppUpdatesAvailable, - installationSource: appConfigProvider.installationSource, - isBeta: appConfigProvider.getAppInfo!.version.contains('beta'), - ); + // final res = await checkAppUpdates( + // currentBuildNumber: appConfigProvider.getAppInfo!.buildNumber, + // setUpdateAvailable: appConfigProvider.setAppUpdatesAvailable, + // installationSource: appConfigProvider.installationSource, + // isBeta: appConfigProvider.getAppInfo!.version.contains('beta'), + // ); - if (!mounted) return; - if (res != null) { - setState(() => appUpdatesStatus = AppUpdatesStatus.available); - } - else { - setState(() => appUpdatesStatus = AppUpdatesStatus.recheck); - } - } + // if (!mounted) return; + // if (res != null) { + // setState(() => appUpdatesStatus = AppUpdatesStatus.available); + // } + // else { + // setState(() => appUpdatesStatus = AppUpdatesStatus.recheck); + // } + // } - Widget generateAppUpdateStatus() { - if (appUpdatesStatus == AppUpdatesStatus.available) { - return IconButton( - onPressed: appConfigProvider.appUpdatesAvailable != null - ? () async { - final link = getAppUpdateDownloadLink(appConfigProvider.appUpdatesAvailable!); - if (link != null) { - openUrl(link); - } - } - : null, - icon: const Icon(Icons.download_rounded), - tooltip: AppLocalizations.of(context)!.downloadUpdate, - ); - } - else if (appUpdatesStatus == AppUpdatesStatus.checking) { - return const Padding( - padding: EdgeInsets.only(right: 16), - child: SizedBox( - width: 24, - height: 24, - child: CircularProgressIndicator( - strokeWidth: 3, - ) - ), - ); - } - else { - return IconButton( - onPressed: checkUpdatesAvailable, - icon: const Icon(Icons.refresh_rounded), - tooltip: AppLocalizations.of(context)!.checkUpdates, - ); - } - } + // Widget generateAppUpdateStatus() { + // if (appUpdatesStatus == AppUpdatesStatus.available) { + // return IconButton( + // onPressed: appConfigProvider.appUpdatesAvailable != null + // ? () async { + // final link = getAppUpdateDownloadLink(appConfigProvider.appUpdatesAvailable!); + // if (link != null) { + // openUrl(link); + // } + // } + // : null, + // icon: const Icon(Icons.download_rounded), + // tooltip: AppLocalizations.of(context)!.downloadUpdate, + // ); + // } + // else if (appUpdatesStatus == AppUpdatesStatus.checking) { + // return const Padding( + // padding: EdgeInsets.only(right: 16), + // child: SizedBox( + // width: 24, + // height: 24, + // child: CircularProgressIndicator( + // strokeWidth: 3, + // ) + // ), + // ); + // } + // else { + // return IconButton( + // onPressed: checkUpdatesAvailable, + // icon: const Icon(Icons.refresh_rounded), + // tooltip: AppLocalizations.of(context)!.checkUpdates, + // ); + // } + // } return Scaffold( appBar: AppBar( @@ -253,17 +246,17 @@ class _GeneralSettingsState extends State { right: 10 ) ), - if (!(Platform.isAndroid || Platform.isIOS) || (Platform.isAndroid && (appConfigProvider.installationSource == InstallationAppReferrer.androidManually ))) ...[ - SectionLabel(label: AppLocalizations.of(context)!.application), - CustomListTile( - icon: Icons.system_update_rounded, - title: AppLocalizations.of(context)!.appUpdates, - subtitle: appConfigProvider.appUpdatesAvailable != null - ? AppLocalizations.of(context)!.updateAvailable - : AppLocalizations.of(context)!.usingLatestVersion, - trailing: generateAppUpdateStatus() - ) - ] + // if (!(Platform.isAndroid || Platform.isIOS) || (Platform.isAndroid && (appConfigProvider.installationSource == InstallationAppReferrer.androidManually ))) ...[ + // SectionLabel(label: AppLocalizations.of(context)!.application), + // CustomListTile( + // icon: Icons.system_update_rounded, + // title: AppLocalizations.of(context)!.appUpdates, + // subtitle: appConfigProvider.appUpdatesAvailable != null + // ? AppLocalizations.of(context)!.updateAvailable + // : AppLocalizations.of(context)!.usingLatestVersion, + // trailing: generateAppUpdateStatus() + // ) + // ] ], ), ) diff --git a/lib/widgets/layout.dart b/lib/widgets/layout.dart index 9a42415..119bee1 100644 --- a/lib/widgets/layout.dart +++ b/lib/widgets/layout.dart @@ -1,14 +1,10 @@ -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:animations/animations.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:adguard_home_manager/widgets/update_modal.dart'; import 'package:adguard_home_manager/widgets/system_ui_overlay_style.dart'; -import 'package:adguard_home_manager/functions/check_app_updates.dart'; -import 'package:adguard_home_manager/functions/open_url.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/config/app_screens.dart'; import 'package:adguard_home_manager/config/sizes.dart'; @@ -37,23 +33,23 @@ class _LayoutState extends State with WidgetsBindingObserver { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) async { - if (kDebugMode) return; // Don't check for app updates on debug mode - final appConfigProvider = Provider.of(context, listen: false); - final result = await checkAppUpdates( - currentBuildNumber: appConfigProvider.getAppInfo!.buildNumber, - installationSource: appConfigProvider.installationSource, - setUpdateAvailable: appConfigProvider.setAppUpdatesAvailable, - isBeta: appConfigProvider.getAppInfo!.version.contains('beta'), - ); - if (result != null && appConfigProvider.doNotRememberVersion != result.tagName && mounted) { - await showDialog( - context: context, - builder: (context) => UpdateModal( - gitHubRelease: result, - onDownload: (link, version) => openUrl(link), - ), - ); - } + // if (kDebugMode) return; // Don't check for app updates on debug mode + // final appConfigProvider = Provider.of(context, listen: false); + // final result = await checkAppUpdates( + // currentBuildNumber: appConfigProvider.getAppInfo!.buildNumber, + // installationSource: appConfigProvider.installationSource, + // setUpdateAvailable: appConfigProvider.setAppUpdatesAvailable, + // isBeta: appConfigProvider.getAppInfo!.version.contains('beta'), + // ); + // if (result != null && appConfigProvider.doNotRememberVersion != result.tagName && mounted) { + // await showDialog( + // context: context, + // builder: (context) => UpdateModal( + // gitHubRelease: result, + // onDownload: (link, version) => openUrl(link), + // ), + // ); + // } }); } From 0d0321a5abce71ebf6c70b3dd30d1e60fa4a0f32 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Thu, 12 Sep 2024 14:47:21 +0200 Subject: [PATCH 205/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index f821dbf..2fd5ee4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.19.0+143 +version: 2.19.1+144 environment: sdk: '>=2.18.1 <3.0.0' From a36335ef9203059ff6364cb868d6463c29e26e23 Mon Sep 17 00:00:00 2001 From: Jeremy Wong Date: Sun, 29 Sep 2024 08:41:07 +1000 Subject: [PATCH 206/236] Fix missing 'path' in serverObj --- lib/widgets/add_server/add_server_modal.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/widgets/add_server/add_server_modal.dart b/lib/widgets/add_server/add_server_modal.dart index ec00ff6..7164ba0 100644 --- a/lib/widgets/add_server/add_server_modal.dart +++ b/lib/widgets/add_server/add_server_modal.dart @@ -142,6 +142,7 @@ class _AddServerModalState extends State { port: portController.text != '' ? int.parse(portController.text) : null, user: userController.text != "" ? userController.text : null, password: passwordController.text != "" ? passwordController.text : null, + path: pathController.text != "" ? pathController.text : null, defaultServer: defaultServer, authToken: homeAssistant == true ? encodeBase64UserPass(userController.text, passwordController.text) From d7392e4b8d167f08802e46b55ad670fc8f9a21f2 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 1 Oct 2024 14:59:24 +0200 Subject: [PATCH 207/236] Updated compileSdkVersion to 35 --- README.md | 1 - android/app/build.gradle | 10 ++- .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/settings.gradle | 2 +- lib/functions/check_app_updates.dart | 57 ----------------- lib/providers/app_config_provider.dart | 12 ---- pubspec.lock | 64 ++++++++----------- pubspec.yaml | 5 +- .../flutter/generated_plugin_registrant.cc | 3 - windows/flutter/generated_plugins.cmake | 2 +- 10 files changed, 37 insertions(+), 121 deletions(-) delete mode 100644 lib/functions/check_app_updates.dart diff --git a/README.md b/README.md index d46c921..843bff8 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,6 @@ If you like the project and you want to contribute with the development, you can - [flutter custom tabs](https://pub.dev/packages/flutter_custom_tabs) - [shared preferences](https://pub.dev/packages/shared_preferences) - [window manager](https://pub.dev/packages/window_manager) -- [install referrer](https://pub.dev/packages/install_referrer)
        diff --git a/android/app/build.gradle b/android/app/build.gradle index 29785d0..ab6291c 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -29,8 +29,9 @@ if (keystorePropertiesFile.exists()) { } android { - compileSdkVersion 34 - ndkVersion flutter.ndkVersion + namespace "com.jgeek00.adguard_home_manager" + compileSdkVersion 35 + ndkVersion "26.1.10909125" compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -46,12 +47,9 @@ android { } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.jgeek00.adguard_home_manager" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. minSdkVersion 26 - targetSdkVersion 34 + targetSdkVersion 35 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 3c472b9..19cfad9 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index b14b9f7..e8481f5 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -19,7 +19,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version '7.4.2' apply false + id "com.android.application" version '8.6.0' apply false id "org.jetbrains.kotlin.android" version "1.8.20" apply false } diff --git a/lib/functions/check_app_updates.dart b/lib/functions/check_app_updates.dart deleted file mode 100644 index 504ba2c..0000000 --- a/lib/functions/check_app_updates.dart +++ /dev/null @@ -1,57 +0,0 @@ -// import 'dart:io'; - -// import 'package:install_referrer/install_referrer.dart'; - -// import 'package:adguard_home_manager/functions/compare_versions.dart'; -// import 'package:adguard_home_manager/services/external_requests.dart'; -// import 'package:adguard_home_manager/models/github_release.dart'; - -// Future checkAppUpdates({ -// required String currentBuildNumber, -// required void Function(GitHubRelease?) setUpdateAvailable, -// required InstallationAppReferrer? installationSource, -// required bool isBeta -// }) async { -// var result = isBeta -// ? await ExternalRequests.getReleasesGitHub() -// : await ExternalRequests.getReleaseData(); - -// if (result.successful == true) { -// late GitHubRelease gitHubRelease; -// if (isBeta) { -// gitHubRelease = (result.content as List).firstWhere((r) => r.prerelease == true); -// } -// else { -// gitHubRelease = result.content as GitHubRelease; -// } - -// final update = gitHubUpdateExists( -// currentBuildNumber: currentBuildNumber, -// gitHubRelease: gitHubRelease, -// isBeta: isBeta -// ); - -// if (update == true) { -// setUpdateAvailable(gitHubRelease); - -// if (Platform.isAndroid) { -// if (installationSource == InstallationAppReferrer.androidManually) { -// return gitHubRelease; -// } -// else { -// return null; -// } -// } -// else if (Platform.isIOS) { -// return null; -// } -// else { -// return gitHubRelease; -// } -// } -// else { -// setUpdateAvailable(null); -// } -// } -// return null; -// } \ No newline at end of file diff --git a/lib/providers/app_config_provider.dart b/lib/providers/app_config_provider.dart index 3b843b9..bb6887c 100644 --- a/lib/providers/app_config_provider.dart +++ b/lib/providers/app_config_provider.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/scheduler.dart'; -import 'package:install_referrer/install_referrer.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:package_info_plus/package_info_plus.dart'; @@ -58,8 +57,6 @@ class AppConfigProvider with ChangeNotifier { GitHubRelease? _appUpdatesAvailable; - InstallationAppReferrer? _installationSource; - PackageInfo? get getAppInfo { return _appInfo; } @@ -162,10 +159,6 @@ class AppConfigProvider with ChangeNotifier { return _appUpdatesAvailable; } - InstallationAppReferrer? get installationSource { - return _installationSource; - } - List get homeTopItemsOrder { return _homeTopItemsOrder; } @@ -227,11 +220,6 @@ class AppConfigProvider with ChangeNotifier { notifyListeners(); } - void setInstallationSource(InstallationAppReferrer value) { - _installationSource = value; - notifyListeners(); - } - Future setOverrideSslCheck(bool status) async { try { sharedPreferencesInstance.setBool('overrideSslCheck', status); diff --git a/pubspec.lock b/pubspec.lock index e7c67eb..0b93bac 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -282,18 +282,18 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + sha256: "619817c4b65b322b5104b6bb6dfe6cda62d9729bd7ad4303ecc8b4e690a67a77" url: "https://pub.dev" source: hosted - version: "0.13.1" + version: "0.14.1" flutter_lints: dependency: "direct dev" description: name: flutter_lints - sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" + sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "5.0.0" flutter_localizations: dependency: "direct main" description: flutter @@ -303,10 +303,10 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: a23c41ee57573e62fc2190a1f36a0480c4d90bde3a8a8d7126e5d5992fb53fb7 + sha256: e17575ca576a34b46c58c91f9948891117a1bd97815d2e661813c7f90c647a78 url: "https://pub.dev" source: hosted - version: "0.7.3+1" + version: "0.7.3+2" flutter_native_splash: dependency: "direct dev" description: @@ -373,14 +373,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.2.0" - install_referrer: - dependency: "direct main" - description: - name: install_referrer - sha256: "901c56d24ee3c3010dfd0bbebf305ed6b4b0f3fe969192081c167590a64cd78b" - url: "https://pub.dev" - source: hosted - version: "1.2.1" intl: dependency: "direct main" description: @@ -425,10 +417,10 @@ packages: dependency: transitive description: name: lints - sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" + sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "5.0.0" list_counter: dependency: transitive description: @@ -601,18 +593,18 @@ packages: dependency: transitive description: name: sentry - sha256: "1af8308298977259430d118ab25be8e1dda626cdefa1e6ce869073d530d39271" + sha256: "033287044a6644a93498969449d57c37907e56f5cedb17b88a3ff20a882261dd" url: "https://pub.dev" source: hosted - version: "8.8.0" + version: "8.9.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: "18fe4d125c2d529bd6127200f0d2895768266a8c60b4fb50b2086fd97e1a4ab2" + sha256: "3780b5a0bb6afd476857cfbc6c7444d969c29a4d9bd1aa5b6960aa76c65b737a" url: "https://pub.dev" source: hosted - version: "8.8.0" + version: "8.9.0" shared_preferences: dependency: "direct main" description: @@ -694,26 +686,26 @@ packages: dependency: "direct main" description: name: sqflite - sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d + sha256: ff5a2436ef8ebdfda748fbfe957f9981524cb5ff11e7bafa8c42771840e8a788 url: "https://pub.dev" source: hosted - version: "2.3.3+1" + version: "2.3.3+2" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "7b41b6c3507854a159e24ae90a8e3e9cc01eb26a477c118d6dca065b5f55453e" + sha256: "2d8e607db72e9cb7748c9c6e739e2c9618320a5517de693d5a24609c4671b1a4" url: "https://pub.dev" source: hosted - version: "2.5.4+2" + version: "2.5.4+4" sqflite_common_ffi: dependency: "direct main" description: name: sqflite_common_ffi - sha256: "4d6137c29e930d6e4a8ff373989dd9de7bac12e3bc87bce950f6e844e8ad3bb5" + sha256: a6057d4c87e9260ba1ec436ebac24760a110589b9c0a859e128842eb69a7ef04 url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.3.3+1" sqlite3: dependency: transitive description: @@ -758,10 +750,10 @@ packages: dependency: transitive description: name: synchronized - sha256: a824e842b8a054f91a728b783c177c1e4731f6b124f9192468457a8913371255 + sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.3.0+3" term_glyph: dependency: transitive description: @@ -838,10 +830,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" + sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" url_launcher_platform_interface: dependency: transitive description: @@ -870,10 +862,10 @@ packages: dependency: "direct main" description: name: uuid - sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.1" vector_graphics: dependency: transitive description: @@ -918,10 +910,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" win32: dependency: transitive description: @@ -934,10 +926,10 @@ packages: dependency: transitive description: name: win32_registry - sha256: "723b7f851e5724c55409bb3d5a32b203b3afe8587eaf5dafb93a5fed8ecda0d6" + sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" url: "https://pub.dev" source: hosted - version: "1.1.4" + version: "1.1.5" window_manager: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 2fd5ee4..4007ef8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -70,7 +70,6 @@ dependencies: url_launcher: ^6.2.4 shared_preferences: ^2.2.2 window_manager: ^0.4.2 - install_referrer: ^1.2.1 dev_dependencies: flutter_test: @@ -81,8 +80,8 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^4.0.0 - flutter_launcher_icons: ^0.13.1 + flutter_lints: ^5.0.0 + flutter_launcher_icons: ^0.14.1 flutter_native_splash: ^2.3.8 # For information on the generic Dart part of this file, see the diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 683e616..e79e36b 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -8,7 +8,6 @@ #include #include -#include #include #include #include @@ -18,8 +17,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); ScreenRetrieverPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("ScreenRetrieverPlugin")); - SentryFlutterPluginRegisterWithRegistrar( - registry->GetRegistrarForPlugin("SentryFlutterPlugin")); Sqlite3FlutterLibsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin")); UrlLauncherWindowsRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index b2ba396..38558c8 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -5,13 +5,13 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color screen_retriever - sentry_flutter sqlite3_flutter_libs url_launcher_windows window_manager ) list(APPEND FLUTTER_FFI_PLUGIN_LIST + sentry_flutter ) set(PLUGIN_BUNDLED_LIBRARIES) From 9d4c0028138048b69597b19ff0526788214d8789 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 1 Oct 2024 15:00:18 +0200 Subject: [PATCH 208/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 4007ef8..e1bb529 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.19.1+144 +version: 2.19.2+145 environment: sdk: '>=2.18.1 <3.0.0' From aa511f8c4273cb16dd491cf9c3e51a4b1ef8ad5d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 1 Oct 2024 16:21:00 +0200 Subject: [PATCH 209/236] Updated macos pods --- macos/Podfile.lock | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 54fe2f5..e815ee7 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -8,11 +8,11 @@ PODS: - FlutterMacOS - screen_retriever (0.0.1): - FlutterMacOS - - Sentry/HybridSDK (8.35.1) - - sentry_flutter (8.8.0): + - Sentry/HybridSDK (8.36.0) + - sentry_flutter (8.9.0): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.35.1) + - Sentry/HybridSDK (= 8.36.0) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS @@ -37,8 +37,6 @@ PODS: - sqlite3/fts5 - sqlite3/perf-threadsafe - sqlite3/rtree - - store_checker (0.0.1): - - FlutterMacOS - url_launcher_macos (0.0.1): - FlutterMacOS - window_manager (0.2.0): @@ -54,7 +52,6 @@ DEPENDENCIES: - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`) - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) - - store_checker (from `Flutter/ephemeral/.symlinks/plugins/store_checker/macos`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`) @@ -82,8 +79,6 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/sqflite/darwin sqlite3_flutter_libs: :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos - store_checker: - :path: Flutter/ephemeral/.symlinks/plugins/store_checker/macos url_launcher_macos: :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos window_manager: @@ -95,14 +90,13 @@ SPEC CHECKSUMS: FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38 - Sentry: 1fe34e9c2cbba1e347623610d26db121dcb569f1 - sentry_flutter: a39c2a2d67d5e5b9cb0b94a4985c76dd5b3fc737 + Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57 + sentry_flutter: 0eb93e5279eb41e2392212afe1ccd2fecb4f8cbe shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb sqlite3_flutter_libs: 5ca46c1a04eddfbeeb5b16566164aa7ad1616e7b - store_checker: 387169de0dffe57b6370d54cc027e9f95051b57f - url_launcher_macos: 5f437abeda8c85500ceb03f5c1938a8c5a705399 + url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404 window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 From 1b5f258c96f6feb74652e34d031a911b6e329a15 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 1 Oct 2024 18:50:37 +0200 Subject: [PATCH 210/236] Fixed windows installer builder --- windows/innosetup_installer_builder.iss | 1 - 1 file changed, 1 deletion(-) diff --git a/windows/innosetup_installer_builder.iss b/windows/innosetup_installer_builder.iss index b2a93ce..ed5df88 100644 --- a/windows/innosetup_installer_builder.iss +++ b/windows/innosetup_installer_builder.iss @@ -41,7 +41,6 @@ Source: "..\build\windows\x64\runner\Release\{#MyAppExeName}"; DestDir: "{app}"; Source: "..\build\windows\x64\runner\Release\dynamic_color_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\flutter_windows.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\screen_retriever_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion -Source: "..\build\windows\x64\runner\Release\sentry_flutter_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\sqlite3.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\sqlite3_flutter_libs_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "..\build\windows\x64\runner\Release\url_launcher_windows_plugin.dll"; DestDir: "{app}"; Flags: ignoreversion From 2a0db8495928b69f5e3c4033cf1ae4b722cf7ede Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 21 Jan 2025 20:47:10 +0100 Subject: [PATCH 211/236] Updated libraries and other stuff --- linux/flutter/generated_plugin_registrant.cc | 8 +- linux/flutter/generated_plugins.cmake | 2 +- macos/Flutter/GeneratedPluginRegistrant.swift | 6 +- pubspec.lock | 306 +++++++++++------- pubspec.yaml | 6 +- .../flutter/generated_plugin_registrant.cc | 9 +- windows/flutter/generated_plugins.cmake | 4 +- 7 files changed, 204 insertions(+), 137 deletions(-) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index fd3f3f5..4fbee04 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -7,7 +7,7 @@ #include "generated_plugin_registrant.h" #include -#include +#include #include #include #include @@ -17,9 +17,9 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) dynamic_color_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "DynamicColorPlugin"); dynamic_color_plugin_register_with_registrar(dynamic_color_registrar); - g_autoptr(FlPluginRegistrar) screen_retriever_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverPlugin"); - screen_retriever_plugin_register_with_registrar(screen_retriever_registrar); + g_autoptr(FlPluginRegistrar) screen_retriever_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverLinuxPlugin"); + screen_retriever_linux_plugin_register_with_registrar(screen_retriever_linux_registrar); g_autoptr(FlPluginRegistrar) sentry_flutter_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "SentryFlutterPlugin"); sentry_flutter_plugin_register_with_registrar(sentry_flutter_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 307410d..787cc64 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -4,7 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color - screen_retriever + screen_retriever_linux sentry_flutter sqlite3_flutter_libs url_launcher_linux diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 28ea475..69e9dbc 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -8,10 +8,10 @@ import Foundation import device_info_plus import dynamic_color import package_info_plus -import screen_retriever +import screen_retriever_macos import sentry_flutter import shared_preferences_foundation -import sqflite +import sqflite_darwin import sqlite3_flutter_libs import url_launcher_macos import window_manager @@ -20,7 +20,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) DynamicColorPlugin.register(with: registry.registrar(forPlugin: "DynamicColorPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) - ScreenRetrieverPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverPlugin")) + ScreenRetrieverMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverMacosPlugin")) SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) diff --git a/pubspec.lock b/pubspec.lock index 0b93bac..da7317f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -29,18 +29,18 @@ packages: dependency: transitive description: name: archive - sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a" url: "https://pub.dev" source: hosted - version: "3.6.1" + version: "4.0.2" args: dependency: transitive description: name: args - sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.6.0" async: dependency: "direct main" description: @@ -77,10 +77,10 @@ packages: dependency: transitive description: name: cli_util - sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c url: "https://pub.dev" source: hosted - version: "0.4.1" + version: "0.4.2" clock: dependency: transitive description: @@ -93,10 +93,10 @@ packages: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" contextmenu: dependency: "direct main" description: @@ -109,10 +109,10 @@ packages: dependency: transitive description: name: crypto - sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.6" csslib: dependency: transitive description: @@ -133,18 +133,18 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074 + sha256: b37d37c2f912ad4e8ec694187de87d05de2a3cb82b465ff1f65f65a2d05de544 url: "https://pub.dev" source: hosted - version: "10.1.2" + version: "11.2.1" device_info_plus_platform_interface: dependency: transitive description: name: device_info_plus_platform_interface - sha256: "282d3cf731045a2feb66abfe61bbc40870ae50a3ed10a4d3d217556c35c8c2ba" + sha256: "0b04e02b30791224b31969eb1b50d723498f402971bff3630bca2ba839bd1ed2" url: "https://pub.dev" source: hosted - version: "7.0.1" + version: "7.0.2" dynamic_color: dependency: "direct main" description: @@ -157,10 +157,10 @@ packages: dependency: transitive description: name: equatable - sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" url: "https://pub.dev" source: hosted - version: "2.0.5" + version: "2.0.7" expandable: dependency: "direct main" description: @@ -189,26 +189,26 @@ packages: dependency: transitive description: name: file - sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.0.1" fixnum: dependency: transitive description: name: fixnum - sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" fl_chart: dependency: "direct main" description: name: fl_chart - sha256: "94307bef3a324a0d329d3ab77b2f0c6e5ed739185ffc029ed28c0f9b019ea7ef" + sha256: "5276944c6ffc975ae796569a826c38a62d2abcf264e26b88fa6f482e107f4237" url: "https://pub.dev" source: hosted - version: "0.69.0" + version: "0.70.2" flutter: dependency: "direct main" description: flutter @@ -266,10 +266,10 @@ packages: dependency: "direct main" description: name: flutter_dotenv - sha256: "9357883bdd153ab78cbf9ffa07656e336b8bbb2b5a3ca596b0b27e119f7c7d77" + sha256: b7c7be5cd9f6ef7a78429cabd2774d3c4af50e79cb2b7593e3d5d763ef95c61b url: "https://pub.dev" source: hosted - version: "5.1.0" + version: "5.2.1" flutter_html: dependency: "direct main" description: @@ -282,10 +282,10 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: "619817c4b65b322b5104b6bb6dfe6cda62d9729bd7ad4303ecc8b4e690a67a77" + sha256: bfa04787c85d80ecb3f8777bde5fc10c3de809240c48fa061a2c2bf15ea5211c url: "https://pub.dev" source: hosted - version: "0.14.1" + version: "0.14.3" flutter_lints: dependency: "direct dev" description: @@ -303,18 +303,18 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: e17575ca576a34b46c58c91f9948891117a1bd97815d2e661813c7f90c647a78 + sha256: e37f4c69a07b07bb92622ef6b131a53c9aae48f64b176340af9e8e5238718487 url: "https://pub.dev" source: hosted - version: "0.7.3+2" + version: "0.7.5" flutter_native_splash: dependency: "direct dev" description: name: flutter_native_splash - sha256: aa06fec78de2190f3db4319dd60fdc8d12b2626e93ef9828633928c2dcaea840 + sha256: "7062602e0dbd29141fb8eb19220b5871ca650be5197ab9c1f193a28b17537bc7" url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.4" flutter_reorderable_list: dependency: "direct main" description: @@ -327,10 +327,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" + sha256: c200fd79c918a40c5cd50ea0877fa13f81bdaf6f0a5d3dbcc2a13e3285d6aa1b url: "https://pub.dev" source: hosted - version: "2.0.10+1" + version: "2.0.17" flutter_test: dependency: "direct dev" description: flutter @@ -353,26 +353,26 @@ packages: dependency: "direct main" description: name: http - sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.3.0" http_parser: dependency: transitive description: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.2" image: dependency: transitive description: name: image - sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" + sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6" url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "4.5.2" intl: dependency: "direct main" description: @@ -393,18 +393,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -417,10 +417,10 @@ packages: dependency: transitive description: name: lints - sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413" + sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "5.1.1" list_counter: dependency: transitive description: @@ -433,10 +433,10 @@ packages: dependency: "direct main" description: name: markdown - sha256: ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051 + sha256: "935e23e1ff3bc02d390bad4d4be001208ee92cc217cb5b5a6c19bc14aaa318c1" url: "https://pub.dev" source: hosted - version: "7.2.2" + version: "7.3.0" matcher: dependency: transitive description: @@ -473,18 +473,18 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: a75164ade98cb7d24cfd0a13c6408927c6b217fa60dee5a7ff5c116a58f28918 + sha256: "739e0a5c3c4055152520fa321d0645ee98e932718b4c8efeeb51451968fe0790" url: "https://pub.dev" source: hosted - version: "8.0.2" + version: "8.1.3" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 + sha256: a5ef9986efc7bf772f2696183a3992615baa76c1ffb1189318dd8803778fb05b url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" path: dependency: transitive description: @@ -497,10 +497,10 @@ packages: dependency: transitive description: name: path_parsing - sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.1.0" path_provider_linux: dependency: transitive description: @@ -529,10 +529,10 @@ packages: dependency: "direct main" description: name: percent_indicator - sha256: c37099ad833a883c9d71782321cb65c3a848c21b6939b6185f0ff6640d05814c + sha256: "0d77d5c6fa9b7f60202cedf748b568ba9ba38d3f30405d6ceae4da76f5185462" url: "https://pub.dev" source: hosted - version: "4.2.3" + version: "4.2.4" petitparser: dependency: transitive description: @@ -553,10 +553,10 @@ packages: dependency: transitive description: name: platform - sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" url: "https://pub.dev" source: hosted - version: "3.1.5" + version: "3.1.6" plugin_platform_interface: dependency: transitive description: @@ -565,6 +565,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + posix: + dependency: transitive + description: + name: posix + sha256: a0117dc2167805aa9125b82eee515cc891819bac2f538c83646d355b16f58b9a + url: "https://pub.dev" + source: hosted + version: "6.0.1" provider: dependency: "direct main" description: @@ -577,10 +585,42 @@ packages: dependency: transitive description: name: screen_retriever - sha256: "6ee02c8a1158e6dae7ca430da79436e3b1c9563c8cf02f524af997c201ac2b90" + sha256: "570dbc8e4f70bac451e0efc9c9bb19fa2d6799a11e6ef04f946d7886d2e23d0c" url: "https://pub.dev" source: hosted - version: "0.1.9" + version: "0.2.0" + screen_retriever_linux: + dependency: transitive + description: + name: screen_retriever_linux + sha256: f7f8120c92ef0784e58491ab664d01efda79a922b025ff286e29aa123ea3dd18 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + screen_retriever_macos: + dependency: transitive + description: + name: screen_retriever_macos + sha256: "71f956e65c97315dd661d71f828708bd97b6d358e776f1a30d5aa7d22d78a149" + url: "https://pub.dev" + source: hosted + version: "0.2.0" + screen_retriever_platform_interface: + dependency: transitive + description: + name: screen_retriever_platform_interface + sha256: ee197f4581ff0d5608587819af40490748e1e39e648d7680ecf95c05197240c0 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + screen_retriever_windows: + dependency: transitive + description: + name: screen_retriever_windows + sha256: "449ee257f03ca98a57288ee526a301a430a344a161f9202b4fcc38576716fe13" + url: "https://pub.dev" + source: hosted + version: "0.2.0" segmented_button_slide: dependency: "direct main" description: @@ -593,42 +633,42 @@ packages: dependency: transitive description: name: sentry - sha256: "033287044a6644a93498969449d57c37907e56f5cedb17b88a3ff20a882261dd" + sha256: "576ad83415102ba2060142a6701611abc6e67a55af1d7ab339cedd3ba1b0f84c" url: "https://pub.dev" source: hosted - version: "8.9.0" + version: "8.12.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: "3780b5a0bb6afd476857cfbc6c7444d969c29a4d9bd1aa5b6960aa76c65b737a" + sha256: dc3761e8659839cc67a18432d9f12e5531affb7ff68e196dbb56846909b5dfdc url: "https://pub.dev" source: hosted - version: "8.9.0" + version: "8.12.0" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" + sha256: a752ce92ea7540fc35a0d19722816e04d0e72828a4200e83a98cf1a1eb524c9a url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.5" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e" + sha256: "138b7bbbc7f59c56236e426c37afb8f78cbc57b094ac64c440e0bb90e380a4f5" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.2" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.5.2" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: @@ -665,7 +705,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_span: dependency: transitive description: @@ -686,50 +726,74 @@ packages: dependency: "direct main" description: name: sqflite - sha256: ff5a2436ef8ebdfda748fbfe957f9981524cb5ff11e7bafa8c42771840e8a788 + sha256: "2d7299468485dca85efeeadf5d38986909c5eb0cd71fd3db2c2f000e6c9454bb" url: "https://pub.dev" source: hosted - version: "2.3.3+2" + version: "2.4.1" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3" + url: "https://pub.dev" + source: hosted + version: "2.4.0" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "2d8e607db72e9cb7748c9c6e739e2c9618320a5517de693d5a24609c4671b1a4" + sha256: "761b9740ecbd4d3e66b8916d784e581861fd3c3553eda85e167bc49fdb68f709" url: "https://pub.dev" source: hosted - version: "2.5.4+4" + version: "2.5.4+6" sqflite_common_ffi: dependency: "direct main" description: name: sqflite_common_ffi - sha256: a6057d4c87e9260ba1ec436ebac24760a110589b9c0a859e128842eb69a7ef04 + sha256: "883dd810b2b49e6e8c3b980df1829ef550a94e3f87deab5d864917d27ca6bf36" url: "https://pub.dev" source: hosted - version: "2.3.3+1" + version: "2.3.4+4" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: "22adfd9a2c7d634041e96d6241e6e1c8138ca6817018afc5d443fef91dcefa9c" + url: "https://pub.dev" + source: hosted + version: "2.4.1+1" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" + url: "https://pub.dev" + source: hosted + version: "2.4.0" sqlite3: dependency: transitive description: name: sqlite3 - sha256: "45f168ae2213201b54e09429ed0c593dc2c88c924a1488d6f9c523a255d567cb" + sha256: "35d3726fe18ab1463403a5cc8d97dbc81f2a0b08082e8173851363fcc97b6627" url: "https://pub.dev" source: hosted - version: "2.4.6" + version: "2.7.2" sqlite3_flutter_libs: dependency: "direct main" description: name: sqlite3_flutter_libs - sha256: "62bbb4073edbcdf53f40c80775f33eea01d301b7b81417e5b3fb7395416258c1" + sha256: "50a7e3f294c741d3142eed0ff228e38498334e11e0ccb9d73e0496e005949e44" url: "https://pub.dev" source: hosted - version: "0.5.24" + version: "0.5.29" stack_trace: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.0" stream_channel: dependency: transitive description: @@ -742,10 +806,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" synchronized: dependency: transitive description: @@ -766,26 +830,26 @@ packages: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.3" timezone: dependency: "direct main" description: name: timezone - sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d" + sha256: ffc9d5f4d1193534ef051f9254063fa53d588609418c84299956c3db9383587d url: "https://pub.dev" source: hosted - version: "0.9.4" + version: "0.10.0" typed_data: dependency: transitive description: name: typed_data - sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.4.0" universal_io: dependency: transitive description: @@ -798,42 +862,42 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" + sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.3.1" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab + sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193" url: "https://pub.dev" source: hosted - version: "6.3.10" + version: "6.3.14" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e + sha256: "16a513b6c12bb419304e72ea0ae2ab4fed569920d1c7cb850263fe3acc824626" url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" url_launcher_platform_interface: dependency: transitive description: @@ -846,18 +910,18 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" + sha256: "3ba963161bd0fe395917ba881d320b9c4f6dd3c4a233da62ab18a5025c85f1e9" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.0" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" + sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.4" uuid: dependency: "direct main" description: @@ -870,26 +934,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" + sha256: "27d5fefe86fb9aace4a9f8375b56b3c292b64d8c04510df230f849850d912cb7" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.15" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.13" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" + sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.16" vector_math: dependency: transitive description: @@ -902,10 +966,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.3.0" web: dependency: transitive description: @@ -918,10 +982,10 @@ packages: dependency: transitive description: name: win32 - sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" + sha256: "154360849a56b7b67331c21f09a386562d88903f90a1099c5987afc1912e1f29" url: "https://pub.dev" source: hosted - version: "5.5.4" + version: "5.10.0" win32_registry: dependency: transitive description: @@ -934,18 +998,18 @@ packages: dependency: "direct main" description: name: window_manager - sha256: ab8b2a7f97543d3db2b506c9d875e637149d48ee0c6a5cb5f5fd6e0dac463792 + sha256: "732896e1416297c63c9e3fb95aea72d0355f61390263982a47fd519169dc5059" url: "https://pub.dev" source: hosted - version: "0.4.2" + version: "0.4.3" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.1.0" xml: dependency: transitive description: @@ -958,10 +1022,10 @@ packages: dependency: transitive description: name: yaml - sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" sdks: - dart: ">=3.5.0 <4.0.0" - flutter: ">=3.24.0" + dart: ">=3.6.0 <4.0.0" + flutter: ">=3.27.0" diff --git a/pubspec.yaml b/pubspec.yaml index e1bb529..eb0a3f8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -45,10 +45,10 @@ dependencies: flutter_displaymode: ^0.6.0 dynamic_color: ^1.7.0 animations: ^2.0.10 - device_info_plus: ^10.1.0 + device_info_plus: ^11.2.1 uuid: ^4.2.1 expandable: ^5.0.1 - fl_chart: ^0.69.0 + fl_chart: ^0.70.2 flutter_svg: ^2.0.9 percent_indicator: ^4.2.3 flutter_markdown: ^0.7.1 @@ -65,7 +65,7 @@ dependencies: pie_chart: ^5.4.0 segmented_button_slide: ^2.0.0 http: ^1.1.2 - timezone: ^0.9.2 + timezone: ^0.10.0 flutter_custom_tabs: ^2.0.0+1 url_launcher: ^6.2.4 shared_preferences: ^2.2.2 diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index e79e36b..b0ea5ac 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -7,7 +7,8 @@ #include "generated_plugin_registrant.h" #include -#include +#include +#include #include #include #include @@ -15,8 +16,10 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { DynamicColorPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); - ScreenRetrieverPluginRegisterWithRegistrar( - registry->GetRegistrarForPlugin("ScreenRetrieverPlugin")); + ScreenRetrieverWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ScreenRetrieverWindowsPluginCApi")); + SentryFlutterPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SentryFlutterPlugin")); Sqlite3FlutterLibsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin")); UrlLauncherWindowsRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 38558c8..5ab1216 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -4,14 +4,14 @@ list(APPEND FLUTTER_PLUGIN_LIST dynamic_color - screen_retriever + screen_retriever_windows + sentry_flutter sqlite3_flutter_libs url_launcher_windows window_manager ) list(APPEND FLUTTER_FFI_PLUGIN_LIST - sentry_flutter ) set(PLUGIN_BUNDLED_LIBRARIES) From 06c9f7c771bedf6f1ef80b0095b1482b7c5c32eb Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 21 Jan 2025 20:47:24 +0100 Subject: [PATCH 212/236] Added support for custom time in logs settings --- .../logs_settings/config_widgets.dart | 37 +++++++++-- .../settings/logs_settings/logs_settings.dart | 61 ++++++++++++++----- 2 files changed, 78 insertions(+), 20 deletions(-) diff --git a/lib/screens/settings/logs_settings/config_widgets.dart b/lib/screens/settings/logs_settings/config_widgets.dart index 002fd96..16700a9 100644 --- a/lib/screens/settings/logs_settings/config_widgets.dart +++ b/lib/screens/settings/logs_settings/config_widgets.dart @@ -12,13 +12,16 @@ class LogsConfigOptions extends StatelessWidget { final void Function(bool) updateGeneralSwitch; final bool anonymizeClientIp; final void Function(bool) updateAnonymizeClientIp; - final List retentionItems; - final double? retentionTime; - final void Function(double?) updateRetentionTime; + final List retentionItems; + final String? retentionTime; + final void Function(String?) updateRetentionTime; final void Function() onClear; final void Function() onConfirm; final List ignoredDomainsControllers; final void Function(List) updateIgnoredDomainsControllers; + final TextEditingController customTimeController; + final String? customTimeError; + final void Function(String) validateCustomTime; const LogsConfigOptions({ super.key, @@ -32,7 +35,10 @@ class LogsConfigOptions extends StatelessWidget { required this.onClear, required this.onConfirm, required this.ignoredDomainsControllers, - required this.updateIgnoredDomainsControllers + required this.updateIgnoredDomainsControllers, + required this.customTimeController, + required this.customTimeError, + required this.validateCustomTime, }); @override @@ -40,6 +46,7 @@ class LogsConfigOptions extends StatelessWidget { const Uuid uuid = Uuid(); final List dropdownItemTranslation = [ + AppLocalizations.of(context)!.custom, AppLocalizations.of(context)!.hours6, AppLocalizations.of(context)!.hours24, AppLocalizations.of(context)!.days7, @@ -67,7 +74,7 @@ class LogsConfigOptions extends StatelessWidget { }).toList() ); } - +print(retentionTime); return ListView( children: [ const SizedBox(height: 16), @@ -92,7 +99,7 @@ class LogsConfigOptions extends StatelessWidget { child: Text(dropdownItemTranslation[item.key]), )).toList(), value: retentionTime, - onChanged: (value) => updateRetentionTime(double.tryParse(value.toString())), + onChanged: (value) => updateRetentionTime(value.toString()), decoration: InputDecoration( border: const OutlineInputBorder( borderRadius: BorderRadius.all( @@ -104,6 +111,24 @@ class LogsConfigOptions extends StatelessWidget { borderRadius: BorderRadius.circular(20), ), ), + if (retentionTime == "custom") Padding( + padding: const EdgeInsets.only(top: 24, left: 16, right: 16), + child: TextFormField( + controller: customTimeController, + onChanged: validateCustomTime, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.schedule_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.customTimeInHours, + errorText: customTimeError + ), + keyboardType: TextInputType.number, + ), + ), Padding( padding: const EdgeInsets.only(top: 24, bottom: 8), child: Row( diff --git a/lib/screens/settings/logs_settings/logs_settings.dart b/lib/screens/settings/logs_settings/logs_settings.dart index 0d55ce5..c31304f 100644 --- a/lib/screens/settings/logs_settings/logs_settings.dart +++ b/lib/screens/settings/logs_settings/logs_settings.dart @@ -37,15 +37,18 @@ class _LogsSettingsState extends State { bool generalSwitch = false; bool anonymizeClientIp = false; - double? retentionTime; + String? retentionTime; List _ignoredDomainsControllers = []; + final _customTimeController = TextEditingController(); + String? _customTimeError = null; - List retentionItems = [ - 21600000, - 86400000, - 604800000, - 2592000000, - 7776000000 + List retentionItems = [ + "custom", + "21600000", + "86400000", + "604800000", + "2592000000", + "7776000000" ]; LoadStatus loadStatus = LoadStatus.loading; @@ -61,9 +64,10 @@ class _LogsSettingsState extends State { setState(() { generalSwitch = data.enabled ?? false; anonymizeClientIp = data.anonymizeClientIp ?? false; - retentionTime = data.interval != null - ? double.parse(data.interval.toString()) - : null; + retentionTime = retentionItems.contains(data.interval.toString()) ? data.interval.toString() : "custom"; + if (data.interval != null && !retentionItems.contains(data.interval.toString())) { + _customTimeController.text = (data.interval!/3.6e+6).toInt().toString(); + } if (data.ignored != null) { _ignoredDomainsControllers = data.ignored!.map((e) => DomainListItemController( id: uuid.v4(), @@ -79,6 +83,34 @@ class _LogsSettingsState extends State { } } + void validateCustomTime(String value) { + try { + final regex = RegExp(r'^\d+$'); + final parsed = int.parse(value); + if (!regex.hasMatch(value)) { + setState(() => _customTimeError = AppLocalizations.of(context)!.invalidTime); + } + else if (parsed < 1) { + setState(() => _customTimeError = AppLocalizations.of(context)!.notLess1Hour); + } + else { + setState(() => _customTimeError = null); + } + } catch (_) { + setState(() => _customTimeError = AppLocalizations.of(context)!.invalidTime); + } + } + + bool checkValidValues() { + if (_ignoredDomainsControllers.where((d) => d.controller.text == "" || d.error == true).isNotEmpty) { + return false; + } + if (retentionTime == "custom" && (_customTimeError != null || _customTimeController.text == "")) { + return false; + } + return true; + } + @override void initState() { loadData(); @@ -90,9 +122,7 @@ class _LogsSettingsState extends State { final serversProvider = Provider.of(context); final appConfigProvider = Provider.of(context); - final validValues = _ignoredDomainsControllers.where( - (d) => d.controller.text == "" || d.error == true - ).isEmpty; + final validValues = checkValidValues(); void clearQueries() async { ProcessModal processModal = ProcessModal(); @@ -127,7 +157,7 @@ class _LogsSettingsState extends State { final result = await serversProvider.apiClient2!.updateQueryLogParameters( data: { "enabled": generalSwitch, - "interval": retentionTime, + "interval": retentionTime == "custom" ? int.parse(_customTimeController.text)*3.6e+6 : int.parse(retentionTime!) , "anonymize_client_ip": anonymizeClientIp, "ignored": _ignoredDomainsControllers.map((e) => e.controller.text).toList() } @@ -198,6 +228,9 @@ class _LogsSettingsState extends State { onConfirm: updateConfig, ignoredDomainsControllers: _ignoredDomainsControllers, updateIgnoredDomainsControllers: (v) => setState(() => _ignoredDomainsControllers = v), + customTimeController: _customTimeController, + customTimeError: _customTimeError, + validateCustomTime: validateCustomTime, ); case LoadStatus.error: From 791400f5655eb5c387787f7d37912bc44c77e04e Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 21 Jan 2025 20:55:54 +0100 Subject: [PATCH 213/236] Added settings links --- lib/constants/urls.dart | 2 ++ lib/l10n/app_en.arb | 6 ++++- lib/l10n/app_es.arb | 6 ++++- lib/screens/settings/settings.dart | 41 ++++++++---------------------- 4 files changed, 23 insertions(+), 32 deletions(-) diff --git a/lib/constants/urls.dart b/lib/constants/urls.dart index b7eb069..0a8ece3 100644 --- a/lib/constants/urls.dart +++ b/lib/constants/urls.dart @@ -7,4 +7,6 @@ class Urls { static const String adGuardHomeReleasesTags = "https://api.github.com/repos/AdGuardTeam/AdGuardHome/releases/tags"; static const String googleSearchUrl = "https://www.google.com/search"; static const String connectionInstructions = "https://github.com/JGeek00/adguard-home-manager/wiki/Create-a-connection"; + static const String appDetailsWebpage = "https://apps.jgeek00.com/jlfed8mcgyz6laf"; + static const String jgeek00AppsWebpage = "https://apps.jgeek00.com"; } \ No newline at end of file diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 609c616..d72a148 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -797,5 +797,9 @@ "dnsServerAddressCopied": "DNS server address copied to the clipboard", "select": "Select", "liveLogs": "Live logs", - "hereWillAppearRealtimeLogs": "Here there will appear the logs on realtime." + "hereWillAppearRealtimeLogs": "Here there will appear the logs on realtime.", + "applicationDetails": "Application details", + "applicationDetailsDescription": "App repository, stores where it's available, and more", + "myOtherApps": "Check my other apps", + "myOtherAppsDescription": "Created by JGeek00" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 231eeaf..952104a 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -797,5 +797,9 @@ "dnsServerAddressCopied": "Dirección del servidor DNS copiada al portapapeles", "select": "Seleccionar", "liveLogs": "Registros en directo", - "hereWillAppearRealtimeLogs": "Aquí aparecerán los registros en tiempo real." + "hereWillAppearRealtimeLogs": "Aquí aparecerán los registros en tiempo real.", + "applicationDetails": "Detalles de la aplicación", + "applicationDetailsDescription": "Repositorio de la app, tiendas donde está disponible, y más", + "myOtherApps": "Comprueba mis otras apps", + "myOtherAppsDescription": "Creadas por JGeek00" } \ No newline at end of file diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index 0f55b89..d38d9d7 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -273,37 +273,18 @@ class _SettingsWidgetState extends State<_SettingsWidget> { subtitle: appConfigProvider.getAppInfo!.version, ), CustomListTile( - title: AppLocalizations.of(context)!.createdBy, - subtitle: Strings.createdBy, + title: AppLocalizations.of(context)!.applicationDetails, + subtitle: AppLocalizations.of(context)!.applicationDetailsDescription, + trailing: Icon(Icons.open_in_new_rounded), + onTap: () => openUrl(Urls.appDetailsWebpage), ), - Padding( - padding: const EdgeInsets.all(15), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - if (Platform.isAndroid) IconButton( - onPressed: () => openUrl(Urls.playStore), - icon: SvgPicture.asset( - 'assets/resources/google-play.svg', - color: Theme.of(context).colorScheme.onSurfaceVariant, - width: 30, - height: 30, - ), - tooltip: AppLocalizations.of(context)!.visitGooglePlay, - ), - IconButton( - onPressed: () => openUrl(Urls.gitHub), - icon: SvgPicture.asset( - 'assets/resources/github.svg', - color: Theme.of(context).colorScheme.onSurfaceVariant, - width: 30, - height: 30, - ), - tooltip: AppLocalizations.of(context)!.gitHub, - ), - ], - ), - ) + CustomListTile( + title: AppLocalizations.of(context)!.myOtherApps, + subtitle: AppLocalizations.of(context)!.myOtherAppsDescription, + trailing: Icon(Icons.open_in_new_rounded), + onTap: () => openUrl(Urls.jgeek00AppsWebpage), + ), + SizedBox(height: 16) ], ) ], From 47b5313bf36fb8f913139ffce383c52d5dc72ca6 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 21 Jan 2025 20:56:56 +0100 Subject: [PATCH 214/236] Removed unused imports --- lib/screens/settings/settings.dart | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/screens/settings/settings.dart b/lib/screens/settings/settings.dart index d38d9d7..6c388cf 100644 --- a/lib/screens/settings/settings.dart +++ b/lib/screens/settings/settings.dart @@ -1,8 +1,6 @@ -import 'dart:io'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/settings/server_info/server_info.dart'; @@ -25,7 +23,6 @@ import 'package:adguard_home_manager/widgets/section_label.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; import 'package:adguard_home_manager/functions/desktop_mode.dart'; -import 'package:adguard_home_manager/constants/strings.dart'; import 'package:adguard_home_manager/functions/open_url.dart'; import 'package:adguard_home_manager/constants/urls.dart'; import 'package:adguard_home_manager/providers/status_provider.dart'; From 10ff5183f14453fdbaa6f55a968d172831feeb5c Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 21 Jan 2025 21:54:04 +0100 Subject: [PATCH 215/236] Added sorting options custom rules --- lib/constants/enums.dart | 3 +- lib/l10n/app_en.arb | 4 +- lib/l10n/app_es.arb | 4 +- lib/screens/filters/custom_rules_list.dart | 30 +++- .../modals/custom_rules/sort_rules.dart | 128 ++++++++++++++++++ 5 files changed, 161 insertions(+), 8 deletions(-) create mode 100644 lib/screens/filters/modals/custom_rules/sort_rules.dart diff --git a/lib/constants/enums.dart b/lib/constants/enums.dart index f54e665..569db37 100644 --- a/lib/constants/enums.dart +++ b/lib/constants/enums.dart @@ -1,2 +1,3 @@ enum LoadStatus { loading, loaded, error } -enum HomeTopItems { queriedDomains, blockedDomains, recurrentClients, topUpstreams, avgUpstreamResponseTime } \ No newline at end of file +enum HomeTopItems { queriedDomains, blockedDomains, recurrentClients, topUpstreams, avgUpstreamResponseTime } +enum CustomRulesSorting { topBottom, bottomTop } \ No newline at end of file diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index d72a148..4602c27 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -801,5 +801,7 @@ "applicationDetails": "Application details", "applicationDetailsDescription": "App repository, stores where it's available, and more", "myOtherApps": "Check my other apps", - "myOtherAppsDescription": "Created by JGeek00" + "myOtherAppsDescription": "Created by JGeek00", + "topToBottom": "From top to bottom", + "bottomToTop": "From bottom to top" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 952104a..862e375 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -801,5 +801,7 @@ "applicationDetails": "Detalles de la aplicación", "applicationDetailsDescription": "Repositorio de la app, tiendas donde está disponible, y más", "myOtherApps": "Comprueba mis otras apps", - "myOtherAppsDescription": "Creadas por JGeek00" + "myOtherAppsDescription": "Creadas por JGeek00", + "topToBottom": "Desde arriba hacia abajo", + "bottomToTop": "Desde abajo hacia arriba" } \ No newline at end of file diff --git a/lib/screens/filters/custom_rules_list.dart b/lib/screens/filters/custom_rules_list.dart index 4cd5bde..284e15f 100644 --- a/lib/screens/filters/custom_rules_list.dart +++ b/lib/screens/filters/custom_rules_list.dart @@ -6,6 +6,7 @@ import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/filters/add_button.dart'; +import 'package:adguard_home_manager/screens/filters/modals/custom_rules/sort_rules.dart'; import 'package:adguard_home_manager/widgets/tab_content_list.dart'; import 'package:adguard_home_manager/functions/snackbar.dart'; @@ -34,6 +35,8 @@ class CustomRulesList extends StatefulWidget { class _CustomRulesListState extends State { late bool isVisible; + CustomRulesSorting _sortingMethod = CustomRulesSorting.topBottom; + @override initState(){ super.initState(); @@ -60,6 +63,8 @@ class _CustomRulesListState extends State { final filteringProvider = Provider.of(context); final appConfigProvider = Provider.of(context); + final renderData = _sortingMethod == CustomRulesSorting.bottomTop ? widget.data.reversed.toList() : widget.data.toList(); + bool checkIfComment(String value) { final regex = RegExp(r'^(!|#).*$'); if (regex.hasMatch(value)) { @@ -104,6 +109,16 @@ class _CustomRulesListState extends State { } } + void showSortingMethodModal() { + showDialog( + context: context, + builder: (ctx) => SortCustomRulesModal( + sortingMethod: _sortingMethod, + onSelect: (value) => setState(() => _sortingMethod = value), + ), + ); + } + return CustomTabContentList( loadingGenerator: () => SizedBox( width: double.maxFinite, @@ -124,10 +139,10 @@ class _CustomRulesListState extends State { ], ), ), - itemsCount: widget.data.length, + itemsCount: renderData.length, contentWidget: (index) => ListTile( title: Text( - widget.data[index], + renderData[index], style: TextStyle( color: checkIfComment(widget.data[index]) == true ? Theme.of(context).colorScheme.onSurface.withOpacity(0.6) @@ -135,9 +150,9 @@ class _CustomRulesListState extends State { fontWeight: FontWeight.normal, ), ), - subtitle: generateSubtitle(widget.data[index]), + subtitle: generateSubtitle(renderData[index]), trailing: IconButton( - onPressed: () => widget.onRemoveCustomRule(widget.data[index]), + onPressed: () => widget.onRemoveCustomRule(renderData[index]), icon: const Icon(Icons.delete) ), ), @@ -212,6 +227,11 @@ class _CustomRulesListState extends State { }, fab: Column( children: [ + FloatingActionButton.small( + onPressed: showSortingMethodModal, + child: Icon(Icons.sort_rounded), + ), + const SizedBox(height: 16), AddFiltersButton( type: 'edit_custom_rule', widget: (fn) => FloatingActionButton.small( @@ -229,7 +249,7 @@ class _CustomRulesListState extends State { ), ], ), - heightFabHidden: -120, + heightFabHidden: -180, fabVisible: isVisible, ); } diff --git a/lib/screens/filters/modals/custom_rules/sort_rules.dart b/lib/screens/filters/modals/custom_rules/sort_rules.dart new file mode 100644 index 0000000..7ae0870 --- /dev/null +++ b/lib/screens/filters/modals/custom_rules/sort_rules.dart @@ -0,0 +1,128 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/constants/enums.dart'; + +class SortCustomRulesModal extends StatelessWidget { + final CustomRulesSorting sortingMethod; + final void Function(CustomRulesSorting) onSelect; + + const SortCustomRulesModal({ + super.key, + required this.sortingMethod, + required this.onSelect, + }); + + @override + Widget build(BuildContext context) { + return AlertDialog( + contentPadding: const EdgeInsets.symmetric(vertical: 16), + scrollable: true, + title: Column( + children: [ + Icon( + Icons.sort_rounded, + size: 24, + color: Theme.of(context).listTileTheme.iconColor + ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.sortingOptions, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ) + ], + ), + content: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: 500 + ), + child: Column( + children: [ + _CustomListTileDialog( + title: AppLocalizations.of(context)!.topToBottom, + icon: Icons.arrow_downward_rounded, + onTap: () { + Navigator.pop(context); + onSelect(CustomRulesSorting.topBottom); + }, + isSelected: sortingMethod == CustomRulesSorting.topBottom + ), + _CustomListTileDialog( + title: AppLocalizations.of(context)!.bottomToTop, + icon: Icons.arrow_upward_rounded, + onTap: () { + Navigator.pop(context); + onSelect(CustomRulesSorting.bottomTop); + }, + isSelected: sortingMethod == CustomRulesSorting.bottomTop + ), + ] + ), + ), + actions: [ + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.close) + ) + ], + ) + ], + ); + } +} + +class _CustomListTileDialog extends StatelessWidget { + final String title; + final IconData? icon; + final void Function()? onTap; + final bool isSelected; + + const _CustomListTileDialog({ + required this.title, + required this.icon, + required this.onTap, + required this.isSelected, + }); + + @override + Widget build(BuildContext context) { + return Material( + color: Colors.transparent, + child: InkWell( + onTap: onTap, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16), + child: Row( + children: [ + Icon( + icon, + color: Theme.of(context).colorScheme.onSurface, + ), + const SizedBox(width: 24), + Flexible( + child: Text( + title, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w400, + color: Theme.of(context).colorScheme.onSurface, + ), + ), + ), + const SizedBox(width: 24), + Icon( + isSelected == true ? Icons.radio_button_checked_rounded : Icons.radio_button_unchecked_rounded, + color: Theme.of(context).colorScheme.primary, + ) + ], + ), + ), + ), + ); + } +} \ No newline at end of file From 28034d4b7452cb17974950a9836e05943e535abd Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 21 Jan 2025 22:00:06 +0100 Subject: [PATCH 216/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index eb0a3f8..02b1c09 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.19.2+145 +version: 2.20.0-beta.1+146 environment: sdk: '>=2.18.1 <3.0.0' From 51b8a6b610b0acd9224a40b806613585fa2b6fe0 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 22 Jan 2025 00:00:26 +0100 Subject: [PATCH 217/236] Updated app version --- .github/workflows/release-beta.yaml | 121 ----------- .github/workflows/release-stable.yaml | 300 -------------------------- debian/debian.yaml | 2 +- pubspec.yaml | 2 +- 4 files changed, 2 insertions(+), 423 deletions(-) delete mode 100644 .github/workflows/release-beta.yaml delete mode 100644 .github/workflows/release-stable.yaml diff --git a/.github/workflows/release-beta.yaml b/.github/workflows/release-beta.yaml deleted file mode 100644 index 854ee28..0000000 --- a/.github/workflows/release-beta.yaml +++ /dev/null @@ -1,121 +0,0 @@ -name: Compile and release beta build - -on: - workflow_dispatch: - -jobs: - build-android: - name: Build Android .apk and .aab - runs-on: ubuntu-latest - env: - ANDROID_AAB_RELEASE_PATH: build/app/outputs/bundle/release - ANDROID_APK_RELEASE_PATH: build/app/outputs/apk/release - outputs: - VERSION_NAME: ${{ steps.save_version.outputs.version_name }} - VERSION_NUMBER: ${{ steps.save_version.outputs.version_number }} - steps: - - uses: actions/checkout@v3 - with: - ref: beta - - name: Decode android/app/keystore.jks - run: echo "${{ secrets.KEYSTORE_JKS }}" | base64 --decode > android/app/keystore.jks - - name: Decode android/key.properties - run: echo "${{ secrets.KEY_PROPERTIES }}" | base64 --decode > android/key.properties - - name: Decode .env - run: echo "${{ secrets.ENV }}" | base64 --decode > .env - - name: Read pubspec.yaml - uses: JGeek00/read-yaml-files@2.0.0 - id: read_pubspec - with: - file: './pubspec.yaml' # File to read from - key-path: '["version"]' - - name: Save version on env variable - id: save_version - run: | - version=${{ steps.read_pubspec.outputs.data }} - IFS='+' - read -r -a split <<< "$version" - echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV - echo "version_name=${split[0]}" >> $GITHUB_OUTPUT - echo "version_number=${split[1]}" >> $GITHUB_OUTPUT - - name: Update KeyStore password in gradle properties - run: sed -i 's/#{KEYSTORE_PASS}#/${{ secrets.KEYSTORE_PASS }}/g' android/key.properties - - name: Update KeyStore key password in gradle properties - run: sed -i 's/#{KEYSTORE_KEY_PASS}#/${{ secrets.KEYSTORE_KEY_PASS }}/g' android/key.properties - - uses: actions/setup-java@v3 - with: - distribution: 'zulu' - java-version: '18.x' - - uses: subosito/flutter-action@v2 - with: - channel: "stable" - - run: flutter clean - - run: flutter pub get - - run: flutter build apk --release - - run: flutter build appbundle --release - - name: Rename apk - run: mv $ANDROID_APK_RELEASE_PATH/app-release.apk $ANDROID_APK_RELEASE_PATH/AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.apk - - name: Rename aab - run: mv $ANDROID_AAB_RELEASE_PATH/app-release.aab $ANDROID_AAB_RELEASE_PATH/AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.aab - - name: Copy apk to project root - run: cp $ANDROID_APK_RELEASE_PATH/AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.apk AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.apk - - name: Copy aab to project root - run: cp $ANDROID_AAB_RELEASE_PATH/AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.aab AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.aab - - name: Upload artifact - uses: actions/upload-artifact@v3 - with: - name: android - path: | - AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.aab - AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.apk - release-builds-github: - name: Release beta build to GitHub - runs-on: ubuntu-latest - needs: [build-android] - env: - VERSION_NAME: ${{ needs.build-android.outputs.VERSION_NAME }} - VERSION_NUMBER: ${{ needs.build-android.outputs.VERSION_NUMBER }} - steps: - - uses: actions/checkout@v3 - with: - ref: beta - - name: Create builds directory - run: mkdir releases - - name: Download Android artifacts - uses: actions/download-artifact@v3 - with: - name: android - path: releases/ - - name: Release to GitHub - uses: ncipollo/release-action@v1 - with: - artifacts: "releases/*" - token: ${{ secrets.GH_TOKEN }} - tag: '${{ env.VERSION_NAME }}_(${{ env.VERSION_NUMBER }})' - name: v${{ env.VERSION_NAME }} - draft: true - prerelease: true - commit: ${{ github.sha }} - release-build-google-play: - name: Release Android beta build to the Google Play Store - runs-on: ubuntu-latest - needs: [build-android] - env: - VERSION_NAME: ${{ needs.build-android.outputs.VERSION_NAME }} - steps: - - uses: actions/checkout@v3 - with: - ref: beta - - name: Download Android artifacts - uses: actions/download-artifact@v3 - with: - name: android - - name: Release app to Google Play - uses: r0adkll/upload-google-play@v1 - with: - serviceAccountJsonPlainText: ${{ secrets.PLAYSTORE_ACCOUNT_KEY }} - packageName: com.jgeek00.adguard_home_manager - releaseFiles: AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.aab - track: beta - status: draft - releaseName: ${{ env.VERSION_NAME }} \ No newline at end of file diff --git a/.github/workflows/release-stable.yaml b/.github/workflows/release-stable.yaml deleted file mode 100644 index 0b0ae0c..0000000 --- a/.github/workflows/release-stable.yaml +++ /dev/null @@ -1,300 +0,0 @@ -name: Compile and release production build - -on: - workflow_dispatch: - -jobs: - build-android: - name: Build Android .apk and .aab - runs-on: ubuntu-latest - env: - ANDROID_AAB_RELEASE_PATH: build/app/outputs/bundle/release - ANDROID_APK_RELEASE_PATH: build/app/outputs/apk/release - outputs: - VERSION_NAME: ${{ steps.save_version.outputs.version_name }} - VERSION_NUMBER: ${{ steps.save_version.outputs.version_number }} - steps: - - uses: actions/checkout@v3 - - name: Decode android/app/keystore.jks - run: echo "${{ secrets.KEYSTORE_JKS }}" | base64 --decode > android/app/keystore.jks - - name: Decode android/key.properties - run: echo "${{ secrets.KEY_PROPERTIES }}" | base64 --decode > android/key.properties - - name: Decode .env - run: echo "${{ secrets.ENV }}" | base64 --decode > .env - - name: Read pubspec.yaml - uses: JGeek00/read-yaml-files@2.0.0 - id: read_pubspec - with: - file: './pubspec.yaml' # File to read from - key-path: '["version"]' - - name: Save version on env variable - id: save_version - run: | - version=${{ steps.read_pubspec.outputs.data }} - IFS='+' - read -r -a split <<< "$version" - echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV - echo "version_name=${split[0]}" >> $GITHUB_OUTPUT - echo "version_number=${split[1]}" >> $GITHUB_OUTPUT - - name: Update KeyStore password in gradle properties - run: sed -i 's/#{KEYSTORE_PASS}#/${{ secrets.KEYSTORE_PASS }}/g' android/key.properties - - name: Update KeyStore key password in gradle properties - run: sed -i 's/#{KEYSTORE_KEY_PASS}#/${{ secrets.KEYSTORE_KEY_PASS }}/g' android/key.properties - - uses: actions/setup-java@v3 - with: - distribution: 'zulu' - java-version: '18.x' - - uses: subosito/flutter-action@v2 - with: - channel: "stable" - - run: flutter clean - - run: flutter pub get - - run: flutter build apk --release - - run: flutter build appbundle --release - - name: Rename apk - run: mv $ANDROID_APK_RELEASE_PATH/app-release.apk $ANDROID_APK_RELEASE_PATH/AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.apk - - name: Rename aab - run: mv $ANDROID_AAB_RELEASE_PATH/app-release.aab $ANDROID_AAB_RELEASE_PATH/AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.aab - - name: Copy apk to project root - run: cp $ANDROID_APK_RELEASE_PATH/AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.apk AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.apk - - name: Copy aab to project root - run: cp $ANDROID_AAB_RELEASE_PATH/AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.aab AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.aab - - name: Upload artifact - uses: actions/upload-artifact@v3 - with: - name: android - path: | - AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.aab - AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.apk - build-macos: - name: Build macOS .dmg - runs-on: macos-latest - env: - MACOS_APP_RELEASE_PATH: build/macos/Build/Products/Release - outputs: - VERSION_NAME: ${{ steps.save_version.outputs.version_name }} - VERSION_NUMBER: ${{ steps.save_version.outputs.version_number }} - steps: - - uses: actions/checkout@v3 - - name: Decode .env - run: echo "${{ secrets.ENV }}" | base64 --decode > .env - - name: Read pubspec.yaml - uses: JGeek00/read-yaml-files@2.0.0 - id: read_pubspec - with: - file: './pubspec.yaml' - key-path: '["version"]' - - name: Save version on env variable - id: save_version - run: | - version=${{ steps.read_pubspec.outputs.data }} - IFS='+' - read -r -a split <<< "$version" - echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV - echo "version_name=${split[0]}" >> $GITHUB_OUTPUT - echo "version_number=${split[1]}" >> $GITHUB_OUTPUT - - uses: subosito/flutter-action@v2 - with: - channel: "stable" - - run: flutter clean - - run: flutter pub get - - run: flutter build macos --release - - name: Install the Apple certificate and sign the application - env: - APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} - APPLE_CERTIFICATE_PWD: ${{ secrets.APPLE_CERTIFICATE_PWD }} - APPLE_KEYCHAIN_PWD: ${{ secrets.APPLE_KEYCHAIN_PWD }} - APPLE_IDENTITY_ID: ${{ secrets.APPLE_IDENTITY_ID }} - run: | - echo "$APPLE_CERTIFICATE" | base64 --decode > certificate.p12 - security create-keychain -p $APPLE_KEYCHAIN_PWD build.keychain - security default-keychain -s build.keychain - security unlock-keychain -p $APPLE_KEYCHAIN_PWD build.keychain - security import certificate.p12 -k build.keychain -P $APPLE_CERTIFICATE_PWD -T /usr/bin/codesign - security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $APPLE_KEYCHAIN_PWD build.keychain - /usr/bin/codesign --force -s "$APPLE_IDENTITY_ID" $MACOS_APP_RELEASE_PATH/AdGuard\ Home\ Manager.app -v - - name: Create folder to build dmg - run: mkdir $MACOS_APP_RELEASE_PATH/AdGuard\ Home\ Manager - - name: Copy app into folder - run: cp -r $MACOS_APP_RELEASE_PATH/AdGuard\ Home\ Manager.app $MACOS_APP_RELEASE_PATH/AdGuard\ Home\ Manager/AdGuard\ Home\ Manager.app - - name: Generate symbolic link to Applications dir - run: ln -s /Applications $MACOS_APP_RELEASE_PATH/AdGuard\ Home\ Manager - - name: Generate dmg - run: hdiutil create -srcfolder $MACOS_APP_RELEASE_PATH/AdGuard\ Home\ Manager $MACOS_APP_RELEASE_PATH/AdGuardHomeManager_${{ env.VERSION_NAME }}_macOS_Universal.dmg - - name: Copy dmg to project root - run: cp $MACOS_APP_RELEASE_PATH/AdGuardHomeManager_${{ env.VERSION_NAME }}_macOS_Universal.dmg AdGuardHomeManager_${{ env.VERSION_NAME }}_macOS_Universal.dmg - - name: Upload artifact - uses: actions/upload-artifact@v3 - with: - name: macos - path: AdGuardHomeManager_${{ env.VERSION_NAME }}_macOS_Universal.dmg - build-linux: - name: Build Linux .tar.gz and .deb - runs-on: ubuntu-latest - outputs: - VERSION_NAME: ${{ steps.save_version.outputs.version_name }} - VERSION_NUMBER: ${{ steps.save_version.outputs.version_number }} - steps: - - uses: actions/checkout@v3 - - name: Decode .env - run: echo "${{ secrets.ENV }}" | base64 --decode > .env - - name: Read pubspec.yaml - uses: JGeek00/read-yaml-files@2.0.0 - id: read_pubspec - with: - file: './pubspec.yaml' - key-path: '["version"]' - - name: Save version on env variable - id: save_version - run: | - version=${{ steps.read_pubspec.outputs.data }} - IFS='+' - read -r -a split <<< "$version" - echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV - echo "version_name=${split[0]}" >> $GITHUB_OUTPUT - echo "version_number=${split[1]}" >> $GITHUB_OUTPUT - - name: Update version in debian.yaml - run: sed -i 's//${{ env.VERSION_NAME }}/g' debian/debian.yaml - - name: Update dependencies list - run: sudo apt-get update - - name: Install dependencies - run: sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev - - uses: subosito/flutter-action@v2 - with: - channel: "stable" - - run: flutter clean - - run: flutter pub get - - run: flutter build linux --release - - name: Install flutter_to_debian - run: dart pub global activate flutter_to_debian - - name: Generate .deb package - run: flutter_to_debian - - name: Move .deb package to project root - run: mv build/linux/x64/release/debian/AdGuardHomeManager_${{ env.VERSION_NAME }}_amd64.deb AdGuardHomeManager_${{ env.VERSION_NAME }}_Linux_amd64.deb - - name: Generate .tar.gz package - uses: a7ul/tar-action@v1.1.3 - id: compress - with: - command: c - cwd: build/linux/x64/release/bundle - files: | - ./data - ./lib - ./AdGuardHomeManager - outPath: AdGuardHomeManager_${{ env.VERSION_NAME }}_Linux.tar.gz - - name: Upload artifact - uses: actions/upload-artifact@v3 - with: - name: linux - path: | - AdGuardHomeManager_${{ env.VERSION_NAME }}_Linux_amd64.deb - AdGuardHomeManager_${{ env.VERSION_NAME }}_Linux.tar.gz - build-windows: - name: Build Windows installer - runs-on: windows-latest - outputs: - VERSION_NAME: ${{ steps.save_version.outputs.version_name }} - VERSION_NUMBER: ${{ steps.save_version.outputs.version_number }} - steps: - - uses: actions/checkout@v3 - - name: Decode .env - shell: pwsh - run: | - [IO.File]::WriteAllBytes('.env', [Convert]::FromBase64String('${{ secrets.ENV }}')) - - name: Read pubspec.yaml - uses: JGeek00/read-yaml-files@2.0.0 - id: read_pubspec - with: - file: './pubspec.yaml' - key-path: '["version"]' - - name: Save version on env variable - shell: bash - id: save_version - run: | - version=${{ steps.read_pubspec.outputs.data }} - IFS='+' - read -r -a split <<< "$version" - echo "VERSION_NAME=$(echo ${split[0]})" >> $GITHUB_ENV - echo "version_name=${split[0]}" >> $GITHUB_OUTPUT - echo "version_number=${split[1]}" >> $GITHUB_OUTPUT - - name: Update version in innosetup config file - shell: pwsh - run: | - (Get-Content windows/innosetup_installer_builder.iss) -replace '', '${{ env.VERSION_NAME }}' | Out-File -encoding ASCII windows/innosetup_installer_builder.iss - - uses: subosito/flutter-action@v2 - with: - channel: "stable" - - run: flutter clean - - run: flutter pub get - - run: flutter build windows --release - - name: Build installer witn innosetup - run: iscc /Q windows/innosetup_installer_builder.iss - - name: Move installer file to root directory - run: move build/windows/aghm_installer.exe AdGuardHomeManager_${{ env.VERSION_NAME }}_Windows_x64.exe - - name: Upload artifact - uses: actions/upload-artifact@v3 - with: - name: windows - path: AdGuardHomeManager_${{ env.VERSION_NAME }}_Windows_x64.exe - release-builds-github: - name: Release builds to GitHub - runs-on: ubuntu-latest - needs: [build-android, build-macos, build-linux, build-windows] - env: - VERSION_NAME: ${{ needs.build-android.outputs.VERSION_NAME }} - VERSION_NUMBER: ${{ needs.build-android.outputs.VERSION_NUMBER }} - steps: - - uses: actions/checkout@v3 - - name: Create builds directory - run: mkdir releases - - name: Download Android artifacts - uses: actions/download-artifact@v3 - with: - name: android - path: releases/ - - name: Download macOS artifacts - uses: actions/download-artifact@v3 - with: - name: macos - path: releases/ - - name: Download Linux artifacts - uses: actions/download-artifact@v3 - with: - name: linux - path: releases/ - - name: Download Windows artifacts - uses: actions/download-artifact@v3 - with: - name: windows - path: releases/ - - name: Release to GitHub - uses: ncipollo/release-action@v1 - with: - artifacts: "releases/*" - token: ${{ secrets.GH_TOKEN }} - tag: '${{ env.VERSION_NAME }}_(${{ env.VERSION_NUMBER }})' - name: v${{ env.VERSION_NAME }} - draft: true - prerelease: false - commit: ${{ github.sha }} - release-build-google-play: - name: Release Android build to the Google Play Store - runs-on: ubuntu-latest - needs: [build-android, build-macos, build-linux, build-windows] - env: - VERSION_NAME: ${{ needs.build-android.outputs.VERSION_NAME }} - steps: - - uses: actions/checkout@v3 - - name: Download Android artifacts - uses: actions/download-artifact@v3 - with: - name: android - - name: Release app to Google Play - uses: r0adkll/upload-google-play@v1 - with: - serviceAccountJsonPlainText: ${{ secrets.PLAYSTORE_ACCOUNT_KEY }} - packageName: com.jgeek00.adguard_home_manager - releaseFiles: AdGuardHomeManager_${{ env.VERSION_NAME }}_Android.aab - track: production - status: draft - releaseName: ${{ env.VERSION_NAME }} \ No newline at end of file diff --git a/debian/debian.yaml b/debian/debian.yaml index 876c66e..046659c 100644 --- a/debian/debian.yaml +++ b/debian/debian.yaml @@ -5,7 +5,7 @@ flutter_app: control: Package: AdGuardHomeManager - Version: + Version: 2.20.0 Architecture: amd64 Essential: no Priority: optional diff --git a/pubspec.yaml b/pubspec.yaml index 02b1c09..489dfa0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.20.0-beta.1+146 +version: 2.20.0+147 environment: sdk: '>=2.18.1 <3.0.0' From a666d109d9bc3ddbdcaa0e8a9c10360450cb36ad Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 22 Jan 2025 14:40:39 +0100 Subject: [PATCH 218/236] Bug fixes --- lib/functions/open_url.dart | 10 ++++++ lib/main.dart | 13 +++++++- lib/models/dns_statistics.dart | 6 ++-- lib/screens/clients/fab.dart | 4 +++ lib/screens/filters/add_button.dart | 4 +++ lib/screens/logs/log_tile.dart | 2 ++ lib/screens/logs/logs_list_appbar.dart | 1 + lib/widgets/add_server/add_server_modal.dart | 34 +++++++++++--------- 8 files changed, 54 insertions(+), 20 deletions(-) diff --git a/lib/functions/open_url.dart b/lib/functions/open_url.dart index 00cfc17..599eea0 100644 --- a/lib/functions/open_url.dart +++ b/lib/functions/open_url.dart @@ -5,6 +5,15 @@ import 'package:url_launcher/url_launcher.dart' as url_launcher; import 'package:sentry_flutter/sentry_flutter.dart'; void openUrl(String url) async { + if (!(url.startsWith("http") || url.startsWith("https"))) { + try { + url_launcher.launchUrl(Uri.parse(url)); + } catch (e, stackTrace) { + Sentry.captureException(e, stackTrace: stackTrace); + } + return; + } + if (Platform.isAndroid || Platform.isIOS) { try { await flutter_custom_tabs.launchUrl( @@ -20,6 +29,7 @@ void openUrl(String url) async { ), ); } catch (e, stackTrace) { + url_launcher.launchUrl(Uri.parse(url)); Sentry.captureException(e, stackTrace: stackTrace); } } diff --git a/lib/main.dart b/lib/main.dart index 10b1862..61126da 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -168,11 +168,22 @@ void main() async { return null; } + if (event.message?.formatted.contains("HttpException") == true) { + return null; + } + if ( event.message?.formatted.contains("Unexpected character") ?? false || (event.throwable != null && event.throwable!.toString().contains("Unexpected character")) ) { - return null; // Exclude this event + return null; + } + + if ( + event.message?.formatted.contains("Unexpected end of input") ?? false || + (event.throwable != null && event.throwable!.toString().contains("Unexpected end of input")) + ) { + return null; } return event; diff --git a/lib/models/dns_statistics.dart b/lib/models/dns_statistics.dart index ca6c247..ed787ce 100644 --- a/lib/models/dns_statistics.dart +++ b/lib/models/dns_statistics.dart @@ -43,9 +43,9 @@ class DnsStatistics { factory DnsStatistics.fromJson(Map json) => DnsStatistics( timeUnits: json["time_units"], - topQueriedDomains: List>.from(json["top_queried_domains"].map((x) => Map.from(x).map((k, v) => MapEntry(k, v)))), - topClients: List>.from(json["top_clients"].map((x) => Map.from(x).map((k, v) => MapEntry(k, v)))), - topBlockedDomains: List>.from(json["top_blocked_domains"].map((x) => Map.from(x).map((k, v) => MapEntry(k, v)))), + topQueriedDomains: json["top_queried_domains"] != null ? List>.from(json["top_queried_domains"].map((x) => Map.from(x).map((k, v) => MapEntry(k, v)))) : [], + topClients: json["top_clients"] != null ? List>.from(json["top_clients"].map((x) => Map.from(x).map((k, v) => MapEntry(k, v)))) : [], + topBlockedDomains: json["top_blocked_domains"] != null ? List>.from(json["top_blocked_domains"].map((x) => Map.from(x).map((k, v) => MapEntry(k, v)))): [], topUpstreamResponses: json["top_upstreams_responses"] != null ? List>.from(json["top_upstreams_responses"].map((x) => Map.from(x).map((k, v) => MapEntry(k, v)))) : null, topUpstreamsAvgTime: json["top_upstreams_avg_time"] != null ? List>.from(json["top_upstreams_avg_time"].map((x) => Map.from(x).map((k, v) => MapEntry(k, v)))) : null, dnsQueries: List.from(json["dns_queries"].map((x) => x)), diff --git a/lib/screens/clients/fab.dart b/lib/screens/clients/fab.dart index 383a2f3..9571ae3 100644 --- a/lib/screens/clients/fab.dart +++ b/lib/screens/clients/fab.dart @@ -25,10 +25,14 @@ class ClientsFab extends StatelessWidget { final width = MediaQuery.of(context).size.width; void confirmAddClient(Client client) async { + if (!context.mounted) return; + ProcessModal processModal = ProcessModal(); processModal.open(AppLocalizations.of(context)!.addingClient); final result = await clientsProvider.addClient(client); + + if (!context.mounted) return; processModal.close(); diff --git a/lib/screens/filters/add_button.dart b/lib/screens/filters/add_button.dart index 1621b68..e2de2ff 100644 --- a/lib/screens/filters/add_button.dart +++ b/lib/screens/filters/add_button.dart @@ -33,6 +33,8 @@ class AddFiltersButton extends StatelessWidget { final width = MediaQuery.of(context).size.width; void confirmAddRule(String rule) async { + if (!context.mounted) return; + ProcessModal processModal = ProcessModal(); processModal.open(AppLocalizations.of(context)!.addingRule); @@ -58,6 +60,8 @@ class AddFiltersButton extends StatelessWidget { } void confirmEditCustomRules(List rules) async { + if (!context.mounted) return; + ProcessModal processModal = ProcessModal(); processModal.open(AppLocalizations.of(context)!.savingCustomRules); diff --git a/lib/screens/logs/log_tile.dart b/lib/screens/logs/log_tile.dart index 342817f..dc33048 100644 --- a/lib/screens/logs/log_tile.dart +++ b/lib/screens/logs/log_tile.dart @@ -154,6 +154,8 @@ class LogTile extends StatelessWidget { } void blockUnblockRuleClient() async { + if (!context.mounted) return; + ProcessModal processModal = ProcessModal(); processModal.open(AppLocalizations.of(context)!.addingRule); diff --git a/lib/screens/logs/logs_list_appbar.dart b/lib/screens/logs/logs_list_appbar.dart index 2a052f6..21e03b1 100644 --- a/lib/screens/logs/logs_list_appbar.dart +++ b/lib/screens/logs/logs_list_appbar.dart @@ -89,6 +89,7 @@ class LogsListAppBar extends StatelessWidget { } void openLiveLogsScreen() { + if (!context.mounted) return; Navigator.of(context).push( MaterialPageRoute( builder: (context) => MultiProvider( diff --git a/lib/widgets/add_server/add_server_modal.dart b/lib/widgets/add_server/add_server_modal.dart index 7164ba0..a7fc768 100644 --- a/lib/widgets/add_server/add_server_modal.dart +++ b/lib/widgets/add_server/add_server_modal.dart @@ -175,6 +175,8 @@ class _AddServerModalState extends State { final ApiClientV2 apiClient2 = ApiClientV2(server: serverObj); final serverStatus = await apiClient2.getServerStatus(); + if (!context.mounted) return; + // If something goes wrong when fetching server status if (serverStatus.successful == false) { statusProvider.setServerStatusLoad(LoadStatus.error); @@ -203,16 +205,16 @@ class _AddServerModalState extends State { final serverCreated = await serversProvider.createServer(serverObj); + if (!context.mounted) return; + // If something goes wrong when saving the connection on the db if (serverCreated != null) { - if (mounted) setState(() => isConnecting = false); - if (mounted) { - showSnackbar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.connectionNotCreated, - color: Colors.red - ); - } + setState(() => isConnecting = false); + showSnackbar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.connectionNotCreated, + color: Colors.red + ); return; } @@ -295,10 +297,12 @@ class _AddServerModalState extends State { } final serverSaved = await serversProvider.editServer(serverObj); + + if (!mounted) return; // If something goes wrong when saving the connection on the db if (serverSaved != null) { - if (mounted) setState(() => isConnecting = false); + setState(() => isConnecting = false); appConfigProvider.addLog( AppLog( type: 'save_connection_db', @@ -306,13 +310,11 @@ class _AddServerModalState extends State { message: serverSaved.toString() ) ); - if (mounted) { - showSnackbar( - appConfigProvider: appConfigProvider, - label: AppLocalizations.of(context)!.connectionNotCreated, - color: Colors.red - ); - } + showSnackbar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.connectionNotCreated, + color: Colors.red + ); return; } From db6e63c4aaa9264bf964df294f3e2049549010ef Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 22 Jan 2025 14:41:04 +0100 Subject: [PATCH 219/236] Fix bad performance debug mode --- .vscode/settings.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 769a50d..553928e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -16,5 +16,6 @@ "cSpell.ignorePaths": [ "/pubspec.yaml", "/.github/workflows" - ] + ], + "dart.flutterRunAdditionalArgs": [ "--no-enable-impeller" ] } \ No newline at end of file From 02b659c1bcf3cb4dfe71608468866105fba8a2bf Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 22 Jan 2025 14:43:20 +0100 Subject: [PATCH 220/236] Changed my other apps text --- lib/l10n/app_en.arb | 4 ++-- lib/l10n/app_es.arb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 4602c27..fa952aa 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -800,8 +800,8 @@ "hereWillAppearRealtimeLogs": "Here there will appear the logs on realtime.", "applicationDetails": "Application details", "applicationDetailsDescription": "App repository, stores where it's available, and more", - "myOtherApps": "Check my other apps", - "myOtherAppsDescription": "Created by JGeek00", + "myOtherApps": "My other apps", + "myOtherAppsDescription": "Check my other apps, make a donation, contact support, and more", "topToBottom": "From top to bottom", "bottomToTop": "From bottom to top" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 862e375..d18f8a9 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -800,8 +800,8 @@ "hereWillAppearRealtimeLogs": "Aquí aparecerán los registros en tiempo real.", "applicationDetails": "Detalles de la aplicación", "applicationDetailsDescription": "Repositorio de la app, tiendas donde está disponible, y más", - "myOtherApps": "Comprueba mis otras apps", - "myOtherAppsDescription": "Creadas por JGeek00", + "myOtherApps": "Mis otras apps", + "myOtherAppsDescription": "Comprueba mis otras apps, hacer una donación, contactar al soporte, y más", "topToBottom": "Desde arriba hacia abajo", "bottomToTop": "Desde abajo hacia arriba" } \ No newline at end of file From 7f6f686b2b34e38d8e8d8e8afc7a84c2ebc8ab8e Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 22 Jan 2025 14:45:38 +0100 Subject: [PATCH 221/236] Updated app version --- debian/debian.yaml | 2 +- pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/debian.yaml b/debian/debian.yaml index 046659c..43a90f9 100644 --- a/debian/debian.yaml +++ b/debian/debian.yaml @@ -5,7 +5,7 @@ flutter_app: control: Package: AdGuardHomeManager - Version: 2.20.0 + Version: 2.20.1 Architecture: amd64 Essential: no Priority: optional diff --git a/pubspec.yaml b/pubspec.yaml index 489dfa0..4222db1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.20.0+147 +version: 2.20.1+148 environment: sdk: '>=2.18.1 <3.0.0' From 4282792ebd74f477823bd67fc8dbb3dea3ce0ce2 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 9 Mar 2025 19:45:37 +0100 Subject: [PATCH 222/236] Updated stuff --- .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-d7ea1a46fca8a951bac1.json | 1391 +++++++++++++++++ .../cmakeFiles-v1-25067417d59f0d26c931.json | 799 ++++++++++ .../codemodel-v2-aa70310decf347f6cbdc.json | 43 + ...irectory-.-Debug-f5ebdc15457944623624.json | 14 + .../reply/index-2025-03-09T18-26-01-0152.json | 92 ++ .../Debug/4s676p3c/arm64-v8a/CMakeCache.txt | 405 +++++ .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 + .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 + .../CMakeDetermineCompilerABI_C.bin | Bin 0 -> 7992 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8136 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 + .../CompilerIdC/CMakeCCompilerId.c | 803 ++++++++++ .../CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 6048 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ++++++++++ .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 6064 bytes .../CMakeFiles/TargetDirectories.txt | 2 + .../arm64-v8a/CMakeFiles/cmake.check_cache | 1 + .../4s676p3c/arm64-v8a/CMakeFiles/rules.ninja | 45 + .../arm64-v8a/additional_project_files.txt | 0 .../arm64-v8a/android_gradle_build.json | 28 + .../arm64-v8a/android_gradle_build_mini.json | 20 + .../.cxx/Debug/4s676p3c/arm64-v8a/build.ninja | 112 ++ .../4s676p3c/arm64-v8a/build_file_index.txt | 1 + .../4s676p3c/arm64-v8a/cmake_install.cmake | 54 + .../arm64-v8a/configure_fingerprint.bin | 28 + .../arm64-v8a/metadata_generation_command.txt | 20 + .../4s676p3c/arm64-v8a/prefab_config.json | 4 + .../arm64-v8a/symbol_folder_index.txt | 1 + .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-6573c0656e67becaeff1.json | 1391 +++++++++++++++++ .../cmakeFiles-v1-161e4284e257b7dbcee8.json | 799 ++++++++++ .../codemodel-v2-769fcb1eb528b5a1f77c.json | 43 + ...irectory-.-Debug-f5ebdc15457944623624.json | 14 + .../reply/index-2025-03-09T18-26-01-0543.json | 92 ++ .../Debug/4s676p3c/armeabi-v7a/CMakeCache.txt | 405 +++++ .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 + .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 + .../CMakeDetermineCompilerABI_C.bin | Bin 0 -> 5896 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 6036 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 + .../CompilerIdC/CMakeCCompilerId.c | 803 ++++++++++ .../CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 4148 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ++++++++++ .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 4184 bytes .../CMakeFiles/TargetDirectories.txt | 2 + .../armeabi-v7a/CMakeFiles/cmake.check_cache | 1 + .../armeabi-v7a/CMakeFiles/rules.ninja | 45 + .../armeabi-v7a/additional_project_files.txt | 0 .../armeabi-v7a/android_gradle_build.json | 28 + .../android_gradle_build_mini.json | 20 + .../Debug/4s676p3c/armeabi-v7a/build.ninja | 112 ++ .../4s676p3c/armeabi-v7a/build_file_index.txt | 1 + .../4s676p3c/armeabi-v7a/cmake_install.cmake | 54 + .../armeabi-v7a/configure_fingerprint.bin | 28 + .../metadata_generation_command.txt | 20 + .../4s676p3c/armeabi-v7a/prefab_config.json | 4 + .../armeabi-v7a/symbol_folder_index.txt | 1 + android/app/.cxx/Debug/4s676p3c/hash_key.txt | 27 + .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-920dacdb871097de2130.json | 1391 +++++++++++++++++ .../cmakeFiles-v1-f1661dab2653e3c04b8e.json | 799 ++++++++++ .../codemodel-v2-95b6204aa3712c2f8293.json | 43 + ...irectory-.-Debug-f5ebdc15457944623624.json | 14 + .../reply/index-2025-03-09T18-26-01-0932.json | 92 ++ .../.cxx/Debug/4s676p3c/x86/CMakeCache.txt | 405 +++++ .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 + .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 + .../CMakeDetermineCompilerABI_C.bin | Bin 0 -> 5828 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 5984 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 + .../CompilerIdC/CMakeCCompilerId.c | 803 ++++++++++ .../CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 3924 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ++++++++++ .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 3960 bytes .../x86/CMakeFiles/TargetDirectories.txt | 2 + .../4s676p3c/x86/CMakeFiles/cmake.check_cache | 1 + .../Debug/4s676p3c/x86/CMakeFiles/rules.ninja | 45 + .../4s676p3c/x86/additional_project_files.txt | 0 .../4s676p3c/x86/android_gradle_build.json | 28 + .../x86/android_gradle_build_mini.json | 20 + .../app/.cxx/Debug/4s676p3c/x86/build.ninja | 112 ++ .../Debug/4s676p3c/x86/build_file_index.txt | 1 + .../Debug/4s676p3c/x86/cmake_install.cmake | 54 + .../4s676p3c/x86/configure_fingerprint.bin | 28 + .../x86/metadata_generation_command.txt | 20 + .../Debug/4s676p3c/x86/prefab_config.json | 4 + .../4s676p3c/x86/symbol_folder_index.txt | 1 + .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-2b5d080db4293a9c0f40.json | 1391 +++++++++++++++++ .../cmakeFiles-v1-9a2bf79ff0a2a89eb505.json | 799 ++++++++++ .../codemodel-v2-852402f1316f6f65a056.json | 43 + ...irectory-.-Debug-f5ebdc15457944623624.json | 14 + .../reply/index-2025-03-09T18-26-02-0299.json | 92 ++ .../.cxx/Debug/4s676p3c/x86_64/CMakeCache.txt | 405 +++++ .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 + .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 + .../CMakeDetermineCompilerABI_C.bin | Bin 0 -> 7008 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 7176 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 + .../CompilerIdC/CMakeCCompilerId.c | 803 ++++++++++ .../CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 5424 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ++++++++++ .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 5480 bytes .../x86_64/CMakeFiles/TargetDirectories.txt | 2 + .../x86_64/CMakeFiles/cmake.check_cache | 1 + .../4s676p3c/x86_64/CMakeFiles/rules.ninja | 45 + .../x86_64/additional_project_files.txt | 0 .../4s676p3c/x86_64/android_gradle_build.json | 28 + .../x86_64/android_gradle_build_mini.json | 20 + .../.cxx/Debug/4s676p3c/x86_64/build.ninja | 112 ++ .../4s676p3c/x86_64/build_file_index.txt | 1 + .../Debug/4s676p3c/x86_64/cmake_install.cmake | 54 + .../4s676p3c/x86_64/configure_fingerprint.bin | 28 + .../x86_64/metadata_generation_command.txt | 20 + .../Debug/4s676p3c/x86_64/prefab_config.json | 4 + .../4s676p3c/x86_64/symbol_folder_index.txt | 1 + pubspec.lock | 178 +-- 126 files changed, 19412 insertions(+), 89 deletions(-) create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cache-v2-d7ea1a46fca8a951bac1.json create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-25067417d59f0d26c931.json create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-aa70310decf347f6cbdc.json create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0152.json create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeCache.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake create mode 100755 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin create mode 100755 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/TargetDirectories.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/cmake.check_cache create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/rules.ninja create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/additional_project_files.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/cmake_install.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json create mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cache-v2-6573c0656e67becaeff1.json create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-161e4284e257b7dbcee8.json create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-769fcb1eb528b5a1f77c.json create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0543.json create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeCache.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake create mode 100755 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin create mode 100755 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/TargetDirectories.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/cmake.check_cache create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/rules.ninja create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/additional_project_files.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/cmake_install.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json create mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/hash_key.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cache-v2 create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/codemodel-v2 create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cache-v2-920dacdb871097de2130.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cmakeFiles-v1-f1661dab2653e3c04b8e.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/codemodel-v2-95b6204aa3712c2f8293.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0932.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeCache.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake create mode 100755 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin create mode 100755 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/TargetDirectories.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/cmake.check_cache create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/rules.ninja create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/additional_project_files.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/build.ninja create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/cmake_install.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cache-v2 create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cache-v2-2b5d080db4293a9c0f40.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-9a2bf79ff0a2a89eb505.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/codemodel-v2-852402f1316f6f65a056.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T18-26-02-0299.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeCache.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake create mode 100755 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin create mode 100755 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/TargetDirectories.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/cmake.check_cache create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/rules.ninja create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/additional_project_files.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build_mini.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/build.ninja create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/build_file_index.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/cmake_install.cmake create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/configure_fingerprint.bin create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/metadata_generation_command.txt create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/prefab_config.json create mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/symbol_folder_index.txt diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cache-v2-d7ea1a46fca8a951bac1.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cache-v2-d7ea1a46fca8a951bac1.json new file mode 100644 index 0000000..50ecf16 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cache-v2-d7ea1a46fca8a951bac1.json @@ -0,0 +1,1391 @@ +{ + "entries" : + [ + { + "name" : "ANDROID_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "arm64-v8a" + }, + { + "name" : "ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" + }, + { + "name" : "ANDROID_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "android-26" + }, + { + "name" : "CMAKE_ADDR2LINE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" + }, + { + "name" : "CMAKE_ANDROID_ARCH_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "arm64-v8a" + }, + { + "name" : "CMAKE_ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" + }, + { + "name" : "CMAKE_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_ASM_FLAGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_BUILD_TYPE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." + } + ], + "type" : "STRING", + "value" : "Debug" + }, + { + "name" : "CMAKE_CACHEFILE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "This is the directory where this CMakeCache.txt was created" + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a" + }, + { + "name" : "CMAKE_CACHE_MAJOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Major version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "3" + }, + { + "name" : "CMAKE_CACHE_MINOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Minor version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "22" + }, + { + "name" : "CMAKE_CACHE_PATCH_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Patch version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake" + }, + { + "name" : "CMAKE_CPACK_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cpack program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack" + }, + { + "name" : "CMAKE_CTEST_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to ctest program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest" + }, + { + "name" : "CMAKE_CXX_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_CXX_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_CXX_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_CXX_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C++ applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_C_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_C_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_C_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_C_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_C_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_C_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_DLLTOOL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "CMAKE_DLLTOOL-NOTFOUND" + }, + { + "name" : "CMAKE_EDIT_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cache edit program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake" + }, + { + "name" : "CMAKE_ERROR_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue deprecation errors for macros and functions." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_EXECUTABLE_FORMAT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Executable file format" + } + ], + "type" : "INTERNAL", + "value" : "ELF" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "ON" + }, + { + "name" : "CMAKE_EXTRA_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of external makefile project generator." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator." + } + ], + "type" : "INTERNAL", + "value" : "Ninja" + }, + { + "name" : "CMAKE_GENERATOR_INSTANCE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Generator instance identifier." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator platform." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_TOOLSET", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator toolset." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_HOME_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Source directory with the top level CMakeLists.txt file for this project" + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + { + "name" : "CMAKE_INSTALL_PREFIX", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install path prefix, prepended onto install directories." + } + ], + "type" : "PATH", + "value" : "/usr/local" + }, + { + "name" : "CMAKE_INSTALL_SO_NO_EXE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install .so files without execute permission." + } + ], + "type" : "INTERNAL", + "value" : "0" + }, + { + "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a" + }, + { + "name" : "CMAKE_LINKER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" + }, + { + "name" : "CMAKE_MAKE_PROGRAM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_NM", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" + }, + { + "name" : "CMAKE_NUMBER_OF_MAKEFILES", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "number of local generators" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_OBJCOPY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" + }, + { + "name" : "CMAKE_OBJDUMP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" + }, + { + "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Platform information initialized" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_PROJECT_DESCRIPTION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_HOMEPAGE_URL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "Project" + }, + { + "name" : "CMAKE_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Ranlib" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_READELF", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" + }, + { + "name" : "CMAKE_ROOT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake installation." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + { + "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of dll's." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SKIP_INSTALL_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_SKIP_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when using shared libraries." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STRIP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Strip" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SYSTEM_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "Android" + }, + { + "name" : "CMAKE_SYSTEM_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "26" + }, + { + "name" : "CMAKE_TOOLCHAIN_FILE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "The CMake toolchain file" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "name" : "CMAKE_UNAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "uname command" + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/uname" + }, + { + "name" : "CMAKE_VERBOSE_MAKEFILE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." + } + ], + "type" : "BOOL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_WARN_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue warnings for deprecated functionality." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "Project_BINARY_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a" + }, + { + "name" : "Project_IS_TOP_LEVEL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "ON" + }, + { + "name" : "Project_SOURCE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + } + ], + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-25067417d59f0d26c931.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-25067417d59f0d26c931.json new file mode 100644 index 0000000..5a3733f --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-25067417d59f0d26c931.json @@ -0,0 +1,799 @@ +{ + "inputs" : + [ + { + "path" : "CMakeLists.txt" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + } + ], + "kind" : "cmakeFiles", + "paths" : + { + "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", + "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 1, + "minor" : 0 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-aa70310decf347f6cbdc.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-aa70310decf347f6cbdc.json new file mode 100644 index 0000000..421c157 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-aa70310decf347f6cbdc.json @@ -0,0 +1,43 @@ +{ + "configurations" : + [ + { + "directories" : + [ + { + "build" : ".", + "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", + "minimumCMakeVersion" : + { + "string" : "3.6.0" + }, + "projectIndex" : 0, + "source" : "." + } + ], + "name" : "Debug", + "projects" : + [ + { + "directoryIndexes" : + [ + 0 + ], + "name" : "Project" + } + ], + "targets" : [] + } + ], + "kind" : "codemodel", + "paths" : + { + "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", + "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 2, + "minor" : 3 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json new file mode 100644 index 0000000..3a67af9 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json @@ -0,0 +1,14 @@ +{ + "backtraceGraph" : + { + "commands" : [], + "files" : [], + "nodes" : [] + }, + "installers" : [], + "paths" : + { + "build" : ".", + "source" : "." + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0152.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0152.json new file mode 100644 index 0000000..7f77f77 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0152.json @@ -0,0 +1,92 @@ +{ + "cmake" : + { + "generator" : + { + "multiConfig" : false, + "name" : "Ninja" + }, + "paths" : + { + "cmake" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake", + "cpack" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack", + "ctest" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest", + "root" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + "version" : + { + "isDirty" : false, + "major" : 3, + "minor" : 22, + "patch" : 1, + "string" : "3.22.1-g37088a8", + "suffix" : "g37088a8" + } + }, + "objects" : + [ + { + "jsonFile" : "codemodel-v2-aa70310decf347f6cbdc.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + }, + { + "jsonFile" : "cache-v2-d7ea1a46fca8a951bac1.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + { + "jsonFile" : "cmakeFiles-v1-25067417d59f0d26c931.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + } + ], + "reply" : + { + "client-agp" : + { + "cache-v2" : + { + "jsonFile" : "cache-v2-d7ea1a46fca8a951bac1.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + "cmakeFiles-v1" : + { + "jsonFile" : "cmakeFiles-v1-25067417d59f0d26c931.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + }, + "codemodel-v2" : + { + "jsonFile" : "codemodel-v2-aa70310decf347f6cbdc.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + } + } + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeCache.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeCache.txt new file mode 100644 index 0000000..5701b44 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeCache.txt @@ -0,0 +1,405 @@ +# This is the CMakeCache file. +# For build in directory: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a +# It was generated by CMake: /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-26 + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 + +//Archiver +CMAKE_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a + +//Path to a program. +CMAKE_LINKER:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf + +//No help, variable specified on the command line. +CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=26 + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a + +//Value Computed by CMake +Project_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake +//Whether to issue deprecation errors for macros and functions. +CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//Suppress errors that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE +//Suppress Warnings that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Whether to issue warnings for deprecated functionality. +CMAKE_WARN_DEPRECATED:INTERNAL=FALSE + diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake new file mode 100644 index 0000000..1fc1c84 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake @@ -0,0 +1,72 @@ +set(CMAKE_C_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "17.0.2") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/aarch64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/aarch64;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..8d1017c --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_CXX_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "17.0.2") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/aarch64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/aarch64;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..ecf7dc0ff0f4d29d1711e9eb64606718d80eaa08 GIT binary patch literal 7992 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 literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..b47dc244f44818d5bcfd2bcd35740eef4d9b6946 GIT binary patch literal 8136 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 xElPw})rO<*o!b$4{Q3O34f;HHB+uamlAT literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake new file mode 100644 index 0000000..43edff4 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Darwin-24.3.0") +set(CMAKE_HOST_SYSTEM_NAME "Darwin") +set(CMAKE_HOST_SYSTEM_VERSION "24.3.0") +set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64") + +include("/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "aarch64") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..41b99d7 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,803 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..644f7767da3c033867802fd2410539172e92a3b5 GIT binary patch literal 6048 zcmdT|Z){sv6+h38T_?`mrJ=N2y3RlcD=g1{V><4)2_T{Ukr0!H=)ORa5E4uXCJ^PE`|k0( zzJ5U!@P%9X-gAHVch5QZ+&}N6j~zLFG-4RQ#eg3|&|?(f(#?T9C&W3}hs^7b!&}#H zhs~=~u=#!xKD@pYHWL6(Cycode?N78bF|T@T-!OfnJ`9^*Zzw!(&g)g3;!#fSJ5x@ z|H74M^_L4LjxHXmxvfs4>3B=?O{-l$3j*vkt=@|3wU&-I+G`sUw7lBtl9anWt8H7J zUA3JRYpvN^%9Z7av(alnLG1dnz^qs4{UZ;B~lffHA+ReJ_)|*b(UGr*=iPtgHbKPcb)oQde&E|S* zy5qSIIkjHeo?WTTt`zNDsZ=W1Gud3;nW<%Gi?cH;h2=ulsW}BZUnu1d!u%JkbI$y{ zyx9x3S%b{!F5a`uLu*z$bJBAkL4|HNW7+jJyv5V2Zp)c&S#7KCcU1(@ZDS*I zud}>X&lJ0*a;a0OWh}2%Do(FgtcoX|KIKA&y?}#DKNgi-Z}TUbO^5r96vQ$`Le)o(oldi0^d1= z6A*=oA^ZWsAI292zH5l@>-oqK{+!?sI5docOm&nVN4& znfy`lOA;skl$5D?QOd+uai-8!_LCn*{FZV3Br#4elv)@ssUXUXb6og@(Ef`ryyUY? zc(9vv*8IZwYqHOKN;u|p{lYO}{?Fyee%X>g{nrvP-e2~U6)i}C_1uT^sPH-%KQ8eH z{b6AID-yRQPWstrg1)Np+mg@wPJH#8Jg?}X{o;MOtm*lh)WdNiJ?gprnWl&L@i&?t z|D6T+gThzO^FI}w{Na74^GAi_@Qm!IWlR3>9uY6E;G~D+%kgGCl%!Mf-%tNsspt8u zqDS4|a}sAg@5uh68vdT_^SYV;zQiwT{NKv{cQyQ1vcJ!F7h>2~{V7YF;-KPS+LXyv zt>tCUSqHO+`4LdY*>W%;GCikhnYPulOp%xMldO;|YFqA5LMBaid)|)Ur zf8N}K`yQ6<{LN4Q;3au}*n-v-ZzEy+jxukK1+Aq!rIw#y=iklWQpqUm^WTuzoW{F< z%m?_M)7_+X^7okEj;GK#+2`-NKa2iu_9gyKGA>~;hp;E`N0=T%Kfej=5tj@3 zp+IYzV?eg6G8JJz$$yG5&u9E)#K``@-NpWS>8QRg_8%#tyn}U^|F20R+mrOZeeVAP zg)slmhxkuf7wcpH|AAPT{VO+U|F7HFzZhblAl?4rHukq}(EhP)?7tFXpRz^W{wKDv z|K<(ar#vDo{#zmTDUZ?ZlNo6WrJ(S4f3NJ_E%Q8UP0ZYggGo4-dsXq!SyQ1Lu&e<$Y$3}1Rve-I^s z=Q01|2oR>&-|GXuK)$MF gd>i{$L+n%jsN1K!N?$wae@WWEBnQbZ?Ug?NU#KI5*Z=?k literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..25c62a8 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,791 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..388b75b4cb13f57f4bb096dcff3e4e8f3e045eec GIT binary patch literal 6064 zcmdT|Yit}>6+W}$b?mIOiDS}++Df+~MG0kRA71aS6BHb!33bTB3W=1~jke?6@p{|c zoz3jna#2M?sl-Dd5q?0C%0GkxL~1}4)B&XatPl_Jqg6pj1O!rfNVGg8BBYvg?%cC; z_wKk2{NqNx_nhy3=W(BNH%}iwbs}aMz{P;?L#QzdaAQ{}&k1o3rjWV$Dfq?ay|8g> z5;lIDfZLlpVPgc~izCL|?LSUl*%)m!%5UtP+ZZuM6K}jrAMpcQxccANy;Hnf7#nlE z`m$MhZT`%Ovxll~tJ7#Y-r}*Q-L78(0d|_UzwCOg#Z!&;>beANue!1*<*skHYqnRb z)SP8|wdpVBO0vgU_nmgP;kLWIzO!d8g_HFzQeRG$HOC`Yi&;@}B`XlJSr+n_z!*2~ zPfob}UixQ=M-Ls%Kl8lxst%!g1KI*-*Jh@Zv=hl%ML+eEVsmmJ_S{`DD+l2PF6 zr?JpiNLJC<4Kn|k!V6=LL1?2gV!tPw-$mNoqu8j7*j^mG@wZ5uDaA%*Y{xKgp6s4i z>p| zN82^eZPZc+a@m=gd^TVHVCsQR-NkyzZTi?WeN@t|CSgl<*Qur4cFHT1OQk}ob}&_? zvz3y&IYs-}%BK#j_(-l2*Io6hj)mtkZ^F9(<^SvNw@5_U3WarEn{~&8LPU! zo_Ww&TCHaa-D0WOnXYDRuT?Ch*UENA#5#djNjEcXW8GpBA{dtov-961cck`|!&G7x!Hs-W0gF zruy)@z=JjG>p;a+^5?!K!ROt;XwaH4-VdO5N$>~pivr(0z$d_j_YC0Q5d1;>^8(*9 z!2hJc?;gMjFaf`{T3HkPLHrNM+pVm-*yo6S4*$l3n_hV0mH4N?S;H@^=moeS@NoVa zKPd2U{u$qg`HVxjj*RmROkh8sJqp1x*|AJ`mMSd7S4UR}U?9GVFG!sDVYc}3l=vPE zUs3q?NST_Zl*zw}KPz$aKPhEuJ|kt~t2k5W&<>ssx?KWX-vNw&fE~z|@!}RZkDpIm z4E=|z6V3_Y>aOOU%=k;v|6Q^rT+NZ^g!w<0ynV8zJbO1GV!U3Qzofw#DX^c@Xh((i z8x_XSN&L|O?%~T4Z%CZ{tNZ7Qg46u-7(Od;_U}tSUsm|)zPhI1pRv*&Rj@irqw3~auTmkHE^@hb|lML zsVsYT3soGAZ!cl{WQ*GUHEWitGF2t2id4-|RiG+2O|__Uc@jmH%Za|;u+VGH3a~8f zU$^+PAXoE$Z)l$nzJ37yB`?kI$o<3-G!=GY2Vs2QGH;Frtqp$vhTv~dd?)+sAyr7a z{jU%uY)rmSKoJJ@)xSG@OLoK0xrp9LxsMFBnC%(=D`HXcACn0(A8DfK`kxSuioX&OpKRHl z-$>5$OsDQIz~O;mEgAmTCdi*FJh055&2P>&`qsV zQ{e^VMvea!Iey+)wEyXirjOr8jC|@B;$7qv%dj>v9G_cy4@KEe$qQ{mcnK@E(X8y7muG~&7yte{K@;9&ne9x{hDHX#?vxB`{Q;*{Kq1| l*BFqkp8tU@;@^shPwz=RKE0>(u~VpPGX6`llj26@{~tJ_iIV^T literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/TargetDirectories.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..67bfb70 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,2 @@ +/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/edit_cache.dir +/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/rebuild_cache.dir diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/cmake.check_cache b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/rules.ninja b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/rules.ninja new file mode 100644 index 0000000..28085d5 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/rules.ninja @@ -0,0 +1,45 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja -t targets + description = All primary targets available: + diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/additional_project_files.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/additional_project_files.txt new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json new file mode 100644 index 0000000..0677eb2 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json @@ -0,0 +1,28 @@ +{ + "buildFiles": [ + "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {}, + "toolchains": { + "toolchain": { + "cCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld", + "cppCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json new file mode 100644 index 0000000..84dea41 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json @@ -0,0 +1,20 @@ +{ + "buildFiles": [ + "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {} +} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja new file mode 100644 index 0000000..b54a2e4 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja @@ -0,0 +1,112 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/ + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build edit_cache: phony CMakeFiles/edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + +# ============================================================================= +# Target aliases. + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a + +build all: phony + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt new file mode 100644 index 0000000..ec6a72a --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt @@ -0,0 +1 @@ +/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/cmake_install.cmake b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/cmake_install.cmake new file mode 100644 index 0000000..27069b4 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin new file mode 100644 index 0000000..72e381e --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin @@ -0,0 +1,28 @@ +C/C++ Structured Logu +s +q/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/additional_project_files.txtC +A +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Π2  Π2r +p +n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json  Π2 Π2w +u +s/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json  Π2 Π2d +b +`/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja  Π2 Π2h +f +d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja.txt  Π2m +k +i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt  Π2 P Π2n +l +j/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json  Π2r +p +n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json.bin  Π2 x +v +t/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt  Π2 + Π2k +i +g/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json  Π2  ( Π2p +n +l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt  Π2  c Π2T +R +P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  Π2  ؄2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt new file mode 100644 index 0000000..df24dc1 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt @@ -0,0 +1,20 @@ + -H/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_SYSTEM_VERSION=26 +-DANDROID_PLATFORM=android-26 +-DANDROID_ABI=arm64-v8a +-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a +-DANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 +-DCMAKE_ANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 +-DCMAKE_TOOLCHAIN_FILE=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a +-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a +-DCMAKE_BUILD_TYPE=Debug +-B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a +-GNinja +-Wno-dev +--no-warn-unused-cli + Build command args: [] + Version: 2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json new file mode 100644 index 0000000..e799de8 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt new file mode 100644 index 0000000..44c632a --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt @@ -0,0 +1 @@ +/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cache-v2-6573c0656e67becaeff1.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cache-v2-6573c0656e67becaeff1.json new file mode 100644 index 0000000..12ec5a0 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cache-v2-6573c0656e67becaeff1.json @@ -0,0 +1,1391 @@ +{ + "entries" : + [ + { + "name" : "ANDROID_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "armeabi-v7a" + }, + { + "name" : "ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" + }, + { + "name" : "ANDROID_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "android-26" + }, + { + "name" : "CMAKE_ADDR2LINE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" + }, + { + "name" : "CMAKE_ANDROID_ARCH_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "armeabi-v7a" + }, + { + "name" : "CMAKE_ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" + }, + { + "name" : "CMAKE_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_ASM_FLAGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_BUILD_TYPE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." + } + ], + "type" : "STRING", + "value" : "Debug" + }, + { + "name" : "CMAKE_CACHEFILE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "This is the directory where this CMakeCache.txt was created" + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a" + }, + { + "name" : "CMAKE_CACHE_MAJOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Major version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "3" + }, + { + "name" : "CMAKE_CACHE_MINOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Minor version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "22" + }, + { + "name" : "CMAKE_CACHE_PATCH_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Patch version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake" + }, + { + "name" : "CMAKE_CPACK_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cpack program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack" + }, + { + "name" : "CMAKE_CTEST_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to ctest program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest" + }, + { + "name" : "CMAKE_CXX_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_CXX_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_CXX_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_CXX_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C++ applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_C_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_C_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_C_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_C_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_C_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_C_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_DLLTOOL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "CMAKE_DLLTOOL-NOTFOUND" + }, + { + "name" : "CMAKE_EDIT_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cache edit program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake" + }, + { + "name" : "CMAKE_ERROR_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue deprecation errors for macros and functions." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_EXECUTABLE_FORMAT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Executable file format" + } + ], + "type" : "INTERNAL", + "value" : "ELF" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "ON" + }, + { + "name" : "CMAKE_EXTRA_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of external makefile project generator." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator." + } + ], + "type" : "INTERNAL", + "value" : "Ninja" + }, + { + "name" : "CMAKE_GENERATOR_INSTANCE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Generator instance identifier." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator platform." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_TOOLSET", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator toolset." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_HOME_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Source directory with the top level CMakeLists.txt file for this project" + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + { + "name" : "CMAKE_INSTALL_PREFIX", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install path prefix, prepended onto install directories." + } + ], + "type" : "PATH", + "value" : "/usr/local" + }, + { + "name" : "CMAKE_INSTALL_SO_NO_EXE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install .so files without execute permission." + } + ], + "type" : "INTERNAL", + "value" : "0" + }, + { + "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a" + }, + { + "name" : "CMAKE_LINKER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" + }, + { + "name" : "CMAKE_MAKE_PROGRAM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_NM", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" + }, + { + "name" : "CMAKE_NUMBER_OF_MAKEFILES", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "number of local generators" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_OBJCOPY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" + }, + { + "name" : "CMAKE_OBJDUMP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" + }, + { + "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Platform information initialized" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_PROJECT_DESCRIPTION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_HOMEPAGE_URL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "Project" + }, + { + "name" : "CMAKE_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Ranlib" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_READELF", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" + }, + { + "name" : "CMAKE_ROOT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake installation." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + { + "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of dll's." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SKIP_INSTALL_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_SKIP_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when using shared libraries." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STRIP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Strip" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SYSTEM_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "Android" + }, + { + "name" : "CMAKE_SYSTEM_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "26" + }, + { + "name" : "CMAKE_TOOLCHAIN_FILE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "The CMake toolchain file" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "name" : "CMAKE_UNAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "uname command" + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/uname" + }, + { + "name" : "CMAKE_VERBOSE_MAKEFILE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." + } + ], + "type" : "BOOL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_WARN_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue warnings for deprecated functionality." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "Project_BINARY_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a" + }, + { + "name" : "Project_IS_TOP_LEVEL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "ON" + }, + { + "name" : "Project_SOURCE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + } + ], + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-161e4284e257b7dbcee8.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-161e4284e257b7dbcee8.json new file mode 100644 index 0000000..ad14735 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-161e4284e257b7dbcee8.json @@ -0,0 +1,799 @@ +{ + "inputs" : + [ + { + "path" : "CMakeLists.txt" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + } + ], + "kind" : "cmakeFiles", + "paths" : + { + "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", + "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 1, + "minor" : 0 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-769fcb1eb528b5a1f77c.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-769fcb1eb528b5a1f77c.json new file mode 100644 index 0000000..35467aa --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-769fcb1eb528b5a1f77c.json @@ -0,0 +1,43 @@ +{ + "configurations" : + [ + { + "directories" : + [ + { + "build" : ".", + "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", + "minimumCMakeVersion" : + { + "string" : "3.6.0" + }, + "projectIndex" : 0, + "source" : "." + } + ], + "name" : "Debug", + "projects" : + [ + { + "directoryIndexes" : + [ + 0 + ], + "name" : "Project" + } + ], + "targets" : [] + } + ], + "kind" : "codemodel", + "paths" : + { + "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", + "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 2, + "minor" : 3 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json new file mode 100644 index 0000000..3a67af9 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json @@ -0,0 +1,14 @@ +{ + "backtraceGraph" : + { + "commands" : [], + "files" : [], + "nodes" : [] + }, + "installers" : [], + "paths" : + { + "build" : ".", + "source" : "." + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0543.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0543.json new file mode 100644 index 0000000..70ff0c6 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0543.json @@ -0,0 +1,92 @@ +{ + "cmake" : + { + "generator" : + { + "multiConfig" : false, + "name" : "Ninja" + }, + "paths" : + { + "cmake" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake", + "cpack" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack", + "ctest" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest", + "root" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + "version" : + { + "isDirty" : false, + "major" : 3, + "minor" : 22, + "patch" : 1, + "string" : "3.22.1-g37088a8", + "suffix" : "g37088a8" + } + }, + "objects" : + [ + { + "jsonFile" : "codemodel-v2-769fcb1eb528b5a1f77c.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + }, + { + "jsonFile" : "cache-v2-6573c0656e67becaeff1.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + { + "jsonFile" : "cmakeFiles-v1-161e4284e257b7dbcee8.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + } + ], + "reply" : + { + "client-agp" : + { + "cache-v2" : + { + "jsonFile" : "cache-v2-6573c0656e67becaeff1.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + "cmakeFiles-v1" : + { + "jsonFile" : "cmakeFiles-v1-161e4284e257b7dbcee8.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + }, + "codemodel-v2" : + { + "jsonFile" : "codemodel-v2-769fcb1eb528b5a1f77c.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + } + } + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeCache.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeCache.txt new file mode 100644 index 0000000..4f7a9db --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeCache.txt @@ -0,0 +1,405 @@ +# This is the CMakeCache file. +# For build in directory: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a +# It was generated by CMake: /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=armeabi-v7a + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-26 + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=armeabi-v7a + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 + +//Archiver +CMAKE_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a + +//Path to a program. +CMAKE_LINKER:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf + +//No help, variable specified on the command line. +CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=26 + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a + +//Value Computed by CMake +Project_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake +//Whether to issue deprecation errors for macros and functions. +CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//Suppress errors that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE +//Suppress Warnings that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Whether to issue warnings for deprecated functionality. +CMAKE_WARN_DEPRECATED:INTERNAL=FALSE + diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake new file mode 100644 index 0000000..802edf5 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake @@ -0,0 +1,72 @@ +set(CMAKE_C_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "17.0.2") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "4") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/arm-linux-androideabi;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/arm;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..2193dfd --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_CXX_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "17.0.2") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "4") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/arm-linux-androideabi;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/arm;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..3f1c03f0c432c32e4e2cfcdb062fe1e43751825d GIT binary patch literal 5896 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 Nu$x8UUr1%h?mq}<`*{EW literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..1f893f66cb6e585cdf4f0e709db8d25249c8967a GIT binary patch literal 6036 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 literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake new file mode 100644 index 0000000..72a079f --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Darwin-24.3.0") +set(CMAKE_HOST_SYSTEM_NAME "Darwin") +set(CMAKE_HOST_SYSTEM_VERSION "24.3.0") +set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64") + +include("/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "armv7-a") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..41b99d7 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,803 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..c4b399f47492347c701418e5762a811923832d9f GIT binary patch literal 4148 zcmdT{U5p#m6+ScLv7PnC`$xzx)I}j(Xgy?iyN64E6<8+yrhJBG5+x; zG4feY{1wQsdXYY7F%dYE{x=AEBz^%TKF@#)P1|#8c4{)4nV!yNasJd>o z?zG*GS9T0sAJcc;dU@5VHO+c`t&whd?pdeor|h}P>|7;pXJ=++rtIlVHs?&2GjsX5 z>B>}TD&v%$DLXecle>c!k6P!P#YJ%wmu;g==BYOBhk3SRHO&*Admeyp+qCRz2e&T0 z>NcEo!)jVp$CG)PR;y(i#Q-#dztTk(HgkL1A#-n0!;pEAMhl=+v|MGD0frm~UE*7cQthhy4GJ2BOuAU$Z zM^EC4(c^eyJIJ;;SU3jE->)9jz{bMMC(Emrc~~RQd8AYGaOD4AANayuIIR{x6;iTb z7js5tj-o@cg}Aas9nyxCB#kJe%9uJHxk=eZ+qE6aPGy&Ro3amweH1gkMT?-^C>N5$ zTOqSfHojK}lcV%1Xe6kfcw7B1xs^aLozRu*ow;DXt}@Y{jw*U==q){I>U*LUJ!$9( zLr+Gl1JaJZZFh7PcDTVgswFFWx^LoXW?veDqZUmV+9&5LsMw+RXb>O6aZXaS2>tV0 z$urgPdopBajR)E9I|cP6B*pqXGa8|Chnhw=ha|S|8j$zU7tnA>-q&$>yd*rh*pE@1 zzS$%vXs^hxXWvS13p>Am$58t2-{e1nuZLdi`Hux_(eRe)Lahz=D!qn>e2L{G(GyHZ zh@N699{iobV?)8#p+x&3igzZd7ywNwwr5;W-U)RJ1v|j{TUiEfhAD6tgdcxTu>H88 zrrOL8eg&al67-aywxEv)iq8X5<3xLy@;pJwu(@Iuty0Nz*2wTtg@`MA!$H|GJg08h zmTwtB@#|Nz>y)Y+xqh$c84D+m8kX;SwNl4-+A@K*?+u3Q*V-O-kSFH>KX)T3S%U*7 z#&)_jyBjRT2jp_ZWZ8TlqF^(KNl}5_tbA!nQ^*oeFz1DPuPmox}vl`Cz zDvN=Y`BsUH_W1_Wy|$60z#J#@32kl2T{yGZZ^bc`v`RheC$>R6~cbCsRx865- zkLQu^9Jha<^PI3B-*?%h-)B%D6wM368Js6ho9_ze!+ucFU(kWqdK{G7yXdT!IZM0` zpbO(&h7Qvo z;29U!C1|q{WDcxg8@K$3iWvMShy6H@?*RE!T(|%L literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..25c62a8 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,791 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..ec6bab69ee4d78ac0747a374e943316816171846 GIT binary patch literal 4184 zcmdT{O>7&-6@I(Rr6^KfOS0W4j?prP8z^bCOH!05*+nWR0=X6FAqa8^5+KQ;mmqMyH=LoC zbXD})5oW)6?|t*;&EFg9r>9P@Ynn!?Xf#W^64CXHu$V;wv-B-kZ`{?_DQn!+f2qAj zHxK<_=Ok_EcUE7Z+o_Xub9zM9?^w_%>%@q4d_<<(iMySr>96N8-bvI&R2%guDwn%= zjq4j{*UufV2CYt`>4%$ZO}AaYLPFVTx=}3%TbrjF?cR=5x?y!|Q?|R2+xFbhD|>#; z?KPv#d`VjToyc!@8$r7}u$?=5MT~g}-zQKx7LIFZ{PMORa<|Q#DEX4zZ{%{SQMf|d zl=f}wfN5Bh4?SW{Y12s}y+|7ej%QAo`V5hwX&VQK5|2Vx!it-Zp+S^9MuzoNCIihF zH#3>1&`cH4+&J*PhgI+K{eqqD>-*ZaMU=5I?sRfx#;{n)U5F-3(gzBneZ?V>Ucu%k zFh_jFF?f{zBqXB0OWXk>cp~kFW*V$CR`5xj#^(^3rvS-w=$q2UE;5Xzwg5iVgAU^> zkorFUrke(@Z)#hSSOW#=xAD>5gT!lZtl%TYn4r`R#bqn>q`!lY_5mc`qh0P{O8s1M z*($i7G4~5dyqCM&Bb54s;Gz;HhN}HWYW@kqSb<5zQXuRH5ig1M+^5XDuSb9h z{pHlZhs4B}eeoxNefrA?8D!01G9|yj*G!CG2aNOj(Q4ZZgNB!#&F2;t3c144liBZd z>H)r$pcw(05rnx`lXVrh>wDRtoehgirBbovJ)W)doyf|QndLKS7qYWkQPk-kcN|;+ z_HNgMpx*SmK`*TOHtv%X1wpgAx99Jel^N^%eAHDTG7idE-ub{3%Pv3 zU#RAmi^~hO`O19Guln;|VScgjIIW#=ulj4xKffj~=Z0rjI~{VK?c$O+FZSHFb3P2N z!D-NST(924Rh-)jTK-(iZM$_pRIxd3r{mbwogL?-U+LAIVt28$*qN_7ZrJkON@H%j zSnnFg*59X0RL2d?>FQ3jA#JEb+!h(YnksH>l{Mn|^ z|8cJo;?DfP9)#5sIK?jS6lr-h*9vxSnUd+T)s!}_r;Q2CqW#*WHlkXfe+U$^gDlXM4|5U&GXurIBBxKQFH!!^?OI*P)F ziOYv;eBac}vGiX|%Q256Yo=wJ8QZjy^_cWXatj(5U``rV&72z|Is+*UqLIwl#>dxc z`awh@1{(gn9upJv`Tdwk2L66A)X5;u72bek(EGAo0BSTnuyDhmu@QOHj`t*14Ejb) z;{Jz6cv}MNc6MGmev3DMp^Lj)cuKW%-+o@S9^qr*)}6 zBk`g{ml1JtJj}Z$^{+A_?pspN`^$d+$T&sxw$%Sa>i@-vd3_@FUrBu$>!M?x`x(*y z2qU&LE9E>R;yfYcA46MD*ONHIe$(*7$o(Xe?Qt?KyOm1lZ<8G%R}m-vmXGXX zhkn!c+{m>>b{gcn|B%r3qCSus?bQosY&VL+Mx__|T@^q#3P*<=&p9UU&UcXa?RF6P_S0vdox^mhS4RUCFG4JuW~1#( zj)<-nx-BR$#mKDyueBJDd3JsfGi-T?$0D0g-v3svVsFJy5=s9A`+W;KRa6tl3%LQm zDWsvO2om`&axp*}<#AqBMe#UEVJKRWhL>=!_+Inf;dqz_6@82ff1Ou=T;4=wy^2}+ z`v|(Yzu$wzJobmHKk#>5#>csi%Uh_NA5`JkxxOY*jgy5^jm2Em{u$cwao>!M%j2tg zOv`bVKmPHje8l}((8v9~74wIyH}H3S#NX^5{uW34-HZ9-Jf`B~+yv@iU7y^;-v&7G z_}+>6L&_TXJ38Vow}(I8pSZtwWBxcrtN7lP{*ZP=DZ-!HLsoF?To_fGIeZJ=6zQQK*jsfh`(Fl&Bl1@EM5k0Xuc45A9%j} wzNz`19r1S${(c+tr^e+sCGPJ-2)u;skKYmHuM1vmx#$J?PO%?#PC1UR0n?*oDgXcg literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/TargetDirectories.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..ca4b484 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,2 @@ +/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/edit_cache.dir +/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/rebuild_cache.dir diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/cmake.check_cache b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/rules.ninja b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/rules.ninja new file mode 100644 index 0000000..6a55d4f --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/rules.ninja @@ -0,0 +1,45 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja -t targets + description = All primary targets available: + diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/additional_project_files.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/additional_project_files.txt new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json new file mode 100644 index 0000000..f074409 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json @@ -0,0 +1,28 @@ +{ + "buildFiles": [ + "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {}, + "toolchains": { + "toolchain": { + "cCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld", + "cppCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json new file mode 100644 index 0000000..c404902 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json @@ -0,0 +1,20 @@ +{ + "buildFiles": [ + "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {} +} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja new file mode 100644 index 0000000..cda47cd --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja @@ -0,0 +1,112 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/ + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build edit_cache: phony CMakeFiles/edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + +# ============================================================================= +# Target aliases. + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a + +build all: phony + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt new file mode 100644 index 0000000..ec6a72a --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt @@ -0,0 +1 @@ +/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/cmake_install.cmake b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/cmake_install.cmake new file mode 100644 index 0000000..05e628b --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin new file mode 100644 index 0000000..064663e --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin @@ -0,0 +1,28 @@ +C/C++ Structured Logw +u +s/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/additional_project_files.txtC +A +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Ѡ2  Ѡ2t +r +p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json  Ѡ2 Ѡ2y +w +u/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json  Ѡ2 Ѡ2f +d +b/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja  Ѡ2 Ѡ2j +h +f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja.txt  Ѡ2o +m +k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt  Ѡ2 P Ѡ2p +n +l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json  Ѡ2t +r +p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json.bin  Ѡ2 z +x +v/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt  Ѡ2 + Ѡ2m +k +i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json  Ѡ2  ( Ѡ2r +p +n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt  Ѡ2  e Ѡ2T +R +P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  Ѡ2  ؄2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt new file mode 100644 index 0000000..b418b0d --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt @@ -0,0 +1,20 @@ + -H/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_SYSTEM_VERSION=26 +-DANDROID_PLATFORM=android-26 +-DANDROID_ABI=armeabi-v7a +-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a +-DANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 +-DCMAKE_ANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 +-DCMAKE_TOOLCHAIN_FILE=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a +-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a +-DCMAKE_BUILD_TYPE=Debug +-B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a +-GNinja +-Wno-dev +--no-warn-unused-cli + Build command args: [] + Version: 2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json new file mode 100644 index 0000000..e799de8 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt new file mode 100644 index 0000000..ac80ab6 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt @@ -0,0 +1 @@ +/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/hash_key.txt b/android/app/.cxx/Debug/4s676p3c/hash_key.txt new file mode 100644 index 0000000..aff771b --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/hash_key.txt @@ -0,0 +1,27 @@ +# Values used to calculate the hash in this folder name. +# Should not depend on the absolute path of the project itself. +# - AGP: 8.6.0. +# - $NDK is the path to NDK 26.1.10909125. +# - $PROJECT is the path to the parent folder of the root Gradle build file. +# - $ABI is the ABI to be built with. The specific value doesn't contribute to the value of the hash. +# - $HASH is the hash value computed from this text. +# - $CMAKE is the path to CMake 3.22.1. +# - $NINJA is the path to Ninja. +-H/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_SYSTEM_VERSION=26 +-DANDROID_PLATFORM=android-26 +-DANDROID_ABI=$ABI +-DCMAKE_ANDROID_ARCH_ABI=$ABI +-DANDROID_NDK=$NDK +-DCMAKE_ANDROID_NDK=$NDK +-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=$NINJA +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/$HASH/obj/$ABI +-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/$HASH/obj/$ABI +-DCMAKE_BUILD_TYPE=Debug +-B$PROJECT/app/.cxx/Debug/$HASH/$ABI +-GNinja +-Wno-dev +--no-warn-unused-cli \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cache-v2 b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cache-v2 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/codemodel-v2 b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/codemodel-v2 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cache-v2-920dacdb871097de2130.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cache-v2-920dacdb871097de2130.json new file mode 100644 index 0000000..04a71c8 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cache-v2-920dacdb871097de2130.json @@ -0,0 +1,1391 @@ +{ + "entries" : + [ + { + "name" : "ANDROID_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "x86" + }, + { + "name" : "ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" + }, + { + "name" : "ANDROID_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "android-26" + }, + { + "name" : "CMAKE_ADDR2LINE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" + }, + { + "name" : "CMAKE_ANDROID_ARCH_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "x86" + }, + { + "name" : "CMAKE_ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" + }, + { + "name" : "CMAKE_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_ASM_FLAGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_BUILD_TYPE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." + } + ], + "type" : "STRING", + "value" : "Debug" + }, + { + "name" : "CMAKE_CACHEFILE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "This is the directory where this CMakeCache.txt was created" + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86" + }, + { + "name" : "CMAKE_CACHE_MAJOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Major version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "3" + }, + { + "name" : "CMAKE_CACHE_MINOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Minor version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "22" + }, + { + "name" : "CMAKE_CACHE_PATCH_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Patch version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake" + }, + { + "name" : "CMAKE_CPACK_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cpack program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack" + }, + { + "name" : "CMAKE_CTEST_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to ctest program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest" + }, + { + "name" : "CMAKE_CXX_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_CXX_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_CXX_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_CXX_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C++ applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_C_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_C_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_C_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_C_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_C_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_C_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_DLLTOOL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "CMAKE_DLLTOOL-NOTFOUND" + }, + { + "name" : "CMAKE_EDIT_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cache edit program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake" + }, + { + "name" : "CMAKE_ERROR_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue deprecation errors for macros and functions." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_EXECUTABLE_FORMAT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Executable file format" + } + ], + "type" : "INTERNAL", + "value" : "ELF" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "ON" + }, + { + "name" : "CMAKE_EXTRA_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of external makefile project generator." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator." + } + ], + "type" : "INTERNAL", + "value" : "Ninja" + }, + { + "name" : "CMAKE_GENERATOR_INSTANCE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Generator instance identifier." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator platform." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_TOOLSET", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator toolset." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_HOME_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Source directory with the top level CMakeLists.txt file for this project" + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + { + "name" : "CMAKE_INSTALL_PREFIX", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install path prefix, prepended onto install directories." + } + ], + "type" : "PATH", + "value" : "/usr/local" + }, + { + "name" : "CMAKE_INSTALL_SO_NO_EXE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install .so files without execute permission." + } + ], + "type" : "INTERNAL", + "value" : "0" + }, + { + "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86" + }, + { + "name" : "CMAKE_LINKER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" + }, + { + "name" : "CMAKE_MAKE_PROGRAM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_NM", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" + }, + { + "name" : "CMAKE_NUMBER_OF_MAKEFILES", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "number of local generators" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_OBJCOPY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" + }, + { + "name" : "CMAKE_OBJDUMP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" + }, + { + "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Platform information initialized" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_PROJECT_DESCRIPTION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_HOMEPAGE_URL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "Project" + }, + { + "name" : "CMAKE_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Ranlib" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_READELF", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" + }, + { + "name" : "CMAKE_ROOT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake installation." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + { + "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of dll's." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SKIP_INSTALL_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_SKIP_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when using shared libraries." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STRIP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Strip" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SYSTEM_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "Android" + }, + { + "name" : "CMAKE_SYSTEM_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "26" + }, + { + "name" : "CMAKE_TOOLCHAIN_FILE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "The CMake toolchain file" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "name" : "CMAKE_UNAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "uname command" + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/uname" + }, + { + "name" : "CMAKE_VERBOSE_MAKEFILE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." + } + ], + "type" : "BOOL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_WARN_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue warnings for deprecated functionality." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "Project_BINARY_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86" + }, + { + "name" : "Project_IS_TOP_LEVEL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "ON" + }, + { + "name" : "Project_SOURCE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + } + ], + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cmakeFiles-v1-f1661dab2653e3c04b8e.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cmakeFiles-v1-f1661dab2653e3c04b8e.json new file mode 100644 index 0000000..73685b0 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cmakeFiles-v1-f1661dab2653e3c04b8e.json @@ -0,0 +1,799 @@ +{ + "inputs" : + [ + { + "path" : "CMakeLists.txt" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + } + ], + "kind" : "cmakeFiles", + "paths" : + { + "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", + "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 1, + "minor" : 0 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/codemodel-v2-95b6204aa3712c2f8293.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/codemodel-v2-95b6204aa3712c2f8293.json new file mode 100644 index 0000000..996721e --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/codemodel-v2-95b6204aa3712c2f8293.json @@ -0,0 +1,43 @@ +{ + "configurations" : + [ + { + "directories" : + [ + { + "build" : ".", + "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", + "minimumCMakeVersion" : + { + "string" : "3.6.0" + }, + "projectIndex" : 0, + "source" : "." + } + ], + "name" : "Debug", + "projects" : + [ + { + "directoryIndexes" : + [ + 0 + ], + "name" : "Project" + } + ], + "targets" : [] + } + ], + "kind" : "codemodel", + "paths" : + { + "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", + "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 2, + "minor" : 3 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json new file mode 100644 index 0000000..3a67af9 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json @@ -0,0 +1,14 @@ +{ + "backtraceGraph" : + { + "commands" : [], + "files" : [], + "nodes" : [] + }, + "installers" : [], + "paths" : + { + "build" : ".", + "source" : "." + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0932.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0932.json new file mode 100644 index 0000000..b8f0a1d --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0932.json @@ -0,0 +1,92 @@ +{ + "cmake" : + { + "generator" : + { + "multiConfig" : false, + "name" : "Ninja" + }, + "paths" : + { + "cmake" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake", + "cpack" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack", + "ctest" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest", + "root" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + "version" : + { + "isDirty" : false, + "major" : 3, + "minor" : 22, + "patch" : 1, + "string" : "3.22.1-g37088a8", + "suffix" : "g37088a8" + } + }, + "objects" : + [ + { + "jsonFile" : "codemodel-v2-95b6204aa3712c2f8293.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + }, + { + "jsonFile" : "cache-v2-920dacdb871097de2130.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + { + "jsonFile" : "cmakeFiles-v1-f1661dab2653e3c04b8e.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + } + ], + "reply" : + { + "client-agp" : + { + "cache-v2" : + { + "jsonFile" : "cache-v2-920dacdb871097de2130.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + "cmakeFiles-v1" : + { + "jsonFile" : "cmakeFiles-v1-f1661dab2653e3c04b8e.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + }, + "codemodel-v2" : + { + "jsonFile" : "codemodel-v2-95b6204aa3712c2f8293.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + } + } + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeCache.txt b/android/app/.cxx/Debug/4s676p3c/x86/CMakeCache.txt new file mode 100644 index 0000000..5de09a9 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/CMakeCache.txt @@ -0,0 +1,405 @@ +# This is the CMakeCache file. +# For build in directory: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 +# It was generated by CMake: /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=x86 + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-26 + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=x86 + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 + +//Archiver +CMAKE_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86 + +//Path to a program. +CMAKE_LINKER:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf + +//No help, variable specified on the command line. +CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86 + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=26 + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 + +//Value Computed by CMake +Project_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake +//Whether to issue deprecation errors for macros and functions. +CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//Suppress errors that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE +//Suppress Warnings that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Whether to issue warnings for deprecated functionality. +CMAKE_WARN_DEPRECATED:INTERNAL=FALSE + diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake new file mode 100644 index 0000000..53c7c7c --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake @@ -0,0 +1,72 @@ +set(CMAKE_C_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "17.0.2") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "4") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/i686-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/i386;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..7940e01 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_CXX_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "17.0.2") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "4") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/i686-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/i386;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..edd4a3647d3c06d5d28cfcaf11bf082fdb0551c1 GIT binary patch literal 5828 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 S2qoFQ&Tbr)zbBP-cK-p;S0)+& literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..efba7088e248e7f7580ccc43f66c20c16bb89891 GIT binary patch literal 5984 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 literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake new file mode 100644 index 0000000..46bf291 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Darwin-24.3.0") +set(CMAKE_HOST_SYSTEM_NAME "Darwin") +set(CMAKE_HOST_SYSTEM_VERSION "24.3.0") +set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64") + +include("/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "i686") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..41b99d7 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,803 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..9310552de2220fe57f8bc45400db0b4e002fad4c GIT binary patch literal 3924 zcmdT{ZD?Cn7=CY(o7^^CW;^FTIwgMBkKUW6Y0_;n+tqYd+I4Iz=(>^JCO2ufBsaTB zW+qdoQ{31DKM@tgANouEp+7|ZF@y;sB8Y8O-sUsKH9L%N;Grw$KyX~=h%ApL+|?mr>442 zO=%ydFR<>z^diHl6Ye~ttvu7!?VnmaIkos7Ra01UTI1E1UUtk4&Yl6ypI$tfUObgv zJpO^U@9f0(@##%jyHr^yTF&fP(JUACk*ll}&05}eO0$y-<$6OXO(#1)EBI>7Eayxo zm&sXqvtF#t4y1&|YSgT9b-^xITej)#`?v< zHppx^yajA10d`{5?d#++Z6*API&N^GQ%9Pf;K*8kgdJ{N$F4+Sm3%_Q&RvORB0Ye+ z5kQHU-CJ@cz2izm9}9d5h-$Hmrxlg&1NlcV1-4;YP3kC?1(o19KnsQT0QSSs^3^Oz z9V3`R^ROLd+iN}%hiz`0xXAD|EPQyOx{SjbD9HCVCgmGQe6aozOzz4q3LTfeY=xeD zKVVXRhr}OX$#*@49+$qqN#6)G%Ab(mFBMi!oDZ9 zFP4d2Up2*h0bRZ)8{e@QcAZK641yZajsmn1jyhV-Irc&>+BXmz8j8o_!?#9nsT6F? zb9S)?DApkKmx`>LGpklEYL}xzD%;ZlFau@6|;S~RyYKfE!Y$PFZu$-&%EY#?q8 zWn&u?8;A0PbAvG}YYpb&gUR?!G&W@(w8qB7Tb#)0Su$p-cpt`rx>+`MIQ9_)w5x`h zE7bAs`seME)n78pX2Eh~U4~hy7<#tRFz&GC>IEZFO{S8S!K~33P8x28alG`ZF{sDm z`apkSFcljfHiwO+v}1%_IF!kZ?%X+gPiEJ|o^)pSJv-8w3@w!Nc1AXfrX-H3Dae-5 zl(<(kIX=)js?4;vj5hN>`v#S8pzx}Z=@ha&9VW**R9|p#)&H*_n&@)Ary%9NounMq zl-{mD-~=x42IzP&@w=eWi1w&&>k8HP0z8ObhAQB8Li{3~kE|d7mJx<>vHJrP9*2)- z|H+`DhB~z`)kt045X`HQ+tlz~Y9v@_lh(Fuy}^0d;r1}VAIYozEfX&@T2dz*{lV~U zJ{1LVGA~{0(FEw%zq~d-eoMXNC)F#$+TAA0lWVH|w2nRy9(-OsSiy}`(q&*C69PBo zZVJ-p%j6C^zf2C(8$yn|{u=FCW?w;l%jA_5f!vATU)FbY5N&2eXWPz*Uzt2(7m>rb zg6L63UIbFa_Wup>+eQkCM+j1IJUs%hV1#kKkgsCIr;afq?x@h;DR5fgUPjb;P{<8N z1b>PV>z)((R~WI6w}k$z(0|H^eSItRKMVZ@M(nQ>=g)C^8BuQ^Blg?Ri271O&)GjG1kd(_2R;Gt=YayVAQeyGOT9rZcUw z;XI%Z;H>{6CGoBBsate{?-g{CB)bv{=J_r&HUCy_@;vj~WIBW4^&5fA?^+VSXQuZs zkcvhyn4)-p!@yn)u7~46MSBs9!U-V+Z`yA^K=yf@zIOT?RKi&yc)LrZAIyQVGP6PJj0Ra?AeK+q2-k=W+~r7op?t+k+wVI^cOZ_gbbm@d3}Z#bc5G z^!EBakAC+qFA&5w9^VTTYT79uicqi*(>gHB%X_sOethpG$#19<2U>_!#q$K literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..25c62a8 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,791 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..76432df37b6b61f70c2e6d975b1be0efd7bd1acd GIT binary patch literal 3960 zcmdT{U1%Fu7CxiV$YV=Z>SWubjVa2KE^c={BgwL@B&M~K$XN$F4oM72O_&`^BiXH_ zQAeZTwCVp(65N+STguXhJ~S^&31y#lVOa`WwhyJdltLHwp_GL{yOjNXG3+kc@66n* zjGUVGwHNOF&fk3Z+&lN4k)AEh&nk*SvMHp}ZH;J8GV~Mz7@^@FFVWJ~n=gK?f63mn z&%dt%HWpGF3;Ktp|FZ4F(k8>km0(=bclKwX#%yR(~N5*xv zw0X6(xl!7D@dN$*@8(X-E*>nqjn-P-@s^L&?Pl#f1;$q0_N%VfSe{>NcGiW__R6cv zLT>wZvtoM{tKwAcPTgP5O$v{*?mNx)n%iu5eTyf~a}Gpzqd$Z`fqoLbCjsk%FvdY7iA@7ldLJ*4bR5XA~Kx9ec?kQUp6ZBUfCT}1JHuubAk zXg`8Ll-N&d`r%{}mOd7f$%i581&DLI9=TUO-M=G<9tiEBwV5VL8kl!yVtS97W+OjB zl+q~HH4qIJdQ^G=ha!$OVhoPQKKfOl5&co%1`x>;DK9A+9|TgTF~sLF+)Y{ukT`~C z6H4DaK=0Fk25?~RKF~i6E#&w(rm4KYdQ%3m1qO<}i9z`TG~Ro48bdHgiu6k|mc6i3 z>;nwSU!d_jx*dBT>95FG_6D*4;Mjjb<9B&Gc9`_*GM2p@JMep0_Mba zT=InXfn$%ZEZyX|TQMJyie1zH)}yBW9jZ?O24mOOH(6Cw4yMFkF>3Mt=K%e@e>Bsq zcA4p{>b6b0QtRL@j;^{5XS88A?V97s+)TUGGL7>3x_Q)D z>D0_Zdt!2;HC8s)ixXxr%Pekx+Z;3Uc_TMk8=K4)i+0hxJu$K%ti>bCnmKi9=A3nU z?$MHU=G@7WWzkx*>RPgdgqo}!p~giclz1mQNX^<>JGQv*EFfWkcnM@ZI-ko2^GZtt z8;uyBY_C@4;R1Qi6P+~=cjfzf0O$vNe9@FAPmyv-SN5jj@hdpj!?1DZ#@B^r()!D> z!-HDvG9rlHfGJJ}Mtr6IlOAN?yMeB3cdX#Xy@~Ot-qIAUZ$ST(mhNc7iK>>K(vruu zbfOl~_9j+gf#U^$nyzZ2J%MId8$h6%NKVBxq`~yP?e&Nnr+?mxsQ9X?#KnkP9$lfk z0$C0!X;KVOy~97W#V>a>G^=zkeIX)vA9rHD#Ym1k+hyVBIzB`R`g@PA)9D^PMI$|W znsy7m@c9A4r-TLuD2VGv!8-)KKScpgKbB*$K1k#-axj|04}S~dD@Y0kP?6HdYYFil zM*KXuPw4kE;x%U(!8B0~&xp8-!u|>)CV5TRuM7Jx8Fvu9FYKQP`{#^U z&)35KKVcuhz9?AV4o2iV%!u`8gq~wWo`-~fT;Mr@s{%U$GvJMJJoEE0HY!}~EPG|e zb1snKqoxoS=7xhRVR%m6sMx-31XZM4m%gF!Y!`Y*2@?~xeQzs$w>WN7(!(i&bU7V7 z?gqKtS>}RBUWySEye+wP%dXLMeaARF^ceiDfAclvS8V3SRX zI8M0p_@)a-K?VpE*Mj~GJsLL+J*bN!PF9W2pkpeU7WOIJ3%&wy#w?Bo8tK)IG8j4~&Vl=9P%qx04=3D3jx^4jFQUqNPG$v3qP-%Z3s`TPhU z^Gd!UJRjwo-iB`w_9)+_2p>vSmoKOhk^GKs!#B4jzn3C>T%TlqKZG33@2A`Fam|Y6 z$A5QtoxFcsA|>B%ATu9de{TGfS-wNo*~g7h%B(*Fa<&{teH_XOr6v)Wu(iVlc9gdr(Uw_L{sX z!p1S&#v!mQr&>i^G4O-~=f{m}ZqGWP$bH@ozg))yf-iUo!`tBdxm18W7q@*|_}+@} c;ono2kN@Gw-1xaEd=Hp}c{m@Qm+$cZ0ohYm6951J literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/TargetDirectories.txt b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..15fd9a6 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,2 @@ +/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/edit_cache.dir +/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/rebuild_cache.dir diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/cmake.check_cache b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/rules.ninja b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/rules.ninja new file mode 100644 index 0000000..fd37716 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/rules.ninja @@ -0,0 +1,45 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja -t targets + description = All primary targets available: + diff --git a/android/app/.cxx/Debug/4s676p3c/x86/additional_project_files.txt b/android/app/.cxx/Debug/4s676p3c/x86/additional_project_files.txt new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json b/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json new file mode 100644 index 0000000..5e59a91 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json @@ -0,0 +1,28 @@ +{ + "buildFiles": [ + "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {}, + "toolchains": { + "toolchain": { + "cCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld", + "cppCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json b/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json new file mode 100644 index 0000000..984990b --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json @@ -0,0 +1,20 @@ +{ + "buildFiles": [ + "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {} +} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/build.ninja b/android/app/.cxx/Debug/4s676p3c/x86/build.ninja new file mode 100644 index 0000000..908e700 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/build.ninja @@ -0,0 +1,112 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/ + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build edit_cache: phony CMakeFiles/edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + +# ============================================================================= +# Target aliases. + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 + +build all: phony + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt b/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt new file mode 100644 index 0000000..ec6a72a --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt @@ -0,0 +1 @@ +/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/cmake_install.cmake b/android/app/.cxx/Debug/4s676p3c/x86/cmake_install.cmake new file mode 100644 index 0000000..3ec8b80 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin new file mode 100644 index 0000000..f93955d --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin @@ -0,0 +1,28 @@ +C/C++ Structured Logo +m +k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/additional_project_files.txtC +A +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Ԡ2  Ԡ2l +j +h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json  Ԡ2 Ԡ2q +o +m/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json  Ԡ2 Ԡ2^ +\ +Z/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja  Ԡ2 Ԡ2b +` +^/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja.txt  Ԡ2g +e +c/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt  Ԡ2 P Ԡ2h +f +d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json  Ԡ2l +j +h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json.bin  Ԡ2 r +p +n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt  Ԡ2 + Ԡ2e +c +a/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json  Ԡ2  ( Ԡ2j +h +f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt  Ԡ2  ] Ԡ2T +R +P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  Ԡ2  ؄2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt b/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt new file mode 100644 index 0000000..2aed5c8 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt @@ -0,0 +1,20 @@ + -H/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_SYSTEM_VERSION=26 +-DANDROID_PLATFORM=android-26 +-DANDROID_ABI=x86 +-DCMAKE_ANDROID_ARCH_ABI=x86 +-DANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 +-DCMAKE_ANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 +-DCMAKE_TOOLCHAIN_FILE=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86 +-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86 +-DCMAKE_BUILD_TYPE=Debug +-B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 +-GNinja +-Wno-dev +--no-warn-unused-cli + Build command args: [] + Version: 2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json b/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json new file mode 100644 index 0000000..e799de8 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt b/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt new file mode 100644 index 0000000..ec94a09 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt @@ -0,0 +1 @@ +/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cache-v2 b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cache-v2 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 new file mode 100644 index 0000000..e69de29 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cache-v2-2b5d080db4293a9c0f40.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cache-v2-2b5d080db4293a9c0f40.json new file mode 100644 index 0000000..54f6d66 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cache-v2-2b5d080db4293a9c0f40.json @@ -0,0 +1,1391 @@ +{ + "entries" : + [ + { + "name" : "ANDROID_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "x86_64" + }, + { + "name" : "ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" + }, + { + "name" : "ANDROID_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "android-26" + }, + { + "name" : "CMAKE_ADDR2LINE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" + }, + { + "name" : "CMAKE_ANDROID_ARCH_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "x86_64" + }, + { + "name" : "CMAKE_ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" + }, + { + "name" : "CMAKE_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_ASM_FLAGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_BUILD_TYPE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." + } + ], + "type" : "STRING", + "value" : "Debug" + }, + { + "name" : "CMAKE_CACHEFILE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "This is the directory where this CMakeCache.txt was created" + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64" + }, + { + "name" : "CMAKE_CACHE_MAJOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Major version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "3" + }, + { + "name" : "CMAKE_CACHE_MINOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Minor version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "22" + }, + { + "name" : "CMAKE_CACHE_PATCH_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Patch version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake" + }, + { + "name" : "CMAKE_CPACK_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cpack program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack" + }, + { + "name" : "CMAKE_CTEST_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to ctest program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest" + }, + { + "name" : "CMAKE_CXX_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_CXX_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_CXX_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_CXX_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C++ applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_C_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_C_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_C_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_C_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_C_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_C_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_DLLTOOL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "CMAKE_DLLTOOL-NOTFOUND" + }, + { + "name" : "CMAKE_EDIT_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cache edit program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake" + }, + { + "name" : "CMAKE_ERROR_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue deprecation errors for macros and functions." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_EXECUTABLE_FORMAT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Executable file format" + } + ], + "type" : "INTERNAL", + "value" : "ELF" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "ON" + }, + { + "name" : "CMAKE_EXTRA_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of external makefile project generator." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator." + } + ], + "type" : "INTERNAL", + "value" : "Ninja" + }, + { + "name" : "CMAKE_GENERATOR_INSTANCE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Generator instance identifier." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator platform." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_TOOLSET", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator toolset." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_HOME_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Source directory with the top level CMakeLists.txt file for this project" + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + { + "name" : "CMAKE_INSTALL_PREFIX", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install path prefix, prepended onto install directories." + } + ], + "type" : "PATH", + "value" : "/usr/local" + }, + { + "name" : "CMAKE_INSTALL_SO_NO_EXE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install .so files without execute permission." + } + ], + "type" : "INTERNAL", + "value" : "0" + }, + { + "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86_64" + }, + { + "name" : "CMAKE_LINKER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" + }, + { + "name" : "CMAKE_MAKE_PROGRAM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_NM", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" + }, + { + "name" : "CMAKE_NUMBER_OF_MAKEFILES", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "number of local generators" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_OBJCOPY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" + }, + { + "name" : "CMAKE_OBJDUMP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" + }, + { + "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Platform information initialized" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_PROJECT_DESCRIPTION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_HOMEPAGE_URL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "Project" + }, + { + "name" : "CMAKE_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Ranlib" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_READELF", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" + }, + { + "name" : "CMAKE_ROOT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake installation." + } + ], + "type" : "INTERNAL", + "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + { + "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86_64" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of dll's." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SKIP_INSTALL_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_SKIP_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when using shared libraries." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STRIP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Strip" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SYSTEM_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "Android" + }, + { + "name" : "CMAKE_SYSTEM_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "26" + }, + { + "name" : "CMAKE_TOOLCHAIN_FILE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "The CMake toolchain file" + } + ], + "type" : "FILEPATH", + "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "name" : "CMAKE_UNAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "uname command" + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/uname" + }, + { + "name" : "CMAKE_VERBOSE_MAKEFILE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." + } + ], + "type" : "BOOL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_WARN_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue warnings for deprecated functionality." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "Project_BINARY_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64" + }, + { + "name" : "Project_IS_TOP_LEVEL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "ON" + }, + { + "name" : "Project_SOURCE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + } + ], + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-9a2bf79ff0a2a89eb505.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-9a2bf79ff0a2a89eb505.json new file mode 100644 index 0000000..bc82f99 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-9a2bf79ff0a2a89eb505.json @@ -0,0 +1,799 @@ +{ + "inputs" : + [ + { + "path" : "CMakeLists.txt" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + } + ], + "kind" : "cmakeFiles", + "paths" : + { + "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64", + "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 1, + "minor" : 0 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/codemodel-v2-852402f1316f6f65a056.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/codemodel-v2-852402f1316f6f65a056.json new file mode 100644 index 0000000..29446e0 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/codemodel-v2-852402f1316f6f65a056.json @@ -0,0 +1,43 @@ +{ + "configurations" : + [ + { + "directories" : + [ + { + "build" : ".", + "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", + "minimumCMakeVersion" : + { + "string" : "3.6.0" + }, + "projectIndex" : 0, + "source" : "." + } + ], + "name" : "Debug", + "projects" : + [ + { + "directoryIndexes" : + [ + 0 + ], + "name" : "Project" + } + ], + "targets" : [] + } + ], + "kind" : "codemodel", + "paths" : + { + "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64", + "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 2, + "minor" : 3 + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json new file mode 100644 index 0000000..3a67af9 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json @@ -0,0 +1,14 @@ +{ + "backtraceGraph" : + { + "commands" : [], + "files" : [], + "nodes" : [] + }, + "installers" : [], + "paths" : + { + "build" : ".", + "source" : "." + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T18-26-02-0299.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T18-26-02-0299.json new file mode 100644 index 0000000..0148bde --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T18-26-02-0299.json @@ -0,0 +1,92 @@ +{ + "cmake" : + { + "generator" : + { + "multiConfig" : false, + "name" : "Ninja" + }, + "paths" : + { + "cmake" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake", + "cpack" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack", + "ctest" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest", + "root" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + "version" : + { + "isDirty" : false, + "major" : 3, + "minor" : 22, + "patch" : 1, + "string" : "3.22.1-g37088a8", + "suffix" : "g37088a8" + } + }, + "objects" : + [ + { + "jsonFile" : "codemodel-v2-852402f1316f6f65a056.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + }, + { + "jsonFile" : "cache-v2-2b5d080db4293a9c0f40.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + { + "jsonFile" : "cmakeFiles-v1-9a2bf79ff0a2a89eb505.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + } + ], + "reply" : + { + "client-agp" : + { + "cache-v2" : + { + "jsonFile" : "cache-v2-2b5d080db4293a9c0f40.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + "cmakeFiles-v1" : + { + "jsonFile" : "cmakeFiles-v1-9a2bf79ff0a2a89eb505.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + }, + "codemodel-v2" : + { + "jsonFile" : "codemodel-v2-852402f1316f6f65a056.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + } + } + } +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeCache.txt b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeCache.txt new file mode 100644 index 0000000..63f4eca --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeCache.txt @@ -0,0 +1,405 @@ +# This is the CMakeCache file. +# For build in directory: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64 +# It was generated by CMake: /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=x86_64 + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-26 + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=x86_64 + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 + +//Archiver +CMAKE_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86_64 + +//Path to a program. +CMAKE_LINKER:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf + +//No help, variable specified on the command line. +CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86_64 + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=26 + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64 + +//Value Computed by CMake +Project_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64 +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake +//Whether to issue deprecation errors for macros and functions. +CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//Suppress errors that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE +//Suppress Warnings that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Whether to issue warnings for deprecated functionality. +CMAKE_WARN_DEPRECATED:INTERNAL=FALSE + diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake new file mode 100644 index 0000000..f2a3233 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake @@ -0,0 +1,72 @@ +set(CMAKE_C_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "17.0.2") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/x86_64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/x86_64;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..788db59 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_CXX_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "17.0.2") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/x86_64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/x86_64;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..c64b2be383508ad525bfcfa4c9d967cab98de8d8 GIT binary patch literal 7008 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 literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..b6b339d14b87ec4b8dedb69b779399804a7a134c GIT binary patch literal 7176 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 literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake new file mode 100644 index 0000000..1f4f5dd --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Darwin-24.3.0") +set(CMAKE_HOST_SYSTEM_NAME "Darwin") +set(CMAKE_HOST_SYSTEM_VERSION "24.3.0") +set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64") + +include("/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..41b99d7 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,803 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..86331b4288bfd131e78c6da1fb2d30554f35ab88 GIT binary patch literal 5424 zcmdT|U5pb|6uvXvb_-n!%ZmJ);x8aO?RLBEf&`W<3%iEDAgH*(I@`{67urslPH`bI zJgCTuCJ-MaQ4(S_(eNPpVDN<(9*CM4qA`&K^+Aj#?t?!uVkF`@cg|^Nr-M=6Jj={I z=ey_c{+&DJ$iS9Os-g%cMXVDIiBTaE(FWfq**>uZGR5*O{+A#WxQOQAW*k*W5dK(ZM~e=t$a3bjOw+bJ=~R{9%I5b%GGhRT&?$Q z-?kTrDrs8G>_Njq)!~Gsu8ig|i3Bsrh9!IOZN-Bm!&**+^s^u&pUzhdS0TWV7&W&=+FH{j!;< zL72Irz6F6ODm<_dRfUKIg-Q@Ax22|u;(gdJEi&t{+&N2qNANnJ>RNayuP8GDtP&Um zu4OyC<_WpjAq7SzM7XsTn<6~Z^uq@LnSn;K|0V1{tGfJQzx0=+Xjfgm4WDjQ{S3W) z<I7?hMZjG6cnk1Y)z3)W6Q^EyHZ^fkHhIf z?^?k$3q_-9)~uYN!BLFcrdiC5>Eq>iv3Ri5S+UH0M$V4qSC96t9!=%D(&=<}z9-R@ zGf7cqe=^eON zft15Lg)%WmS=`ndJ^`C}31Ijj;n@%yqH~U_{j);qtDqsovjDY-mGD*+<&)=7V6+yDgsugnp@OF!BRLQqoz^omG!_hmB5PF@VzR%c zb`^BBh@WpZbzpG#^P_-sjGMXwqP+=2AW)yZ>D>VVMcqRmfjrk0SI#M5FT&F4exBqzT{!zhXpsv?KcA3%7qyrV&IMD7 z7|xUNA!0c0MpOXeaWFna_+w6YJ^#Ig=LtuV_Y^`;6V872lm2srquAJuLcHO^alLq5 z&JxakCdd!Z6N-)9F2u(kKPyT8#^dKG`I&O*V+^Lhh(R^Xhu6J>>^L8+c}Ov8vEj8w zJn6#G56|yr!r9NeB=2(RH%^}rJm1*uUSFP9_H&u+4^zwd6_O`C_}3(#^5EZ+{FVp* zg5((FfrPoZ^T|lmITvnRXnDNRv--%0WgHZm4OgYWFOQM|ccW$*MP1A5wyw!5x_;mK zT&TCyZMvH&WYxBs0@S|&$eYX!LxZN-$b&x)94*XQllQqdhx&JeRyJ)z+q`XeCuEb` z-xODVQn+Il$IAw38DrT|OD`FI*PsT2u=Nq4RS%V9OIZTkrE!g=slTmeJ*=x=oxDt& z`AJ%LcJ2`c-Ux`fYZdDD;me2IwGq27!t+n|eDATVIm}Rd0b2CgM>03(s3@HvU@^2f zPOeq(6HU@~2#)dj{v%jiC8o##wWy24E!H*Uy>mE73LFn@ki7B{!2I&>qvFPSV*WVC zY|r>RfMKX0A#eUSZV{jBE9--rB(MBC zpnmZyKJoG1VSAoG{HcpW^^TwGBI|>SB(MB1pnma>`NYS%&h{Mt9>DzKpZS;bkN3Y{ z{4+lB@vM5|V;BkrT!Y>w@U;dcIj`<%K)o0$_S1&^z|-jw#VOGB%l|y({{#8K{g2;F z-u!LA&}RZ3H~m2i`lBZxi`?S(hM)a4`dItW?UZy8V*Br1JmO5Jy#Db;MyneHyjhBK~=w c`1mWw8y~-iyko}zPs#rqYSb}|i;&m;ZvzX2*Z=?k literal 0 HcmV?d00001 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..25c62a8 --- /dev/null +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,791 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..8e8b9745e57615780f80d9ddc015a979d1896160 GIT binary patch literal 5480 zcmdT{U2GIp6uvXl?GM{7Efql^WQk$`?d(st+bs|*sl}G?7X$;;W}WU%cNcbdmf2ZS zOcbL;t%O8;Fh20$Bl?0d#Gr}B#0S*GpC=!TiN-)e3`Q`KU?Ac-ckY?Jolceb=1q3a zIo~~h_xIdAF}h=$swj+_!nUxcL?~m$NRuDt>@Zsen)}CQuUs0vgUIZ2x5j20*DsA; zLuu?(h?CsTTZ=zwY1c-t&5m9R20>-)G}rz&%^;trMz2kNHoj}y?u|LCQY)2Bdt#() zR11@ggSE2ZOj~wkVn?akm=U01=ZX`8uRBIHZ`k>4-kdfXWoIHWD0<8p$E?;%R<-W+ z?cOzsqq_GtC$a1?(?)+2ao!Sxy354l#3Uz~(xa@6^oF!Z_p+6d9%V@@V`_?x_ihYt z3aQH((-dXAm$8;LfDMKj3q1@BW33M{EwUvX2BZzyaCi%_?I~c#dmnp%tUDHS?L{u` zqE%SiunuvTv<@%VA_$@hW1S(UdH`cxsW~G105(bspNe+AW!3~v%PWAYo8hCJR5~^A_&9wq1{=@4#8%QNe1iZHk?A`Ddd&A>Nzm$ zRL{)J6>CB~54~OLnKBm@4VB%g4YhP!0HFitnr*G-ZL5@zu1mxR29oh)=F#XQwSooT zDXZ)NDLWwaRmzA>8Fe!swW?7&l^GmN4d&NJb9lg_VmC)|AM45Jx}xLM>KkJ*I8W$Z zFIZNgY}T!YoilYfoH56;%DJLZs>aIYW0k&|Z5=jqPBcF>of(==F=E#8qBjTiw=k;8z#$x;HaIj*B8%8y@$F`1x zQ>z{`@`VPR>%O8@G5ab;)hL)Y{5 z+u$;($NKeTQcv_1`Um5gjFE{oV?!bghGVmAcI)1~TMuTR96vOg-FI-$Xg14A)oCkB zHe7l6>>=8a8;g}WS{N4o_{d7qu*>9PcMM)5jZcSz~fkn$1a*l#CeTH5ZV%#aDBut3i*Bsr@2IE zg@mL2H$q-5DCX~-6yQ@5F3-a*fm1%)(GVK0J2t|13;byp_VAp*O9Dp`ZK%B<7{oCy z&GW3l$^TK|=S@l9tGj@mlW_F2LC7BqN`6iVKVM4v&0Wga4-$@kXdQ3({LBhJe@XhZ zb_jKgekACJ)_twODIZ?=p+70<QE|dLADDSz~I-Hjgpgfg;QBu~IRi zZ0fdIHuSvV7&@=3UZoBw#S7}rtLh?T-LdBd@E!~cymUkmo-$?x4lJJD{MzrT;&^oa z4DjdYy+-t^<(T>tyY}}%rnw{Ya^epaIdHjDHHDU0%ud@z1wa1#m*A z%T}zxe<8Rp=T|@QBsO(HtUvkoiEJ@+ASU05s5^|GfQDyFZa;$XPxe&j$fjA5UF3Tp z=yTW=z3)%ra^=r?Kv%*K$4PhYa-n$uf@6HSzGK%V(O(vn2L|!fBX($=rayKx!n{8Li0@w#V3mImmvE;MUnnc zb}DocB6|%O;$_wM{THI>^y_YM?Q6a?*+pTWk(~lh<0p6s>;vadJZ@;8;QTF<>=^^YAR&EO*#T2TZ=3.6.0 <4.0.0" + dart: ">=3.7.0 <4.0.0" flutter: ">=3.27.0" From ce7a8e8cc5d659aae6301bdd934b7c49bbac52ed Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 9 Mar 2025 19:45:48 +0100 Subject: [PATCH 223/236] Extracted some regexps to external file --- lib/constants/regexps.dart | 12 ++++++++++++ lib/functions/is_ip.dart | 6 +++--- lib/l10n/app_es.arb | 2 +- lib/screens/filters/details/add_list_modal.dart | 4 ++-- lib/screens/filters/details/check_host_modal.dart | 4 ++-- .../modals/custom_rules/add_custom_rule.dart | 4 ++-- .../settings/dhcp/add_static_lease_modal.dart | 7 +++---- lib/screens/settings/dhcp/dhcp.dart | 9 +++++---- lib/screens/settings/dns/bootstrap_dns.dart | 4 ++-- lib/screens/settings/dns/fallback_dns.dart | 5 ++--- .../settings/dns/rate_limit_allowlist_modal.dart | 4 ++-- .../settings/dns_rewrites/dns_rewrite_modal.dart | 4 ++-- .../settings/encryption/encryption_functions.dart | 13 +++++-------- .../settings/logs_settings/config_widgets.dart | 4 ++-- .../statistics_settings/statistics_settings.dart | 4 ++-- lib/widgets/add_server/add_server_functions.dart | 8 +++----- 16 files changed, 50 insertions(+), 44 deletions(-) create mode 100644 lib/constants/regexps.dart diff --git a/lib/constants/regexps.dart b/lib/constants/regexps.dart new file mode 100644 index 0000000..84ea2bc --- /dev/null +++ b/lib/constants/regexps.dart @@ -0,0 +1,12 @@ +class Regexps { + static final wildcardDomain = RegExp(r'^(\*\.)?([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$'); + static final domain = RegExp(r'^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$'); + static final ipv4Address = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$'); + static final ipv6Address = RegExp(r'(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))'); + static final subroute = RegExp(r'^\/\b([A-Za-z0-9_\-~/]*)[^\/|\.|\:]$'); + static final macAddress = RegExp(r'^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$'); + static final url = RegExp(r'^(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})$'); + static final certificate = RegExp(r'(-{3,}(\bBEGIN CERTIFICATE\b))|(-{3,}-{3,}(\END CERTIFICATE\b)-{3,})', multiLine: true); + static final privateKey = RegExp(r'(-{3,}(\bBEGIN\b).*(PRIVATE KEY\b))|(-{3,}-{3,}(\bEND\b).*(PRIVATE KEY\b)-{3,})', multiLine: true); + static final path = RegExp(r'^(\/{0,1}(?!\/))[A-Za-z0-9\/\-_]+(\.([a-zA-Z]+))?$'); +} \ No newline at end of file diff --git a/lib/functions/is_ip.dart b/lib/functions/is_ip.dart index 667bf0b..73ee1e9 100644 --- a/lib/functions/is_ip.dart +++ b/lib/functions/is_ip.dart @@ -1,7 +1,7 @@ +import 'package:adguard_home_manager/constants/regexps.dart'; + bool isIpAddress(String value) { - final ipv4Regexp = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$'); - final ipv6Regexp = RegExp(r'(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))'); - if (ipv4Regexp.hasMatch(value) || ipv6Regexp.hasMatch(value)) { + if (Regexps.ipv4Address.hasMatch(value) || Regexps.ipv6Address.hasMatch(value)) { return true; } else { diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index d18f8a9..19a36cf 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -403,7 +403,7 @@ "dnsRewriteRuleDeleted": "Reescritura DNS eliminada correctamente", "dnsRewriteRuleNotDeleted": "La reescritura DNS no pudo ser eliminada", "addDnsRewrite": "Añadir reescritura DNS", - "addingRewrite": "Añadiend reescritura...", + "addingRewrite": "Añadiendo reescritura...", "dnsRewriteRuleAdded": "Regla de reescritura DNS añadida correctamente", "dnsRewriteRuleNotAdded": "La regla de reescritura DNS no ha podido ser añadida", "logsSettings": "Ajustes de registros", diff --git a/lib/screens/filters/details/add_list_modal.dart b/lib/screens/filters/details/add_list_modal.dart index d5579a6..f153224 100644 --- a/lib/screens/filters/details/add_list_modal.dart +++ b/lib/screens/filters/details/add_list_modal.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -97,8 +98,7 @@ class _ContentState extends State<_Content> { } void validateUrl(String value) { - final urlRegex = RegExp(r'^(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})$'); - if (urlRegex.hasMatch(value)) { + if (Regexps.url.hasMatch(value)) { setState(() => urlError = null); } else { diff --git a/lib/screens/filters/details/check_host_modal.dart b/lib/screens/filters/details/check_host_modal.dart index 3065588..be0efce 100644 --- a/lib/screens/filters/details/check_host_modal.dart +++ b/lib/screens/filters/details/check_host_modal.dart @@ -1,5 +1,6 @@ // ignore_for_file: use_build_context_synchronously +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -63,8 +64,7 @@ class _ContentState extends State<_Content> { Widget? resultWidget; void validateDomain(String value) { - final domainRegex = RegExp(r'^([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$'); - if (domainRegex.hasMatch(value)) { + if (Regexps.domain.hasMatch(value)) { setState(() => domainError = null); } else { diff --git a/lib/screens/filters/modals/custom_rules/add_custom_rule.dart b/lib/screens/filters/modals/custom_rules/add_custom_rule.dart index b528c02..674c200 100644 --- a/lib/screens/filters/modals/custom_rules/add_custom_rule.dart +++ b/lib/screens/filters/modals/custom_rules/add_custom_rule.dart @@ -1,3 +1,4 @@ +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:segmented_button_slide/segmented_button_slide.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -41,8 +42,7 @@ class _AddCustomRuleState extends State { } void validateDomain(String value) { - final domainRegex = RegExp(r'^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$'); - if (domainRegex.hasMatch(value)) { + if (Regexps.domain.hasMatch(value)) { setState(() => _domainError = null); } else { diff --git a/lib/screens/settings/dhcp/add_static_lease_modal.dart b/lib/screens/settings/dhcp/add_static_lease_modal.dart index c80e848..d40c506 100644 --- a/lib/screens/settings/dhcp/add_static_lease_modal.dart +++ b/lib/screens/settings/dhcp/add_static_lease_modal.dart @@ -1,3 +1,4 @@ +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -67,8 +68,7 @@ class __ContentState extends State<_Content> { bool validData = false; void validateMac(String value) { - final RegExp macRegex = RegExp(r'^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$'); - if (macRegex.hasMatch(value)) { + if (Regexps.macAddress.hasMatch(value)) { setState(() => macError = null); } else { @@ -78,8 +78,7 @@ class __ContentState extends State<_Content> { } void validateIp(String value) { - RegExp ipAddress = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$'); - if (ipAddress.hasMatch(value) == true) { + if (Regexps.ipv4Address.hasMatch(value) == true) { setState(() => ipError = null); } else { diff --git a/lib/screens/settings/dhcp/dhcp.dart b/lib/screens/settings/dhcp/dhcp.dart index 449b063..76867ef 100644 --- a/lib/screens/settings/dhcp/dhcp.dart +++ b/lib/screens/settings/dhcp/dhcp.dart @@ -2,6 +2,7 @@ import 'dart:io'; +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -100,8 +101,8 @@ class _DhcpScreenState extends State { break; } } - final regex = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$'); - if (regex.hasMatch(value)) { + + if (Regexps.ipv4Address.hasMatch(value)) { setValue(null); } else { @@ -126,8 +127,8 @@ class _DhcpScreenState extends State { break; } } - final regex = RegExp(r'^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$'); - if (regex.hasMatch(value)) { + + if (Regexps.ipv6Address.hasMatch(value)) { setValue(null); } else { diff --git a/lib/screens/settings/dns/bootstrap_dns.dart b/lib/screens/settings/dns/bootstrap_dns.dart index 833396d..dba929a 100644 --- a/lib/screens/settings/dns/bootstrap_dns.dart +++ b/lib/screens/settings/dns/bootstrap_dns.dart @@ -1,5 +1,6 @@ // ignore_for_file: use_build_context_synchronously +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:adguard_home_manager/functions/desktop_mode.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -23,8 +24,7 @@ class _BootstrapDnsScreenState extends State { bool validValues = false; void validateIp(Map field, String value) { - RegExp ipAddress = RegExp(r'(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)'); - if (ipAddress.hasMatch(value) == true) { + if (Regexps.ipv4Address.hasMatch(value) == true || Regexps.ipv6Address.hasMatch(value) == true) { setState(() => field['error'] = null); } else { diff --git a/lib/screens/settings/dns/fallback_dns.dart b/lib/screens/settings/dns/fallback_dns.dart index 19040ed..6c8d8ce 100644 --- a/lib/screens/settings/dns/fallback_dns.dart +++ b/lib/screens/settings/dns/fallback_dns.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:adguard_home_manager/screens/settings/dns/comment_modal.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -24,9 +25,7 @@ class _FallbackDnsScreenState extends State { bool validValues = false; void validateIp(Map field, String value) { - RegExp ipAddress = RegExp(r'(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)'); - RegExp url = RegExp(r'(https?|tls):\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)'); - if (ipAddress.hasMatch(value) == true || url.hasMatch(value) == true) { + if (Regexps.ipv4Address.hasMatch(value) == true || Regexps.ipv6Address.hasMatch(value) || Regexps.url.hasMatch(value) == true) { setState(() => field['error'] = null); } else { diff --git a/lib/screens/settings/dns/rate_limit_allowlist_modal.dart b/lib/screens/settings/dns/rate_limit_allowlist_modal.dart index e5b678e..2c2fed8 100644 --- a/lib/screens/settings/dns/rate_limit_allowlist_modal.dart +++ b/lib/screens/settings/dns/rate_limit_allowlist_modal.dart @@ -1,3 +1,4 @@ +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:uuid/uuid.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -33,8 +34,7 @@ class _RateLimitAllowlistModalState extends State { List<_IpListItemController> _controllersList = []; void _validateIp(String value, _IpListItemController item) { - final regexp = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$'); - if (regexp.hasMatch(value)) { + if (Regexps.ipv4Address.hasMatch(value)) { setState(() => _controllersList = _controllersList.map((e) { if (e.id == item.id) { return _IpListItemController( diff --git a/lib/screens/settings/dns_rewrites/dns_rewrite_modal.dart b/lib/screens/settings/dns_rewrites/dns_rewrite_modal.dart index 439455c..42524fa 100644 --- a/lib/screens/settings/dns_rewrites/dns_rewrite_modal.dart +++ b/lib/screens/settings/dns_rewrites/dns_rewrite_modal.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -82,8 +83,7 @@ class _ContentState extends State<_Content> { bool validData = false; void validateDomain(String value) { - final domainRegex = RegExp(r'^([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$'); - if (domainRegex.hasMatch(value)) { + if (Regexps.wildcardDomain.hasMatch(value)) { setState(() => domainError = null); } else { diff --git a/lib/screens/settings/encryption/encryption_functions.dart b/lib/screens/settings/encryption/encryption_functions.dart index c9c0c4b..c7700e4 100644 --- a/lib/screens/settings/encryption/encryption_functions.dart +++ b/lib/screens/settings/encryption/encryption_functions.dart @@ -1,11 +1,11 @@ +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; String? validateDomain(BuildContext context, String domain) { - RegExp regExp = RegExp(r'^([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$'); - if (regExp.hasMatch(domain)) { + if (Regexps.domain.hasMatch(domain)) { return null; } else { @@ -23,8 +23,7 @@ String? validatePort(BuildContext context, String value) { } String? validateCertificate(BuildContext context, String cert) { - final regExp = RegExp(r'(-{3,}(\bBEGIN CERTIFICATE\b))|(-{3,}-{3,}(\END CERTIFICATE\b)-{3,})', multiLine: true); - if (regExp.hasMatch(cert.replaceAll('\n', ''))) { + if (Regexps.certificate.hasMatch(cert.replaceAll('\n', ''))) { return null; } else { @@ -33,8 +32,7 @@ String? validateCertificate(BuildContext context, String cert) { } String? validatePrivateKey(BuildContext context, String cert) { - final regExp = RegExp(r'(-{3,}(\bBEGIN\b).*(PRIVATE KEY\b))|(-{3,}-{3,}(\bEND\b).*(PRIVATE KEY\b)-{3,})', multiLine: true); - if (regExp.hasMatch(cert.replaceAll('\n', ''))) { + if (Regexps.privateKey.hasMatch(cert.replaceAll('\n', ''))) { return null; } else { @@ -43,8 +41,7 @@ String? validatePrivateKey(BuildContext context, String cert) { } String? validatePath(BuildContext context, String cert) { - final regExp = RegExp(r'^(\/{0,1}(?!\/))[A-Za-z0-9\/\-_]+(\.([a-zA-Z]+))?$'); - if (regExp.hasMatch(cert)) { + if (Regexps.path.hasMatch(cert)) { return null; } else { diff --git a/lib/screens/settings/logs_settings/config_widgets.dart b/lib/screens/settings/logs_settings/config_widgets.dart index 16700a9..066f779 100644 --- a/lib/screens/settings/logs_settings/config_widgets.dart +++ b/lib/screens/settings/logs_settings/config_widgets.dart @@ -1,3 +1,4 @@ +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:uuid/uuid.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -55,9 +56,8 @@ class LogsConfigOptions extends StatelessWidget { ]; void validateDomain(String value, String id) { - final domainRegex = RegExp(r'^([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$'); bool error = false; - if (domainRegex.hasMatch(value)) { + if (Regexps.domain.hasMatch(value)) { error = false; } else { diff --git a/lib/screens/settings/statistics_settings/statistics_settings.dart b/lib/screens/settings/statistics_settings/statistics_settings.dart index 7f58d67..84439b1 100644 --- a/lib/screens/settings/statistics_settings/statistics_settings.dart +++ b/lib/screens/settings/statistics_settings/statistics_settings.dart @@ -1,3 +1,4 @@ +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:uuid/uuid.dart'; import 'package:provider/provider.dart'; @@ -91,9 +92,8 @@ class _StatisticsSettingsState extends State { void validateDomain(String value, String id) { - final domainRegex = RegExp(r'^([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$'); bool error = false; - if (domainRegex.hasMatch(value)) { + if (Regexps.domain.hasMatch(value)) { error = false; } else { diff --git a/lib/widgets/add_server/add_server_functions.dart b/lib/widgets/add_server/add_server_functions.dart index 6dd9c38..bbb88fd 100644 --- a/lib/widgets/add_server/add_server_functions.dart +++ b/lib/widgets/add_server/add_server_functions.dart @@ -1,3 +1,4 @@ +import 'package:adguard_home_manager/constants/regexps.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -49,8 +50,7 @@ String? validateSubroute({ required String? value }) { if (value != null && value != '') { - RegExp subrouteRegexp = RegExp(r'^\/\b([A-Za-z0-9_\-~/]*)[^\/|\.|\:]$'); - if (subrouteRegexp.hasMatch(value) == true) { + if (Regexps.subroute.hasMatch(value) == true) { return null; } else { @@ -67,9 +67,7 @@ String? validateAddress({ required String? value }) { if (value != null && value != '') { - RegExp ipAddress = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$'); - RegExp domain = RegExp(r'^(([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+)$'); - if (ipAddress.hasMatch(value) == true || domain.hasMatch(value) == true) { + if (Regexps.ipv4Address.hasMatch(value) == true || Regexps.domain.hasMatch(value) == true) { return null; } else { From f27b17aad0936099061d7f878ae62b1a07b45839 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 9 Mar 2025 19:58:24 +0100 Subject: [PATCH 224/236] Fix filter logs by added client --- lib/screens/logs/filters/clients_modal.dart | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/screens/logs/filters/clients_modal.dart b/lib/screens/logs/filters/clients_modal.dart index ef0e989..05b7213 100644 --- a/lib/screens/logs/filters/clients_modal.dart +++ b/lib/screens/logs/filters/clients_modal.dart @@ -114,10 +114,12 @@ class _ClientsModalState extends State { } void searchAddedClient(_ClientLog client) { - final notIps = client.ids?.where((e) => isIpAddress(e) == false).toList(); - if (notIps == null || notIps.isEmpty) return; - logsProvider.setSearchText('"${notIps[0]}"'); + final ips = client.ids?.where((e) => isIpAddress(e) == true).toList(); + if (ips == null || ips.isEmpty) return; + logsProvider.setSearchText(ips[0]); + logsProvider.filterLogs(); Navigator.of(context).pop(); + Navigator.pop(context); } if (widget.dialog == true) { @@ -302,7 +304,7 @@ class _ClientsModalState extends State { subtitle: _selectedList == 0 ? _filteredClients[index].name : _filteredClients[index].ids?.join(", "), checkboxActive: logsProvider.selectedClients.contains(_filteredClients[index].ip), isAddedClient: _selectedList == 1, - onSearchAddedClient: () => searchAddedClient(_filteredClients[index]), + onSearchAddedClient: _filteredClients[index].ids != null && _filteredClients[index].ids!.where((e) => isIpAddress(e) == true).isNotEmpty ? () => searchAddedClient(_filteredClients[index]) : null, onChanged: (isSelected) { if (isSelected == true) { logsProvider.setSelectedClients([ @@ -376,7 +378,7 @@ class _ListItem extends StatelessWidget { final bool checkboxActive; final void Function(bool) onChanged; final bool isAddedClient; - final void Function() onSearchAddedClient; + final void Function()? onSearchAddedClient; const _ListItem({ required this.title, From e5979edf635448ed91dcf6ad73bcb48704cc1c25 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 9 Mar 2025 20:17:19 +0100 Subject: [PATCH 225/236] Added upstream dns timeout --- lib/l10n/app_en.arb | 5 ++- lib/l10n/app_es.arb | 5 ++- lib/models/dns_info.dart | 4 ++ lib/screens/settings/dns/upstream_dns.dart | 48 ++++++++++++++++++++-- 4 files changed, 57 insertions(+), 5 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index fa952aa..f923e8b 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -803,5 +803,8 @@ "myOtherApps": "My other apps", "myOtherAppsDescription": "Check my other apps, make a donation, contact support, and more", "topToBottom": "From top to bottom", - "bottomToTop": "From bottom to top" + "bottomToTop": "From bottom to top", + "upstreamTimeout": "Upstream timeout", + "upstreamTimeoutHelper": "Specifies the number of seconds to wait for a response from the upstream server", + "fieldCannotBeEmpty": "This field cannot be empty" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 19a36cf..c93c501 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -803,5 +803,8 @@ "myOtherApps": "Mis otras apps", "myOtherAppsDescription": "Comprueba mis otras apps, hacer una donación, contactar al soporte, y más", "topToBottom": "Desde arriba hacia abajo", - "bottomToTop": "Desde abajo hacia arriba" + "bottomToTop": "Desde abajo hacia arriba", + "upstreamTimeout": "Tiempo de espera del upstream", + "upstreamTimeoutHelper": "Especifica el número de segundos que se debe esperar para recibir una respuesta del servidor upstream", + "fieldCannotBeEmpty": "El campo no puede estar vacío" } \ No newline at end of file diff --git a/lib/models/dns_info.dart b/lib/models/dns_info.dart index 5a53023..7007644 100644 --- a/lib/models/dns_info.dart +++ b/lib/models/dns_info.dart @@ -26,6 +26,7 @@ class DnsInfo { int? ratelimitSubnetLenIpv4; int? ratelimitSubnetLenIpv6; List? ratelimitWhitelist; + int? upstreamTimeout; DnsInfo({ required this.upstreamDns, @@ -55,6 +56,7 @@ class DnsInfo { required this.ratelimitSubnetLenIpv4, required this.ratelimitSubnetLenIpv6, required this.ratelimitWhitelist, + required this.upstreamTimeout, }); factory DnsInfo.fromJson(Map json) => DnsInfo( @@ -85,6 +87,7 @@ class DnsInfo { ratelimitSubnetLenIpv4: json["ratelimit_subnet_len_ipv4"], ratelimitSubnetLenIpv6: json["ratelimit_subnet_len_ipv6"], ratelimitWhitelist: json["ratelimit_whitelist"] != null ? List.from(json["ratelimit_whitelist"].map((x) => x)) : [], + upstreamTimeout: json["upstream_timeout"], ); Map toJson() => { @@ -115,5 +118,6 @@ class DnsInfo { "ratelimit_subnet_len_ipv4": ratelimitSubnetLenIpv4, "ratelimit_subnet_len_ipv6": ratelimitSubnetLenIpv6, "ratelimit_whitelist": ratelimitWhitelist != null ? List.from(ratelimitWhitelist!.map((x) => x)) : null, + "upstream_timeout": upstreamTimeout, }; } diff --git a/lib/screens/settings/dns/upstream_dns.dart b/lib/screens/settings/dns/upstream_dns.dart index 33818a1..1ae8c5e 100644 --- a/lib/screens/settings/dns/upstream_dns.dart +++ b/lib/screens/settings/dns/upstream_dns.dart @@ -1,5 +1,3 @@ -// ignore_for_file: use_build_context_synchronously - import 'dart:io'; import 'package:flutter/material.dart'; @@ -30,6 +28,9 @@ class _UpstreamDnsScreenState extends State { bool validValues = false; + final upstreamTimeoutController = TextEditingController(); + String? upstreamTimeoutError = null; + checkValidValues() { if ( dnsServers.isNotEmpty && @@ -61,6 +62,7 @@ class _UpstreamDnsScreenState extends State { } } upstreamMode = dnsProvider.dnsInfo!.upstreamMode ?? ""; + upstreamTimeoutController.text = dnsProvider.dnsInfo!.upstreamTimeout != null ? dnsProvider.dnsInfo!.upstreamTimeout.toString() : ""; validValues = true; super.initState(); } @@ -72,6 +74,23 @@ class _UpstreamDnsScreenState extends State { final width = MediaQuery.of(context).size.width; + void validateTimeout(String value) { + if (value != '' && int.tryParse(value) != null && int.parse(value) > 0) { + setState(() { + upstreamTimeoutError = null; + validValues = true; + }); + } + else { + setState(() { + upstreamTimeoutError = value == '' + ? AppLocalizations.of(context)!.fieldCannotBeEmpty + : AppLocalizations.of(context)!.invalidValue; + validValues = false; + }); + } + } + void openAddCommentModal() { if (width > 900 || !(Platform.isAndroid || Platform.isIOS)) { showDialog( @@ -146,11 +165,13 @@ class _UpstreamDnsScreenState extends State { final result = await dnsProvider.saveUpstreamDnsConfig({ "upstream_dns": dnsServers.map((e) => e['controller'] != null ? e['controller'].text : e['comment']).toList(), - "upstream_mode": upstreamMode + "upstream_mode": upstreamMode, + "upstream_timeout": int.tryParse(upstreamTimeoutController.text) }); processModal.close(); + if (!context.mounted) return; if (result.successful == true) { showSnackbar( appConfigProvider: appConfigProvider, @@ -312,6 +333,27 @@ class _UpstreamDnsScreenState extends State { subtitle: AppLocalizations.of(context)!.fastestIpAddressDescription, onChanged: (value) => setState(() => upstreamMode = value), ), + const SizedBox(height: 16), + SectionLabel(label: AppLocalizations.of(context)!.others), + Padding( + padding: const EdgeInsets.all(16), + child: TextFormField( + controller: upstreamTimeoutController, + onChanged: validateTimeout, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.timer_rounded), + border: const OutlineInputBorder( + borderRadius: BorderRadius.all( + Radius.circular(10) + ) + ), + labelText: AppLocalizations.of(context)!.upstreamTimeout, + helperText: AppLocalizations.of(context)!.upstreamTimeoutHelper, + helperMaxLines: 2, + errorText: upstreamTimeoutError + ) + ), + ), ], ), ), From eded494024eae4edc10e6712495af8d4fe3614a5 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 9 Mar 2025 20:28:00 +0100 Subject: [PATCH 226/236] Support TLD greater than 6 characters on domains --- lib/constants/regexps.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/constants/regexps.dart b/lib/constants/regexps.dart index 84ea2bc..c07dee5 100644 --- a/lib/constants/regexps.dart +++ b/lib/constants/regexps.dart @@ -1,6 +1,6 @@ class Regexps { static final wildcardDomain = RegExp(r'^(\*\.)?([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$'); - static final domain = RegExp(r'^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$'); + static final domain = RegExp(r'^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,10}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,10})$'); static final ipv4Address = RegExp(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$'); static final ipv6Address = RegExp(r'(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))'); static final subroute = RegExp(r'^\/\b([A-Za-z0-9_\-~/]*)[^\/|\.|\:]$'); From 7632d9ef873242be349e0de5a6b8f68bddf27ce2 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 9 Mar 2025 20:36:45 +0100 Subject: [PATCH 227/236] Updated app version --- .gitignore | 2 + ...on => index-2025-03-09T19-31-30-0557.json} | 0 .../arm64-v8a/configure_fingerprint.bin | 26 ++++---- ...on => index-2025-03-09T19-31-30-0871.json} | 0 .../armeabi-v7a/configure_fingerprint.bin | 26 ++++---- ...on => index-2025-03-09T19-31-31-0179.json} | 0 .../4s676p3c/x86/configure_fingerprint.bin | 26 ++++---- ...on => index-2025-03-09T19-31-31-0481.json} | 0 .../4s676p3c/x86_64/configure_fingerprint.bin | 26 ++++---- macos/Podfile.lock | 59 ++++++++++--------- .../xcshareddata/xcschemes/Runner.xcscheme | 1 + macos/Runner/AppDelegate.swift | 4 ++ pubspec.yaml | 2 +- 13 files changed, 90 insertions(+), 82 deletions(-) rename android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/{index-2025-03-09T18-26-01-0152.json => index-2025-03-09T19-31-30-0557.json} (100%) rename android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/{index-2025-03-09T18-26-01-0543.json => index-2025-03-09T19-31-30-0871.json} (100%) rename android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/{index-2025-03-09T18-26-01-0932.json => index-2025-03-09T19-31-31-0179.json} (100%) rename android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/{index-2025-03-09T18-26-02-0299.json => index-2025-03-09T19-31-31-0481.json} (100%) diff --git a/.gitignore b/.gitignore index 6f4a17f..d37570d 100644 --- a/.gitignore +++ b/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # Env diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0152.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0557.json similarity index 100% rename from android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0152.json rename to android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0557.json diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin index 72e381e..6a7dacd 100644 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logu s q/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Π2  Π2r +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2r p -n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json  Π2 Π2w +n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json  2 2w u -s/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json  Π2 Π2d +s/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json  2 2d b -`/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja  Π2 Π2h +`/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja  2 2h f -d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja.txt  Π2m +d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja.txt  2m k -i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt  Π2 P Π2n +i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt  2 P 2n l -j/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json  Π2r +j/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json  2r p -n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json.bin  Π2 x +n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json.bin  2 x v -t/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt  Π2 - Π2k +t/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt  2 + 2k i -g/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json  Π2  ( Π2p +g/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json  2  ( 2p n -l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt  Π2  c Π2T +l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt  2  c 2T R -P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  Π2  ؄2 \ No newline at end of file +P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ؄2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0543.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0871.json similarity index 100% rename from android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0543.json rename to android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0871.json diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin index 064663e..00da33a 100644 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logw u s/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Ѡ2  Ѡ2t +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2t r -p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json  Ѡ2 Ѡ2y +p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json  2 2y w -u/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json  Ѡ2 Ѡ2f +u/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json  2 2f d -b/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja  Ѡ2 Ѡ2j +b/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja  2 2j h -f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja.txt  Ѡ2o +f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja.txt  2o m -k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt  Ѡ2 P Ѡ2p +k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt  2 P 2p n -l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json  Ѡ2t +l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json  2t r -p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json.bin  Ѡ2 z +p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json.bin  2 z x -v/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt  Ѡ2 - Ѡ2m +v/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt  2 + 2m k -i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json  Ѡ2  ( Ѡ2r +i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json  2  ( 2r p -n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt  Ѡ2  e Ѡ2T +n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt  2  e 2T R -P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  Ѡ2  ؄2 \ No newline at end of file +P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ؄2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0932.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0179.json similarity index 100% rename from android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T18-26-01-0932.json rename to android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0179.json diff --git a/android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin index f93955d..aa45397 100644 --- a/android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logo m k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Ԡ2  Ԡ2l +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  p2l j -h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json  Ԡ2 Ԡ2q +h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json  2 p2q o -m/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json  Ԡ2 Ԡ2^ +m/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json  2 2^ \ -Z/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja  Ԡ2 Ԡ2b +Z/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja  2 彐2b ` -^/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja.txt  Ԡ2g +^/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja.txt  2g e -c/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt  Ԡ2 P Ԡ2h +c/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt  2 P 2h f -d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json  Ԡ2l +d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json  2l j -h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json.bin  Ԡ2 r +h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json.bin  2 r p -n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt  Ԡ2 - Ԡ2e +n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt  2 + 2e c -a/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json  Ԡ2  ( Ԡ2j +a/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json  2  ( 2j h -f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt  Ԡ2  ] Ԡ2T +f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt  2  ] 2T R -P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  Ԡ2  ؄2 \ No newline at end of file +P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ؄2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T18-26-02-0299.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0481.json similarity index 100% rename from android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T18-26-02-0299.json rename to android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0481.json diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/4s676p3c/x86_64/configure_fingerprint.bin index 0b39a14..3f4a000 100644 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/4s676p3c/x86_64/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logr p n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  נ2  נ2o +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2o m -k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build.json  נ2 נ2t +k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build.json  2 2t r -p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build_mini.json  נ2 נ2a +p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build_mini.json  2 2a _ -]/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build.ninja  נ2 נ2e +]/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build.ninja  2 2e c -a/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build.ninja.txt  נ2j +a/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build.ninja.txt  2j h -f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build_file_index.txt  נ2 P נ2k +f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/build_file_index.txt  2 P 2k i -g/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/compile_commands.json  נ2o +g/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/compile_commands.json  2o m -k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/compile_commands.json.bin  נ2 u +k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/compile_commands.json.bin  2 u s -q/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/metadata_generation_command.txt  נ2 - נ2h +q/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/metadata_generation_command.txt  2 + 2h f -d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/prefab_config.json  נ2  ( נ2m +d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/prefab_config.json  2  ( 2m k -i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/symbol_folder_index.txt  נ2  ` נ2T +i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/symbol_folder_index.txt  2  ` 2T R -P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  נ2  ؄2 \ No newline at end of file +P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ؄2 \ No newline at end of file diff --git a/macos/Podfile.lock b/macos/Podfile.lock index e815ee7..ae5c12f 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -6,33 +6,34 @@ PODS: - FlutterMacOS (1.0.0) - package_info_plus (0.0.1): - FlutterMacOS - - screen_retriever (0.0.1): + - screen_retriever_macos (0.0.1): - FlutterMacOS - - Sentry/HybridSDK (8.36.0) - - sentry_flutter (8.9.0): + - Sentry/HybridSDK (8.44.0) + - sentry_flutter (8.13.2): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.36.0) + - Sentry/HybridSDK (= 8.44.0) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS - - sqflite (0.0.3): + - sqflite_darwin (0.0.4): - Flutter - FlutterMacOS - - "sqlite3 (3.46.1+1)": - - "sqlite3/common (= 3.46.1+1)" - - "sqlite3/common (3.46.1+1)" - - "sqlite3/dbstatvtab (3.46.1+1)": + - sqlite3 (3.49.1): + - sqlite3/common (= 3.49.1) + - sqlite3/common (3.49.1) + - sqlite3/dbstatvtab (3.49.1): - sqlite3/common - - "sqlite3/fts5 (3.46.1+1)": + - sqlite3/fts5 (3.49.1): - sqlite3/common - - "sqlite3/perf-threadsafe (3.46.1+1)": + - sqlite3/perf-threadsafe (3.49.1): - sqlite3/common - - "sqlite3/rtree (3.46.1+1)": + - sqlite3/rtree (3.49.1): - sqlite3/common - sqlite3_flutter_libs (0.0.1): + - Flutter - FlutterMacOS - - "sqlite3 (~> 3.46.0+1)" + - sqlite3 (~> 3.49.1) - sqlite3/dbstatvtab - sqlite3/fts5 - sqlite3/perf-threadsafe @@ -47,11 +48,11 @@ DEPENDENCIES: - dynamic_color (from `Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - - screen_retriever (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos`) + - screen_retriever_macos (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos`) - sentry_flutter (from `Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos`) - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) - - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`) - - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos`) + - sqflite_darwin (from `Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin`) + - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/darwin`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) - window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`) @@ -69,33 +70,33 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral package_info_plus: :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos - screen_retriever: - :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos + screen_retriever_macos: + :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos sentry_flutter: :path: Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos shared_preferences_foundation: :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin - sqflite: - :path: Flutter/ephemeral/.symlinks/plugins/sqflite/darwin + sqflite_darwin: + :path: Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin sqlite3_flutter_libs: - :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/macos + :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/darwin url_launcher_macos: :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos window_manager: :path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos SPEC CHECKSUMS: - device_info_plus: ce1b7762849d3ec103d0e0517299f2db7ad60720 + device_info_plus: 1b14eed9bf95428983aed283a8d51cce3d8c4215 dynamic_color: 2eaa27267de1ca20d879fbd6e01259773fb1670f FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c - screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38 - Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57 - sentry_flutter: 0eb93e5279eb41e2392212afe1ccd2fecb4f8cbe + package_info_plus: 12f1c5c2cfe8727ca46cbd0b26677728972d9a5b + screen_retriever_macos: 776e0fa5d42c6163d2bf772d22478df4b302b161 + Sentry: 0f9bc9adfc0b960e7f3bb5ec67e9a3d8193f3bdb + sentry_flutter: 64a43fb39ab4c7f67d8a4cad52b49e22439e58b7 shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 - sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec - sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb - sqlite3_flutter_libs: 5ca46c1a04eddfbeeb5b16566164aa7ad1616e7b + sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d + sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983 + sqlite3_flutter_libs: cc304edcb8e1d8c595d1b08c7aeb46a47691d9db url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404 window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8 diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 6982a10..dcd4e29 100644 --- a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -48,6 +48,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift index 8e02df2..b3c1761 100644 --- a/macos/Runner/AppDelegate.swift +++ b/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/pubspec.yaml b/pubspec.yaml index 4222db1..a9dc55c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.20.1+148 +version: 2.20.2+149 environment: sdk: '>=2.18.1 <3.0.0' From e7aacfbec170b83ebb57c82056c833470ca19ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9D=97=9B=F0=9D=97=BC=F0=9D=97=B9=F0=9D=97=B6?= <75412448+mikropsoft@users.noreply.github.com> Date: Sun, 9 Mar 2025 23:04:45 +0300 Subject: [PATCH 228/236] Update app_tr.arb --- lib/l10n/app_tr.arb | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/l10n/app_tr.arb b/lib/l10n/app_tr.arb index 423dfa3..7561f74 100644 --- a/lib/l10n/app_tr.arb +++ b/lib/l10n/app_tr.arb @@ -791,5 +791,20 @@ "clientDisallowedSuccessfully": "İstemci başarıyla reddedildi", "changesNotSaved": "Değişiklikler kaydedilemedi", "allowingClient": "İstemciye izin veriliyor...", - "disallowingClient": "İstemci reddediliyor..." -} \ No newline at end of file + "disallowingClient": "İstemci reddediliyor...", + "clientIpCopied": "İstemci IP'si panoya kopyalandı", + "clientNameCopied": "İstemci adı panoya kopyalandı", + "dnsServerAddressCopied": "DNS sunucu adresi panoya kopyalandı", + "select": "Seç", + "liveLogs": "Canlı günlükler", + "hereWillAppearRealtimeLogs": "Burada gerçek zamanlı günlükler görünecek.", + "applicationDetails": "Uygulama detayları", + "applicationDetailsDescription": "Uygulama deposu, mevcut olduğu mağazalar ve daha fazlası", + "myOtherApps": "Diğer uygulamalarım", + "myOtherAppsDescription": "Diğer uygulamalarımı kontrol et, bağış yap, destekle iletişime geç ve daha fazlası", + "topToBottom": "Yukarıdan aşağıya", + "bottomToTop": "Aşağıdan yukarıya", + "upstreamTimeout": "Yukarı akış zaman aşımı", + "upstreamTimeoutHelper": "Yukarı akış sunucusundan yanıt bekleme süresini saniye cinsinden belirtir", + "fieldCannotBeEmpty": "Bu alan boş olamaz" +} From 88339d1c40245bc6c1e713ce323cb89ab1d7bf78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9D=97=9B=F0=9D=97=BC=F0=9D=97=B9=F0=9D=97=B6?= <75412448+mikropsoft@users.noreply.github.com> Date: Sun, 9 Mar 2025 23:07:05 +0300 Subject: [PATCH 230/236] Update app_tr.arb --- lib/l10n/app_tr.arb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/l10n/app_tr.arb b/lib/l10n/app_tr.arb index 7561f74..d0f26c5 100644 --- a/lib/l10n/app_tr.arb +++ b/lib/l10n/app_tr.arb @@ -804,7 +804,7 @@ "myOtherAppsDescription": "Diğer uygulamalarımı kontrol et, bağış yap, destekle iletişime geç ve daha fazlası", "topToBottom": "Yukarıdan aşağıya", "bottomToTop": "Aşağıdan yukarıya", - "upstreamTimeout": "Yukarı akış zaman aşımı", - "upstreamTimeoutHelper": "Yukarı akış sunucusundan yanıt bekleme süresini saniye cinsinden belirtir", + "upstreamTimeout": "Üst sunucu zaman aşımı", + "upstreamTimeoutHelper": "Üst DNS sunucusundan yanıt bekleme süresini saniye cinsinden belirtir", "fieldCannotBeEmpty": "Bu alan boş olamaz" } From ae9d23d4a888e704f5b5ed6d435032830b04c7f9 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Mon, 17 Mar 2025 19:10:06 +0100 Subject: [PATCH 231/236] Support multiple subdomains --- .gitignore | 4 +- .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-d7ea1a46fca8a951bac1.json | 1391 ----------------- .../cmakeFiles-v1-25067417d59f0d26c931.json | 799 ---------- .../codemodel-v2-aa70310decf347f6cbdc.json | 43 - ...irectory-.-Debug-f5ebdc15457944623624.json | 14 - .../reply/index-2025-03-09T19-31-30-0557.json | 92 -- .../Debug/4s676p3c/arm64-v8a/CMakeCache.txt | 405 ----- .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 - .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 - .../CMakeDetermineCompilerABI_C.bin | Bin 7992 -> 0 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 8136 -> 0 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 - .../CompilerIdC/CMakeCCompilerId.c | 803 ---------- .../CompilerIdC/CMakeCCompilerId.o | Bin 6048 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ---------- .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 6064 -> 0 bytes .../CMakeFiles/TargetDirectories.txt | 2 - .../arm64-v8a/CMakeFiles/cmake.check_cache | 1 - .../4s676p3c/arm64-v8a/CMakeFiles/rules.ninja | 45 - .../arm64-v8a/additional_project_files.txt | 0 .../arm64-v8a/android_gradle_build.json | 28 - .../arm64-v8a/android_gradle_build_mini.json | 20 - .../.cxx/Debug/4s676p3c/arm64-v8a/build.ninja | 112 -- .../4s676p3c/arm64-v8a/build_file_index.txt | 1 - .../4s676p3c/arm64-v8a/cmake_install.cmake | 54 - .../arm64-v8a/configure_fingerprint.bin | 28 - .../arm64-v8a/metadata_generation_command.txt | 20 - .../4s676p3c/arm64-v8a/prefab_config.json | 4 - .../arm64-v8a/symbol_folder_index.txt | 1 - .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-6573c0656e67becaeff1.json | 1391 ----------------- .../cmakeFiles-v1-161e4284e257b7dbcee8.json | 799 ---------- .../codemodel-v2-769fcb1eb528b5a1f77c.json | 43 - ...irectory-.-Debug-f5ebdc15457944623624.json | 14 - .../reply/index-2025-03-09T19-31-30-0871.json | 92 -- .../Debug/4s676p3c/armeabi-v7a/CMakeCache.txt | 405 ----- .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 - .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 - .../CMakeDetermineCompilerABI_C.bin | Bin 5896 -> 0 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 6036 -> 0 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 - .../CompilerIdC/CMakeCCompilerId.c | 803 ---------- .../CompilerIdC/CMakeCCompilerId.o | Bin 4148 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ---------- .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 4184 -> 0 bytes .../CMakeFiles/TargetDirectories.txt | 2 - .../armeabi-v7a/CMakeFiles/cmake.check_cache | 1 - .../armeabi-v7a/CMakeFiles/rules.ninja | 45 - .../armeabi-v7a/additional_project_files.txt | 0 .../armeabi-v7a/android_gradle_build.json | 28 - .../android_gradle_build_mini.json | 20 - .../Debug/4s676p3c/armeabi-v7a/build.ninja | 112 -- .../4s676p3c/armeabi-v7a/build_file_index.txt | 1 - .../4s676p3c/armeabi-v7a/cmake_install.cmake | 54 - .../armeabi-v7a/configure_fingerprint.bin | 28 - .../metadata_generation_command.txt | 20 - .../4s676p3c/armeabi-v7a/prefab_config.json | 4 - .../armeabi-v7a/symbol_folder_index.txt | 1 - android/app/.cxx/Debug/4s676p3c/hash_key.txt | 27 - .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-920dacdb871097de2130.json | 1391 ----------------- .../cmakeFiles-v1-f1661dab2653e3c04b8e.json | 799 ---------- .../codemodel-v2-95b6204aa3712c2f8293.json | 43 - ...irectory-.-Debug-f5ebdc15457944623624.json | 14 - .../reply/index-2025-03-09T19-31-31-0179.json | 92 -- .../.cxx/Debug/4s676p3c/x86/CMakeCache.txt | 405 ----- .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 - .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 - .../CMakeDetermineCompilerABI_C.bin | Bin 5828 -> 0 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 5984 -> 0 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 - .../CompilerIdC/CMakeCCompilerId.c | 803 ---------- .../CompilerIdC/CMakeCCompilerId.o | Bin 3924 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ---------- .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 3960 -> 0 bytes .../x86/CMakeFiles/TargetDirectories.txt | 2 - .../4s676p3c/x86/CMakeFiles/cmake.check_cache | 1 - .../Debug/4s676p3c/x86/CMakeFiles/rules.ninja | 45 - .../4s676p3c/x86/additional_project_files.txt | 0 .../4s676p3c/x86/android_gradle_build.json | 28 - .../x86/android_gradle_build_mini.json | 20 - .../app/.cxx/Debug/4s676p3c/x86/build.ninja | 112 -- .../Debug/4s676p3c/x86/build_file_index.txt | 1 - .../Debug/4s676p3c/x86/cmake_install.cmake | 54 - .../4s676p3c/x86/configure_fingerprint.bin | 28 - .../x86/metadata_generation_command.txt | 20 - .../Debug/4s676p3c/x86/prefab_config.json | 4 - .../4s676p3c/x86/symbol_folder_index.txt | 1 - .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-2b5d080db4293a9c0f40.json | 1391 ----------------- .../cmakeFiles-v1-9a2bf79ff0a2a89eb505.json | 799 ---------- .../codemodel-v2-852402f1316f6f65a056.json | 43 - ...irectory-.-Debug-f5ebdc15457944623624.json | 14 - .../reply/index-2025-03-09T19-31-31-0481.json | 92 -- .../.cxx/Debug/4s676p3c/x86_64/CMakeCache.txt | 405 ----- .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 - .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 - .../CMakeDetermineCompilerABI_C.bin | Bin 7008 -> 0 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 7176 -> 0 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 - .../CompilerIdC/CMakeCCompilerId.c | 803 ---------- .../CompilerIdC/CMakeCCompilerId.o | Bin 5424 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ---------- .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 5480 -> 0 bytes .../x86_64/CMakeFiles/TargetDirectories.txt | 2 - .../x86_64/CMakeFiles/cmake.check_cache | 1 - .../4s676p3c/x86_64/CMakeFiles/rules.ninja | 45 - .../x86_64/additional_project_files.txt | 0 .../4s676p3c/x86_64/android_gradle_build.json | 28 - .../x86_64/android_gradle_build_mini.json | 20 - .../.cxx/Debug/4s676p3c/x86_64/build.ninja | 112 -- .../4s676p3c/x86_64/build_file_index.txt | 1 - .../Debug/4s676p3c/x86_64/cmake_install.cmake | 54 - .../4s676p3c/x86_64/configure_fingerprint.bin | 28 - .../x86_64/metadata_generation_command.txt | 20 - .../Debug/4s676p3c/x86_64/prefab_config.json | 4 - .../4s676p3c/x86_64/symbol_folder_index.txt | 1 - lib/constants/regexps.dart | 4 +- pubspec.lock | 32 +- 128 files changed, 21 insertions(+), 19342 deletions(-) delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cache-v2-d7ea1a46fca8a951bac1.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-25067417d59f0d26c931.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-aa70310decf347f6cbdc.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0557.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeCache.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake delete mode 100755 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin delete mode 100755 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/TargetDirectories.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/cmake.check_cache delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/rules.ninja delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/additional_project_files.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/cmake_install.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cache-v2-6573c0656e67becaeff1.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-161e4284e257b7dbcee8.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-769fcb1eb528b5a1f77c.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0871.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeCache.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake delete mode 100755 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin delete mode 100755 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/TargetDirectories.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/cmake.check_cache delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/rules.ninja delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/additional_project_files.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/cmake_install.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/hash_key.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cache-v2 delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/codemodel-v2 delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cache-v2-920dacdb871097de2130.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cmakeFiles-v1-f1661dab2653e3c04b8e.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/codemodel-v2-95b6204aa3712c2f8293.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0179.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeCache.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake delete mode 100755 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin delete mode 100755 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/TargetDirectories.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/cmake.check_cache delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/rules.ninja delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/additional_project_files.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/build.ninja delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/cmake_install.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cache-v2 delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cache-v2-2b5d080db4293a9c0f40.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-9a2bf79ff0a2a89eb505.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/codemodel-v2-852402f1316f6f65a056.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0481.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeCache.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake delete mode 100755 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin delete mode 100755 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/TargetDirectories.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/cmake.check_cache delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/rules.ninja delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/additional_project_files.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/android_gradle_build_mini.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/build.ninja delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/build_file_index.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/cmake_install.cmake delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/configure_fingerprint.bin delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/metadata_generation_command.txt delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/prefab_config.json delete mode 100644 android/app/.cxx/Debug/4s676p3c/x86_64/symbol_folder_index.txt diff --git a/.gitignore b/.gitignore index d37570d..e9d1504 100644 --- a/.gitignore +++ b/.gitignore @@ -50,4 +50,6 @@ app.*.map.json /debian/packages -untranslated.json \ No newline at end of file +untranslated.json + +android/app/.cxx diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cache-v2-d7ea1a46fca8a951bac1.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cache-v2-d7ea1a46fca8a951bac1.json deleted file mode 100644 index 50ecf16..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cache-v2-d7ea1a46fca8a951bac1.json +++ /dev/null @@ -1,1391 +0,0 @@ -{ - "entries" : - [ - { - "name" : "ANDROID_ABI", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "arm64-v8a" - }, - { - "name" : "ANDROID_NDK", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" - }, - { - "name" : "ANDROID_PLATFORM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "android-26" - }, - { - "name" : "CMAKE_ADDR2LINE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" - }, - { - "name" : "CMAKE_ANDROID_ARCH_ABI", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "arm64-v8a" - }, - { - "name" : "CMAKE_ANDROID_NDK", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" - }, - { - "name" : "CMAKE_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_ASM_FLAGS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_ASM_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_ASM_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_BUILD_TYPE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." - } - ], - "type" : "STRING", - "value" : "Debug" - }, - { - "name" : "CMAKE_CACHEFILE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "This is the directory where this CMakeCache.txt was created" - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a" - }, - { - "name" : "CMAKE_CACHE_MAJOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Major version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "3" - }, - { - "name" : "CMAKE_CACHE_MINOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Minor version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "22" - }, - { - "name" : "CMAKE_CACHE_PATCH_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Patch version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake" - }, - { - "name" : "CMAKE_CPACK_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to cpack program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack" - }, - { - "name" : "CMAKE_CTEST_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to ctest program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest" - }, - { - "name" : "CMAKE_CXX_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "(This variable does not exist and should not be used)" - } - ], - "type" : "UNINITIALIZED", - "value" : "" - }, - { - "name" : "CMAKE_CXX_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "LLVM archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_CXX_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Generate index for LLVM archive" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_CXX_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_STANDARD_LIBRARIES", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Libraries linked by default with all C++ applications." - } - ], - "type" : "STRING", - "value" : "-latomic -lm" - }, - { - "name" : "CMAKE_C_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "(This variable does not exist and should not be used)" - } - ], - "type" : "UNINITIALIZED", - "value" : "" - }, - { - "name" : "CMAKE_C_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "LLVM archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_C_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Generate index for LLVM archive" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_C_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_C_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_C_STANDARD_LIBRARIES", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Libraries linked by default with all C applications." - } - ], - "type" : "STRING", - "value" : "-latomic -lm" - }, - { - "name" : "CMAKE_DLLTOOL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "CMAKE_DLLTOOL-NOTFOUND" - }, - { - "name" : "CMAKE_EDIT_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to cache edit program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake" - }, - { - "name" : "CMAKE_ERROR_DEPRECATED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Whether to issue deprecation errors for macros and functions." - } - ], - "type" : "INTERNAL", - "value" : "FALSE" - }, - { - "name" : "CMAKE_EXECUTABLE_FORMAT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Executable file format" - } - ], - "type" : "INTERNAL", - "value" : "ELF" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "ON" - }, - { - "name" : "CMAKE_EXTRA_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of external makefile project generator." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator." - } - ], - "type" : "INTERNAL", - "value" : "Ninja" - }, - { - "name" : "CMAKE_GENERATOR_INSTANCE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Generator instance identifier." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_PLATFORM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator platform." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_TOOLSET", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator toolset." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_HOME_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Source directory with the top level CMakeLists.txt file for this project" - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - { - "name" : "CMAKE_INSTALL_PREFIX", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install path prefix, prepended onto install directories." - } - ], - "type" : "PATH", - "value" : "/usr/local" - }, - { - "name" : "CMAKE_INSTALL_SO_NO_EXE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install .so files without execute permission." - } - ], - "type" : "INTERNAL", - "value" : "0" - }, - { - "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a" - }, - { - "name" : "CMAKE_LINKER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" - }, - { - "name" : "CMAKE_MAKE_PROGRAM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_NM", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" - }, - { - "name" : "CMAKE_NUMBER_OF_MAKEFILES", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "number of local generators" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_OBJCOPY", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" - }, - { - "name" : "CMAKE_OBJDUMP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" - }, - { - "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Platform information initialized" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_PROJECT_DESCRIPTION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_HOMEPAGE_URL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_NAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "Project" - }, - { - "name" : "CMAKE_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Ranlib" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_READELF", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" - }, - { - "name" : "CMAKE_ROOT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake installation." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" - }, - { - "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of dll's." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SKIP_INSTALL_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_SKIP_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when using shared libraries." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STRIP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Strip" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" - }, - { - "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." - } - ], - "type" : "INTERNAL", - "value" : "TRUE" - }, - { - "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." - } - ], - "type" : "INTERNAL", - "value" : "TRUE" - }, - { - "name" : "CMAKE_SYSTEM_NAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "Android" - }, - { - "name" : "CMAKE_SYSTEM_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "26" - }, - { - "name" : "CMAKE_TOOLCHAIN_FILE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "The CMake toolchain file" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "name" : "CMAKE_UNAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "uname command" - } - ], - "type" : "INTERNAL", - "value" : "/usr/bin/uname" - }, - { - "name" : "CMAKE_VERBOSE_MAKEFILE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." - } - ], - "type" : "BOOL", - "value" : "FALSE" - }, - { - "name" : "CMAKE_WARN_DEPRECATED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Whether to issue warnings for deprecated functionality." - } - ], - "type" : "INTERNAL", - "value" : "FALSE" - }, - { - "name" : "Project_BINARY_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a" - }, - { - "name" : "Project_IS_TOP_LEVEL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "ON" - }, - { - "name" : "Project_SOURCE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - } - ], - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-25067417d59f0d26c931.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-25067417d59f0d26c931.json deleted file mode 100644 index 5a3733f..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-25067417d59f0d26c931.json +++ /dev/null @@ -1,799 +0,0 @@ -{ - "inputs" : - [ - { - "path" : "CMakeLists.txt" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" - } - ], - "kind" : "cmakeFiles", - "paths" : - { - "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", - "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - "version" : - { - "major" : 1, - "minor" : 0 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-aa70310decf347f6cbdc.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-aa70310decf347f6cbdc.json deleted file mode 100644 index 421c157..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-aa70310decf347f6cbdc.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "configurations" : - [ - { - "directories" : - [ - { - "build" : ".", - "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", - "minimumCMakeVersion" : - { - "string" : "3.6.0" - }, - "projectIndex" : 0, - "source" : "." - } - ], - "name" : "Debug", - "projects" : - [ - { - "directoryIndexes" : - [ - 0 - ], - "name" : "Project" - } - ], - "targets" : [] - } - ], - "kind" : "codemodel", - "paths" : - { - "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", - "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - "version" : - { - "major" : 2, - "minor" : 3 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json deleted file mode 100644 index 3a67af9..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "backtraceGraph" : - { - "commands" : [], - "files" : [], - "nodes" : [] - }, - "installers" : [], - "paths" : - { - "build" : ".", - "source" : "." - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0557.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0557.json deleted file mode 100644 index 7f77f77..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0557.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "cmake" : - { - "generator" : - { - "multiConfig" : false, - "name" : "Ninja" - }, - "paths" : - { - "cmake" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake", - "cpack" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack", - "ctest" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest", - "root" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" - }, - "version" : - { - "isDirty" : false, - "major" : 3, - "minor" : 22, - "patch" : 1, - "string" : "3.22.1-g37088a8", - "suffix" : "g37088a8" - } - }, - "objects" : - [ - { - "jsonFile" : "codemodel-v2-aa70310decf347f6cbdc.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - }, - { - "jsonFile" : "cache-v2-d7ea1a46fca8a951bac1.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - { - "jsonFile" : "cmakeFiles-v1-25067417d59f0d26c931.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - } - ], - "reply" : - { - "client-agp" : - { - "cache-v2" : - { - "jsonFile" : "cache-v2-d7ea1a46fca8a951bac1.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - "cmakeFiles-v1" : - { - "jsonFile" : "cmakeFiles-v1-25067417d59f0d26c931.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - }, - "codemodel-v2" : - { - "jsonFile" : "codemodel-v2-aa70310decf347f6cbdc.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - } - } - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeCache.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeCache.txt deleted file mode 100644 index 5701b44..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeCache.txt +++ /dev/null @@ -1,405 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a -# It was generated by CMake: /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//No help, variable specified on the command line. -ANDROID_ABI:UNINITIALIZED=arm64-v8a - -//No help, variable specified on the command line. -ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 - -//No help, variable specified on the command line. -ANDROID_PLATFORM:UNINITIALIZED=android-26 - -//Path to a program. -CMAKE_ADDR2LINE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line - -//No help, variable specified on the command line. -CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=arm64-v8a - -//No help, variable specified on the command line. -CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 - -//Archiver -CMAKE_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Flags used by the compiler during all build types. -CMAKE_ASM_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_ASM_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds. -CMAKE_ASM_FLAGS_RELEASE:STRING= - -//Choose the type of build, options are: None Debug Release RelWithDebInfo -// MinSizeRel ... -CMAKE_BUILD_TYPE:STRING=Debug - -//LLVM archiver -CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Generate index for LLVM archive -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Flags used by the compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_CXX_FLAGS_DEBUG:STRING= - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_CXX_FLAGS_RELEASE:STRING= - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C++ applications. -CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm - -//LLVM archiver -CMAKE_C_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Generate index for LLVM archive -CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Flags used by the compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_C_FLAGS_DEBUG:STRING= - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_C_FLAGS_RELEASE:STRING= - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C applications. -CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm - -//Path to a program. -CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND - -//Flags used by the linker. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//No help, variable specified on the command line. -CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//No help, variable specified on the command line. -CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a - -//Path to a program. -CMAKE_LINKER:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld - -//No help, variable specified on the command line. -CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja - -//Flags used by the linker during the creation of modules. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=Project - -//Ranlib -CMAKE_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Path to a program. -CMAKE_READELF:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf - -//No help, variable specified on the command line. -CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a - -//Flags used by the linker during the creation of dll's. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Strip -CMAKE_STRIP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip - -//No help, variable specified on the command line. -CMAKE_SYSTEM_NAME:UNINITIALIZED=Android - -//No help, variable specified on the command line. -CMAKE_SYSTEM_VERSION:UNINITIALIZED=26 - -//The CMake toolchain file -CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Value Computed by CMake -Project_BINARY_DIR:STATIC=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a - -//Value Computed by CMake -Project_IS_TOP_LEVEL:STATIC=ON - -//Value Computed by CMake -Project_SOURCE_DIR:STATIC=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_ADDR2LINE -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES -CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES -CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_DLLTOOL -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 -//Path to cache edit program executable. -CMAKE_EDIT_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake -//Whether to issue deprecation errors for macros and functions. -CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Ninja -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_READELF -CMAKE_READELF-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//Suppress errors that are meant for the author of the CMakeLists.txt -// files. -CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE -//Suppress Warnings that are meant for the author of the CMakeLists.txt -// files. -CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//Whether to issue warnings for deprecated functionality. -CMAKE_WARN_DEPRECATED:INTERNAL=FALSE - diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake deleted file mode 100644 index 1fc1c84..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +++ /dev/null @@ -1,72 +0,0 @@ -set(CMAKE_C_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "Clang") -set(CMAKE_C_COMPILER_VERSION "17.0.2") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") -set(CMAKE_C17_COMPILE_FEATURES "c_std_17") -set(CMAKE_C23_COMPILE_FEATURES "c_std_23") - -set(CMAKE_C_PLATFORM_ID "Linux") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_C_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_C_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_C_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/aarch64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/aarch64;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake deleted file mode 100644 index 8d1017c..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,83 +0,0 @@ -set(CMAKE_CXX_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "Clang") -set(CMAKE_CXX_COMPILER_VERSION "17.0.2") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") -set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") -set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") - -set(CMAKE_CXX_PLATFORM_ID "Linux") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_CXX_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/aarch64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/aarch64;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index ecf7dc0ff0f4d29d1711e9eb64606718d80eaa08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7992 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 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index b47dc244f44818d5bcfd2bcd35740eef4d9b6946..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8136 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 xElPw})rO<*o!b$4{Q3O34f;HHB+uamlAT diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake deleted file mode 100644 index 43edff4..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Darwin-24.3.0") -set(CMAKE_HOST_SYSTEM_NAME "Darwin") -set(CMAKE_HOST_SYSTEM_VERSION "24.3.0") -set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64") - -include("/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake") - -set(CMAKE_SYSTEM "Android-1") -set(CMAKE_SYSTEM_NAME "Android") -set(CMAKE_SYSTEM_VERSION "1") -set(CMAKE_SYSTEM_PROCESSOR "aarch64") - -set(CMAKE_CROSSCOMPILING "TRUE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c deleted file mode 100644 index 41b99d7..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +++ /dev/null @@ -1,803 +0,0 @@ -#ifdef __cplusplus -# error "A C++ compiler has been selected for C." -#endif - -#if defined(__18CXX) -# define ID_VOID_MAIN -#endif -#if defined(__CLASSIC_C__) -/* cv-qualifiers did not exist in K&R C */ -# define const -# define volatile -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#if !defined(__STDC__) && !defined(__clang__) -# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) -# define C_VERSION "90" -# else -# define C_VERSION -# endif -#elif __STDC_VERSION__ > 201710L -# define C_VERSION "23" -#elif __STDC_VERSION__ >= 201710L -# define C_VERSION "17" -#elif __STDC_VERSION__ >= 201000L -# define C_VERSION "11" -#elif __STDC_VERSION__ >= 199901L -# define C_VERSION "99" -#else -# define C_VERSION "90" -#endif -const char* info_language_standard_default = - "INFO" ":" "standard_default[" C_VERSION "]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ -#if (defined(__clang__) || defined(__GNUC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) && !defined(_MSC_VER) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o deleted file mode 100644 index 644f7767da3c033867802fd2410539172e92a3b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6048 zcmdT|Z){sv6+h38T_?`mrJ=N2y3RlcD=g1{V><4)2_T{Ukr0!H=)ORa5E4uXCJ^PE`|k0( zzJ5U!@P%9X-gAHVch5QZ+&}N6j~zLFG-4RQ#eg3|&|?(f(#?T9C&W3}hs^7b!&}#H zhs~=~u=#!xKD@pYHWL6(Cycode?N78bF|T@T-!OfnJ`9^*Zzw!(&g)g3;!#fSJ5x@ z|H74M^_L4LjxHXmxvfs4>3B=?O{-l$3j*vkt=@|3wU&-I+G`sUw7lBtl9anWt8H7J zUA3JRYpvN^%9Z7av(alnLG1dnz^qs4{UZ;B~lffHA+ReJ_)|*b(UGr*=iPtgHbKPcb)oQde&E|S* zy5qSIIkjHeo?WTTt`zNDsZ=W1Gud3;nW<%Gi?cH;h2=ulsW}BZUnu1d!u%JkbI$y{ zyx9x3S%b{!F5a`uLu*z$bJBAkL4|HNW7+jJyv5V2Zp)c&S#7KCcU1(@ZDS*I zud}>X&lJ0*a;a0OWh}2%Do(FgtcoX|KIKA&y?}#DKNgi-Z}TUbO^5r96vQ$`Le)o(oldi0^d1= z6A*=oA^ZWsAI292zH5l@>-oqK{+!?sI5docOm&nVN4& znfy`lOA;skl$5D?QOd+uai-8!_LCn*{FZV3Br#4elv)@ssUXUXb6og@(Ef`ryyUY? zc(9vv*8IZwYqHOKN;u|p{lYO}{?Fyee%X>g{nrvP-e2~U6)i}C_1uT^sPH-%KQ8eH z{b6AID-yRQPWstrg1)Np+mg@wPJH#8Jg?}X{o;MOtm*lh)WdNiJ?gprnWl&L@i&?t z|D6T+gThzO^FI}w{Na74^GAi_@Qm!IWlR3>9uY6E;G~D+%kgGCl%!Mf-%tNsspt8u zqDS4|a}sAg@5uh68vdT_^SYV;zQiwT{NKv{cQyQ1vcJ!F7h>2~{V7YF;-KPS+LXyv zt>tCUSqHO+`4LdY*>W%;GCikhnYPulOp%xMldO;|YFqA5LMBaid)|)Ur zf8N}K`yQ6<{LN4Q;3au}*n-v-ZzEy+jxukK1+Aq!rIw#y=iklWQpqUm^WTuzoW{F< z%m?_M)7_+X^7okEj;GK#+2`-NKa2iu_9gyKGA>~;hp;E`N0=T%Kfej=5tj@3 zp+IYzV?eg6G8JJz$$yG5&u9E)#K``@-NpWS>8QRg_8%#tyn}U^|F20R+mrOZeeVAP zg)slmhxkuf7wcpH|AAPT{VO+U|F7HFzZhblAl?4rHukq}(EhP)?7tFXpRz^W{wKDv z|K<(ar#vDo{#zmTDUZ?ZlNo6WrJ(S4f3NJ_E%Q8UP0ZYggGo4-dsXq!SyQ1Lu&e<$Y$3}1Rve-I^s z=Q01|2oR>&-|GXuK)$MF gd>i{$L+n%jsN1K!N?$wae@WWEBnQbZ?Ug?NU#KI5*Z=?k diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp deleted file mode 100644 index 25c62a8..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +++ /dev/null @@ -1,791 +0,0 @@ -/* This source file must have a .cpp extension so that all C++ compilers - recognize the extension without flags. Borland does not know .cxx for - example. */ -#ifndef __cplusplus -# error "A C compiler has been selected for C++." -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__COMO__) -# define COMPILER_ID "Comeau" - /* __COMO_VERSION__ = VRR */ -# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) -# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) - -#elif defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L -# if defined(__INTEL_CXX11_MODE__) -# if defined(__cpp_aggregate_nsdmi) -# define CXX_STD 201402L -# else -# define CXX_STD 201103L -# endif -# else -# define CXX_STD 199711L -# endif -#elif defined(_MSC_VER) && defined(_MSVC_LANG) -# define CXX_STD _MSVC_LANG -#else -# define CXX_STD __cplusplus -#endif - -const char* info_language_standard_default = "INFO" ":" "standard_default[" -#if CXX_STD > 202002L - "23" -#elif CXX_STD > 201703L - "20" -#elif CXX_STD >= 201703L - "17" -#elif CXX_STD >= 201402L - "14" -#elif CXX_STD >= 201103L - "11" -#else - "98" -#endif -"]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ -#if (defined(__clang__) || defined(__GNUC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) && !defined(_MSC_VER) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o deleted file mode 100644 index 388b75b4cb13f57f4bb096dcff3e4e8f3e045eec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6064 zcmdT|Yit}>6+W}$b?mIOiDS}++Df+~MG0kRA71aS6BHb!33bTB3W=1~jke?6@p{|c zoz3jna#2M?sl-Dd5q?0C%0GkxL~1}4)B&XatPl_Jqg6pj1O!rfNVGg8BBYvg?%cC; z_wKk2{NqNx_nhy3=W(BNH%}iwbs}aMz{P;?L#QzdaAQ{}&k1o3rjWV$Dfq?ay|8g> z5;lIDfZLlpVPgc~izCL|?LSUl*%)m!%5UtP+ZZuM6K}jrAMpcQxccANy;Hnf7#nlE z`m$MhZT`%Ovxll~tJ7#Y-r}*Q-L78(0d|_UzwCOg#Z!&;>beANue!1*<*skHYqnRb z)SP8|wdpVBO0vgU_nmgP;kLWIzO!d8g_HFzQeRG$HOC`Yi&;@}B`XlJSr+n_z!*2~ zPfob}UixQ=M-Ls%Kl8lxst%!g1KI*-*Jh@Zv=hl%ML+eEVsmmJ_S{`DD+l2PF6 zr?JpiNLJC<4Kn|k!V6=LL1?2gV!tPw-$mNoqu8j7*j^mG@wZ5uDaA%*Y{xKgp6s4i z>p| zN82^eZPZc+a@m=gd^TVHVCsQR-NkyzZTi?WeN@t|CSgl<*Qur4cFHT1OQk}ob}&_? zvz3y&IYs-}%BK#j_(-l2*Io6hj)mtkZ^F9(<^SvNw@5_U3WarEn{~&8LPU! zo_Ww&TCHaa-D0WOnXYDRuT?Ch*UENA#5#djNjEcXW8GpBA{dtov-961cck`|!&G7x!Hs-W0gF zruy)@z=JjG>p;a+^5?!K!ROt;XwaH4-VdO5N$>~pivr(0z$d_j_YC0Q5d1;>^8(*9 z!2hJc?;gMjFaf`{T3HkPLHrNM+pVm-*yo6S4*$l3n_hV0mH4N?S;H@^=moeS@NoVa zKPd2U{u$qg`HVxjj*RmROkh8sJqp1x*|AJ`mMSd7S4UR}U?9GVFG!sDVYc}3l=vPE zUs3q?NST_Zl*zw}KPz$aKPhEuJ|kt~t2k5W&<>ssx?KWX-vNw&fE~z|@!}RZkDpIm z4E=|z6V3_Y>aOOU%=k;v|6Q^rT+NZ^g!w<0ynV8zJbO1GV!U3Qzofw#DX^c@Xh((i z8x_XSN&L|O?%~T4Z%CZ{tNZ7Qg46u-7(Od;_U}tSUsm|)zPhI1pRv*&Rj@irqw3~auTmkHE^@hb|lML zsVsYT3soGAZ!cl{WQ*GUHEWitGF2t2id4-|RiG+2O|__Uc@jmH%Za|;u+VGH3a~8f zU$^+PAXoE$Z)l$nzJ37yB`?kI$o<3-G!=GY2Vs2QGH;Frtqp$vhTv~dd?)+sAyr7a z{jU%uY)rmSKoJJ@)xSG@OLoK0xrp9LxsMFBnC%(=D`HXcACn0(A8DfK`kxSuioX&OpKRHl z-$>5$OsDQIz~O;mEgAmTCdi*FJh055&2P>&`qsV zQ{e^VMvea!Iey+)wEyXirjOr8jC|@B;$7qv%dj>v9G_cy4@KEe$qQ{mcnK@E(X8y7muG~&7yte{K@;9&ne9x{hDHX#?vxB`{Q;*{Kq1| l*BFqkp8tU@;@^shPwz=RKE0>(u~VpPGX6`llj26@{~tJ_iIV^T diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/TargetDirectories.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index 67bfb70..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,2 +0,0 @@ -/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/edit_cache.dir -/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/rebuild_cache.dir diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/cmake.check_cache b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd73..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/rules.ninja b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/rules.ninja deleted file mode 100644 index 28085d5..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/CMakeFiles/rules.ninja +++ /dev/null @@ -1,45 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.22 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configurations: Debug -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja -t targets - description = All primary targets available: - diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/additional_project_files.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/additional_project_files.txt deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json deleted file mode 100644 index 0677eb2..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "buildFiles": [ - "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" - ], - "cleanCommandsComponents": [ - [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", - "clean" - ] - ], - "buildTargetsCommandComponents": [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", - "{LIST_OF_TARGETS_TO_BUILD}" - ], - "libraries": {}, - "toolchains": { - "toolchain": { - "cCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld", - "cppCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [] -} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json deleted file mode 100644 index 84dea41..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "buildFiles": [ - "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" - ], - "cleanCommandsComponents": [ - [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", - "clean" - ] - ], - "buildTargetsCommandComponents": [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a", - "{LIST_OF_TARGETS_TO_BUILD}" - ], - "libraries": {} -} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja deleted file mode 100644 index b54a2e4..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja +++ /dev/null @@ -1,112 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.22 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configurations: Debug -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - - -############################################# -# Set configuration variable for custom commands. - -CONFIGURATION = Debug -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include CMakeFiles/rules.ninja - -# ============================================================================= - -############################################# -# Logical path to working directory; prefix for absolute paths. - -cmake_ninja_workdir = /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/ - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a - DESC = Running CMake cache editor... - pool = console - restat = 1 - -build edit_cache: phony CMakeFiles/edit_cache.util - - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 - -build rebuild_cache: phony CMakeFiles/rebuild_cache.util - -# ============================================================================= -# Target aliases. - -# ============================================================================= -# Folder targets. - -# ============================================================================= - -############################################# -# Folder: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a - -build all: phony - -# ============================================================================= -# Built-in targets - - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake - pool = console - - -############################################# -# A missing CMake input file is not an error. - -build /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony - - -############################################# -# Clean all the built files. - -build clean: CLEAN - - -############################################# -# Print all primary targets available. - -build help: HELP - - -############################################# -# Make the all target the default. - -default all diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt deleted file mode 100644 index ec6a72a..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt +++ /dev/null @@ -1 +0,0 @@ -/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/cmake_install.cmake b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/cmake_install.cmake deleted file mode 100644 index 27069b4..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/cmake_install.cmake +++ /dev/null @@ -1,54 +0,0 @@ -# Install script for directory: /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Debug") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "0") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -# Set default install directory permissions. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin deleted file mode 100644 index 6a7dacd..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/configure_fingerprint.bin +++ /dev/null @@ -1,28 +0,0 @@ -C/C++ Structured Logu -s -q/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/additional_project_files.txtC -A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2r -p -n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build.json  2 2w -u -s/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/android_gradle_build_mini.json  2 2d -b -`/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja  2 2h -f -d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build.ninja.txt  2m -k -i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/build_file_index.txt  2 P 2n -l -j/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json  2r -p -n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/compile_commands.json.bin  2 x -v -t/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt  2 - 2k -i -g/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json  2  ( 2p -n -l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt  2  c 2T -R -P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ؄2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt deleted file mode 100644 index df24dc1..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/metadata_generation_command.txt +++ /dev/null @@ -1,20 +0,0 @@ - -H/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy --DCMAKE_SYSTEM_NAME=Android --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_SYSTEM_VERSION=26 --DANDROID_PLATFORM=android-26 --DANDROID_ABI=arm64-v8a --DCMAKE_ANDROID_ARCH_ABI=arm64-v8a --DANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 --DCMAKE_ANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 --DCMAKE_TOOLCHAIN_FILE=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake --DCMAKE_MAKE_PROGRAM=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a --DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a --DCMAKE_BUILD_TYPE=Debug --B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/arm64-v8a --GNinja --Wno-dev ---no-warn-unused-cli - Build command args: [] - Version: 2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json deleted file mode 100644 index e799de8..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt b/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt deleted file mode 100644 index 44c632a..0000000 --- a/android/app/.cxx/Debug/4s676p3c/arm64-v8a/symbol_folder_index.txt +++ /dev/null @@ -1 +0,0 @@ -/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/arm64-v8a \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cache-v2-6573c0656e67becaeff1.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cache-v2-6573c0656e67becaeff1.json deleted file mode 100644 index 12ec5a0..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cache-v2-6573c0656e67becaeff1.json +++ /dev/null @@ -1,1391 +0,0 @@ -{ - "entries" : - [ - { - "name" : "ANDROID_ABI", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "armeabi-v7a" - }, - { - "name" : "ANDROID_NDK", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" - }, - { - "name" : "ANDROID_PLATFORM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "android-26" - }, - { - "name" : "CMAKE_ADDR2LINE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" - }, - { - "name" : "CMAKE_ANDROID_ARCH_ABI", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "armeabi-v7a" - }, - { - "name" : "CMAKE_ANDROID_NDK", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" - }, - { - "name" : "CMAKE_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_ASM_FLAGS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_ASM_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_ASM_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_BUILD_TYPE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." - } - ], - "type" : "STRING", - "value" : "Debug" - }, - { - "name" : "CMAKE_CACHEFILE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "This is the directory where this CMakeCache.txt was created" - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a" - }, - { - "name" : "CMAKE_CACHE_MAJOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Major version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "3" - }, - { - "name" : "CMAKE_CACHE_MINOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Minor version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "22" - }, - { - "name" : "CMAKE_CACHE_PATCH_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Patch version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake" - }, - { - "name" : "CMAKE_CPACK_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to cpack program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack" - }, - { - "name" : "CMAKE_CTEST_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to ctest program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest" - }, - { - "name" : "CMAKE_CXX_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "(This variable does not exist and should not be used)" - } - ], - "type" : "UNINITIALIZED", - "value" : "" - }, - { - "name" : "CMAKE_CXX_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "LLVM archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_CXX_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Generate index for LLVM archive" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_CXX_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_STANDARD_LIBRARIES", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Libraries linked by default with all C++ applications." - } - ], - "type" : "STRING", - "value" : "-latomic -lm" - }, - { - "name" : "CMAKE_C_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "(This variable does not exist and should not be used)" - } - ], - "type" : "UNINITIALIZED", - "value" : "" - }, - { - "name" : "CMAKE_C_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "LLVM archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_C_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Generate index for LLVM archive" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_C_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_C_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_C_STANDARD_LIBRARIES", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Libraries linked by default with all C applications." - } - ], - "type" : "STRING", - "value" : "-latomic -lm" - }, - { - "name" : "CMAKE_DLLTOOL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "CMAKE_DLLTOOL-NOTFOUND" - }, - { - "name" : "CMAKE_EDIT_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to cache edit program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake" - }, - { - "name" : "CMAKE_ERROR_DEPRECATED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Whether to issue deprecation errors for macros and functions." - } - ], - "type" : "INTERNAL", - "value" : "FALSE" - }, - { - "name" : "CMAKE_EXECUTABLE_FORMAT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Executable file format" - } - ], - "type" : "INTERNAL", - "value" : "ELF" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "ON" - }, - { - "name" : "CMAKE_EXTRA_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of external makefile project generator." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator." - } - ], - "type" : "INTERNAL", - "value" : "Ninja" - }, - { - "name" : "CMAKE_GENERATOR_INSTANCE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Generator instance identifier." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_PLATFORM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator platform." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_TOOLSET", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator toolset." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_HOME_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Source directory with the top level CMakeLists.txt file for this project" - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - { - "name" : "CMAKE_INSTALL_PREFIX", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install path prefix, prepended onto install directories." - } - ], - "type" : "PATH", - "value" : "/usr/local" - }, - { - "name" : "CMAKE_INSTALL_SO_NO_EXE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install .so files without execute permission." - } - ], - "type" : "INTERNAL", - "value" : "0" - }, - { - "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a" - }, - { - "name" : "CMAKE_LINKER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" - }, - { - "name" : "CMAKE_MAKE_PROGRAM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_NM", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" - }, - { - "name" : "CMAKE_NUMBER_OF_MAKEFILES", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "number of local generators" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_OBJCOPY", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" - }, - { - "name" : "CMAKE_OBJDUMP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" - }, - { - "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Platform information initialized" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_PROJECT_DESCRIPTION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_HOMEPAGE_URL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_NAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "Project" - }, - { - "name" : "CMAKE_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Ranlib" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_READELF", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" - }, - { - "name" : "CMAKE_ROOT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake installation." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" - }, - { - "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of dll's." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SKIP_INSTALL_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_SKIP_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when using shared libraries." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STRIP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Strip" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" - }, - { - "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." - } - ], - "type" : "INTERNAL", - "value" : "TRUE" - }, - { - "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." - } - ], - "type" : "INTERNAL", - "value" : "TRUE" - }, - { - "name" : "CMAKE_SYSTEM_NAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "Android" - }, - { - "name" : "CMAKE_SYSTEM_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "26" - }, - { - "name" : "CMAKE_TOOLCHAIN_FILE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "The CMake toolchain file" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "name" : "CMAKE_UNAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "uname command" - } - ], - "type" : "INTERNAL", - "value" : "/usr/bin/uname" - }, - { - "name" : "CMAKE_VERBOSE_MAKEFILE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." - } - ], - "type" : "BOOL", - "value" : "FALSE" - }, - { - "name" : "CMAKE_WARN_DEPRECATED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Whether to issue warnings for deprecated functionality." - } - ], - "type" : "INTERNAL", - "value" : "FALSE" - }, - { - "name" : "Project_BINARY_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a" - }, - { - "name" : "Project_IS_TOP_LEVEL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "ON" - }, - { - "name" : "Project_SOURCE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - } - ], - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-161e4284e257b7dbcee8.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-161e4284e257b7dbcee8.json deleted file mode 100644 index ad14735..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-161e4284e257b7dbcee8.json +++ /dev/null @@ -1,799 +0,0 @@ -{ - "inputs" : - [ - { - "path" : "CMakeLists.txt" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" - } - ], - "kind" : "cmakeFiles", - "paths" : - { - "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", - "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - "version" : - { - "major" : 1, - "minor" : 0 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-769fcb1eb528b5a1f77c.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-769fcb1eb528b5a1f77c.json deleted file mode 100644 index 35467aa..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-769fcb1eb528b5a1f77c.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "configurations" : - [ - { - "directories" : - [ - { - "build" : ".", - "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", - "minimumCMakeVersion" : - { - "string" : "3.6.0" - }, - "projectIndex" : 0, - "source" : "." - } - ], - "name" : "Debug", - "projects" : - [ - { - "directoryIndexes" : - [ - 0 - ], - "name" : "Project" - } - ], - "targets" : [] - } - ], - "kind" : "codemodel", - "paths" : - { - "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", - "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - "version" : - { - "major" : 2, - "minor" : 3 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json deleted file mode 100644 index 3a67af9..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "backtraceGraph" : - { - "commands" : [], - "files" : [], - "nodes" : [] - }, - "installers" : [], - "paths" : - { - "build" : ".", - "source" : "." - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0871.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0871.json deleted file mode 100644 index 70ff0c6..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/.cmake/api/v1/reply/index-2025-03-09T19-31-30-0871.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "cmake" : - { - "generator" : - { - "multiConfig" : false, - "name" : "Ninja" - }, - "paths" : - { - "cmake" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake", - "cpack" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack", - "ctest" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest", - "root" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" - }, - "version" : - { - "isDirty" : false, - "major" : 3, - "minor" : 22, - "patch" : 1, - "string" : "3.22.1-g37088a8", - "suffix" : "g37088a8" - } - }, - "objects" : - [ - { - "jsonFile" : "codemodel-v2-769fcb1eb528b5a1f77c.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - }, - { - "jsonFile" : "cache-v2-6573c0656e67becaeff1.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - { - "jsonFile" : "cmakeFiles-v1-161e4284e257b7dbcee8.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - } - ], - "reply" : - { - "client-agp" : - { - "cache-v2" : - { - "jsonFile" : "cache-v2-6573c0656e67becaeff1.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - "cmakeFiles-v1" : - { - "jsonFile" : "cmakeFiles-v1-161e4284e257b7dbcee8.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - }, - "codemodel-v2" : - { - "jsonFile" : "codemodel-v2-769fcb1eb528b5a1f77c.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - } - } - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeCache.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeCache.txt deleted file mode 100644 index 4f7a9db..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeCache.txt +++ /dev/null @@ -1,405 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a -# It was generated by CMake: /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//No help, variable specified on the command line. -ANDROID_ABI:UNINITIALIZED=armeabi-v7a - -//No help, variable specified on the command line. -ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 - -//No help, variable specified on the command line. -ANDROID_PLATFORM:UNINITIALIZED=android-26 - -//Path to a program. -CMAKE_ADDR2LINE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line - -//No help, variable specified on the command line. -CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=armeabi-v7a - -//No help, variable specified on the command line. -CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 - -//Archiver -CMAKE_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Flags used by the compiler during all build types. -CMAKE_ASM_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_ASM_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds. -CMAKE_ASM_FLAGS_RELEASE:STRING= - -//Choose the type of build, options are: None Debug Release RelWithDebInfo -// MinSizeRel ... -CMAKE_BUILD_TYPE:STRING=Debug - -//LLVM archiver -CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Generate index for LLVM archive -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Flags used by the compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_CXX_FLAGS_DEBUG:STRING= - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_CXX_FLAGS_RELEASE:STRING= - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C++ applications. -CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm - -//LLVM archiver -CMAKE_C_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Generate index for LLVM archive -CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Flags used by the compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_C_FLAGS_DEBUG:STRING= - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_C_FLAGS_RELEASE:STRING= - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C applications. -CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm - -//Path to a program. -CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND - -//Flags used by the linker. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//No help, variable specified on the command line. -CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//No help, variable specified on the command line. -CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a - -//Path to a program. -CMAKE_LINKER:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld - -//No help, variable specified on the command line. -CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja - -//Flags used by the linker during the creation of modules. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=Project - -//Ranlib -CMAKE_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Path to a program. -CMAKE_READELF:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf - -//No help, variable specified on the command line. -CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a - -//Flags used by the linker during the creation of dll's. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Strip -CMAKE_STRIP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip - -//No help, variable specified on the command line. -CMAKE_SYSTEM_NAME:UNINITIALIZED=Android - -//No help, variable specified on the command line. -CMAKE_SYSTEM_VERSION:UNINITIALIZED=26 - -//The CMake toolchain file -CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Value Computed by CMake -Project_BINARY_DIR:STATIC=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a - -//Value Computed by CMake -Project_IS_TOP_LEVEL:STATIC=ON - -//Value Computed by CMake -Project_SOURCE_DIR:STATIC=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_ADDR2LINE -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES -CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES -CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_DLLTOOL -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 -//Path to cache edit program executable. -CMAKE_EDIT_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake -//Whether to issue deprecation errors for macros and functions. -CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Ninja -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_READELF -CMAKE_READELF-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//Suppress errors that are meant for the author of the CMakeLists.txt -// files. -CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE -//Suppress Warnings that are meant for the author of the CMakeLists.txt -// files. -CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//Whether to issue warnings for deprecated functionality. -CMAKE_WARN_DEPRECATED:INTERNAL=FALSE - diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake deleted file mode 100644 index 802edf5..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +++ /dev/null @@ -1,72 +0,0 @@ -set(CMAKE_C_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "Clang") -set(CMAKE_C_COMPILER_VERSION "17.0.2") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") -set(CMAKE_C17_COMPILE_FEATURES "c_std_17") -set(CMAKE_C23_COMPILE_FEATURES "c_std_23") - -set(CMAKE_C_PLATFORM_ID "Linux") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_C_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_C_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_C_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "4") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/arm-linux-androideabi;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/arm;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake deleted file mode 100644 index 2193dfd..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,83 +0,0 @@ -set(CMAKE_CXX_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "Clang") -set(CMAKE_CXX_COMPILER_VERSION "17.0.2") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") -set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") -set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") - -set(CMAKE_CXX_PLATFORM_ID "Linux") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_CXX_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "4") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/arm-linux-androideabi;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/arm;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index 3f1c03f0c432c32e4e2cfcdb062fe1e43751825d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5896 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 Nu$x8UUr1%h?mq}<`*{EW diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index 1f893f66cb6e585cdf4f0e709db8d25249c8967a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6036 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 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake deleted file mode 100644 index 72a079f..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Darwin-24.3.0") -set(CMAKE_HOST_SYSTEM_NAME "Darwin") -set(CMAKE_HOST_SYSTEM_VERSION "24.3.0") -set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64") - -include("/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake") - -set(CMAKE_SYSTEM "Android-1") -set(CMAKE_SYSTEM_NAME "Android") -set(CMAKE_SYSTEM_VERSION "1") -set(CMAKE_SYSTEM_PROCESSOR "armv7-a") - -set(CMAKE_CROSSCOMPILING "TRUE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c deleted file mode 100644 index 41b99d7..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +++ /dev/null @@ -1,803 +0,0 @@ -#ifdef __cplusplus -# error "A C++ compiler has been selected for C." -#endif - -#if defined(__18CXX) -# define ID_VOID_MAIN -#endif -#if defined(__CLASSIC_C__) -/* cv-qualifiers did not exist in K&R C */ -# define const -# define volatile -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#if !defined(__STDC__) && !defined(__clang__) -# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) -# define C_VERSION "90" -# else -# define C_VERSION -# endif -#elif __STDC_VERSION__ > 201710L -# define C_VERSION "23" -#elif __STDC_VERSION__ >= 201710L -# define C_VERSION "17" -#elif __STDC_VERSION__ >= 201000L -# define C_VERSION "11" -#elif __STDC_VERSION__ >= 199901L -# define C_VERSION "99" -#else -# define C_VERSION "90" -#endif -const char* info_language_standard_default = - "INFO" ":" "standard_default[" C_VERSION "]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ -#if (defined(__clang__) || defined(__GNUC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) && !defined(_MSC_VER) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o deleted file mode 100644 index c4b399f47492347c701418e5762a811923832d9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4148 zcmdT{U5p#m6+ScLv7PnC`$xzx)I}j(Xgy?iyN64E6<8+yrhJBG5+x; zG4feY{1wQsdXYY7F%dYE{x=AEBz^%TKF@#)P1|#8c4{)4nV!yNasJd>o z?zG*GS9T0sAJcc;dU@5VHO+c`t&whd?pdeor|h}P>|7;pXJ=++rtIlVHs?&2GjsX5 z>B>}TD&v%$DLXecle>c!k6P!P#YJ%wmu;g==BYOBhk3SRHO&*Admeyp+qCRz2e&T0 z>NcEo!)jVp$CG)PR;y(i#Q-#dztTk(HgkL1A#-n0!;pEAMhl=+v|MGD0frm~UE*7cQthhy4GJ2BOuAU$Z zM^EC4(c^eyJIJ;;SU3jE->)9jz{bMMC(Emrc~~RQd8AYGaOD4AANayuIIR{x6;iTb z7js5tj-o@cg}Aas9nyxCB#kJe%9uJHxk=eZ+qE6aPGy&Ro3amweH1gkMT?-^C>N5$ zTOqSfHojK}lcV%1Xe6kfcw7B1xs^aLozRu*ow;DXt}@Y{jw*U==q){I>U*LUJ!$9( zLr+Gl1JaJZZFh7PcDTVgswFFWx^LoXW?veDqZUmV+9&5LsMw+RXb>O6aZXaS2>tV0 z$urgPdopBajR)E9I|cP6B*pqXGa8|Chnhw=ha|S|8j$zU7tnA>-q&$>yd*rh*pE@1 zzS$%vXs^hxXWvS13p>Am$58t2-{e1nuZLdi`Hux_(eRe)Lahz=D!qn>e2L{G(GyHZ zh@N699{iobV?)8#p+x&3igzZd7ywNwwr5;W-U)RJ1v|j{TUiEfhAD6tgdcxTu>H88 zrrOL8eg&al67-aywxEv)iq8X5<3xLy@;pJwu(@Iuty0Nz*2wTtg@`MA!$H|GJg08h zmTwtB@#|Nz>y)Y+xqh$c84D+m8kX;SwNl4-+A@K*?+u3Q*V-O-kSFH>KX)T3S%U*7 z#&)_jyBjRT2jp_ZWZ8TlqF^(KNl}5_tbA!nQ^*oeFz1DPuPmox}vl`Cz zDvN=Y`BsUH_W1_Wy|$60z#J#@32kl2T{yGZZ^bc`v`RheC$>R6~cbCsRx865- zkLQu^9Jha<^PI3B-*?%h-)B%D6wM368Js6ho9_ze!+ucFU(kWqdK{G7yXdT!IZM0` zpbO(&h7Qvo z;29U!C1|q{WDcxg8@K$3iWvMShy6H@?*RE!T(|%L diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp deleted file mode 100644 index 25c62a8..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +++ /dev/null @@ -1,791 +0,0 @@ -/* This source file must have a .cpp extension so that all C++ compilers - recognize the extension without flags. Borland does not know .cxx for - example. */ -#ifndef __cplusplus -# error "A C compiler has been selected for C++." -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__COMO__) -# define COMPILER_ID "Comeau" - /* __COMO_VERSION__ = VRR */ -# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) -# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) - -#elif defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L -# if defined(__INTEL_CXX11_MODE__) -# if defined(__cpp_aggregate_nsdmi) -# define CXX_STD 201402L -# else -# define CXX_STD 201103L -# endif -# else -# define CXX_STD 199711L -# endif -#elif defined(_MSC_VER) && defined(_MSVC_LANG) -# define CXX_STD _MSVC_LANG -#else -# define CXX_STD __cplusplus -#endif - -const char* info_language_standard_default = "INFO" ":" "standard_default[" -#if CXX_STD > 202002L - "23" -#elif CXX_STD > 201703L - "20" -#elif CXX_STD >= 201703L - "17" -#elif CXX_STD >= 201402L - "14" -#elif CXX_STD >= 201103L - "11" -#else - "98" -#endif -"]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ -#if (defined(__clang__) || defined(__GNUC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) && !defined(_MSC_VER) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o deleted file mode 100644 index ec6bab69ee4d78ac0747a374e943316816171846..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4184 zcmdT{O>7&-6@I(Rr6^KfOS0W4j?prP8z^bCOH!05*+nWR0=X6FAqa8^5+KQ;mmqMyH=LoC zbXD})5oW)6?|t*;&EFg9r>9P@Ynn!?Xf#W^64CXHu$V;wv-B-kZ`{?_DQn!+f2qAj zHxK<_=Ok_EcUE7Z+o_Xub9zM9?^w_%>%@q4d_<<(iMySr>96N8-bvI&R2%guDwn%= zjq4j{*UufV2CYt`>4%$ZO}AaYLPFVTx=}3%TbrjF?cR=5x?y!|Q?|R2+xFbhD|>#; z?KPv#d`VjToyc!@8$r7}u$?=5MT~g}-zQKx7LIFZ{PMORa<|Q#DEX4zZ{%{SQMf|d zl=f}wfN5Bh4?SW{Y12s}y+|7ej%QAo`V5hwX&VQK5|2Vx!it-Zp+S^9MuzoNCIihF zH#3>1&`cH4+&J*PhgI+K{eqqD>-*ZaMU=5I?sRfx#;{n)U5F-3(gzBneZ?V>Ucu%k zFh_jFF?f{zBqXB0OWXk>cp~kFW*V$CR`5xj#^(^3rvS-w=$q2UE;5Xzwg5iVgAU^> zkorFUrke(@Z)#hSSOW#=xAD>5gT!lZtl%TYn4r`R#bqn>q`!lY_5mc`qh0P{O8s1M z*($i7G4~5dyqCM&Bb54s;Gz;HhN}HWYW@kqSb<5zQXuRH5ig1M+^5XDuSb9h z{pHlZhs4B}eeoxNefrA?8D!01G9|yj*G!CG2aNOj(Q4ZZgNB!#&F2;t3c144liBZd z>H)r$pcw(05rnx`lXVrh>wDRtoehgirBbovJ)W)doyf|QndLKS7qYWkQPk-kcN|;+ z_HNgMpx*SmK`*TOHtv%X1wpgAx99Jel^N^%eAHDTG7idE-ub{3%Pv3 zU#RAmi^~hO`O19Guln;|VScgjIIW#=ulj4xKffj~=Z0rjI~{VK?c$O+FZSHFb3P2N z!D-NST(924Rh-)jTK-(iZM$_pRIxd3r{mbwogL?-U+LAIVt28$*qN_7ZrJkON@H%j zSnnFg*59X0RL2d?>FQ3jA#JEb+!h(YnksH>l{Mn|^ z|8cJo;?DfP9)#5sIK?jS6lr-h*9vxSnUd+T)s!}_r;Q2CqW#*WHlkXfe+U$^gDlXM4|5U&GXurIBBxKQFH!!^?OI*P)F ziOYv;eBac}vGiX|%Q256Yo=wJ8QZjy^_cWXatj(5U``rV&72z|Is+*UqLIwl#>dxc z`awh@1{(gn9upJv`Tdwk2L66A)X5;u72bek(EGAo0BSTnuyDhmu@QOHj`t*14Ejb) z;{Jz6cv}MNc6MGmev3DMp^Lj)cuKW%-+o@S9^qr*)}6 zBk`g{ml1JtJj}Z$^{+A_?pspN`^$d+$T&sxw$%Sa>i@-vd3_@FUrBu$>!M?x`x(*y z2qU&LE9E>R;yfYcA46MD*ONHIe$(*7$o(Xe?Qt?KyOm1lZ<8G%R}m-vmXGXX zhkn!c+{m>>b{gcn|B%r3qCSus?bQosY&VL+Mx__|T@^q#3P*<=&p9UU&UcXa?RF6P_S0vdox^mhS4RUCFG4JuW~1#( zj)<-nx-BR$#mKDyueBJDd3JsfGi-T?$0D0g-v3svVsFJy5=s9A`+W;KRa6tl3%LQm zDWsvO2om`&axp*}<#AqBMe#UEVJKRWhL>=!_+Inf;dqz_6@82ff1Ou=T;4=wy^2}+ z`v|(Yzu$wzJobmHKk#>5#>csi%Uh_NA5`JkxxOY*jgy5^jm2Em{u$cwao>!M%j2tg zOv`bVKmPHje8l}((8v9~74wIyH}H3S#NX^5{uW34-HZ9-Jf`B~+yv@iU7y^;-v&7G z_}+>6L&_TXJ38Vow}(I8pSZtwWBxcrtN7lP{*ZP=DZ-!HLsoF?To_fGIeZJ=6zQQK*jsfh`(Fl&Bl1@EM5k0Xuc45A9%j} wzNz`19r1S${(c+tr^e+sCGPJ-2)u;skKYmHuM1vmx#$J?PO%?#PC1UR0n?*oDgXcg diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/TargetDirectories.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index ca4b484..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,2 +0,0 @@ -/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/edit_cache.dir -/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/rebuild_cache.dir diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/cmake.check_cache b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd73..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/rules.ninja b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/rules.ninja deleted file mode 100644 index 6a55d4f..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/CMakeFiles/rules.ninja +++ /dev/null @@ -1,45 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.22 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configurations: Debug -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja -t targets - description = All primary targets available: - diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/additional_project_files.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/additional_project_files.txt deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json deleted file mode 100644 index f074409..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "buildFiles": [ - "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" - ], - "cleanCommandsComponents": [ - [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", - "clean" - ] - ], - "buildTargetsCommandComponents": [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", - "{LIST_OF_TARGETS_TO_BUILD}" - ], - "libraries": {}, - "toolchains": { - "toolchain": { - "cCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld", - "cppCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [] -} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json deleted file mode 100644 index c404902..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "buildFiles": [ - "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" - ], - "cleanCommandsComponents": [ - [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", - "clean" - ] - ], - "buildTargetsCommandComponents": [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a", - "{LIST_OF_TARGETS_TO_BUILD}" - ], - "libraries": {} -} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja deleted file mode 100644 index cda47cd..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja +++ /dev/null @@ -1,112 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.22 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configurations: Debug -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - - -############################################# -# Set configuration variable for custom commands. - -CONFIGURATION = Debug -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include CMakeFiles/rules.ninja - -# ============================================================================= - -############################################# -# Logical path to working directory; prefix for absolute paths. - -cmake_ninja_workdir = /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/ - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a - DESC = Running CMake cache editor... - pool = console - restat = 1 - -build edit_cache: phony CMakeFiles/edit_cache.util - - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 - -build rebuild_cache: phony CMakeFiles/rebuild_cache.util - -# ============================================================================= -# Target aliases. - -# ============================================================================= -# Folder targets. - -# ============================================================================= - -############################################# -# Folder: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a - -build all: phony - -# ============================================================================= -# Built-in targets - - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake - pool = console - - -############################################# -# A missing CMake input file is not an error. - -build /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony - - -############################################# -# Clean all the built files. - -build clean: CLEAN - - -############################################# -# Print all primary targets available. - -build help: HELP - - -############################################# -# Make the all target the default. - -default all diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt deleted file mode 100644 index ec6a72a..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt +++ /dev/null @@ -1 +0,0 @@ -/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/cmake_install.cmake b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/cmake_install.cmake deleted file mode 100644 index 05e628b..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/cmake_install.cmake +++ /dev/null @@ -1,54 +0,0 @@ -# Install script for directory: /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Debug") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "0") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -# Set default install directory permissions. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin deleted file mode 100644 index 00da33a..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/configure_fingerprint.bin +++ /dev/null @@ -1,28 +0,0 @@ -C/C++ Structured Logw -u -s/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/additional_project_files.txtC -A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2t -r -p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build.json  2 2y -w -u/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/android_gradle_build_mini.json  2 2f -d -b/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja  2 2j -h -f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build.ninja.txt  2o -m -k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/build_file_index.txt  2 P 2p -n -l/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json  2t -r -p/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/compile_commands.json.bin  2 z -x -v/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt  2 - 2m -k -i/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json  2  ( 2r -p -n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt  2  e 2T -R -P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ؄2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt deleted file mode 100644 index b418b0d..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/metadata_generation_command.txt +++ /dev/null @@ -1,20 +0,0 @@ - -H/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy --DCMAKE_SYSTEM_NAME=Android --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_SYSTEM_VERSION=26 --DANDROID_PLATFORM=android-26 --DANDROID_ABI=armeabi-v7a --DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a --DANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 --DCMAKE_ANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 --DCMAKE_TOOLCHAIN_FILE=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake --DCMAKE_MAKE_PROGRAM=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a --DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a --DCMAKE_BUILD_TYPE=Debug --B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/armeabi-v7a --GNinja --Wno-dev ---no-warn-unused-cli - Build command args: [] - Version: 2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json deleted file mode 100644 index e799de8..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt b/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt deleted file mode 100644 index ac80ab6..0000000 --- a/android/app/.cxx/Debug/4s676p3c/armeabi-v7a/symbol_folder_index.txt +++ /dev/null @@ -1 +0,0 @@ -/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/armeabi-v7a \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/hash_key.txt b/android/app/.cxx/Debug/4s676p3c/hash_key.txt deleted file mode 100644 index aff771b..0000000 --- a/android/app/.cxx/Debug/4s676p3c/hash_key.txt +++ /dev/null @@ -1,27 +0,0 @@ -# Values used to calculate the hash in this folder name. -# Should not depend on the absolute path of the project itself. -# - AGP: 8.6.0. -# - $NDK is the path to NDK 26.1.10909125. -# - $PROJECT is the path to the parent folder of the root Gradle build file. -# - $ABI is the ABI to be built with. The specific value doesn't contribute to the value of the hash. -# - $HASH is the hash value computed from this text. -# - $CMAKE is the path to CMake 3.22.1. -# - $NINJA is the path to Ninja. --H/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy --DCMAKE_SYSTEM_NAME=Android --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_SYSTEM_VERSION=26 --DANDROID_PLATFORM=android-26 --DANDROID_ABI=$ABI --DCMAKE_ANDROID_ARCH_ABI=$ABI --DANDROID_NDK=$NDK --DCMAKE_ANDROID_NDK=$NDK --DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake --DCMAKE_MAKE_PROGRAM=$NINJA --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/$HASH/obj/$ABI --DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/$HASH/obj/$ABI --DCMAKE_BUILD_TYPE=Debug --B$PROJECT/app/.cxx/Debug/$HASH/$ABI --GNinja --Wno-dev ---no-warn-unused-cli \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cache-v2 b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cache-v2 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/codemodel-v2 b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/query/client-agp/codemodel-v2 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cache-v2-920dacdb871097de2130.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cache-v2-920dacdb871097de2130.json deleted file mode 100644 index 04a71c8..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cache-v2-920dacdb871097de2130.json +++ /dev/null @@ -1,1391 +0,0 @@ -{ - "entries" : - [ - { - "name" : "ANDROID_ABI", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "x86" - }, - { - "name" : "ANDROID_NDK", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" - }, - { - "name" : "ANDROID_PLATFORM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "android-26" - }, - { - "name" : "CMAKE_ADDR2LINE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" - }, - { - "name" : "CMAKE_ANDROID_ARCH_ABI", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "x86" - }, - { - "name" : "CMAKE_ANDROID_NDK", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" - }, - { - "name" : "CMAKE_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_ASM_FLAGS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_ASM_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_ASM_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_BUILD_TYPE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." - } - ], - "type" : "STRING", - "value" : "Debug" - }, - { - "name" : "CMAKE_CACHEFILE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "This is the directory where this CMakeCache.txt was created" - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86" - }, - { - "name" : "CMAKE_CACHE_MAJOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Major version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "3" - }, - { - "name" : "CMAKE_CACHE_MINOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Minor version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "22" - }, - { - "name" : "CMAKE_CACHE_PATCH_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Patch version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake" - }, - { - "name" : "CMAKE_CPACK_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to cpack program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack" - }, - { - "name" : "CMAKE_CTEST_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to ctest program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest" - }, - { - "name" : "CMAKE_CXX_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "(This variable does not exist and should not be used)" - } - ], - "type" : "UNINITIALIZED", - "value" : "" - }, - { - "name" : "CMAKE_CXX_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "LLVM archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_CXX_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Generate index for LLVM archive" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_CXX_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_STANDARD_LIBRARIES", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Libraries linked by default with all C++ applications." - } - ], - "type" : "STRING", - "value" : "-latomic -lm" - }, - { - "name" : "CMAKE_C_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "(This variable does not exist and should not be used)" - } - ], - "type" : "UNINITIALIZED", - "value" : "" - }, - { - "name" : "CMAKE_C_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "LLVM archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_C_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Generate index for LLVM archive" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_C_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_C_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_C_STANDARD_LIBRARIES", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Libraries linked by default with all C applications." - } - ], - "type" : "STRING", - "value" : "-latomic -lm" - }, - { - "name" : "CMAKE_DLLTOOL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "CMAKE_DLLTOOL-NOTFOUND" - }, - { - "name" : "CMAKE_EDIT_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to cache edit program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake" - }, - { - "name" : "CMAKE_ERROR_DEPRECATED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Whether to issue deprecation errors for macros and functions." - } - ], - "type" : "INTERNAL", - "value" : "FALSE" - }, - { - "name" : "CMAKE_EXECUTABLE_FORMAT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Executable file format" - } - ], - "type" : "INTERNAL", - "value" : "ELF" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "ON" - }, - { - "name" : "CMAKE_EXTRA_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of external makefile project generator." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator." - } - ], - "type" : "INTERNAL", - "value" : "Ninja" - }, - { - "name" : "CMAKE_GENERATOR_INSTANCE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Generator instance identifier." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_PLATFORM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator platform." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_TOOLSET", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator toolset." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_HOME_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Source directory with the top level CMakeLists.txt file for this project" - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - { - "name" : "CMAKE_INSTALL_PREFIX", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install path prefix, prepended onto install directories." - } - ], - "type" : "PATH", - "value" : "/usr/local" - }, - { - "name" : "CMAKE_INSTALL_SO_NO_EXE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install .so files without execute permission." - } - ], - "type" : "INTERNAL", - "value" : "0" - }, - { - "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86" - }, - { - "name" : "CMAKE_LINKER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" - }, - { - "name" : "CMAKE_MAKE_PROGRAM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_NM", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" - }, - { - "name" : "CMAKE_NUMBER_OF_MAKEFILES", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "number of local generators" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_OBJCOPY", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" - }, - { - "name" : "CMAKE_OBJDUMP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" - }, - { - "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Platform information initialized" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_PROJECT_DESCRIPTION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_HOMEPAGE_URL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_NAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "Project" - }, - { - "name" : "CMAKE_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Ranlib" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_READELF", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" - }, - { - "name" : "CMAKE_ROOT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake installation." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" - }, - { - "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of dll's." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SKIP_INSTALL_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_SKIP_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when using shared libraries." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STRIP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Strip" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" - }, - { - "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." - } - ], - "type" : "INTERNAL", - "value" : "TRUE" - }, - { - "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." - } - ], - "type" : "INTERNAL", - "value" : "TRUE" - }, - { - "name" : "CMAKE_SYSTEM_NAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "Android" - }, - { - "name" : "CMAKE_SYSTEM_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "26" - }, - { - "name" : "CMAKE_TOOLCHAIN_FILE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "The CMake toolchain file" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "name" : "CMAKE_UNAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "uname command" - } - ], - "type" : "INTERNAL", - "value" : "/usr/bin/uname" - }, - { - "name" : "CMAKE_VERBOSE_MAKEFILE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." - } - ], - "type" : "BOOL", - "value" : "FALSE" - }, - { - "name" : "CMAKE_WARN_DEPRECATED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Whether to issue warnings for deprecated functionality." - } - ], - "type" : "INTERNAL", - "value" : "FALSE" - }, - { - "name" : "Project_BINARY_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86" - }, - { - "name" : "Project_IS_TOP_LEVEL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "ON" - }, - { - "name" : "Project_SOURCE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - } - ], - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cmakeFiles-v1-f1661dab2653e3c04b8e.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cmakeFiles-v1-f1661dab2653e3c04b8e.json deleted file mode 100644 index 73685b0..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/cmakeFiles-v1-f1661dab2653e3c04b8e.json +++ /dev/null @@ -1,799 +0,0 @@ -{ - "inputs" : - [ - { - "path" : "CMakeLists.txt" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" - } - ], - "kind" : "cmakeFiles", - "paths" : - { - "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", - "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - "version" : - { - "major" : 1, - "minor" : 0 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/codemodel-v2-95b6204aa3712c2f8293.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/codemodel-v2-95b6204aa3712c2f8293.json deleted file mode 100644 index 996721e..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/codemodel-v2-95b6204aa3712c2f8293.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "configurations" : - [ - { - "directories" : - [ - { - "build" : ".", - "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", - "minimumCMakeVersion" : - { - "string" : "3.6.0" - }, - "projectIndex" : 0, - "source" : "." - } - ], - "name" : "Debug", - "projects" : - [ - { - "directoryIndexes" : - [ - 0 - ], - "name" : "Project" - } - ], - "targets" : [] - } - ], - "kind" : "codemodel", - "paths" : - { - "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", - "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - "version" : - { - "major" : 2, - "minor" : 3 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json deleted file mode 100644 index 3a67af9..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "backtraceGraph" : - { - "commands" : [], - "files" : [], - "nodes" : [] - }, - "installers" : [], - "paths" : - { - "build" : ".", - "source" : "." - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0179.json b/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0179.json deleted file mode 100644 index b8f0a1d..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0179.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "cmake" : - { - "generator" : - { - "multiConfig" : false, - "name" : "Ninja" - }, - "paths" : - { - "cmake" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake", - "cpack" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack", - "ctest" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest", - "root" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" - }, - "version" : - { - "isDirty" : false, - "major" : 3, - "minor" : 22, - "patch" : 1, - "string" : "3.22.1-g37088a8", - "suffix" : "g37088a8" - } - }, - "objects" : - [ - { - "jsonFile" : "codemodel-v2-95b6204aa3712c2f8293.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - }, - { - "jsonFile" : "cache-v2-920dacdb871097de2130.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - { - "jsonFile" : "cmakeFiles-v1-f1661dab2653e3c04b8e.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - } - ], - "reply" : - { - "client-agp" : - { - "cache-v2" : - { - "jsonFile" : "cache-v2-920dacdb871097de2130.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - "cmakeFiles-v1" : - { - "jsonFile" : "cmakeFiles-v1-f1661dab2653e3c04b8e.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - }, - "codemodel-v2" : - { - "jsonFile" : "codemodel-v2-95b6204aa3712c2f8293.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - } - } - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeCache.txt b/android/app/.cxx/Debug/4s676p3c/x86/CMakeCache.txt deleted file mode 100644 index 5de09a9..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/CMakeCache.txt +++ /dev/null @@ -1,405 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 -# It was generated by CMake: /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//No help, variable specified on the command line. -ANDROID_ABI:UNINITIALIZED=x86 - -//No help, variable specified on the command line. -ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 - -//No help, variable specified on the command line. -ANDROID_PLATFORM:UNINITIALIZED=android-26 - -//Path to a program. -CMAKE_ADDR2LINE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line - -//No help, variable specified on the command line. -CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=x86 - -//No help, variable specified on the command line. -CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 - -//Archiver -CMAKE_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Flags used by the compiler during all build types. -CMAKE_ASM_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_ASM_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds. -CMAKE_ASM_FLAGS_RELEASE:STRING= - -//Choose the type of build, options are: None Debug Release RelWithDebInfo -// MinSizeRel ... -CMAKE_BUILD_TYPE:STRING=Debug - -//LLVM archiver -CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Generate index for LLVM archive -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Flags used by the compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_CXX_FLAGS_DEBUG:STRING= - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_CXX_FLAGS_RELEASE:STRING= - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C++ applications. -CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm - -//LLVM archiver -CMAKE_C_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Generate index for LLVM archive -CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Flags used by the compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_C_FLAGS_DEBUG:STRING= - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_C_FLAGS_RELEASE:STRING= - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C applications. -CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm - -//Path to a program. -CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND - -//Flags used by the linker. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//No help, variable specified on the command line. -CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//No help, variable specified on the command line. -CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86 - -//Path to a program. -CMAKE_LINKER:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld - -//No help, variable specified on the command line. -CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja - -//Flags used by the linker during the creation of modules. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=Project - -//Ranlib -CMAKE_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Path to a program. -CMAKE_READELF:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf - -//No help, variable specified on the command line. -CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86 - -//Flags used by the linker during the creation of dll's. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Strip -CMAKE_STRIP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip - -//No help, variable specified on the command line. -CMAKE_SYSTEM_NAME:UNINITIALIZED=Android - -//No help, variable specified on the command line. -CMAKE_SYSTEM_VERSION:UNINITIALIZED=26 - -//The CMake toolchain file -CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Value Computed by CMake -Project_BINARY_DIR:STATIC=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 - -//Value Computed by CMake -Project_IS_TOP_LEVEL:STATIC=ON - -//Value Computed by CMake -Project_SOURCE_DIR:STATIC=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_ADDR2LINE -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES -CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES -CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_DLLTOOL -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 -//Path to cache edit program executable. -CMAKE_EDIT_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake -//Whether to issue deprecation errors for macros and functions. -CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Ninja -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_READELF -CMAKE_READELF-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//Suppress errors that are meant for the author of the CMakeLists.txt -// files. -CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE -//Suppress Warnings that are meant for the author of the CMakeLists.txt -// files. -CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//Whether to issue warnings for deprecated functionality. -CMAKE_WARN_DEPRECATED:INTERNAL=FALSE - diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake deleted file mode 100644 index 53c7c7c..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +++ /dev/null @@ -1,72 +0,0 @@ -set(CMAKE_C_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "Clang") -set(CMAKE_C_COMPILER_VERSION "17.0.2") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") -set(CMAKE_C17_COMPILE_FEATURES "c_std_17") -set(CMAKE_C23_COMPILE_FEATURES "c_std_23") - -set(CMAKE_C_PLATFORM_ID "Linux") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_C_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_C_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_C_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "4") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/i686-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/i386;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake deleted file mode 100644 index 7940e01..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,83 +0,0 @@ -set(CMAKE_CXX_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "Clang") -set(CMAKE_CXX_COMPILER_VERSION "17.0.2") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") -set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") -set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") - -set(CMAKE_CXX_PLATFORM_ID "Linux") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_CXX_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "4") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/i686-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/i386;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index edd4a3647d3c06d5d28cfcaf11bf082fdb0551c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5828 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 S2qoFQ&Tbr)zbBP-cK-p;S0)+& diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index efba7088e248e7f7580ccc43f66c20c16bb89891..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5984 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 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake deleted file mode 100644 index 46bf291..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Darwin-24.3.0") -set(CMAKE_HOST_SYSTEM_NAME "Darwin") -set(CMAKE_HOST_SYSTEM_VERSION "24.3.0") -set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64") - -include("/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake") - -set(CMAKE_SYSTEM "Android-1") -set(CMAKE_SYSTEM_NAME "Android") -set(CMAKE_SYSTEM_VERSION "1") -set(CMAKE_SYSTEM_PROCESSOR "i686") - -set(CMAKE_CROSSCOMPILING "TRUE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c deleted file mode 100644 index 41b99d7..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +++ /dev/null @@ -1,803 +0,0 @@ -#ifdef __cplusplus -# error "A C++ compiler has been selected for C." -#endif - -#if defined(__18CXX) -# define ID_VOID_MAIN -#endif -#if defined(__CLASSIC_C__) -/* cv-qualifiers did not exist in K&R C */ -# define const -# define volatile -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#if !defined(__STDC__) && !defined(__clang__) -# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) -# define C_VERSION "90" -# else -# define C_VERSION -# endif -#elif __STDC_VERSION__ > 201710L -# define C_VERSION "23" -#elif __STDC_VERSION__ >= 201710L -# define C_VERSION "17" -#elif __STDC_VERSION__ >= 201000L -# define C_VERSION "11" -#elif __STDC_VERSION__ >= 199901L -# define C_VERSION "99" -#else -# define C_VERSION "90" -#endif -const char* info_language_standard_default = - "INFO" ":" "standard_default[" C_VERSION "]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ -#if (defined(__clang__) || defined(__GNUC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) && !defined(_MSC_VER) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o deleted file mode 100644 index 9310552de2220fe57f8bc45400db0b4e002fad4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3924 zcmdT{ZD?Cn7=CY(o7^^CW;^FTIwgMBkKUW6Y0_;n+tqYd+I4Iz=(>^JCO2ufBsaTB zW+qdoQ{31DKM@tgANouEp+7|ZF@y;sB8Y8O-sUsKH9L%N;Grw$KyX~=h%ApL+|?mr>442 zO=%ydFR<>z^diHl6Ye~ttvu7!?VnmaIkos7Ra01UTI1E1UUtk4&Yl6ypI$tfUObgv zJpO^U@9f0(@##%jyHr^yTF&fP(JUACk*ll}&05}eO0$y-<$6OXO(#1)EBI>7Eayxo zm&sXqvtF#t4y1&|YSgT9b-^xITej)#`?v< zHppx^yajA10d`{5?d#++Z6*API&N^GQ%9Pf;K*8kgdJ{N$F4+Sm3%_Q&RvORB0Ye+ z5kQHU-CJ@cz2izm9}9d5h-$Hmrxlg&1NlcV1-4;YP3kC?1(o19KnsQT0QSSs^3^Oz z9V3`R^ROLd+iN}%hiz`0xXAD|EPQyOx{SjbD9HCVCgmGQe6aozOzz4q3LTfeY=xeD zKVVXRhr}OX$#*@49+$qqN#6)G%Ab(mFBMi!oDZ9 zFP4d2Up2*h0bRZ)8{e@QcAZK641yZajsmn1jyhV-Irc&>+BXmz8j8o_!?#9nsT6F? zb9S)?DApkKmx`>LGpklEYL}xzD%;ZlFau@6|;S~RyYKfE!Y$PFZu$-&%EY#?q8 zWn&u?8;A0PbAvG}YYpb&gUR?!G&W@(w8qB7Tb#)0Su$p-cpt`rx>+`MIQ9_)w5x`h zE7bAs`seME)n78pX2Eh~U4~hy7<#tRFz&GC>IEZFO{S8S!K~33P8x28alG`ZF{sDm z`apkSFcljfHiwO+v}1%_IF!kZ?%X+gPiEJ|o^)pSJv-8w3@w!Nc1AXfrX-H3Dae-5 zl(<(kIX=)js?4;vj5hN>`v#S8pzx}Z=@ha&9VW**R9|p#)&H*_n&@)Ary%9NounMq zl-{mD-~=x42IzP&@w=eWi1w&&>k8HP0z8ObhAQB8Li{3~kE|d7mJx<>vHJrP9*2)- z|H+`DhB~z`)kt045X`HQ+tlz~Y9v@_lh(Fuy}^0d;r1}VAIYozEfX&@T2dz*{lV~U zJ{1LVGA~{0(FEw%zq~d-eoMXNC)F#$+TAA0lWVH|w2nRy9(-OsSiy}`(q&*C69PBo zZVJ-p%j6C^zf2C(8$yn|{u=FCW?w;l%jA_5f!vATU)FbY5N&2eXWPz*Uzt2(7m>rb zg6L63UIbFa_Wup>+eQkCM+j1IJUs%hV1#kKkgsCIr;afq?x@h;DR5fgUPjb;P{<8N z1b>PV>z)((R~WI6w}k$z(0|H^eSItRKMVZ@M(nQ>=g)C^8BuQ^Blg?Ri271O&)GjG1kd(_2R;Gt=YayVAQeyGOT9rZcUw z;XI%Z;H>{6CGoBBsate{?-g{CB)bv{=J_r&HUCy_@;vj~WIBW4^&5fA?^+VSXQuZs zkcvhyn4)-p!@yn)u7~46MSBs9!U-V+Z`yA^K=yf@zIOT?RKi&yc)LrZAIyQVGP6PJj0Ra?AeK+q2-k=W+~r7op?t+k+wVI^cOZ_gbbm@d3}Z#bc5G z^!EBakAC+qFA&5w9^VTTYT79uicqi*(>gHB%X_sOethpG$#19<2U>_!#q$K diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp deleted file mode 100644 index 25c62a8..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +++ /dev/null @@ -1,791 +0,0 @@ -/* This source file must have a .cpp extension so that all C++ compilers - recognize the extension without flags. Borland does not know .cxx for - example. */ -#ifndef __cplusplus -# error "A C compiler has been selected for C++." -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__COMO__) -# define COMPILER_ID "Comeau" - /* __COMO_VERSION__ = VRR */ -# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) -# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) - -#elif defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L -# if defined(__INTEL_CXX11_MODE__) -# if defined(__cpp_aggregate_nsdmi) -# define CXX_STD 201402L -# else -# define CXX_STD 201103L -# endif -# else -# define CXX_STD 199711L -# endif -#elif defined(_MSC_VER) && defined(_MSVC_LANG) -# define CXX_STD _MSVC_LANG -#else -# define CXX_STD __cplusplus -#endif - -const char* info_language_standard_default = "INFO" ":" "standard_default[" -#if CXX_STD > 202002L - "23" -#elif CXX_STD > 201703L - "20" -#elif CXX_STD >= 201703L - "17" -#elif CXX_STD >= 201402L - "14" -#elif CXX_STD >= 201103L - "11" -#else - "98" -#endif -"]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ -#if (defined(__clang__) || defined(__GNUC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) && !defined(_MSC_VER) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o deleted file mode 100644 index 76432df37b6b61f70c2e6d975b1be0efd7bd1acd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3960 zcmdT{U1%Fu7CxiV$YV=Z>SWubjVa2KE^c={BgwL@B&M~K$XN$F4oM72O_&`^BiXH_ zQAeZTwCVp(65N+STguXhJ~S^&31y#lVOa`WwhyJdltLHwp_GL{yOjNXG3+kc@66n* zjGUVGwHNOF&fk3Z+&lN4k)AEh&nk*SvMHp}ZH;J8GV~Mz7@^@FFVWJ~n=gK?f63mn z&%dt%HWpGF3;Ktp|FZ4F(k8>km0(=bclKwX#%yR(~N5*xv zw0X6(xl!7D@dN$*@8(X-E*>nqjn-P-@s^L&?Pl#f1;$q0_N%VfSe{>NcGiW__R6cv zLT>wZvtoM{tKwAcPTgP5O$v{*?mNx)n%iu5eTyf~a}Gpzqd$Z`fqoLbCjsk%FvdY7iA@7ldLJ*4bR5XA~Kx9ec?kQUp6ZBUfCT}1JHuubAk zXg`8Ll-N&d`r%{}mOd7f$%i581&DLI9=TUO-M=G<9tiEBwV5VL8kl!yVtS97W+OjB zl+q~HH4qIJdQ^G=ha!$OVhoPQKKfOl5&co%1`x>;DK9A+9|TgTF~sLF+)Y{ukT`~C z6H4DaK=0Fk25?~RKF~i6E#&w(rm4KYdQ%3m1qO<}i9z`TG~Ro48bdHgiu6k|mc6i3 z>;nwSU!d_jx*dBT>95FG_6D*4;Mjjb<9B&Gc9`_*GM2p@JMep0_Mba zT=InXfn$%ZEZyX|TQMJyie1zH)}yBW9jZ?O24mOOH(6Cw4yMFkF>3Mt=K%e@e>Bsq zcA4p{>b6b0QtRL@j;^{5XS88A?V97s+)TUGGL7>3x_Q)D z>D0_Zdt!2;HC8s)ixXxr%Pekx+Z;3Uc_TMk8=K4)i+0hxJu$K%ti>bCnmKi9=A3nU z?$MHU=G@7WWzkx*>RPgdgqo}!p~giclz1mQNX^<>JGQv*EFfWkcnM@ZI-ko2^GZtt z8;uyBY_C@4;R1Qi6P+~=cjfzf0O$vNe9@FAPmyv-SN5jj@hdpj!?1DZ#@B^r()!D> z!-HDvG9rlHfGJJ}Mtr6IlOAN?yMeB3cdX#Xy@~Ot-qIAUZ$ST(mhNc7iK>>K(vruu zbfOl~_9j+gf#U^$nyzZ2J%MId8$h6%NKVBxq`~yP?e&Nnr+?mxsQ9X?#KnkP9$lfk z0$C0!X;KVOy~97W#V>a>G^=zkeIX)vA9rHD#Ym1k+hyVBIzB`R`g@PA)9D^PMI$|W znsy7m@c9A4r-TLuD2VGv!8-)KKScpgKbB*$K1k#-axj|04}S~dD@Y0kP?6HdYYFil zM*KXuPw4kE;x%U(!8B0~&xp8-!u|>)CV5TRuM7Jx8Fvu9FYKQP`{#^U z&)35KKVcuhz9?AV4o2iV%!u`8gq~wWo`-~fT;Mr@s{%U$GvJMJJoEE0HY!}~EPG|e zb1snKqoxoS=7xhRVR%m6sMx-31XZM4m%gF!Y!`Y*2@?~xeQzs$w>WN7(!(i&bU7V7 z?gqKtS>}RBUWySEye+wP%dXLMeaARF^ceiDfAclvS8V3SRX zI8M0p_@)a-K?VpE*Mj~GJsLL+J*bN!PF9W2pkpeU7WOIJ3%&wy#w?Bo8tK)IG8j4~&Vl=9P%qx04=3D3jx^4jFQUqNPG$v3qP-%Z3s`TPhU z^Gd!UJRjwo-iB`w_9)+_2p>vSmoKOhk^GKs!#B4jzn3C>T%TlqKZG33@2A`Fam|Y6 z$A5QtoxFcsA|>B%ATu9de{TGfS-wNo*~g7h%B(*Fa<&{teH_XOr6v)Wu(iVlc9gdr(Uw_L{sX z!p1S&#v!mQr&>i^G4O-~=f{m}ZqGWP$bH@ozg))yf-iUo!`tBdxm18W7q@*|_}+@} c;ono2kN@Gw-1xaEd=Hp}c{m@Qm+$cZ0ohYm6951J diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/TargetDirectories.txt b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index 15fd9a6..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,2 +0,0 @@ -/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/edit_cache.dir -/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/rebuild_cache.dir diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/cmake.check_cache b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd73..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/rules.ninja b/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/rules.ninja deleted file mode 100644 index fd37716..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/CMakeFiles/rules.ninja +++ /dev/null @@ -1,45 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.22 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configurations: Debug -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja -t targets - description = All primary targets available: - diff --git a/android/app/.cxx/Debug/4s676p3c/x86/additional_project_files.txt b/android/app/.cxx/Debug/4s676p3c/x86/additional_project_files.txt deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json b/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json deleted file mode 100644 index 5e59a91..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "buildFiles": [ - "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" - ], - "cleanCommandsComponents": [ - [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", - "clean" - ] - ], - "buildTargetsCommandComponents": [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", - "{LIST_OF_TARGETS_TO_BUILD}" - ], - "libraries": {}, - "toolchains": { - "toolchain": { - "cCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld", - "cppCompilerExecutable": "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [] -} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json b/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json deleted file mode 100644 index 984990b..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "buildFiles": [ - "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" - ], - "cleanCommandsComponents": [ - [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", - "clean" - ] - ], - "buildTargetsCommandComponents": [ - "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja", - "-C", - "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86", - "{LIST_OF_TARGETS_TO_BUILD}" - ], - "libraries": {} -} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/build.ninja b/android/app/.cxx/Debug/4s676p3c/x86/build.ninja deleted file mode 100644 index 908e700..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/build.ninja +++ /dev/null @@ -1,112 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.22 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configurations: Debug -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - - -############################################# -# Set configuration variable for custom commands. - -CONFIGURATION = Debug -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include CMakeFiles/rules.ninja - -# ============================================================================= - -############################################# -# Logical path to working directory; prefix for absolute paths. - -cmake_ninja_workdir = /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/ - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 - DESC = Running CMake cache editor... - pool = console - restat = 1 - -build edit_cache: phony CMakeFiles/edit_cache.util - - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 && /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 - -build rebuild_cache: phony CMakeFiles/rebuild_cache.util - -# ============================================================================= -# Target aliases. - -# ============================================================================= -# Folder targets. - -# ============================================================================= - -############################################# -# Folder: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 - -build all: phony - -# ============================================================================= -# Built-in targets - - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake - pool = console - - -############################################# -# A missing CMake input file is not an error. - -build /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony - - -############################################# -# Clean all the built files. - -build clean: CLEAN - - -############################################# -# Print all primary targets available. - -build help: HELP - - -############################################# -# Make the all target the default. - -default all diff --git a/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt b/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt deleted file mode 100644 index ec6a72a..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt +++ /dev/null @@ -1 +0,0 @@ -/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/cmake_install.cmake b/android/app/.cxx/Debug/4s676p3c/x86/cmake_install.cmake deleted file mode 100644 index 3ec8b80..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/cmake_install.cmake +++ /dev/null @@ -1,54 +0,0 @@ -# Install script for directory: /Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Debug") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "0") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -# Set default install directory permissions. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin deleted file mode 100644 index aa45397..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/configure_fingerprint.bin +++ /dev/null @@ -1,28 +0,0 @@ -C/C++ Structured Logo -m -k/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/additional_project_files.txtC -A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  p2l -j -h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build.json  2 p2q -o -m/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/android_gradle_build_mini.json  2 2^ -\ -Z/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja  2 彐2b -` -^/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build.ninja.txt  2g -e -c/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/build_file_index.txt  2 P 2h -f -d/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json  2l -j -h/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/compile_commands.json.bin  2 r -p -n/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt  2 - 2e -c -a/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json  2  ( 2j -h -f/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt  2  ] 2T -R -P/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ؄2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt b/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt deleted file mode 100644 index 2aed5c8..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/metadata_generation_command.txt +++ /dev/null @@ -1,20 +0,0 @@ - -H/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy --DCMAKE_SYSTEM_NAME=Android --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_SYSTEM_VERSION=26 --DANDROID_PLATFORM=android-26 --DANDROID_ABI=x86 --DCMAKE_ANDROID_ARCH_ABI=x86 --DANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 --DCMAKE_ANDROID_NDK=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 --DCMAKE_TOOLCHAIN_FILE=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake --DCMAKE_MAKE_PROGRAM=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86 --DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86 --DCMAKE_BUILD_TYPE=Debug --B/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86 --GNinja --Wno-dev ---no-warn-unused-cli - Build command args: [] - Version: 2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json b/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json deleted file mode 100644 index e799de8..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt b/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt deleted file mode 100644 index ec94a09..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86/symbol_folder_index.txt +++ /dev/null @@ -1 +0,0 @@ -/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86 \ No newline at end of file diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cache-v2 b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cache-v2 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cache-v2-2b5d080db4293a9c0f40.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cache-v2-2b5d080db4293a9c0f40.json deleted file mode 100644 index 54f6d66..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cache-v2-2b5d080db4293a9c0f40.json +++ /dev/null @@ -1,1391 +0,0 @@ -{ - "entries" : - [ - { - "name" : "ANDROID_ABI", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "x86_64" - }, - { - "name" : "ANDROID_NDK", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" - }, - { - "name" : "ANDROID_PLATFORM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "android-26" - }, - { - "name" : "CMAKE_ADDR2LINE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" - }, - { - "name" : "CMAKE_ANDROID_ARCH_ABI", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "x86_64" - }, - { - "name" : "CMAKE_ANDROID_NDK", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125" - }, - { - "name" : "CMAKE_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_ASM_FLAGS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_ASM_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_ASM_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_BUILD_TYPE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." - } - ], - "type" : "STRING", - "value" : "Debug" - }, - { - "name" : "CMAKE_CACHEFILE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "This is the directory where this CMakeCache.txt was created" - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64" - }, - { - "name" : "CMAKE_CACHE_MAJOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Major version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "3" - }, - { - "name" : "CMAKE_CACHE_MINOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Minor version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "22" - }, - { - "name" : "CMAKE_CACHE_PATCH_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Patch version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake" - }, - { - "name" : "CMAKE_CPACK_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to cpack program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack" - }, - { - "name" : "CMAKE_CTEST_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to ctest program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest" - }, - { - "name" : "CMAKE_CXX_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "(This variable does not exist and should not be used)" - } - ], - "type" : "UNINITIALIZED", - "value" : "" - }, - { - "name" : "CMAKE_CXX_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "LLVM archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_CXX_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Generate index for LLVM archive" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_CXX_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_STANDARD_LIBRARIES", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Libraries linked by default with all C++ applications." - } - ], - "type" : "STRING", - "value" : "-latomic -lm" - }, - { - "name" : "CMAKE_C_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "(This variable does not exist and should not be used)" - } - ], - "type" : "UNINITIALIZED", - "value" : "" - }, - { - "name" : "CMAKE_C_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "LLVM archiver" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" - }, - { - "name" : "CMAKE_C_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Generate index for LLVM archive" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_C_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during debug builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_C_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the compiler during release builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_C_STANDARD_LIBRARIES", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Libraries linked by default with all C applications." - } - ], - "type" : "STRING", - "value" : "-latomic -lm" - }, - { - "name" : "CMAKE_DLLTOOL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "CMAKE_DLLTOOL-NOTFOUND" - }, - { - "name" : "CMAKE_EDIT_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to cache edit program executable." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake" - }, - { - "name" : "CMAKE_ERROR_DEPRECATED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Whether to issue deprecation errors for macros and functions." - } - ], - "type" : "INTERNAL", - "value" : "FALSE" - }, - { - "name" : "CMAKE_EXECUTABLE_FORMAT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Executable file format" - } - ], - "type" : "INTERNAL", - "value" : "ELF" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "ON" - }, - { - "name" : "CMAKE_EXTRA_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of external makefile project generator." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator." - } - ], - "type" : "INTERNAL", - "value" : "Ninja" - }, - { - "name" : "CMAKE_GENERATOR_INSTANCE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Generator instance identifier." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_PLATFORM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator platform." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_TOOLSET", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator toolset." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_HOME_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Source directory with the top level CMakeLists.txt file for this project" - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - { - "name" : "CMAKE_INSTALL_PREFIX", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install path prefix, prepended onto install directories." - } - ], - "type" : "PATH", - "value" : "/usr/local" - }, - { - "name" : "CMAKE_INSTALL_SO_NO_EXE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install .so files without execute permission." - } - ], - "type" : "INTERNAL", - "value" : "0" - }, - { - "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86_64" - }, - { - "name" : "CMAKE_LINKER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" - }, - { - "name" : "CMAKE_MAKE_PROGRAM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_NM", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" - }, - { - "name" : "CMAKE_NUMBER_OF_MAKEFILES", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "number of local generators" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_OBJCOPY", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" - }, - { - "name" : "CMAKE_OBJDUMP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" - }, - { - "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Platform information initialized" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_PROJECT_DESCRIPTION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_HOMEPAGE_URL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_NAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "Project" - }, - { - "name" : "CMAKE_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Ranlib" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" - }, - { - "name" : "CMAKE_READELF", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" - }, - { - "name" : "CMAKE_ROOT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake installation." - } - ], - "type" : "INTERNAL", - "value" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" - }, - { - "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86_64" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of dll's." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SKIP_INSTALL_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_SKIP_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when using shared libraries." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STRIP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Strip" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" - }, - { - "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." - } - ], - "type" : "INTERNAL", - "value" : "TRUE" - }, - { - "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." - } - ], - "type" : "INTERNAL", - "value" : "TRUE" - }, - { - "name" : "CMAKE_SYSTEM_NAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "Android" - }, - { - "name" : "CMAKE_SYSTEM_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "UNINITIALIZED", - "value" : "26" - }, - { - "name" : "CMAKE_TOOLCHAIN_FILE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "The CMake toolchain file" - } - ], - "type" : "FILEPATH", - "value" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "name" : "CMAKE_UNAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "uname command" - } - ], - "type" : "INTERNAL", - "value" : "/usr/bin/uname" - }, - { - "name" : "CMAKE_VERBOSE_MAKEFILE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." - } - ], - "type" : "BOOL", - "value" : "FALSE" - }, - { - "name" : "CMAKE_WARN_DEPRECATED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Whether to issue warnings for deprecated functionality." - } - ], - "type" : "INTERNAL", - "value" : "FALSE" - }, - { - "name" : "Project_BINARY_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64" - }, - { - "name" : "Project_IS_TOP_LEVEL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "ON" - }, - { - "name" : "Project_SOURCE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - } - ], - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-9a2bf79ff0a2a89eb505.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-9a2bf79ff0a2a89eb505.json deleted file mode 100644 index bc82f99..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-9a2bf79ff0a2a89eb505.json +++ /dev/null @@ -1,799 +0,0 @@ -{ - "inputs" : - [ - { - "path" : "CMakeLists.txt" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android-legacy.toolchain.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/platforms.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Determine.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Initialize.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Determine-Compiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/hooks/pre/Android-Clang.cmake" - }, - { - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/flags.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" - }, - { - "isGenerated" : true, - "path" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" - } - ], - "kind" : "cmakeFiles", - "paths" : - { - "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64", - "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - "version" : - { - "major" : 1, - "minor" : 0 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/codemodel-v2-852402f1316f6f65a056.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/codemodel-v2-852402f1316f6f65a056.json deleted file mode 100644 index 29446e0..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/codemodel-v2-852402f1316f6f65a056.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "configurations" : - [ - { - "directories" : - [ - { - "build" : ".", - "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", - "minimumCMakeVersion" : - { - "string" : "3.6.0" - }, - "projectIndex" : 0, - "source" : "." - } - ], - "name" : "Debug", - "projects" : - [ - { - "directoryIndexes" : - [ - 0 - ], - "name" : "Project" - } - ], - "targets" : [] - } - ], - "kind" : "codemodel", - "paths" : - { - "build" : "/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64", - "source" : "/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy" - }, - "version" : - { - "major" : 2, - "minor" : 3 - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json deleted file mode 100644 index 3a67af9..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "backtraceGraph" : - { - "commands" : [], - "files" : [], - "nodes" : [] - }, - "installers" : [], - "paths" : - { - "build" : ".", - "source" : "." - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0481.json b/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0481.json deleted file mode 100644 index 0148bde..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/.cmake/api/v1/reply/index-2025-03-09T19-31-31-0481.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "cmake" : - { - "generator" : - { - "multiConfig" : false, - "name" : "Ninja" - }, - "paths" : - { - "cmake" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake", - "cpack" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack", - "ctest" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest", - "root" : "/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" - }, - "version" : - { - "isDirty" : false, - "major" : 3, - "minor" : 22, - "patch" : 1, - "string" : "3.22.1-g37088a8", - "suffix" : "g37088a8" - } - }, - "objects" : - [ - { - "jsonFile" : "codemodel-v2-852402f1316f6f65a056.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - }, - { - "jsonFile" : "cache-v2-2b5d080db4293a9c0f40.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - { - "jsonFile" : "cmakeFiles-v1-9a2bf79ff0a2a89eb505.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - } - ], - "reply" : - { - "client-agp" : - { - "cache-v2" : - { - "jsonFile" : "cache-v2-2b5d080db4293a9c0f40.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - "cmakeFiles-v1" : - { - "jsonFile" : "cmakeFiles-v1-9a2bf79ff0a2a89eb505.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - }, - "codemodel-v2" : - { - "jsonFile" : "codemodel-v2-852402f1316f6f65a056.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - } - } - } -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeCache.txt b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeCache.txt deleted file mode 100644 index 63f4eca..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeCache.txt +++ /dev/null @@ -1,405 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64 -# It was generated by CMake: /Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//No help, variable specified on the command line. -ANDROID_ABI:UNINITIALIZED=x86_64 - -//No help, variable specified on the command line. -ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 - -//No help, variable specified on the command line. -ANDROID_PLATFORM:UNINITIALIZED=android-26 - -//Path to a program. -CMAKE_ADDR2LINE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line - -//No help, variable specified on the command line. -CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=x86_64 - -//No help, variable specified on the command line. -CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/juan/Library/Android/sdk/ndk/26.1.10909125 - -//Archiver -CMAKE_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Flags used by the compiler during all build types. -CMAKE_ASM_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_ASM_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds. -CMAKE_ASM_FLAGS_RELEASE:STRING= - -//Choose the type of build, options are: None Debug Release RelWithDebInfo -// MinSizeRel ... -CMAKE_BUILD_TYPE:STRING=Debug - -//LLVM archiver -CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Generate index for LLVM archive -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Flags used by the compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_CXX_FLAGS_DEBUG:STRING= - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_CXX_FLAGS_RELEASE:STRING= - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C++ applications. -CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm - -//LLVM archiver -CMAKE_C_COMPILER_AR:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar - -//Generate index for LLVM archive -CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Flags used by the compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_C_FLAGS_DEBUG:STRING= - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_C_FLAGS_RELEASE:STRING= - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C applications. -CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm - -//Path to a program. -CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND - -//Flags used by the linker. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//No help, variable specified on the command line. -CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//No help, variable specified on the command line. -CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86_64 - -//Path to a program. -CMAKE_LINKER:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld - -//No help, variable specified on the command line. -CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ninja - -//Flags used by the linker during the creation of modules. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=Project - -//Ranlib -CMAKE_RANLIB:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib - -//Path to a program. -CMAKE_READELF:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf - -//No help, variable specified on the command line. -CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/juan/Proyectos/adguard-home-manager/build/app/intermediates/cxx/Debug/4s676p3c/obj/x86_64 - -//Flags used by the linker during the creation of dll's. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Strip -CMAKE_STRIP:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip - -//No help, variable specified on the command line. -CMAKE_SYSTEM_NAME:UNINITIALIZED=Android - -//No help, variable specified on the command line. -CMAKE_SYSTEM_VERSION:UNINITIALIZED=26 - -//The CMake toolchain file -CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Value Computed by CMake -Project_BINARY_DIR:STATIC=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64 - -//Value Computed by CMake -Project_IS_TOP_LEVEL:STATIC=ON - -//Value Computed by CMake -Project_SOURCE_DIR:STATIC=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_ADDR2LINE -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/Users/juan/Proyectos/adguard-home-manager/android/app/.cxx/Debug/4s676p3c/x86_64 -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES -CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES -CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_DLLTOOL -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 -//Path to cache edit program executable. -CMAKE_EDIT_COMMAND:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/bin/ccmake -//Whether to issue deprecation errors for macros and functions. -CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Ninja -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/Users/juan/flutter/packages/flutter_tools/gradle/src/main/groovy -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_READELF -CMAKE_READELF-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/Users/juan/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//Suppress errors that are meant for the author of the CMakeLists.txt -// files. -CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE -//Suppress Warnings that are meant for the author of the CMakeLists.txt -// files. -CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//Whether to issue warnings for deprecated functionality. -CMAKE_WARN_DEPRECATED:INTERNAL=FALSE - diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake deleted file mode 100644 index f2a3233..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +++ /dev/null @@ -1,72 +0,0 @@ -set(CMAKE_C_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "Clang") -set(CMAKE_C_COMPILER_VERSION "17.0.2") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") -set(CMAKE_C17_COMPILE_FEATURES "c_std_17") -set(CMAKE_C23_COMPILE_FEATURES "c_std_23") - -set(CMAKE_C_PLATFORM_ID "Linux") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_C_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_C_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_C_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/x86_64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/x86_64;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake deleted file mode 100644 index 788db59..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,83 +0,0 @@ -set(CMAKE_CXX_COMPILER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "Clang") -set(CMAKE_CXX_COMPILER_VERSION "17.0.2") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") -set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") -set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") - -set(CMAKE_CXX_PLATFORM_ID "Linux") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_CXX_COMPILER_AR "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") -set(CMAKE_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") -set(CMAKE_LINKER "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") -set(CMAKE_MT "") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/x86_64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/x86_64;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android/26;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android;/Users/juan/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index c64b2be383508ad525bfcfa4c9d967cab98de8d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7008 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 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index b6b339d14b87ec4b8dedb69b779399804a7a134c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7176 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 diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake deleted file mode 100644 index 1f4f5dd..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Darwin-24.3.0") -set(CMAKE_HOST_SYSTEM_NAME "Darwin") -set(CMAKE_HOST_SYSTEM_VERSION "24.3.0") -set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64") - -include("/Users/juan/Library/Android/sdk/ndk/26.1.10909125/build/cmake/android.toolchain.cmake") - -set(CMAKE_SYSTEM "Android-1") -set(CMAKE_SYSTEM_NAME "Android") -set(CMAKE_SYSTEM_VERSION "1") -set(CMAKE_SYSTEM_PROCESSOR "x86_64") - -set(CMAKE_CROSSCOMPILING "TRUE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c deleted file mode 100644 index 41b99d7..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +++ /dev/null @@ -1,803 +0,0 @@ -#ifdef __cplusplus -# error "A C++ compiler has been selected for C." -#endif - -#if defined(__18CXX) -# define ID_VOID_MAIN -#endif -#if defined(__CLASSIC_C__) -/* cv-qualifiers did not exist in K&R C */ -# define const -# define volatile -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#if !defined(__STDC__) && !defined(__clang__) -# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) -# define C_VERSION "90" -# else -# define C_VERSION -# endif -#elif __STDC_VERSION__ > 201710L -# define C_VERSION "23" -#elif __STDC_VERSION__ >= 201710L -# define C_VERSION "17" -#elif __STDC_VERSION__ >= 201000L -# define C_VERSION "11" -#elif __STDC_VERSION__ >= 199901L -# define C_VERSION "99" -#else -# define C_VERSION "90" -#endif -const char* info_language_standard_default = - "INFO" ":" "standard_default[" C_VERSION "]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ -#if (defined(__clang__) || defined(__GNUC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) && !defined(_MSC_VER) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o deleted file mode 100644 index 86331b4288bfd131e78c6da1fb2d30554f35ab88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5424 zcmdT|U5pb|6uvXvb_-n!%ZmJ);x8aO?RLBEf&`W<3%iEDAgH*(I@`{67urslPH`bI zJgCTuCJ-MaQ4(S_(eNPpVDN<(9*CM4qA`&K^+Aj#?t?!uVkF`@cg|^Nr-M=6Jj={I z=ey_c{+&DJ$iS9Os-g%cMXVDIiBTaE(FWfq**>uZGR5*O{+A#WxQOQAW*k*W5dK(ZM~e=t$a3bjOw+bJ=~R{9%I5b%GGhRT&?$Q z-?kTrDrs8G>_Njq)!~Gsu8ig|i3Bsrh9!IOZN-Bm!&**+^s^u&pUzhdS0TWV7&W&=+FH{j!;< zL72Irz6F6ODm<_dRfUKIg-Q@Ax22|u;(gdJEi&t{+&N2qNANnJ>RNayuP8GDtP&Um zu4OyC<_WpjAq7SzM7XsTn<6~Z^uq@LnSn;K|0V1{tGfJQzx0=+Xjfgm4WDjQ{S3W) z<I7?hMZjG6cnk1Y)z3)W6Q^EyHZ^fkHhIf z?^?k$3q_-9)~uYN!BLFcrdiC5>Eq>iv3Ri5S+UH0M$V4qSC96t9!=%D(&=<}z9-R@ zGf7cqe=^eON zft15Lg)%WmS=`ndJ^`C}31Ijj;n@%yqH~U_{j);qtDqsovjDY-mGD*+<&)=7V6+yDgsugnp@OF!BRLQqoz^omG!_hmB5PF@VzR%c zb`^BBh@WpZbzpG#^P_-sjGMXwqP+=2AW)yZ>D>VVMcqRmfjrk0SI#M5FT&F4exBqzT{!zhXpsv?KcA3%7qyrV&IMD7 z7|xUNA!0c0MpOXeaWFna_+w6YJ^#Ig=LtuV_Y^`;6V872lm2srquAJuLcHO^alLq5 z&JxakCdd!Z6N-)9F2u(kKPyT8#^dKG`I&O*V+^Lhh(R^Xhu6J>>^L8+c}Ov8vEj8w zJn6#G56|yr!r9NeB=2(RH%^}rJm1*uUSFP9_H&u+4^zwd6_O`C_}3(#^5EZ+{FVp* zg5((FfrPoZ^T|lmITvnRXnDNRv--%0WgHZm4OgYWFOQM|ccW$*MP1A5wyw!5x_;mK zT&TCyZMvH&WYxBs0@S|&$eYX!LxZN-$b&x)94*XQllQqdhx&JeRyJ)z+q`XeCuEb` z-xODVQn+Il$IAw38DrT|OD`FI*PsT2u=Nq4RS%V9OIZTkrE!g=slTmeJ*=x=oxDt& z`AJ%LcJ2`c-Ux`fYZdDD;me2IwGq27!t+n|eDATVIm}Rd0b2CgM>03(s3@HvU@^2f zPOeq(6HU@~2#)dj{v%jiC8o##wWy24E!H*Uy>mE73LFn@ki7B{!2I&>qvFPSV*WVC zY|r>RfMKX0A#eUSZV{jBE9--rB(MBC zpnmZyKJoG1VSAoG{HcpW^^TwGBI|>SB(MB1pnma>`NYS%&h{Mt9>DzKpZS;bkN3Y{ z{4+lB@vM5|V;BkrT!Y>w@U;dcIj`<%K)o0$_S1&^z|-jw#VOGB%l|y({{#8K{g2;F z-u!LA&}RZ3H~m2i`lBZxi`?S(hM)a4`dItW?UZy8V*Br1JmO5Jy#Db;MyneHyjhBK~=w c`1mWw8y~-iyko}zPs#rqYSb}|i;&m;ZvzX2*Z=?k diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp deleted file mode 100644 index 25c62a8..0000000 --- a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +++ /dev/null @@ -1,791 +0,0 @@ -/* This source file must have a .cpp extension so that all C++ compilers - recognize the extension without flags. Borland does not know .cxx for - example. */ -#ifndef __cplusplus -# error "A C compiler has been selected for C++." -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__COMO__) -# define COMPILER_ID "Comeau" - /* __COMO_VERSION__ = VRR */ -# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) -# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) - -#elif defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) -# define COMPILER_ID "ADSP" -#if defined(__VISUALDSPVERSION__) - /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ -# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) -# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L -# if defined(__INTEL_CXX11_MODE__) -# if defined(__cpp_aggregate_nsdmi) -# define CXX_STD 201402L -# else -# define CXX_STD 201103L -# endif -# else -# define CXX_STD 199711L -# endif -#elif defined(_MSC_VER) && defined(_MSVC_LANG) -# define CXX_STD _MSVC_LANG -#else -# define CXX_STD __cplusplus -#endif - -const char* info_language_standard_default = "INFO" ":" "standard_default[" -#if CXX_STD > 202002L - "23" -#elif CXX_STD > 201703L - "20" -#elif CXX_STD >= 201703L - "17" -#elif CXX_STD >= 201402L - "14" -#elif CXX_STD >= 201103L - "11" -#else - "98" -#endif -"]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ -#if (defined(__clang__) || defined(__GNUC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) && !defined(_MSC_VER) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} diff --git a/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/android/app/.cxx/Debug/4s676p3c/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o deleted file mode 100644 index 8e8b9745e57615780f80d9ddc015a979d1896160..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5480 zcmdT{U2GIp6uvXl?GM{7Efql^WQk$`?d(st+bs|*sl}G?7X$;;W}WU%cNcbdmf2ZS zOcbL;t%O8;Fh20$Bl?0d#Gr}B#0S*GpC=!TiN-)e3`Q`KU?Ac-ckY?Jolceb=1q3a zIo~~h_xIdAF}h=$swj+_!nUxcL?~m$NRuDt>@Zsen)}CQuUs0vgUIZ2x5j20*DsA; zLuu?(h?CsTTZ=zwY1c-t&5m9R20>-)G}rz&%^;trMz2kNHoj}y?u|LCQY)2Bdt#() zR11@ggSE2ZOj~wkVn?akm=U01=ZX`8uRBIHZ`k>4-kdfXWoIHWD0<8p$E?;%R<-W+ z?cOzsqq_GtC$a1?(?)+2ao!Sxy354l#3Uz~(xa@6^oF!Z_p+6d9%V@@V`_?x_ihYt z3aQH((-dXAm$8;LfDMKj3q1@BW33M{EwUvX2BZzyaCi%_?I~c#dmnp%tUDHS?L{u` zqE%SiunuvTv<@%VA_$@hW1S(UdH`cxsW~G105(bspNe+AW!3~v%PWAYo8hCJR5~^A_&9wq1{=@4#8%QNe1iZHk?A`Ddd&A>Nzm$ zRL{)J6>CB~54~OLnKBm@4VB%g4YhP!0HFitnr*G-ZL5@zu1mxR29oh)=F#XQwSooT zDXZ)NDLWwaRmzA>8Fe!swW?7&l^GmN4d&NJb9lg_VmC)|AM45Jx}xLM>KkJ*I8W$Z zFIZNgY}T!YoilYfoH56;%DJLZs>aIYW0k&|Z5=jqPBcF>of(==F=E#8qBjTiw=k;8z#$x;HaIj*B8%8y@$F`1x zQ>z{`@`VPR>%O8@G5ab;)hL)Y{5 z+u$;($NKeTQcv_1`Um5gjFE{oV?!bghGVmAcI)1~TMuTR96vOg-FI-$Xg14A)oCkB zHe7l6>>=8a8;g}WS{N4o_{d7qu*>9PcMM)5jZcSz~fkn$1a*l#CeTH5ZV%#aDBut3i*Bsr@2IE zg@mL2H$q-5DCX~-6yQ@5F3-a*fm1%)(GVK0J2t|13;byp_VAp*O9Dp`ZK%B<7{oCy z&GW3l$^TK|=S@l9tGj@mlW_F2LC7BqN`6iVKVM4v&0Wga4-$@kXdQ3({LBhJe@XhZ zb_jKgekACJ)_twODIZ?=p+70<QE|dLADDSz~I-Hjgpgfg;QBu~IRi zZ0fdIHuSvV7&@=3UZoBw#S7}rtLh?T-LdBd@E!~cymUkmo-$?x4lJJD{MzrT;&^oa z4DjdYy+-t^<(T>tyY}}%rnw{Ya^epaIdHjDHHDU0%ud@z1wa1#m*A z%T}zxe<8Rp=T|@QBsO(HtUvkoiEJ@+ASU05s5^|GfQDyFZa;$XPxe&j$fjA5UF3Tp z=yTW=z3)%ra^=r?Kv%*K$4PhYa-n$uf@6HSzGK%V(O(vn2L|!fBX($=rayKx!n{8Li0@w#V3mImmvE;MUnnc zb}DocB6|%O;$_wM{THI>^y_YM?Q6a?*+pTWk(~lh<0p6s>;vadJZ@;8;QTF<>=^^YAR&EO*#T2TZ Date: Mon, 17 Mar 2025 19:11:41 +0100 Subject: [PATCH 232/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index a9dc55c..306048b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.20.2+149 +version: 2.20.3+150 environment: sdk: '>=2.18.1 <3.0.0' From e6a01ac546638527f88bc1099903d531e71aa6fa Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 23 Mar 2025 19:18:43 +0100 Subject: [PATCH 233/236] Disabled predictive back gesture --- lib/config/theme.dart | 44 +++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/lib/config/theme.dart b/lib/config/theme.dart index 93b5365..eba0b9c 100644 --- a/lib/config/theme.dart +++ b/lib/config/theme.dart @@ -27,11 +27,12 @@ ThemeData lightTheme(ColorScheme? dynamicColorScheme) => ThemeData( dialogTheme: DialogTheme( surfaceTintColor: dynamicColorScheme?.surfaceTint ), - pageTransitionsTheme: const PageTransitionsTheme( - builders: { - TargetPlatform.android: PredictiveBackPageTransitionsBuilder() - } - ) + // DISABLE PREDICTIVE BACK GESTURE + // pageTransitionsTheme: const PageTransitionsTheme( + // builders: { + // TargetPlatform.android: PredictiveBackPageTransitionsBuilder() + // } + // ) ); ThemeData darkTheme(ColorScheme? dynamicColorScheme) => ThemeData( @@ -62,11 +63,12 @@ ThemeData darkTheme(ColorScheme? dynamicColorScheme) => ThemeData( dialogTheme: DialogTheme( surfaceTintColor: dynamicColorScheme?.surfaceTint ), - pageTransitionsTheme: const PageTransitionsTheme( - builders: { - TargetPlatform.android: PredictiveBackPageTransitionsBuilder() - } - ) + // DISABLE PREDICTIVE BACK GESTURE + // pageTransitionsTheme: const PageTransitionsTheme( + // builders: { + // TargetPlatform.android: PredictiveBackPageTransitionsBuilder() + // } + // ) ); ThemeData lightThemeOldVersions(MaterialColor primaryColor) => ThemeData( @@ -85,11 +87,12 @@ ThemeData lightThemeOldVersions(MaterialColor primaryColor) => ThemeData( iconColor: Color.fromRGBO(117, 117, 117, 1), ), brightness: Brightness.light, - pageTransitionsTheme: const PageTransitionsTheme( - builders: { - TargetPlatform.android: PredictiveBackPageTransitionsBuilder() - } - ) + // DISABLE PREDICTIVE BACK GESTURE + // pageTransitionsTheme: const PageTransitionsTheme( + // builders: { + // TargetPlatform.android: PredictiveBackPageTransitionsBuilder() + // } + // ) ); ThemeData darkThemeOldVersions(MaterialColor primaryColor) => ThemeData( @@ -111,9 +114,10 @@ ThemeData darkThemeOldVersions(MaterialColor primaryColor) => ThemeData( iconColor: Color.fromRGBO(187, 187, 187, 1), ), brightness: Brightness.dark, - pageTransitionsTheme: const PageTransitionsTheme( - builders: { - TargetPlatform.android: PredictiveBackPageTransitionsBuilder() - } - ) + // DISABLE PREDICTIVE BACK GESTURE + // pageTransitionsTheme: const PageTransitionsTheme( + // builders: { + // TargetPlatform.android: PredictiveBackPageTransitionsBuilder() + // } + // ) ); \ No newline at end of file From 8e5bbdbd4b0e0ec5968184a5abf6c890b14a90b0 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 23 Mar 2025 19:18:51 +0100 Subject: [PATCH 234/236] Fixed update screen header color --- .../settings/update_server/update_screen.dart | 195 +++++++++--------- 1 file changed, 102 insertions(+), 93 deletions(-) diff --git a/lib/screens/settings/update_server/update_screen.dart b/lib/screens/settings/update_server/update_screen.dart index 4ddc959..ae894f8 100644 --- a/lib/screens/settings/update_server/update_screen.dart +++ b/lib/screens/settings/update_server/update_screen.dart @@ -218,101 +218,110 @@ class _Header extends SliverPersistentHeaderDelegate { final iconBottom = _iconMinBottomPositionExent + (iconMaxBottomPositionExent-iconMinBottomPositionExent)*(1-iconPercentage); return LayoutBuilder( - builder: (context, constraints) => Container( - decoration: BoxDecoration( - color: Theme.of(context).colorScheme.surfaceContainerHighest, - ), - child: Align( - alignment: Alignment.topLeft, - child: SafeArea( - bottom: false, - child: Stack( - fit: StackFit.expand, - alignment: Alignment.center, - children: [ - if (Navigator.of(context).canPop()) Positioned( - top: 8, - left: 0, - child: BackButton( - onPressed: () => Navigator.pop(context), - ), - ), - Positioned( - top: 8, - right: 0, - child: IconButton( - onPressed: onRefresh, - icon: const Icon(Icons.refresh_rounded), - tooltip: AppLocalizations.of(context)!.refresh, - ) - ), - Positioned( - bottom: iconBottom, - left: (constraints.maxWidth/2)-(_iconSize/2), - child: Opacity( - opacity: 1-iconPercentage, - child: serversProvider.updateAvailable.loadStatus == LoadStatus.loading - ? const Column( - children: [ - CircularProgressIndicator(), - SizedBox(height: 4) - ], - ) - : Icon( - serversProvider.updateAvailable.data!.canAutoupdate == true - ? Icons.system_update_rounded - : Icons.system_security_update_good_rounded, - size: _iconSize, - color: Theme.of(context).colorScheme.primary, - ), - ), - ), - Positioned( - bottom: mainText, - child: ConstrainedBox( - constraints: BoxConstraints( - maxWidth: constraints.maxWidth-100 - ), - child: Text( - serversProvider.updateAvailable.loadStatus == LoadStatus.loading - ? AppLocalizations.of(context)!.checkingUpdates - : serversProvider.updateAvailable.data!.canAutoupdate == true - ? AppLocalizations.of(context)!.updateAvailable - : AppLocalizations.of(context)!.serverUpdated, - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: textFontSize, - fontWeight: FontWeight.w400 - ), - ), - ) - ), - Positioned( - bottom: versionText, - child: ConstrainedBox( - constraints: BoxConstraints( - maxWidth: constraints.maxWidth-100 - ), - child: Opacity( - opacity: 1-iconPercentage, - child: Text( - serversProvider.updateAvailable.data!.canAutoupdate == true - ? "${AppLocalizations.of(context)!.newVersion}: ${serversProvider.updateAvailable.data!.newVersion ?? 'N/A'}" - : "${AppLocalizations.of(context)!.installedVersion}: ${serversProvider.updateAvailable.data!.currentVersion}", - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w700, - color: Theme.of(context).colorScheme.onSurfaceVariant - ), - ), - ), - ) - ) - ], + builder: (context, constraints) => Stack( + children: [ + Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, ), ), - ), + Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surfaceTint.withOpacity(0.075), + ), + child: Align( + alignment: Alignment.topLeft, + child: SafeArea( + bottom: false, + child: Stack( + fit: StackFit.expand, + alignment: Alignment.center, + children: [ + if (Navigator.of(context).canPop()) Positioned( + top: 8, + left: 0, + child: BackButton( + onPressed: () => Navigator.pop(context), + ), + ), + Positioned( + top: 8, + right: 0, + child: IconButton( + onPressed: onRefresh, + icon: const Icon(Icons.refresh_rounded), + tooltip: AppLocalizations.of(context)!.refresh, + ) + ), + Positioned( + bottom: iconBottom, + left: (constraints.maxWidth/2)-(_iconSize/2), + child: Opacity( + opacity: 1-iconPercentage, + child: serversProvider.updateAvailable.loadStatus == LoadStatus.loading + ? const Column( + children: [ + CircularProgressIndicator(), + SizedBox(height: 4) + ], + ) + : Icon( + serversProvider.updateAvailable.data!.canAutoupdate == true + ? Icons.system_update_rounded + : Icons.system_security_update_good_rounded, + size: _iconSize, + color: Theme.of(context).colorScheme.primary, + ), + ), + ), + Positioned( + bottom: mainText, + child: ConstrainedBox( + constraints: BoxConstraints( + maxWidth: constraints.maxWidth-100 + ), + child: Text( + serversProvider.updateAvailable.loadStatus == LoadStatus.loading + ? AppLocalizations.of(context)!.checkingUpdates + : serversProvider.updateAvailable.data!.canAutoupdate == true + ? AppLocalizations.of(context)!.updateAvailable + : AppLocalizations.of(context)!.serverUpdated, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: textFontSize, + fontWeight: FontWeight.w400 + ), + ), + ) + ), + Positioned( + bottom: versionText, + child: ConstrainedBox( + constraints: BoxConstraints( + maxWidth: constraints.maxWidth-100 + ), + child: Opacity( + opacity: 1-iconPercentage, + child: Text( + serversProvider.updateAvailable.data!.canAutoupdate == true + ? "${AppLocalizations.of(context)!.newVersion}: ${serversProvider.updateAvailable.data!.newVersion ?? 'N/A'}" + : "${AppLocalizations.of(context)!.installedVersion}: ${serversProvider.updateAvailable.data!.currentVersion}", + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w700, + color: Theme.of(context).colorScheme.onSurfaceVariant + ), + ), + ), + ) + ) + ], + ), + ), + ), + ), + ], ), ); } From 52945b04ffe27b447b5eb8def1ecb34bae9ac946 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 23 Mar 2025 19:46:52 +0100 Subject: [PATCH 235/236] Removed flutter displaymode --- .vscode/settings.json | 1 - README.md | 1 - lib/main.dart | 31 +------------------------------ pubspec.lock | 20 ++++++-------------- pubspec.yaml | 1 - 5 files changed, 7 insertions(+), 47 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 553928e..fab9821 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,5 +17,4 @@ "/pubspec.yaml", "/.github/workflows" ], - "dart.flutterRunAdditionalArgs": [ "--no-enable-impeller" ] } \ No newline at end of file diff --git a/README.md b/README.md index 843bff8..1dcbc67 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,6 @@ If you like the project and you want to contribute with the development, you can - [expandable](https://pub.dev/packages/expandable) - [package info plus](https://pub.dev/packages/package_info_plus) - [flutter phoenix](https://pub.dev/packages/flutter_phoenix) -- [flutter displaymode](https://pub.dev/packages/flutter_displaymode) - [flutter launcher icons](https://pub.dev/packages/flutter_launcher_icons) - [flutter native splash](https://pub.dev/packages/flutter_native_splash) - [intl](https://pub.dev/packages/intl) diff --git a/lib/main.dart b/lib/main.dart index 61126da..6402b70 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,7 +5,6 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:provider/provider.dart'; -import 'package:flutter_displaymode/flutter_displaymode.dart'; import 'package:dynamic_color/dynamic_color.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:package_info_plus/package_info_plus.dart'; @@ -197,37 +196,9 @@ void main() async { } } -class Main extends StatefulWidget { +class Main extends StatelessWidget { const Main({super.key}); - @override - State
        createState() => _MainState(); -} - -class _MainState extends State
        { - List modes = []; - DisplayMode? active; - DisplayMode? preferred; - - Future displayMode() async { - try { - modes = await FlutterDisplayMode.supported; - preferred = await FlutterDisplayMode.preferred; - active = await FlutterDisplayMode.active; - await FlutterDisplayMode.setHighRefreshRate(); - setState(() {}); - } catch (_) { - // ---- // - } - } - - @override - void initState() { - displayMode(); - - super.initState(); - } - @override Widget build(BuildContext context) { final appConfigProvider = Provider.of(context); diff --git a/pubspec.lock b/pubspec.lock index d407566..207783c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: archive - sha256: "0c64e928dcbefddecd234205422bcfc2b5e6d31be0b86fef0d0dd48d7b4c9742" + sha256: "7dcbd0f87fe5f61cb28da39a1a8b70dbc106e2fe0516f7836eb7bb2948481a12" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.0.5" args: dependency: transitive description: @@ -254,14 +254,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.0" - flutter_displaymode: - dependency: "direct main" - description: - name: flutter_displaymode - sha256: "42c5e9abd13d28ed74f701b60529d7f8416947e58256e6659c5550db719c57ef" - url: "https://pub.dev" - source: hosted - version: "0.6.0" flutter_dotenv: dependency: "direct main" description: @@ -369,10 +361,10 @@ packages: dependency: transitive description: name: image - sha256: "13d3349ace88f12f4a0d175eb5c12dcdd39d35c4c109a8a13dfeb6d0bd9e31c3" + sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" url: "https://pub.dev" source: hosted - version: "4.5.3" + version: "4.5.4" intl: dependency: "direct main" description: @@ -782,10 +774,10 @@ packages: dependency: "direct main" description: name: sqlite3_flutter_libs - sha256: "7adb4cc96dc08648a5eb1d80a7619070796ca6db03901ff2b6dcb15ee30468f3" + sha256: "1a96b59227828d9eb1463191d684b37a27d66ee5ed7597fcf42eee6452c88a14" url: "https://pub.dev" source: hosted - version: "0.5.31" + version: "0.5.32" stack_trace: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 306048b..a4e32b5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -42,7 +42,6 @@ dependencies: provider: ^6.1.1 sqflite: ^2.3.0 package_info_plus: ^8.0.0 - flutter_displaymode: ^0.6.0 dynamic_color: ^1.7.0 animations: ^2.0.10 device_info_plus: ^11.2.1 From 61b0f724bac65e9ede1b36b6fa9fb55b4e6dec13 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 23 Mar 2025 19:51:58 +0100 Subject: [PATCH 236/236] Updated app version --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index a4e32b5..2fffd97 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -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 # 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: 2.20.3+150 +version: 2.20.4+151 environment: sdk: '>=2.18.1 <3.0.0'