fix and update

This commit is contained in:
lendry
2026-07-05 18:28:25 +03:00
parent ef7f0c5380
commit adbd32fea0
621 changed files with 49 additions and 49691 deletions

View File

@@ -28,6 +28,7 @@ async function bootstrap() {
.build(); .build();
const document = SwaggerModule.createDocument(app, config); const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('docs', app, document, { SwaggerModule.setup('docs', app, document, {
yamlDocumentUrl: '/openapi.yaml',
swaggerOptions: { persistAuthorization: true }, swaggerOptions: { persistAuthorization: true },
customSiteTitle: 'Документация API' customSiteTitle: 'Документация API'
}); });

View File

@@ -40,7 +40,7 @@ import { usePublicSettings } from './public-settings-provider';
import { useToast } from './toast-provider'; import { useToast } from './toast-provider';
import { PinLockModal } from './pin-lock-modal'; import { PinLockModal } from './pin-lock-modal';
import { AppBootstrapScreen } from './app-bootstrap-screen'; import { AppBootstrapScreen } from './app-bootstrap-screen';
import { EMBEDDED_AUTH_MESSAGE, type EmbeddedAuthPayload } from '@/lib/embedded-auth-bridge'; import { EMBEDDED_AUTH_MESSAGE, type EmbeddedAuthPayload, useEmbeddedAuthFallback } from '@/lib/embedded-auth-bridge';
import { usePinIdleLock } from '@/hooks/use-pin-idle-lock'; import { usePinIdleLock } from '@/hooks/use-pin-idle-lock';
import { clearPinIdleWatch, isPinIdleWatchActive, markPinIdleWatch } from '@/lib/pin-idle-storage'; import { clearPinIdleWatch, isPinIdleWatchActive, markPinIdleWatch } from '@/lib/pin-idle-storage';
@@ -145,6 +145,8 @@ export function AuthProvider({ children }: { children: React.ReactNode }) {
const refreshInFlightRef = React.useRef<Promise<void> | null>(null); const refreshInFlightRef = React.useRef<Promise<void> | null>(null);
const initialBootstrapDoneRef = React.useRef(false); const initialBootstrapDoneRef = React.useRef(false);
useEmbeddedAuthFallback();
React.useEffect(() => { React.useEffect(() => {
if (isApiGatewayReady()) { if (isApiGatewayReady()) {
setIsApiReady(true); setIsApiReady(true);

View File

@@ -1,6 +1,22 @@
const API_ORIGIN_PROXY_PREFIX = '/idp-api'; const API_ORIGIN_PROXY_PREFIX = '/idp-api';
const configuredApiUrl = (process.env.NEXT_PUBLIC_API_URL ?? 'http://localhost:3000').replace(/\/$/, ''); const configuredApiUrl = (process.env.NEXT_PUBLIC_API_URL ?? 'http://localhost:3000').replace(/\/$/, '');
const configuredWsUrl = (process.env.NEXT_PUBLIC_WS_URL ?? 'ws://localhost:8085/ws').replace(/\/$/, ''); const configuredWsUrl = (process.env.NEXT_PUBLIC_WS_URL ?? 'ws://localhost:8085/ws').replace(/\/$/, '');
const MOBILE_API_URL_KEY = 'lendry_mobile_api_url';
declare global {
interface Window {
__LENDRY_DIRECT_API_URL__?: string;
}
}
function resolveDirectApiOverride(): string | null {
if (typeof window === 'undefined') return null;
const fromWindow = window.__LENDRY_DIRECT_API_URL__?.trim();
if (fromWindow) return fromWindow.replace(/\/$/, '');
const fromStorage = window.localStorage.getItem(MOBILE_API_URL_KEY)?.trim();
if (fromStorage) return fromStorage.replace(/\/$/, '');
return null;
}
function getServerApiUrl(): string { function getServerApiUrl(): string {
return (process.env.INTERNAL_API_URL ?? configuredApiUrl).replace(/\/$/, ''); return (process.env.INTERNAL_API_URL ?? configuredApiUrl).replace(/\/$/, '');
@@ -26,6 +42,9 @@ function isLocalDevApiUrl(url: string): boolean {
} }
function resolveBrowserApiBaseUrl(): string { function resolveBrowserApiBaseUrl(): string {
const directApi = resolveDirectApiOverride();
if (directApi) return directApi;
// SSR: внутренний URL Docker-сети (api-gateway), не публичный домен. // SSR: внутренний URL Docker-сети (api-gateway), не публичный домен.
if (typeof window === 'undefined') { if (typeof window === 'undefined') {
return getServerApiUrl(); return getServerApiUrl();
@@ -261,7 +280,7 @@ export async function uploadMediaObject(
const apiBase = getApiUrl().replace(/\/$/, ''); const apiBase = getApiUrl().replace(/\/$/, '');
const formData = new FormData(); const formData = new FormData();
formData.append('file', file, file instanceof File ? file.name : 'upload.bin'); formData.append('file', file, file instanceof File ? file.name : 'upload.bin');
const response = await fetch(`${apiBase}/media/upload`, { const response = await platformFetch(`${apiBase}/media/upload`, {
method: 'POST', method: 'POST',
headers: { 'X-Upload-Token': presigned.uploadToken }, headers: { 'X-Upload-Token': presigned.uploadToken },
body: formData body: formData
@@ -272,7 +291,7 @@ export async function uploadMediaObject(
return; return;
} }
const response = await fetch(presigned.uploadUrl, { const response = await platformFetch(presigned.uploadUrl, {
method: 'PUT', method: 'PUT',
headers: { 'Content-Type': contentType }, headers: { 'Content-Type': contentType },
body: file body: file
@@ -473,6 +492,17 @@ export function resetPinRequiredNotification() {
pinNotificationSent = false; pinNotificationSent = false;
} }
let customFetchImpl: typeof fetch | null = null;
/** Tauri/mobile: native HTTP (bypasses WebView CORS and self-signed TLS). */
export function setCustomFetch(fetchImpl: typeof fetch | null) {
customFetchImpl = fetchImpl;
}
function platformFetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {
return (customFetchImpl ?? fetch)(input, init);
}
function notifyPinRequired(sessionId: string) { function notifyPinRequired(sessionId: string) {
if (!pinRequiredHandler || pinNotificationSent) return; if (!pinRequiredHandler || pinNotificationSent) return;
pinNotificationSent = true; pinNotificationSent = true;
@@ -909,7 +939,7 @@ function releaseApiSlot(): void {
/** Liveness: nginx → api-gateway HTTP. */ /** Liveness: nginx → api-gateway HTTP. */
async function probeGatewayAlive(): Promise<boolean> { async function probeGatewayAlive(): Promise<boolean> {
try { try {
const response = await fetch(`${getApiUrl()}/health`, { const response = await platformFetch(`${getApiUrl()}/health`, {
method: 'GET', method: 'GET',
cache: 'no-store', cache: 'no-store',
signal: AbortSignal.timeout(4500) signal: AbortSignal.timeout(4500)
@@ -956,7 +986,7 @@ async function fetchWithGatewayRetry(
for (let attempt = 0; attempt < maxAttempts; attempt++) { for (let attempt = 0; attempt < maxAttempts; attempt++) {
try { try {
assertGatewayCircuitClosed(behavior); assertGatewayCircuitClosed(behavior);
const response = await fetch(url, init); const response = await platformFetch(url, init);
if (GATEWAY_RETRY_STATUS.has(response.status) && attempt + 1 < maxAttempts) { if (GATEWAY_RETRY_STATUS.has(response.status) && attempt + 1 < maxAttempts) {
await sleep(gatewayRetryDelay(attempt)); await sleep(gatewayRetryDelay(attempt));
continue; continue;

View File

@@ -83,7 +83,6 @@ ${BOLD}Lendry ID v${SCRIPT_VERSION}${NC} — установка и управл
./install.sh --fix-all Комплексное исправление: 502, прокси, порты, Nginx ./install.sh --fix-all Комплексное исправление: 502, прокси, порты, Nginx
./install.sh --status Статус сервисов ./install.sh --status Статус сервисов
./install.sh --reset-db Сброс PostgreSQL (новый пароль из .env, данные удалятся) ./install.sh --reset-db Сброс PostgreSQL (новый пароль из .env, данные удалятся)
./install.sh --build-apk Собрать подписанный Android APK (tauri_app → frontend/public/downloads)
./install.sh --remove-nginx Удалить конфиги Nginx IdP ./install.sh --remove-nginx Удалить конфиги Nginx IdP
${BOLD}Режим локальной сети (без интернета / AD-домены .local .lpr):${NC} ${BOLD}Режим локальной сети (без интернета / AD-домены .local .lpr):${NC}
@@ -4473,62 +4472,6 @@ action_fix_all_errors() {
show_status show_status
} }
action_build_tauri_apk() {
local image="${TAURI_APK_IMAGE:-lendry-id-tauri-apk-builder}"
local output_dir="${ROOT_DIR}/apps/frontend/public/downloads"
local output_apk="${output_dir}/lendry-id.apk"
local secrets_dir="${ROOT_DIR}/tauri_app/.secrets"
local public_api public_frontend npm_registry
load_env
public_api="$(env_get PUBLIC_API_URL "http://localhost:3000")"
public_frontend="$(env_get PUBLIC_FRONTEND_URL "http://localhost:3002")"
npm_registry="$(env_get NPM_REGISTRY "https://registry.npmjs.org")"
mkdir -p "${output_dir}" "${secrets_dir}"
chmod 700 "${secrets_dir}" 2>/dev/null || true
echo ""
echo -e "${BOLD}Сборка подписанного Android APK (Tauri)${NC}"
echo " API: ${public_api}"
echo " Frontend: ${public_frontend}"
echo " Выход: ${output_apk}"
echo ""
if [[ "${OFFLINE}" -eq 1 ]]; then
warn "OFFLINE=1: образ APK-builder должен быть уже собран локально"
fi
log "Шаг 1/3: Docker-образ tauri_app (Android SDK + NDK)..."
configure_docker_build_env
docker_cmd build \
-f "${ROOT_DIR}/tauri_app/Dockerfile.apk" \
-t "${image}" \
--build-arg "NPM_REGISTRY=${npm_registry}" \
"${ROOT_DIR}"
log "Шаг 2/3: Сборка release APK с подписью..."
docker_cmd run --rm \
-v "${output_dir}:/out" \
-v "${secrets_dir}:/workspace/tauri_app/.secrets" \
-e "PUBLIC_API_URL=${public_api}" \
-e "PUBLIC_FRONTEND_URL=${public_frontend}" \
-e "VITE_API_URL=${public_api}" \
-e "VITE_FRONTEND_URL=${public_frontend}" \
"${image}"
log "Шаг 3/3: Проверка результата..."
[[ -f "${output_apk}" ]] || fail "APK не найден после сборки: ${output_apk}"
ok "Подписанный APK готов: ${output_apk}"
ls -lh "${output_apk}" 2>/dev/null || true
if [[ -f "${secrets_dir}/signing-credentials.env" ]]; then
warn "Пароли keystore: ${secrets_dir}/signing-credentials.env (не коммитьте в git)"
fi
echo ""
echo " Скачивание на сайте: /download/android"
echo " Перезапустите frontend, если контейнер уже работает: ./install.sh --restart"
}
action_restart() { action_restart() {
load_env load_env
@@ -4556,7 +4499,6 @@ show_menu() {
echo " 3) SSL-сертификаты (обновить / включить custom / Let's Encrypt)" echo " 3) SSL-сертификаты (обновить / включить custom / Let's Encrypt)"
echo " 4) Перезапуск / пересборка контейнеров (+ очистка Docker)" echo " 4) Перезапуск / пересборка контейнеров (+ очистка Docker)"
echo " 11) Миграция БД и пересборка (после git pull)" echo " 11) Миграция БД и пересборка (после git pull)"
echo " 12) Собрать Android APK (Tauri, подписанный → frontend/public/downloads)"
echo " 5) Статус сервисов" echo " 5) Статус сервисов"
echo " 6) Удалить конфиги Nginx IdP" echo " 6) Удалить конфиги Nginx IdP"
echo " 7) Сброс PostgreSQL (если ошибка P1000 / пароль БД)" echo " 7) Сброс PostgreSQL (если ошибка P1000 / пароль БД)"
@@ -4575,7 +4517,6 @@ show_menu() {
3) action_renew_ssl ;; 3) action_renew_ssl ;;
4) action_restart ;; 4) action_restart ;;
11) action_migrate_rebuild ;; 11) action_migrate_rebuild ;;
12) action_build_tauri_apk ;;
5) show_status ;; 5) show_status ;;
6) remove_nginx_configs; ok "Готово" ;; 6) remove_nginx_configs; ok "Готово" ;;
7) action_reset_db; action_restart ;; 7) action_reset_db; action_restart ;;
@@ -4602,7 +4543,6 @@ main() {
renew-ssl) action_renew_ssl ;; renew-ssl) action_renew_ssl ;;
restart) action_restart ;; restart) action_restart ;;
migrate-rebuild) action_migrate_rebuild ;; migrate-rebuild) action_migrate_rebuild ;;
build-apk) action_build_tauri_apk ;;
fix-host-nginx|fix-docker-nginx) action_fix_docker_nginx ;; fix-host-nginx|fix-docker-nginx) action_fix_docker_nginx ;;
docker-prune) action_docker_prune ;; docker-prune) action_docker_prune ;;
fix-proxy) action_fix_host_proxy ;; fix-proxy) action_fix_host_proxy ;;

11
package-lock.json generated
View File

@@ -7154,6 +7154,15 @@
"node": ">= 10" "node": ">= 10"
} }
}, },
"node_modules/@tauri-apps/plugin-http": {
"version": "2.5.9",
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-http/-/plugin-http-2.5.9.tgz",
"integrity": "sha512-lCiY0+vs4HvIUSvZrBs8TC3TiCB0MOPRmiUjTq4prW7SlcJE2jdLeT6KBsJrT9Tlplufl7W1pY6SFAO3gCWxDA==",
"license": "MIT OR Apache-2.0",
"dependencies": {
"@tauri-apps/api": "^2.11.0"
}
},
"node_modules/@tauri-apps/plugin-opener": { "node_modules/@tauri-apps/plugin-opener": {
"version": "2.5.4", "version": "2.5.4",
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-opener/-/plugin-opener-2.5.4.tgz", "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-opener/-/plugin-opener-2.5.4.tgz",
@@ -13450,12 +13459,14 @@
"@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-slot": "^1.2.4",
"@tauri-apps/api": "^2.9.0", "@tauri-apps/api": "^2.9.0",
"@tauri-apps/plugin-http": "^2.5.9",
"@tauri-apps/plugin-opener": "^2.5.0", "@tauri-apps/plugin-opener": "^2.5.0",
"@tauri-apps/plugin-stronghold": "^2.3.0", "@tauri-apps/plugin-stronghold": "^2.3.0",
"@zxing/browser": "^0.1.5", "@zxing/browser": "^0.1.5",
"class-variance-authority": "^0.7.1", "class-variance-authority": "^0.7.1",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"lucide-react": "^0.561.0", "lucide-react": "^0.561.0",
"qrcode.react": "^4.2.0",
"react": "^19.2.1", "react": "^19.2.1",
"react-dom": "^19.2.1", "react-dom": "^19.2.1",
"tailwind-merge": "^3.4.0", "tailwind-merge": "^3.4.0",

View File

@@ -1,81 +0,0 @@
FROM ghcr.io/cirruslabs/android-sdk:35-ndk
ENV DEBIAN_FRONTEND=noninteractive
ENV ANDROID_HOME=/opt/android-sdk
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ENV PATH=/root/.cargo/bin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/usr/local/bin:$PATH
ARG NPM_REGISTRY=https://registry.npmjs.org
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
unzip \
xz-utils \
git \
build-essential \
pkg-config \
libssl-dev \
openjdk-17-jdk \
&& rm -rf /var/lib/apt/lists/*
RUN if [ ! -d "${ANDROID_HOME}" ] && [ -d /opt/android-sdk-linux ]; then ln -s /opt/android-sdk-linux "${ANDROID_HOME}"; fi \
&& (sdkmanager --version || true) \
&& test -d "${ANDROID_HOME}/platforms/android-35" \
&& test -d "${ANDROID_HOME}/build-tools" \
&& test -d "${ANDROID_HOME}/platform-tools" \
&& test -d "${ANDROID_HOME}/ndk"
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \
&& apt-get update \
&& apt-get install -y --no-install-recommends nodejs \
&& rm -rf /var/lib/apt/lists/*
RUN curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs | sh -s -- -y --profile minimal \
&& rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
WORKDIR /workspace
COPY package.json package-lock.json .npmrc ./
COPY apps/sso-core/package.json ./apps/sso-core/
COPY apps/api-gateway/package.json ./apps/api-gateway/
COPY apps/frontend/package.json ./apps/frontend/
COPY apps/docs/package.json ./apps/docs/
COPY tauri_app/package.json ./tauri_app/
RUN --mount=type=cache,target=/root/.npm \
npm config set registry "${NPM_REGISTRY}" && \
npm ci --no-audit --no-fund
COPY apps/frontend ./apps/frontend
COPY shared ./shared
COPY tsconfig.base.json ./
COPY tauri_app ./tauri_app
RUN sed -i 's/\r$//' tauri_app/docker/*.sh \
&& chmod +x tauri_app/docker/*.sh \
&& cp tauri_app/docker/build-android-apk.sh /usr/local/bin/build-android-apk \
&& chmod +x /usr/local/bin/build-android-apk
ENV ANDROID_AGP_LOCAL_REPO=/opt/android-agp-maven
ENV GRADLE_USER_HOME=/root/.gradle
ENV ANDROID_COMPILE_SDK=35
RUN if [ ! -d "${ANDROID_HOME}" ] && [ -d /opt/android-sdk-linux ]; then ln -s /opt/android-sdk-linux "${ANDROID_HOME}"; fi \
&& ln -sfn android-35 "${ANDROID_HOME}/platforms/android-36" \
&& test -e "${ANDROID_HOME}/platforms/android-36"
RUN /workspace/tauri_app/docker/prefetch-android-agp.sh \
&& /workspace/tauri_app/docker/verify-offline-agp.sh
RUN if [ -f /workspace/tauri_app/docker/offline-gradle/gradle-8.14.3-bin.zip ]; then \
mkdir -p /opt/offline-gradle \
&& cp /workspace/tauri_app/docker/offline-gradle/gradle-8.14.3-bin.zip /opt/offline-gradle/; \
else \
/workspace/tauri_app/docker/populate-offline-gradle.sh \
&& mkdir -p /opt/offline-gradle \
&& cp /workspace/tauri_app/docker/offline-gradle/gradle-8.14.3-bin.zip /opt/offline-gradle/; \
fi
CMD ["build-android-apk"]

View File

@@ -1,92 +0,0 @@
# Lendry ID Super App
Tauri v2 приложение для macOS, iOS и Android. Использует тот же React/Tailwind/shadcn UI стиль, что и `apps/frontend`, через Vite alias:
```ts
'@': '../apps/frontend'
```
## Запуск
```bash
npm install
npm --workspace @lendry/tauri-app run tauri:dev
```
## Web build
```bash
npm --workspace @lendry/tauri-app run build
```
## Mobile bootstrap
```bash
npm --workspace @lendry/tauri-app run android:init
npm --workspace @lendry/tauri-app run ios:init
```
После генерации проверьте `src-tauri/mobile-permissions.md` и добавьте camera permissions, если CLI не внёс их автоматически.
## Docker APK build
Сборка подписанного release APK через `install.sh` (Docker + Android SDK + release keystore):
```bash
./install.sh --build-apk
```
Или пункт **12** в интерактивном меню `./install.sh`.
Готовый файл:
```text
apps/frontend/public/downloads/lendry-id.apk
```
Keystore и пароли создаются автоматически при первой сборке и сохраняются в `tauri_app/.secrets/` (не коммитятся в git).
Если сборка падает с `KeytoolException` / `not properly padded`, keystore и пароли рассинхронизированы. Пересоздайте их:
```bash
rm -rf tauri_app/.secrets
./install.sh --build-apk
```
Или одной командой:
```bash
ANDROID_KEYSTORE_FORCE_REGENERATE=1 ./install.sh --build-apk
```
После этого кнопка «Скачать приложение» на странице входа скачивает APK через:
```text
/download/android
```
Собрать только через Docker-образ (без install.sh):
```bash
docker build -f tauri_app/Dockerfile.apk -t lendry-id-tauri-apk-builder .
mkdir -p apps/frontend/public/downloads tauri_app/.secrets
docker run --rm \
-v "$(pwd)/apps/frontend/public/downloads:/out" \
-v "$(pwd)/tauri_app/.secrets:/workspace/tauri_app/.secrets" \
-e PUBLIC_API_URL=https://sso.example.ru/idp-api \
-e PUBLIC_FRONTEND_URL=https://sso.example.ru \
lendry-id-tauri-apk-builder
```
## Переменные окружения
```bash
VITE_API_URL=https://sso.example.ru/idp-api
VITE_FRONTEND_URL=https://sso.example.ru
```
## Реализованные модули
- `Chats`: wrapper существующего web UI `/family`, чтобы не дублировать messenger.
- `Security`: QR scanner + approve `/auth/advanced/qr/session/:sessionId/approve`, список сессий и revoke.
- `Authenticator`: offline TOTP RFC 6238 с хранением seeds в `tauri-plugin-stronghold`.

View File

@@ -1,4 +0,0 @@
.gradle/
build/
offline-gradle/*.zip
local.properties

View File

@@ -1,2 +0,0 @@
#Fri Jun 26 17:46:50 GMT 2026
gradle.version=8.14.3

View File

@@ -1,38 +0,0 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
android {
namespace = "ru.lendry.offline.resolver"
compileSdk = 35
defaultConfig {
applicationId = "ru.lendry.offline.resolver"
minSdk = 24
targetSdk = 35
versionCode = 1
versionName = "1.0"
}
buildTypes {
release {
isMinifyEnabled = false
}
}
kotlinOptions {
jvmTarget = "1.8"
}
}
// Mirror Tauri Android app dependencies (apps + typical plugin transitives).
dependencies {
implementation("androidx.webkit:webkit:1.14.0")
implementation("androidx.appcompat:appcompat:1.7.1")
implementation("androidx.activity:activity-ktx:1.10.1")
implementation("com.google.android.material:material:1.12.0")
implementation("androidx.lifecycle:lifecycle-process:2.10.0")
implementation("androidx.browser:browser:1.8.0")
implementation("androidx.core:core-ktx:1.13.0")
}

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:label="OfflineResolver" />
</manifest>

View File

@@ -1,129 +0,0 @@
import org.gradle.api.GradleException
allprojects {
repositories {
google()
mavenCentral()
}
}
fun installArtifact(
root: File,
group: String,
name: String,
version: String,
ext: String,
src: File,
) {
val dir = root.resolve("${group.replace('.', '/')}/$name/$version")
dir.mkdirs()
src.copyTo(dir.resolve("$name-$version.$ext"), overwrite = true)
}
fun googleMavenBases(group: String): List<String> =
if (group.startsWith("com.android") || group.startsWith("androidx") || group.startsWith("com.google.android")) {
listOf(
"https://dl.google.com/dl/android/maven2",
"https://dl.google.com/android/maven2",
"https://maven.google.com",
)
} else {
listOf(
"https://repo.maven.apache.org/maven2",
"https://dl.google.com/dl/android/maven2",
"https://maven.google.com",
)
}
fun downloadUrl(url: String, dest: File) {
dest.parentFile.mkdirs()
exec {
commandLine("curl", "-fsSL", url, "-o", dest.absolutePath)
}
}
fun ensurePom(root: File, group: String, name: String, version: String) {
val dir = root.resolve("${group.replace('.', '/')}/$name/$version")
dir.mkdirs()
val pom = dir.resolve("$name-$version.pom")
if (pom.exists() && pom.length() > 0L) {
return
}
val groupPath = group.replace('.', '/')
for (base in googleMavenBases(group)) {
val url = "$base/$groupPath/$name/$version/$name-$version.pom"
try {
downloadUrl(url, pom)
if (pom.exists() && pom.length() > 0L) {
return
}
} catch (_: Exception) {
pom.delete()
}
}
throw GradleException("POM not found: $group:$name:$version")
}
fun exportConfiguration(projectPath: String, configName: String, offlineRoot: File): Int {
val target = project(projectPath)
val configuration = target.configurations.getByName(configName)
configuration.resolve()
val modules = linkedSetOf<Triple<String, String, String>>()
configuration.resolvedConfiguration.resolvedArtifacts.forEach { artifact ->
val id = artifact.moduleVersion.id
modules.add(Triple(id.group, id.name, id.version))
installArtifact(
offlineRoot,
id.group,
id.name,
id.version,
artifact.extension ?: "jar",
artifact.file,
)
}
modules.forEach { (group, name, version) ->
ensurePom(offlineRoot, group, name, version)
}
println("Exported ${modules.size} modules from ${projectPath}:${configName}")
return modules.size
}
fun exportAndroidRuntimeClasspath(offlineRoot: File): Int =
exportConfiguration(":app", "releaseRuntimeClasspath", offlineRoot)
val agpVersion: String = providers.gradleProperty("agpVersion").orElse("8.11.0").get()
tasks.register("exportOfflineMaven") {
dependsOn(":tools:compileJava")
doLast {
val offlineRoot = file("${rootProject.projectDir}/../offline-maven").apply { mkdirs() }
val modules = exportConfiguration(":tools", "agp", offlineRoot)
file("${offlineRoot.absolutePath}/.agp-offline-complete").writeText(
"agpVersion=$agpVersion\nmodules=$modules\n",
)
}
}
tasks.register("exportAllOfflineMaven") {
dependsOn(":tools:compileJava", ":app:preBuild")
doLast {
val offlineRoot = file("${rootProject.projectDir}/../offline-maven").apply { mkdirs() }
var modules = 0
modules += exportConfiguration(":tools", "agp", offlineRoot)
modules += exportConfiguration(":tools", "buildPlugins", offlineRoot)
modules += exportAndroidRuntimeClasspath(offlineRoot)
file("${offlineRoot.absolutePath}/.agp-offline-complete").writeText(
"agpVersion=$agpVersion\nmodules=$modules\n",
)
file("${offlineRoot.absolutePath}/.android-deps-offline-complete").writeText(
"modules=$modules\n",
)
println("Exported ${modules} total modules to ${offlineRoot.absolutePath}")
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +0,0 @@
org.gradle.jvmargs=-Xmx2g -Dfile.encoding=UTF-8
android.useAndroidX=true
android.nonTransitiveRClass=true

View File

@@ -1,6 +0,0 @@
#Tue May 10 19:22:52 CST 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

View File

@@ -1,185 +0,0 @@
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
exec "$JAVACMD" "$@"

View File

@@ -1,89 +0,0 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

View File

@@ -1,16 +0,0 @@
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
plugins {
id("com.android.application") version "8.11.0" apply false
id("org.jetbrains.kotlin.android") version "1.9.25" apply false
}
rootProject.name = "agp-resolver"
include(":app")
include(":tools")

View File

@@ -1,21 +0,0 @@
plugins {
java
}
repositories {
google()
mavenCentral()
}
val agpVersion: String = providers.gradleProperty("agpVersion").orElse("8.11.0").get()
configurations {
create("agp")
create("buildPlugins")
}
dependencies {
add("agp", "com.android.tools.build:gradle:$agpVersion")
add("buildPlugins", "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25")
add("buildPlugins", "org.jetbrains.kotlin:kotlin-stdlib:1.9.25")
}

View File

@@ -1,77 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
cd /workspace
export VITE_API_URL="${VITE_API_URL:-${PUBLIC_API_URL:-http://localhost:3000}}"
export VITE_FRONTEND_URL="${VITE_FRONTEND_URL:-${PUBLIC_FRONTEND_URL:-http://localhost:3002}}"
export ANDROID_HOME="${ANDROID_HOME:-/opt/android-sdk}"
export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME}}"
export GRADLE_USER_HOME="${GRADLE_USER_HOME:-/root/.gradle}"
export ANDROID_AGP_LOCAL_REPO="${ANDROID_AGP_LOCAL_REPO:-/opt/android-agp-maven}"
if [ -z "${ANDROID_NDK_HOME:-}" ]; then
NDK_DIR="$(find "${ANDROID_HOME}/ndk" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sort -V | tail -n 1 || true)"
if [ -n "${NDK_DIR}" ]; then
export ANDROID_NDK_HOME="${NDK_DIR}"
export NDK_HOME="${NDK_DIR}"
fi
fi
echo "==> Android SDK: ${ANDROID_HOME}"
echo "==> Android NDK: ${ANDROID_NDK_HOME:-не найден}"
if [ -z "${ANDROID_NDK_HOME:-}" ] || [ ! -d "${ANDROID_NDK_HOME}" ]; then
echo "Android NDK не найден в ${ANDROID_HOME}/ndk. Используйте Android SDK image с предустановленным NDK или примонтируйте SDK с NDK." >&2
exit 1
fi
mkdir -p /out
echo "==> Проверка web-сборки tauri_app"
npm --workspace @lendry/tauri-app run build
cd /workspace/tauri_app
if [ -d "src-tauri/gen/android" ]; then
echo "==> Очистка предыдущего Android проекта Tauri"
rm -rf src-tauri/gen/android
fi
echo "==> Инициализация Android проекта Tauri"
npm run android:init -- --ci || npm run android:init
echo "==> Настройка репозиториев Gradle (Google Maven + локальный кэш AGP)"
/workspace/tauri_app/docker/patch-android-gradle-repos.sh /workspace/tauri_app/src-tauri/gen/android
echo "==> Настройка Android SDK (offline, без загрузки platform из Google)"
/workspace/tauri_app/docker/patch-android-sdk.sh /workspace/tauri_app/src-tauri/gen/android
echo "==> Настройка offline Gradle wrapper (если bundled zip доступен)"
/workspace/tauri_app/docker/install-offline-gradle.sh /workspace/tauri_app/src-tauri/gen/android
echo "==> Подготовка keystore для release-подписи APK"
/workspace/tauri_app/docker/ensure-android-keystore.sh
/workspace/tauri_app/docker/patch-android-signing.sh /workspace/tauri_app/src-tauri/gen/android
echo "==> Сборка Android APK (release, signed)"
npm run tauri -- android build --apk
APK_PATH="$(find /workspace/tauri_app/src-tauri/gen/android -type f -name '*release*.apk' ! -name '*unsigned*' | sort | tail -n 1 || true)"
if [[ -z "${APK_PATH}" ]]; then
APK_PATH="$(find /workspace/tauri_app/src-tauri/gen/android -type f -name '*.apk' ! -name '*unsigned*' | sort | tail -n 1 || true)"
fi
if [ -z "${APK_PATH}" ] || [ ! -f "${APK_PATH}" ]; then
echo "APK не найден после сборки" >&2
find /workspace/tauri_app/src-tauri/gen/android -maxdepth 8 -type f -name '*.apk' | sort >&2 || true
exit 1
fi
/workspace/tauri_app/docker/verify-apk-signature.sh "${APK_PATH}"
cp "${APK_PATH}" /out/lendry-id.apk
chmod 0644 /out/lendry-id.apk
echo "==> APK готов: /out/lendry-id.apk"
ls -lh /out/lendry-id.apk

View File

@@ -1,145 +0,0 @@
#!/usr/bin/env bash
# Создаёт и проверяет release keystore для подписи APK.
set -euo pipefail
SECRETS_DIR="${ANDROID_SECRETS_DIR:-/workspace/tauri_app/.secrets}"
KEYSTORE_FILE="${ANDROID_KEYSTORE_FILE:-${SECRETS_DIR}/lendry-id-release.keystore}"
KEY_ALIAS="${ANDROID_KEY_ALIAS:-lendry-id}"
CREDENTIALS_FILE="${SECRETS_DIR}/signing-credentials.env"
KEYSTORE_PROPS_TEMPLATE="${SECRETS_DIR}/keystore.properties.template"
FORCE_REGENERATE="${ANDROID_KEYSTORE_FORCE_REGENERATE:-0}"
mkdir -p "${SECRETS_DIR}"
chmod 700 "${SECRETS_DIR}" || true
read_credentials() {
STORE_PASSWORD=""
KEY_PASSWORD=""
if [[ -f "${CREDENTIALS_FILE}" ]]; then
# shellcheck disable=SC1090
source "${CREDENTIALS_FILE}"
STORE_PASSWORD="${ANDROID_KEYSTORE_PASSWORD:-}"
KEY_PASSWORD="${ANDROID_KEY_PASSWORD:-${ANDROID_KEYSTORE_PASSWORD:-}}"
elif [[ -f "${KEYSTORE_PROPS_TEMPLATE}" ]]; then
STORE_PASSWORD="$(grep -E '^storePassword=' "${KEYSTORE_PROPS_TEMPLATE}" | head -n1 | cut -d= -f2- || true)"
KEY_PASSWORD="$(grep -E '^keyPassword=' "${KEYSTORE_PROPS_TEMPLATE}" | head -n1 | cut -d= -f2- || true)"
KEY_PASSWORD="${KEY_PASSWORD:-${STORE_PASSWORD}}"
fi
}
write_credentials_files() {
local password="$1"
cat > "${CREDENTIALS_FILE}" <<EOF
# Сгенерировано $(date -u +"%Y-%m-%dT%H:%M:%SZ") — храните в безопасном месте.
ANDROID_KEYSTORE_FILE=${KEYSTORE_FILE}
ANDROID_KEY_ALIAS=${KEY_ALIAS}
ANDROID_KEYSTORE_PASSWORD=${password}
ANDROID_KEY_PASSWORD=${password}
EOF
chmod 600 "${CREDENTIALS_FILE}" || true
cat > "${KEYSTORE_PROPS_TEMPLATE}" <<EOF
storePassword=${password}
keyPassword=${password}
keyAlias=${KEY_ALIAS}
storeFile=${KEYSTORE_FILE}
EOF
chmod 600 "${KEYSTORE_PROPS_TEMPLATE}" || true
}
validate_keystore() {
local store_password="$1"
local key_password="$2"
[[ -n "${store_password}" ]] || return 1
[[ -f "${KEYSTORE_FILE}" ]] || return 1
keytool -list \
-keystore "${KEYSTORE_FILE}" \
-storepass "${store_password}" \
-alias "${KEY_ALIAS}" >/dev/null 2>&1 || return 1
# Для JKS/PKCS12 у Gradle storePassword и keyPassword должны совпадать.
if [[ "${key_password}" != "${store_password}" ]]; then
return 1
fi
return 0
}
backup_broken_keystore() {
local backup_dir="${SECRETS_DIR}/backup-$(date +%Y%m%d-%H%M%S)"
mkdir -p "${backup_dir}"
for file in "${KEYSTORE_FILE}" "${CREDENTIALS_FILE}" "${KEYSTORE_PROPS_TEMPLATE}"; do
if [[ -f "${file}" ]]; then
cp "${file}" "${backup_dir}/"
fi
done
echo "==> Старые файлы подписи сохранены в ${backup_dir}"
}
gen_secret() {
if command -v openssl >/dev/null 2>&1; then
openssl rand -hex 16
else
date +%s%N | sha256sum | awk '{print substr($1,1,32)}'
fi
}
create_keystore() {
local password="$1"
if ! command -v keytool >/dev/null 2>&1; then
echo "keytool не найден — нужен JDK для генерации keystore" >&2
exit 1
fi
rm -f "${KEYSTORE_FILE}"
echo "==> Генерация release keystore для подписи APK..."
# JKS + один пароль — максимально совместимо с Android Gradle signing.
keytool -genkeypair -v \
-storetype JKS \
-keystore "${KEYSTORE_FILE}" \
-alias "${KEY_ALIAS}" \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-storepass "${password}" \
-keypass "${password}" \
-dname "CN=Lendry ID, OU=Mobile, O=Lendry, C=RU"
chmod 600 "${KEYSTORE_FILE}" || true
write_credentials_files "${password}"
echo "==> Keystore создан: ${KEYSTORE_FILE}"
echo "==> Пароли сохранены: ${CREDENTIALS_FILE}"
}
if [[ "${FORCE_REGENERATE}" == "1" && -f "${KEYSTORE_FILE}" ]]; then
backup_broken_keystore
rm -f "${KEYSTORE_FILE}" "${CREDENTIALS_FILE}" "${KEYSTORE_PROPS_TEMPLATE}"
fi
if [[ -f "${KEYSTORE_FILE}" ]]; then
read_credentials
if validate_keystore "${STORE_PASSWORD}" "${KEY_PASSWORD}"; then
write_credentials_files "${STORE_PASSWORD}"
echo "==> Android keystore проверен: ${KEYSTORE_FILE}"
exit 0
fi
echo "==> Keystore повреждён или пароли не совпадают — пересоздаём release keystore" >&2
backup_broken_keystore
rm -f "${KEYSTORE_FILE}" "${CREDENTIALS_FILE}" "${KEYSTORE_PROPS_TEMPLATE}"
fi
create_keystore "$(gen_secret)"
if ! validate_keystore "$(grep -E '^storePassword=' "${KEYSTORE_PROPS_TEMPLATE}" | cut -d= -f2-)" "$(grep -E '^keyPassword=' "${KEYSTORE_PROPS_TEMPLATE}" | cut -d= -f2-)"; then
echo "Не удалось проверить только что созданный keystore" >&2
exit 1
fi
echo "==> Keystore успешно создан и проверен"

View File

@@ -1,122 +0,0 @@
#!/usr/bin/env bash
# Download AndroidX artifacts required by Tauri offline APK builds but missed by Gradle export
# (metadata POMs, version aliases, legacy lifecycle lines).
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
OFFLINE="${ROOT}/docker/offline-maven"
if [ ! -d "${OFFLINE}" ]; then
echo "Offline Maven dir not found: ${OFFLINE}" >&2
exit 1
fi
MAVEN_BASES=(
"https://dl.google.com/dl/android/maven2"
"https://dl.google.com/android/maven2"
"https://maven.google.com"
)
# group:artifact:version — from Tauri universalReleaseRuntimeClasspath resolution.
REQUIRED=(
"androidx.annotation:annotation:1.9.1"
"androidx.annotation:annotation-jvm:1.9.1"
"androidx.emoji2:emoji2:1.2.0"
"androidx.emoji2:emoji2-views-helper:1.2.0"
"androidx.emoji2:emoji2:1.3.0"
"androidx.emoji2:emoji2-views-helper:1.3.0"
"androidx.lifecycle:lifecycle-runtime:2.10.0"
"androidx.lifecycle:lifecycle-runtime-android:2.10.0"
"androidx.lifecycle:lifecycle-viewmodel:2.6.1"
"androidx.lifecycle:lifecycle-viewmodel:2.10.0"
"androidx.lifecycle:lifecycle-viewmodel-android:2.10.0"
"androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1"
"androidx.lifecycle:lifecycle-viewmodel-ktx:2.10.0"
"androidx.lifecycle:lifecycle-runtime-ktx:2.6.1"
"androidx.lifecycle:lifecycle-runtime-ktx:2.10.0"
"androidx.lifecycle:lifecycle-runtime-ktx-android:2.10.0"
"androidx.lifecycle:lifecycle-common:2.6.1"
"androidx.lifecycle:lifecycle-common:2.10.0"
"androidx.lifecycle:lifecycle-common-jvm:2.6.1"
"androidx.lifecycle:lifecycle-common-jvm:2.10.0"
"androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1"
"androidx.lifecycle:lifecycle-viewmodel-savedstate:2.10.0"
"androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.10.0"
"androidx.lifecycle:lifecycle-livedata-core:2.5.1"
"androidx.lifecycle:lifecycle-livedata-core:2.10.0"
"androidx.lifecycle:lifecycle-livedata:2.0.0"
"androidx.lifecycle:lifecycle-livedata:2.10.0"
"androidx.savedstate:savedstate:1.2.1"
"androidx.savedstate:savedstate:1.4.0"
"androidx.savedstate:savedstate-android:1.2.1"
"androidx.savedstate:savedstate-android:1.4.0"
"androidx.savedstate:savedstate-ktx:1.2.1"
"androidx.savedstate:savedstate-ktx:1.4.0"
)
download_file() {
local url="$1"
local dest="$2"
mkdir -p "$(dirname "${dest}")"
curl -fsSL --connect-timeout 20 --max-time 120 "${url}" -o "${dest}"
}
try_download_ext() {
local group="$1"
local artifact="$2"
local version="$3"
local ext="$4"
local group_path="${group//./\/}"
local dest="${OFFLINE}/${group_path}/${artifact}/${version}/${artifact}-${version}.${ext}"
if [ -f "${dest}" ] && [ -s "${dest}" ]; then
return 0
fi
for base in "${MAVEN_BASES[@]}"; do
local url="${base}/${group_path}/${artifact}/${version}/${artifact}-${version}.${ext}"
if download_file "${url}" "${dest}" 2>/dev/null && [ -s "${dest}" ]; then
echo " + ${group}:${artifact}:${version}.${ext}"
return 0
fi
rm -f "${dest}"
done
return 1
}
ensure_coordinate() {
local spec="$1"
IFS=':' read -r group artifact version <<< "${spec}"
local got=0
for ext in pom module aar jar; do
if try_download_ext "${group}" "${artifact}" "${version}" "${ext}"; then
got=1
fi
done
if [ "${got}" -eq 0 ]; then
echo "WARN: nothing downloaded for ${spec}" >&2
fi
}
echo "==> Ensuring Tauri-required AndroidX artifacts in ${OFFLINE}"
for spec in "${REQUIRED[@]}"; do
echo "-- ${spec}"
ensure_coordinate "${spec}"
done
required_files=(
"${OFFLINE}/androidx/annotation/annotation/1.9.1/annotation-1.9.1.pom"
"${OFFLINE}/androidx/lifecycle/lifecycle-runtime/2.10.0/lifecycle-runtime-2.10.0.pom"
"${OFFLINE}/androidx/emoji2/emoji2-views-helper/1.2.0/emoji2-views-helper-1.2.0.pom"
"${OFFLINE}/androidx/savedstate/savedstate/1.2.1/savedstate-1.2.1.pom"
"${OFFLINE}/androidx/lifecycle/lifecycle-viewmodel/2.6.1/lifecycle-viewmodel-2.6.1.pom"
)
for file in "${required_files[@]}"; do
if [ ! -f "${file}" ]; then
echo "Missing required file after ensure: ${file}" >&2
exit 1
fi
done
echo "==> Tauri AndroidX ensure complete"

View File

@@ -1,30 +0,0 @@
#!/usr/bin/env bash
# Use bundled Gradle wrapper distribution when available (offline LAN builds).
set -euo pipefail
ANDROID_GEN="${1:-/workspace/tauri_app/src-tauri/gen/android}"
GRADLE_VERSION="${GRADLE_VERSION:-8.14.3}"
for candidate in \
"/opt/offline-gradle/gradle-${GRADLE_VERSION}-bin.zip" \
"/workspace/tauri_app/docker/offline-gradle/gradle-${GRADLE_VERSION}-bin.zip"; do
if [ -f "${candidate}" ]; then
BUNDLED_ZIP="${candidate}"
break
fi
done
WRAPPER_PROPS="${ANDROID_GEN}/gradle/wrapper/gradle-wrapper.properties"
if [ -z "${BUNDLED_ZIP:-}" ] || [ ! -f "${WRAPPER_PROPS}" ]; then
echo "==> Bundled Gradle ${GRADLE_VERSION} not found, wrapper will use default distributionUrl"
exit 0
fi
OFFLINE_ZIP="/opt/offline-gradle/gradle-${GRADLE_VERSION}-bin.zip"
mkdir -p /opt/offline-gradle
if [ "${BUNDLED_ZIP}" != "${OFFLINE_ZIP}" ]; then
cp "${BUNDLED_ZIP}" "${OFFLINE_ZIP}"
fi
sed -i "s|^distributionUrl=.*|distributionUrl=file\\:/opt/offline-gradle/gradle-${GRADLE_VERSION}-bin.zip|" "${WRAPPER_PROPS}"
echo "==> Gradle wrapper patched to offline file distribution (${OFFLINE_ZIP})"

View File

@@ -1 +0,0 @@
*.zip

View File

@@ -1,2 +0,0 @@
agpVersion=8.11.0
modules=215

View File

@@ -1 +0,0 @@
modules=215

View File

@@ -1,79 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.activity</groupId>
<artifactId>activity-ktx</artifactId>
<version>1.10.1</version>
<packaging>aar</packaging>
<name>Activity Kotlin Extensions</name>
<description>Kotlin extensions for 'activity' artifact</description>
<url>https://developer.android.com/jetpack/androidx/releases/activity#1.10.1</url>
<inceptionYear>2018</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.activity</groupId>
<artifactId>activity</artifactId>
<version>1.10.1</version>
</dependency>
<dependency>
<groupId>androidx.activity</groupId>
<artifactId>activity-compose</artifactId>
<version>1.10.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.activity</groupId>
<artifactId>activity</artifactId>
<version>[1.10.1]</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-runtime-ktx</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-viewmodel-ktx</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.savedstate</groupId>
<artifactId>savedstate-ktx</artifactId>
<version>1.2.1</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
</dependencies>
</project>

View File

@@ -1,132 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.activity</groupId>
<artifactId>activity</artifactId>
<version>1.10.1</version>
<packaging>aar</packaging>
<name>Activity</name>
<description>Provides the base Activity subclass and the relevant hooks to build a composable structure on top.</description>
<url>https://developer.android.com/jetpack/androidx/releases/activity#1.10.1</url>
<inceptionYear>2018</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.activity</groupId>
<artifactId>activity-compose</artifactId>
<version>1.10.1</version>
</dependency>
<dependency>
<groupId>androidx.activity</groupId>
<artifactId>activity-ktx</artifactId>
<version>1.10.1</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.8.22</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.8.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core-ktx</artifactId>
<version>1.13.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core-viewtree</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-common</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-runtime</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-viewmodel</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.savedstate</groupId>
<artifactId>savedstate</artifactId>
<version>1.2.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.tracing</groupId>
<artifactId>tracing</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-viewmodel-savedstate</artifactId>
<version>2.6.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.profileinstaller</groupId>
<artifactId>profileinstaller</artifactId>
<version>1.4.0</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-core</artifactId>
<version>1.7.3</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.annotation</groupId>
<artifactId>annotation-experimental</artifactId>
<version>1.4.1</version>
<packaging>aar</packaging>
<name>Experimental annotation</name>
<description>Java annotation for use on unstable Android API surfaces. When used in conjunction with the Experimental annotation lint checks, this annotation provides functional parity with Kotlin's Experimental annotation.</description>
<url>https://developer.android.com/jetpack/androidx/releases/annotation#1.4.1</url>
<inceptionYear>2019</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.7.10</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,102 +0,0 @@
{
"formatVersion": "1.1",
"component": {
"url": "../../annotation/1.9.1/annotation-1.9.1.module",
"group": "androidx.annotation",
"module": "annotation",
"version": "1.9.1",
"attributes": {
"org.gradle.status": "release"
}
},
"createdBy": {
"gradle": {
"version": "8.10"
}
},
"variants": [
{
"name": "jvmApiElements-published",
"attributes": {
"org.gradle.category": "library",
"org.gradle.jvm.environment": "standard-jvm",
"org.gradle.libraryelements": "jar",
"org.gradle.usage": "java-api",
"org.jetbrains.kotlin.platform.type": "jvm"
},
"dependencies": [
{
"group": "org.jetbrains.kotlin",
"module": "kotlin-stdlib",
"version": {
"requires": "1.9.24"
}
}
],
"files": [
{
"name": "annotation-jvm-1.9.1.jar",
"url": "annotation-jvm-1.9.1.jar",
"size": 60577,
"sha512": "ee8cceeb09d0231f6de4015f078e8cb0805de6faf383a9653d5f3763c43bb137e5346c2b177972b1f70d2f648f6f32047051c0f3183bdb50dc01de41931f265a",
"sha256": "1e343917ebf27ba96fe4dc52b1cad7fd32b738fbc6355bb6cd5b3b305d7212d0",
"sha1": "b17951747e38bf3986a24431b9ba0d039958aa5f",
"md5": "01d6a04b3b9847638d000529df8ef76a"
}
]
},
{
"name": "jvmRuntimeElements-published",
"attributes": {
"org.gradle.category": "library",
"org.gradle.jvm.environment": "standard-jvm",
"org.gradle.libraryelements": "jar",
"org.gradle.usage": "java-runtime",
"org.jetbrains.kotlin.platform.type": "jvm"
},
"dependencies": [
{
"group": "org.jetbrains.kotlin",
"module": "kotlin-stdlib",
"version": {
"requires": "1.9.24"
}
}
],
"files": [
{
"name": "annotation-jvm-1.9.1.jar",
"url": "annotation-jvm-1.9.1.jar",
"size": 60577,
"sha512": "ee8cceeb09d0231f6de4015f078e8cb0805de6faf383a9653d5f3763c43bb137e5346c2b177972b1f70d2f648f6f32047051c0f3183bdb50dc01de41931f265a",
"sha256": "1e343917ebf27ba96fe4dc52b1cad7fd32b738fbc6355bb6cd5b3b305d7212d0",
"sha1": "b17951747e38bf3986a24431b9ba0d039958aa5f",
"md5": "01d6a04b3b9847638d000529df8ef76a"
}
]
},
{
"name": "jvmSourcesElements-published",
"attributes": {
"org.gradle.category": "documentation",
"org.gradle.dependency.bundling": "external",
"org.gradle.docstype": "sources",
"org.gradle.jvm.environment": "standard-jvm",
"org.gradle.libraryelements": "jar",
"org.gradle.usage": "java-runtime",
"org.jetbrains.kotlin.platform.type": "jvm"
},
"files": [
{
"name": "annotation-jvm-1.9.1-sources.jar",
"url": "annotation-jvm-1.9.1-sources.jar",
"size": 71470,
"sha512": "5759f4ec9a371e59e83971070101aa8f97f1ac74ecb13198180323c42bdfa556809fe63acaddce38cb856f0ff1e422d61d230d22b52eaa3c6c0b63dfa9a48e2b",
"sha256": "c6ae897fbfb73ca09d4ae31a24bfff85c652097ad10644cdbb738488728cb39b",
"sha1": "865f245e3c1d595a6b9ae80e622a94907abc58d5",
"md5": "66f6afff7400acfe9945d6fbcd957f74"
}
]
}
]
}

View File

@@ -1,43 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.annotation</groupId>
<artifactId>annotation-jvm</artifactId>
<version>1.9.1</version>
<name>Annotation</name>
<description>Provides source annotations for tooling and readability.</description>
<url>https://developer.android.com/jetpack/androidx/releases/annotation#1.9.1</url>
<inceptionYear>2013</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.9.24</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,49 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.9.1</version>
<name>Annotation</name>
<description>Provides source annotations for tooling and readability.</description>
<url>https://developer.android.com/jetpack/androidx/releases/annotation#1.9.1</url>
<inceptionYear>2013</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.9.24</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation-jvm</artifactId>
<version>1.9.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,80 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.appcompat</groupId>
<artifactId>appcompat-resources</artifactId>
<version>1.7.1</version>
<packaging>aar</packaging>
<name>AppCompat Resources</name>
<description>Provides backward-compatible implementations of resource-related Android SDKfunctionality, including color state list theming.</description>
<url>https://developer.android.com/jetpack/androidx/releases/appcompat#1.7.1</url>
<inceptionYear>2019</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.appcompat</groupId>
<artifactId>appcompat</artifactId>
<version>1.7.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.6.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.vectordrawable</groupId>
<artifactId>vectordrawable</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.vectordrawable</groupId>
<artifactId>vectordrawable-animated</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
</dependencies>
</project>

View File

@@ -1,159 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.appcompat</groupId>
<artifactId>appcompat</artifactId>
<version>1.7.1</version>
<packaging>aar</packaging>
<name>AppCompat</name>
<description>Provides backwards-compatible implementations of UI-related Android SDK functionality, including dark mode and Material theming.</description>
<url>https://developer.android.com/jetpack/androidx/releases/appcompat#1.7.1</url>
<inceptionYear>2011</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.appcompat</groupId>
<artifactId>appcompat-resources</artifactId>
<version>1.7.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.activity</groupId>
<artifactId>activity</artifactId>
<version>1.8.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.3.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.appcompat</groupId>
<artifactId>appcompat-resources</artifactId>
<version>[1.7.1]</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.13.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core-ktx</artifactId>
<version>1.13.0</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.cursoradapter</groupId>
<artifactId>cursoradapter</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.drawerlayout</groupId>
<artifactId>drawerlayout</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2</artifactId>
<version>1.3.0</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2-views-helper</artifactId>
<version>1.2.0</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.fragment</groupId>
<artifactId>fragment</artifactId>
<version>1.5.4</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-runtime</artifactId>
<version>2.6.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-viewmodel</artifactId>
<version>2.6.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.profileinstaller</groupId>
<artifactId>profileinstaller</artifactId>
<version>1.3.1</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.resourceinspection</groupId>
<artifactId>resourceinspection-annotation</artifactId>
<version>1.0.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.savedstate</groupId>
<artifactId>savedstate</artifactId>
<version>1.2.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.8.22</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.arch.core</groupId>
<artifactId>core-common</artifactId>
<version>2.2.0</version>
<name>Android Arch-Common</name>
<description>Android Arch-Common</description>
<url>https://developer.android.com/jetpack/androidx/releases/arch-core#2.2.0</url>
<inceptionYear>2017</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,47 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.arch.core</groupId>
<artifactId>core-runtime</artifactId>
<version>2.2.0</version>
<packaging>aar</packaging>
<name>Android Arch-Runtime</name>
<description>Android Arch-Runtime</description>
<url>https://developer.android.com/jetpack/androidx/releases/arch-core#2.2.0</url>
<inceptionYear>2017</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.arch.core</groupId>
<artifactId>core-common</artifactId>
<version>[2.2.0]</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,83 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.browser</groupId>
<artifactId>browser</artifactId>
<version>1.8.0</version>
<packaging>aar</packaging>
<name>Browser</name>
<description>Provides support for embedding Custom Tabs in an app.</description>
<url>https://developer.android.com/jetpack/androidx/releases/browser#1.8.0</url>
<inceptionYear>2015</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation-experimental</artifactId>
<version>1.4.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.1.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.concurrent</groupId>
<artifactId>concurrent-futures</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.interpolator</groupId>
<artifactId>interpolator</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>listenablefuture</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.cardview</groupId>
<artifactId>cardview</artifactId>
<version>1.0.0</version>
<packaging>aar</packaging>
<name>Android Support CardView v7</name>
<description>Android Support CardView v7</description>
<url>http://developer.android.com/tools/extras/support-library.html</url>
<inceptionYear>2011</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>http://source.android.com</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,36 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.1.0</version>
<name>Android Support Library collections</name>
<description>Standalone efficient collections.</description>
<url>http://developer.android.com/tools/extras/support-library.html</url>
<inceptionYear>2018</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>http://source.android.com</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.concurrent</groupId>
<artifactId>concurrent-futures</artifactId>
<version>1.1.0</version>
<name>AndroidX Futures</name>
<description>Androidx implementation of Guava's ListenableFuture</description>
<url>https://developer.android.com/topic/libraries/architecture/index.html</url>
<inceptionYear>2018</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>http://source.android.com</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>listenablefuture</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.constraintlayout</groupId>
<artifactId>constraintlayout-solver</artifactId>
<version>2.0.1</version>
<name>Android ConstraintLayout Solver</name>
<description>Solver for ConstraintLayout</description>
<url>http://tools.android.com</url>
<inceptionYear>2007</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>git://android.googlesource.com/platform/tools/sherpa.git</connection>
<url>https://android.googlesource.com/platform/tools/sherpa</url>
</scm>
</project>

View File

@@ -1,49 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.constraintlayout</groupId>
<artifactId>constraintlayout</artifactId>
<version>2.0.1</version>
<packaging>aar</packaging>
<name>Android ConstraintLayout</name>
<description>ConstraintLayout for Android</description>
<url>http://tools.android.com</url>
<inceptionYear>2007</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>git://android.googlesource.com/platform/tools/sherpa.git</connection>
<url>https://android.googlesource.com/platform/tools/sherpa</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.appcompat</groupId>
<artifactId>appcompat</artifactId>
<version>1.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.constraintlayout</groupId>
<artifactId>constraintlayout-solver</artifactId>
<version>2.0.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.coordinatorlayout</groupId>
<artifactId>coordinatorlayout</artifactId>
<version>1.1.0</version>
<packaging>aar</packaging>
<name>Android Support Library Coordinator Layout</name>
<description>The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 14 or later.</description>
<url>https://developer.android.com/jetpack/androidx</url>
<inceptionYear>2011</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>http://source.android.com</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.1.0</version>
<type>aar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.customview</groupId>
<artifactId>customview</artifactId>
<version>1.0.0</version>
<type>aar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,66 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.core</groupId>
<artifactId>core-ktx</artifactId>
<version>1.13.0</version>
<packaging>aar</packaging>
<name>Core Kotlin Extensions</name>
<description>Kotlin extensions for 'core' artifact</description>
<url>https://developer.android.com/jetpack/androidx/releases/core#1.13.0</url>
<inceptionYear>2018</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.13.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.13.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.8.22</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,66 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.core</groupId>
<artifactId>core-ktx</artifactId>
<version>1.13.1</version>
<packaging>aar</packaging>
<name>Core Kotlin Extensions</name>
<description>Kotlin extensions for 'core' artifact</description>
<url>https://developer.android.com/jetpack/androidx/releases/core#1.13.1</url>
<inceptionYear>2018</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.13.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.13.1</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.8.22</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,52 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.core</groupId>
<artifactId>core-viewtree</artifactId>
<version>1.0.0</version>
<packaging>aar</packaging>
<name>androidx.core:core-viewtree</name>
<description>Provides ViewTree extensions packaged for use by other core androidx libraries</description>
<url>https://developer.android.com/jetpack/androidx/releases/core#1.0.0</url>
<inceptionYear>2024</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.8.22</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,103 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.13.0</version>
<packaging>aar</packaging>
<name>Core</name>
<description>Provides backward-compatible implementations of Android platform APIs and features.</description>
<url>https://developer.android.com/jetpack/androidx/releases/core#1.13.0</url>
<inceptionYear>2015</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core-ktx</artifactId>
<version>1.13.0</version>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core-testing</artifactId>
<version>1.13.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.6.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation-experimental</artifactId>
<version>1.4.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.concurrent</groupId>
<artifactId>concurrent-futures</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.interpolator</groupId>
<artifactId>interpolator</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-runtime</artifactId>
<version>2.6.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.versionedparcelable</groupId>
<artifactId>versionedparcelable</artifactId>
<version>1.1.1</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.8.22</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,103 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.13.1</version>
<packaging>aar</packaging>
<name>Core</name>
<description>Provides backward-compatible implementations of Android platform APIs and features.</description>
<url>https://developer.android.com/jetpack/androidx/releases/core#1.13.1</url>
<inceptionYear>2015</inceptionYear>
<organization>
<name>The Android Open Source Project</name>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core-ktx</artifactId>
<version>1.13.1</version>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core-testing</artifactId>
<version>1.13.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.6.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation-experimental</artifactId>
<version>1.4.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.concurrent</groupId>
<artifactId>concurrent-futures</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.interpolator</groupId>
<artifactId>interpolator</artifactId>
<version>1.0.0</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-runtime</artifactId>
<version>2.6.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.versionedparcelable</groupId>
<artifactId>versionedparcelable</artifactId>
<version>1.1.1</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.8.22</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.cursoradapter</groupId>
<artifactId>cursoradapter</artifactId>
<version>1.0.0</version>
<packaging>aar</packaging>
<name>Android Support Library Cursor Adapter</name>
<description>The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 14 or later.</description>
<url>http://developer.android.com/tools/extras/support-library.html</url>
<inceptionYear>2018</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>http://source.android.com</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,49 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.customview</groupId>
<artifactId>customview</artifactId>
<version>1.1.0</version>
<packaging>aar</packaging>
<name>Android Support Library Custom View</name>
<description>The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 14 or later.</description>
<url>https://developer.android.com/jetpack/androidx</url>
<inceptionYear>2018</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>http://source.android.com</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.3.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.1.0</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.databinding</groupId>
<artifactId>databinding-common</artifactId>
<version>8.11.0</version>
<name>androidx.databinding.databinding-common</name>
<description>Shared library between Data Binding runtime lib and compiler</description>
<url>http://tools.android.com/</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
</project>

View File

@@ -1,91 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.databinding</groupId>
<artifactId>databinding-compiler-common</artifactId>
<version>8.11.0</version>
<name>androidx.databinding.databinding-compiler-common</name>
<description>Common library that can be shared between different build tools</description>
<url>http://tools.android.com/</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<dependencies>
<dependency>
<groupId>androidx.databinding</groupId>
<artifactId>databinding-common</artifactId>
<version>8.11.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.android.databinding</groupId>
<artifactId>baseLibrary</artifactId>
<version>8.11.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.android.tools</groupId>
<artifactId>annotations</artifactId>
<version>31.11.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.android.tools.build.jetifier</groupId>
<artifactId>jetifier-core</artifactId>
<version>1.0.0-beta10</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.11.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.3.1-jre</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.googlecode.juniversalchardet</groupId>
<artifactId>juniversalchardet</artifactId>
<version>1.0.3</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.squareup</groupId>
<artifactId>javapoet</artifactId>
<version>1.10.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.16.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>2.1.20</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.documentfile</groupId>
<artifactId>documentfile</artifactId>
<version>1.0.0</version>
<packaging>aar</packaging>
<name>Android Support Library Document File</name>
<description>The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 14 or later.</description>
<url>http://developer.android.com/tools/extras/support-library.html</url>
<inceptionYear>2018</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>http://source.android.com</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.drawerlayout</groupId>
<artifactId>drawerlayout</artifactId>
<version>1.1.1</version>
<packaging>aar</packaging>
<name>Android Support Library Drawer Layout</name>
<description>The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 14 or later.</description>
<url>https://developer.android.com/jetpack/androidx</url>
<inceptionYear>2018</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>http://source.android.com</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.annotation</groupId>
<artifactId>annotation</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.2.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.customview</groupId>
<artifactId>customview</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
</dependencies>
</project>

View File

@@ -1,51 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.dynamicanimation</groupId>
<artifactId>dynamicanimation</artifactId>
<version>1.0.0</version>
<packaging>aar</packaging>
<name>Android Support DynamicAnimation</name>
<description>Physics-based animation in support library, where the animations are driven by physics force. You can use this Animation library to create smooth and realistic animations.</description>
<url>http://developer.android.com/tools/extras/support-library.html</url>
<inceptionYear>2017</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>http://source.android.com</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.0.0</version>
<type>aar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>androidx.legacy</groupId>
<artifactId>legacy-support-core-utils</artifactId>
<version>1.0.0</version>
<type>aar</type>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,110 +0,0 @@
{
"formatVersion": "1.1",
"component": {
"group": "androidx.emoji2",
"module": "emoji2-views-helper",
"version": "1.2.0",
"attributes": {
"org.gradle.status": "release"
}
},
"createdBy": {
"gradle": {
"version": "7.5-rc-2"
}
},
"variants": [
{
"name": "releaseVariantReleaseApiPublication",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.libraryelements": "aar",
"org.gradle.usage": "java-api"
},
"dependencies": [
{
"group": "androidx.core",
"module": "core",
"version": {
"requires": "1.3.0"
}
}
],
"files": [
{
"name": "emoji2-views-helper-1.2.0.aar",
"url": "emoji2-views-helper-1.2.0.aar",
"size": 21917,
"sha512": "f93f48ca072dfe10289b790deb9703f3d313fa0457f37cbc92881d31428372178f74d1fa41fb6605ab3ccb41ad2f02b710e72fa319b92e82926c0b523d9e8ebd",
"sha256": "7ffa4d464d9db259fca0cdb50fbd4ab63d6872bcda59468b9f7555504c7d5ac4",
"sha1": "4a22802fc9e88ad232522f04a35d1fdc3e5b4df0",
"md5": "1a4b6d516e641772360a3030d6feda7f"
}
]
},
{
"name": "releaseVariantReleaseRuntimePublication",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.libraryelements": "aar",
"org.gradle.usage": "java-runtime"
},
"dependencies": [
{
"group": "androidx.collection",
"module": "collection",
"version": {
"requires": "1.1.0"
}
},
{
"group": "androidx.core",
"module": "core",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2",
"version": {
"requires": "1.2.0"
}
}
],
"files": [
{
"name": "emoji2-views-helper-1.2.0.aar",
"url": "emoji2-views-helper-1.2.0.aar",
"size": 21917,
"sha512": "f93f48ca072dfe10289b790deb9703f3d313fa0457f37cbc92881d31428372178f74d1fa41fb6605ab3ccb41ad2f02b710e72fa319b92e82926c0b523d9e8ebd",
"sha256": "7ffa4d464d9db259fca0cdb50fbd4ab63d6872bcda59468b9f7555504c7d5ac4",
"sha1": "4a22802fc9e88ad232522f04a35d1fdc3e5b4df0",
"md5": "1a4b6d516e641772360a3030d6feda7f"
}
]
},
{
"name": "sourcesElements",
"attributes": {
"org.gradle.category": "documentation",
"org.gradle.dependency.bundling": "external",
"org.gradle.docstype": "sources",
"org.gradle.usage": "java-runtime"
},
"files": [
{
"name": "emoji2-views-helper-1.2.0-sources.jar",
"url": "emoji2-views-helper-1.2.0-sources.jar",
"size": 17409,
"sha512": "b5babc8d9ebcf9faa0d0f20464d97e2ee686058fc593b801289866d5c8221df83b7ac9415ddc18eccccb5e26e69d0eda1b147d6d60685183c2d6308689500507",
"sha256": "ede24c021b055ab0bc287ce3ab784ab1fff3f336dae1ee9adae8b0d849e7b997",
"sha1": "833c4c3f1564f35f7f62b810bf3e0eaf544ebc1f",
"md5": "b7694abf3b882286206b7c00585bf461"
}
]
}
]
}

View File

@@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2-views-helper</artifactId>
<version>1.2.0</version>
<packaging>aar</packaging>
<name>Android Emoji2 Compat view helpers</name>
<description>View helpers for Emoji2</description>
<url>https://developer.android.com/jetpack/androidx/releases/emoji2#1.2.0</url>
<inceptionYear>2017</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencies>
<dependency>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.1.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.3.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2</artifactId>
<version>[1.2.0]</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
</dependencies>
</project>

View File

@@ -1,242 +0,0 @@
{
"formatVersion": "1.1",
"component": {
"group": "androidx.emoji2",
"module": "emoji2-views-helper",
"version": "1.3.0",
"attributes": {
"org.gradle.status": "release"
}
},
"createdBy": {
"gradle": {
"version": "8.0"
}
},
"variants": [
{
"name": "releaseVariantReleaseApiPublication",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.libraryelements": "aar",
"org.gradle.usage": "java-api"
},
"dependencies": [
{
"group": "androidx.core",
"module": "core",
"version": {
"requires": "1.3.0"
}
}
],
"dependencyConstraints": [
{
"group": "androidx.emoji2",
"module": "emoji2-emojipicker",
"version": {
"requires": "1.0.0-alpha03"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-emojipicker-samples",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-bundled",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-views",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-benchmark",
"version": {
"requires": "1.3.0"
}
}
],
"files": [
{
"name": "emoji2-views-helper-1.3.0.aar",
"url": "emoji2-views-helper-1.3.0.aar",
"size": 22075,
"sha512": "1c5ebe19d91cd3491454de9e12615f94ed1e6e49fd97ab02709aa2e5bfeb27a89d20148854503e255c5fbbdc7d77ad5ac9cd3e5b902817ed1f32e5b0178c58ca",
"sha256": "9a1351295a4f739df0efe8344adaa9afb34856c3af584d4a9afbec105a45b90b",
"sha1": "7bef7c1117bb40ef41ee0641cd1d2d605e2d607c",
"md5": "473586f500e1ae30491f2cf67dd13870"
}
]
},
{
"name": "releaseVariantReleaseRuntimePublication",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.libraryelements": "aar",
"org.gradle.usage": "java-runtime"
},
"dependencies": [
{
"group": "androidx.collection",
"module": "collection",
"version": {
"requires": "1.1.0"
}
},
{
"group": "androidx.core",
"module": "core",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2",
"version": {
"requires": "1.3.0"
}
}
],
"dependencyConstraints": [
{
"group": "androidx.emoji2",
"module": "emoji2-emojipicker",
"version": {
"requires": "1.0.0-alpha03"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-emojipicker-samples",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-bundled",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-views",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-benchmark",
"version": {
"requires": "1.3.0"
}
}
],
"files": [
{
"name": "emoji2-views-helper-1.3.0.aar",
"url": "emoji2-views-helper-1.3.0.aar",
"size": 22075,
"sha512": "1c5ebe19d91cd3491454de9e12615f94ed1e6e49fd97ab02709aa2e5bfeb27a89d20148854503e255c5fbbdc7d77ad5ac9cd3e5b902817ed1f32e5b0178c58ca",
"sha256": "9a1351295a4f739df0efe8344adaa9afb34856c3af584d4a9afbec105a45b90b",
"sha1": "7bef7c1117bb40ef41ee0641cd1d2d605e2d607c",
"md5": "473586f500e1ae30491f2cf67dd13870"
}
]
},
{
"name": "sourcesElements",
"attributes": {
"org.gradle.category": "documentation",
"org.gradle.dependency.bundling": "external",
"org.gradle.docstype": "sources",
"org.gradle.usage": "java-runtime"
},
"dependencyConstraints": [
{
"group": "androidx.emoji2",
"module": "emoji2-emojipicker",
"version": {
"requires": "1.0.0-alpha03"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-emojipicker-samples",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-bundled",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-views",
"version": {
"requires": "1.3.0"
}
},
{
"group": "androidx.emoji2",
"module": "emoji2-benchmark",
"version": {
"requires": "1.3.0"
}
}
],
"files": [
{
"name": "emoji2-views-helper-1.3.0-sources.jar",
"url": "emoji2-views-helper-1.3.0-sources.jar",
"size": 17409,
"sha512": "9c16707fa7227ef6ff5dd22db1a50b2c046f4da9d6e719cce0650214c8fe430112fa217c0058b09b66488533b03f514710b056b8fc33198ccef8e4e0a8ce2489",
"sha256": "ae8f9eac6a0627a136f631af717e6fab86a69e45c83765661e3795f7bbef3562",
"sha1": "070bc75b8c5681fc8d0a4026648950c1cfd90a72",
"md5": "71eca72934c7840028ba5480a3f5c33e"
}
]
}
]
}

View File

@@ -1,89 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2-views-helper</artifactId>
<version>1.3.0</version>
<packaging>aar</packaging>
<name>Android Emoji2 Compat view helpers</name>
<description>View helpers for Emoji2</description>
<url>https://developer.android.com/jetpack/androidx/releases/emoji2#1.3.0</url>
<inceptionYear>2017</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>The Android Open Source Project</name>
</developer>
</developers>
<scm>
<connection>scm:git:https://android.googlesource.com/platform/frameworks/support</connection>
<url>https://cs.android.com/androidx/platform/frameworks/support</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2-emojipicker</artifactId>
<version>1.0.0-alpha03</version>
</dependency>
<dependency>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2-emojipicker-samples</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2-bundled</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2-views</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2-benchmark</artifactId>
<version>1.3.0</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>androidx.collection</groupId>
<artifactId>collection</artifactId>
<version>1.1.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
<version>1.3.0</version>
<scope>compile</scope>
<type>aar</type>
</dependency>
<dependency>
<groupId>androidx.emoji2</groupId>
<artifactId>emoji2</artifactId>
<version>[1.3.0]</version>
<scope>runtime</scope>
<type>aar</type>
</dependency>
</dependencies>
</project>

Some files were not shown because too many files have changed in this diff Show More