Refactor: remove Compose prefix from Activity names

- Rename ComposeActivity to MainActivity
- Rename EditProfileComposeActivity to EditProfileActivity
- Rename NewProfileComposeActivity to NewProfileActivity
- Rename GroupsComposeActivity to GroupsActivity
- Move data models to compose/model package
- Update all references in AndroidManifest.xml and source files
This commit is contained in:
世界
2025-12-30 18:38:51 +08:00
parent 71b936ba3a
commit 778cbc6fb0
18 changed files with 45 additions and 45 deletions

View File

@@ -96,7 +96,7 @@
</activity>
<activity
android:name=".compose.ComposeActivity"
android:name=".compose.MainActivity"
android:exported="false"
android:icon="@mipmap/ic_launcher"
android:launchMode="singleTask"
@@ -108,15 +108,15 @@
</activity>
<activity
android:name="io.nekohasekai.sfa.compose.NewProfileComposeActivity"
android:name="io.nekohasekai.sfa.compose.NewProfileActivity"
android:exported="false"
android:theme="@style/AppTheme" />
<activity
android:name="io.nekohasekai.sfa.compose.EditProfileComposeActivity"
android:name="io.nekohasekai.sfa.compose.EditProfileActivity"
android:exported="false"
android:theme="@style/AppTheme" />
<activity
android:name="io.nekohasekai.sfa.compose.GroupsComposeActivity"
android:name="io.nekohasekai.sfa.compose.GroupsActivity"
android:exported="false"
android:theme="@style/AppTheme" />
<activity

View File

@@ -3,14 +3,14 @@ package io.nekohasekai.sfa
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import io.nekohasekai.sfa.compose.ComposeActivity
import io.nekohasekai.sfa.compose.MainActivity
class LauncherActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val launchIntent =
Intent(this, ComposeActivity::class.java).apply {
Intent(this, MainActivity::class.java).apply {
intent?.let {
action = it.action
data = it.data

View File

@@ -34,7 +34,7 @@ import io.nekohasekai.sfa.constant.Status
import io.nekohasekai.sfa.database.ProfileManager
import io.nekohasekai.sfa.database.Settings
import io.nekohasekai.sfa.ktx.hasPermission
import io.nekohasekai.sfa.compose.ComposeActivity
import io.nekohasekai.sfa.compose.MainActivity
import io.nekohasekai.sfa.vendor.Vendor
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
@@ -397,7 +397,7 @@ class BoxService(
0,
Intent(
service,
ComposeActivity::class.java,
MainActivity::class.java,
).apply {
setAction(Action.OPEN_URL).setData(Uri.parse(notification.openURL))
setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)

View File

@@ -23,7 +23,7 @@ import io.nekohasekai.sfa.compose.screen.profile.EditProfileViewModel
import io.nekohasekai.sfa.compose.screen.profile.IconSelectionScreen
import io.nekohasekai.sfa.compose.theme.SFATheme
class EditProfileComposeActivity : ComponentActivity() {
class EditProfileActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()

View File

@@ -34,7 +34,7 @@ import io.nekohasekai.sfa.compose.theme.SFATheme
import io.nekohasekai.sfa.constant.Alert
import io.nekohasekai.sfa.constant.Status
class GroupsComposeActivity : ComponentActivity(), ServiceConnection.Callback {
class GroupsActivity : ComponentActivity(), ServiceConnection.Callback {
private val connection = ServiceConnection(this, this)
private var currentServiceStatus by mutableStateOf(Status.Stopped)

View File

@@ -105,9 +105,9 @@ import io.nekohasekai.sfa.compose.screen.dashboard.GroupsCard
import io.nekohasekai.sfa.compose.screen.connections.ConnectionDetailsScreen
import io.nekohasekai.sfa.compose.screen.connections.ConnectionsScreen
import io.nekohasekai.sfa.compose.screen.connections.ConnectionsViewModel
import io.nekohasekai.sfa.ui.connections.Connection
import io.nekohasekai.sfa.ui.connections.ConnectionSort
import io.nekohasekai.sfa.ui.connections.ConnectionStateFilter
import io.nekohasekai.sfa.compose.model.Connection
import io.nekohasekai.sfa.compose.model.ConnectionSort
import io.nekohasekai.sfa.compose.model.ConnectionStateFilter
import io.nekohasekai.sfa.compose.screen.dashboard.groups.GroupsViewModel
import io.nekohasekai.sfa.compose.screen.log.LogViewModel
import io.nekohasekai.sfa.compose.theme.SFATheme
@@ -123,7 +123,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
class ComposeActivity : ComponentActivity(), ServiceConnection.Callback {
class MainActivity : ComponentActivity(), ServiceConnection.Callback {
private val connection = ServiceConnection(this, this)
private lateinit var dashboardViewModel: DashboardViewModel
private var currentServiceStatus by mutableStateOf(Status.Stopped)
@@ -240,7 +240,7 @@ class ComposeActivity : ComponentActivity(), ServiceConnection.Callback {
}
val intent = Intent(Application.application, Settings.serviceClass())
withContext(Dispatchers.Main) {
ContextCompat.startForegroundService(this@ComposeActivity, intent)
ContextCompat.startForegroundService(this@MainActivity, intent)
}
Settings.startedByUser = true
}
@@ -249,7 +249,7 @@ class ComposeActivity : ComponentActivity(), ServiceConnection.Callback {
private suspend fun prepare() =
withContext(Dispatchers.Main) {
try {
val intent = VpnService.prepare(this@ComposeActivity)
val intent = VpnService.prepare(this@MainActivity)
if (intent != null) {
prepareLauncher.launch(intent)
true
@@ -338,9 +338,9 @@ class ComposeActivity : ComponentActivity(), ServiceConnection.Callback {
confirmButton = {
TextButton(onClick = {
startActivity(
Intent(this@ComposeActivity, NewProfileComposeActivity::class.java).apply {
putExtra(NewProfileComposeActivity.EXTRA_IMPORT_NAME, name)
putExtra(NewProfileComposeActivity.EXTRA_IMPORT_URL, url)
Intent(this@MainActivity, NewProfileActivity::class.java).apply {
putExtra(NewProfileActivity.EXTRA_IMPORT_NAME, name)
putExtra(NewProfileActivity.EXTRA_IMPORT_URL, url)
},
)
showImportProfileDialog = false
@@ -430,7 +430,7 @@ class ComposeActivity : ComponentActivity(), ServiceConnection.Callback {
try {
val result = withContext(Dispatchers.IO) {
Vendor.downloadAndInstall(
this@ComposeActivity,
this@MainActivity,
updateInfo!!.downloadUrl,
)
}
@@ -525,7 +525,7 @@ class ComposeActivity : ComponentActivity(), ServiceConnection.Callback {
}
is UiEvent.OpenUrl -> {
this@ComposeActivity.launchCustomTab(event.url)
this@MainActivity.launchCustomTab(event.url)
}
is UiEvent.RequestStartService -> {
@@ -538,7 +538,7 @@ class ComposeActivity : ComponentActivity(), ServiceConnection.Callback {
is UiEvent.EditProfile -> {
val intent =
Intent(this@ComposeActivity, EditProfileComposeActivity::class.java)
Intent(this@MainActivity, EditProfileActivity::class.java)
intent.putExtra("profile_id", event.profileId)
startActivity(intent)
}

View File

@@ -12,7 +12,7 @@ import androidx.compose.ui.Modifier
import io.nekohasekai.sfa.compose.screen.configuration.NewProfileScreen
import io.nekohasekai.sfa.compose.theme.SFATheme
class NewProfileComposeActivity : ComponentActivity() {
class NewProfileActivity : ComponentActivity() {
companion object {
const val EXTRA_PROFILE_ID = "profile_id"
const val EXTRA_IMPORT_NAME = "import_name"

View File

@@ -1,4 +1,4 @@
package io.nekohasekai.sfa.ui.connections
package io.nekohasekai.sfa.compose.model
import androidx.compose.runtime.Immutable
import io.nekohasekai.libbox.Connection as LibboxConnection

View File

@@ -1,4 +1,4 @@
package io.nekohasekai.sfa.ui.connections
package io.nekohasekai.sfa.compose.model
import io.nekohasekai.libbox.Libbox

View File

@@ -1,4 +1,4 @@
package io.nekohasekai.sfa.ui.dashboard
package io.nekohasekai.sfa.compose.model
import androidx.compose.runtime.Immutable
import io.nekohasekai.libbox.OutboundGroup

View File

@@ -43,7 +43,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import io.nekohasekai.libbox.Libbox
import io.nekohasekai.sfa.R
import io.nekohasekai.sfa.ui.connections.Connection
import io.nekohasekai.sfa.compose.model.Connection
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale

View File

@@ -44,7 +44,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import io.nekohasekai.libbox.Libbox
import io.nekohasekai.sfa.R
import io.nekohasekai.sfa.ui.connections.Connection
import io.nekohasekai.sfa.compose.model.Connection
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale

View File

@@ -44,7 +44,7 @@ import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import io.nekohasekai.sfa.R
import io.nekohasekai.sfa.constant.Status
import io.nekohasekai.sfa.ui.connections.Connection
import io.nekohasekai.sfa.compose.model.Connection
@Composable
fun ConnectionsScreen(

View File

@@ -7,9 +7,9 @@ import io.nekohasekai.sfa.compose.base.BaseViewModel
import io.nekohasekai.sfa.compose.base.ScreenEvent
import io.nekohasekai.sfa.constant.Status
import io.nekohasekai.sfa.ktx.toList
import io.nekohasekai.sfa.ui.connections.Connection
import io.nekohasekai.sfa.ui.connections.ConnectionSort
import io.nekohasekai.sfa.ui.connections.ConnectionStateFilter
import io.nekohasekai.sfa.compose.model.Connection
import io.nekohasekai.sfa.compose.model.ConnectionSort
import io.nekohasekai.sfa.compose.model.ConnectionStateFilter
import io.nekohasekai.sfa.utils.CommandClient
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job

View File

@@ -65,8 +65,8 @@ import io.nekohasekai.libbox.Libbox
import io.nekohasekai.sfa.R
import io.nekohasekai.sfa.compose.screen.dashboard.groups.GroupsViewModel
import io.nekohasekai.sfa.constant.Status
import io.nekohasekai.sfa.ui.dashboard.Group
import io.nekohasekai.sfa.ui.dashboard.GroupItem
import io.nekohasekai.sfa.compose.model.Group
import io.nekohasekai.sfa.compose.model.GroupItem
import io.nekohasekai.sfa.utils.CommandClient
@Composable

View File

@@ -60,7 +60,7 @@ import androidx.compose.ui.unit.dp
import io.nekohasekai.libbox.Libbox
import io.nekohasekai.libbox.ProfileContent
import io.nekohasekai.sfa.R
import io.nekohasekai.sfa.compose.NewProfileComposeActivity
import io.nekohasekai.sfa.compose.NewProfileActivity
import io.nekohasekai.sfa.compose.screen.configuration.ProfileImportHandler
import io.nekohasekai.sfa.compose.screen.configuration.QRCodeDialog
import io.nekohasekai.sfa.compose.util.QRCodeGenerator
@@ -114,7 +114,7 @@ fun ProfilesCard(
ActivityResultContracts.StartActivityForResult(),
) { result ->
if (result.resultCode == android.app.Activity.RESULT_OK) {
val profileId = result.data?.getLongExtra(NewProfileComposeActivity.EXTRA_PROFILE_ID, -1L)
val profileId = result.data?.getLongExtra(NewProfileActivity.EXTRA_PROFILE_ID, -1L)
if (profileId != null && profileId != -1L) {
coroutineScope.launch {
val profile =
@@ -165,9 +165,9 @@ fun ProfilesCard(
is ProfileImportHandler.QRCodeParseResult.RemoteProfile -> {
withContext(Dispatchers.Main) {
val newProfileIntent =
Intent(context, NewProfileComposeActivity::class.java).apply {
putExtra(NewProfileComposeActivity.EXTRA_IMPORT_NAME, parseResult.name)
putExtra(NewProfileComposeActivity.EXTRA_IMPORT_URL, parseResult.url)
Intent(context, NewProfileActivity::class.java).apply {
putExtra(NewProfileActivity.EXTRA_IMPORT_NAME, parseResult.name)
putExtra(NewProfileActivity.EXTRA_IMPORT_URL, parseResult.url)
}
newProfileLauncher.launch(newProfileIntent)
}
@@ -419,7 +419,7 @@ fun ProfilesCard(
ListItem(
modifier = Modifier.clickable {
onHideAddProfileSheet()
val intent = Intent(context, NewProfileComposeActivity::class.java)
val intent = Intent(context, NewProfileActivity::class.java)
newProfileLauncher.launch(intent)
},
leadingContent = {

View File

@@ -55,8 +55,8 @@ import androidx.lifecycle.viewmodel.compose.viewModel
import io.nekohasekai.libbox.Libbox
import io.nekohasekai.sfa.R
import io.nekohasekai.sfa.constant.Status
import io.nekohasekai.sfa.ui.dashboard.Group
import io.nekohasekai.sfa.ui.dashboard.GroupItem
import io.nekohasekai.sfa.compose.model.Group
import io.nekohasekai.sfa.compose.model.GroupItem
@Composable
fun GroupsScreen(

View File

@@ -6,9 +6,9 @@ import io.nekohasekai.libbox.OutboundGroup
import io.nekohasekai.sfa.compose.base.BaseViewModel
import io.nekohasekai.sfa.compose.base.ScreenEvent
import io.nekohasekai.sfa.constant.Status
import io.nekohasekai.sfa.ui.dashboard.Group
import io.nekohasekai.sfa.ui.dashboard.GroupItem
import io.nekohasekai.sfa.ui.dashboard.toList
import io.nekohasekai.sfa.compose.model.Group
import io.nekohasekai.sfa.compose.model.GroupItem
import io.nekohasekai.sfa.compose.model.toList
import io.nekohasekai.sfa.utils.CommandClient
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job