Skip to content

Commit 2568b35

Browse files
author
cw
committed
fix: resolve Google Play policy compliance issues
Android Permissions: - Add RECORD_AUDIO permission to AndroidManifest.xml for speech recognition Runtime Permission Handling: - Implement proper permission request flow in chat_page.dart - Handle granted, denied, and permanently denied states - Show user-friendly error messages for permission issues Internationalization: - Replace all Chinese text with English throughout the app - Update welcome message, error messages, and UI labels - Change speech recognition locale from zh_CN to en_US Privacy & Compliance: - Create comprehensive privacy policy (Markdown + HTML) - Add data safety declaration template for Google Play Console - Document all data collection and usage practices - Include GDPR, CCPA, and COPPA compliance information Documentation: - Add detailed issue analysis report - Create step-by-step fix summary and resubmission guide - Provide testing checklist for app review This commit addresses all critical Google Play policy violations: - Missing permissions declarations - Inadequate permission handling - Language compliance (English-only requirement) - Privacy policy accessibility - Data safety transparency Ready for resubmission to Google Play Store.
1 parent 3455fcd commit 2568b35

File tree

7 files changed

+1006
-55
lines changed

7 files changed

+1006
-55
lines changed

docs/DATA_SAFETY_DECLARATION.md

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
# Google Play Data Safety Declaration Template
2+
3+
This document helps you fill out the **Data Safety** form in Google Play Console.
4+
5+
## Navigation
6+
Google Play Console → App Content → Data safety → Start
7+
8+
---
9+
10+
## Section 1: Data Collection and Security
11+
12+
### Does your app collect or share any of the required user data types?
13+
**Answer**: Yes
14+
15+
---
16+
17+
## Section 2: Data Types Collected
18+
19+
### Device or other identifiers
20+
21+
**What data is collected?**
22+
- Device ID (for device pairing and authentication)
23+
24+
**Is this data collected, shared, or both?**
25+
- Collected only
26+
27+
**Is this data processed ephemerally?**
28+
- No
29+
30+
**Is data collection required or optional?**
31+
- Required
32+
33+
**Why is this user data collected?**
34+
- App functionality
35+
- Account management (device pairing)
36+
37+
---
38+
39+
### Audio
40+
41+
**What data is collected?**
42+
- Voice or sound recordings (for voice commands)
43+
44+
**Is this data collected, shared, or both?**
45+
- Collected only (processed locally, NOT transmitted to servers)
46+
47+
**Is this data processed ephemerally?**
48+
- Yes (processed immediately and discarded)
49+
50+
**Is data collection required or optional?**
51+
- Optional
52+
53+
**Why is this user data collected?**
54+
- App functionality (voice command feature)
55+
56+
---
57+
58+
### App info and performance
59+
60+
**What data is collected?**
61+
- Crash logs
62+
- Diagnostics
63+
64+
**Is this data collected, shared, or both?**
65+
- Collected only
66+
67+
**Is this data processed ephemerally?**
68+
- No
69+
70+
**Is data collection required or optional?**
71+
- Optional (user can disable)
72+
73+
**Why is this user data collected?**
74+
- App functionality
75+
- Analytics
76+
77+
---
78+
79+
## Section 3: Data Security
80+
81+
### Is all of the user data collected by your app encrypted in transit?
82+
**Answer**: Yes
83+
84+
**Explanation**: All data transmission between the mobile app and computer daemon uses end-to-end encryption.
85+
86+
---
87+
88+
### Do you provide a way for users to request that their data is deleted?
89+
**Answer**: Yes
90+
91+
**Explanation**: Users can delete all local data by:
92+
1. Uninstalling the app (removes all local data)
93+
2. Contacting support for server-side data deletion (if any)
94+
3. Using in-app settings to clear cache and logs
95+
96+
---
97+
98+
## Section 4: Data Usage and Handling
99+
100+
### Device ID Usage
101+
102+
**How is this data used?**
103+
- For device pairing and authentication with user's personal computer
104+
- To maintain secure communication channel
105+
- To prevent unauthorized access
106+
107+
**Is this data shared with third parties?**
108+
- No
109+
110+
**Can users choose whether this data is collected?**
111+
- No (required for core functionality)
112+
113+
---
114+
115+
### Voice Data Usage
116+
117+
**How is this data used?**
118+
- Speech-to-text conversion for voice commands
119+
- Processed locally on device
120+
- Never stored or transmitted to external servers
121+
122+
**Is this data shared with third parties?**
123+
- No
124+
125+
**Can users choose whether this data is collected?**
126+
- Yes (voice commands are optional, user can grant/deny microphone permission)
127+
128+
---
129+
130+
### Crash Logs and Diagnostics
131+
132+
**How is this data used?**
133+
- Bug fixing and app stability improvement
134+
- Performance monitoring
135+
- Aggregated and anonymized analytics
136+
137+
**Is this data shared with third parties?**
138+
- No (except crash reporting service like Firebase Crashlytics if used)
139+
140+
**Can users choose whether this data is collected?**
141+
- Yes (can be disabled in app settings)
142+
143+
---
144+
145+
## Section 5: Data Sharing (if applicable)
146+
147+
### If you use cloud AI features (optional):
148+
149+
**Data Shared with AI Providers** (only if user enables cloud AI):
150+
- User queries/commands
151+
- Context information for AI processing
152+
153+
**AI Providers**:
154+
- Anthropic (Claude API)
155+
- OpenAI (GPT API)
156+
- Google (Gemini API)
157+
158+
**Purpose**: AI-powered task execution
159+
160+
**Can users avoid this?**: Yes (users can choose local-only processing)
161+
162+
---
163+
164+
## Recommended Answers Summary for Google Play Console
165+
166+
| Question | Answer |
167+
|----------|--------|
168+
| Does your app collect or share user data? | Yes |
169+
| Do you collect device IDs? | Yes, required for app functionality |
170+
| Do you collect audio data? | Yes, but processed ephemerally and optional |
171+
| Is data encrypted in transit? | Yes |
172+
| Do you provide data deletion? | Yes |
173+
| Do you share data with third parties? | No (or Yes, only if user enables cloud AI) |
174+
175+
---
176+
177+
## Important Notes
178+
179+
1. **Be Honest**: Google can verify your claims through app analysis
180+
2. **Update Regularly**: If you add new features that collect data, update this declaration
181+
3. **Privacy Policy Link**: Make sure your privacy policy URL is accessible and matches this declaration
182+
4. **Testing**: Google may test your app to verify these claims
183+
184+
---
185+
186+
## Next Steps After Filling Data Safety Form
187+
188+
1. ✅ Submit the form in Google Play Console
189+
2. ✅ Ensure privacy policy is hosted and accessible at declared URL
190+
3. ✅ Update app description to mention privacy features
191+
4. ✅ Test app to ensure permission flows work correctly
192+
5. ✅ Resubmit app for review
193+
194+
---
195+
196+
## Privacy Policy URL
197+
198+
Make sure to host the privacy policy at: `https://opencli.ai/privacy`
199+
200+
Or use GitHub Pages: `https://ai-dashboad.github.io/opencli/privacy`

0 commit comments

Comments
 (0)