Skip to content

Commit a8b42e0

Browse files
committed
v2.0.3
1 parent 10892ef commit a8b42e0

25 files changed

Lines changed: 745 additions & 518 deletions

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
*.ap_
55
*.aab
66

7+
# Release output directories
8+
app/*/release/
9+
app/*/debug/
10+
711
# Files for the ART/Dalvik VM
812
*.dex
913

SECURITY_CLEANUP.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# Security Cleanup Summary
2+
3+
This document summarizes the security cleanup performed on the Echo-Music repository before pushing to GitHub.
4+
5+
## ✅ Confidential Information Removed
6+
7+
### 1. Firebase Configuration
8+
- **File:** `app/google-services.json`
9+
- **Action:** Restored to template with placeholder values
10+
- **Previously contained:**
11+
- Project Number: 887842405081
12+
- Project ID: echo-aab3b
13+
- API Key: AIzaSyCvXEL8c5TOPmYUo33ghC7Cf64qYUGWfZg
14+
- Mobile SDK App ID
15+
- **Status:** ✅ All sensitive data replaced with "YOUR_*" placeholders
16+
17+
### 2. Signing Credentials
18+
- **File:** `gradle.properties`
19+
- **Action:** Removed actual passwords and keys
20+
- **Previously contained:**
21+
- STORE_PASSWORD: @Sleeping12
22+
- KEY_ALIAS: key_1
23+
- KEY_PASSWORD: @Sleeping12
24+
- **Status:** ✅ Replaced with commented placeholder instructions
25+
26+
### 3. Build Outputs
27+
- **Files:**
28+
- `app/arm64/release/*`
29+
- `app/universal/release/*`
30+
- **Action:** Removed from git tracking
31+
- **Status:** ✅ Deleted from repository and added to .gitignore
32+
33+
## 📝 .gitignore Updates
34+
35+
Added the following patterns to ensure build outputs stay excluded:
36+
```gitignore
37+
# Release output directories
38+
app/*/release/
39+
app/*/debug/
40+
```
41+
42+
## ✅ Files Safe to Commit
43+
44+
The following files contain NO sensitive information:
45+
- All source code files (*.kt)
46+
- Resource files (strings.xml, drawables)
47+
- Build configuration (build.gradle.kts) - contains only public config
48+
- Documentation (README.md, SETUP.md, etc.)
49+
- Template files (*.template, *.example)
50+
51+
## 🔒 Files That Should NEVER Be Committed
52+
53+
These are already in .gitignore:
54+
- `app/google-services.json` (use template instead)
55+
- `local.properties` (contains local SDK paths)
56+
- `*.keystore`, `*.jks` (signing keys)
57+
- `gradle.properties` with actual credentials
58+
- `*.apk`, `*.aab` (build outputs)
59+
- Build directories (`build/`, `.gradle/`)
60+
61+
## 📋 Setup Instructions for New Contributors
62+
63+
1. **Firebase Setup:**
64+
```bash
65+
cp app/google-services.json.example app/google-services.json
66+
# Then add your Firebase credentials
67+
```
68+
69+
2. **Local Properties:**
70+
```bash
71+
cp local.properties.example local.properties
72+
# Then set your Android SDK path
73+
```
74+
75+
3. **Signing (for release builds):**
76+
- Create a local `gradle.properties` in your home directory
77+
- OR set environment variables:
78+
```bash
79+
export STORE_PASSWORD=your_password
80+
export KEY_ALIAS=your_alias
81+
export KEY_PASSWORD=your_password
82+
```
83+
84+
## ✨ Repository Status
85+
86+
The repository is now clean and ready to be pushed to GitHub without exposing:
87+
- ✅ Firebase API keys
88+
- ✅ Signing credentials
89+
- ✅ Build artifacts
90+
- ✅ Local configuration
91+
92+
## 🚀 Next Steps
93+
94+
1. Review all modified files before committing
95+
2. Stage your changes: `git add .`
96+
3. Commit with a clear message
97+
4. Push to GitHub: `git push origin main`
98+
99+
## 📞 Security Notice
100+
101+
If you accidentally committed sensitive information:
102+
1. **DO NOT** just delete it in a new commit
103+
2. Use `git filter-branch` or BFG Repo-Cleaner to remove it from history
104+
3. Rotate all exposed credentials immediately
105+
4. Consider the exposed data compromised
106+
107+
---
108+
109+
**Last Updated:** October 29, 2025
110+
**Prepared by:** Security Cleanup Script
-10.2 KB
Binary file not shown.
-10.2 KB
Binary file not shown.

app/arm64/release/output-metadata.json

Lines changed: 0 additions & 37 deletions
This file was deleted.

app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ android {
1818
applicationId = "iad1tya.echo.music"
1919
minSdk = 26
2020
targetSdk = 36
21-
versionCode = 202
22-
versionName = "2.0.2"
21+
versionCode = 203
22+
versionName = "2.0.3"
2323

2424
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2525
vectorDrawables.useSupportLibrary = true

app/src/main/kotlin/iad1tya/echo/music/MainActivity.kt

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -833,26 +833,20 @@ class MainActivity : ComponentActivity() {
833833
)
834834
}
835835
IconButton(onClick = { showAccountDialog = true }) {
836-
BadgedBox(badge = {
837-
if (latestVersionName != BuildConfig.VERSION_NAME) {
838-
Badge()
839-
}
840-
}) {
841-
if (accountImageUrl != null) {
842-
AsyncImage(
843-
model = accountImageUrl,
844-
contentDescription = stringResource(R.string.account),
845-
modifier = Modifier
846-
.size(24.dp)
847-
.clip(CircleShape)
848-
)
849-
} else {
850-
Icon(
851-
painter = painterResource(R.drawable.account),
852-
contentDescription = stringResource(R.string.account),
853-
modifier = Modifier.size(24.dp)
854-
)
855-
}
836+
if (accountImageUrl != null) {
837+
AsyncImage(
838+
model = accountImageUrl,
839+
contentDescription = stringResource(R.string.account),
840+
modifier = Modifier
841+
.size(24.dp)
842+
.clip(CircleShape)
843+
)
844+
} else {
845+
Icon(
846+
painter = painterResource(R.drawable.account),
847+
contentDescription = stringResource(R.string.account),
848+
modifier = Modifier.size(24.dp)
849+
)
856850
}
857851
}
858852
},
@@ -1119,12 +1113,27 @@ class MainActivity : ComponentActivity() {
11191113
NavigationBarItem(
11201114
selected = isSelected,
11211115
icon = {
1122-
Icon(
1123-
painter = painterResource(
1124-
id = if (isSelected) screen.iconIdActive else screen.iconIdInactive
1125-
),
1126-
contentDescription = null,
1127-
)
1116+
if (screen.route == Screens.Settings.route) {
1117+
BadgedBox(badge = {
1118+
if (latestVersionName != BuildConfig.VERSION_NAME) {
1119+
Badge()
1120+
}
1121+
}) {
1122+
Icon(
1123+
painter = painterResource(
1124+
id = if (isSelected) screen.iconIdActive else screen.iconIdInactive
1125+
),
1126+
contentDescription = null,
1127+
)
1128+
}
1129+
} else {
1130+
Icon(
1131+
painter = painterResource(
1132+
id = if (isSelected) screen.iconIdActive else screen.iconIdInactive
1133+
),
1134+
contentDescription = null,
1135+
)
1136+
}
11281137
},
11291138
label = {
11301139
if (!slimNav) {

0 commit comments

Comments
 (0)