Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 21 additions & 21 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
android:value="@integer/release_code" />

<activity
android:name=".MainActivity"
android:name=".main.MainActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
Expand All @@ -52,7 +52,7 @@
<activity-alias
android:name=".MainActivityAlias"
android:exported="true"
android:targetActivity=".MainActivity">
android:targetActivity=".main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
Expand All @@ -62,7 +62,7 @@
</activity-alias>

<activity
android:name=".ExternalControlActivity"
android:name=".main.ExternalControlActivity"
android:excludeFromRecents="true"
android:exported="true"
android:label="@string/external_control_activity"
Expand Down Expand Up @@ -92,60 +92,60 @@
</intent-filter>
</activity>
<activity
android:name=".ApkBrokenActivity"
android:name=".crash.ApkBrokenActivity"
android:exported="false" />
<activity
android:name=".AppCrashedActivity"
android:name=".crash.AppCrashedActivity"
android:exported="false"
android:launchMode="singleTask" />
<activity
android:name=".ProfilesActivity"
android:name=".profile.ProfilesActivity"
android:configChanges="uiMode" />
<activity
android:name=".NewProfileActivity"
android:name=".profile.NewProfileActivity"
android:exported="false" />
<activity
android:name=".PropertiesActivity"
android:name=".profile.PropertiesActivity"
android:exported="false" />
<activity
android:name=".ProxyActivity"
android:name=".proxy.ProxyActivity"
android:exported="false" />
<activity
android:name=".ProvidersActivity"
android:name=".profile.ProvidersActivity"
android:exported="false" />
<activity
android:name=".LogsActivity"
android:name=".log.LogsActivity"
android:exported="false" />
<activity
android:name=".LogcatActivity"
android:name=".log.LogcatActivity"
android:exported="false" />
<activity
android:name=".SettingsActivity"
android:name=".settings.SettingsActivity"
android:exported="false" />
<activity
android:name=".NetworkSettingsActivity"
android:name=".settings.NetworkSettingsActivity"
android:exported="false" />
<activity
android:name=".AppSettingsActivity"
android:name=".settings.AppSettingsActivity"
android:exported="false" />
<activity
android:name=".OverrideSettingsActivity"
android:name=".settings.OverrideSettingsActivity"
android:exported="false" />
<activity
android:name=".MetaFeatureSettingsActivity"
android:name=".settings.MetaFeatureSettingsActivity"
android:exported="false" />
<activity
android:name=".AccessControlActivity"
android:name=".settings.AccessControlActivity"
android:exported="false" />
<activity
android:name=".HelpActivity"
android:name=".main.HelpActivity"
android:exported="false" />
<activity
android:name=".FilesActivity"
android:name=".files.FilesActivity"
android:exported="false" />

<service
android:name=".LogcatService"
android:name=".log.LogcatService"
android:exported="false"
android:label="@string/clash_logcat"
android:foregroundServiceType="specialUse">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.github.kr328.clash
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import com.github.kr328.clash.main.MainActivity

class DialerReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ import androidx.core.graphics.drawable.IconCompat
import com.github.kr328.clash.common.Global
import com.github.kr328.clash.common.constants.Intents
import com.github.kr328.clash.common.log.Log
import com.github.kr328.clash.design.store.UiStore
import com.github.kr328.clash.main.ExternalControlActivity
import com.github.kr328.clash.remote.Remote
import com.github.kr328.clash.service.util.sendServiceRecreated
import com.github.kr328.clash.store.UiStore
import com.github.kr328.clash.util.clashDir
import java.io.File
import java.io.FileOutputStream
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.github.kr328.clash
package com.github.kr328.clash.crash

import com.github.kr328.clash.design.ApkBrokenDesign
import com.github.kr328.clash.crash.ui.ApkBrokenDesign
import com.github.kr328.clash.ui.BaseActivity

class ApkBrokenActivity : BaseActivity<ApkBrokenDesign>() {
override suspend fun main() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package com.github.kr328.clash
package com.github.kr328.clash.crash

import com.github.kr328.clash.common.log.Log
import com.github.kr328.clash.design.AppCrashedDesign
import com.github.kr328.clash.log.SystemLogcat
import com.github.kr328.clash.crash.ui.AppCrashedDesign
import com.github.kr328.clash.log.util.SystemLogcat
import com.github.kr328.clash.ui.BaseActivity
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.isActive
import kotlinx.coroutines.withContext
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
package com.github.kr328.clash.design
package com.github.kr328.clash.crash.ui

import android.content.Context
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import com.github.kr328.clash.R
import com.github.kr328.clash.design.component.SettingsCategoryTitle
import com.github.kr328.clash.design.component.SettingsClickableItem
import com.github.kr328.clash.design.component.SettingsCommonScreen
import com.github.kr328.clash.design.component.SettingsTipsItem
import com.github.kr328.clash.design.ui.theme.MihomoTheme
import com.github.kr328.clash.design.ui.theme.PreviewMihomo
import com.github.kr328.clash.main.ui.CMFA_GITHUB
import com.github.kr328.clash.main.ui.openLink
import com.github.kr328.clash.ui.Design
import com.github.kr328.clash.ui.component.SettingsCategoryTitle
import com.github.kr328.clash.ui.component.SettingsClickableItem
import com.github.kr328.clash.ui.component.SettingsCommonScreen
import com.github.kr328.clash.ui.component.SettingsTipsItem
import com.github.kr328.clash.ui.theme.MihomoTheme
import com.github.kr328.clash.ui.theme.PreviewMihomo

class ApkBrokenDesign(context: Context) : Design<Unit>(context) {
@Composable override fun Content() = MihomoTheme { ApkBrokenScreen() }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.github.kr328.clash.design
package com.github.kr328.clash.crash.ui

import android.content.Context
import androidx.compose.foundation.layout.fillMaxSize
Expand All @@ -17,9 +17,10 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.github.kr328.clash.R
import com.github.kr328.clash.design.component.MihomoScaffold
import com.github.kr328.clash.design.ui.theme.MihomoTheme
import com.github.kr328.clash.design.ui.theme.PreviewMihomo
import com.github.kr328.clash.ui.Design
import com.github.kr328.clash.ui.component.MihomoScaffold
import com.github.kr328.clash.ui.theme.MihomoTheme
import com.github.kr328.clash.ui.theme.PreviewMihomo
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package com.github.kr328.clash
package com.github.kr328.clash.files

import android.content.Intent
import android.net.Uri
import androidx.activity.result.contract.ActivityResultContracts
import com.github.kr328.clash.common.util.grantPermissions
import com.github.kr328.clash.common.util.uuid
import com.github.kr328.clash.design.FilesDesign
import com.github.kr328.clash.design.util.showExceptionToast
import com.github.kr328.clash.files.ui.FilesDesign
import com.github.kr328.clash.remote.FilesClient
import com.github.kr328.clash.service.model.Profile
import com.github.kr328.clash.ui.BaseActivity
import com.github.kr328.clash.util.fileName
import com.github.kr328.clash.util.showExceptionToast
import com.github.kr328.clash.util.withProfile
import java.util.Stack
import kotlinx.coroutines.isActive
Expand Down Expand Up @@ -38,6 +39,7 @@ class FilesActivity : BaseActivity<FilesDesign>() {
Event.ActivityStop -> {
design.fetch(client, stack, root)
}

else -> Unit
}
}
Expand All @@ -51,9 +53,11 @@ class FilesActivity : BaseActivity<FilesDesign>() {
stack.pop()
}
}

is FilesDesign.Request.OpenDirectory -> {
stack.push(it.file.id)
}

is FilesDesign.Request.OpenFile -> {
startActivityForResult(
ActivityResultContracts.StartActivityForResult(),
Expand All @@ -62,12 +66,15 @@ class FilesActivity : BaseActivity<FilesDesign>() {
.grantPermissions(),
)
}

is FilesDesign.Request.DeleteFile -> {
client.deleteDocument(it.file.id)
}

is FilesDesign.Request.RenameFile -> {
client.renameDocument(it.file.id, it.newName)
}

is FilesDesign.Request.ImportFile -> {
val uri: Uri? = startActivityForResult(ActivityResultContracts.GetContent(), "*/*")

Expand All @@ -79,6 +86,7 @@ class FilesActivity : BaseActivity<FilesDesign>() {
}
}
}

is FilesDesign.Request.ExportFile -> {
val uri: Uri? =
startActivityForResult(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.github.kr328.clash.design
package com.github.kr328.clash.files.ui

import android.content.Context
import androidx.compose.foundation.clickable
Expand Down Expand Up @@ -30,19 +30,21 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.github.kr328.clash.R
import com.github.kr328.clash.design.component.MihomoScaffold
import com.github.kr328.clash.design.component.ModelTextInputDialog
import com.github.kr328.clash.design.model.File
import com.github.kr328.clash.design.ui.theme.MihomoTheme
import com.github.kr328.clash.design.ui.theme.PreviewMihomo
import com.github.kr328.clash.design.util.ValidatorFileName
import com.github.kr328.clash.design.util.elapsedIntervalString
import com.github.kr328.clash.design.util.toBytesString
import com.github.kr328.clash.model.File
import com.github.kr328.clash.ui.Design
import com.github.kr328.clash.ui.component.MihomoScaffold
import com.github.kr328.clash.ui.component.ModelTextInputDialog
import com.github.kr328.clash.ui.theme.MihomoTheme
import com.github.kr328.clash.ui.theme.PreviewMihomo
import com.github.kr328.clash.util.ValidatorFileName
import com.github.kr328.clash.util.elapsedIntervalString
import com.github.kr328.clash.util.toBytesString
import kotlin.time.Duration.Companion.minutes
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
Expand Down Expand Up @@ -281,7 +283,7 @@ private fun FilesMenuAction(
text: String,
onClick: () -> Unit,
modifier: Modifier = Modifier,
tint: androidx.compose.ui.graphics.Color = MaterialTheme.colorScheme.onSurface,
tint: Color = MaterialTheme.colorScheme.onSurface,
) {
Row(
modifier =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
package com.github.kr328.clash
package com.github.kr328.clash.log

import android.content.ComponentName
import android.content.ServiceConnection
import android.net.Uri
import android.os.IBinder
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import com.github.kr328.clash.R
import com.github.kr328.clash.common.log.Log
import com.github.kr328.clash.common.util.fileName
import com.github.kr328.clash.common.util.intent
import com.github.kr328.clash.common.util.ticker
import com.github.kr328.clash.core.model.LogMessage
import com.github.kr328.clash.design.LogcatDesign
import com.github.kr328.clash.design.model.LogFile
import com.github.kr328.clash.design.ui.ToastDuration
import com.github.kr328.clash.design.util.showExceptionToast
import com.github.kr328.clash.log.LogcatFilter
import com.github.kr328.clash.log.LogcatReader
import com.github.kr328.clash.log.ui.LogcatDesign
import com.github.kr328.clash.log.util.LogcatFilter
import com.github.kr328.clash.log.util.LogcatReader
import com.github.kr328.clash.model.LogFile
import com.github.kr328.clash.ui.BaseActivity
import com.github.kr328.clash.ui.ToastDuration
import com.github.kr328.clash.util.logsDir
import com.github.kr328.clash.util.showExceptionToast
import java.io.OutputStreamWriter
import kotlin.coroutines.resume
import kotlinx.coroutines.Dispatchers
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.github.kr328.clash
package com.github.kr328.clash.log

import android.app.PendingIntent
import android.app.Service
Expand All @@ -11,14 +11,15 @@ import android.os.IInterface
import androidx.core.app.NotificationChannelCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import com.github.kr328.clash.R
import com.github.kr328.clash.common.compat.getColorCompat
import com.github.kr328.clash.common.compat.pendingIntentFlags
import com.github.kr328.clash.common.compat.startForegroundCompat
import com.github.kr328.clash.common.log.Log
import com.github.kr328.clash.common.util.intent
import com.github.kr328.clash.core.model.LogMessage
import com.github.kr328.clash.log.LogcatCache
import com.github.kr328.clash.log.LogcatWriter
import com.github.kr328.clash.log.util.LogcatCache
import com.github.kr328.clash.log.util.LogcatWriter
import com.github.kr328.clash.service.RemoteService
import com.github.kr328.clash.service.remote.ILogObserver
import com.github.kr328.clash.service.remote.IRemoteService
Expand Down Expand Up @@ -134,7 +135,7 @@ class LogcatService : Service(), CoroutineScope by CoroutineScope(Dispatchers.De
NotificationManagerCompat.from(this)
.createNotificationChannel(
NotificationChannelCompat.Builder(CHANNEL_ID, NotificationManagerCompat.IMPORTANCE_DEFAULT)
.setName(getString(com.github.kr328.clash.R.string.clash_logcat))
.setName(getString(R.string.clash_logcat))
.build()
)
}
Expand All @@ -143,9 +144,9 @@ class LogcatService : Service(), CoroutineScope by CoroutineScope(Dispatchers.De
val notification =
NotificationCompat.Builder(this, CHANNEL_ID)
.setSmallIcon(com.github.kr328.clash.service.R.drawable.ic_logo_service)
.setColor(getColorCompat(com.github.kr328.clash.R.color.color_clash_light))
.setContentTitle(getString(com.github.kr328.clash.R.string.clash_logcat))
.setContentText(getString(com.github.kr328.clash.R.string.running))
.setColor(getColorCompat(R.color.color_clash_light))
.setContentTitle(getString(R.string.clash_logcat))
.setContentText(getString(R.string.running))
.setContentIntent(
PendingIntent.getActivity(
this,
Expand Down
Loading