Compare commits

...
8 Commits
Author SHA1 Message Date
romanesk 74116a681a 사운드 리소스 추가 2026-10-06 17:04:10 +09:00
romanesk 740aad77b3 사운드 추가
전면광고 조건 변경 -> 스테이지 클리어시 +1, 셔플시 +1, 총 5가 되면 다음 스테이지 시작 전 광고재생 -> 카운트 0

퍼즐 추가, 스테이지 추가.
2026-10-06 00:54:37 +09:00
romanesk e4b3e50ba8 사운드 추가
전면광고 조건 변경 -> 스테이지 클리어시 +1, 셔플시 +1, 총 5가 되면 다음 스테이지 시작 전 광고재생 -> 카운트 0
2026-10-06 00:54:01 +09:00
romanesk ff9e386b0e UI 변경, 광고 나오는 타임 변경 -> 30초 이후 클리어시 에서 -> 5분 타이머가 만료되는 스테이지 클리어 시. 2026-09-24 03:31:06 +09:00
romanesk 4de74a75e4 UI 도 고치고... 이것저것 손댔다. AI 시켜서. 2026-09-22 02:45:56 +09:00
romanesk df873d6765 Merge branch 'master' of https://git.gerd.kr/user01/wordpuzzles 2026-09-21 22:52:52 +09:00
romanesk bebf76bc7e added 2026-09-21 22:34:40 +09:00
romanesk 6ac67ec59d icon 추가 2026-09-21 22:34:20 +09:00
919 changed files with 85281 additions and 38446 deletions
+7
View File
@@ -0,0 +1,7 @@
*.jks
*.keystore
/build
/.gradle
/.idea
.DS_Store
/app/build
+36
View File
@@ -27,6 +27,18 @@
<option name="screenX" value="720" />
<option name="screenY" value="1280" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="36" />
<option name="brand" value="qti" />
<option name="codename" value="Frogger" />
<option name="id" value="Frogger" />
<option name="labId" value="google" />
<option name="manufacturer" value="Nothing" />
<option name="name" value="Phone (4a)" />
<option name="screenDensity" value="480" />
<option name="screenX" value="1224" />
<option name="screenY" value="2720" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="Infinix" />
@@ -1053,6 +1065,18 @@
<option name="screenX" value="1440" />
<option name="screenY" value="3088" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="36" />
<option name="brand" value="samsung" />
<option name="codename" value="dm3qksx" />
<option name="id" value="dm3qksx" />
<option name="labId" value="google" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S23 Ultra" />
<option name="screenDensity" value="450" />
<option name="screenX" value="1080" />
<option name="screenY" value="2316" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="motorola" />
@@ -1506,6 +1530,18 @@
<option name="screenX" value="720" />
<option name="screenY" value="1600" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="35" />
<option name="brand" value="Xiaomi" />
<option name="codename" value="houji" />
<option name="id" value="houji" />
<option name="labId" value="google" />
<option name="manufacturer" value="Xiaomi" />
<option name="name" value="14" />
<option name="screenDensity" value="480" />
<option name="screenX" value="1200" />
<option name="screenY" value="2670" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="google" />
+7
View File
@@ -1,10 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
+1 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2">
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,12 @@
출처 링크 : https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13284296&menuNo=200026
<img id="wrtImg" src="https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileImageView.do?wrtSn=13284296&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMC8yMS9DTFMxMDAwMi8xMzI4NDI5Nl9XUlRfMjFfQ0xTMTAwMDJfMjAyMDEyMThfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10002">
<p style="font-size: 0.9rem;font-style: italic;">
<span>
title : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13284296&menuNo=200026"> g선상아리아 가야금</a>
authr : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13284296&menuNo=200026"> 서예지</a>by
site : <a href="https://gongu.copyright.or.kr/gongu/main/main.do">공유마당 저작권 위원회</a></span> <br>
is licensed under
<img src="https://gongu.copyright.or.kr/static/gongu/img/common/img_license21.png" alt="CC BY[저작자 표시]" class="img_cc">
<span class="fc_orange">서예지 </span>의 "g선상아리아 가야금" 은 <span class="fc_orange">CC BY</span> 라이선스로 제공됩니다.
</p>
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,12 @@
출처 링크 : https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13372522&menuNo=200020
<img id="wrtImg" src="https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileImageView.do?wrtSn=13372522&filePath=L2Rpc2sxL25ld2RhdGEvMjAyNC8wNy9DTFMxMDAwMi9jNWNlM2YxYWY4ZjE3ZDExMzkxYjE5OWYzYjRjMTZhMGQ0ZDcwZmVkZDZiMGZhYWU0ZjMyMGU2YzE4MjJiZjMz&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10002">
<p style="font-size: 0.9rem;font-style: italic;">
<span>
title : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13372522&menuNo=200020"> 산_치악산_영원사 입구_오후_공간음_계류와 소요산매미</a>
authr : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13372522&menuNo=200020"> JICA</a>by
site : <a href="https://gongu.copyright.or.kr/gongu/main/main.do">공유마당 저작권 위원회</a></span> <br>
is licensed under
<img src="https://gongu.copyright.or.kr/static/gongu/img/common/img_license01.png" alt="KOGL 출처표시, 상업적, 비상업적 이용가능, 변형 등 2차적 저작물 작성 가능" class="img_cc">
</p>
@@ -0,0 +1,12 @@
출처 링크 : https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13284297&menuNo=200026
<img id="wrtImg" src="https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileImageView.do?wrtSn=13284297&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMC8yMS9DTFMxMDAwMi8xMzI4NDI5N19XUlRfMjFfQ0xTMTAwMDJfMjAyMDEyMThfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10002">
<p style="font-size: 0.9rem;font-style: italic;">
<span>
title : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13284297&menuNo=200026"> 세레나데 가야금</a>
authr : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13284297&menuNo=200026"> 서예지</a>by
site : <a href="https://gongu.copyright.or.kr/gongu/main/main.do">공유마당 저작권 위원회</a></span> <br>
is licensed under
<img src="https://gongu.copyright.or.kr/static/gongu/img/common/img_license21.png" alt="CC BY[저작자 표시]" class="img_cc">
<span class="fc_orange">서예지 </span>의 "세레나데 가야금" 은 <span class="fc_orange">CC BY</span> 라이선스로 제공됩니다.
</p>
@@ -0,0 +1,12 @@
출처 링크 : https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13287481&menuNo=200020
<img id="wrtImg" src="https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileImageView.do?wrtSn=13287481&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMS8wMS9DTFMxMDAwMi8xMzI4NzQ4MV9XUlRfMDFfQ0xTMTAwMDJfMjAyMTA5MDNfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10002">
<p style="font-size: 0.9rem;font-style: italic;">
<span>
title : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13287481&menuNo=200020"> 전통악기_꽹과리_치다_연주_MKH418_ST_192</a>
authr : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13287481&menuNo=200020"> (재)전주정보문화산업진흥원</a>by
site : <a href="https://gongu.copyright.or.kr/gongu/main/main.do">공유마당 저작권 위원회</a></span> <br>
is licensed under
<img src="https://gongu.copyright.or.kr/static/gongu/img/common/img_license01.png" alt="KOGL 출처표시, 상업적, 비상업적 이용가능, 변형 등 2차적 저작물 작성 가능" class="img_cc">
</p>
@@ -0,0 +1,12 @@
출처 링크 : https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13287485&menuNo=200020
<img id="wrtImg" src="https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileImageView.do?wrtSn=13287485&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMS8wMS9DTFMxMDAwMi8xMzI4NzQ4NV9XUlRfMDFfQ0xTMTAwMDJfMjAyMTA5MDNfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10002">
<p style="font-size: 0.9rem;font-style: italic;">
<span>
title : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13287485&menuNo=200020"> 전통악기_장구_치다_보통속도_Ver.1_MKH418_ST_192</a>
authr : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13287485&menuNo=200020"> (재)전주정보문화산업진흥원</a>by
site : <a href="https://gongu.copyright.or.kr/gongu/main/main.do">공유마당 저작권 위원회</a></span> <br>
is licensed under
<img src="https://gongu.copyright.or.kr/static/gongu/img/common/img_license01.png" alt="KOGL 출처표시, 상업적, 비상업적 이용가능, 변형 등 2차적 저작물 작성 가능" class="img_cc">
</p>
@@ -0,0 +1,12 @@
출처 링크 : https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13287487&menuNo=200020
<img id="wrtImg" src="https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileImageView.do?wrtSn=13287487&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMS8wMS9DTFMxMDAwMi8xMzI4NzQ4N19XUlRfMDFfQ0xTMTAwMDJfMjAyMTA5MDNfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10002">
<p style="font-size: 0.9rem;font-style: italic;">
<span>
title : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13287487&menuNo=200020"> 전통악기_징_열기_긴_MKH418_ST_192</a>
authr : <a href="https://gongu.copyright.or.kr/gongu/wrt/wrt/view.do?wrtSn=13287487&menuNo=200020"> (재)전주정보문화산업진흥원</a>by
site : <a href="https://gongu.copyright.or.kr/gongu/main/main.do">공유마당 저작권 위원회</a></span> <br>
is licensed under
<img src="https://gongu.copyright.or.kr/static/gongu/img/common/img_license01.png" alt="KOGL 출처표시, 상업적, 비상업적 이용가능, 변형 등 2차적 저작물 작성 가능" class="img_cc">
</p>
+108
View File
@@ -0,0 +1,108 @@
# 한글 십자말풀이 스테이지 생성 규칙 및 가이드라인 (Stage Rules & Guidelines)
본 문서는 **한글 십자말풀이 앱(WordPuzzle)**의 스테이지를 지속적으로 확장(50개, 100개 이상)하기 위한 난이도 설계, 그리드 무결성 룰, 단어 배치 가이드라인 및 JSON 데이터 스키마를 정의합니다.
---
## 1. 스테이지 단계별 구조 및 난이도 진도 설계 (Difficulty Progression Strategy)
초반 스테이지의 진입 장벽을 낮추고 플레이어가 자연스럽게 어휘력을 확장할 수 있도록 완만한 난이도 상승 곡선(Progressive Difficulty Curve)과 풍성한 단어 밀도를 적용합니다.
| 스테이지 구간 | 난이도 (`difficulty`) | 그리드 크기 (`gridSize`) | 배치 단어 수 (`clues.size`) | 주요 단어 구성 및 어휘 특징 |
| :--- | :---: | :---: | :---: | :--- |
| **01 ~ 10** | Level 1 (입문/초보) | 6x6 ~ 7x7 | **6 ~ 8개** | **100% 기초 일상 어휘** (학교, 과일, 가족, 동물, 수영, 구름 등 초등 기초 어휘만 사용, 공간이 비지 않도록 알차게 배치) |
| **11 ~ 20** | Level 1 (초급) | 7x7 | **7 ~ 9개** | 쉬운 일상 단어 + 실생활 고빈도 최고 쉬운 사자성어 1개 (일석이조, 작심삼일, 남녀노소 등) |
| **21 ~ 40** | Level 2 (중급) | 7x7 ~ 8x8 | **8 ~ 10개** | 일반 어휘 + 한국어 교육용 고빈도 사자성어 (127개 핵심 사자성어) + 글로벌 기업 |
| **41 ~ 70** | Level 2~3 (상급) | 8x8 | **9 ~ 11개** | 시사상식, 글로벌 기업 브랜드, 인문학, 고사성어 |
| **71 ~ 100+** | Level 3 (마스터) | 8x8 | **10 ~ 12개** | 고난도 고사성어, 문화/역사/과학 종합 어휘 마스터 |
* **참고 자료**: '한국어 교육용 사자성어 선정 및 사용 양상 분석(진달래, 2020)' 논문의 127개 고빈도 사자성어 목록을 기반으로 사자성어의 난이도를 단계별로 배치했습니다.
---
## 2. 십자말풀이 그리드 및 단어 배치 룰 (Grid Layout & Placement Rules)
모든 스테이지의 `clues` 단어 배치는 다음 수학적/구조적 조건을 반드시 만족해야 합니다.
### ① 좌표계 및 이동 규칙
* **좌표 기준**: 그리드의 좌측 상단이 `(row: 0, col: 0)`입니다.
* **가로 방향 (`ACROSS`)**: `(startRow, startCol)`에서 시작하여 오른쪽으로 `length`만큼 이동합니다.
$$\text{범위}: \text{startCol} + \text{length} \le \text{gridSize}$$
* **세로 방향 (`DOWN`)**: `(startRow, startCol)`에서 시작하여 아래쪽으로 `length`만큼 이동합니다.
$$\text{범위}: \text{startRow} + \text{length} \le \text{gridSize}$$
### ② 단어 및 글자 배치 규칙
* **최소 단어 길이**: 가로나 세로로 나열되는 단어는 최소 2글자 이상이어야 합니다. 1글자짜리 단어는 인정되지 않습니다 (`length >= 2`).
* **공통 글자 공유**: 가로 단어와 세로 단어가 만나는 교차점의 글자는 두 단어 모두에 완벽하게 일치해야 합니다.
* **띄어쓰기 생략**: 두 단어 이상으로 이루어진 복합어나 구절을 답으로 쓸 때는 띄어쓰기 없이 칸을 이어 붙여서 작성합니다.
### ③ 교차점 (Intersection) 및 연결성 (Connectivity)
* **단어 간 교차 필수**: 퍼즐 내의 모든 단어는 최소 1개 이상의 다른 단어와 교차점(같은 한글 문자를 공유하는 좌표)을 형성해야 합니다.
* **서브 퍼즐 허용**: 단어 수가 많고 그리드 공간이 넓을 경우 2개 이상의 유기적 서브 퍼즐로 나누어 구성할 수 있으며, 각 서브 퍼즐은 최소 2개 이상의 단어가 교차해야 합니다. (단독 1개짜리 외딴 단어 배치 금지)
### ④ 인접 글자의 무의미한 단어 조합 방지 규칙
* **의미 없는 유령 단어 조합 지양**: 단어들이 나란히 배치될 때 교차점이 아닌 인접 칸에 글자들이 나란히 놓여, 가로나 세로 방향으로 읽었을 때 의미가 성립되지 않는 불필요한 글자 조합(예: "름기차")이 생기는 배치는 완벽히 차단해야 합니다.
* **방향성 유효성**: 가로나 세로 어떤 방향으로 읽더라도 올바른 정답 단어로만 읽히도록 단어 사이의 공간(검은 칸/빈 공간)을 확보하여 배치합니다.
* **색상 및 시각적 구분**: 게임 화면 내에서 단어별 고유 파스텔 배경 색상 및 테두리로 각 단어의 구획을 확실하게 표시하여 사용자가 혼동하지 않도록 처리합니다.
### ⑤ 퍼즐 독립 구성 및 단독 단어 배치 지양
* **자연스러운 연결성 우선**: 한 스테이지에 1개 이상의 독립된 퍼즐이 구성될 수는 있으나, 이는 필수 조건이 아닙니다.
* **억지 단독 배치 지양**: 연결 고리가 없이 1개의 단어만 따로 떨구어 단독 배치하는 방식으로 억지로 퍼즐 개수를 늘리지 않으며, 교차점을 통해 서로 유기적으로 연결된 완성도 높은 퍼즐 구성을 최우선으로 합니다.
### ⑥ 시작 힌트 문자 50% 이하 제한 규칙
* **단어별 힌트 비율 제한**: 스테이지 시작 시 (또는 문자 새로고침 시) 무작위로 배치되는 시작 힌트 문자는, 어떤 단어이든 그 단어를 구성하는 전체 문자 수(`clue.length`)의 **50% 이하($\le \lfloor \text{length} \times 0.5 \rfloor$)까지만 채워지도록 제한**합니다.
* **과도한 자동 정답 방지**: 2~3글자 단어의 경우 최대 1글자까지만 시작 힌트로 허용하여, 시작하자마자 특정 단어가 통째로 채워지거나 거의 다 풀어져버려 게임의 재미가 반감되는 현상을 근본적으로 차단합니다.
### ⑦ 2글자 이상 부분 문자열 중복 단어 포개짐 금지 규칙
* **2글자 이상 중복 포개짐 금지**: 한 스테이지 안에서 임의의 두 단어가 2글자 이상 동일한 연속 문자열을 공유하는 경우(예: "사랑"과 "사랑방", "기차"와 "기차표", "변호"와 "변호사", "리본"과 "리본끈" 등), 두 단어를 한 스테이지에 동시에 배치하거나 가로/세로 상에 포개어 만드는 구성을 엄격히 금지합니다.
* **단일 교차점 원칙**: 서로 다른 단어 간의 교차점(Intersection)은 오직 **1글자 단일 교차**로만 형성되어야 합니다.
### ⑧ 힌트 보유 제한(최대 5개) 및 일일 무료 시청 제한(3회)
* **최대 보유 제한**: 보유할 수 있는 힌트 개수는 **최대 5개**로 제한됩니다. 보유 힌트가 5개일 경우 광고 시청 버튼이 비활성화되며 추가 힌트 충전이 불가능합니다.
* **일일 무료 시청 제한**: 힌트를 충전하기 위한 일일 무료 광고 시청 한도는 **3회**로 지정됩니다. (매일 자정에 초기화)
### ⑨ 그리드 내 퍼즐 가로/세로 정중앙 배치 규칙
* **중앙 밸런스 배치**: 퍼즐 단어 배치가 그리드의 우측, 좌측, 상단, 하단 등 한쪽 귀퉁이나 구석으로 쏠리는 현상을 완벽히 차단합니다.
* **자동 오프셋 정렬**: 퍼즐 전체 단어들이 차지하는 바운딩 박스(Bounding Box: `min_r, max_r, min_c, max_c`)를 계산한 후, 그리드의 가로/세로 정중앙 중심점과 일치하도록 이동 오프셋($\Delta r, \Delta c$)을 자동 적용하여 시각적 균형감을 극대화합니다.
---
## 3. JSON 스키마 명세 (`stages.json`)
스테이지 데이터는 `app/src/main/assets/data/stages.json`에 저장되며, 다음 스키마를 엄격히 준수합니다.
```json
[
{
"stageNumber": 1,
"title": "첫걸음: 풍성한 쉬운 단어 I",
"gridSize": 6,
"difficulty": 1,
"clues": [
{
"id": "c1_1",
"number": 1,
"direction": "ACROSS",
"word": "생일파티",
"clue": "태어난 날을 축하하기 위해 여는 잔치.",
"startRow": 2,
"startCol": 1,
"length": 4
}
]
}
]
```
---
## 4. 주제 및 단어 데이터 연동 가이드라인 (Theme & Vocabulary)
1. **[words.json](file:///home/gerd/Workspace/AndroidStudioProjects/wordpuzzles/app/src/main/assets/data/words.json) 연동**:
* 퍼즐 단어장에 소속된 단어 카테고리(`"스테이지 단어"`, `"고사성어"`, `"글로벌 기업"`, `"일반"`)를 적극 활용합니다.
2. **다양한 주제 테마 배치**:
* **초반 (01~10)**: 학교, 음식, 가족, 동물, 자연 등 100% 기초 일상어 (단어 6~8개 풍성하게 배치)
* **중반 (11~40)**: 일상어 + 실생활 고빈도 필수 사자성어 + 글로벌 기업 브랜드
* **후반 (41~100)**: 시사상식, 고사성어, 글로벌 기업, 역사/문화 종합 탐구
3. **단어 설명(`clue`)의 명확성**:
* 힌트 문장은 자극적이지 않으며 직관적이고 표준 국어대사전에 기반한 깔끔한 설명을 사용합니다.
+14 -4
View File
@@ -7,20 +7,30 @@ plugins {
android {
namespace = "com.wordpuzzle.hangul"
compileSdk = 35
compileSdk = 36
defaultConfig {
applicationId = "com.wordpuzzle.hangul"
minSdk = 26
targetSdk = 35
versionCode = 1
versionName = "1.0.0"
targetSdk = 36
versionCode = 4
versionName = "1.1.2"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
signingConfigs {
create("release") {
storeFile = file("${rootDir}/wordpuzzle-release-key.jks")
storePassword = "wordpuzzle1234!"
keyAlias = "wordpuzzle_key_alias"
keyPassword = "wordpuzzle1234!"
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
@@ -32,12 +32,12 @@ public class AppDatabase_Impl : AppDatabase() {
}
protected override fun createOpenDelegate(): RoomOpenDelegate {
val _openDelegate: RoomOpenDelegate = object : RoomOpenDelegate(1,
"6ed8a7a3657c3041f42f4f00efa0280d", "99a3f99ee3147476a93cae61ad1484dd") {
val _openDelegate: RoomOpenDelegate = object : RoomOpenDelegate(2,
"09a5f2a590401566745e94684a7b9ee9", "e79b22363af5501fb8252181419ce097") {
public override fun createAllTables(connection: SQLiteConnection) {
connection.execSQL("CREATE TABLE IF NOT EXISTS `words` (`id` TEXT NOT NULL, `word` TEXT NOT NULL, `meaning` TEXT NOT NULL, `category` TEXT NOT NULL, `difficulty` INTEGER NOT NULL, `example` TEXT NOT NULL, `isLearned` INTEGER NOT NULL, `isPreLearned` INTEGER NOT NULL, `learnedTimestamp` INTEGER NOT NULL, PRIMARY KEY(`id`))")
connection.execSQL("CREATE TABLE IF NOT EXISTS `words` (`id` TEXT NOT NULL, `word` TEXT NOT NULL, `meaning` TEXT NOT NULL, `category` TEXT NOT NULL, `difficulty` INTEGER NOT NULL, `isLearned` INTEGER NOT NULL, `isPreLearned` INTEGER NOT NULL, `learnedTimestamp` INTEGER NOT NULL, PRIMARY KEY(`id`))")
connection.execSQL("CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)")
connection.execSQL("INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '6ed8a7a3657c3041f42f4f00efa0280d')")
connection.execSQL("INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '09a5f2a590401566745e94684a7b9ee9')")
}
public override fun dropAllTables(connection: SQLiteConnection) {
@@ -71,8 +71,6 @@ public class AppDatabase_Impl : AppDatabase() {
TableInfo.CREATED_FROM_ENTITY))
_columnsWords.put("difficulty", TableInfo.Column("difficulty", "INTEGER", true, 0, null,
TableInfo.CREATED_FROM_ENTITY))
_columnsWords.put("example", TableInfo.Column("example", "TEXT", true, 0, null,
TableInfo.CREATED_FROM_ENTITY))
_columnsWords.put("isLearned", TableInfo.Column("isLearned", "INTEGER", true, 0, null,
TableInfo.CREATED_FROM_ENTITY))
_columnsWords.put("isPreLearned", TableInfo.Column("isPreLearned", "INTEGER", true, 0, null,
@@ -34,7 +34,7 @@ public class WordDao_Impl(
this.__db = __db
this.__insertAdapterOfWordEntity = object : EntityInsertAdapter<WordEntity>() {
protected override fun createQuery(): String =
"INSERT OR IGNORE INTO `words` (`id`,`word`,`meaning`,`category`,`difficulty`,`example`,`isLearned`,`isPreLearned`,`learnedTimestamp`) VALUES (?,?,?,?,?,?,?,?,?)"
"INSERT OR IGNORE INTO `words` (`id`,`word`,`meaning`,`category`,`difficulty`,`isLearned`,`isPreLearned`,`learnedTimestamp`) VALUES (?,?,?,?,?,?,?,?)"
protected override fun bind(statement: SQLiteStatement, entity: WordEntity) {
statement.bindText(1, entity.id)
@@ -42,17 +42,16 @@ public class WordDao_Impl(
statement.bindText(3, entity.meaning)
statement.bindText(4, entity.category)
statement.bindLong(5, entity.difficulty.toLong())
statement.bindText(6, entity.example)
val _tmp: Int = if (entity.isLearned) 1 else 0
statement.bindLong(7, _tmp.toLong())
statement.bindLong(6, _tmp.toLong())
val _tmp_1: Int = if (entity.isPreLearned) 1 else 0
statement.bindLong(8, _tmp_1.toLong())
statement.bindLong(9, entity.learnedTimestamp)
statement.bindLong(7, _tmp_1.toLong())
statement.bindLong(8, entity.learnedTimestamp)
}
}
this.__updateAdapterOfWordEntity = object : EntityDeleteOrUpdateAdapter<WordEntity>() {
protected override fun createQuery(): String =
"UPDATE OR ABORT `words` SET `id` = ?,`word` = ?,`meaning` = ?,`category` = ?,`difficulty` = ?,`example` = ?,`isLearned` = ?,`isPreLearned` = ?,`learnedTimestamp` = ? WHERE `id` = ?"
"UPDATE OR ABORT `words` SET `id` = ?,`word` = ?,`meaning` = ?,`category` = ?,`difficulty` = ?,`isLearned` = ?,`isPreLearned` = ?,`learnedTimestamp` = ? WHERE `id` = ?"
protected override fun bind(statement: SQLiteStatement, entity: WordEntity) {
statement.bindText(1, entity.id)
@@ -60,13 +59,12 @@ public class WordDao_Impl(
statement.bindText(3, entity.meaning)
statement.bindText(4, entity.category)
statement.bindLong(5, entity.difficulty.toLong())
statement.bindText(6, entity.example)
val _tmp: Int = if (entity.isLearned) 1 else 0
statement.bindLong(7, _tmp.toLong())
statement.bindLong(6, _tmp.toLong())
val _tmp_1: Int = if (entity.isPreLearned) 1 else 0
statement.bindLong(8, _tmp_1.toLong())
statement.bindLong(9, entity.learnedTimestamp)
statement.bindText(10, entity.id)
statement.bindLong(7, _tmp_1.toLong())
statement.bindLong(8, entity.learnedTimestamp)
statement.bindText(9, entity.id)
}
}
}
@@ -91,7 +89,6 @@ public class WordDao_Impl(
val _columnIndexOfMeaning: Int = getColumnIndexOrThrow(_stmt, "meaning")
val _columnIndexOfCategory: Int = getColumnIndexOrThrow(_stmt, "category")
val _columnIndexOfDifficulty: Int = getColumnIndexOrThrow(_stmt, "difficulty")
val _columnIndexOfExample: Int = getColumnIndexOrThrow(_stmt, "example")
val _columnIndexOfIsLearned: Int = getColumnIndexOrThrow(_stmt, "isLearned")
val _columnIndexOfIsPreLearned: Int = getColumnIndexOrThrow(_stmt, "isPreLearned")
val _columnIndexOfLearnedTimestamp: Int = getColumnIndexOrThrow(_stmt, "learnedTimestamp")
@@ -108,8 +105,6 @@ public class WordDao_Impl(
_tmpCategory = _stmt.getText(_columnIndexOfCategory)
val _tmpDifficulty: Int
_tmpDifficulty = _stmt.getLong(_columnIndexOfDifficulty).toInt()
val _tmpExample: String
_tmpExample = _stmt.getText(_columnIndexOfExample)
val _tmpIsLearned: Boolean
val _tmp: Int
_tmp = _stmt.getLong(_columnIndexOfIsLearned).toInt()
@@ -121,7 +116,7 @@ public class WordDao_Impl(
val _tmpLearnedTimestamp: Long
_tmpLearnedTimestamp = _stmt.getLong(_columnIndexOfLearnedTimestamp)
_item =
WordEntity(_tmpId,_tmpWord,_tmpMeaning,_tmpCategory,_tmpDifficulty,_tmpExample,_tmpIsLearned,_tmpIsPreLearned,_tmpLearnedTimestamp)
WordEntity(_tmpId,_tmpWord,_tmpMeaning,_tmpCategory,_tmpDifficulty,_tmpIsLearned,_tmpIsPreLearned,_tmpLearnedTimestamp)
_result.add(_item)
}
_result
@@ -143,7 +138,6 @@ public class WordDao_Impl(
val _columnIndexOfMeaning: Int = getColumnIndexOrThrow(_stmt, "meaning")
val _columnIndexOfCategory: Int = getColumnIndexOrThrow(_stmt, "category")
val _columnIndexOfDifficulty: Int = getColumnIndexOrThrow(_stmt, "difficulty")
val _columnIndexOfExample: Int = getColumnIndexOrThrow(_stmt, "example")
val _columnIndexOfIsLearned: Int = getColumnIndexOrThrow(_stmt, "isLearned")
val _columnIndexOfIsPreLearned: Int = getColumnIndexOrThrow(_stmt, "isPreLearned")
val _columnIndexOfLearnedTimestamp: Int = getColumnIndexOrThrow(_stmt, "learnedTimestamp")
@@ -159,8 +153,6 @@ public class WordDao_Impl(
_tmpCategory = _stmt.getText(_columnIndexOfCategory)
val _tmpDifficulty: Int
_tmpDifficulty = _stmt.getLong(_columnIndexOfDifficulty).toInt()
val _tmpExample: String
_tmpExample = _stmt.getText(_columnIndexOfExample)
val _tmpIsLearned: Boolean
val _tmp: Int
_tmp = _stmt.getLong(_columnIndexOfIsLearned).toInt()
@@ -172,7 +164,7 @@ public class WordDao_Impl(
val _tmpLearnedTimestamp: Long
_tmpLearnedTimestamp = _stmt.getLong(_columnIndexOfLearnedTimestamp)
_result =
WordEntity(_tmpId,_tmpWord,_tmpMeaning,_tmpCategory,_tmpDifficulty,_tmpExample,_tmpIsLearned,_tmpIsPreLearned,_tmpLearnedTimestamp)
WordEntity(_tmpId,_tmpWord,_tmpMeaning,_tmpCategory,_tmpDifficulty,_tmpIsLearned,_tmpIsPreLearned,_tmpLearnedTimestamp)
} else {
_result = null
}
@@ -193,7 +185,6 @@ public class WordDao_Impl(
val _columnIndexOfMeaning: Int = getColumnIndexOrThrow(_stmt, "meaning")
val _columnIndexOfCategory: Int = getColumnIndexOrThrow(_stmt, "category")
val _columnIndexOfDifficulty: Int = getColumnIndexOrThrow(_stmt, "difficulty")
val _columnIndexOfExample: Int = getColumnIndexOrThrow(_stmt, "example")
val _columnIndexOfIsLearned: Int = getColumnIndexOrThrow(_stmt, "isLearned")
val _columnIndexOfIsPreLearned: Int = getColumnIndexOrThrow(_stmt, "isPreLearned")
val _columnIndexOfLearnedTimestamp: Int = getColumnIndexOrThrow(_stmt, "learnedTimestamp")
@@ -210,8 +201,6 @@ public class WordDao_Impl(
_tmpCategory = _stmt.getText(_columnIndexOfCategory)
val _tmpDifficulty: Int
_tmpDifficulty = _stmt.getLong(_columnIndexOfDifficulty).toInt()
val _tmpExample: String
_tmpExample = _stmt.getText(_columnIndexOfExample)
val _tmpIsLearned: Boolean
val _tmp: Int
_tmp = _stmt.getLong(_columnIndexOfIsLearned).toInt()
@@ -223,7 +212,7 @@ public class WordDao_Impl(
val _tmpLearnedTimestamp: Long
_tmpLearnedTimestamp = _stmt.getLong(_columnIndexOfLearnedTimestamp)
_item =
WordEntity(_tmpId,_tmpWord,_tmpMeaning,_tmpCategory,_tmpDifficulty,_tmpExample,_tmpIsLearned,_tmpIsPreLearned,_tmpLearnedTimestamp)
WordEntity(_tmpId,_tmpWord,_tmpMeaning,_tmpCategory,_tmpDifficulty,_tmpIsLearned,_tmpIsPreLearned,_tmpLearnedTimestamp)
_result.add(_item)
}
_result
@@ -245,7 +234,6 @@ public class WordDao_Impl(
val _columnIndexOfMeaning: Int = getColumnIndexOrThrow(_stmt, "meaning")
val _columnIndexOfCategory: Int = getColumnIndexOrThrow(_stmt, "category")
val _columnIndexOfDifficulty: Int = getColumnIndexOrThrow(_stmt, "difficulty")
val _columnIndexOfExample: Int = getColumnIndexOrThrow(_stmt, "example")
val _columnIndexOfIsLearned: Int = getColumnIndexOrThrow(_stmt, "isLearned")
val _columnIndexOfIsPreLearned: Int = getColumnIndexOrThrow(_stmt, "isPreLearned")
val _columnIndexOfLearnedTimestamp: Int = getColumnIndexOrThrow(_stmt, "learnedTimestamp")
@@ -262,8 +250,6 @@ public class WordDao_Impl(
_tmpCategory = _stmt.getText(_columnIndexOfCategory)
val _tmpDifficulty: Int
_tmpDifficulty = _stmt.getLong(_columnIndexOfDifficulty).toInt()
val _tmpExample: String
_tmpExample = _stmt.getText(_columnIndexOfExample)
val _tmpIsLearned: Boolean
val _tmp: Int
_tmp = _stmt.getLong(_columnIndexOfIsLearned).toInt()
@@ -275,7 +261,7 @@ public class WordDao_Impl(
val _tmpLearnedTimestamp: Long
_tmpLearnedTimestamp = _stmt.getLong(_columnIndexOfLearnedTimestamp)
_item =
WordEntity(_tmpId,_tmpWord,_tmpMeaning,_tmpCategory,_tmpDifficulty,_tmpExample,_tmpIsLearned,_tmpIsPreLearned,_tmpLearnedTimestamp)
WordEntity(_tmpId,_tmpWord,_tmpMeaning,_tmpCategory,_tmpDifficulty,_tmpIsLearned,_tmpIsPreLearned,_tmpLearnedTimestamp)
_result.add(_item)
}
_result
@@ -285,6 +271,53 @@ public class WordDao_Impl(
}
}
public override suspend fun getRandomWord(): WordEntity? {
val _sql: String = "SELECT * FROM words ORDER BY RANDOM() LIMIT 1"
return performSuspending(__db, true, false) { _connection ->
val _stmt: SQLiteStatement = _connection.prepare(_sql)
try {
val _columnIndexOfId: Int = getColumnIndexOrThrow(_stmt, "id")
val _columnIndexOfWord: Int = getColumnIndexOrThrow(_stmt, "word")
val _columnIndexOfMeaning: Int = getColumnIndexOrThrow(_stmt, "meaning")
val _columnIndexOfCategory: Int = getColumnIndexOrThrow(_stmt, "category")
val _columnIndexOfDifficulty: Int = getColumnIndexOrThrow(_stmt, "difficulty")
val _columnIndexOfIsLearned: Int = getColumnIndexOrThrow(_stmt, "isLearned")
val _columnIndexOfIsPreLearned: Int = getColumnIndexOrThrow(_stmt, "isPreLearned")
val _columnIndexOfLearnedTimestamp: Int = getColumnIndexOrThrow(_stmt, "learnedTimestamp")
val _result: WordEntity?
if (_stmt.step()) {
val _tmpId: String
_tmpId = _stmt.getText(_columnIndexOfId)
val _tmpWord: String
_tmpWord = _stmt.getText(_columnIndexOfWord)
val _tmpMeaning: String
_tmpMeaning = _stmt.getText(_columnIndexOfMeaning)
val _tmpCategory: String
_tmpCategory = _stmt.getText(_columnIndexOfCategory)
val _tmpDifficulty: Int
_tmpDifficulty = _stmt.getLong(_columnIndexOfDifficulty).toInt()
val _tmpIsLearned: Boolean
val _tmp: Int
_tmp = _stmt.getLong(_columnIndexOfIsLearned).toInt()
_tmpIsLearned = _tmp != 0
val _tmpIsPreLearned: Boolean
val _tmp_1: Int
_tmp_1 = _stmt.getLong(_columnIndexOfIsPreLearned).toInt()
_tmpIsPreLearned = _tmp_1 != 0
val _tmpLearnedTimestamp: Long
_tmpLearnedTimestamp = _stmt.getLong(_columnIndexOfLearnedTimestamp)
_result =
WordEntity(_tmpId,_tmpWord,_tmpMeaning,_tmpCategory,_tmpDifficulty,_tmpIsLearned,_tmpIsPreLearned,_tmpLearnedTimestamp)
} else {
_result = null
}
_result
} finally {
_stmt.close()
}
}
}
public override suspend fun markWordLearned(wordText: String, timestamp: Long) {
val _sql: String = "UPDATE words SET isLearned = 1, learnedTimestamp = ? WHERE word = ?"
return performSuspending(__db, false, true) { _connection ->
@@ -1,9 +1,9 @@
com.wordpuzzle.hangul.app-pngs-0 D:\Workspace\android\wordpuzzles\app\build\generated\res\pngs\debug
com.wordpuzzle.hangul.app-resValues-1 D:\Workspace\android\wordpuzzles\app\build\generated\res\resValues\debug
com.wordpuzzle.hangul.app-updated_navigation_xml-2 D:\Workspace\android\wordpuzzles\app\build\generated\updated_navigation_xml\debug
com.wordpuzzle.hangul.app-packageDebugResources-3 D:\Workspace\android\wordpuzzles\app\build\intermediates\incremental\debug\packageDebugResources\merged.dir
com.wordpuzzle.hangul.app-packageDebugResources-4 D:\Workspace\android\wordpuzzles\app\build\intermediates\incremental\debug\packageDebugResources\stripped.dir
com.wordpuzzle.hangul.app-debug-5 D:\Workspace\android\wordpuzzles\app\build\intermediates\merged_res\debug\mergeDebugResources
com.wordpuzzle.hangul.app-debug-6 D:\Workspace\android\wordpuzzles\app\src\debug\res
com.wordpuzzle.hangul.app-main-7 D:\Workspace\android\wordpuzzles\app\src\main\res
gradleHome-0 C:\Users\minar\.gradle
com.wordpuzzle.hangul.app-pngs-0 /home/gerd/Workspace/AndroidStudioProjects/wordpuzzles/app/build/generated/res/pngs/debug
com.wordpuzzle.hangul.app-resValues-1 /home/gerd/Workspace/AndroidStudioProjects/wordpuzzles/app/build/generated/res/resValues/debug
com.wordpuzzle.hangul.app-updated_navigation_xml-2 /home/gerd/Workspace/AndroidStudioProjects/wordpuzzles/app/build/generated/updated_navigation_xml/debug
com.wordpuzzle.hangul.app-packageDebugResources-3 /home/gerd/Workspace/AndroidStudioProjects/wordpuzzles/app/build/intermediates/incremental/debug/packageDebugResources/merged.dir
com.wordpuzzle.hangul.app-packageDebugResources-4 /home/gerd/Workspace/AndroidStudioProjects/wordpuzzles/app/build/intermediates/incremental/debug/packageDebugResources/stripped.dir
com.wordpuzzle.hangul.app-debug-5 /home/gerd/Workspace/AndroidStudioProjects/wordpuzzles/app/build/intermediates/merged_res/debug/mergeDebugResources
com.wordpuzzle.hangul.app-debug-6 /home/gerd/Workspace/AndroidStudioProjects/wordpuzzles/app/src/debug/res
com.wordpuzzle.hangul.app-main-7 /home/gerd/Workspace/AndroidStudioProjects/wordpuzzles/app/src/main/res
gradleHome-0 /home/gerd/.gradle
Binary file not shown.
@@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 1,
"versionName": "1.0.0",
"versionCode": 4,
"versionName": "1.1.2",
"outputFile": "app-debug.apk"
}
],
@@ -1,2 +1,2 @@
appMetadataVersion=1.1
androidGradlePluginVersion=9.4.0
androidGradlePluginVersion=9.4.1
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1 +0,0 @@
[{"key":"META-INF/androidx.navigation_navigation-common-ktx.version","name":"META-INF/androidx.navigation_navigation-common-ktx.version","size":6,"crc":-402369105}]
@@ -1 +0,0 @@
[{"key":"androidx/compose/ui/ExperimentalComposeUiApi.class","name":"androidx/compose/ui/ExperimentalComposeUiApi.class","size":786,"crc":-418551283},{"key":"androidx/compose/ui/InternalComposeUiApi.class","name":"androidx/compose/ui/InternalComposeUiApi.class","size":864,"crc":-886945856},{"key":"androidx/compose/ui/util/AndroidTrace_androidKt.class","name":"androidx/compose/ui/util/AndroidTrace_androidKt.class","size":1375,"crc":-1745608269},{"key":"androidx/compose/ui/util/InlineClassHelperKt.class","name":"androidx/compose/ui/util/InlineClassHelperKt.class","size":2796,"crc":1839478123},{"key":"androidx/compose/ui/util/InlineClassHelper_jvmKt.class","name":"androidx/compose/ui/util/InlineClassHelper_jvmKt.class","size":1136,"crc":48882481},{"key":"androidx/compose/ui/util/ListUtilsKt.class","name":"androidx/compose/ui/util/ListUtilsKt.class","size":23551,"crc":-67452821},{"key":"androidx/compose/ui/util/MathHelpersKt.class","name":"androidx/compose/ui/util/MathHelpersKt.class","size":4040,"crc":1106318760},{"key":"META-INF/androidx.compose.ui_ui-util.version","name":"META-INF/androidx.compose.ui_ui-util.version","size":6,"crc":921909079},{"key":"META-INF/ui-util_release.kotlin_module","name":"META-INF/ui-util_release.kotlin_module","size":150,"crc":721414718}]
@@ -1 +0,0 @@
[{"key":"androidx/lifecycle/AbstractSavedStateViewModelFactory.class","name":"androidx/lifecycle/AbstractSavedStateViewModelFactory.class","size":6266,"crc":624322821},{"key":"androidx/lifecycle/LegacySavedStateHandleController$OnRecreation.class","name":"androidx/lifecycle/LegacySavedStateHandleController$OnRecreation.class","size":3023,"crc":1352335096},{"key":"androidx/lifecycle/LegacySavedStateHandleController$tryToAddRecreator$1.class","name":"androidx/lifecycle/LegacySavedStateHandleController$tryToAddRecreator$1.class","size":2215,"crc":-1110321192},{"key":"androidx/lifecycle/LegacySavedStateHandleController.class","name":"androidx/lifecycle/LegacySavedStateHandleController.class","size":4242,"crc":1010501014},{"key":"androidx/lifecycle/SavedStateHandle$Companion.class","name":"androidx/lifecycle/SavedStateHandle$Companion.class","size":4008,"crc":1738275723},{"key":"androidx/lifecycle/SavedStateHandle$SavingStateLiveData.class","name":"androidx/lifecycle/SavedStateHandle$SavingStateLiveData.class","size":2677,"crc":309253364},{"key":"androidx/lifecycle/SavedStateHandle.class","name":"androidx/lifecycle/SavedStateHandle.class","size":13780,"crc":1271817115},{"key":"androidx/lifecycle/SavedStateHandleAttacher.class","name":"androidx/lifecycle/SavedStateHandleAttacher.class","size":2410,"crc":1374032691},{"key":"androidx/lifecycle/SavedStateHandleController.class","name":"androidx/lifecycle/SavedStateHandleController.class","size":4069,"crc":-1267825771},{"key":"androidx/lifecycle/SavedStateHandleSupport$DEFAULT_ARGS_KEY$1.class","name":"androidx/lifecycle/SavedStateHandleSupport$DEFAULT_ARGS_KEY$1.class","size":1015,"crc":1680652581},{"key":"androidx/lifecycle/SavedStateHandleSupport$SAVED_STATE_REGISTRY_OWNER_KEY$1.class","name":"androidx/lifecycle/SavedStateHandleSupport$SAVED_STATE_REGISTRY_OWNER_KEY$1.class","size":1095,"crc":664941330},{"key":"androidx/lifecycle/SavedStateHandleSupport$VIEW_MODEL_STORE_OWNER_KEY$1.class","name":"androidx/lifecycle/SavedStateHandleSupport$VIEW_MODEL_STORE_OWNER_KEY$1.class","size":1077,"crc":-1417974376},{"key":"androidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1.class","name":"androidx/lifecycle/SavedStateHandleSupport$savedStateHandlesVM$1.class","size":1877,"crc":1377385748},{"key":"androidx/lifecycle/SavedStateHandleSupport.class","name":"androidx/lifecycle/SavedStateHandleSupport.class","size":8455,"crc":-612439321},{"key":"androidx/lifecycle/SavedStateHandlesProvider$viewModel$2.class","name":"androidx/lifecycle/SavedStateHandlesProvider$viewModel$2.class","size":1569,"crc":-1314923407},{"key":"androidx/lifecycle/SavedStateHandlesProvider.class","name":"androidx/lifecycle/SavedStateHandlesProvider.class","size":5980,"crc":-1504923530},{"key":"androidx/lifecycle/SavedStateHandlesVM.class","name":"androidx/lifecycle/SavedStateHandlesVM.class","size":1202,"crc":1376387357},{"key":"androidx/lifecycle/SavedStateViewModelFactory.class","name":"androidx/lifecycle/SavedStateViewModelFactory.class","size":8826,"crc":-1008829102},{"key":"androidx/lifecycle/SavedStateViewModelFactoryKt.class","name":"androidx/lifecycle/SavedStateViewModelFactoryKt.class","size":5061,"crc":473598696},{"key":"META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version","name":"META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version","size":6,"crc":-249600786},{"key":"META-INF/lifecycle-viewmodel-savedstate_release.kotlin_module","name":"META-INF/lifecycle-viewmodel-savedstate_release.kotlin_module","size":101,"crc":-1891795020}]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
[{"key":"META-INF/MANIFEST.MF","name":"META-INF/MANIFEST.MF","size":160,"crc":-835500566},{"key":"META-INF/kotlin-android-extensions-runtime.kotlin_module","name":"META-INF/kotlin-android-extensions-runtime.kotlin_module","size":24,"crc":-1111743755},{"key":"kotlinx/android/extensions/CacheImplementation$Companion.class","name":"kotlinx/android/extensions/CacheImplementation$Companion.class","size":1213,"crc":140420271},{"key":"kotlinx/android/extensions/CacheImplementation.class","name":"kotlinx/android/extensions/CacheImplementation.class","size":2416,"crc":347669202},{"key":"kotlinx/android/extensions/ContainerOptions.class","name":"kotlinx/android/extensions/ContainerOptions.class","size":760,"crc":2087980103},{"key":"kotlinx/android/extensions/LayoutContainer.class","name":"kotlinx/android/extensions/LayoutContainer.class","size":617,"crc":-1755010923},{"key":"kotlinx/android/parcel/IgnoredOnParcel.class","name":"kotlinx/android/parcel/IgnoredOnParcel.class","size":778,"crc":314959443},{"key":"kotlinx/android/parcel/Parceler$DefaultImpls.class","name":"kotlinx/android/parcel/Parceler$DefaultImpls.class","size":933,"crc":1163865465},{"key":"kotlinx/android/parcel/Parceler.class","name":"kotlinx/android/parcel/Parceler.class","size":1162,"crc":-532188771},{"key":"kotlinx/android/parcel/Parcelize.class","name":"kotlinx/android/parcel/Parcelize.class","size":806,"crc":-844911176},{"key":"kotlinx/android/parcel/RawValue.class","name":"kotlinx/android/parcel/RawValue.class","size":814,"crc":1186390907},{"key":"kotlinx/android/parcel/TypeParceler$Container.class","name":"kotlinx/android/parcel/TypeParceler$Container.class","size":883,"crc":2072132443},{"key":"kotlinx/android/parcel/TypeParceler.class","name":"kotlinx/android/parcel/TypeParceler.class","size":1282,"crc":1342335667},{"key":"kotlinx/android/parcel/WriteWith.class","name":"kotlinx/android/parcel/WriteWith.class","size":992,"crc":61107936}]
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
[{"key":"androidx/versionedparcelable/CustomVersionedParcelable.class","name":"androidx/versionedparcelable/CustomVersionedParcelable.class","size":915,"crc":-363159068},{"key":"androidx/versionedparcelable/NonParcelField.class","name":"androidx/versionedparcelable/NonParcelField.class","size":676,"crc":1361393714},{"key":"androidx/versionedparcelable/ParcelField.class","name":"androidx/versionedparcelable/ParcelField.class","size":762,"crc":-355164638},{"key":"androidx/versionedparcelable/ParcelImpl$1.class","name":"androidx/versionedparcelable/ParcelImpl$1.class","size":1191,"crc":-60532325},{"key":"androidx/versionedparcelable/ParcelImpl.class","name":"androidx/versionedparcelable/ParcelImpl.class","size":1979,"crc":1919067054},{"key":"androidx/versionedparcelable/ParcelUtils.class","name":"androidx/versionedparcelable/ParcelUtils.class","size":5523,"crc":-1129855369},{"key":"androidx/versionedparcelable/VersionedParcel$1.class","name":"androidx/versionedparcelable/VersionedParcel$1.class","size":1546,"crc":-1038307129},{"key":"androidx/versionedparcelable/VersionedParcel$ParcelException.class","name":"androidx/versionedparcelable/VersionedParcel$ParcelException.class","size":538,"crc":1830934000},{"key":"androidx/versionedparcelable/VersionedParcel.class","name":"androidx/versionedparcelable/VersionedParcel.class","size":29325,"crc":142272959},{"key":"androidx/versionedparcelable/VersionedParcelParcel.class","name":"androidx/versionedparcelable/VersionedParcelParcel.class","size":7429,"crc":-328586236},{"key":"androidx/versionedparcelable/VersionedParcelStream$1.class","name":"androidx/versionedparcelable/VersionedParcelStream$1.class","size":1613,"crc":1775874054},{"key":"androidx/versionedparcelable/VersionedParcelStream$FieldBuffer.class","name":"androidx/versionedparcelable/VersionedParcelStream$FieldBuffer.class","size":1288,"crc":1505456534},{"key":"androidx/versionedparcelable/VersionedParcelStream.class","name":"androidx/versionedparcelable/VersionedParcelStream.class","size":13823,"crc":-1859752855},{"key":"androidx/versionedparcelable/VersionedParcelable.class","name":"androidx/versionedparcelable/VersionedParcelable.class","size":148,"crc":752656910},{"key":"androidx/versionedparcelable/VersionedParcelize.class","name":"androidx/versionedparcelable/VersionedParcelize.class","size":964,"crc":886842821},{"key":"META-INF/androidx.versionedparcelable_versionedparcelable.version","name":"META-INF/androidx.versionedparcelable_versionedparcelable.version","size":6,"crc":1557790284}]
@@ -1 +0,0 @@
[{"key":"androidx/interpolator/view/animation/FastOutLinearInInterpolator.class","name":"androidx/interpolator/view/animation/FastOutLinearInInterpolator.class","size":2893,"crc":-586218538},{"key":"androidx/interpolator/view/animation/FastOutSlowInInterpolator.class","name":"androidx/interpolator/view/animation/FastOutSlowInInterpolator.class","size":2876,"crc":-1344934723},{"key":"androidx/interpolator/view/animation/LinearOutSlowInInterpolator.class","name":"androidx/interpolator/view/animation/LinearOutSlowInInterpolator.class","size":2882,"crc":-733508970},{"key":"androidx/interpolator/view/animation/LookupTableInterpolator.class","name":"androidx/interpolator/view/animation/LookupTableInterpolator.class","size":907,"crc":-26214147},{"key":"META-INF/androidx.interpolator_interpolator.version","name":"META-INF/androidx.interpolator_interpolator.version","size":6,"crc":-42031000}]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
[{"key":"META-INF/MANIFEST.MF","name":"META-INF/MANIFEST.MF","size":25,"crc":-301826126}]
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
[{"key":"androidx/savedstate/ViewKt.class","name":"androidx/savedstate/ViewKt.class","size":1242,"crc":-891744385},{"key":"META-INF/androidx.savedstate_savedstate-ktx.version","name":"META-INF/androidx.savedstate_savedstate-ktx.version","size":6,"crc":1315721634},{"key":"META-INF/savedstate-ktx_release.kotlin_module","name":"META-INF/savedstate-ktx_release.kotlin_module","size":55,"crc":1183290022}]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
[{"key":"androidx/graphics/path/ConicConverter.class","name":"androidx/graphics/path/ConicConverter.class","size":2554,"crc":-2075525229},{"key":"androidx/graphics/path/PathIterator$ConicEvaluation.class","name":"androidx/graphics/path/PathIterator$ConicEvaluation.class","size":1567,"crc":-1050694862},{"key":"androidx/graphics/path/PathIterator.class","name":"androidx/graphics/path/PathIterator.class","size":4616,"crc":1603771064},{"key":"androidx/graphics/path/PathIteratorApi34Impl.class","name":"androidx/graphics/path/PathIteratorApi34Impl.class","size":4428,"crc":130817382},{"key":"androidx/graphics/path/PathIteratorImpl$Companion.class","name":"androidx/graphics/path/PathIteratorImpl$Companion.class","size":836,"crc":-346921140},{"key":"androidx/graphics/path/PathIteratorImpl$WhenMappings.class","name":"androidx/graphics/path/PathIteratorImpl$WhenMappings.class","size":1000,"crc":252266143},{"key":"androidx/graphics/path/PathIteratorImpl.class","name":"androidx/graphics/path/PathIteratorImpl.class","size":5545,"crc":746059062},{"key":"androidx/graphics/path/PathIteratorImplKt.class","name":"androidx/graphics/path/PathIteratorImplKt.class","size":1869,"crc":-1390430380},{"key":"androidx/graphics/path/PathIteratorPreApi34Impl.class","name":"androidx/graphics/path/PathIteratorPreApi34Impl.class","size":3642,"crc":908573320},{"key":"androidx/graphics/path/PathSegment$Type.class","name":"androidx/graphics/path/PathSegment$Type.class","size":1772,"crc":-789665998},{"key":"androidx/graphics/path/PathSegment.class","name":"androidx/graphics/path/PathSegment.class","size":3292,"crc":-1409739059},{"key":"androidx/graphics/path/PathSegmentUtilities.class","name":"androidx/graphics/path/PathSegmentUtilities.class","size":2049,"crc":-1625946079},{"key":"androidx/graphics/path/PathUtilities.class","name":"androidx/graphics/path/PathUtilities.class","size":1994,"crc":1288469232},{"key":"META-INF/androidx.graphics_graphics-path.version","name":"META-INF/androidx.graphics_graphics-path.version","size":6,"crc":-463103703},{"key":"META-INF/graphics-path_release.kotlin_module","name":"META-INF/graphics-path_release.kotlin_module","size":107,"crc":1457114750}]
@@ -1 +0,0 @@
[{"key":"META-INF/MANIFEST.MF","name":"META-INF/MANIFEST.MF","size":1061,"crc":-1251250516},{"key":"META-INF/maven/com.google.guava/failureaccess/pom.properties","name":"META-INF/maven/com.google.guava/failureaccess/pom.properties","size":138,"crc":1785411800},{"key":"META-INF/maven/com.google.guava/failureaccess/pom.xml","name":"META-INF/maven/com.google.guava/failureaccess/pom.xml","size":2413,"crc":-1906597673},{"key":"com/google/common/util/concurrent/internal/InternalFutureFailureAccess.class","name":"com/google/common/util/concurrent/internal/InternalFutureFailureAccess.class","size":458,"crc":-1842118595},{"key":"com/google/common/util/concurrent/internal/InternalFutures.class","name":"com/google/common/util/concurrent/internal/InternalFutures.class","size":743,"crc":2071911263}]
@@ -1 +0,0 @@
[{"key":"androidx/customview/poolingcontainer/PoolingContainer.class","name":"androidx/customview/poolingcontainer/PoolingContainer.class","size":5411,"crc":1218352752},{"key":"androidx/customview/poolingcontainer/PoolingContainerListener.class","name":"androidx/customview/poolingcontainer/PoolingContainerListener.class","size":572,"crc":1704627172},{"key":"androidx/customview/poolingcontainer/PoolingContainerListenerHolder.class","name":"androidx/customview/poolingcontainer/PoolingContainerListenerHolder.class","size":2033,"crc":-1869864933},{"key":"META-INF/androidx.customview_customview-poolingcontainer.version","name":"META-INF/androidx.customview_customview-poolingcontainer.version","size":6,"crc":-42031000},{"key":"META-INF/customview-poolingcontainer_release.kotlin_module","name":"META-INF/customview-poolingcontainer_release.kotlin_module","size":82,"crc":-469476031}]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
[{"key":"META-INF/MANIFEST.MF","name":"META-INF/MANIFEST.MF","size":25,"crc":-301826126},{"key":"META-INF/datastore-core-okio.kotlin_module","name":"META-INF/datastore-core-okio.kotlin_module","size":71,"crc":-842474721},{"key":"androidx/datastore/core/okio/AtomicBoolean.class","name":"androidx/datastore/core/okio/AtomicBoolean.class","size":1091,"crc":1631543537},{"key":"androidx/datastore/core/okio/AtomicInt.class","name":"androidx/datastore/core/okio/AtomicInt.class","size":1258,"crc":328675844},{"key":"androidx/datastore/core/okio/OkioReadScope$readData$1.class","name":"androidx/datastore/core/okio/OkioReadScope$readData$1.class","size":1953,"crc":982954668},{"key":"androidx/datastore/core/okio/OkioReadScope.class","name":"androidx/datastore/core/okio/OkioReadScope.class","size":7626,"crc":1749145141},{"key":"androidx/datastore/core/okio/OkioSerializer.class","name":"androidx/datastore/core/okio/OkioSerializer.class","size":1390,"crc":-1718451737},{"key":"androidx/datastore/core/okio/OkioStorage$1.class","name":"androidx/datastore/core/okio/OkioStorage$1.class","size":2087,"crc":1818981389},{"key":"androidx/datastore/core/okio/OkioStorage$Companion.class","name":"androidx/datastore/core/okio/OkioStorage$Companion.class","size":1485,"crc":915912459},{"key":"androidx/datastore/core/okio/OkioStorage$canonicalPath$2.class","name":"androidx/datastore/core/okio/OkioStorage$canonicalPath$2.class","size":2324,"crc":-1520533305},{"key":"androidx/datastore/core/okio/OkioStorage$createConnection$2.class","name":"androidx/datastore/core/okio/OkioStorage$createConnection$2.class","size":3100,"crc":1101961689},{"key":"androidx/datastore/core/okio/OkioStorage.class","name":"androidx/datastore/core/okio/OkioStorage.class","size":7242,"crc":338528835},{"key":"androidx/datastore/core/okio/OkioStorageConnection$readScope$1.class","name":"androidx/datastore/core/okio/OkioStorageConnection$readScope$1.class","size":2029,"crc":1183308023},{"key":"androidx/datastore/core/okio/OkioStorageConnection$writeScope$1.class","name":"androidx/datastore/core/okio/OkioStorageConnection$writeScope$1.class","size":2072,"crc":1042673907},{"key":"androidx/datastore/core/okio/OkioStorageConnection.class","name":"androidx/datastore/core/okio/OkioStorageConnection.class","size":12958,"crc":-927860441},{"key":"androidx/datastore/core/okio/OkioStorageKt.class","name":"androidx/datastore/core/okio/OkioStorageKt.class","size":1131,"crc":-1071525275},{"key":"androidx/datastore/core/okio/OkioWriteScope$writeData$1.class","name":"androidx/datastore/core/okio/OkioWriteScope$writeData$1.class","size":1868,"crc":-1984904908},{"key":"androidx/datastore/core/okio/OkioWriteScope.class","name":"androidx/datastore/core/okio/OkioWriteScope.class","size":7068,"crc":-271519542},{"key":"androidx/datastore/core/okio/Synchronizer.class","name":"androidx/datastore/core/okio/Synchronizer.class","size":1537,"crc":-2096946248}]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
[{"key":"androidx/arch/core/executor/ArchTaskExecutor.class","name":"androidx/arch/core/executor/ArchTaskExecutor.class","size":2950,"crc":-173664277},{"key":"androidx/arch/core/executor/DefaultTaskExecutor$1.class","name":"androidx/arch/core/executor/DefaultTaskExecutor$1.class","size":1445,"crc":-1550744660},{"key":"androidx/arch/core/executor/DefaultTaskExecutor$Api28Impl.class","name":"androidx/arch/core/executor/DefaultTaskExecutor$Api28Impl.class","size":834,"crc":1774766260},{"key":"androidx/arch/core/executor/DefaultTaskExecutor.class","name":"androidx/arch/core/executor/DefaultTaskExecutor.class","size":3293,"crc":-1256626107},{"key":"androidx/arch/core/executor/TaskExecutor.class","name":"androidx/arch/core/executor/TaskExecutor.class","size":1053,"crc":1399542030},{"key":"META-INF/androidx.arch.core_core-runtime.version","name":"META-INF/androidx.arch.core_core-runtime.version","size":67,"crc":1307063212}]
@@ -1 +0,0 @@
[{"key":"androidx/viewpager/widget/PagerAdapter.class","name":"androidx/viewpager/widget/PagerAdapter.class","size":4231,"crc":1137649263},{"key":"androidx/viewpager/widget/PagerTabStrip$1.class","name":"androidx/viewpager/widget/PagerTabStrip$1.class","size":1031,"crc":-1240140111},{"key":"androidx/viewpager/widget/PagerTabStrip$2.class","name":"androidx/viewpager/widget/PagerTabStrip$2.class","size":1031,"crc":-1127620809},{"key":"androidx/viewpager/widget/PagerTabStrip.class","name":"androidx/viewpager/widget/PagerTabStrip.class","size":7327,"crc":43124920},{"key":"androidx/viewpager/widget/PagerTitleStrip$PageListener.class","name":"androidx/viewpager/widget/PagerTitleStrip$PageListener.class","size":2333,"crc":1083928157},{"key":"androidx/viewpager/widget/PagerTitleStrip$SingleLineAllCapsTransform.class","name":"androidx/viewpager/widget/PagerTitleStrip$SingleLineAllCapsTransform.class","size":1386,"crc":-1473138747},{"key":"androidx/viewpager/widget/PagerTitleStrip.class","name":"androidx/viewpager/widget/PagerTitleStrip.class","size":12631,"crc":-2046776245},{"key":"androidx/viewpager/widget/ViewPager$1.class","name":"androidx/viewpager/widget/ViewPager$1.class","size":1017,"crc":169159464},{"key":"androidx/viewpager/widget/ViewPager$2.class","name":"androidx/viewpager/widget/ViewPager$2.class","size":571,"crc":-481935440},{"key":"androidx/viewpager/widget/ViewPager$3.class","name":"androidx/viewpager/widget/ViewPager$3.class","size":700,"crc":-118651813},{"key":"androidx/viewpager/widget/ViewPager$4.class","name":"androidx/viewpager/widget/ViewPager$4.class","size":1986,"crc":554889883},{"key":"androidx/viewpager/widget/ViewPager$DecorView.class","name":"androidx/viewpager/widget/ViewPager$DecorView.class","size":528,"crc":-950931320},{"key":"androidx/viewpager/widget/ViewPager$ItemInfo.class","name":"androidx/viewpager/widget/ViewPager$ItemInfo.class","size":533,"crc":1272630321},{"key":"androidx/viewpager/widget/ViewPager$LayoutParams.class","name":"androidx/viewpager/widget/ViewPager$LayoutParams.class","size":1246,"crc":366823533},{"key":"androidx/viewpager/widget/ViewPager$MyAccessibilityDelegate.class","name":"androidx/viewpager/widget/ViewPager$MyAccessibilityDelegate.class","size":2526,"crc":2109101101},{"key":"androidx/viewpager/widget/ViewPager$OnAdapterChangeListener.class","name":"androidx/viewpager/widget/ViewPager$OnAdapterChangeListener.class","size":526,"crc":-2027879253},{"key":"androidx/viewpager/widget/ViewPager$OnPageChangeListener.class","name":"androidx/viewpager/widget/ViewPager$OnPageChangeListener.class","size":425,"crc":695229708},{"key":"androidx/viewpager/widget/ViewPager$PageTransformer.class","name":"androidx/viewpager/widget/ViewPager$PageTransformer.class","size":367,"crc":410653001},{"key":"androidx/viewpager/widget/ViewPager$PagerObserver.class","name":"androidx/viewpager/widget/ViewPager$PagerObserver.class","size":746,"crc":645832464},{"key":"androidx/viewpager/widget/ViewPager$SavedState$1.class","name":"androidx/viewpager/widget/ViewPager$SavedState$1.class","size":1705,"crc":479450836},{"key":"androidx/viewpager/widget/ViewPager$SavedState.class","name":"androidx/viewpager/widget/ViewPager$SavedState.class","size":2417,"crc":107589641},{"key":"androidx/viewpager/widget/ViewPager$SimpleOnPageChangeListener.class","name":"androidx/viewpager/widget/ViewPager$SimpleOnPageChangeListener.class","size":919,"crc":-651217725},{"key":"androidx/viewpager/widget/ViewPager$ViewPositionComparator.class","name":"androidx/viewpager/widget/ViewPager$ViewPositionComparator.class","size":1333,"crc":-1413797540},{"key":"androidx/viewpager/widget/ViewPager.class","name":"androidx/viewpager/widget/ViewPager.class","size":51337,"crc":-2522352},{"key":"META-INF/androidx.viewpager_viewpager.version","name":"META-INF/androidx.viewpager_viewpager.version","size":6,"crc":-42031000}]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
[{"key":"androidx/loader/app/LoaderManager$LoaderCallbacks.class","name":"androidx/loader/app/LoaderManager$LoaderCallbacks.class","size":946,"crc":-123528875},{"key":"androidx/loader/app/LoaderManager.class","name":"androidx/loader/app/LoaderManager.class","size":2244,"crc":156436383},{"key":"androidx/loader/app/LoaderManagerImpl$LoaderInfo.class","name":"androidx/loader/app/LoaderManagerImpl$LoaderInfo.class","size":7635,"crc":-1955402743},{"key":"androidx/loader/app/LoaderManagerImpl$LoaderObserver.class","name":"androidx/loader/app/LoaderManagerImpl$LoaderObserver.class","size":3237,"crc":866989739},{"key":"androidx/loader/app/LoaderManagerImpl$LoaderViewModel$1.class","name":"androidx/loader/app/LoaderManagerImpl$LoaderViewModel$1.class","size":1102,"crc":-1482526164},{"key":"androidx/loader/app/LoaderManagerImpl$LoaderViewModel.class","name":"androidx/loader/app/LoaderManagerImpl$LoaderViewModel.class","size":4255,"crc":862018756},{"key":"androidx/loader/app/LoaderManagerImpl.class","name":"androidx/loader/app/LoaderManagerImpl.class","size":7525,"crc":-1905229766},{"key":"androidx/loader/content/AsyncTaskLoader$LoadTask.class","name":"androidx/loader/content/AsyncTaskLoader$LoadTask.class","size":2590,"crc":-1781583970},{"key":"androidx/loader/content/AsyncTaskLoader.class","name":"androidx/loader/content/AsyncTaskLoader.class","size":5894,"crc":-1443051443},{"key":"androidx/loader/content/CursorLoader.class","name":"androidx/loader/content/CursorLoader.class","size":6564,"crc":1182075271},{"key":"androidx/loader/content/Loader$ForceLoadContentObserver.class","name":"androidx/loader/content/Loader$ForceLoadContentObserver.class","size":1018,"crc":1420840201},{"key":"androidx/loader/content/Loader$OnLoadCanceledListener.class","name":"androidx/loader/content/Loader$OnLoadCanceledListener.class","size":493,"crc":1597944693},{"key":"androidx/loader/content/Loader$OnLoadCompleteListener.class","name":"androidx/loader/content/Loader$OnLoadCompleteListener.class","size":553,"crc":-1004412857},{"key":"androidx/loader/content/Loader.class","name":"androidx/loader/content/Loader.class","size":7784,"crc":-309363131},{"key":"androidx/loader/content/ModernAsyncTask$1.class","name":"androidx/loader/content/ModernAsyncTask$1.class","size":1122,"crc":-1522224884},{"key":"androidx/loader/content/ModernAsyncTask$2.class","name":"androidx/loader/content/ModernAsyncTask$2.class","size":1730,"crc":-54802885},{"key":"androidx/loader/content/ModernAsyncTask$3.class","name":"androidx/loader/content/ModernAsyncTask$3.class","size":1946,"crc":999679769},{"key":"androidx/loader/content/ModernAsyncTask$4.class","name":"androidx/loader/content/ModernAsyncTask$4.class","size":818,"crc":781657903},{"key":"androidx/loader/content/ModernAsyncTask$AsyncTaskResult.class","name":"androidx/loader/content/ModernAsyncTask$AsyncTaskResult.class","size":951,"crc":565889747},{"key":"androidx/loader/content/ModernAsyncTask$InternalHandler.class","name":"androidx/loader/content/ModernAsyncTask$InternalHandler.class","size":1258,"crc":-98894051},{"key":"androidx/loader/content/ModernAsyncTask$Status.class","name":"androidx/loader/content/ModernAsyncTask$Status.class","size":1243,"crc":278128340},{"key":"androidx/loader/content/ModernAsyncTask$WorkerRunnable.class","name":"androidx/loader/content/ModernAsyncTask$WorkerRunnable.class","size":796,"crc":-1597044986},{"key":"androidx/loader/content/ModernAsyncTask.class","name":"androidx/loader/content/ModernAsyncTask.class","size":7908,"crc":692681611},{"key":"META-INF/androidx.loader_loader.version","name":"META-INF/androidx.loader_loader.version","size":6,"crc":-42031000}]
@@ -1 +0,0 @@
[{"key":"androidx/savedstate/Recreator$Companion.class","name":"androidx/savedstate/Recreator$Companion.class","size":881,"crc":-2099199957},{"key":"androidx/savedstate/Recreator$SavedStateProvider.class","name":"androidx/savedstate/Recreator$SavedStateProvider.class","size":2367,"crc":1821800407},{"key":"androidx/savedstate/Recreator.class","name":"androidx/savedstate/Recreator.class","size":5559,"crc":-533493763},{"key":"androidx/savedstate/SavedStateRegistry$AutoRecreated.class","name":"androidx/savedstate/SavedStateRegistry$AutoRecreated.class","size":784,"crc":567056175},{"key":"androidx/savedstate/SavedStateRegistry$Companion.class","name":"androidx/savedstate/SavedStateRegistry$Companion.class","size":887,"crc":900872896},{"key":"androidx/savedstate/SavedStateRegistry$SavedStateProvider.class","name":"androidx/savedstate/SavedStateRegistry$SavedStateProvider.class","size":709,"crc":-309935901},{"key":"androidx/savedstate/SavedStateRegistry.class","name":"androidx/savedstate/SavedStateRegistry.class","size":10105,"crc":788600212},{"key":"androidx/savedstate/SavedStateRegistryController$Companion.class","name":"androidx/savedstate/SavedStateRegistryController$Companion.class","size":1607,"crc":-1819286630},{"key":"androidx/savedstate/SavedStateRegistryController.class","name":"androidx/savedstate/SavedStateRegistryController.class","size":4330,"crc":-287729808},{"key":"androidx/savedstate/SavedStateRegistryOwner.class","name":"androidx/savedstate/SavedStateRegistryOwner.class","size":755,"crc":-979039875},{"key":"androidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$1.class","name":"androidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$1.class","size":1846,"crc":423512158},{"key":"androidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$2.class","name":"androidx/savedstate/ViewTreeSavedStateRegistryOwner$findViewTreeSavedStateRegistryOwner$2.class","size":2045,"crc":-1356874610},{"key":"androidx/savedstate/ViewTreeSavedStateRegistryOwner.class","name":"androidx/savedstate/ViewTreeSavedStateRegistryOwner.class","size":2543,"crc":1459979664},{"key":"META-INF/androidx.savedstate_savedstate.version","name":"META-INF/androidx.savedstate_savedstate.version","size":6,"crc":1315721634},{"key":"META-INF/savedstate_release.kotlin_module","name":"META-INF/savedstate_release.kotlin_module","size":80,"crc":-912612184}]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
[{"key":"META-INF/MANIFEST.MF","name":"META-INF/MANIFEST.MF","size":225,"crc":1334212140},{"key":"META-INF/versions/9/module-info.class","name":"META-INF/versions/9/module-info.class","size":287,"crc":-1907208598}]
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
[{"key":"androidx/lifecycle/LifecycleService.class","name":"androidx/lifecycle/LifecycleService.class","size":2658,"crc":-3702339},{"key":"androidx/lifecycle/ServiceLifecycleDispatcher$DispatchRunnable.class","name":"androidx/lifecycle/ServiceLifecycleDispatcher$DispatchRunnable.class","size":1918,"crc":-985917504},{"key":"androidx/lifecycle/ServiceLifecycleDispatcher.class","name":"androidx/lifecycle/ServiceLifecycleDispatcher.class","size":2975,"crc":-2091535168},{"key":"META-INF/androidx.lifecycle_lifecycle-service.version","name":"META-INF/androidx.lifecycle_lifecycle-service.version","size":6,"crc":-249600786},{"key":"META-INF/lifecycle-service_release.kotlin_module","name":"META-INF/lifecycle-service_release.kotlin_module","size":24,"crc":1613429616}]
File diff suppressed because one or more lines are too long

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