feat: scaffold Android project with dependencies

Made-with: Cursor
This commit is contained in:
cottongin
2026-03-10 00:49:16 -04:00
parent 806ce23254
commit 2a9b21b67f
17 changed files with 621 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<application
android:name=".RadioApplication"
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.Radio247">
<activity
android:name=".MainActivity"
android:exported="true"
android:theme="@style/Theme.Radio247">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".service.RadioPlaybackService"
android:exported="false"
android:foregroundServiceType="mediaPlayback" />
</application>
</manifest>

View File

@@ -0,0 +1,28 @@
package xyz.cottongin.radio247
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Radio247Placeholder()
}
}
}
@Composable
private fun Radio247Placeholder() {
Text("24/7 Radio")
}
@Preview(showBackground = true)
@Composable
private fun Radio247PlaceholderPreview() {
Radio247Placeholder()
}

View File

@@ -0,0 +1,5 @@
package xyz.cottongin.radio247
import android.app.Application
class RadioApplication : Application()

View File

@@ -0,0 +1,13 @@
package xyz.cottongin.radio247.service
import android.app.Service
import android.content.Intent
import android.os.IBinder
/**
* Stub for the media playback foreground service.
* Will be implemented in a later task.
*/
class RadioPlaybackService : Service() {
override fun onBind(intent: Intent?): IBinder? = null
}

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<!-- Radio tower / antenna icon -->
<path
android:fillColor="#00000000"
android:strokeColor="#000000"
android:strokeWidth="1.5"
android:strokeLineCap="round"
android:pathData="M12,2 L12,22 M4,8 L20,8 M6,14 L18,14 M8,20 L16,20" />
</vector>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">24/7 Radio</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Radio247" parent="Theme.Material3.DayNight.NoActionBar" />
</resources>