Autoupdate
Deploy to FTP / deploy (push) Successful in 9s
Build APK / build (push) Failing after 1m12s

This commit is contained in:
Sebastian Molenda
2026-06-13 17:26:13 +02:00
parent a99f5167a9
commit 36757d1fb9
92 changed files with 465 additions and 243 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
Binary file not shown.
+2 -2
View File
@@ -1,2 +1,2 @@
#Sat Jun 06 08:18:55 CEST 2026 #Sat Jun 13 15:33:08 CEST 2026
gradle.version=8.13 gradle.version=9.4.1
Binary file not shown.
Binary file not shown.
+57 -9
View File
@@ -5,19 +5,65 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="51538617-7e5b-4e71-9f47-7bda274cf4cc" name="Changes" comment=""> <list default="true" id="51538617-7e5b-4e71-9f47-7bda274cf4cc" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.gradle/8.5/checksums/checksums.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.5/checksums/checksums.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/8.5/checksums/checksums.lock" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/checksums/sha1-checksums.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.5/checksums/sha1-checksums.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/8.5/checksums/md5-checksums.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/executionHistory/executionHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.5/executionHistory/executionHistory.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/8.5/checksums/sha1-checksums.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/executionHistory/executionHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.5/executionHistory/executionHistory.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.5/fileHashes/fileHashes.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/8.5/dependencies-accessors/gc.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/fileHashes/fileHashes.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.5/fileHashes/fileHashes.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/8.5/executionHistory/executionHistory.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/fileHashes/resourceHashesCache.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/8.5/fileHashes/resourceHashesCache.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/8.5/executionHistory/executionHistory.lock" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/fileChanges/last-build.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/fileHashes/fileHashes.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/fileHashes/fileHashes.lock" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/fileHashes/resourceHashesCache.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/8.5/gc.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/cache.properties" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/cache.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/file-system.probe" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/file-system.probe" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/file-system.probe" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/file-system.probe" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/intermediates/dex/debug/mergeProjectDexDebug/6/classes.dex" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/intermediates/dex/debug/mergeProjectDexDebug/6/classes.dex" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/last-build.bin" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/cacheable/last-build.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/local-state/build-history.bin" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/kotlin/compileDebugKotlin/local-state/build-history.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/outputs/apk/debug/app-debug.apk" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/outputs/apk/debug/app-debug.apk" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build/outputs/logs/manifest-merger-debug-report.txt" beforeDir="false" afterPath="$PROJECT_DIR$/app/build/outputs/logs/manifest-merger-debug-report.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/app/MainActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/app/MainActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/app/WebAppUpdater.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/app/WebAppUpdater.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" /> <change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gradle.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" afterDir="false" /> <change beforePath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/settings.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/settings.gradle" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -27,7 +73,7 @@
<component name="ClangdSettings"> <component name="ClangdSettings">
<option name="formatViaClangd" value="false" /> <option name="formatViaClangd" value="false" />
</component> </component>
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[LocalEmulator::path=/Users/aln/.android/avd/Pixel_9.avd]" /> <component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[LocalEmulator::path=/Users/aln/.android/avd/Pixel_10.avd]" />
<component name="ExternalProjectsData"> <component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$"> <projectState path="$PROJECT_DIR$">
<ProjectState /> <ProjectState />
@@ -59,7 +105,9 @@
</component> </component>
<component name="PropertiesComponent"><![CDATA[{ <component name="PropertiesComponent"><![CDATA[{
"keyToString": { "keyToString": {
"Android App.app.executor": "Run", "Android App.app.executor": "Debug",
"Gradle.Configure Daemon JVM Criteria.executor": "Run",
"GradleDaemonJvmCriteriaMigrationNotification.isNotificationDisabled": "true",
"ModuleVcsDetector.initialDetectionPerformed": "true", "ModuleVcsDetector.initialDetectionPerformed": "true",
"RunOnceActivity.ShowReadmeOnStart": "true", "RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.cidr.known.project.marker": "true", "RunOnceActivity.cidr.known.project.marker": "true",
@@ -1,5 +1,6 @@
#Sat Jun 06 08:21:02 CEST 2026 #Sat Jun 13 17:10:52 CEST 2026
com.example.app-main-23\:/drawable/ic_launcher_foreground.xml=/Users/aln/Work/Matma/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_launcher_foreground.xml.flat com.example.app-main-23\:/drawable/ic_launcher_foreground.xml=/Users/aln/Work/Matma/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_launcher_foreground.xml.flat
com.example.app-main-23\:/layout/activity_splash.xml=/Users/aln/Work/Matma/app/build/intermediates/merged_res/debug/mergeDebugResources/layout_activity_splash.xml.flat
com.example.app-main-23\:/mipmap-anydpi-v26/ic_launcher.xml=/Users/aln/Work/Matma/app/build/intermediates/merged_res/debug/mergeDebugResources/mipmap-anydpi-v26_ic_launcher.xml.flat com.example.app-main-23\:/mipmap-anydpi-v26/ic_launcher.xml=/Users/aln/Work/Matma/app/build/intermediates/merged_res/debug/mergeDebugResources/mipmap-anydpi-v26_ic_launcher.xml.flat
com.example.app-main-23\:/mipmap-hdpi/ic_launcher.png=/Users/aln/Work/Matma/app/build/intermediates/merged_res/debug/mergeDebugResources/mipmap-hdpi_ic_launcher.png.flat com.example.app-main-23\:/mipmap-hdpi/ic_launcher.png=/Users/aln/Work/Matma/app/build/intermediates/merged_res/debug/mergeDebugResources/mipmap-hdpi_ic_launcher.png.flat
com.example.app-main-23\:/mipmap-hdpi/ic_launcher_foreground.png=/Users/aln/Work/Matma/app/build/intermediates/merged_res/debug/mergeDebugResources/mipmap-hdpi_ic_launcher_foreground.png.flat com.example.app-main-23\:/mipmap-hdpi/ic_launcher_foreground.png=/Users/aln/Work/Matma/app/build/intermediates/merged_res/debug/mergeDebugResources/mipmap-hdpi_ic_launcher_foreground.png.flat
File diff suppressed because one or more lines are too long
@@ -1,5 +1,6 @@
#Sat Jun 06 08:21:02 CEST 2026 #Sat Jun 13 17:10:52 CEST 2026
com.example.app-main-5\:/drawable/ic_launcher_foreground.xml=/Users/aln/Work/Matma/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_launcher_foreground.xml com.example.app-main-5\:/drawable/ic_launcher_foreground.xml=/Users/aln/Work/Matma/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_launcher_foreground.xml
com.example.app-main-5\:/layout/activity_splash.xml=/Users/aln/Work/Matma/app/build/intermediates/packaged_res/debug/packageDebugResources/layout/activity_splash.xml
com.example.app-main-5\:/mipmap-anydpi-v26/ic_launcher.xml=/Users/aln/Work/Matma/app/build/intermediates/packaged_res/debug/packageDebugResources/mipmap-anydpi-v26/ic_launcher.xml com.example.app-main-5\:/mipmap-anydpi-v26/ic_launcher.xml=/Users/aln/Work/Matma/app/build/intermediates/packaged_res/debug/packageDebugResources/mipmap-anydpi-v26/ic_launcher.xml
com.example.app-main-5\:/mipmap-hdpi/ic_launcher.png=/Users/aln/Work/Matma/app/build/intermediates/packaged_res/debug/packageDebugResources/mipmap-hdpi-v4/ic_launcher.png com.example.app-main-5\:/mipmap-hdpi/ic_launcher.png=/Users/aln/Work/Matma/app/build/intermediates/packaged_res/debug/packageDebugResources/mipmap-hdpi-v4/ic_launcher.png
com.example.app-main-5\:/mipmap-hdpi/ic_launcher_foreground.png=/Users/aln/Work/Matma/app/build/intermediates/packaged_res/debug/packageDebugResources/mipmap-hdpi-v4/ic_launcher_foreground.png com.example.app-main-5\:/mipmap-hdpi/ic_launcher_foreground.png=/Users/aln/Work/Matma/app/build/intermediates/packaged_res/debug/packageDebugResources/mipmap-hdpi-v4/ic_launcher_foreground.png
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!&lt;dir>navigation"><source path="/Users/aln/Work/Matma/app/src/main/res"><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-mdpi/ic_launcher.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-hdpi/ic_launcher.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/drawable/ic_launcher_foreground.xml" qualifiers="" type="drawable"/><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" qualifiers="xxhdpi-v4" type="mipmap"/><file path="/Users/aln/Work/Matma/app/src/main/res/values/colors.xml" qualifiers=""><color name="ic_launcher_background">#2196F3</color></file><file path="/Users/aln/Work/Matma/app/src/main/res/values/styles.xml" qualifiers=""><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!&lt;dir>navigation"><source path="/Users/aln/Work/Matma/app/src/main/res"><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-mdpi/ic_launcher.png" qualifiers="mdpi-v4" type="mipmap"/><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-hdpi/ic_launcher.png" qualifiers="hdpi-v4" type="mipmap"/><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/drawable/ic_launcher_foreground.xml" qualifiers="" type="drawable"/><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" qualifiers="xxxhdpi-v4" type="mipmap"/><file name="activity_splash" path="/Users/aln/Work/Matma/app/src/main/res/layout/activity_splash.xml" qualifiers="" type="layout"/><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png" qualifiers="xxhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" qualifiers="xxhdpi-v4" type="mipmap"/><file path="/Users/aln/Work/Matma/app/src/main/res/values/colors.xml" qualifiers=""><color name="ic_launcher_background">#2196F3</color></file><file path="/Users/aln/Work/Matma/app/src/main/res/values/styles.xml" qualifiers=""><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style></file><file path="/Users/aln/Work/Matma/app/src/main/res/values/strings.xml" qualifiers=""><string name="app_name">Mądrik</string></file><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xhdpi/ic_launcher.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" qualifiers="anydpi-v26" type="mipmap"/></source></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!&lt;dir>navigation"><source path="/Users/aln/Work/Matma/app/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!&lt;dir>navigation"><source path="/Users/aln/Work/Matma/app/build/generated/res/resValues/debug"/></dataSet><mergedItems/></merger> </style></file><file path="/Users/aln/Work/Matma/app/src/main/res/values/strings.xml" qualifiers=""><string name="app_name">Mądrik</string></file><file name="ic_launcher_foreground" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-xhdpi/ic_launcher.png" qualifiers="xhdpi-v4" type="mipmap"/><file name="ic_launcher" path="/Users/aln/Work/Matma/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" qualifiers="anydpi-v26" type="mipmap"/></source></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!&lt;dir>navigation"><source path="/Users/aln/Work/Matma/app/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!&lt;dir>navigation"><source path="/Users/aln/Work/Matma/app/build/generated/res/resValues/debug"/></dataSet><mergedItems/></merger>
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/src/main/assets"><file name="czytanie.html" path="/Users/aln/Work/Matma/app/src/main/assets/czytanie.html"/><file name="index.html" path="/Users/aln/Work/Matma/app/src/main/assets/index.html"/><file name="styles.css" path="/Users/aln/Work/Matma/app/src/main/assets/styles.css"/><file name="css/styles.css" path="/Users/aln/Work/Matma/app/src/main/assets/css/styles.css"/><file name="css/fonts/inter.css" path="/Users/aln/Work/Matma/app/src/main/assets/css/fonts/inter.css"/><file name="js/mnozenie.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/mnozenie.js"/><file name="js/dyktando.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/dyktando.js"/><file name="js/version.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/version.js"/><file name="js/components.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/components.js"/><file name="js/czytanie.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/czytanie.js"/><file name="js/nav.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/nav.js"/><file name="js/app.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/app.js"/><file name="js/dzielenie.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/dzielenie.js"/><file name="mnozenie.html" path="/Users/aln/Work/Matma/app/src/main/assets/mnozenie.html"/><file name="dzielenie.html" path="/Users/aln/Work/Matma/app/src/main/assets/dzielenie.html"/><file name="components/progress-bar.html" path="/Users/aln/Work/Matma/app/src/main/assets/components/progress-bar.html"/><file name="components/footer.html" path="/Users/aln/Work/Matma/app/src/main/assets/components/footer.html"/><file name="components/header.html" path="/Users/aln/Work/Matma/app/src/main/assets/components/header.html"/><file name="json/dyktanda.json" path="/Users/aln/Work/Matma/app/src/main/assets/json/dyktanda.json"/><file name="dyktando.html" path="/Users/aln/Work/Matma/app/src/main/assets/dyktando.html"/><file name="testy.html" path="/Users/aln/Work/Matma/app/src/main/assets/testy.html"/><file name="fonts/Inter-Medium.ttf" path="/Users/aln/Work/Matma/app/src/main/assets/fonts/Inter-Medium.ttf"/><file name="fonts/Inter-Bold.ttf" path="/Users/aln/Work/Matma/app/src/main/assets/fonts/Inter-Bold.ttf"/><file name="fonts/Inter-Regular.ttf" path="/Users/aln/Work/Matma/app/src/main/assets/fonts/Inter-Regular.ttf"/><file name="fonts/Inter-ExtraBold.ttf" path="/Users/aln/Work/Matma/app/src/main/assets/fonts/Inter-ExtraBold.ttf"/></source></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/src/debug/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet></merger> <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/src/main/assets"><file name="czytanie.html" path="/Users/aln/Work/Matma/app/src/main/assets/czytanie.html"/><file name="index.html" path="/Users/aln/Work/Matma/app/src/main/assets/index.html"/><file name="styles.css" path="/Users/aln/Work/Matma/app/src/main/assets/styles.css"/><file name="css/styles.css" path="/Users/aln/Work/Matma/app/src/main/assets/css/styles.css"/><file name="css/fonts/inter.css" path="/Users/aln/Work/Matma/app/src/main/assets/css/fonts/inter.css"/><file name="js/mnozenie.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/mnozenie.js"/><file name="js/dyktando.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/dyktando.js"/><file name="js/version.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/version.js"/><file name="js/components.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/components.js"/><file name="js/czytanie.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/czytanie.js"/><file name="js/nav.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/nav.js"/><file name="js/app.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/app.js"/><file name="js/dzielenie.js" path="/Users/aln/Work/Matma/app/src/main/assets/js/dzielenie.js"/><file name="mnozenie.html" path="/Users/aln/Work/Matma/app/src/main/assets/mnozenie.html"/><file name="dzielenie.html" path="/Users/aln/Work/Matma/app/src/main/assets/dzielenie.html"/><file name="components/progress-bar.html" path="/Users/aln/Work/Matma/app/src/main/assets/components/progress-bar.html"/><file name="components/footer.html" path="/Users/aln/Work/Matma/app/src/main/assets/components/footer.html"/><file name="components/header.html" path="/Users/aln/Work/Matma/app/src/main/assets/components/header.html"/><file name="json/dyktanda.json" path="/Users/aln/Work/Matma/app/src/main/assets/json/dyktanda.json"/><file name="dyktando.html" path="/Users/aln/Work/Matma/app/src/main/assets/dyktando.html"/><file name="testy.html" path="/Users/aln/Work/Matma/app/src/main/assets/testy.html"/><file name="fonts/Inter-Medium.ttf" path="/Users/aln/Work/Matma/app/src/main/assets/fonts/Inter-Medium.ttf"/><file name="fonts/Inter-Bold.ttf" path="/Users/aln/Work/Matma/app/src/main/assets/fonts/Inter-Bold.ttf"/><file name="fonts/Inter-Regular.ttf" path="/Users/aln/Work/Matma/app/src/main/assets/fonts/Inter-Regular.ttf"/><file name="fonts/Inter-ExtraBold.ttf" path="/Users/aln/Work/Matma/app/src/main/assets/fonts/Inter-ExtraBold.ttf"/></source></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/aln/Work/Matma/app/src/debug/assets"/></dataSet></merger>
@@ -1,10 +1,13 @@
#Tue Jun 09 16:10:17 CEST 2026 #Sat Jun 13 17:25:09 CEST 2026
base.2=/Users/aln/Work/Matma/app/build/intermediates/dex/debug/mergeProjectDexDebug/6/classes.dex
path.2=6/classes.dex
base.1=/Users/aln/Work/Matma/app/build/intermediates/dex/debug/mergeProjectDexDebug/0/classes.dex
path.1=0/classes.dex
base.0=/Users/aln/Work/Matma/app/build/intermediates/dex/debug/mergeExtDexDebug/classes.dex base.0=/Users/aln/Work/Matma/app/build/intermediates/dex/debug/mergeExtDexDebug/classes.dex
renamed.2=classes3.dex base.1=/Users/aln/Work/Matma/app/build/intermediates/dex/debug/mergeProjectDexDebug/0/classes.dex
renamed.1=classes2.dex base.2=/Users/aln/Work/Matma/app/build/intermediates/dex/debug/mergeProjectDexDebug/6/classes.dex
renamed.0=classes.dex base.3=/Users/aln/Work/Matma/app/build/intermediates/global_synthetics_dex/debug/generateDebugGlobalSynthetics/classes.dex
path.0=classes.dex path.0=classes.dex
path.1=0/classes.dex
path.2=6/classes.dex
path.3=classes.dex
renamed.0=classes.dex
renamed.1=classes2.dex
renamed.2=classes3.dex
renamed.3=classes4.dex
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
3 5
0 0
Binary file not shown.
@@ -1,38 +1,38 @@
-- Merging decision tree log --- -- Merging decision tree log ---
manifest manifest
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:2:1-19:12 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:2:1-20:12
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:2:1-19:12 INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:2:1-20:12
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:2:1-19:12 INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:2:1-20:12
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:2:1-19:12 INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:2:1-20:12
MERGED from [androidx.appcompat:appcompat-resources:1.6.1] /Users/aln/.gradle/caches/8.13/transforms/713638112f33325d15a386e2efe37538/transformed/jetified-appcompat-resources-1.6.1/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.appcompat:appcompat-resources:1.6.1] /Users/aln/.gradle/caches/9.4.1/transforms/d13c4284f6d4c5d01809adcb8021f6a3/transformed/jetified-appcompat-resources-1.6.1/AndroidManifest.xml:17:1-22:12
MERGED from [androidx.appcompat:appcompat:1.6.1] /Users/aln/.gradle/caches/8.13/transforms/6f9e8ecf0d3462dc2adbdc2c96ea4d0b/transformed/appcompat-1.6.1/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.appcompat:appcompat:1.6.1] /Users/aln/.gradle/caches/9.4.1/transforms/3969f89346de637e0ad982302e59cf31/transformed/appcompat-1.6.1/AndroidManifest.xml:17:1-22:12
MERGED from [androidx.webkit:webkit:1.8.0] /Users/aln/.gradle/caches/8.13/transforms/6120691635c3c3efdd439e89e6eba3fe/transformed/webkit-1.8.0/AndroidManifest.xml:2:1-7:12 MERGED from [androidx.webkit:webkit:1.8.0] /Users/aln/.gradle/caches/9.4.1/transforms/29d4f5ad4b45d9964d7986f50324b6c4/transformed/webkit-1.8.0/AndroidManifest.xml:2:1-7:12
MERGED from [androidx.fragment:fragment:1.3.6] /Users/aln/.gradle/caches/8.13/transforms/8c4f7650a448352f4ffb70bfa94e26b5/transformed/fragment-1.3.6/AndroidManifest.xml:17:1-24:12 MERGED from [androidx.fragment:fragment:1.3.6] /Users/aln/.gradle/caches/9.4.1/transforms/b8fcb7f17da310b61fb65d3be7774e2b/transformed/fragment-1.3.6/AndroidManifest.xml:17:1-24:12
MERGED from [androidx.activity:activity:1.6.0] /Users/aln/.gradle/caches/8.13/transforms/99f25bd6be8b9102450d571c623f800c/transformed/jetified-activity-1.6.0/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.activity:activity:1.6.0] /Users/aln/.gradle/caches/9.4.1/transforms/f6a193e29b611a70adc40b162f71866c/transformed/jetified-activity-1.6.0/AndroidManifest.xml:17:1-22:12
MERGED from [androidx.drawerlayout:drawerlayout:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/a4e3f3205f67d5987ee7b78b61c9cfa4/transformed/drawerlayout-1.0.0/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.drawerlayout:drawerlayout:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/e0bd629ca5cc9e1e131473e25117d734/transformed/drawerlayout-1.0.0/AndroidManifest.xml:17:1-22:12
MERGED from [androidx.emoji2:emoji2-views-helper:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/2d3e082a974d224108680c86f63f1b7c/transformed/jetified-emoji2-views-helper-1.2.0/AndroidManifest.xml:2:1-7:12 MERGED from [androidx.emoji2:emoji2-views-helper:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/ee45953d1f3efdb6beaa8c650ff71d85/transformed/jetified-emoji2-views-helper-1.2.0/AndroidManifest.xml:2:1-7:12
MERGED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:17:1-35:12 MERGED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:17:1-35:12
MERGED from [androidx.vectordrawable:vectordrawable-animated:1.1.0] /Users/aln/.gradle/caches/8.13/transforms/55157247b0c6074e5e9ad9670de48eda/transformed/vectordrawable-animated-1.1.0/AndroidManifest.xml:17:1-24:12 MERGED from [androidx.vectordrawable:vectordrawable-animated:1.1.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2f413d4baa07c2e8c7678506b223b42/transformed/vectordrawable-animated-1.1.0/AndroidManifest.xml:17:1-24:12
MERGED from [androidx.vectordrawable:vectordrawable:1.1.0] /Users/aln/.gradle/caches/8.13/transforms/0b6164b90fdc603f92c5352117dda76f/transformed/vectordrawable-1.1.0/AndroidManifest.xml:17:1-24:12 MERGED from [androidx.vectordrawable:vectordrawable:1.1.0] /Users/aln/.gradle/caches/9.4.1/transforms/30f91f8a59f8474f001e44d296085da9/transformed/vectordrawable-1.1.0/AndroidManifest.xml:17:1-24:12
MERGED from [androidx.viewpager:viewpager:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/d9e0c936320936da0b576c2c55fb5397/transformed/viewpager-1.0.0/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.viewpager:viewpager:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/2391166240bb1fe60da7a5801b18139a/transformed/viewpager-1.0.0/AndroidManifest.xml:17:1-22:12
MERGED from [androidx.customview:customview:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/7fd9fbe772debba1a8dd05d005259ea4/transformed/customview-1.0.0/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.customview:customview:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/db91b1bbb5adf89ee504d37cc38fa117/transformed/customview-1.0.0/AndroidManifest.xml:17:1-22:12
MERGED from [androidx.loader:loader:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/b2712e4aa9905fab080709e3d38ad8e8/transformed/loader-1.0.0/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.loader:loader:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/29b72aeaf74120861614778ede0f7039/transformed/loader-1.0.0/AndroidManifest.xml:17:1-22:12
MERGED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:17:1-30:12 MERGED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:17:1-30:12
MERGED from [androidx.lifecycle:lifecycle-viewmodel:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/7397d3192dec0258e660ee189ab7ef49/transformed/lifecycle-viewmodel-2.5.1/AndroidManifest.xml:17:1-24:12 MERGED from [androidx.lifecycle:lifecycle-viewmodel:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/e99b345e1e1ee79842a762c787378afb/transformed/lifecycle-viewmodel-2.5.1/AndroidManifest.xml:17:1-24:12
MERGED from [androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/0fe1a7a193385e3f14bcfc49387de81f/transformed/jetified-lifecycle-viewmodel-savedstate-2.5.1/AndroidManifest.xml:17:1-24:12 MERGED from [androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/807e3878a3bca3f50434d424d039555a/transformed/jetified-lifecycle-viewmodel-savedstate-2.5.1/AndroidManifest.xml:17:1-24:12
MERGED from [androidx.core:core-ktx:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/67176fb9e011fbf4ee75d79879ac2016/transformed/jetified-core-ktx-1.9.0/AndroidManifest.xml:2:1-7:12 MERGED from [androidx.core:core-ktx:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/ced1b185d2c82fbb2e97075f3d7c8a55/transformed/jetified-core-ktx-1.9.0/AndroidManifest.xml:2:1-7:12
MERGED from [androidx.savedstate:savedstate:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/570372f4f80aa06cc1d6728ff46086b5/transformed/jetified-savedstate-1.2.0/AndroidManifest.xml:17:1-24:12 MERGED from [androidx.savedstate:savedstate:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/ba5c29f6d621a58dc4384ba92df8386f/transformed/jetified-savedstate-1.2.0/AndroidManifest.xml:17:1-24:12
MERGED from [androidx.annotation:annotation-experimental:1.3.0] /Users/aln/.gradle/caches/8.13/transforms/c68763c89829776b661e04e5854f62d4/transformed/jetified-annotation-experimental-1.3.0/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.annotation:annotation-experimental:1.3.0] /Users/aln/.gradle/caches/9.4.1/transforms/05b87fd6b1bbbfebbf606e2b3ecc0fc7/transformed/jetified-annotation-experimental-1.3.0/AndroidManifest.xml:17:1-22:12
MERGED from [androidx.cursoradapter:cursoradapter:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/c2c978dd2d9a48ba382a41dc9b6123ec/transformed/cursoradapter-1.0.0/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.cursoradapter:cursoradapter:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/bab794db77407ed3ab60c8956c3820d5/transformed/cursoradapter-1.0.0/AndroidManifest.xml:17:1-22:12
MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/8.13/transforms/d89f8ae20a95875eed3b361333d04057/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:17:1-37:12 MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/9.4.1/transforms/fa5338f12be99a5090b21af953bb5682/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:17:1-37:12
MERGED from [androidx.lifecycle:lifecycle-runtime:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/84bc96fceee56c7b3392758537c865b5/transformed/lifecycle-runtime-2.5.1/AndroidManifest.xml:17:1-24:12 MERGED from [androidx.lifecycle:lifecycle-runtime:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/7e752b2bd937d1085f08ad0c55cdcacb/transformed/lifecycle-runtime-2.5.1/AndroidManifest.xml:17:1-24:12
MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/e5f42c742315b6e699ecd09b52c5f4dc/transformed/versionedparcelable-1.1.1/AndroidManifest.xml:17:1-27:12 MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/daf231a4ba397b3a6b84ca798f5c75b4/transformed/versionedparcelable-1.1.1/AndroidManifest.xml:17:1-27:12
MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/4009683a95d035d4941ffe7cbfe569e1/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:17:1-33:12 MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/96ed0581ce971984bd5d829f62572234/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:17:1-33:12
MERGED from [androidx.tracing:tracing:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/841a4f80e6a783be16f1611b1127a01d/transformed/jetified-tracing-1.0.0/AndroidManifest.xml:17:1-24:12 MERGED from [androidx.tracing:tracing:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/56262015404c85952b5962cb1f231031/transformed/jetified-tracing-1.0.0/AndroidManifest.xml:17:1-24:12
MERGED from [androidx.lifecycle:lifecycle-livedata:2.0.0] /Users/aln/.gradle/caches/8.13/transforms/e0ed78fd202b9e9baa1390cf45bec20c/transformed/lifecycle-livedata-2.0.0/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.lifecycle:lifecycle-livedata:2.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/7b9db7d2633fa4fe54cc006ada26803b/transformed/lifecycle-livedata-2.0.0/AndroidManifest.xml:17:1-22:12
MERGED from [androidx.lifecycle:lifecycle-livedata-core:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/4ba5ffe77a1c5eb74b8c9d26b0ee0b12/transformed/lifecycle-livedata-core-2.5.1/AndroidManifest.xml:17:1-24:12 MERGED from [androidx.lifecycle:lifecycle-livedata-core:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/f868691aa015f43c68018d894221c368/transformed/lifecycle-livedata-core-2.5.1/AndroidManifest.xml:17:1-24:12
MERGED from [androidx.arch.core:core-runtime:2.1.0] /Users/aln/.gradle/caches/8.13/transforms/0089b18ff108eb52f8d22f075041b40a/transformed/core-runtime-2.1.0/AndroidManifest.xml:17:1-24:12 MERGED from [androidx.arch.core:core-runtime:2.1.0] /Users/aln/.gradle/caches/9.4.1/transforms/74310c6ce80b731954534d5ee1d49362/transformed/core-runtime-2.1.0/AndroidManifest.xml:17:1-24:12
MERGED from [androidx.interpolator:interpolator:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/c1a25ca6f5596433934f0708686b4c4d/transformed/interpolator-1.0.0/AndroidManifest.xml:17:1-22:12 MERGED from [androidx.interpolator:interpolator:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/2f6204e71abdc431b544e429dc1da85e/transformed/interpolator-1.0.0/AndroidManifest.xml:17:1-22:12
package package
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml
android:versionName android:versionName
@@ -45,158 +45,162 @@ uses-permission#android.permission.INTERNET
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:3:5-67 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:3:5-67
android:name android:name
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:3:22-64 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:3:22-64
uses-permission#android.permission.ACCESS_NETWORK_STATE
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:4:5-79
android:name
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:4:22-76
application application
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:4:5-18:19 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:5:5-19:19
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:4:5-18:19 INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:5:5-19:19
MERGED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:23:5-33:19 MERGED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:23:5-33:19
MERGED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:23:5-33:19 MERGED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:23:5-33:19
MERGED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:28:5-89 MERGED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:28:5-89
MERGED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:28:5-89 MERGED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:28:5-89
MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/8.13/transforms/d89f8ae20a95875eed3b361333d04057/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:25:5-35:19 MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/9.4.1/transforms/fa5338f12be99a5090b21af953bb5682/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:25:5-35:19
MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/8.13/transforms/d89f8ae20a95875eed3b361333d04057/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:25:5-35:19 MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/9.4.1/transforms/fa5338f12be99a5090b21af953bb5682/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:25:5-35:19
MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/e5f42c742315b6e699ecd09b52c5f4dc/transformed/versionedparcelable-1.1.1/AndroidManifest.xml:24:5-25:19 MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/daf231a4ba397b3a6b84ca798f5c75b4/transformed/versionedparcelable-1.1.1/AndroidManifest.xml:24:5-25:19
MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/e5f42c742315b6e699ecd09b52c5f4dc/transformed/versionedparcelable-1.1.1/AndroidManifest.xml:24:5-25:19 MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/daf231a4ba397b3a6b84ca798f5c75b4/transformed/versionedparcelable-1.1.1/AndroidManifest.xml:24:5-25:19
MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/4009683a95d035d4941ffe7cbfe569e1/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:25:5-31:19 MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/96ed0581ce971984bd5d829f62572234/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:25:5-31:19
MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/4009683a95d035d4941ffe7cbfe569e1/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:25:5-31:19 MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/96ed0581ce971984bd5d829f62572234/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:25:5-31:19
android:extractNativeLibs android:extractNativeLibs
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml
android:appComponentFactory android:appComponentFactory
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:28:18-86 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:28:18-86
android:label android:label
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:6:9-41 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:7:9-41
android:icon android:icon
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:7:9-43 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:8:9-43
android:theme android:theme
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:5:9-40 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:6:9-40
activity#com.example.app.MainActivity activity#com.example.app.MainActivity
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:8:9-17:20 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:9:9-18:20
android:screenOrientation android:screenOrientation
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:11:13-49 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:12:13-49
android:exported android:exported
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:10:13-36 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:11:13-36
android:configChanges android:configChanges
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:12:13-59 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:13:13-59
android:name android:name
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:9:13-41 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:10:13-41
intent-filter#action:name:android.intent.action.MAIN+category:name:android.intent.category.LAUNCHER intent-filter#action:name:android.intent.action.MAIN+category:name:android.intent.category.LAUNCHER
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:13:13-16:29 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:14:13-17:29
action#android.intent.action.MAIN action#android.intent.action.MAIN
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:14:17-69 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:15:17-69
android:name android:name
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:14:25-66 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:15:25-66
category#android.intent.category.LAUNCHER category#android.intent.category.LAUNCHER
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:15:17-77 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:16:17-77
android:name android:name
ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:15:27-74 ADDED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml:16:27-74
uses-sdk uses-sdk
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml reason: use-sdk injection requested INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml reason: use-sdk injection requested
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml
MERGED from [androidx.appcompat:appcompat-resources:1.6.1] /Users/aln/.gradle/caches/8.13/transforms/713638112f33325d15a386e2efe37538/transformed/jetified-appcompat-resources-1.6.1/AndroidManifest.xml:20:5-44 MERGED from [androidx.appcompat:appcompat-resources:1.6.1] /Users/aln/.gradle/caches/9.4.1/transforms/d13c4284f6d4c5d01809adcb8021f6a3/transformed/jetified-appcompat-resources-1.6.1/AndroidManifest.xml:20:5-44
MERGED from [androidx.appcompat:appcompat-resources:1.6.1] /Users/aln/.gradle/caches/8.13/transforms/713638112f33325d15a386e2efe37538/transformed/jetified-appcompat-resources-1.6.1/AndroidManifest.xml:20:5-44 MERGED from [androidx.appcompat:appcompat-resources:1.6.1] /Users/aln/.gradle/caches/9.4.1/transforms/d13c4284f6d4c5d01809adcb8021f6a3/transformed/jetified-appcompat-resources-1.6.1/AndroidManifest.xml:20:5-44
MERGED from [androidx.appcompat:appcompat:1.6.1] /Users/aln/.gradle/caches/8.13/transforms/6f9e8ecf0d3462dc2adbdc2c96ea4d0b/transformed/appcompat-1.6.1/AndroidManifest.xml:20:5-44 MERGED from [androidx.appcompat:appcompat:1.6.1] /Users/aln/.gradle/caches/9.4.1/transforms/3969f89346de637e0ad982302e59cf31/transformed/appcompat-1.6.1/AndroidManifest.xml:20:5-44
MERGED from [androidx.appcompat:appcompat:1.6.1] /Users/aln/.gradle/caches/8.13/transforms/6f9e8ecf0d3462dc2adbdc2c96ea4d0b/transformed/appcompat-1.6.1/AndroidManifest.xml:20:5-44 MERGED from [androidx.appcompat:appcompat:1.6.1] /Users/aln/.gradle/caches/9.4.1/transforms/3969f89346de637e0ad982302e59cf31/transformed/appcompat-1.6.1/AndroidManifest.xml:20:5-44
MERGED from [androidx.webkit:webkit:1.8.0] /Users/aln/.gradle/caches/8.13/transforms/6120691635c3c3efdd439e89e6eba3fe/transformed/webkit-1.8.0/AndroidManifest.xml:5:5-44 MERGED from [androidx.webkit:webkit:1.8.0] /Users/aln/.gradle/caches/9.4.1/transforms/29d4f5ad4b45d9964d7986f50324b6c4/transformed/webkit-1.8.0/AndroidManifest.xml:5:5-44
MERGED from [androidx.webkit:webkit:1.8.0] /Users/aln/.gradle/caches/8.13/transforms/6120691635c3c3efdd439e89e6eba3fe/transformed/webkit-1.8.0/AndroidManifest.xml:5:5-44 MERGED from [androidx.webkit:webkit:1.8.0] /Users/aln/.gradle/caches/9.4.1/transforms/29d4f5ad4b45d9964d7986f50324b6c4/transformed/webkit-1.8.0/AndroidManifest.xml:5:5-44
MERGED from [androidx.fragment:fragment:1.3.6] /Users/aln/.gradle/caches/8.13/transforms/8c4f7650a448352f4ffb70bfa94e26b5/transformed/fragment-1.3.6/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.fragment:fragment:1.3.6] /Users/aln/.gradle/caches/9.4.1/transforms/b8fcb7f17da310b61fb65d3be7774e2b/transformed/fragment-1.3.6/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.fragment:fragment:1.3.6] /Users/aln/.gradle/caches/8.13/transforms/8c4f7650a448352f4ffb70bfa94e26b5/transformed/fragment-1.3.6/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.fragment:fragment:1.3.6] /Users/aln/.gradle/caches/9.4.1/transforms/b8fcb7f17da310b61fb65d3be7774e2b/transformed/fragment-1.3.6/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.activity:activity:1.6.0] /Users/aln/.gradle/caches/8.13/transforms/99f25bd6be8b9102450d571c623f800c/transformed/jetified-activity-1.6.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.activity:activity:1.6.0] /Users/aln/.gradle/caches/9.4.1/transforms/f6a193e29b611a70adc40b162f71866c/transformed/jetified-activity-1.6.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.activity:activity:1.6.0] /Users/aln/.gradle/caches/8.13/transforms/99f25bd6be8b9102450d571c623f800c/transformed/jetified-activity-1.6.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.activity:activity:1.6.0] /Users/aln/.gradle/caches/9.4.1/transforms/f6a193e29b611a70adc40b162f71866c/transformed/jetified-activity-1.6.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.drawerlayout:drawerlayout:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/a4e3f3205f67d5987ee7b78b61c9cfa4/transformed/drawerlayout-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.drawerlayout:drawerlayout:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/e0bd629ca5cc9e1e131473e25117d734/transformed/drawerlayout-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.drawerlayout:drawerlayout:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/a4e3f3205f67d5987ee7b78b61c9cfa4/transformed/drawerlayout-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.drawerlayout:drawerlayout:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/e0bd629ca5cc9e1e131473e25117d734/transformed/drawerlayout-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.emoji2:emoji2-views-helper:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/2d3e082a974d224108680c86f63f1b7c/transformed/jetified-emoji2-views-helper-1.2.0/AndroidManifest.xml:5:5-44 MERGED from [androidx.emoji2:emoji2-views-helper:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/ee45953d1f3efdb6beaa8c650ff71d85/transformed/jetified-emoji2-views-helper-1.2.0/AndroidManifest.xml:5:5-44
MERGED from [androidx.emoji2:emoji2-views-helper:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/2d3e082a974d224108680c86f63f1b7c/transformed/jetified-emoji2-views-helper-1.2.0/AndroidManifest.xml:5:5-44 MERGED from [androidx.emoji2:emoji2-views-helper:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/ee45953d1f3efdb6beaa8c650ff71d85/transformed/jetified-emoji2-views-helper-1.2.0/AndroidManifest.xml:5:5-44
MERGED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:21:5-44 MERGED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:21:5-44
MERGED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:21:5-44 MERGED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:21:5-44
MERGED from [androidx.vectordrawable:vectordrawable-animated:1.1.0] /Users/aln/.gradle/caches/8.13/transforms/55157247b0c6074e5e9ad9670de48eda/transformed/vectordrawable-animated-1.1.0/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.vectordrawable:vectordrawable-animated:1.1.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2f413d4baa07c2e8c7678506b223b42/transformed/vectordrawable-animated-1.1.0/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.vectordrawable:vectordrawable-animated:1.1.0] /Users/aln/.gradle/caches/8.13/transforms/55157247b0c6074e5e9ad9670de48eda/transformed/vectordrawable-animated-1.1.0/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.vectordrawable:vectordrawable-animated:1.1.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2f413d4baa07c2e8c7678506b223b42/transformed/vectordrawable-animated-1.1.0/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.vectordrawable:vectordrawable:1.1.0] /Users/aln/.gradle/caches/8.13/transforms/0b6164b90fdc603f92c5352117dda76f/transformed/vectordrawable-1.1.0/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.vectordrawable:vectordrawable:1.1.0] /Users/aln/.gradle/caches/9.4.1/transforms/30f91f8a59f8474f001e44d296085da9/transformed/vectordrawable-1.1.0/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.vectordrawable:vectordrawable:1.1.0] /Users/aln/.gradle/caches/8.13/transforms/0b6164b90fdc603f92c5352117dda76f/transformed/vectordrawable-1.1.0/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.vectordrawable:vectordrawable:1.1.0] /Users/aln/.gradle/caches/9.4.1/transforms/30f91f8a59f8474f001e44d296085da9/transformed/vectordrawable-1.1.0/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.viewpager:viewpager:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/d9e0c936320936da0b576c2c55fb5397/transformed/viewpager-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.viewpager:viewpager:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/2391166240bb1fe60da7a5801b18139a/transformed/viewpager-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.viewpager:viewpager:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/d9e0c936320936da0b576c2c55fb5397/transformed/viewpager-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.viewpager:viewpager:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/2391166240bb1fe60da7a5801b18139a/transformed/viewpager-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.customview:customview:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/7fd9fbe772debba1a8dd05d005259ea4/transformed/customview-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.customview:customview:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/db91b1bbb5adf89ee504d37cc38fa117/transformed/customview-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.customview:customview:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/7fd9fbe772debba1a8dd05d005259ea4/transformed/customview-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.customview:customview:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/db91b1bbb5adf89ee504d37cc38fa117/transformed/customview-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.loader:loader:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/b2712e4aa9905fab080709e3d38ad8e8/transformed/loader-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.loader:loader:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/29b72aeaf74120861614778ede0f7039/transformed/loader-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.loader:loader:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/b2712e4aa9905fab080709e3d38ad8e8/transformed/loader-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.loader:loader:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/29b72aeaf74120861614778ede0f7039/transformed/loader-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.lifecycle:lifecycle-viewmodel:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/7397d3192dec0258e660ee189ab7ef49/transformed/lifecycle-viewmodel-2.5.1/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.lifecycle:lifecycle-viewmodel:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/e99b345e1e1ee79842a762c787378afb/transformed/lifecycle-viewmodel-2.5.1/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.lifecycle:lifecycle-viewmodel:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/7397d3192dec0258e660ee189ab7ef49/transformed/lifecycle-viewmodel-2.5.1/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.lifecycle:lifecycle-viewmodel:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/e99b345e1e1ee79842a762c787378afb/transformed/lifecycle-viewmodel-2.5.1/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/0fe1a7a193385e3f14bcfc49387de81f/transformed/jetified-lifecycle-viewmodel-savedstate-2.5.1/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/807e3878a3bca3f50434d424d039555a/transformed/jetified-lifecycle-viewmodel-savedstate-2.5.1/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/0fe1a7a193385e3f14bcfc49387de81f/transformed/jetified-lifecycle-viewmodel-savedstate-2.5.1/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/807e3878a3bca3f50434d424d039555a/transformed/jetified-lifecycle-viewmodel-savedstate-2.5.1/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.core:core-ktx:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/67176fb9e011fbf4ee75d79879ac2016/transformed/jetified-core-ktx-1.9.0/AndroidManifest.xml:5:5-44 MERGED from [androidx.core:core-ktx:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/ced1b185d2c82fbb2e97075f3d7c8a55/transformed/jetified-core-ktx-1.9.0/AndroidManifest.xml:5:5-44
MERGED from [androidx.core:core-ktx:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/67176fb9e011fbf4ee75d79879ac2016/transformed/jetified-core-ktx-1.9.0/AndroidManifest.xml:5:5-44 MERGED from [androidx.core:core-ktx:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/ced1b185d2c82fbb2e97075f3d7c8a55/transformed/jetified-core-ktx-1.9.0/AndroidManifest.xml:5:5-44
MERGED from [androidx.savedstate:savedstate:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/570372f4f80aa06cc1d6728ff46086b5/transformed/jetified-savedstate-1.2.0/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.savedstate:savedstate:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/ba5c29f6d621a58dc4384ba92df8386f/transformed/jetified-savedstate-1.2.0/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.savedstate:savedstate:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/570372f4f80aa06cc1d6728ff46086b5/transformed/jetified-savedstate-1.2.0/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.savedstate:savedstate:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/ba5c29f6d621a58dc4384ba92df8386f/transformed/jetified-savedstate-1.2.0/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.annotation:annotation-experimental:1.3.0] /Users/aln/.gradle/caches/8.13/transforms/c68763c89829776b661e04e5854f62d4/transformed/jetified-annotation-experimental-1.3.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.annotation:annotation-experimental:1.3.0] /Users/aln/.gradle/caches/9.4.1/transforms/05b87fd6b1bbbfebbf606e2b3ecc0fc7/transformed/jetified-annotation-experimental-1.3.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.annotation:annotation-experimental:1.3.0] /Users/aln/.gradle/caches/8.13/transforms/c68763c89829776b661e04e5854f62d4/transformed/jetified-annotation-experimental-1.3.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.annotation:annotation-experimental:1.3.0] /Users/aln/.gradle/caches/9.4.1/transforms/05b87fd6b1bbbfebbf606e2b3ecc0fc7/transformed/jetified-annotation-experimental-1.3.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.cursoradapter:cursoradapter:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/c2c978dd2d9a48ba382a41dc9b6123ec/transformed/cursoradapter-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.cursoradapter:cursoradapter:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/bab794db77407ed3ab60c8956c3820d5/transformed/cursoradapter-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.cursoradapter:cursoradapter:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/c2c978dd2d9a48ba382a41dc9b6123ec/transformed/cursoradapter-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.cursoradapter:cursoradapter:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/bab794db77407ed3ab60c8956c3820d5/transformed/cursoradapter-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/8.13/transforms/d89f8ae20a95875eed3b361333d04057/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:21:5-23:41 MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/9.4.1/transforms/fa5338f12be99a5090b21af953bb5682/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:21:5-23:41
MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/8.13/transforms/d89f8ae20a95875eed3b361333d04057/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:21:5-23:41 MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/9.4.1/transforms/fa5338f12be99a5090b21af953bb5682/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:21:5-23:41
MERGED from [androidx.lifecycle:lifecycle-runtime:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/84bc96fceee56c7b3392758537c865b5/transformed/lifecycle-runtime-2.5.1/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.lifecycle:lifecycle-runtime:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/7e752b2bd937d1085f08ad0c55cdcacb/transformed/lifecycle-runtime-2.5.1/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.lifecycle:lifecycle-runtime:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/84bc96fceee56c7b3392758537c865b5/transformed/lifecycle-runtime-2.5.1/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.lifecycle:lifecycle-runtime:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/7e752b2bd937d1085f08ad0c55cdcacb/transformed/lifecycle-runtime-2.5.1/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/e5f42c742315b6e699ecd09b52c5f4dc/transformed/versionedparcelable-1.1.1/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/daf231a4ba397b3a6b84ca798f5c75b4/transformed/versionedparcelable-1.1.1/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/e5f42c742315b6e699ecd09b52c5f4dc/transformed/versionedparcelable-1.1.1/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/daf231a4ba397b3a6b84ca798f5c75b4/transformed/versionedparcelable-1.1.1/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/4009683a95d035d4941ffe7cbfe569e1/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:21:5-23:41 MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/96ed0581ce971984bd5d829f62572234/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:21:5-23:41
MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/4009683a95d035d4941ffe7cbfe569e1/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:21:5-23:41 MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/96ed0581ce971984bd5d829f62572234/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:21:5-23:41
MERGED from [androidx.tracing:tracing:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/841a4f80e6a783be16f1611b1127a01d/transformed/jetified-tracing-1.0.0/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.tracing:tracing:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/56262015404c85952b5962cb1f231031/transformed/jetified-tracing-1.0.0/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.tracing:tracing:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/841a4f80e6a783be16f1611b1127a01d/transformed/jetified-tracing-1.0.0/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.tracing:tracing:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/56262015404c85952b5962cb1f231031/transformed/jetified-tracing-1.0.0/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.lifecycle:lifecycle-livedata:2.0.0] /Users/aln/.gradle/caches/8.13/transforms/e0ed78fd202b9e9baa1390cf45bec20c/transformed/lifecycle-livedata-2.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.lifecycle:lifecycle-livedata:2.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/7b9db7d2633fa4fe54cc006ada26803b/transformed/lifecycle-livedata-2.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.lifecycle:lifecycle-livedata:2.0.0] /Users/aln/.gradle/caches/8.13/transforms/e0ed78fd202b9e9baa1390cf45bec20c/transformed/lifecycle-livedata-2.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.lifecycle:lifecycle-livedata:2.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/7b9db7d2633fa4fe54cc006ada26803b/transformed/lifecycle-livedata-2.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.lifecycle:lifecycle-livedata-core:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/4ba5ffe77a1c5eb74b8c9d26b0ee0b12/transformed/lifecycle-livedata-core-2.5.1/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.lifecycle:lifecycle-livedata-core:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/f868691aa015f43c68018d894221c368/transformed/lifecycle-livedata-core-2.5.1/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.lifecycle:lifecycle-livedata-core:2.5.1] /Users/aln/.gradle/caches/8.13/transforms/4ba5ffe77a1c5eb74b8c9d26b0ee0b12/transformed/lifecycle-livedata-core-2.5.1/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.lifecycle:lifecycle-livedata-core:2.5.1] /Users/aln/.gradle/caches/9.4.1/transforms/f868691aa015f43c68018d894221c368/transformed/lifecycle-livedata-core-2.5.1/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.arch.core:core-runtime:2.1.0] /Users/aln/.gradle/caches/8.13/transforms/0089b18ff108eb52f8d22f075041b40a/transformed/core-runtime-2.1.0/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.arch.core:core-runtime:2.1.0] /Users/aln/.gradle/caches/9.4.1/transforms/74310c6ce80b731954534d5ee1d49362/transformed/core-runtime-2.1.0/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.arch.core:core-runtime:2.1.0] /Users/aln/.gradle/caches/8.13/transforms/0089b18ff108eb52f8d22f075041b40a/transformed/core-runtime-2.1.0/AndroidManifest.xml:20:5-22:41 MERGED from [androidx.arch.core:core-runtime:2.1.0] /Users/aln/.gradle/caches/9.4.1/transforms/74310c6ce80b731954534d5ee1d49362/transformed/core-runtime-2.1.0/AndroidManifest.xml:20:5-22:41
MERGED from [androidx.interpolator:interpolator:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/c1a25ca6f5596433934f0708686b4c4d/transformed/interpolator-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.interpolator:interpolator:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/2f6204e71abdc431b544e429dc1da85e/transformed/interpolator-1.0.0/AndroidManifest.xml:20:5-44
MERGED from [androidx.interpolator:interpolator:1.0.0] /Users/aln/.gradle/caches/8.13/transforms/c1a25ca6f5596433934f0708686b4c4d/transformed/interpolator-1.0.0/AndroidManifest.xml:20:5-44 MERGED from [androidx.interpolator:interpolator:1.0.0] /Users/aln/.gradle/caches/9.4.1/transforms/2f6204e71abdc431b544e429dc1da85e/transformed/interpolator-1.0.0/AndroidManifest.xml:20:5-44
android:targetSdkVersion android:targetSdkVersion
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml
android:minSdkVersion android:minSdkVersion
INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml INJECTED from /Users/aln/Work/Matma/app/src/main/AndroidManifest.xml
provider#androidx.startup.InitializationProvider provider#androidx.startup.InitializationProvider
ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:24:9-32:20 ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:24:9-32:20
MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/8.13/transforms/d89f8ae20a95875eed3b361333d04057/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:26:9-34:20 MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/9.4.1/transforms/fa5338f12be99a5090b21af953bb5682/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:26:9-34:20
MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/8.13/transforms/d89f8ae20a95875eed3b361333d04057/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:26:9-34:20 MERGED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/9.4.1/transforms/fa5338f12be99a5090b21af953bb5682/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:26:9-34:20
MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/4009683a95d035d4941ffe7cbfe569e1/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:26:9-30:34 MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/96ed0581ce971984bd5d829f62572234/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:26:9-30:34
MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/8.13/transforms/4009683a95d035d4941ffe7cbfe569e1/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:26:9-30:34 MERGED from [androidx.startup:startup-runtime:1.1.1] /Users/aln/.gradle/caches/9.4.1/transforms/96ed0581ce971984bd5d829f62572234/transformed/jetified-startup-runtime-1.1.1/AndroidManifest.xml:26:9-30:34
tools:node tools:node
ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:28:13-31 ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:28:13-31
android:authorities android:authorities
ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:26:13-68 ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:26:13-68
android:exported android:exported
ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:27:13-37 ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:27:13-37
android:name android:name
ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:25:13-67 ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:25:13-67
meta-data#androidx.emoji2.text.EmojiCompatInitializer meta-data#androidx.emoji2.text.EmojiCompatInitializer
ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:29:13-31:52 ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:29:13-31:52
android:value android:value
ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:31:17-49 ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:31:17-49
android:name android:name
ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/8.13/transforms/207604a08049a111cf7ff17619f3189f/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:30:17-75 ADDED from [androidx.emoji2:emoji2:1.2.0] /Users/aln/.gradle/caches/9.4.1/transforms/94725fbbff6deff236a54621c2b5f4e4/transformed/jetified-emoji2-1.2.0/AndroidManifest.xml:30:17-75
permission#${applicationId}.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION permission#${applicationId}.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:22:5-24:47 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:22:5-24:47
android:protectionLevel android:protectionLevel
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:24:9-44 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:24:9-44
android:name android:name
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:23:9-81 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:23:9-81
permission#com.example.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION permission#com.example.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:22:5-24:47 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:22:5-24:47
android:protectionLevel android:protectionLevel
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:24:9-44 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:24:9-44
android:name android:name
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:23:9-81 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:23:9-81
uses-permission#${applicationId}.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION uses-permission#${applicationId}.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:26:5-97 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:26:5-97
android:name android:name
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:26:22-94 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:26:22-94
uses-permission#com.example.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION uses-permission#com.example.app.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:26:5-97 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:26:5-97
android:name android:name
ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/8.13/transforms/3998928c0b9fc73079f29061a0297878/transformed/core-1.9.0/AndroidManifest.xml:26:22-94 ADDED from [androidx.core:core:1.9.0] /Users/aln/.gradle/caches/9.4.1/transforms/b2ed58dc9f03b7c299e141c3cc3c8031/transformed/core-1.9.0/AndroidManifest.xml:26:22-94
meta-data#androidx.lifecycle.ProcessLifecycleInitializer meta-data#androidx.lifecycle.ProcessLifecycleInitializer
ADDED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/8.13/transforms/d89f8ae20a95875eed3b361333d04057/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:31:13-33:52 ADDED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/9.4.1/transforms/fa5338f12be99a5090b21af953bb5682/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:31:13-33:52
android:value android:value
ADDED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/8.13/transforms/d89f8ae20a95875eed3b361333d04057/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:33:17-49 ADDED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/9.4.1/transforms/fa5338f12be99a5090b21af953bb5682/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:33:17-49
android:name android:name
ADDED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/8.13/transforms/d89f8ae20a95875eed3b361333d04057/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:32:17-78 ADDED from [androidx.lifecycle:lifecycle-process:2.4.1] /Users/aln/.gradle/caches/9.4.1/transforms/fa5338f12be99a5090b21af953bb5682/transformed/jetified-lifecycle-process-2.4.1/AndroidManifest.xml:32:17-78
+1
View File
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application <application
android:theme="@style/AppTheme" android:theme="@style/AppTheme"
android:label="@string/app_name" android:label="@string/app_name"
@@ -1,6 +1,7 @@
package com.example.app package com.example.app
import android.os.Bundle import android.os.Bundle
import android.view.View
import android.webkit.WebResourceRequest import android.webkit.WebResourceRequest
import android.webkit.WebResourceResponse import android.webkit.WebResourceResponse
import android.webkit.WebView import android.webkit.WebView
@@ -8,39 +9,57 @@ import android.webkit.WebViewClient
import java.io.File import java.io.File
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.webkit.WebViewAssetLoader import androidx.webkit.WebViewAssetLoader
import android.widget.ProgressBar
import android.widget.TextView
import android.util.Log
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
// show splash layout with progress bar while updater runs
setContentView(R.layout.activity_splash)
val progress = findViewById<ProgressBar>(R.id.splash_progress)
val status = findViewById<TextView>(R.id.splash_status)
val webView = WebView(this) val webView = WebView(this)
// Enable remote debugging for WebView so we can inspect JS console via chrome://inspect
WebView.setWebContentsDebuggingEnabled(true) WebView.setWebContentsDebuggingEnabled(true)
webView.settings.javaScriptEnabled = true webView.settings.javaScriptEnabled = true
webView.settings.domStorageEnabled = true webView.settings.domStorageEnabled = true
val updater = WebAppUpdater(this) val updater = WebAppUpdater(this)
// prefer to serve files from internal storage (filesDir/webapp), fallback to packaged assets
val internalPath = updater.getLocalWebAppPath()
val assetLoader = WebViewAssetLoader.Builder() val assetLoader = WebViewAssetLoader.Builder()
.addPathHandler("/assets/", WebViewAssetLoader.AssetsPathHandler(this)) .addPathHandler("/assets/", WebViewAssetLoader.AssetsPathHandler(this))
.addPathHandler("/localweb/", object : WebViewAssetLoader.PathHandler {
override fun handle(path: String): WebResourceResponse? {
// path will look like "/localweb/index.html"
val rel = path.removePrefix("/localweb/")
if (rel.isEmpty()) return null
val f = File(filesDir, "webapp/$rel")
if (!f.exists() || !f.isFile) return null
val mime = when {
f.name.endsWith(".html") -> "text/html"
f.name.endsWith(".js") -> "application/javascript"
f.name.endsWith(".css") -> "text/css"
f.name.endsWith(".png") -> "image/png"
f.name.endsWith(".jpg") || f.name.endsWith(".jpeg") -> "image/jpeg"
else -> "application/octet-stream"
}
return WebResourceResponse(mime, "utf-8", f.inputStream())
}
})
.build() .build()
webView.webViewClient = object : WebViewClient() { webView.webViewClient = object : WebViewClient() {
override fun shouldInterceptRequest(view: WebView?, request: WebResourceRequest?): WebResourceResponse? { override fun shouldInterceptRequest(view: WebView?, request: WebResourceRequest?): WebResourceResponse? {
if (request == null) return null if (request == null) return null
// If we have a local webapp in filesDir/webapp, serve files directly from there
val localBase = updater.getLocalWebAppPath() val localBase = updater.getLocalWebAppPath()
if (localBase != null) { if (localBase != null) {
val uri = request.url val uri = request.url
val path = uri.path ?: "" val path = uri.path ?: ""
// expecting requests like /localweb/... mapped to filesDir/webapp/...
if (path.startsWith("/localweb/")) { if (path.startsWith("/localweb/")) {
val rel = path.removePrefix("/localweb/") val rel = path.removePrefix("/localweb/")
val f = File(localBase, rel) val f = File(localBase, rel)
@@ -58,25 +77,39 @@ class MainActivity : AppCompatActivity() {
} }
} }
// fallback to packaged assets via assetLoader
return assetLoader.shouldInterceptRequest(request.url) return assetLoader.shouldInterceptRequest(request.url)
} }
} }
// Start update in background; when finished, reload WebView to pick up local files // Start update; show progress on splash. Only proceed to replace splash with WebView when updater finishes.
updater.checkAndUpdate { updater.checkAndUpdate(onComplete = {
runOnUiThread { runOnUiThread {
// replace splash with webview
setContentView(webView)
val local = updater.getLocalWebAppPath() val local = updater.getLocalWebAppPath()
if (local != null) { if (local != null) {
// if we have a local copy, load it via mapped origin // prefer serving over the mapped HTTPS origin so the page has a secure origin
val idx = File(local, "index.html")
if (idx.exists() && idx.isFile) {
webView.loadUrl("https://appassets.androidplatform.net/localweb/index.html") webView.loadUrl("https://appassets.androidplatform.net/localweb/index.html")
} else {
Log.w("MainActivity", "local webapp index.html missing, falling back to packaged assets")
webView.loadUrl("https://appassets.androidplatform.net/assets/index.html")
}
} else { } else {
webView.loadUrl("https://appassets.androidplatform.net/assets/index.html") webView.loadUrl("https://appassets.androidplatform.net/assets/index.html")
} }
} }
}, onProgress = { downloaded, total ->
runOnUiThread {
if (total > 0) {
val pct = ((downloaded * 100) / total).toInt()
progress.progress = pct
status.text = "Pobieranie: $pct%"
} else {
status.text = "Pobieranie: ${downloaded / 1024} KB"
} }
}
// show WebView immediately (it will navigate when updater completes) })
setContentView(webView)
} }
} }
@@ -1,6 +1,9 @@
package com.example.app package com.example.app
import android.content.Context import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.Build
import android.util.Log import android.util.Log
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@@ -11,56 +14,48 @@ import java.io.FileOutputStream
import java.net.HttpURLConnection import java.net.HttpURLConnection
import java.net.URL import java.net.URL
import java.util.zip.ZipInputStream import java.util.zip.ZipInputStream
import org.json.JSONObject
/** /**
* Simple updater that checks a remote JSON for latest version and zip URL, * Updater that checks network availability and downloads a release zip from
* downloads and unpacks into internal storage under filesDir/webapp. * https://edu.aln.webd.pl/releases/latest.zip, then unpacks it into
* This is intentionally minimal — adapt URLs and error handling as needed. * filesDir/webapp so the app can serve it as its local web content.
*
* Notes/assumptions:
* - Packaged APK assets are read-only; we unpack into internal storage.
* - We use HTTP HEAD to obtain an ETag or Last-Modified header and store
* that value at filesDir/webapp/.version to avoid unnecessary downloads.
* - If the server does not provide ETag/Last-Modified we'll fall back to
* always downloading when online.
*/ */
class WebAppUpdater(private val context: Context) { class WebAppUpdater(private val context: Context) {
private val TAG = "WebAppUpdater" private val TAG = "WebAppUpdater"
// control URL on your server; update if your JSON lives at a different path private val zipUrl = "https://edu.aln.webd.pl/releases/latest.zip"
private val controlUrl = "https://edu.aln.webd.pl/app/latest.json"
private val targetDirName = "webapp" private val targetDirName = "webapp"
fun checkAndUpdate(onComplete: (() -> Unit)? = null) { fun checkAndUpdate(onComplete: (() -> Unit)? = null, onProgress: ((downloaded: Long, total: Long) -> Unit)? = null) {
CoroutineScope(Dispatchers.IO).launch { CoroutineScope(Dispatchers.IO).launch {
try { try {
val conn = URL(controlUrl).openConnection() as HttpURLConnection if (!hasNetwork()) {
conn.connectTimeout = 5000 Log.i(TAG, "no wifi available, skipping update")
conn.readTimeout = 10000
conn.requestMethod = "GET"
if (conn.responseCode != 200) {
Log.w(TAG, "control.json fetch failed: ${conn.responseCode}")
onComplete?.invoke()
return@launch
}
val text = conn.inputStream.bufferedReader().use { it.readText() }
// expecting: { "version": "1.0.1", "zip": "https://.../app.zip" }
val json = JSONObject(text)
val zipUrl = if (json.has("zip")) json.getString("zip") else null
val version = if (json.has("version")) json.getString("version") else null
if (zipUrl.isNullOrEmpty() || version.isNullOrEmpty()) {
Log.w(TAG, "invalid control.json: $text")
onComplete?.invoke() onComplete?.invoke()
return@launch return@launch
} }
val remoteVersion = getRemoteVersion(zipUrl)
val versionFile = File(context.filesDir, "$targetDirName/.version") val versionFile = File(context.filesDir, "$targetDirName/.version")
val currentVersion = if (versionFile.exists()) versionFile.readText().trim() else "" val currentVersion = if (versionFile.exists()) versionFile.readText().trim() else ""
if (currentVersion == version) {
Log.i(TAG, "webapp up-to-date: $version") if (!remoteVersion.isNullOrEmpty() && remoteVersion == currentVersion) {
Log.i(TAG, "webapp up-to-date (remote version matches)")
onComplete?.invoke() onComplete?.invoke()
return@launch return@launch
} }
// download zip // download zip to temp file
val tmpZip = File.createTempFile("webapp", ".zip", context.cacheDir) val tmpZip = File.createTempFile("webapp", ".zip", context.cacheDir)
downloadToFile(zipUrl, tmpZip) downloadToFile(zipUrl, tmpZip, onProgress)
// unpack to temp dir then move // unpack into temp dir then atomically replace existing webapp dir
val tmpDir = File.createTempFile("webapptemp", "", context.cacheDir) val tmpDir = File.createTempFile("webapptemp", "", context.cacheDir)
tmpDir.delete() tmpDir.delete()
tmpDir.mkdirs() tmpDir.mkdirs()
@@ -68,10 +63,22 @@ class WebAppUpdater(private val context: Context) {
val targetDir = File(context.filesDir, targetDirName) val targetDir = File(context.filesDir, targetDirName)
if (targetDir.exists()) targetDir.deleteRecursively() if (targetDir.exists()) targetDir.deleteRecursively()
tmpDir.renameTo(targetDir) if (!tmpDir.renameTo(targetDir)) {
// fallback to copy if rename fails
tmpDir.copyRecursively(targetDir, overwrite = true)
tmpDir.deleteRecursively()
}
versionFile.writeText(version) if (!remoteVersion.isNullOrEmpty()) {
Log.i(TAG, "webapp updated to $version") versionFile.parentFile?.mkdirs()
versionFile.writeText(remoteVersion)
} else {
// store a simple timestamp to indicate we have pulled something
versionFile.parentFile?.mkdirs()
versionFile.writeText(System.currentTimeMillis().toString())
}
Log.i(TAG, "webapp updated")
} catch (e: Exception) { } catch (e: Exception) {
Log.w(TAG, "update failed", e) Log.w(TAG, "update failed", e)
} finally { } finally {
@@ -80,17 +87,65 @@ class WebAppUpdater(private val context: Context) {
} }
} }
private fun downloadToFile(urlStr: String, outFile: File) { private fun hasNetwork(): Boolean {
val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as? ConnectivityManager
?: return false
val active = cm.activeNetwork ?: return false
val caps = cm.getNetworkCapabilities(active) ?: return false
// Only allow updates when on Wi-Fi
return caps.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
}
private fun getRemoteVersion(urlStr: String): String? {
return try {
val url = URL(urlStr)
val conn = (url.openConnection() as HttpURLConnection).apply {
connectTimeout = 5000
readTimeout = 5000
requestMethod = "HEAD"
// some servers require a User-Agent
setRequestProperty("User-Agent", "Matma-Updater/1.0")
}
conn.connect()
if (conn.responseCode / 100 != 2) return null
// prefer ETag then Last-Modified
val etag = conn.getHeaderField("ETag")
if (!etag.isNullOrEmpty()) return etag
val lm = conn.getHeaderField("Last-Modified")
if (!lm.isNullOrEmpty()) return lm
null
} catch (e: Exception) {
Log.w(TAG, "failed to get remote version", e)
null
}
}
private fun downloadToFile(urlStr: String, outFile: File, onProgress: ((downloaded: Long, total: Long) -> Unit)? = null) {
val url = URL(urlStr) val url = URL(urlStr)
val conn = url.openConnection() as HttpURLConnection val conn = url.openConnection() as HttpURLConnection
conn.connectTimeout = 5000 conn.connectTimeout = 5000
conn.readTimeout = 20000 conn.readTimeout = 20000
conn.requestMethod = "GET" conn.requestMethod = "GET"
conn.connect() conn.connect()
if (conn.responseCode != 200) throw RuntimeException("download failed: ${conn.responseCode}") if (conn.responseCode / 100 != 2) throw RuntimeException("download failed: ${'$'}{conn.responseCode}")
val total = conn.contentLengthLong.takeIf { it > 0 } ?: -1L
conn.inputStream.use { input -> conn.inputStream.use { input ->
FileOutputStream(outFile).use { fos -> FileOutputStream(outFile).use { fos ->
input.copyTo(fos) val buffer = ByteArray(8 * 1024)
var bytesRead: Int
var downloaded = 0L
while (true) {
bytesRead = input.read(buffer)
if (bytesRead <= 0) break
fos.write(buffer, 0, bytesRead)
downloaded += bytesRead
try {
onProgress?.invoke(downloaded, total)
} catch (_: Exception) {
// ignore progress handler exceptions
}
}
} }
} }
} }
@@ -98,13 +153,29 @@ class WebAppUpdater(private val context: Context) {
private fun unzipToDir(zipFile: File, targetDir: File) { private fun unzipToDir(zipFile: File, targetDir: File) {
ZipInputStream(BufferedInputStream(zipFile.inputStream())).use { zis -> ZipInputStream(BufferedInputStream(zipFile.inputStream())).use { zis ->
var entry = zis.nextEntry var entry = zis.nextEntry
val targetCanonical = targetDir.canonicalFile
while (entry != null) { while (entry != null) {
val out = File(targetDir, entry.name) // sanitize entry name to avoid absolute paths and backslashes
var name = entry.name.replace('\\', '/').trimStart('/')
// ignore suspicious entries
if (name.contains("../") || name.contains("..\\")) {
entry = zis.nextEntry
continue
}
val outFile = File(targetDir, name)
// ensure the output is inside targetDir
val outCanonical = outFile.canonicalFile
if (!outCanonical.path.startsWith(targetCanonical.path)) {
entry = zis.nextEntry
continue
}
if (entry.isDirectory) { if (entry.isDirectory) {
out.mkdirs() outCanonical.mkdirs()
} else { } else {
out.parentFile?.mkdirs() outCanonical.parentFile?.mkdirs()
FileOutputStream(out).use { fos -> FileOutputStream(outCanonical).use { fos ->
zis.copyTo(fos) zis.copyTo(fos)
} }
} }
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="24dp">
<ImageView
android:id="@+id/splash_logo"
android:layout_width="120dp"
android:layout_height="120dp"
android:src="@mipmap/ic_launcher"
android:contentDescription="splash logo" />
<TextView
android:id="@+id/splash_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Ładowanie..."
android:textAppearance="?android:attr/textAppearanceMedium" />
<ProgressBar
android:id="@+id/splash_progress"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:indeterminate="false"
android:max="100"
android:progress="0" />
</LinearLayout>
+2 -2
View File
@@ -5,8 +5,8 @@ buildscript {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:8.13.2' classpath 'com.android.tools.build:gradle:9.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22" classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.10'
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files
+10
View File
@@ -1,3 +1,13 @@
org.gradle.jvmargs=-Xmx1536m org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
android.defaults.buildfeatures.resvalues=true
android.sdk.defaultTargetSdkToCompileSdkIfUnset=false
android.enableAppCompileTimeRClass=false
android.usesSdkInManifest.disallowed=false
android.uniquePackageNames=false
android.dependency.useConstraints=true
android.r8.strictFullModeForKeepRules=false
android.r8.optimizedResourceShrinking=false
android.builtInKotlin=false
android.newDsl=false
+13
View File
@@ -0,0 +1,13 @@
#This file is generated by updateDaemonJvm
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/491f83666ae7f4d6ebb28fee72ebb035/redirect
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/0d1a1acdc708062093673f65aa9aba4b/redirect
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/491f83666ae7f4d6ebb28fee72ebb035/redirect
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/0d1a1acdc708062093673f65aa9aba4b/redirect
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/7083b89563e7ce20943037b8cd2b8cc2/redirect
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/060bbb778a1f55ea705fdebd2ccfeab9/redirect
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/491f83666ae7f4d6ebb28fee72ebb035/redirect
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/0d1a1acdc708062093673f65aa9aba4b/redirect
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/d09679dc60fe5aa05ef7d03efdefac20/redirect
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/ed4e3bf2f5e7c5d9aabc4cbd8acd555e/redirect
toolchainVendor=JETBRAINS
toolchainVersion=21
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000 networkTimeout=10000
retries=0 retries=0
retryBackOffMs=500 retryBackOffMs=500
+3
View File
@@ -1,2 +1,5 @@
plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'
}
rootProject.name = "Matma" rootProject.name = "Matma"
include ':app' include ':app'