NoExitPrior commited on
Commit
f5f56a5
·
0 Parent(s):

clean main: MuseEye HF version (fonts removed)

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +18 -0
  2. .github/ISSUE_TEMPLATE/bug_report.md +32 -0
  3. .github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. .github/ISSUE_TEMPLATE/support_request.md +46 -0
  5. .github/workflows/build_android.yaml +29 -0
  6. .gitignore +1 -0
  7. .idea/.gitignore +3 -0
  8. .idea/caches/deviceStreaming.xml +945 -0
  9. .idea/gallery.iml +9 -0
  10. .idea/misc.xml +5 -0
  11. .idea/modules.xml +8 -0
  12. .idea/vcs.xml +6 -0
  13. Android/.gitignore +51 -0
  14. Android/README.md +1 -0
  15. Android/src/.gitignore +31 -0
  16. Android/src/app/.gitignore +18 -0
  17. Android/src/app/build.gradle.kts +167 -0
  18. Android/src/app/src/main/AndroidManifest.xml +103 -0
  19. Android/src/app/src/main/assets/DATA/davinchi.json +3 -0
  20. Android/src/app/src/main/assets/DATA/davinchi/동방박사의 경배.jpg +3 -0
  21. Android/src/app/src/main/assets/DATA/davinchi/라 벨 페로니에르.jpg +3 -0
  22. Android/src/app/src/main/assets/DATA/davinchi/레다와 백조.jpg +3 -0
  23. Android/src/app/src/main/assets/DATA/davinchi/모나리자.jpg +3 -0
  24. Android/src/app/src/main/assets/DATA/davinchi/브누아 마돈나.jpg +3 -0
  25. Android/src/app/src/main/assets/DATA/davinchi/비트루비우스적 인간.jpg +3 -0
  26. Android/src/app/src/main/assets/DATA/davinchi/살바토르 문디.jpg +3 -0
  27. Android/src/app/src/main/assets/DATA/davinchi/성 안나와 함께 있는 성모자.jpg +3 -0
  28. Android/src/app/src/main/assets/DATA/davinchi/세례자 요한.jpg +3 -0
  29. Android/src/app/src/main/assets/DATA/davinchi/수태고지.jpg +3 -0
  30. Android/src/app/src/main/assets/DATA/davinchi/암굴의 성모.jpg +3 -0
  31. Android/src/app/src/main/assets/DATA/davinchi/최후의 만찬.jpg +3 -0
  32. Android/src/app/src/main/assets/DATA/davinchi/태아의 해부 드로잉.jpg +3 -0
  33. Android/src/app/src/main/assets/DATA/davinchi/흰 족제비를 안은 여인.jpg +3 -0
  34. Android/src/app/src/main/assets/DATA/etc/귀에 붕대를 감은 자화상.png +3 -0
  35. Android/src/app/src/main/assets/DATA/etc/너도밤나무 숲.jpg +3 -0
  36. Android/src/app/src/main/assets/DATA/etc/양귀비 들판.jpg +3 -0
  37. Android/src/app/src/main/assets/DATA/etc/여인의 초상.png +3 -0
  38. Android/src/app/src/main/assets/DATA/etc/위게니아 프리마베시 초상화.jpg +3 -0
  39. Android/src/app/src/main/assets/DATA/etc/헝클어진 머리의 여인.jpg +3 -0
  40. Android/src/app/src/main/assets/DATA/klimt.json +3 -0
  41. Android/src/app/src/main/assets/DATA/klimt/다나에.jpg +3 -0
  42. Android/src/app/src/main/assets/DATA/klimt/물뱀 I.jpg +3 -0
  43. Android/src/app/src/main/assets/DATA/klimt/배나무.jpg +3 -0
  44. Android/src/app/src/main/assets/DATA/klimt/베토벤 프리즈.png +3 -0
  45. Android/src/app/src/main/assets/DATA/klimt/부채를 든 여인.jpg +3 -0
  46. Android/src/app/src/main/assets/DATA/klimt/생명의 나무.jpg +3 -0
  47. Android/src/app/src/main/assets/DATA/klimt/세레나 레더러의 초상.jpg +3 -0
  48. Android/src/app/src/main/assets/DATA/klimt/소니아 님스의 초상.png +3 -0
  49. Android/src/app/src/main/assets/DATA/klimt/아델르 블로흐-바우어의 초상 II.jpg +3 -0
  50. Android/src/app/src/main/assets/DATA/klimt/아델르 블로흐-바우어의 초상.jpg +3 -0
.gitattributes ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.tflite filter=lfs diff=lfs merge=lfs -text
2
+ *.so filter=lfs diff=lfs merge=lfs -text
3
+ Android/src/app/src/main/assets/DATA/* filter=lfs diff=lfs merge=lfs -text
4
+ *.npy filter=lfs diff=lfs merge=lfs -text
5
+ *.bin filter=lfs diff=lfs merge=lfs -text
6
+ *.faiss filter=lfs diff=lfs merge=lfs -text
7
+ *.model filter=lfs diff=lfs merge=lfs -text
8
+ *.png filter=lfs diff=lfs merge=lfs -text
9
+ *.webp filter=lfs diff=lfs merge=lfs -text
10
+ *.ttf filter=lfs diff=lfs merge=lfs -text
11
+ *.aar filter=lfs diff=lfs merge=lfs -text
12
+ *.jar filter=lfs diff=lfs merge=lfs -text
13
+ *.dat filter=lfs diff=lfs merge=lfs -text
14
+ *.dll filter=lfs diff=lfs merge=lfs -text
15
+ *.unity3d filter=lfs diff=lfs merge=lfs -text
16
+ *.a filter=lfs diff=lfs merge=lfs -text
17
+ Android/src/unityLibrary/src/main/assets/bin/Data/* filter=lfs diff=lfs merge=lfs -text
18
+ Android/src/app/src/main/res/font/*.ttf filter=lfs diff=lfs merge=lfs -text
.github/ISSUE_TEMPLATE/bug_report.md ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: 🐛 Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug:**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce:**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior:**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots:**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Device & App Information (Please complete the following):**
27
+ - Device: [e.g., Samsung Galaxy S23, Google Pixel 7]
28
+ - Android Version: [e.g., Android 12, Android 13]
29
+ - App Version: [e.g., 1.0.1, v1.0.2]
30
+
31
+ **Additional context:**
32
+ Add any other context about the problem here.
.github/ISSUE_TEMPLATE/feature_request.md ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: ✨ Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
.github/ISSUE_TEMPLATE/support_request.md ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: 🆘 Support Request
3
+ about: Ask a question or get help with usage.
4
+ title: "[Support]: "
5
+ labels: ["support", "question"]
6
+ assignees: []
7
+ ---
8
+
9
+ <!--
10
+ Thanks for reaching out for help! To assist you efficiently, please provide as much detail as possible.
11
+ -->
12
+
13
+ **What do you need help with?**
14
+
15
+ Is this a question about how to do something, a configuration problem, or a general issue you can't solve?
16
+
17
+ **Describe the issue/question:**
18
+
19
+ Clearly describe what you are trying to achieve, what problem you are facing, or what question you have.
20
+
21
+ **What have you tried so far? (Optional):**
22
+
23
+ List any steps you've already taken to troubleshoot, find information, or attempt a solution.
24
+
25
+ **Expected outcome (Optional):**
26
+
27
+ If applicable, what did you hope would happen, or what solution are you looking for?
28
+
29
+ **Screenshots/Videos (Optional):**
30
+
31
+ If applicable, add screenshots or a short video that might help explain your situation.
32
+
33
+ **Environment & Details:**
34
+
35
+ Please provide details about your operating environment, relevant URLs, or any messages you see.
36
+
37
+ - **Operating System:**
38
+ - **Browser & Version (if applicable):**
39
+ - **Any relevant messages (e.g., from UI, console):**
40
+ ```
41
+ PASTE_ANY_MESSAGES_HERE
42
+ ```
43
+
44
+ **Any additional context?:**
45
+
46
+ Is there anything else that might be useful for us to know?
.github/workflows/build_android.yaml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Build Android APK
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [ "main" ]
7
+ paths:
8
+ - 'Android/**'
9
+ pull_request:
10
+ branches: [ "main" ]
11
+ paths:
12
+ - 'Android/**'
13
+
14
+ jobs:
15
+ build_apk:
16
+ name: Build Android APK
17
+ runs-on: ubuntu-latest
18
+ defaults:
19
+ run:
20
+ working-directory: ./Android/src
21
+ steps:
22
+ - name: Checkout the source code
23
+ uses: actions/checkout@v3
24
+ - uses: actions/setup-java@v4
25
+ with:
26
+ distribution: 'temurin'
27
+ java-version: '21'
28
+ - name: Build
29
+ run: ./gradlew assembleRelease
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ .DS_Store
.idea/.gitignore ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ # Default ignored files
2
+ /shelf/
3
+ /workspace.xml
.idea/caches/deviceStreaming.xml ADDED
@@ -0,0 +1,945 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="DeviceStreaming">
4
+ <option name="deviceSelectionList">
5
+ <list>
6
+ <PersistentDeviceSelectionData>
7
+ <option name="api" value="34" />
8
+ <option name="brand" value="Sony" />
9
+ <option name="codename" value="A402SO" />
10
+ <option name="id" value="A402SO" />
11
+ <option name="labId" value="google" />
12
+ <option name="manufacturer" value="Sony" />
13
+ <option name="name" value="Xperia 10" />
14
+ <option name="screenDensity" value="450" />
15
+ <option name="screenX" value="1080" />
16
+ <option name="screenY" value="2520" />
17
+ </PersistentDeviceSelectionData>
18
+ <PersistentDeviceSelectionData>
19
+ <option name="api" value="27" />
20
+ <option name="brand" value="DOCOMO" />
21
+ <option name="codename" value="F01L" />
22
+ <option name="id" value="F01L" />
23
+ <option name="labId" value="google" />
24
+ <option name="manufacturer" value="FUJITSU" />
25
+ <option name="name" value="F-01L" />
26
+ <option name="screenDensity" value="360" />
27
+ <option name="screenX" value="720" />
28
+ <option name="screenY" value="1280" />
29
+ </PersistentDeviceSelectionData>
30
+ <PersistentDeviceSelectionData>
31
+ <option name="api" value="34" />
32
+ <option name="brand" value="OnePlus" />
33
+ <option name="codename" value="OP535DL1" />
34
+ <option name="id" value="OP535DL1" />
35
+ <option name="labId" value="google" />
36
+ <option name="manufacturer" value="OnePlus" />
37
+ <option name="name" value="CPH2409" />
38
+ <option name="screenDensity" value="401" />
39
+ <option name="screenX" value="1080" />
40
+ <option name="screenY" value="2412" />
41
+ </PersistentDeviceSelectionData>
42
+ <PersistentDeviceSelectionData>
43
+ <option name="api" value="34" />
44
+ <option name="brand" value="OnePlus" />
45
+ <option name="codename" value="OP5552L1" />
46
+ <option name="id" value="OP5552L1" />
47
+ <option name="labId" value="google" />
48
+ <option name="manufacturer" value="OnePlus" />
49
+ <option name="name" value="CPH2415" />
50
+ <option name="screenDensity" value="480" />
51
+ <option name="screenX" value="1080" />
52
+ <option name="screenY" value="2412" />
53
+ </PersistentDeviceSelectionData>
54
+ <PersistentDeviceSelectionData>
55
+ <option name="api" value="35" />
56
+ <option name="brand" value="OnePlus" />
57
+ <option name="codename" value="OP5552L1" />
58
+ <option name="id" value="OP5552L1" />
59
+ <option name="labId" value="google" />
60
+ <option name="manufacturer" value="OnePlus" />
61
+ <option name="name" value="CPH2415" />
62
+ <option name="screenDensity" value="480" />
63
+ <option name="screenX" value="1080" />
64
+ <option name="screenY" value="2412" />
65
+ </PersistentDeviceSelectionData>
66
+ <PersistentDeviceSelectionData>
67
+ <option name="api" value="34" />
68
+ <option name="brand" value="OPPO" />
69
+ <option name="codename" value="OP573DL1" />
70
+ <option name="id" value="OP573DL1" />
71
+ <option name="labId" value="google" />
72
+ <option name="manufacturer" value="OPPO" />
73
+ <option name="name" value="CPH2557" />
74
+ <option name="screenDensity" value="480" />
75
+ <option name="screenX" value="1080" />
76
+ <option name="screenY" value="2400" />
77
+ </PersistentDeviceSelectionData>
78
+ <PersistentDeviceSelectionData>
79
+ <option name="api" value="28" />
80
+ <option name="brand" value="DOCOMO" />
81
+ <option name="codename" value="SH-01L" />
82
+ <option name="id" value="SH-01L" />
83
+ <option name="labId" value="google" />
84
+ <option name="manufacturer" value="SHARP" />
85
+ <option name="name" value="AQUOS sense2 SH-01L" />
86
+ <option name="screenDensity" value="480" />
87
+ <option name="screenX" value="1080" />
88
+ <option name="screenY" value="2160" />
89
+ </PersistentDeviceSelectionData>
90
+ <PersistentDeviceSelectionData>
91
+ <option name="api" value="35" />
92
+ <option name="brand" value="Lenovo" />
93
+ <option name="codename" value="TB330FU" />
94
+ <option name="formFactor" value="Tablet" />
95
+ <option name="id" value="TB330FU" />
96
+ <option name="labId" value="google" />
97
+ <option name="manufacturer" value="Lenovo" />
98
+ <option name="name" value="Tab M11" />
99
+ <option name="screenDensity" value="240" />
100
+ <option name="screenX" value="1200" />
101
+ <option name="screenY" value="1920" />
102
+ </PersistentDeviceSelectionData>
103
+ <PersistentDeviceSelectionData>
104
+ <option name="api" value="34" />
105
+ <option name="brand" value="samsung" />
106
+ <option name="codename" value="a14m" />
107
+ <option name="id" value="a14m" />
108
+ <option name="labId" value="google" />
109
+ <option name="manufacturer" value="Samsung" />
110
+ <option name="name" value="SM-A145R" />
111
+ <option name="screenDensity" value="450" />
112
+ <option name="screenX" value="1080" />
113
+ <option name="screenY" value="2408" />
114
+ </PersistentDeviceSelectionData>
115
+ <PersistentDeviceSelectionData>
116
+ <option name="api" value="34" />
117
+ <option name="brand" value="samsung" />
118
+ <option name="codename" value="a15" />
119
+ <option name="id" value="a15" />
120
+ <option name="labId" value="google" />
121
+ <option name="manufacturer" value="Samsung" />
122
+ <option name="name" value="A15" />
123
+ <option name="screenDensity" value="450" />
124
+ <option name="screenX" value="1080" />
125
+ <option name="screenY" value="2340" />
126
+ </PersistentDeviceSelectionData>
127
+ <PersistentDeviceSelectionData>
128
+ <option name="api" value="34" />
129
+ <option name="brand" value="samsung" />
130
+ <option name="codename" value="a15x" />
131
+ <option name="id" value="a15x" />
132
+ <option name="labId" value="google" />
133
+ <option name="manufacturer" value="Samsung" />
134
+ <option name="name" value="A15 5G" />
135
+ <option name="screenDensity" value="450" />
136
+ <option name="screenX" value="1080" />
137
+ <option name="screenY" value="2340" />
138
+ </PersistentDeviceSelectionData>
139
+ <PersistentDeviceSelectionData>
140
+ <option name="api" value="35" />
141
+ <option name="brand" value="samsung" />
142
+ <option name="codename" value="a16" />
143
+ <option name="id" value="a16" />
144
+ <option name="labId" value="google" />
145
+ <option name="manufacturer" value="Samsung" />
146
+ <option name="name" value="SM-A165M" />
147
+ <option name="screenDensity" value="450" />
148
+ <option name="screenX" value="1080" />
149
+ <option name="screenY" value="2340" />
150
+ </PersistentDeviceSelectionData>
151
+ <PersistentDeviceSelectionData>
152
+ <option name="api" value="34" />
153
+ <option name="brand" value="samsung" />
154
+ <option name="codename" value="a16x" />
155
+ <option name="id" value="a16x" />
156
+ <option name="labId" value="google" />
157
+ <option name="manufacturer" value="Samsung" />
158
+ <option name="name" value="A16 5G" />
159
+ <option name="screenDensity" value="450" />
160
+ <option name="screenX" value="1080" />
161
+ <option name="screenY" value="2340" />
162
+ </PersistentDeviceSelectionData>
163
+ <PersistentDeviceSelectionData>
164
+ <option name="api" value="34" />
165
+ <option name="brand" value="samsung" />
166
+ <option name="codename" value="a35x" />
167
+ <option name="id" value="a35x" />
168
+ <option name="labId" value="google" />
169
+ <option name="manufacturer" value="Samsung" />
170
+ <option name="name" value="A35" />
171
+ <option name="screenDensity" value="450" />
172
+ <option name="screenX" value="1080" />
173
+ <option name="screenY" value="2340" />
174
+ </PersistentDeviceSelectionData>
175
+ <PersistentDeviceSelectionData>
176
+ <option name="api" value="35" />
177
+ <option name="brand" value="samsung" />
178
+ <option name="codename" value="a36xq" />
179
+ <option name="id" value="a36xq" />
180
+ <option name="labId" value="google" />
181
+ <option name="manufacturer" value="Samsung" />
182
+ <option name="name" value="SM-A366E" />
183
+ <option name="screenDensity" value="450" />
184
+ <option name="screenX" value="1080" />
185
+ <option name="screenY" value="2340" />
186
+ </PersistentDeviceSelectionData>
187
+ <PersistentDeviceSelectionData>
188
+ <option name="api" value="34" />
189
+ <option name="brand" value="google" />
190
+ <option name="codename" value="akita" />
191
+ <option name="id" value="akita" />
192
+ <option name="labId" value="google" />
193
+ <option name="manufacturer" value="Google" />
194
+ <option name="name" value="Pixel 8a" />
195
+ <option name="screenDensity" value="420" />
196
+ <option name="screenX" value="1080" />
197
+ <option name="screenY" value="2400" />
198
+ </PersistentDeviceSelectionData>
199
+ <PersistentDeviceSelectionData>
200
+ <option name="api" value="35" />
201
+ <option name="brand" value="google" />
202
+ <option name="codename" value="akita" />
203
+ <option name="id" value="akita" />
204
+ <option name="labId" value="google" />
205
+ <option name="manufacturer" value="Google" />
206
+ <option name="name" value="Pixel 8a" />
207
+ <option name="screenDensity" value="420" />
208
+ <option name="screenX" value="1080" />
209
+ <option name="screenY" value="2400" />
210
+ </PersistentDeviceSelectionData>
211
+ <PersistentDeviceSelectionData>
212
+ <option name="api" value="34" />
213
+ <option name="brand" value="motorola" />
214
+ <option name="codename" value="arcfox" />
215
+ <option name="id" value="arcfox" />
216
+ <option name="labId" value="google" />
217
+ <option name="manufacturer" value="Motorola" />
218
+ <option name="name" value="razr plus 2024" />
219
+ <option name="screenDensity" value="360" />
220
+ <option name="screenX" value="1080" />
221
+ <option name="screenY" value="1272" />
222
+ </PersistentDeviceSelectionData>
223
+ <PersistentDeviceSelectionData>
224
+ <option name="api" value="33" />
225
+ <option name="brand" value="motorola" />
226
+ <option name="codename" value="austin" />
227
+ <option name="id" value="austin" />
228
+ <option name="labId" value="google" />
229
+ <option name="manufacturer" value="Motorola" />
230
+ <option name="name" value="moto g 5G (2022)" />
231
+ <option name="screenDensity" value="280" />
232
+ <option name="screenX" value="720" />
233
+ <option name="screenY" value="1600" />
234
+ </PersistentDeviceSelectionData>
235
+ <PersistentDeviceSelectionData>
236
+ <option name="api" value="33" />
237
+ <option name="brand" value="samsung" />
238
+ <option name="codename" value="b0q" />
239
+ <option name="id" value="b0q" />
240
+ <option name="labId" value="google" />
241
+ <option name="manufacturer" value="Samsung" />
242
+ <option name="name" value="Galaxy S22 Ultra" />
243
+ <option name="screenDensity" value="600" />
244
+ <option name="screenX" value="1440" />
245
+ <option name="screenY" value="3088" />
246
+ </PersistentDeviceSelectionData>
247
+ <PersistentDeviceSelectionData>
248
+ <option name="api" value="34" />
249
+ <option name="brand" value="samsung" />
250
+ <option name="codename" value="b6q" />
251
+ <option name="id" value="b6q" />
252
+ <option name="labId" value="google" />
253
+ <option name="manufacturer" value="Samsung" />
254
+ <option name="name" value="Flip 6" />
255
+ <option name="screenDensity" value="340" />
256
+ <option name="screenX" value="1080" />
257
+ <option name="screenY" value="2640" />
258
+ </PersistentDeviceSelectionData>
259
+ <PersistentDeviceSelectionData>
260
+ <option name="api" value="36" />
261
+ <option name="brand" value="google" />
262
+ <option name="codename" value="blazer" />
263
+ <option name="id" value="blazer" />
264
+ <option name="labId" value="google" />
265
+ <option name="manufacturer" value="Google" />
266
+ <option name="name" value="Pixel 10 Pro" />
267
+ <option name="screenDensity" value="420" />
268
+ <option name="screenX" value="1080" />
269
+ <option name="screenY" value="2410" />
270
+ </PersistentDeviceSelectionData>
271
+ <PersistentDeviceSelectionData>
272
+ <option name="api" value="32" />
273
+ <option name="brand" value="google" />
274
+ <option name="codename" value="bluejay" />
275
+ <option name="id" value="bluejay" />
276
+ <option name="labId" value="google" />
277
+ <option name="manufacturer" value="Google" />
278
+ <option name="name" value="Pixel 6a" />
279
+ <option name="screenDensity" value="420" />
280
+ <option name="screenX" value="1080" />
281
+ <option name="screenY" value="2400" />
282
+ </PersistentDeviceSelectionData>
283
+ <PersistentDeviceSelectionData>
284
+ <option name="api" value="34" />
285
+ <option name="brand" value="google" />
286
+ <option name="codename" value="caiman" />
287
+ <option name="id" value="caiman" />
288
+ <option name="labId" value="google" />
289
+ <option name="manufacturer" value="Google" />
290
+ <option name="name" value="Pixel 9 Pro" />
291
+ <option name="screenDensity" value="360" />
292
+ <option name="screenX" value="960" />
293
+ <option name="screenY" value="2142" />
294
+ </PersistentDeviceSelectionData>
295
+ <PersistentDeviceSelectionData>
296
+ <option name="api" value="35" />
297
+ <option name="brand" value="google" />
298
+ <option name="codename" value="caiman" />
299
+ <option name="id" value="caiman" />
300
+ <option name="labId" value="google" />
301
+ <option name="manufacturer" value="Google" />
302
+ <option name="name" value="Pixel 9 Pro" />
303
+ <option name="screenDensity" value="360" />
304
+ <option name="screenX" value="960" />
305
+ <option name="screenY" value="2142" />
306
+ </PersistentDeviceSelectionData>
307
+ <PersistentDeviceSelectionData>
308
+ <option name="api" value="34" />
309
+ <option name="brand" value="google" />
310
+ <option name="codename" value="comet" />
311
+ <option name="default" value="true" />
312
+ <option name="id" value="comet" />
313
+ <option name="labId" value="google" />
314
+ <option name="manufacturer" value="Google" />
315
+ <option name="name" value="Pixel 9 Pro Fold" />
316
+ <option name="screenDensity" value="390" />
317
+ <option name="screenX" value="2076" />
318
+ <option name="screenY" value="2152" />
319
+ </PersistentDeviceSelectionData>
320
+ <PersistentDeviceSelectionData>
321
+ <option name="api" value="35" />
322
+ <option name="brand" value="google" />
323
+ <option name="codename" value="comet" />
324
+ <option name="default" value="true" />
325
+ <option name="id" value="comet" />
326
+ <option name="labId" value="google" />
327
+ <option name="manufacturer" value="Google" />
328
+ <option name="name" value="Pixel 9 Pro Fold" />
329
+ <option name="screenDensity" value="390" />
330
+ <option name="screenX" value="2076" />
331
+ <option name="screenY" value="2152" />
332
+ </PersistentDeviceSelectionData>
333
+ <PersistentDeviceSelectionData>
334
+ <option name="api" value="29" />
335
+ <option name="brand" value="samsung" />
336
+ <option name="codename" value="crownqlteue" />
337
+ <option name="id" value="crownqlteue" />
338
+ <option name="labId" value="google" />
339
+ <option name="manufacturer" value="Samsung" />
340
+ <option name="name" value="Galaxy Note9" />
341
+ <option name="screenDensity" value="420" />
342
+ <option name="screenX" value="2220" />
343
+ <option name="screenY" value="1080" />
344
+ </PersistentDeviceSelectionData>
345
+ <PersistentDeviceSelectionData>
346
+ <option name="api" value="34" />
347
+ <option name="brand" value="samsung" />
348
+ <option name="codename" value="dm2q" />
349
+ <option name="id" value="dm2q" />
350
+ <option name="labId" value="google" />
351
+ <option name="manufacturer" value="Samsung" />
352
+ <option name="name" value="S23 Plus" />
353
+ <option name="screenDensity" value="450" />
354
+ <option name="screenX" value="1080" />
355
+ <option name="screenY" value="2340" />
356
+ </PersistentDeviceSelectionData>
357
+ <PersistentDeviceSelectionData>
358
+ <option name="api" value="34" />
359
+ <option name="brand" value="samsung" />
360
+ <option name="codename" value="dm3q" />
361
+ <option name="id" value="dm3q" />
362
+ <option name="labId" value="google" />
363
+ <option name="manufacturer" value="Samsung" />
364
+ <option name="name" value="Galaxy S23 Ultra" />
365
+ <option name="screenDensity" value="600" />
366
+ <option name="screenX" value="1440" />
367
+ <option name="screenY" value="3088" />
368
+ </PersistentDeviceSelectionData>
369
+ <PersistentDeviceSelectionData>
370
+ <option name="api" value="34" />
371
+ <option name="brand" value="motorola" />
372
+ <option name="codename" value="dubai" />
373
+ <option name="id" value="dubai" />
374
+ <option name="labId" value="google" />
375
+ <option name="manufacturer" value="Motorola" />
376
+ <option name="name" value="edge 30" />
377
+ <option name="screenDensity" value="405" />
378
+ <option name="screenX" value="1080" />
379
+ <option name="screenY" value="2400" />
380
+ </PersistentDeviceSelectionData>
381
+ <PersistentDeviceSelectionData>
382
+ <option name="api" value="34" />
383
+ <option name="brand" value="samsung" />
384
+ <option name="codename" value="e1q" />
385
+ <option name="default" value="true" />
386
+ <option name="id" value="e1q" />
387
+ <option name="labId" value="google" />
388
+ <option name="manufacturer" value="Samsung" />
389
+ <option name="name" value="Galaxy S24" />
390
+ <option name="screenDensity" value="480" />
391
+ <option name="screenX" value="1080" />
392
+ <option name="screenY" value="2340" />
393
+ </PersistentDeviceSelectionData>
394
+ <PersistentDeviceSelectionData>
395
+ <option name="api" value="34" />
396
+ <option name="brand" value="samsung" />
397
+ <option name="codename" value="e3q" />
398
+ <option name="id" value="e3q" />
399
+ <option name="labId" value="google" />
400
+ <option name="manufacturer" value="Samsung" />
401
+ <option name="name" value="Galaxy S24 Ultra" />
402
+ <option name="screenDensity" value="450" />
403
+ <option name="screenX" value="1440" />
404
+ <option name="screenY" value="3120" />
405
+ </PersistentDeviceSelectionData>
406
+ <PersistentDeviceSelectionData>
407
+ <option name="api" value="33" />
408
+ <option name="brand" value="google" />
409
+ <option name="codename" value="eos" />
410
+ <option name="id" value="eos" />
411
+ <option name="labId" value="google" />
412
+ <option name="manufacturer" value="Google" />
413
+ <option name="name" value="Eos" />
414
+ <option name="screenDensity" value="320" />
415
+ <option name="screenX" value="384" />
416
+ <option name="screenY" value="384" />
417
+ </PersistentDeviceSelectionData>
418
+ <PersistentDeviceSelectionData>
419
+ <option name="api" value="33" />
420
+ <option name="brand" value="google" />
421
+ <option name="codename" value="felix" />
422
+ <option name="id" value="felix" />
423
+ <option name="labId" value="google" />
424
+ <option name="manufacturer" value="Google" />
425
+ <option name="name" value="Pixel Fold" />
426
+ <option name="screenDensity" value="420" />
427
+ <option name="screenX" value="2208" />
428
+ <option name="screenY" value="1840" />
429
+ </PersistentDeviceSelectionData>
430
+ <PersistentDeviceSelectionData>
431
+ <option name="api" value="34" />
432
+ <option name="brand" value="google" />
433
+ <option name="codename" value="felix" />
434
+ <option name="id" value="felix" />
435
+ <option name="labId" value="google" />
436
+ <option name="manufacturer" value="Google" />
437
+ <option name="name" value="Pixel Fold" />
438
+ <option name="screenDensity" value="420" />
439
+ <option name="screenX" value="2208" />
440
+ <option name="screenY" value="1840" />
441
+ </PersistentDeviceSelectionData>
442
+ <PersistentDeviceSelectionData>
443
+ <option name="api" value="33" />
444
+ <option name="brand" value="google" />
445
+ <option name="codename" value="felix_camera" />
446
+ <option name="id" value="felix_camera" />
447
+ <option name="labId" value="google" />
448
+ <option name="manufacturer" value="Google" />
449
+ <option name="name" value="Pixel Fold (Camera-enabled)" />
450
+ <option name="screenDensity" value="420" />
451
+ <option name="screenX" value="2208" />
452
+ <option name="screenY" value="1840" />
453
+ </PersistentDeviceSelectionData>
454
+ <PersistentDeviceSelectionData>
455
+ <option name="api" value="34" />
456
+ <option name="brand" value="motorola" />
457
+ <option name="codename" value="fogona" />
458
+ <option name="id" value="fogona" />
459
+ <option name="labId" value="google" />
460
+ <option name="manufacturer" value="Motorola" />
461
+ <option name="name" value="moto g play - 2024" />
462
+ <option name="screenDensity" value="280" />
463
+ <option name="screenX" value="720" />
464
+ <option name="screenY" value="1600" />
465
+ </PersistentDeviceSelectionData>
466
+ <PersistentDeviceSelectionData>
467
+ <option name="api" value="34" />
468
+ <option name="brand" value="motorola" />
469
+ <option name="codename" value="fogos" />
470
+ <option name="id" value="fogos" />
471
+ <option name="labId" value="google" />
472
+ <option name="manufacturer" value="Motorola" />
473
+ <option name="name" value="moto g34 5G" />
474
+ <option name="screenDensity" value="280" />
475
+ <option name="screenX" value="720" />
476
+ <option name="screenY" value="1600" />
477
+ </PersistentDeviceSelectionData>
478
+ <PersistentDeviceSelectionData>
479
+ <option name="api" value="36" />
480
+ <option name="brand" value="google" />
481
+ <option name="codename" value="frankel" />
482
+ <option name="id" value="frankel" />
483
+ <option name="labId" value="google" />
484
+ <option name="manufacturer" value="Google" />
485
+ <option name="name" value="Pixel 10" />
486
+ <option name="screenDensity" value="420" />
487
+ <option name="screenX" value="1080" />
488
+ <option name="screenY" value="2424" />
489
+ </PersistentDeviceSelectionData>
490
+ <PersistentDeviceSelectionData>
491
+ <option name="api" value="34" />
492
+ <option name="brand" value="samsung" />
493
+ <option name="codename" value="g0q" />
494
+ <option name="id" value="g0q" />
495
+ <option name="labId" value="google" />
496
+ <option name="manufacturer" value="Samsung" />
497
+ <option name="name" value="SM-S906U1" />
498
+ <option name="screenDensity" value="450" />
499
+ <option name="screenX" value="1080" />
500
+ <option name="screenY" value="2340" />
501
+ </PersistentDeviceSelectionData>
502
+ <PersistentDeviceSelectionData>
503
+ <option name="api" value="34" />
504
+ <option name="brand" value="samsung" />
505
+ <option name="codename" value="gta9pwifi" />
506
+ <option name="id" value="gta9pwifi" />
507
+ <option name="labId" value="google" />
508
+ <option name="manufacturer" value="Samsung" />
509
+ <option name="name" value="SM-X210" />
510
+ <option name="screenDensity" value="240" />
511
+ <option name="screenX" value="1200" />
512
+ <option name="screenY" value="1920" />
513
+ </PersistentDeviceSelectionData>
514
+ <PersistentDeviceSelectionData>
515
+ <option name="api" value="33" />
516
+ <option name="brand" value="samsung" />
517
+ <option name="codename" value="gts7lwifi" />
518
+ <option name="id" value="gts7lwifi" />
519
+ <option name="labId" value="google" />
520
+ <option name="manufacturer" value="Samsung" />
521
+ <option name="name" value="SM-T870" />
522
+ <option name="screenDensity" value="340" />
523
+ <option name="screenX" value="1600" />
524
+ <option name="screenY" value="2560" />
525
+ </PersistentDeviceSelectionData>
526
+ <PersistentDeviceSelectionData>
527
+ <option name="api" value="34" />
528
+ <option name="brand" value="samsung" />
529
+ <option name="codename" value="gts7xllite" />
530
+ <option name="id" value="gts7xllite" />
531
+ <option name="labId" value="google" />
532
+ <option name="manufacturer" value="Samsung" />
533
+ <option name="name" value="SM-T738U" />
534
+ <option name="screenDensity" value="340" />
535
+ <option name="screenX" value="1600" />
536
+ <option name="screenY" value="2560" />
537
+ </PersistentDeviceSelectionData>
538
+ <PersistentDeviceSelectionData>
539
+ <option name="api" value="33" />
540
+ <option name="brand" value="samsung" />
541
+ <option name="codename" value="gts8uwifi" />
542
+ <option name="formFactor" value="Tablet" />
543
+ <option name="id" value="gts8uwifi" />
544
+ <option name="labId" value="google" />
545
+ <option name="manufacturer" value="Samsung" />
546
+ <option name="name" value="Galaxy Tab S8 Ultra" />
547
+ <option name="screenDensity" value="320" />
548
+ <option name="screenX" value="1848" />
549
+ <option name="screenY" value="2960" />
550
+ </PersistentDeviceSelectionData>
551
+ <PersistentDeviceSelectionData>
552
+ <option name="api" value="34" />
553
+ <option name="brand" value="samsung" />
554
+ <option name="codename" value="gts8wifi" />
555
+ <option name="formFactor" value="Tablet" />
556
+ <option name="id" value="gts8wifi" />
557
+ <option name="labId" value="google" />
558
+ <option name="manufacturer" value="Samsung" />
559
+ <option name="name" value="Galaxy Tab S8" />
560
+ <option name="screenDensity" value="274" />
561
+ <option name="screenX" value="1600" />
562
+ <option name="screenY" value="2560" />
563
+ </PersistentDeviceSelectionData>
564
+ <PersistentDeviceSelectionData>
565
+ <option name="api" value="34" />
566
+ <option name="brand" value="samsung" />
567
+ <option name="codename" value="gts9fe" />
568
+ <option name="id" value="gts9fe" />
569
+ <option name="labId" value="google" />
570
+ <option name="manufacturer" value="Samsung" />
571
+ <option name="name" value="Galaxy Tab S9 FE 5G" />
572
+ <option name="screenDensity" value="280" />
573
+ <option name="screenX" value="1440" />
574
+ <option name="screenY" value="2304" />
575
+ </PersistentDeviceSelectionData>
576
+ <PersistentDeviceSelectionData>
577
+ <option name="api" value="34" />
578
+ <option name="brand" value="samsung" />
579
+ <option name="codename" value="gts9wifi" />
580
+ <option name="id" value="gts9wifi" />
581
+ <option name="labId" value="google" />
582
+ <option name="manufacturer" value="Samsung" />
583
+ <option name="name" value="SM-X710" />
584
+ <option name="screenDensity" value="340" />
585
+ <option name="screenX" value="1600" />
586
+ <option name="screenY" value="2560" />
587
+ </PersistentDeviceSelectionData>
588
+ <PersistentDeviceSelectionData>
589
+ <option name="api" value="34" />
590
+ <option name="brand" value="google" />
591
+ <option name="codename" value="husky" />
592
+ <option name="id" value="husky" />
593
+ <option name="labId" value="google" />
594
+ <option name="manufacturer" value="Google" />
595
+ <option name="name" value="Pixel 8 Pro" />
596
+ <option name="screenDensity" value="390" />
597
+ <option name="screenX" value="1008" />
598
+ <option name="screenY" value="2244" />
599
+ </PersistentDeviceSelectionData>
600
+ <PersistentDeviceSelectionData>
601
+ <option name="api" value="30" />
602
+ <option name="brand" value="motorola" />
603
+ <option name="codename" value="java" />
604
+ <option name="id" value="java" />
605
+ <option name="labId" value="google" />
606
+ <option name="manufacturer" value="Motorola" />
607
+ <option name="name" value="G20" />
608
+ <option name="screenDensity" value="280" />
609
+ <option name="screenX" value="720" />
610
+ <option name="screenY" value="1600" />
611
+ </PersistentDeviceSelectionData>
612
+ <PersistentDeviceSelectionData>
613
+ <option name="api" value="35" />
614
+ <option name="brand" value="motorola" />
615
+ <option name="codename" value="kansas" />
616
+ <option name="id" value="kansas" />
617
+ <option name="labId" value="google" />
618
+ <option name="manufacturer" value="Motorola" />
619
+ <option name="name" value="moto g - 2025" />
620
+ <option name="screenDensity" value="280" />
621
+ <option name="screenX" value="720" />
622
+ <option name="screenY" value="1604" />
623
+ </PersistentDeviceSelectionData>
624
+ <PersistentDeviceSelectionData>
625
+ <option name="api" value="34" />
626
+ <option name="brand" value="google" />
627
+ <option name="codename" value="komodo" />
628
+ <option name="id" value="komodo" />
629
+ <option name="labId" value="google" />
630
+ <option name="manufacturer" value="Google" />
631
+ <option name="name" value="Pixel 9 Pro XL" />
632
+ <option name="screenDensity" value="360" />
633
+ <option name="screenX" value="1008" />
634
+ <option name="screenY" value="2244" />
635
+ </PersistentDeviceSelectionData>
636
+ <PersistentDeviceSelectionData>
637
+ <option name="api" value="35" />
638
+ <option name="brand" value="google" />
639
+ <option name="codename" value="komodo" />
640
+ <option name="id" value="komodo" />
641
+ <option name="labId" value="google" />
642
+ <option name="manufacturer" value="Google" />
643
+ <option name="name" value="Pixel 9 Pro XL" />
644
+ <option name="screenDensity" value="360" />
645
+ <option name="screenX" value="1008" />
646
+ <option name="screenY" value="2244" />
647
+ </PersistentDeviceSelectionData>
648
+ <PersistentDeviceSelectionData>
649
+ <option name="api" value="34" />
650
+ <option name="brand" value="motorola" />
651
+ <option name="codename" value="lion" />
652
+ <option name="id" value="lion" />
653
+ <option name="labId" value="google" />
654
+ <option name="manufacturer" value="Motorola" />
655
+ <option name="name" value="moto g04" />
656
+ <option name="screenDensity" value="280" />
657
+ <option name="screenX" value="720" />
658
+ <option name="screenY" value="1612" />
659
+ </PersistentDeviceSelectionData>
660
+ <PersistentDeviceSelectionData>
661
+ <option name="api" value="33" />
662
+ <option name="brand" value="google" />
663
+ <option name="codename" value="lynx" />
664
+ <option name="id" value="lynx" />
665
+ <option name="labId" value="google" />
666
+ <option name="manufacturer" value="Google" />
667
+ <option name="name" value="Pixel 7a" />
668
+ <option name="screenDensity" value="420" />
669
+ <option name="screenX" value="1080" />
670
+ <option name="screenY" value="2400" />
671
+ </PersistentDeviceSelectionData>
672
+ <PersistentDeviceSelectionData>
673
+ <option name="api" value="34" />
674
+ <option name="brand" value="motorola" />
675
+ <option name="codename" value="lyriq" />
676
+ <option name="id" value="lyriq" />
677
+ <option name="labId" value="google" />
678
+ <option name="manufacturer" value="Motorola" />
679
+ <option name="name" value="edge 40" />
680
+ <option name="screenDensity" value="400" />
681
+ <option name="screenX" value="1080" />
682
+ <option name="screenY" value="2400" />
683
+ </PersistentDeviceSelectionData>
684
+ <PersistentDeviceSelectionData>
685
+ <option name="api" value="34" />
686
+ <option name="brand" value="motorola" />
687
+ <option name="codename" value="manaus" />
688
+ <option name="id" value="manaus" />
689
+ <option name="labId" value="google" />
690
+ <option name="manufacturer" value="Motorola" />
691
+ <option name="name" value="edge 40 neo" />
692
+ <option name="screenDensity" value="400" />
693
+ <option name="screenX" value="1080" />
694
+ <option name="screenY" value="2400" />
695
+ </PersistentDeviceSelectionData>
696
+ <PersistentDeviceSelectionData>
697
+ <option name="api" value="33" />
698
+ <option name="brand" value="motorola" />
699
+ <option name="codename" value="maui" />
700
+ <option name="id" value="maui" />
701
+ <option name="labId" value="google" />
702
+ <option name="manufacturer" value="Motorola" />
703
+ <option name="name" value="moto g play - 2023" />
704
+ <option name="screenDensity" value="280" />
705
+ <option name="screenX" value="720" />
706
+ <option name="screenY" value="1600" />
707
+ </PersistentDeviceSelectionData>
708
+ <PersistentDeviceSelectionData>
709
+ <option name="api" value="36" />
710
+ <option name="brand" value="google" />
711
+ <option name="codename" value="mustang" />
712
+ <option name="id" value="mustang" />
713
+ <option name="labId" value="google" />
714
+ <option name="manufacturer" value="Google" />
715
+ <option name="name" value="Pixel 10 Pro XL" />
716
+ <option name="screenDensity" value="390" />
717
+ <option name="screenX" value="1080" />
718
+ <option name="screenY" value="2404" />
719
+ </PersistentDeviceSelectionData>
720
+ <PersistentDeviceSelectionData>
721
+ <option name="api" value="34" />
722
+ <option name="brand" value="samsung" />
723
+ <option name="codename" value="o1q" />
724
+ <option name="id" value="o1q" />
725
+ <option name="labId" value="google" />
726
+ <option name="manufacturer" value="Samsung" />
727
+ <option name="name" value="Galaxy S21" />
728
+ <option name="screenDensity" value="421" />
729
+ <option name="screenX" value="1080" />
730
+ <option name="screenY" value="2400" />
731
+ </PersistentDeviceSelectionData>
732
+ <PersistentDeviceSelectionData>
733
+ <option name="api" value="31" />
734
+ <option name="brand" value="google" />
735
+ <option name="codename" value="oriole" />
736
+ <option name="id" value="oriole" />
737
+ <option name="labId" value="google" />
738
+ <option name="manufacturer" value="Google" />
739
+ <option name="name" value="Pixel 6" />
740
+ <option name="screenDensity" value="420" />
741
+ <option name="screenX" value="1080" />
742
+ <option name="screenY" value="2400" />
743
+ </PersistentDeviceSelectionData>
744
+ <PersistentDeviceSelectionData>
745
+ <option name="api" value="35" />
746
+ <option name="brand" value="samsung" />
747
+ <option name="codename" value="pa3q" />
748
+ <option name="id" value="pa3q" />
749
+ <option name="labId" value="google" />
750
+ <option name="manufacturer" value="Samsung" />
751
+ <option name="name" value="Galaxy S25 Ultra" />
752
+ <option name="screenDensity" value="600" />
753
+ <option name="screenX" value="1440" />
754
+ <option name="screenY" value="3120" />
755
+ </PersistentDeviceSelectionData>
756
+ <PersistentDeviceSelectionData>
757
+ <option name="api" value="33" />
758
+ <option name="brand" value="google" />
759
+ <option name="codename" value="panther" />
760
+ <option name="id" value="panther" />
761
+ <option name="labId" value="google" />
762
+ <option name="manufacturer" value="Google" />
763
+ <option name="name" value="Pixel 7" />
764
+ <option name="screenDensity" value="420" />
765
+ <option name="screenX" value="1080" />
766
+ <option name="screenY" value="2400" />
767
+ </PersistentDeviceSelectionData>
768
+ <PersistentDeviceSelectionData>
769
+ <option name="api" value="34" />
770
+ <option name="brand" value="samsung" />
771
+ <option name="codename" value="q5q" />
772
+ <option name="id" value="q5q" />
773
+ <option name="labId" value="google" />
774
+ <option name="manufacturer" value="Samsung" />
775
+ <option name="name" value="Galaxy Z Fold5" />
776
+ <option name="screenDensity" value="420" />
777
+ <option name="screenX" value="1812" />
778
+ <option name="screenY" value="2176" />
779
+ </PersistentDeviceSelectionData>
780
+ <PersistentDeviceSelectionData>
781
+ <option name="api" value="34" />
782
+ <option name="brand" value="samsung" />
783
+ <option name="codename" value="q6q" />
784
+ <option name="id" value="q6q" />
785
+ <option name="labId" value="google" />
786
+ <option name="manufacturer" value="Samsung" />
787
+ <option name="name" value="Galaxy Z Fold6" />
788
+ <option name="screenDensity" value="420" />
789
+ <option name="screenX" value="1856" />
790
+ <option name="screenY" value="2160" />
791
+ </PersistentDeviceSelectionData>
792
+ <PersistentDeviceSelectionData>
793
+ <option name="api" value="30" />
794
+ <option name="brand" value="google" />
795
+ <option name="codename" value="r11" />
796
+ <option name="formFactor" value="Wear OS" />
797
+ <option name="id" value="r11" />
798
+ <option name="labId" value="google" />
799
+ <option name="manufacturer" value="Google" />
800
+ <option name="name" value="Pixel Watch" />
801
+ <option name="screenDensity" value="320" />
802
+ <option name="screenX" value="384" />
803
+ <option name="screenY" value="384" />
804
+ <option name="type" value="WEAR_OS" />
805
+ </PersistentDeviceSelectionData>
806
+ <PersistentDeviceSelectionData>
807
+ <option name="api" value="34" />
808
+ <option name="brand" value="samsung" />
809
+ <option name="codename" value="r11q" />
810
+ <option name="id" value="r11q" />
811
+ <option name="labId" value="google" />
812
+ <option name="manufacturer" value="Samsung" />
813
+ <option name="name" value="SM-S711U" />
814
+ <option name="screenDensity" value="450" />
815
+ <option name="screenX" value="1080" />
816
+ <option name="screenY" value="2340" />
817
+ </PersistentDeviceSelectionData>
818
+ <PersistentDeviceSelectionData>
819
+ <option name="api" value="36" />
820
+ <option name="brand" value="google" />
821
+ <option name="codename" value="rango" />
822
+ <option name="id" value="rango" />
823
+ <option name="labId" value="google" />
824
+ <option name="manufacturer" value="Google" />
825
+ <option name="name" value="Pixel 10 Pro Fold" />
826
+ <option name="screenDensity" value="390" />
827
+ <option name="screenX" value="2076" />
828
+ <option name="screenY" value="2152" />
829
+ </PersistentDeviceSelectionData>
830
+ <PersistentDeviceSelectionData>
831
+ <option name="api" value="30" />
832
+ <option name="brand" value="google" />
833
+ <option name="codename" value="redfin" />
834
+ <option name="id" value="redfin" />
835
+ <option name="labId" value="google" />
836
+ <option name="manufacturer" value="Google" />
837
+ <option name="name" value="Pixel 5" />
838
+ <option name="screenDensity" value="440" />
839
+ <option name="screenX" value="1080" />
840
+ <option name="screenY" value="2340" />
841
+ </PersistentDeviceSelectionData>
842
+ <PersistentDeviceSelectionData>
843
+ <option name="api" value="34" />
844
+ <option name="brand" value="google" />
845
+ <option name="codename" value="shiba" />
846
+ <option name="id" value="shiba" />
847
+ <option name="labId" value="google" />
848
+ <option name="manufacturer" value="Google" />
849
+ <option name="name" value="Pixel 8" />
850
+ <option name="screenDensity" value="420" />
851
+ <option name="screenX" value="1080" />
852
+ <option name="screenY" value="2400" />
853
+ </PersistentDeviceSelectionData>
854
+ <PersistentDeviceSelectionData>
855
+ <option name="api" value="34" />
856
+ <option name="brand" value="samsung" />
857
+ <option name="codename" value="t2q" />
858
+ <option name="id" value="t2q" />
859
+ <option name="labId" value="google" />
860
+ <option name="manufacturer" value="Samsung" />
861
+ <option name="name" value="Galaxy S21 Plus" />
862
+ <option name="screenDensity" value="394" />
863
+ <option name="screenX" value="1080" />
864
+ <option name="screenY" value="2400" />
865
+ </PersistentDeviceSelectionData>
866
+ <PersistentDeviceSelectionData>
867
+ <option name="api" value="33" />
868
+ <option name="brand" value="google" />
869
+ <option name="codename" value="tangorpro" />
870
+ <option name="formFactor" value="Tablet" />
871
+ <option name="id" value="tangorpro" />
872
+ <option name="labId" value="google" />
873
+ <option name="manufacturer" value="Google" />
874
+ <option name="name" value="Pixel Tablet" />
875
+ <option name="screenDensity" value="320" />
876
+ <option name="screenX" value="1600" />
877
+ <option name="screenY" value="2560" />
878
+ </PersistentDeviceSelectionData>
879
+ <PersistentDeviceSelectionData>
880
+ <option name="api" value="35" />
881
+ <option name="brand" value="google" />
882
+ <option name="codename" value="tegu" />
883
+ <option name="id" value="tegu" />
884
+ <option name="labId" value="google" />
885
+ <option name="manufacturer" value="Google" />
886
+ <option name="name" value="Pixel 9a" />
887
+ <option name="screenDensity" value="420" />
888
+ <option name="screenX" value="1080" />
889
+ <option name="screenY" value="2424" />
890
+ </PersistentDeviceSelectionData>
891
+ <PersistentDeviceSelectionData>
892
+ <option name="api" value="34" />
893
+ <option name="brand" value="google" />
894
+ <option name="codename" value="tokay" />
895
+ <option name="default" value="true" />
896
+ <option name="id" value="tokay" />
897
+ <option name="labId" value="google" />
898
+ <option name="manufacturer" value="Google" />
899
+ <option name="name" value="Pixel 9" />
900
+ <option name="screenDensity" value="420" />
901
+ <option name="screenX" value="1080" />
902
+ <option name="screenY" value="2424" />
903
+ </PersistentDeviceSelectionData>
904
+ <PersistentDeviceSelectionData>
905
+ <option name="api" value="35" />
906
+ <option name="brand" value="google" />
907
+ <option name="codename" value="tokay" />
908
+ <option name="default" value="true" />
909
+ <option name="id" value="tokay" />
910
+ <option name="labId" value="google" />
911
+ <option name="manufacturer" value="Google" />
912
+ <option name="name" value="Pixel 9" />
913
+ <option name="screenDensity" value="420" />
914
+ <option name="screenX" value="1080" />
915
+ <option name="screenY" value="2424" />
916
+ </PersistentDeviceSelectionData>
917
+ <PersistentDeviceSelectionData>
918
+ <option name="api" value="36" />
919
+ <option name="brand" value="google" />
920
+ <option name="codename" value="tokay" />
921
+ <option name="default" value="true" />
922
+ <option name="id" value="tokay" />
923
+ <option name="labId" value="google" />
924
+ <option name="manufacturer" value="Google" />
925
+ <option name="name" value="Pixel 9" />
926
+ <option name="screenDensity" value="420" />
927
+ <option name="screenX" value="1080" />
928
+ <option name="screenY" value="2424" />
929
+ </PersistentDeviceSelectionData>
930
+ <PersistentDeviceSelectionData>
931
+ <option name="api" value="34" />
932
+ <option name="brand" value="samsung" />
933
+ <option name="codename" value="xcover7" />
934
+ <option name="id" value="xcover7" />
935
+ <option name="labId" value="google" />
936
+ <option name="manufacturer" value="Samsung" />
937
+ <option name="name" value="SM-G556B" />
938
+ <option name="screenDensity" value="450" />
939
+ <option name="screenX" value="1080" />
940
+ <option name="screenY" value="2408" />
941
+ </PersistentDeviceSelectionData>
942
+ </list>
943
+ </option>
944
+ </component>
945
+ </project>
.idea/gallery.iml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="JAVA_MODULE" version="4">
3
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
4
+ <exclude-output />
5
+ <content url="file://$MODULE_DIR$" />
6
+ <orderEntry type="inheritedJdk" />
7
+ <orderEntry type="sourceFolder" forTests="false" />
8
+ </component>
9
+ </module>
.idea/misc.xml ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ <project version="4">
2
+ <component name="ProjectRootManager">
3
+ <output url="file://$PROJECT_DIR$/out" />
4
+ </component>
5
+ </project>
.idea/modules.xml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/gallery.iml" filepath="$PROJECT_DIR$/.idea/gallery.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
Android/.gitignore ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # @license
2
+ # Copyright 2025 Google LLC
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+
17
+ # Gradle files
18
+ .gradle/
19
+ build/
20
+
21
+ # Local configuration file (sdk path, etc)
22
+ local.properties
23
+
24
+ # Log/OS Files
25
+ *.log
26
+
27
+ # Android Studio generated files and folders
28
+ captures/
29
+ .externalNativeBuild/
30
+ .cxx/
31
+ *.apk
32
+ output.json
33
+
34
+ # IntelliJ
35
+ *.iml
36
+ .idea/
37
+ misc.xml
38
+ deploymentTargetDropDown.xml
39
+ render.experimental.xml
40
+
41
+ # Keystore files
42
+ *.jks
43
+ *.keystore
44
+
45
+ # Google Services (e.g. APIs or Firebase)
46
+ google-services.json
47
+
48
+ # Android Profiling
49
+ *.hprof
50
+
51
+ .DS_Store
Android/README.md ADDED
@@ -0,0 +1 @@
 
 
1
+ # Google AI Edge Gallery (Android)
Android/src/.gitignore ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # @license
2
+ # Copyright 2025 Google LLC
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+ *.iml
17
+
18
+ .gradle
19
+ /local.properties
20
+ /.idea/caches
21
+ /.idea/libraries
22
+ /.idea/modules.xml
23
+ /.idea/workspace.xml
24
+ /.idea/navEditor.xml
25
+ /.idea/assetWizardSettings.xml
26
+ .DS_Store
27
+ /build
28
+ /captures
29
+ .externalNativeBuild
30
+ .cxx
31
+ local.properties
Android/src/app/.gitignore ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # @license
2
+ # Copyright 2025 Google LLC
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+
17
+ /build
18
+ /release
Android/src/app/build.gradle.kts ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2025 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ plugins {
18
+ alias(libs.plugins.android.application)
19
+ // Note: set apply to true to enable google-services (requires google-services.json).
20
+ alias(libs.plugins.google.services) apply false
21
+ alias(libs.plugins.kotlin.android)
22
+ alias(libs.plugins.kotlin.compose)
23
+ alias(libs.plugins.kotlin.serialization)
24
+ alias(libs.plugins.protobuf)
25
+ alias(libs.plugins.hilt.application)
26
+ alias(libs.plugins.oss.licenses)
27
+ kotlin("kapt")
28
+ }
29
+
30
+ android {
31
+ // AGP 8+ 에서 assets 압축 금지
32
+ // androidResources { noCompress += "tflite" }
33
+ namespace = "com.google.ai.edge.gallery"
34
+ compileSdk = 35
35
+
36
+ defaultConfig {
37
+ applicationId = "com.google.aiedge.gallery"
38
+ minSdk = 31
39
+ targetSdk = 35
40
+ versionCode = 13
41
+ versionName = "1.0.7"
42
+
43
+ // Needed for HuggingFace auth workflows.
44
+ // Use the scheme of the "Redirect URLs" in HuggingFace app.
45
+ manifestPlaceholders["appAuthRedirectScheme"] =
46
+ "REPLACE_WITH_YOUR_REDIRECT_SCHEME_IN_HUGGINGFACE_APP"
47
+ manifestPlaceholders["applicationName"] = "com.google.ai.edge.gallery.GalleryApplication"
48
+
49
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
50
+
51
+ // for RAG
52
+ // assets 경로 (없으면 추가)
53
+ sourceSets["main"].assets.srcDirs("src/main/assets")
54
+
55
+ }
56
+
57
+
58
+ buildTypes {
59
+ release {
60
+ isMinifyEnabled = false
61
+ proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
62
+ signingConfig = signingConfigs.getByName("debug")
63
+ }
64
+ }
65
+ compileOptions {
66
+ sourceCompatibility = JavaVersion.VERSION_11
67
+ targetCompatibility = JavaVersion.VERSION_11
68
+ }
69
+ kotlinOptions {
70
+ jvmTarget = "11"
71
+ freeCompilerArgs += "-Xcontext-receivers"
72
+ }
73
+ buildFeatures {
74
+ compose = true
75
+ buildConfig = true
76
+ }
77
+
78
+ // 고연
79
+ androidResources {
80
+ // 💡 TFLite 모델과 NPY 파일이 압축되지 않도록 추가합니다.
81
+ noCompress += listOf("tflite", "npy", "bin")
82
+ }
83
+ }
84
+
85
+ dependencies {
86
+ implementation(libs.androidx.core.ktx)
87
+ implementation(libs.androidx.lifecycle.runtime.ktx)
88
+ implementation(libs.androidx.activity.compose)
89
+ implementation(platform(libs.androidx.compose.bom))
90
+ implementation(libs.androidx.ui)
91
+ implementation(libs.androidx.ui.graphics)
92
+ implementation(libs.androidx.ui.tooling.preview)
93
+ implementation(libs.androidx.material3)
94
+ implementation(libs.androidx.compose.navigation)
95
+ implementation(libs.kotlinx.serialization.json)
96
+ implementation(libs.material.icon.extended)
97
+ implementation(libs.androidx.work.runtime)
98
+ implementation(libs.androidx.datastore)
99
+ implementation(libs.com.google.code.gson)
100
+ implementation(libs.androidx.lifecycle.process)
101
+ implementation(libs.androidx.security.crypto)
102
+ implementation(libs.mediapipe.tasks.text)
103
+ implementation(libs.mediapipe.tasks.genai)
104
+ // implementation("org.tensorflow:tensorflow-lite:2.14.0")
105
+ // implementation("org.tensorflow:tensorflow-lite-support:0.4.4")
106
+ implementation(libs.commonmark)
107
+ implementation(libs.richtext)
108
+
109
+ implementation(libs.tflite)
110
+ implementation(libs.tflite.gpu)
111
+
112
+ implementation(libs.tflite.support)
113
+ implementation(libs.camerax.core)
114
+ implementation(libs.camerax.camera2)
115
+ implementation(libs.camerax.lifecycle)
116
+ implementation(libs.camerax.view)
117
+ implementation(libs.openid.appauth)
118
+ implementation(libs.androidx.splashscreen)
119
+ implementation(libs.protobuf.javalite)
120
+ implementation(libs.hilt.android)
121
+ implementation(libs.hilt.navigation.compose)
122
+ implementation(libs.play.services.oss.licenses)
123
+ implementation(platform(libs.firebase.bom))
124
+ implementation(libs.firebase.analytics)
125
+ implementation(libs.androidx.exifinterface)
126
+
127
+ kapt(libs.hilt.android.compiler)
128
+ testImplementation(libs.junit)
129
+ androidTestImplementation(libs.androidx.junit)
130
+ androidTestImplementation(libs.androidx.espresso.core)
131
+ androidTestImplementation(platform(libs.androidx.compose.bom))
132
+ androidTestImplementation(libs.androidx.ui.test.junit4)
133
+ androidTestImplementation(libs.hilt.android.testing)
134
+ debugImplementation(libs.androidx.ui.tooling)
135
+ debugImplementation(libs.androidx.ui.test.manifest)
136
+ // AI Edge RAG SDK (온디바이스 임베더/체인 등)
137
+ implementation("com.google.ai.edge.localagents:localagents-rag:0.1.0")
138
+ implementation("com.google.mediapipe:tasks-genai:0.10.22")
139
+ implementation("com.google.mediapipe:tasks-vision:0.10.26.1")
140
+
141
+ implementation("org.tensorflow:tensorflow-lite:2.14.0")
142
+ implementation("org.tensorflow:tensorflow-lite-gpu:2.14.0")
143
+ implementation("org.tensorflow:tensorflow-lite-support:0.4.4")
144
+ //교연
145
+ implementation("androidx.exifinterface:exifinterface:1.3.7")
146
+ implementation("com.google.code.gson:gson:2.10.1") // Gson (JSON 파싱용)
147
+ //for tts
148
+ implementation("com.google.mlkit:text-recognition-korean:16.0.1")
149
+
150
+ //석준
151
+ implementation(project(":unityLibrary"))
152
+
153
+ // 2. fileTree 부분도 Kotlin 문법에 맞게 수정
154
+ implementation(fileTree(File(rootDir, "unityLibrary/libs")) {
155
+ include("*.jar")
156
+ })
157
+ // for chat panel ani
158
+ implementation("androidx.compose.animation:animation-graphics:<compose-version>")
159
+
160
+ }
161
+
162
+
163
+
164
+ protobuf {
165
+ protoc { artifact = "com.google.protobuf:protoc:4.26.1" }
166
+ generateProtoTasks { all().forEach { it.plugins { create("java") { option("lite") } } } }
167
+ }
Android/src/app/src/main/AndroidManifest.xml ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
+ package="com.google.ai.edge.gallery"
4
+ xmlns:tools="http://schemas.android.com/tools">
5
+
6
+ <uses-sdk
7
+ android:minSdkVersion="31"
8
+ android:compileSdkVersion="35"
9
+ android:targetSdkVersion="35" />
10
+
11
+ <uses-permission android:name="android.permission.CAMERA" />
12
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
13
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
14
+ <uses-permission android:name="android.permission.INTERNET" />
15
+ <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
16
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
17
+ <uses-permission android:name="android.permission.WAKE_LOCK"/>
18
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
19
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
20
+
21
+ <uses-feature
22
+ android:name="android.hardware.camera"
23
+ android:required="false" />
24
+
25
+ <application
26
+ android:name="${applicationName}"
27
+ android:allowBackup="true"
28
+ android:dataExtractionRules="@xml/data_extraction_rules"
29
+ android:fullBackupContent="@xml/backup_rules"
30
+ android:icon="@mipmap/ic_launcher"
31
+ android:label="@string/app_name"
32
+ android:roundIcon="@mipmap/ic_launcher"
33
+ android:supportsRtl="true"
34
+ android:theme="@style/Theme.Gallery"
35
+ tools:targetApi="31">
36
+
37
+ <activity
38
+ android:name="com.google.ai.edge.gallery.MainActivity"
39
+ android:exported="true"
40
+ android:theme="@style/Theme.Gallery.SplashScreen"
41
+ android:screenOrientation="portrait"
42
+ android:windowSoftInputMode="adjustResize"
43
+ android:configChanges="uiMode"
44
+ tools:ignore="DiscouragedApi,LockedOrientationActivity">
45
+ <intent-filter>
46
+ <action android:name="android.intent.action.MAIN" />
47
+ <category android:name="android.intent.category.LAUNCHER" />
48
+ </intent-filter>
49
+
50
+ <intent-filter>
51
+ <action android:name="android.intent.action.VIEW" />
52
+ <category android:name="android.intent.category.DEFAULT" />
53
+ <category android:name="android.intent.category.BROWSABLE" />
54
+ <data android:scheme="com.google.ai.edge.gallery" />
55
+ </intent-filter>
56
+ </activity>
57
+
58
+ <activity
59
+ android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity"
60
+ android:exported="true"
61
+ android:theme="@style/Theme.Gallery.OssLicenses" />
62
+ <activity
63
+ android:name="com.google.android.gms.oss.licenses.OssLicensesActivity"
64
+ android:exported="true"
65
+ android:theme="@style/Theme.Gallery.OssLicenses" />
66
+
67
+ <activity
68
+ android:name="com.unity3d.player.UnityPlayerActivity"
69
+ android:label="@string/app_name">
70
+ </activity>
71
+
72
+ <provider
73
+ android:name="androidx.core.content.FileProvider"
74
+ android:authorities="${applicationId}.provider"
75
+ android:exported="false"
76
+ android:grantUriPermissions="true">
77
+ <meta-data
78
+ android:name="android.support.FILE_PROVIDER_PATHS"
79
+ android:resource="@xml/file_paths" />
80
+ </provider>
81
+
82
+ <service
83
+ android:name="androidx.work.impl.foreground.SystemForegroundService"
84
+ android:foregroundServiceType="dataSync"
85
+ android:exported="false"
86
+ tools:node="merge">
87
+ </service>
88
+
89
+ <receiver
90
+ android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
91
+ android:enabled="true"
92
+ android:exported="false" />
93
+ <service android:name="com.google.android.gms.measurement.AppMeasurementService"
94
+ android:enabled="true"
95
+ android:exported="false" />
96
+ <service
97
+ android:name="com.google.android.gms.measurement.AppMeasurementJobService"
98
+ android:enabled="true"
99
+ android:exported="false"
100
+ android:permission="android.permission.BIND_JOB_SERVICE" />
101
+ </application>
102
+
103
+ </manifest>
Android/src/app/src/main/assets/DATA/davinchi.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2e3e5577501a9fb362cc759c2fe30f1c4b8accf74837893b70d4f75edd5d3d3f
3
+ size 15507
Android/src/app/src/main/assets/DATA/davinchi/동방박사의 경배.jpg ADDED

Git LFS Details

  • SHA256: c9ef5a327e87112a07921d90e023fee37c13f1f18872fe39e3dfc32086aea172
  • Pointer size: 131 Bytes
  • Size of remote file: 155 kB
Android/src/app/src/main/assets/DATA/davinchi/라 벨 페로니에르.jpg ADDED

Git LFS Details

  • SHA256: a0713dbf114bcdd3109bb184ec6c25b45d298c1970228c523fa5bd4122258f10
  • Pointer size: 130 Bytes
  • Size of remote file: 25.2 kB
Android/src/app/src/main/assets/DATA/davinchi/레다와 백조.jpg ADDED

Git LFS Details

  • SHA256: 57f79a0534140f8db5977386bf37c6c76ee03e40ae225d3cc91b20ea7237ffb2
  • Pointer size: 130 Bytes
  • Size of remote file: 72.4 kB
Android/src/app/src/main/assets/DATA/davinchi/모나리자.jpg ADDED

Git LFS Details

  • SHA256: 388bf9fbb4569a44a8cee461b87908b427e09320ba05ea08edb2e46567156d04
  • Pointer size: 131 Bytes
  • Size of remote file: 408 kB
Android/src/app/src/main/assets/DATA/davinchi/브누아 마돈나.jpg ADDED

Git LFS Details

  • SHA256: b859aa324b4e71c70337a26916d516d7a83e7fff5ff4d44705b698ea065cd09d
  • Pointer size: 130 Bytes
  • Size of remote file: 56 kB
Android/src/app/src/main/assets/DATA/davinchi/비트루비우스적 인간.jpg ADDED

Git LFS Details

  • SHA256: de16a4ba0136d03865a20a9ebde4456ca410c894f323fff6879d6c9ffc328d34
  • Pointer size: 131 Bytes
  • Size of remote file: 701 kB
Android/src/app/src/main/assets/DATA/davinchi/살바토르 문디.jpg ADDED

Git LFS Details

  • SHA256: f0094b42dbe1df125f3c55c3c819a048044886cf02c26e4be5a5dae36b21b68a
  • Pointer size: 131 Bytes
  • Size of remote file: 425 kB
Android/src/app/src/main/assets/DATA/davinchi/성 안나와 함께 있는 성모자.jpg ADDED

Git LFS Details

  • SHA256: 311a2eebc0bc8e9561380a427d08ebc67475f0c5ae3ad95ae9c18368a1ea5978
  • Pointer size: 131 Bytes
  • Size of remote file: 347 kB
Android/src/app/src/main/assets/DATA/davinchi/세례자 요한.jpg ADDED

Git LFS Details

  • SHA256: 345ea8137e495f13787a110745d418fcb3a5ecf12c54dceeffe40826621f94a3
  • Pointer size: 130 Bytes
  • Size of remote file: 52.2 kB
Android/src/app/src/main/assets/DATA/davinchi/수태고지.jpg ADDED

Git LFS Details

  • SHA256: 43f43f6c91aeb2d66c3dc0f9c152786391d78c786ff1762e0bc51dfd775abec4
  • Pointer size: 130 Bytes
  • Size of remote file: 80.7 kB
Android/src/app/src/main/assets/DATA/davinchi/암굴의 성모.jpg ADDED

Git LFS Details

  • SHA256: be1d6861a88b8c134368686b6930bc41c5fc4b35aa14be82f7d9bd9c61fca5cc
  • Pointer size: 130 Bytes
  • Size of remote file: 77.6 kB
Android/src/app/src/main/assets/DATA/davinchi/최후의 만찬.jpg ADDED

Git LFS Details

  • SHA256: 12937c5090f971c3eea7b40f1fb4fb56adf6275973ec846555e204f728032ec9
  • Pointer size: 131 Bytes
  • Size of remote file: 178 kB
Android/src/app/src/main/assets/DATA/davinchi/태아의 해부 드로잉.jpg ADDED

Git LFS Details

  • SHA256: 747d8e839e08b66dbd5f42666fea8c4e6d99cdac2c5f5dca4fdfbdcc471821ad
  • Pointer size: 130 Bytes
  • Size of remote file: 87.1 kB
Android/src/app/src/main/assets/DATA/davinchi/흰 족제비를 안은 여인.jpg ADDED

Git LFS Details

  • SHA256: 5fa1885de4b3c175915322e2069604c45460bf0954ac8b6adef72acbb257d9f1
  • Pointer size: 130 Bytes
  • Size of remote file: 29.7 kB
Android/src/app/src/main/assets/DATA/etc/귀에 붕대를 감은 자화상.png ADDED

Git LFS Details

  • SHA256: dd160e2c94c5a1ac411c7a7d65c74a5b16e3a90985e8f94e939f80f87dca41b6
  • Pointer size: 131 Bytes
  • Size of remote file: 128 kB
Android/src/app/src/main/assets/DATA/etc/너도밤나무 숲.jpg ADDED

Git LFS Details

  • SHA256: 79dd3f85ed1f4432c113c7333d7439db206ca04422623b5313048f44596b7d4e
  • Pointer size: 133 Bytes
  • Size of remote file: 11 MB
Android/src/app/src/main/assets/DATA/etc/양귀비 들판.jpg ADDED

Git LFS Details

  • SHA256: 135925698b973007485b6c53c607f7e650e290e911860d275e9fa3789c3ddfbb
  • Pointer size: 130 Bytes
  • Size of remote file: 24.4 kB
Android/src/app/src/main/assets/DATA/etc/여인의 초상.png ADDED

Git LFS Details

  • SHA256: 2792a4fd6bc9d79335d8d84b3a393607353c343fec2ee7001e74bc6e34d6fa47
  • Pointer size: 131 Bytes
  • Size of remote file: 521 kB
Android/src/app/src/main/assets/DATA/etc/위게니아 프리마베시 초상화.jpg ADDED

Git LFS Details

  • SHA256: 8a3ef164361a95960fd5af08e3c195eca72eeb1fc0e20af335b014de5c3b2db2
  • Pointer size: 130 Bytes
  • Size of remote file: 24.2 kB
Android/src/app/src/main/assets/DATA/etc/헝클어진 머리의 여인.jpg ADDED

Git LFS Details

  • SHA256: 7f4db7e8faf9bc51fec6e86da5542315d21f56e091132d2f51ab2747b5bfffa4
  • Pointer size: 131 Bytes
  • Size of remote file: 419 kB
Android/src/app/src/main/assets/DATA/klimt.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9a43696432e7cfa1df3c1c80e3be1ced79c7a1bb2f282277786391a09002279e
3
+ size 27782
Android/src/app/src/main/assets/DATA/klimt/다나에.jpg ADDED

Git LFS Details

  • SHA256: d0c0405c5ecfed824b942c94125c640b6084382ba941d0b1e0e0959c7abfdf72
  • Pointer size: 131 Bytes
  • Size of remote file: 314 kB
Android/src/app/src/main/assets/DATA/klimt/물뱀 I.jpg ADDED

Git LFS Details

  • SHA256: 29b7104f90c34e34055744f29d88edc4e0c1207da6d02d7be729d86e878b02cb
  • Pointer size: 131 Bytes
  • Size of remote file: 163 kB
Android/src/app/src/main/assets/DATA/klimt/배나무.jpg ADDED

Git LFS Details

  • SHA256: b8fe4d4fc94914b2e5085cdb4ac43d2e48621c29a8587861900c507d87082e9e
  • Pointer size: 131 Bytes
  • Size of remote file: 417 kB
Android/src/app/src/main/assets/DATA/klimt/베토벤 프리즈.png ADDED

Git LFS Details

  • SHA256: 06fef5c0293c7a4a1b8398fb681cdab739aa8ee0f58bbf111bb466c8887618ce
  • Pointer size: 131 Bytes
  • Size of remote file: 663 kB
Android/src/app/src/main/assets/DATA/klimt/부채를 든 여인.jpg ADDED

Git LFS Details

  • SHA256: 8724933371b77c64f5a4ea61d55a4f3123f05a7588db9f0f5af6c43f16b2f0ad
  • Pointer size: 131 Bytes
  • Size of remote file: 347 kB
Android/src/app/src/main/assets/DATA/klimt/생명의 나무.jpg ADDED

Git LFS Details

  • SHA256: c3af1b738254c09cbb2ad2989ba74fdf09c90c1b537d9b86495405d6464415b4
  • Pointer size: 131 Bytes
  • Size of remote file: 174 kB
Android/src/app/src/main/assets/DATA/klimt/세레나 레더러의 초상.jpg ADDED

Git LFS Details

  • SHA256: b418b84703b2658fa3d2828c2c457d75af190e799e1744398da9afa7cb8b91d2
  • Pointer size: 131 Bytes
  • Size of remote file: 121 kB
Android/src/app/src/main/assets/DATA/klimt/소니아 님스의 초상.png ADDED

Git LFS Details

  • SHA256: 699369fd1ff910c54b1291186240233ce9455aa60c55c30372a588e1cc6a0709
  • Pointer size: 131 Bytes
  • Size of remote file: 459 kB
Android/src/app/src/main/assets/DATA/klimt/아델르 블로흐-바우어의 초상 II.jpg ADDED

Git LFS Details

  • SHA256: 3bc9e145da52d770e5c83075b0db8c15fe826d7a0d3a7db1c5a757319a28a695
  • Pointer size: 130 Bytes
  • Size of remote file: 13.4 kB
Android/src/app/src/main/assets/DATA/klimt/아델르 블로흐-바우어의 초상.jpg ADDED

Git LFS Details

  • SHA256: bd53afc9057415eb2c7e3928360b715fa1acd9399a8b9040fb2d768978415dbd
  • Pointer size: 129 Bytes
  • Size of remote file: 9.41 kB