move utils to common
This commit is contained in:
34 files changed
+79
-58
No files matched your search
@@ -15,7 +15,7 @@ import androidx.appcompat.widget.Toolbar
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
import com.github.kr328.clash.preference.UiSettings
|
||||
import com.github.kr328.clash.remote.Broadcasts
|
||||
import com.github.kr328.clash.service.util.createLanguageConfigurationContext
|
||||
import com.github.kr328.clash.common.util.createLanguageConfigurationContext
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.MainScope
|
||||
|
||||
@@ -13,7 +13,7 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.BaseAdapter
|
||||
import android.widget.TextView
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
import kotlinx.android.synthetic.main.activity_create_profile.*
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@@ -11,7 +11,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.github.kr328.clash.adapter.LiveLogAdapter
|
||||
import com.github.kr328.clash.adapter.LogAdapter
|
||||
import com.github.kr328.clash.core.event.LogEvent
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
import kotlinx.android.synthetic.main.activity_log_viewer.*
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
|
||||
@@ -16,15 +16,15 @@ import androidx.collection.CircularArray
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.app.NotificationManagerCompat
|
||||
import com.github.kr328.clash.core.event.LogEvent
|
||||
import com.github.kr328.clash.core.utils.Log
|
||||
import com.github.kr328.clash.common.utils.Log
|
||||
import com.github.kr328.clash.model.LogFile
|
||||
import com.github.kr328.clash.preference.UiSettings
|
||||
import com.github.kr328.clash.service.ClashManagerService
|
||||
import com.github.kr328.clash.service.IClashManager
|
||||
import com.github.kr328.clash.service.ipc.IStreamCallback
|
||||
import com.github.kr328.clash.service.ipc.ParcelableContainer
|
||||
import com.github.kr328.clash.service.util.createLanguageConfigurationContext
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.common.util.createLanguageConfigurationContext
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
import com.github.kr328.clash.utils.format
|
||||
import com.github.kr328.clash.utils.logsDir
|
||||
import kotlinx.coroutines.*
|
||||
|
||||
@@ -14,8 +14,8 @@ import com.github.kr328.clash.adapter.LogFileAdapter
|
||||
import com.github.kr328.clash.design.common.Category
|
||||
import com.github.kr328.clash.design.view.CommonUiLayout
|
||||
import com.github.kr328.clash.model.LogFile
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.service.util.startForegroundServiceCompat
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
import com.github.kr328.clash.common.util.startForegroundServiceCompat
|
||||
import com.github.kr328.clash.utils.format
|
||||
import com.github.kr328.clash.utils.logsDir
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
|
||||
@@ -9,10 +9,10 @@ import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.github.kr328.clash.core.model.General
|
||||
import com.github.kr328.clash.core.utils.asBytesString
|
||||
import com.github.kr328.clash.common.utils.asBytesString
|
||||
import com.github.kr328.clash.remote.withClash
|
||||
import com.github.kr328.clash.remote.withProfile
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
import com.github.kr328.clash.utils.startClashService
|
||||
import com.github.kr328.clash.utils.stopClashService
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
|
||||
@@ -5,8 +5,9 @@ import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.github.kr328.clash.common.ids.Intents
|
||||
import com.github.kr328.clash.service.ProfileBackgroundService
|
||||
import com.github.kr328.clash.service.util.componentName
|
||||
import com.github.kr328.clash.service.util.startForegroundServiceCompat
|
||||
import com.github.kr328.clash.common.util.componentName
|
||||
import com.github.kr328.clash.common.util.startForegroundServiceCompat
|
||||
import com.github.kr328.clash.service.Constants
|
||||
import com.github.kr328.clash.utils.startClashService
|
||||
|
||||
class OnBootReceiver : BroadcastReceiver() {
|
||||
@@ -14,10 +15,7 @@ class OnBootReceiver : BroadcastReceiver() {
|
||||
if (intent?.action != Intent.ACTION_BOOT_COMPLETED || context == null)
|
||||
return
|
||||
|
||||
context.startClashService()
|
||||
context.startForegroundServiceCompat(
|
||||
Intent(Intents.INTENT_ACTION_PROFILE_SETUP)
|
||||
.setComponent(ProfileBackgroundService::class.componentName)
|
||||
)
|
||||
if (context.cacheDir.resolve(Constants.CLASH_SERVICE_RUNNING_FILE).exists())
|
||||
context.startClashService()
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ import android.text.Html
|
||||
import android.view.View
|
||||
import android.webkit.MimeTypeMap
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.github.kr328.clash.core.utils.Log
|
||||
import com.github.kr328.clash.common.utils.Log
|
||||
import com.github.kr328.clash.design.common.TextInput
|
||||
import com.github.kr328.clash.remote.withProfile
|
||||
import com.github.kr328.clash.service.data.ProfileEntity
|
||||
|
||||
@@ -10,9 +10,9 @@ import com.github.kr328.clash.common.ids.Intents
|
||||
import com.github.kr328.clash.service.ProfileBackgroundService
|
||||
import com.github.kr328.clash.service.data.ProfileEntity
|
||||
import com.github.kr328.clash.service.transact.ProfileRequest
|
||||
import com.github.kr328.clash.service.util.componentName
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.service.util.startForegroundServiceCompat
|
||||
import com.github.kr328.clash.common.util.componentName
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
import com.github.kr328.clash.common.util.startForegroundServiceCompat
|
||||
import com.github.kr328.clash.weight.ProfilesMenu
|
||||
import kotlinx.android.synthetic.main.activity_profiles.*
|
||||
import kotlinx.coroutines.Job
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.github.kr328.clash
|
||||
|
||||
import android.os.Bundle
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
import kotlinx.android.synthetic.main.activity_settings.*
|
||||
|
||||
class SettingsActivity : BaseActivity() {
|
||||
|
||||
@@ -18,7 +18,7 @@ import com.github.kr328.clash.service.ClashManagerService
|
||||
import com.github.kr328.clash.service.IClashManager
|
||||
import com.github.kr328.clash.service.IProfileService
|
||||
import com.github.kr328.clash.service.ProfileService
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
import com.microsoft.appcenter.crashes.Crashes
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
|
||||
@@ -6,7 +6,7 @@ import android.net.Uri
|
||||
import com.github.kr328.clash.ApkBrokenActivity
|
||||
import com.github.kr328.clash.service.Constants
|
||||
import com.github.kr328.clash.service.ServiceStatusProvider
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
|
||||
object RemoteUtils {
|
||||
fun detectClashRunning(context: Context): Boolean {
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.github.kr328.clash.OnBootReceiver
|
||||
import com.github.kr328.clash.R
|
||||
import com.github.kr328.clash.remote.Broadcasts
|
||||
import com.github.kr328.clash.service.settings.ServiceSettings
|
||||
import com.github.kr328.clash.service.util.componentName
|
||||
import com.github.kr328.clash.common.util.componentName
|
||||
|
||||
class BehaviorFragment : BaseSettingFragment() {
|
||||
companion object {
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.github.kr328.clash.R
|
||||
import com.github.kr328.clash.preference.UiSettings
|
||||
import com.github.kr328.clash.remote.Broadcasts
|
||||
import com.github.kr328.clash.service.settings.ServiceSettings
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
|
||||
class NetworkFragment : BaseSettingFragment() {
|
||||
companion object {
|
||||
|
||||
@@ -7,9 +7,9 @@ import com.github.kr328.clash.preference.UiSettings
|
||||
import com.github.kr328.clash.service.ClashService
|
||||
import com.github.kr328.clash.common.ids.Intents
|
||||
import com.github.kr328.clash.service.TunService
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
import com.github.kr328.clash.service.util.sendBroadcastSelf
|
||||
import com.github.kr328.clash.service.util.startForegroundServiceCompat
|
||||
import com.github.kr328.clash.common.util.startForegroundServiceCompat
|
||||
|
||||
fun Context.startClashService(): Intent? {
|
||||
val startTun = UiSettings(this).get(UiSettings.ENABLE_VPN)
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.github.kr328.clash.core
|
||||
package com.github.kr328.clash.common
|
||||
|
||||
object Constants {
|
||||
const val TAG = "ClashForAndroid"
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.github.kr328.clash.core.serialization
|
||||
package com.github.kr328.clash.common.serialization
|
||||
|
||||
import android.os.Parcel
|
||||
import kotlinx.serialization.*
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.github.kr328.clash.core.serialization
|
||||
package com.github.kr328.clash.common.serialization
|
||||
|
||||
import android.os.Parcel
|
||||
import kotlinx.serialization.*
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.github.kr328.clash.service.util
|
||||
package com.github.kr328.clash.common.util
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.Intent
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.github.kr328.clash.service.util
|
||||
package com.github.kr328.clash.common.util
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.github.kr328.clash.service.util
|
||||
package com.github.kr328.clash.common.util
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.github.kr328.clash.core.utils
|
||||
package com.github.kr328.clash.common.utils
|
||||
|
||||
object ByteFormatter {
|
||||
fun byteToString(bytes: Long): String {
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.github.kr328.clash.core.utils
|
||||
package com.github.kr328.clash.common.utils
|
||||
|
||||
import com.github.kr328.clash.core.Constants.TAG
|
||||
import com.github.kr328.clash.common.Constants.TAG
|
||||
|
||||
object Log {
|
||||
fun i(message: String, throwable: Throwable? = null) =
|
||||
@@ -2,7 +2,7 @@ package com.github.kr328.clash.core.event
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
import com.github.kr328.clash.core.serialization.Parcels
|
||||
import com.github.kr328.clash.common.serialization.Parcels
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.github.kr328.clash.core.model
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
import com.github.kr328.clash.core.serialization.Parcels
|
||||
import com.github.kr328.clash.common.serialization.Parcels
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.github.kr328.clash.core.model
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
import com.github.kr328.clash.core.serialization.MergedParcels
|
||||
import com.github.kr328.clash.common.serialization.MergedParcels
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
|
||||
@@ -67,6 +67,11 @@
|
||||
android:name=".ProfileReceiver"
|
||||
android:exported="false"
|
||||
android:process=":background"
|
||||
android:permission="${applicationId}.permission.RECEIVE_BROADCASTS" />
|
||||
android:permission="${applicationId}.permission.RECEIVE_BROADCASTS">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
</application>
|
||||
</manifest>
|
||||
@@ -4,7 +4,7 @@ import android.app.Service
|
||||
import android.content.Context
|
||||
import com.github.kr328.clash.core.Clash
|
||||
import com.github.kr328.clash.service.settings.ServiceSettings
|
||||
import com.github.kr328.clash.service.util.createLanguageConfigurationContext
|
||||
import com.github.kr328.clash.common.util.createLanguageConfigurationContext
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.MainScope
|
||||
import kotlinx.coroutines.cancel
|
||||
|
||||
@@ -6,8 +6,8 @@ import android.os.Build
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.app.NotificationManagerCompat
|
||||
import com.github.kr328.clash.core.Clash
|
||||
import com.github.kr328.clash.core.utils.asBytesString
|
||||
import com.github.kr328.clash.core.utils.asSpeedString
|
||||
import com.github.kr328.clash.common.utils.asBytesString
|
||||
import com.github.kr328.clash.common.utils.asSpeedString
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
|
||||
@@ -8,4 +8,6 @@ object Constants {
|
||||
const val PROFILE_PROVIDER_SUFFIX = ".profiles"
|
||||
const val STATUS_PROVIDER_SUFFIX = ".status"
|
||||
const val SETTING_PROVIDER_SUFFIX = ".settings"
|
||||
|
||||
const val CLASH_SERVICE_RUNNING_FILE = "clash_running"
|
||||
}
|
||||
@@ -10,9 +10,9 @@ import com.github.kr328.clash.common.ids.Intents
|
||||
import com.github.kr328.clash.common.ids.PendingIds
|
||||
import com.github.kr328.clash.service.data.ProfileDao
|
||||
import com.github.kr328.clash.service.model.toProfileMetadata
|
||||
import com.github.kr328.clash.service.util.componentName
|
||||
import com.github.kr328.clash.service.util.intent
|
||||
import com.github.kr328.clash.service.util.startForegroundServiceCompat
|
||||
import com.github.kr328.clash.common.util.componentName
|
||||
import com.github.kr328.clash.common.util.intent
|
||||
import com.github.kr328.clash.common.util.startForegroundServiceCompat
|
||||
|
||||
class ProfileReceiver : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
@@ -25,14 +25,7 @@ class ProfileReceiver : BroadcastReceiver() {
|
||||
context.startForegroundServiceCompat(intent)
|
||||
}
|
||||
Intent.ACTION_BOOT_COMPLETED, Intent.ACTION_MY_PACKAGE_REPLACED -> {
|
||||
if (initialized)
|
||||
return
|
||||
initialized = true
|
||||
|
||||
context.startForegroundServiceCompat(
|
||||
ProfileBackgroundService::class.intent
|
||||
.setAction(Intents.INTENT_ACTION_PROFILE_SETUP)
|
||||
)
|
||||
tryInitialize(context)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -41,6 +34,18 @@ class ProfileReceiver : BroadcastReceiver() {
|
||||
private val requested = mutableMapOf<Long, PendingIntent>()
|
||||
private var initialized = false
|
||||
|
||||
@Synchronized
|
||||
fun tryInitialize(context: Context) {
|
||||
if ( initialized )
|
||||
return
|
||||
initialized = true
|
||||
|
||||
context.startForegroundServiceCompat(
|
||||
ProfileBackgroundService::class.intent
|
||||
.setAction(Intents.INTENT_ACTION_PROFILE_SETUP)
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun requestNextUpdate(context: Context, id: Long) {
|
||||
val metadata = ProfileDao.queryById(id)?.toProfileMetadata(context) ?: return
|
||||
val service = context.getSystemService<AlarmManager>() ?: return
|
||||
|
||||
@@ -5,12 +5,23 @@ import android.content.ContentValues
|
||||
import android.database.Cursor
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import com.github.kr328.clash.common.Global
|
||||
|
||||
class ServiceStatusProvider : ContentProvider() {
|
||||
companion object {
|
||||
const val METHOD_PING_CLASH_SERVICE = "pingClashService"
|
||||
|
||||
var serviceRunning: Boolean = false
|
||||
set(value) {
|
||||
field = value
|
||||
|
||||
Global.application.cacheDir.resolve(Constants.CLASH_SERVICE_RUNNING_FILE).apply {
|
||||
if (value)
|
||||
createNewFile()
|
||||
else
|
||||
delete()
|
||||
}
|
||||
}
|
||||
var currentProfile: String? = null
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -9,8 +9,8 @@ import com.github.kr328.clash.common.ids.Intents
|
||||
import com.github.kr328.clash.common.ids.NotificationChannels
|
||||
import com.github.kr328.clash.common.ids.NotificationIds
|
||||
import com.github.kr328.clash.core.Clash
|
||||
import com.github.kr328.clash.core.utils.asBytesString
|
||||
import com.github.kr328.clash.core.utils.asSpeedString
|
||||
import com.github.kr328.clash.common.utils.asBytesString
|
||||
import com.github.kr328.clash.common.utils.asSpeedString
|
||||
import com.github.kr328.clash.service.R
|
||||
import com.github.kr328.clash.service.ServiceStatusProvider
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
||||
@@ -8,7 +8,7 @@ import androidx.core.database.getStringOrNull
|
||||
import androidx.room.migration.Migration
|
||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||
import com.github.kr328.clash.common.Global
|
||||
import com.github.kr328.clash.core.utils.Log
|
||||
import com.github.kr328.clash.common.utils.Log
|
||||
import com.github.kr328.clash.service.Constants
|
||||
import com.github.kr328.clash.service.settings.ServiceSettings
|
||||
import com.github.kr328.clash.service.util.resolveBaseDir
|
||||
|
||||
Reference in new issue
Block a user