SilverDROID - Dark Side Admin with CI/CD pipeline

- Android PWA/WASM launcher with glassmorphism UI
- Loads https://admin.dark.side directly on launch
- Complete GitLab CI/CD pipeline configuration
- Automated builds for Debug, Release, and AAB
- Full WASM support with optimized WebView
- Material Design 3 theme
- Comprehensive documentation

Features:
- Auto-load target URL on app launch
- Glassmorphism components (frosted glass effects)
- Full PWA/WASM support
- Room database for future extensions
- Jetpack Compose UI
- CI/CD with artifact storage

Built for SilverLABS
This commit is contained in:
2025-09-30 17:13:14 +01:00
commit c667765488
41 changed files with 4857 additions and 0 deletions

307
DARK_SIDE_BUILD.md Normal file
View File

@@ -0,0 +1,307 @@
# Dark Side Admin - Custom Build Summary
## 🎯 What Was Created
A specialized version of SilverDROID that loads **`https://admin.dark.side`** directly on launch, with full WASM/PWA support and glassmorphism UI.
---
## 📦 Project Status
### ✅ Completed
- Android project structure created
- MainActivity modified to auto-load admin.dark.side
- WebView optimized for WASM/PWA
- Glassmorphism UI theme applied
- App name changed to "Dark Side Admin"
- All dependencies configured
### 📱 Ready for Compilation
The project is **ready to build** but requires:
1. **Android Studio** (to compile)
2. **Android SDK** installed
3. **JDK 17+** installed
---
## 🏗️ How to Build
### Recommended: Android Studio
1. **Open Android Studio**
- File → Open
- Navigate to: `C:\Production\Source\SilverLABS\SilverDROID`
2. **Sync Gradle** (automatic, ~2-5 minutes)
3. **Build APK**
- Build → Build Bundle(s) / APK(s) → Build APK(s)
4. **Find APK**
```
app\build\outputs\apk\debug\app-debug.apk
```
### Alternative: PowerShell Command Line
```powershell
cd C:\Production\Source\SilverLABS\SilverDROID
# First time: Create Gradle wrapper
.\gradlew.bat wrapper
# Build APK
.\gradlew.bat assembleDebug
```
---
## 🎨 What's Included
### Core Features
- ✅ **Direct URL Loading** - Opens admin.dark.side immediately
- ✅ **WASM Support** - WebAssembly fully enabled
- ✅ **PWA Features** - Service Workers, offline caching
- ✅ **DOM Storage** - LocalStorage, SessionStorage enabled
- ✅ **JavaScript** - Fully enabled
- ✅ **Mixed Content** - HTTP/HTTPS allowed (for dev)
### UI Features
- ✅ **Glassmorphism Theme** - Frosted glass effects
- ✅ **Material Design 3** - Modern Android design
- ✅ **Dark/Light Theme** - Adapts to system settings
- ✅ **Progress Indicator** - Loading states
- ✅ **Back Navigation** - Back button exits app
- ✅ **Refresh Button** - Reload the page
- ✅ **Title Bar** - Shows page title
### WebView Configuration
```kotlin
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
settings.databaseEnabled = true
settings.allowFileAccess = true
settings.allowContentAccess = true
settings.mixedContentMode = MIXED_CONTENT_ALWAYS_ALLOW
settings.cacheMode = LOAD_DEFAULT
settings.setAppCacheEnabled(true)
```
---
## 📁 Key Files Modified
### MainActivity.kt
**Changed:** Now loads admin.dark.side directly instead of showing launcher
```kotlin
private val targetUrl = "https://admin.dark.side"
private val appName = "Dark Side Admin"
```
### strings.xml
**Changed:** App name from "SilverDROID" to "Dark Side Admin"
```xml
<string name="app_name">Dark Side Admin</string>
```
### All Other Files
**Unchanged:** Theme, WebView, components all intact
---
## 🔧 WebView Debugging
### Enable Chrome DevTools
1. Build and install the app
2. Open Chrome on your PC
3. Navigate to: `chrome://inspect`
4. Find "Dark Side Admin" under "Remote Target"
5. Click "inspect"
Now you have full DevTools:
- Console
- Network tab
- Elements inspector
- Performance profiler
---
## 📱 App Specifications
```yaml
Package Name: uk.silverlabs.silverdroid
App Name: Dark Side Admin
Version: 1.0.0
Min SDK: 26 (Android 8.0)
Target SDK: 35 (Android 15)
Compile SDK: 35
Target URL: https://admin.dark.side
Permissions:
- INTERNET
- ACCESS_NETWORK_STATE
- POST_NOTIFICATIONS
- Storage (for caching)
```
---
## 🚀 Installation
### On Device
1. Build the APK (see above)
2. Copy to device via USB or cloud
3. Tap the APK file
4. Allow "Install from Unknown Sources"
5. Tap "Install"
### Via ADB
```bash
adb install app/build/outputs/apk/debug/app-debug.apk
```
---
## 🔐 Security Notes
### Cleartext Traffic
Currently enabled for development. For production:
Edit `AndroidManifest.xml`:
```xml
android:usesCleartextTraffic="false"
```
### Mixed Content
Currently allows HTTP/HTTPS mixing. For production, change WebView settings:
```kotlin
settings.mixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW
```
### ProGuard
Release builds use ProGuard for code obfuscation and optimization.
---
## 📊 Build Outputs
### Debug Build
- **File:** `app-debug.apk`
- **Size:** ~10-15 MB
- **Debuggable:** Yes
- **Optimized:** No
- **Location:** `app/build/outputs/apk/debug/`
### Release Build
```powershell
.\gradlew.bat assembleRelease
```
- **File:** `app-release-unsigned.apk`
- **Size:** ~8-10 MB
- **Debuggable:** No
- **Optimized:** Yes (ProGuard)
- **Location:** `app/build/outputs/apk/release/`
---
## ⚙️ Customization
### Change Target URL
Edit `MainActivity.kt` line 23:
```kotlin
private val targetUrl = "https://your-new-url.com"
```
### Change App Name
Edit `res/values/strings.xml`:
```xml
<string name="app_name">Your App Name</string>
```
### Change Package Name
1. Refactor package in Android Studio
2. Update `build.gradle.kts`:
```kotlin
applicationId = "com.yourcompany.appname"
```
---
## 🐛 Troubleshooting
### Build Errors
**"SDK location not found"**
```powershell
# Set ANDROID_HOME environment variable
$env:ANDROID_HOME = "C:\Users\YourUser\AppData\Local\Android\Sdk"
```
**"Gradle sync failed"**
1. Check internet connection
2. File → Invalidate Caches / Restart
**"JDK version incompatible"**
- Need JDK 17 or later
- Download from: https://adoptium.net/
### Runtime Errors
**"App won't load URL"**
- Check internet connection
- Verify URL is accessible in browser
- Check logcat: `adb logcat | grep SilverDROID`
**"WebView blank"**
- Clear app data: Settings → Apps → Dark Side Admin → Clear Data
- Try different URL to test
---
## 📞 Support
### Resources
- **Main README:** `README.md`
- **Build Guide:** `BUILD.md`
- **Quick Start:** `QUICKSTART.md`
- **Project Summary:** `PROJECT_SUMMARY.md`
### SilverLABS Infrastructure
- **GitLab:** https://gitlab.silverlabs.uk
- **TeamCity:** https://cis1.silverlabs.uk
- **Knowledge Base:** `~/.claude/Knowledge/`
---
## ✅ Build Checklist
- [x] Project structure created
- [x] MainActivity modified for direct load
- [x] App name changed
- [x] WebView configured for WASM
- [x] Glassmorphism theme applied
- [x] Gradle wrapper created
- [x] Build scripts ready
- [ ] **Compile in Android Studio** ← Next Step
- [ ] Install on device
- [ ] Test admin.dark.side loading
---
## 🎉 Summary
You now have a **fully configured Android project** that:
- Loads `https://admin.dark.side` on launch
- Supports WASM and PWAs
- Has beautiful glassmorphism UI
- Is ready to compile
**Next step:** Open in Android Studio and build the APK!
---
**Built for SilverLABS** | Custom Dark Side Admin Loader