mirror of
https://github.com/home-assistant/android
synced 2024-09-28 20:35:41 +00:00
Bump org.jlleitschuh.gradle.ktlint from 11.6.1 to 12.1.0 (#4125)
* Bump org.jlleitschuh.gradle.ktlint from 11.6.1 to 12.1.0 Bumps org.jlleitschuh.gradle.ktlint from 11.6.1 to 12.1.0. --- updated-dependencies: - dependency-name: org.jlleitschuh.gradle.ktlint dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Add .editorconfig * ktlintFormat * Fix comment in a 'value_argument_list' is only allowed when placed on a separate line * Restore AssistShortcutView * Fix comment in a 'value_argument_list' is only allowed when placed on a separate line * Fix no comment expected at this location * Fix property name should start with a lowercase letter and use camel case * Fix parameter comments * Fix comment in a 'value_argument_list' is only allowed when placed on a separate line, again * Fix property name should use the screaming snake case notation when the value can not be changed * Fix final comment in argument list --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Joris Pelgröm <joris.pelgrom@gmail.com>
This commit is contained in:
parent
075bc50a07
commit
15b1518a44
15
.editorconfig
Normal file
15
.editorconfig
Normal file
|
@ -0,0 +1,15 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
|
||||
[*.{kt,kts}]
|
||||
ktlint_code_style = android_studio
|
||||
# Disable wildcard imports
|
||||
ij_kotlin_name_count_to_use_star_import = 9999
|
||||
ij_kotlin_name_count_to_use_star_import_for_members = 9999
|
||||
# ktlint overrides
|
||||
ktlint_function_naming_ignore_when_annotated_with=Composable
|
||||
max_line_length = off
|
|
@ -4,8 +4,6 @@ import android.content.Context
|
|||
import android.util.Log
|
||||
import io.sentry.SentryOptions
|
||||
import io.sentry.android.core.SentryAndroid
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
import java.io.PrintWriter
|
||||
import java.net.ConnectException
|
||||
|
@ -18,6 +16,8 @@ import javax.net.ssl.SSLException
|
|||
import javax.net.ssl.SSLHandshakeException
|
||||
import javax.net.ssl.SSLPeerUnverifiedException
|
||||
import javax.net.ssl.SSLProtocolException
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
private const val FATAL_CRASH_FILE = "/fatalcrash/last_crash"
|
||||
|
||||
|
|
|
@ -8,8 +8,8 @@ import io.homeassistant.companion.android.BuildConfig
|
|||
import io.homeassistant.companion.android.common.data.integration.DeviceRegistration
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.onboarding.getMessagingToken
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@ActivityScoped
|
||||
class LaunchPresenterImpl @Inject constructor(
|
||||
|
|
|
@ -19,12 +19,12 @@ import com.google.android.gms.location.FusedLocationProviderClient
|
|||
import com.google.android.gms.location.LocationRequest
|
||||
import com.google.android.gms.location.LocationServices
|
||||
import com.google.android.gms.location.Priority
|
||||
import io.homeassistant.companion.android.common.util.highAccuracyChannel
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.util.CHANNEL_HIGH_ACCURACY
|
||||
import io.homeassistant.companion.android.sensors.LocationSensorManager
|
||||
import io.homeassistant.companion.android.util.ForegroundServiceLauncher
|
||||
import kotlin.math.abs
|
||||
import kotlin.math.roundToInt
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class HighAccuracyLocationService : Service() {
|
||||
|
||||
|
@ -112,7 +112,7 @@ class HighAccuracyLocationService : Service() {
|
|||
|
||||
private fun createNotificationBuilder(context: Context) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
val channel = NotificationChannel(highAccuracyChannel, context.getString(commonR.string.high_accuracy_mode_channel_name), NotificationManager.IMPORTANCE_DEFAULT)
|
||||
val channel = NotificationChannel(CHANNEL_HIGH_ACCURACY, context.getString(commonR.string.high_accuracy_mode_channel_name), NotificationManager.IMPORTANCE_DEFAULT)
|
||||
notificationManagerCompat.createNotificationChannel(channel)
|
||||
}
|
||||
|
||||
|
@ -123,7 +123,7 @@ class HighAccuracyLocationService : Service() {
|
|||
|
||||
val disablePendingIntent = PendingIntent.getBroadcast(context, 0, disableIntent, PendingIntent.FLAG_MUTABLE)
|
||||
|
||||
notificationBuilder = NotificationCompat.Builder(context, highAccuracyChannel)
|
||||
notificationBuilder = NotificationCompat.Builder(context, CHANNEL_HIGH_ACCURACY)
|
||||
.setSmallIcon(commonR.drawable.ic_stat_ic_notification)
|
||||
.setColor(Color.GRAY)
|
||||
.setOngoing(true)
|
||||
|
|
|
@ -20,8 +20,8 @@ import io.homeassistant.companion.android.database.server.Server
|
|||
import io.homeassistant.companion.android.matter.views.MatterCommissioningView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.webview.WebViewActivity
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MatterCommissioningActivity : AppCompatActivity() {
|
||||
|
|
|
@ -10,12 +10,12 @@ import com.google.android.gms.home.matter.commissioning.CommissioningService
|
|||
import com.google.android.gms.home.matter.commissioning.CommissioningService.CommissioningError
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MatterCommissioningService : Service(), CommissioningService.Callback {
|
||||
|
|
|
@ -11,8 +11,8 @@ import androidx.lifecycle.viewModelScope
|
|||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.thread.ThreadManager
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@HiltViewModel
|
||||
class MatterCommissioningViewModel @Inject constructor(
|
||||
|
|
|
@ -33,6 +33,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.database.server.Server
|
||||
import io.homeassistant.companion.android.database.server.ServerConnectionInfo
|
||||
import io.homeassistant.companion.android.database.server.ServerSessionInfo
|
||||
|
@ -40,7 +41,6 @@ import io.homeassistant.companion.android.database.server.ServerUserInfo
|
|||
import io.homeassistant.companion.android.matter.MatterCommissioningViewModel.CommissioningFlowStep
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import kotlin.math.min
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun MatterCommissioningView(
|
||||
|
|
|
@ -6,11 +6,11 @@ import com.google.firebase.messaging.RemoteMessage
|
|||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.data.integration.DeviceRegistration
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class FirebaseCloudMessagingService : FirebaseMessagingService() {
|
||||
|
|
|
@ -9,8 +9,8 @@ import com.google.android.gms.wearable.Wearable
|
|||
import com.google.android.gms.wearable.WearableListenerService
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.runBlocking
|
||||
|
||||
@AndroidEntryPoint
|
||||
@SuppressLint("VisibleForTests") // https://issuetracker.google.com/issues/239451111
|
||||
|
|
|
@ -15,11 +15,11 @@ import com.google.android.gms.location.SleepClassifyEvent
|
|||
import com.google.android.gms.location.SleepSegmentEvent
|
||||
import com.google.android.gms.location.SleepSegmentRequest
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.sensors.SensorReceiverBase
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import java.util.concurrent.TimeUnit
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class ActivitySensorManager : BroadcastReceiver(), SensorManager {
|
||||
|
@ -234,11 +234,11 @@ class ActivitySensorManager : BroadcastReceiver(), SensorManager {
|
|||
}
|
||||
}
|
||||
if ((
|
||||
isEnabled(context, sleepConfidence) || isEnabled(
|
||||
isEnabled(context, sleepConfidence) || isEnabled(
|
||||
context,
|
||||
sleepSegment
|
||||
)
|
||||
) && !sleepRegistration
|
||||
) && !sleepRegistration
|
||||
) {
|
||||
val pendingIntent = getSleepPendingIntent(context)
|
||||
Log.d(TAG, "Registering for sleep updates")
|
||||
|
|
|
@ -5,12 +5,12 @@ import android.os.Build
|
|||
import android.util.Log
|
||||
import androidx.car.app.connection.CarConnection
|
||||
import androidx.lifecycle.Observer
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class AndroidAutoSensorManager : SensorManager, Observer<Int> {
|
||||
|
||||
|
|
|
@ -8,19 +8,19 @@ import android.os.Build
|
|||
import android.os.Build.VERSION.SDK_INT
|
||||
import android.util.Log
|
||||
import com.google.android.gms.location.LocationServices
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.database.AppDatabase
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSetting
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
||||
import io.homeassistant.companion.android.location.HighAccuracyLocationService
|
||||
import kotlinx.coroutines.MainScope
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.tasks.await
|
||||
import kotlin.coroutines.resume
|
||||
import kotlin.coroutines.resumeWithException
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import kotlinx.coroutines.MainScope
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.tasks.await
|
||||
|
||||
class GeocodeSensorManager : SensorManager {
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ import dagger.hilt.InstallIn
|
|||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dagger.hilt.android.EntryPointAccessors
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.bluetooth.BluetoothUtils
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.UpdateLocation
|
||||
|
@ -47,15 +48,14 @@ import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
|||
import io.homeassistant.companion.android.database.sensor.toSensorWithAttributes
|
||||
import io.homeassistant.companion.android.location.HighAccuracyLocationService
|
||||
import io.homeassistant.companion.android.notifications.MessagingManager
|
||||
import java.util.concurrent.TimeUnit
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.awaitAll
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import java.util.concurrent.TimeUnit
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class LocationSensorManager : BroadcastReceiver(), SensorManager {
|
||||
|
@ -1125,7 +1125,9 @@ class LocationSensorManager : BroadcastReceiver(), SensorManager {
|
|||
?.newWakeLock(
|
||||
PowerManager.PARTIAL_WAKE_LOCK,
|
||||
"HomeAssistant::AccurateLocation"
|
||||
)?.apply { acquire(10 * 60 * 1000L /*10 minutes*/) }
|
||||
)?.apply {
|
||||
acquire(10 * 60 * 1000L) // 10 minutes
|
||||
}
|
||||
var numberCalls = 0
|
||||
override fun onLocationResult(locationResult: LocationResult) {
|
||||
numberCalls++
|
||||
|
|
|
@ -19,6 +19,7 @@ import com.google.android.gms.wearable.CapabilityInfo
|
|||
import com.google.android.gms.wearable.Node
|
||||
import com.google.android.gms.wearable.NodeClient
|
||||
import com.google.android.gms.wearable.Wearable
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.databinding.ActivitySettingsWearBinding
|
||||
import io.homeassistant.companion.android.settings.HelpMenuProvider
|
||||
import io.homeassistant.companion.android.settings.wear.views.SettingsWearMainView
|
||||
|
@ -28,7 +29,6 @@ import kotlinx.coroutines.guava.await
|
|||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.tasks.await
|
||||
import kotlinx.coroutines.withContext
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class SettingsWearActivity : AppCompatActivity(), CapabilityClient.OnCapabilityChangedListener {
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ import com.google.android.gms.wearable.PutDataMapRequest
|
|||
import com.google.android.gms.wearable.Wearable
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import io.homeassistant.companion.android.HomeAssistantApplication
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.prefs.impl.entities.TemplateTileConfig
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
|
@ -30,6 +31,8 @@ import io.homeassistant.companion.android.database.server.ServerConnectionInfo
|
|||
import io.homeassistant.companion.android.database.server.ServerSessionInfo
|
||||
import io.homeassistant.companion.android.database.server.ServerType
|
||||
import io.homeassistant.companion.android.database.server.ServerUserInfo
|
||||
import java.util.UUID
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
|
@ -40,9 +43,6 @@ import kotlinx.coroutines.flow.asStateFlow
|
|||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.tasks.await
|
||||
import org.burnoutcrew.reorderable.ItemPosition
|
||||
import java.util.UUID
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@HiltViewModel
|
||||
@SuppressLint("VisibleForTests") // https://issuetracker.google.com/issues/239451111
|
||||
|
|
|
@ -17,6 +17,7 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.friendlyName
|
||||
import io.homeassistant.companion.android.settings.wear.SettingsWearViewModel
|
||||
|
@ -30,7 +31,6 @@ import kotlinx.coroutines.withContext
|
|||
import org.burnoutcrew.reorderable.ReorderableItem
|
||||
import org.burnoutcrew.reorderable.rememberReorderableLazyListState
|
||||
import org.burnoutcrew.reorderable.reorderable
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun LoadWearFavoritesSettings(
|
||||
|
|
|
@ -18,9 +18,9 @@ import androidx.navigation.compose.rememberNavController
|
|||
import androidx.navigation.navArgument
|
||||
import com.mikepenz.iconics.compose.Image
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.settings.wear.SettingsWearViewModel
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
const val WEAR_DOCS_LINK = "https://companion.home-assistant.io/docs/wear-os/"
|
||||
|
||||
|
|
|
@ -20,13 +20,13 @@ import androidx.compose.ui.text.font.FontWeight
|
|||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.settings.views.SettingsRow
|
||||
import io.homeassistant.companion.android.util.wearDeviceName
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.emptyFlow
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun SettingWearLandingView(
|
||||
|
|
|
@ -71,11 +71,12 @@ class SettingsWearMainView : AppCompatActivity() {
|
|||
url = registerUrl,
|
||||
defaultDeviceName = currentNodes.firstOrNull()?.displayName ?: "unknown",
|
||||
locationTrackingPossible = false,
|
||||
// While notifications are technically possible, the app can't handle this for the Wear device
|
||||
notificationsPossible = false,
|
||||
isWatch = true,
|
||||
discoveryOptions = OnboardApp.DiscoveryOptions.ADD_EXISTING_EXTERNAL,
|
||||
mayRequireTlsClientCertificate = (application as HomeAssistantApplication).keyChainRepository.getPrivateKey() != null
|
||||
) // While notifications are technically possible, the app can't handle this for the Wear device
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -43,8 +43,8 @@ import androidx.core.text.HtmlCompat.FROM_HTML_MODE_LEGACY
|
|||
import androidx.core.text.HtmlCompat.fromHtml
|
||||
import com.mikepenz.iconics.compose.Image
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.util.intervalToString
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.util.intervalToString
|
||||
|
||||
@Composable
|
||||
fun SettingsWearTemplateTile(
|
||||
|
|
|
@ -17,9 +17,9 @@ import androidx.compose.ui.text.font.FontWeight
|
|||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.prefs.impl.entities.TemplateTileConfig
|
||||
import io.homeassistant.companion.android.settings.views.SettingsRow
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun SettingsWearTemplateTileList(
|
||||
|
|
|
@ -16,12 +16,12 @@ import com.google.android.gms.threadnetwork.ThreadNetworkStatusCodes
|
|||
import io.homeassistant.companion.android.common.data.HomeAssistantVersion
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.ThreadDatasetResponse
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.async
|
||||
import javax.inject.Inject
|
||||
import kotlin.coroutines.resume
|
||||
import kotlin.coroutines.resumeWithException
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.async
|
||||
|
||||
class ThreadManagerImpl @Inject constructor(
|
||||
private val serverManager: ServerManager,
|
||||
|
|
|
@ -26,12 +26,12 @@ import io.homeassistant.companion.android.widgets.button.ButtonWidget
|
|||
import io.homeassistant.companion.android.widgets.entity.EntityWidget
|
||||
import io.homeassistant.companion.android.widgets.mediaplayer.MediaPlayerControlsWidget
|
||||
import io.homeassistant.companion.android.widgets.template.TemplateWidget
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Named
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Named
|
||||
|
||||
@HiltAndroidApp
|
||||
open class HomeAssistantApplication : Application() {
|
||||
|
|
|
@ -11,14 +11,14 @@ import androidx.lifecycle.viewModelScope
|
|||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import io.homeassistant.companion.android.assist.ui.AssistMessage
|
||||
import io.homeassistant.companion.android.assist.ui.AssistUiPipeline
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.assist.AssistViewModelBase
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AssistPipelineResponse
|
||||
import io.homeassistant.companion.android.common.util.AudioRecorder
|
||||
import io.homeassistant.companion.android.common.util.AudioUrlPlayer
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@HiltViewModel
|
||||
class AssistViewModel @Inject constructor(
|
||||
|
|
|
@ -79,9 +79,9 @@ import androidx.compose.ui.unit.sp
|
|||
import com.mikepenz.iconics.compose.Image
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.assist.AssistViewModelBase
|
||||
import kotlinx.coroutines.launch
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@OptIn(ExperimentalMaterialApi::class)
|
||||
@Composable
|
||||
|
|
|
@ -12,17 +12,17 @@ import android.service.controls.templates.ThumbnailTemplate
|
|||
import android.util.Log
|
||||
import androidx.annotation.RequiresApi
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNAVAILABLE
|
||||
import java.net.URL
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.coroutines.withTimeoutOrNull
|
||||
import java.net.URL
|
||||
import java.util.concurrent.TimeUnit
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.S)
|
||||
object CameraControl : HaControl {
|
||||
|
|
|
@ -10,10 +10,10 @@ import android.service.controls.actions.ModeAction
|
|||
import android.service.controls.templates.RangeTemplate
|
||||
import android.service.controls.templates.TemperatureControlTemplate
|
||||
import androidx.annotation.RequiresApi
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.R)
|
||||
object ClimateControl : HaControl {
|
||||
|
|
|
@ -12,12 +12,12 @@ import android.service.controls.templates.RangeTemplate
|
|||
import android.service.controls.templates.ToggleRangeTemplate
|
||||
import android.service.controls.templates.ToggleTemplate
|
||||
import androidx.annotation.RequiresApi
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.integration.getCoverPosition
|
||||
import io.homeassistant.companion.android.common.data.integration.isActive
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.R)
|
||||
object CoverControl : HaControl {
|
||||
|
|
|
@ -7,13 +7,13 @@ import android.service.controls.DeviceTypes
|
|||
import android.service.controls.actions.ControlAction
|
||||
import android.service.controls.templates.StatelessTemplate
|
||||
import androidx.annotation.RequiresApi
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.integration.domain
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import io.homeassistant.companion.android.common.util.capitalize
|
||||
import java.util.Locale
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.R)
|
||||
object DefaultButtonControl : HaControl {
|
||||
|
|
|
@ -8,11 +8,11 @@ import android.service.controls.actions.ControlAction
|
|||
import android.service.controls.actions.FloatAction
|
||||
import android.service.controls.templates.RangeTemplate
|
||||
import androidx.annotation.RequiresApi
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.R)
|
||||
object DefaultSliderControl : HaControl {
|
||||
|
|
|
@ -9,6 +9,7 @@ import android.service.controls.actions.ControlAction
|
|||
import android.service.controls.templates.ControlButton
|
||||
import android.service.controls.templates.ToggleTemplate
|
||||
import androidx.annotation.RequiresApi
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.integration.domain
|
||||
|
@ -16,7 +17,6 @@ import io.homeassistant.companion.android.common.data.integration.isActive
|
|||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import io.homeassistant.companion.android.common.util.capitalize
|
||||
import java.util.Locale
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.R)
|
||||
object DefaultSwitchControl : HaControl {
|
||||
|
|
|
@ -12,13 +12,13 @@ import android.service.controls.templates.RangeTemplate
|
|||
import android.service.controls.templates.ToggleRangeTemplate
|
||||
import android.service.controls.templates.ToggleTemplate
|
||||
import androidx.annotation.RequiresApi
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.integration.getFanSpeed
|
||||
import io.homeassistant.companion.android.common.data.integration.isActive
|
||||
import io.homeassistant.companion.android.common.data.integration.supportsFanSetSpeed
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.R)
|
||||
object FanControl : HaControl {
|
||||
|
|
|
@ -24,13 +24,13 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.core.content.getSystemService
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.prefs.PrefsRepository
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.webview.WebViewActivity
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class HaControlsPanelActivity : AppCompatActivity() {
|
||||
|
|
|
@ -17,6 +17,10 @@ import io.homeassistant.companion.android.common.data.websocket.impl.entities.Ar
|
|||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.DeviceRegistryResponse
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.EntityRegistryResponse
|
||||
import io.homeassistant.companion.android.util.RegistriesDataHandler
|
||||
import java.util.Calendar
|
||||
import java.util.concurrent.Flow
|
||||
import java.util.function.Consumer
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.async
|
||||
|
@ -28,10 +32,6 @@ import okhttp3.ResponseBody
|
|||
import okhttp3.ResponseBody.Companion.toResponseBody
|
||||
import retrofit2.HttpException
|
||||
import retrofit2.Response
|
||||
import java.util.Calendar
|
||||
import java.util.concurrent.Flow
|
||||
import java.util.function.Consumer
|
||||
import javax.inject.Inject
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.R)
|
||||
@AndroidEntryPoint
|
||||
|
|
|
@ -12,13 +12,13 @@ import android.service.controls.templates.RangeTemplate
|
|||
import android.service.controls.templates.ToggleRangeTemplate
|
||||
import android.service.controls.templates.ToggleTemplate
|
||||
import androidx.annotation.RequiresApi
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.integration.getLightBrightness
|
||||
import io.homeassistant.companion.android.common.data.integration.isActive
|
||||
import io.homeassistant.companion.android.common.data.integration.supportsLightBrightness
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.R)
|
||||
object LightControl : HaControl {
|
||||
|
|
|
@ -9,11 +9,11 @@ import android.service.controls.actions.ControlAction
|
|||
import android.service.controls.templates.ControlButton
|
||||
import android.service.controls.templates.ToggleTemplate
|
||||
import androidx.annotation.RequiresApi
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.integration.isActive
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.R)
|
||||
object LockControl : HaControl {
|
||||
|
|
|
@ -9,11 +9,11 @@ import android.service.controls.actions.ControlAction
|
|||
import android.service.controls.templates.ControlButton
|
||||
import android.service.controls.templates.ToggleTemplate
|
||||
import androidx.annotation.RequiresApi
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.integration.isActive
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.R)
|
||||
object VacuumControl : HaControl {
|
||||
|
|
|
@ -15,6 +15,7 @@ import androidx.compose.ui.Alignment
|
|||
import androidx.compose.ui.Modifier
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.BuildConfig
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.DeviceRegistration
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.database.sensor.SensorDao
|
||||
|
@ -32,15 +33,14 @@ import io.homeassistant.companion.android.settings.server.ServerChooserFragment
|
|||
import io.homeassistant.companion.android.util.UrlUtil
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.webview.WebViewActivity
|
||||
import javax.inject.Inject
|
||||
import javax.net.ssl.SSLException
|
||||
import javax.net.ssl.SSLHandshakeException
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
import retrofit2.HttpException
|
||||
import javax.inject.Inject
|
||||
import javax.net.ssl.SSLException
|
||||
import javax.net.ssl.SSLHandshakeException
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class LaunchActivity : AppCompatActivity(), LaunchView {
|
||||
|
|
|
@ -13,11 +13,11 @@ import androidx.activity.viewModels
|
|||
import androidx.lifecycle.lifecycleScope
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.BaseActivity
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.nfc.views.LoadNfcView
|
||||
import io.homeassistant.companion.android.util.UrlUtil
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import kotlinx.coroutines.launch
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class NfcSetupActivity : BaseActivity() {
|
||||
|
|
|
@ -9,16 +9,16 @@ import androidx.compose.runtime.setValue
|
|||
import androidx.lifecycle.AndroidViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.util.Navigator
|
||||
import java.util.UUID
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.awaitAll
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
import kotlinx.coroutines.flow.asSharedFlow
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.UUID
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@HiltViewModel
|
||||
class NfcViewModel @Inject constructor(
|
||||
|
|
|
@ -10,15 +10,15 @@ import androidx.activity.compose.setContent
|
|||
import androidx.lifecycle.lifecycleScope
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.BaseActivity
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.nfc.views.TagReaderView
|
||||
import io.homeassistant.companion.android.util.UrlUtil
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.awaitAll
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class TagReaderActivity : BaseActivity() {
|
||||
|
|
|
@ -23,11 +23,11 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.nfc.NfcSetupActivity
|
||||
import io.homeassistant.companion.android.nfc.NfcViewModel
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun LoadNfcView(
|
||||
|
|
|
@ -27,8 +27,8 @@ import androidx.compose.ui.text.style.TextAlign
|
|||
import androidx.compose.ui.unit.dp
|
||||
import com.mikepenz.iconics.compose.Image
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.util.compose.MdcAlertDialog
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.util.compose.MdcAlertDialog
|
||||
|
||||
@Composable
|
||||
fun NfcWriteView(
|
||||
|
|
|
@ -45,6 +45,7 @@ import com.fasterxml.jackson.module.kotlin.readValue
|
|||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.authenticator.Authenticator
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.prefs.PrefsRepository
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.common.notifications.DeviceCommandData
|
||||
|
@ -80,6 +81,11 @@ import io.homeassistant.companion.android.util.UrlUtil
|
|||
import io.homeassistant.companion.android.vehicle.HaCarAppService
|
||||
import io.homeassistant.companion.android.websocket.WebsocketManager
|
||||
import io.homeassistant.companion.android.webview.WebViewActivity
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.net.URL
|
||||
import java.net.URLDecoder
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Deferred
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
@ -92,12 +98,6 @@ import kotlinx.coroutines.withContext
|
|||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import org.json.JSONObject
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.net.URL
|
||||
import java.net.URLDecoder
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class MessagingManager @Inject constructor(
|
||||
@ApplicationContext val context: Context,
|
||||
|
@ -728,13 +728,13 @@ class MessagingManager @Inject constructor(
|
|||
PowerManager.ON_AFTER_RELEASE,
|
||||
"HomeAssistant::NotificationScreenOnWakeLock"
|
||||
)
|
||||
wakeLock?.acquire(1 * 30 * 1000L /*30 seconds */)
|
||||
wakeLock?.acquire(1 * 30 * 1000L) // 30 seconds
|
||||
wakeLock?.release()
|
||||
}
|
||||
COMMAND_MEDIA -> {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
|
||||
if (!NotificationManagerCompat.getEnabledListenerPackages(context)
|
||||
.contains(context.packageName)
|
||||
.contains(context.packageName)
|
||||
) {
|
||||
notifyMissingPermission(message.toString(), serverId)
|
||||
} else {
|
||||
|
|
|
@ -10,16 +10,16 @@ import android.widget.Toast
|
|||
import androidx.core.app.NotificationManagerCompat
|
||||
import androidx.core.app.RemoteInput
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.common.util.cancel
|
||||
import io.homeassistant.companion.android.database.notification.NotificationDao
|
||||
import io.homeassistant.companion.android.notifications.MessagingManager.Companion.KEY_TEXT_REPLY
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class NotificationActionReceiver : BroadcastReceiver() {
|
||||
|
|
|
@ -24,6 +24,7 @@ import androidx.fragment.app.Fragment
|
|||
import androidx.fragment.app.activityViewModels
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.HomeAssistantApis
|
||||
import io.homeassistant.companion.android.common.data.authentication.impl.AuthenticationService
|
||||
import io.homeassistant.companion.android.common.data.keychain.KeyChainRepository
|
||||
|
@ -33,11 +34,10 @@ import io.homeassistant.companion.android.themes.ThemesManager
|
|||
import io.homeassistant.companion.android.util.TLSWebViewClient
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.util.isStarted
|
||||
import okhttp3.HttpUrl
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Named
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import okhttp3.HttpUrl
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
|
||||
@AndroidEntryPoint
|
||||
class AuthenticationFragment : Fragment() {
|
||||
|
|
|
@ -16,8 +16,8 @@ import io.homeassistant.companion.android.onboarding.OnboardingViewModel
|
|||
import io.homeassistant.companion.android.onboarding.authentication.AuthenticationFragment
|
||||
import io.homeassistant.companion.android.onboarding.manual.ManualSetupFragment
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class DiscoveryFragment @Inject constructor() : Fragment() {
|
||||
|
|
|
@ -26,9 +26,9 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.compose.ui.unit.sp
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.onboarding.OnboardingHeaderView
|
||||
import io.homeassistant.companion.android.onboarding.OnboardingViewModel
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun DiscoveryView(
|
||||
|
|
|
@ -7,10 +7,10 @@ import android.util.Log
|
|||
import androidx.lifecycle.DefaultLifecycleObserver
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import io.homeassistant.companion.android.common.data.HomeAssistantVersion
|
||||
import okio.internal.commonToUtf8String
|
||||
import java.net.MalformedURLException
|
||||
import java.net.URL
|
||||
import java.util.concurrent.locks.ReentrantLock
|
||||
import okio.internal.commonToUtf8String
|
||||
|
||||
class HomeAssistantSearcher constructor(
|
||||
private val nsdManager: NsdManager,
|
||||
|
|
|
@ -22,15 +22,15 @@ import androidx.fragment.app.activityViewModels
|
|||
import androidx.lifecycle.lifecycleScope
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.util.DisabledLocationHandler
|
||||
import io.homeassistant.companion.android.onboarding.OnboardingViewModel
|
||||
import io.homeassistant.companion.android.onboarding.notifications.NotificationPermissionFragment
|
||||
import io.homeassistant.companion.android.sensors.LocationSensorManager
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import kotlinx.coroutines.launch
|
||||
import java.io.IOException
|
||||
import java.security.KeyStore
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MobileAppIntegrationFragment : Fragment() {
|
||||
|
|
|
@ -37,9 +37,9 @@ import androidx.compose.ui.text.input.KeyboardType
|
|||
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.onboarding.OnboardingHeaderView
|
||||
import io.homeassistant.companion.android.onboarding.OnboardingViewModel
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
|
|
|
@ -21,9 +21,9 @@ import androidx.compose.ui.text.input.KeyboardType
|
|||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.onboarding.OnboardingHeaderView
|
||||
import io.homeassistant.companion.android.onboarding.OnboardingViewModel
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
|
|
|
@ -14,9 +14,9 @@ import androidx.compose.ui.platform.ComposeView
|
|||
import androidx.core.app.NotificationManagerCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.onboarding.OnboardingViewModel
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class NotificationPermissionFragment : Fragment() {
|
||||
|
||||
|
|
|
@ -23,9 +23,9 @@ import androidx.compose.ui.unit.dp
|
|||
import com.mikepenz.iconics.compose.Image
|
||||
import com.mikepenz.iconics.typeface.IIcon
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.onboarding.OnboardingHeaderView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun NotificationPermissionView(
|
||||
|
|
|
@ -28,8 +28,8 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
|
||||
@Composable
|
||||
fun WelcomeView(
|
||||
|
|
|
@ -21,6 +21,7 @@ import dagger.hilt.InstallIn
|
|||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dagger.hilt.android.EntryPointAccessors
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.EntityExt
|
||||
import io.homeassistant.companion.android.common.data.integration.getIcon
|
||||
|
@ -35,6 +36,7 @@ import io.homeassistant.companion.android.database.qs.numberedId
|
|||
import io.homeassistant.companion.android.settings.SettingsActivity
|
||||
import io.homeassistant.companion.android.settings.qs.updateActiveTileServices
|
||||
import io.homeassistant.companion.android.util.icondialog.getIconByMdiName
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.MainScope
|
||||
|
@ -42,8 +44,6 @@ import kotlinx.coroutines.cancel
|
|||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.N)
|
||||
@AndroidEntryPoint
|
||||
|
|
|
@ -148,7 +148,11 @@ class CarSensorManager :
|
|||
)
|
||||
|
||||
private enum class Listener {
|
||||
ENERGY, MODEL, MILEAGE, STATUS, PROFILE
|
||||
ENERGY,
|
||||
MODEL,
|
||||
MILEAGE,
|
||||
STATUS,
|
||||
PROFILE
|
||||
}
|
||||
|
||||
private val listenerSensors = mapOf(
|
||||
|
|
|
@ -5,8 +5,8 @@ import androidx.core.graphics.blue
|
|||
import androidx.core.graphics.green
|
||||
import androidx.core.graphics.red
|
||||
import com.google.android.material.color.DynamicColors
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
|
||||
class DynamicColorSensorManager : SensorManager {
|
||||
companion object {
|
||||
|
@ -51,7 +51,7 @@ class DynamicColorSensorManager : SensorManager {
|
|||
|
||||
val dynamicColorContext = DynamicColors.wrapContextIfAvailable(context)
|
||||
val attrsToResolve = intArrayOf(
|
||||
android.R.attr.colorAccent // 0
|
||||
android.R.attr.colorAccent
|
||||
)
|
||||
val test = dynamicColorContext.obtainStyledAttributes(attrsToResolve)
|
||||
val accent = test.getColor(0, 0)
|
||||
|
|
|
@ -8,9 +8,9 @@ import android.os.Build
|
|||
import android.util.Log
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class LastAppSensorManager : SensorManager {
|
||||
companion object {
|
||||
|
|
|
@ -16,11 +16,11 @@ import android.service.notification.StatusBarNotification
|
|||
import android.util.Log
|
||||
import androidx.core.app.NotificationManagerCompat
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNAVAILABLE
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class NotificationSensorManager : NotificationListenerService(), SensorManager {
|
||||
companion object {
|
||||
|
|
|
@ -4,8 +4,8 @@ import android.content.Context
|
|||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.os.Build
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
|
||||
class QuestSensorManager : SensorManager {
|
||||
companion object {
|
||||
|
|
|
@ -9,8 +9,8 @@ import io.homeassistant.companion.android.database.settings.Setting
|
|||
import io.homeassistant.companion.android.database.settings.SettingsDao
|
||||
import io.homeassistant.companion.android.database.settings.WebsocketSetting
|
||||
import io.homeassistant.companion.android.websocket.WebsocketManager
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@HiltViewModel
|
||||
class SettingViewModel @Inject constructor(
|
||||
|
|
|
@ -18,15 +18,15 @@ import eightbitlab.com.blurview.RenderScriptBlur
|
|||
import io.homeassistant.companion.android.BaseActivity
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.authenticator.Authenticator
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.settings.notification.NotificationHistoryFragment
|
||||
import io.homeassistant.companion.android.settings.qs.ManageTilesFragment
|
||||
import io.homeassistant.companion.android.settings.sensor.SensorDetailFragment
|
||||
import io.homeassistant.companion.android.settings.server.ServerSettingsFragment
|
||||
import io.homeassistant.companion.android.settings.websocket.WebsocketSettingFragment
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import kotlinx.coroutines.runBlocking
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SettingsActivity : BaseActivity() {
|
||||
|
|
|
@ -30,6 +30,7 @@ import com.google.android.material.snackbar.Snackbar
|
|||
import io.homeassistant.companion.android.BuildConfig
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.authenticator.Authenticator
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.database.server.Server
|
||||
import io.homeassistant.companion.android.nfc.NfcSetupActivity
|
||||
import io.homeassistant.companion.android.onboarding.OnboardApp
|
||||
|
@ -48,15 +49,14 @@ import io.homeassistant.companion.android.settings.wear.SettingsWearActivity
|
|||
import io.homeassistant.companion.android.settings.wear.SettingsWearDetection
|
||||
import io.homeassistant.companion.android.settings.widgets.ManageWidgetsSettingsFragment
|
||||
import io.homeassistant.companion.android.webview.WebViewActivity
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
import java.time.Instant
|
||||
import java.time.ZoneId
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.time.format.FormatStyle
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
|
||||
class SettingsFragment(
|
||||
private val presenter: SettingsPresenter,
|
||||
|
@ -137,7 +137,8 @@ class SettingsFragment(
|
|||
it.setOnPreferenceClickListener {
|
||||
requestOnboardingResult.launch(
|
||||
OnboardApp.Input(
|
||||
url = "", // Empty url skips the 'Welcome' screen
|
||||
// Empty url skips the 'Welcome' screen
|
||||
url = "",
|
||||
discoveryOptions = OnboardApp.DiscoveryOptions.HIDE_EXISTING
|
||||
)
|
||||
)
|
||||
|
|
|
@ -10,6 +10,7 @@ import androidx.core.content.getSystemService
|
|||
import androidx.preference.PreferenceDataStore
|
||||
import io.homeassistant.companion.android.BuildConfig
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.DeviceRegistration
|
||||
import io.homeassistant.companion.android.common.data.integration.impl.entities.RateLimitResponse
|
||||
import io.homeassistant.companion.android.common.data.prefs.PrefsRepository
|
||||
|
@ -31,6 +32,7 @@ import io.homeassistant.companion.android.settings.language.LanguagesManager
|
|||
import io.homeassistant.companion.android.themes.ThemesManager
|
||||
import io.homeassistant.companion.android.util.ChangeLog
|
||||
import io.homeassistant.companion.android.util.UrlUtil
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
|
@ -40,8 +42,6 @@ import kotlinx.coroutines.flow.StateFlow
|
|||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class SettingsPresenterImpl @Inject constructor(
|
||||
private val serverManager: ServerManager,
|
||||
|
|
|
@ -10,13 +10,13 @@ import androidx.compose.ui.platform.ComposeView
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.ControlsAuthRequiredSetting
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.settings.addHelpMenuProvider
|
||||
import io.homeassistant.companion.android.settings.controls.views.ManageControlsView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
@AndroidEntryPoint
|
||||
|
|
|
@ -20,10 +20,10 @@ import io.homeassistant.companion.android.common.data.prefs.PrefsRepository
|
|||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.controls.HaControlsPanelActivity
|
||||
import io.homeassistant.companion.android.controls.HaControlsProviderService
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.awaitAll
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
@HiltViewModel
|
||||
|
@ -54,8 +54,8 @@ class ManageControlsViewModel @Inject constructor(
|
|||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||
panelEnabled =
|
||||
application.packageManager.getComponentEnabledSetting(
|
||||
ComponentName(application, HaControlsPanelActivity::class.java)
|
||||
) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED
|
||||
ComponentName(application, HaControlsPanelActivity::class.java)
|
||||
) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED
|
||||
|
||||
val panelServer = prefsRepository.getControlsPanelServer()
|
||||
val panelPath = prefsRepository.getControlsPanelPath()
|
||||
|
|
|
@ -51,6 +51,7 @@ import androidx.compose.ui.unit.sp
|
|||
import com.mikepenz.iconics.compose.Image
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.ControlsAuthRequiredSetting
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.domain
|
||||
|
@ -59,7 +60,6 @@ import io.homeassistant.companion.android.database.server.Server
|
|||
import io.homeassistant.companion.android.util.compose.HaAlertWarning
|
||||
import io.homeassistant.companion.android.util.compose.ServerExposedDropdownMenu
|
||||
import io.homeassistant.companion.android.util.compose.getEntityDomainString
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun ManageControlsView(
|
||||
|
@ -275,7 +275,8 @@ fun ManageControlsEntity(
|
|||
Checkbox(
|
||||
checked = selected,
|
||||
modifier = Modifier.padding(end = 16.dp),
|
||||
onCheckedChange = null // Handled by parent Row clickable modifier
|
||||
// Handled by parent Row clickable modifier
|
||||
onCheckedChange = null
|
||||
)
|
||||
Column(
|
||||
modifier = Modifier.weight(1f)
|
||||
|
@ -324,14 +325,16 @@ fun ManageControlsModeButton(
|
|||
modifier = Modifier.fillMaxWidth()
|
||||
)
|
||||
Text(
|
||||
text = "${stringResource(if (isPanel) commonR.string.controls_setting_mode_panel_info else commonR.string.controls_setting_mode_builtin_info)}\n", // Newline for spacing
|
||||
// Add newline at the end for spacing
|
||||
text = "${stringResource(if (isPanel) commonR.string.controls_setting_mode_panel_info else commonR.string.controls_setting_mode_builtin_info)}\n",
|
||||
fontSize = 14.sp,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
)
|
||||
RadioButton(
|
||||
selected = selected,
|
||||
onClick = null // Handled by parent
|
||||
// Handled by parent
|
||||
onClick = null
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,12 +11,12 @@ import androidx.preference.PreferenceFragmentCompat
|
|||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.BuildConfig
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.settings.developer.location.LocationTrackingFragment
|
||||
import io.homeassistant.companion.android.settings.log.LogFragment
|
||||
import io.homeassistant.companion.android.settings.server.ServerChooserFragment
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class DeveloperSettingsFragment : DeveloperSettingsView, PreferenceFragmentCompat() {
|
||||
|
|
|
@ -4,9 +4,11 @@ import android.content.Context
|
|||
import android.util.Log
|
||||
import androidx.activity.result.ActivityResult
|
||||
import androidx.preference.PreferenceDataStore
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.prefs.PrefsRepository
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.thread.ThreadManager
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
|
@ -14,8 +16,6 @@ import kotlinx.coroutines.SupervisorJob
|
|||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class DeveloperSettingsPresenterImpl @Inject constructor(
|
||||
private val prefsRepository: PrefsRepository,
|
||||
|
|
|
@ -17,11 +17,11 @@ import androidx.fragment.app.viewModels
|
|||
import androidx.lifecycle.Lifecycle
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.settings.developer.location.views.LocationTrackingView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class LocationTrackingFragment : Fragment() {
|
||||
|
|
|
@ -15,11 +15,11 @@ import io.homeassistant.companion.android.R
|
|||
import io.homeassistant.companion.android.common.data.prefs.PrefsRepository
|
||||
import io.homeassistant.companion.android.database.location.LocationHistoryDao
|
||||
import io.homeassistant.companion.android.database.location.LocationHistoryItemResult
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@HiltViewModel
|
||||
class LocationTrackingViewModel @Inject constructor(
|
||||
|
|
|
@ -53,15 +53,15 @@ import androidx.paging.compose.collectAsLazyPagingItems
|
|||
import androidx.paging.compose.itemKey
|
||||
import com.mikepenz.iconics.compose.Image
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.database.location.LocationHistoryItem
|
||||
import io.homeassistant.companion.android.database.location.LocationHistoryItemResult
|
||||
import io.homeassistant.companion.android.database.location.LocationHistoryItemTrigger
|
||||
import io.homeassistant.companion.android.database.server.Server
|
||||
import io.homeassistant.companion.android.settings.views.EmptyState
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import java.text.DateFormat
|
||||
import java.util.TimeZone
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Composable
|
||||
fun LocationTrackingView(
|
||||
|
@ -91,7 +91,8 @@ fun LocationTrackingView(
|
|||
)
|
||||
Switch(
|
||||
checked = useHistory,
|
||||
onCheckedChange = null, // Handled by row
|
||||
// Handled by row
|
||||
onCheckedChange = null,
|
||||
modifier = Modifier.padding(start = 16.dp),
|
||||
colors = SwitchDefaults.colors(uncheckedThumbColor = colorResource(commonR.color.colorSwitchUncheckedThumb))
|
||||
)
|
||||
|
|
|
@ -5,11 +5,11 @@ import android.os.Build
|
|||
import android.util.Log
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.prefs.PrefsRepository
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.xmlpull.v1.XmlPullParser
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class LanguagesManager @Inject constructor(
|
||||
private var prefs: PrefsRepository
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package io.homeassistant.companion.android.settings.language
|
||||
|
||||
import android.content.Context
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.util.capitalize
|
||||
import java.util.Locale
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class LanguagesProvider @Inject constructor(
|
||||
private var langManager: LanguagesManager
|
||||
|
|
|
@ -29,15 +29,15 @@ import androidx.lifecycle.lifecycleScope
|
|||
import com.google.android.material.tabs.TabLayout
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.prefs.PrefsRepository
|
||||
import io.homeassistant.companion.android.getLatestFatalCrash
|
||||
import io.homeassistant.companion.android.util.LogcatReader
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import java.io.File
|
||||
import java.util.Calendar
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class LogFragment : Fragment() {
|
||||
|
|
|
@ -10,10 +10,10 @@ import androidx.compose.ui.platform.ComposeView
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.settings.addHelpMenuProvider
|
||||
import io.homeassistant.companion.android.settings.notification.views.NotificationChannelView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class NotificationChannelFragment : Fragment() {
|
||||
|
|
|
@ -14,13 +14,13 @@ import androidx.lifecycle.Lifecycle
|
|||
import androidx.lifecycle.lifecycleScope
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.database.notification.NotificationDao
|
||||
import io.homeassistant.companion.android.database.notification.NotificationItem
|
||||
import io.homeassistant.companion.android.settings.notification.views.LoadNotification
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class NotificationDetailFragment : Fragment() {
|
||||
|
|
|
@ -16,13 +16,13 @@ import androidx.preference.PreferenceCategory
|
|||
import androidx.preference.PreferenceFragmentCompat
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.database.notification.NotificationDao
|
||||
import io.homeassistant.companion.android.database.notification.NotificationItem
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.Calendar
|
||||
import java.util.GregorianCalendar
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class NotificationHistoryFragment : PreferenceFragmentCompat() {
|
||||
|
|
|
@ -18,11 +18,11 @@ import androidx.compose.ui.viewinterop.AndroidView
|
|||
import androidx.core.text.HtmlCompat
|
||||
import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.databind.ObjectMapper
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.database.notification.NotificationItem
|
||||
import io.homeassistant.companion.android.util.notificationItem
|
||||
import java.util.Calendar
|
||||
import java.util.GregorianCalendar
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun LoadNotification(notification: NotificationItem) {
|
||||
|
|
|
@ -14,12 +14,12 @@ import androidx.fragment.app.Fragment
|
|||
import androidx.fragment.app.viewModels
|
||||
import com.mikepenz.iconics.typeface.IIcon
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.EntityExt
|
||||
import io.homeassistant.companion.android.settings.addHelpMenuProvider
|
||||
import io.homeassistant.companion.android.settings.qs.views.ManageTilesView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.util.icondialog.IconDialog
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class ManageTilesFragment : Fragment() {
|
||||
|
|
|
@ -18,6 +18,7 @@ import com.mikepenz.iconics.IconicsDrawable
|
|||
import com.mikepenz.iconics.typeface.IIcon
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.domain
|
||||
import io.homeassistant.companion.android.common.data.integration.getIcon
|
||||
|
@ -69,6 +70,8 @@ import io.homeassistant.companion.android.qs.Tile8Service
|
|||
import io.homeassistant.companion.android.qs.Tile9Service
|
||||
import io.homeassistant.companion.android.util.icondialog.getIconByMdiName
|
||||
import io.homeassistant.companion.android.util.icondialog.mdiName
|
||||
import java.util.concurrent.Executors
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.awaitAll
|
||||
|
@ -76,9 +79,6 @@ import kotlinx.coroutines.flow.MutableSharedFlow
|
|||
import kotlinx.coroutines.flow.asSharedFlow
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.util.concurrent.Executors
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@HiltViewModel
|
||||
class ManageTilesViewModel @Inject constructor(
|
||||
|
|
|
@ -4,8 +4,8 @@ import android.content.ComponentName
|
|||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.res.Resources
|
||||
import kotlin.math.min
|
||||
import io.homeassistant.companion.android.R as commonR
|
||||
import kotlin.math.min
|
||||
|
||||
data class TileSlot(
|
||||
val id: String,
|
||||
|
|
|
@ -17,6 +17,7 @@ import androidx.lifecycle.MutableLiveData
|
|||
import androidx.lifecycle.SavedStateHandle
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.bluetooth.BluetoothUtils
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.common.sensors.BluetoothSensorManager
|
||||
|
@ -32,6 +33,7 @@ import io.homeassistant.companion.android.database.settings.SensorUpdateFrequenc
|
|||
import io.homeassistant.companion.android.database.settings.SettingsDao
|
||||
import io.homeassistant.companion.android.sensors.LastAppSensorManager
|
||||
import io.homeassistant.companion.android.sensors.SensorReceiver
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.awaitAll
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
@ -41,8 +43,6 @@ import kotlinx.coroutines.flow.asSharedFlow
|
|||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@HiltViewModel
|
||||
class SensorDetailViewModel @Inject constructor(
|
||||
|
|
|
@ -19,9 +19,9 @@ import androidx.fragment.app.viewModels
|
|||
import androidx.lifecycle.Lifecycle
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.settings.sensor.views.SensorListView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SensorSettingsFragment : Fragment() {
|
||||
|
|
|
@ -13,8 +13,8 @@ import io.homeassistant.companion.android.common.sensors.SensorManager
|
|||
import io.homeassistant.companion.android.database.sensor.Sensor
|
||||
import io.homeassistant.companion.android.database.sensor.SensorDao
|
||||
import io.homeassistant.companion.android.sensors.SensorReceiver
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@HiltViewModel
|
||||
class SensorSettingsViewModel @Inject constructor(
|
||||
|
|
|
@ -9,11 +9,11 @@ import androidx.compose.ui.platform.ComposeView
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.settings.SettingViewModel
|
||||
import io.homeassistant.companion.android.settings.addHelpMenuProvider
|
||||
import io.homeassistant.companion.android.settings.sensor.views.SensorUpdateFrequencyView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SensorUpdateFrequencyFragment : Fragment() {
|
||||
|
|
|
@ -69,6 +69,7 @@ import com.fasterxml.jackson.module.kotlin.readValue
|
|||
import com.mikepenz.iconics.IconicsDrawable
|
||||
import com.mikepenz.iconics.compose.Image
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSetting
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
||||
|
@ -79,7 +80,6 @@ import io.homeassistant.companion.android.util.compose.MdcAlertDialog
|
|||
import io.homeassistant.companion.android.util.compose.TransparentChip
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun SensorDetailView(
|
||||
|
@ -281,7 +281,9 @@ fun SensorDetailTopPanel(
|
|||
}
|
||||
val mdiIcon = try {
|
||||
IconicsDrawable(context, "cmd-${iconToUse.split(":")[1]}").icon
|
||||
} catch (e: Exception) { null }
|
||||
} catch (e: Exception) {
|
||||
null
|
||||
}
|
||||
|
||||
if (mdiIcon != null) {
|
||||
Image(
|
||||
|
@ -536,9 +538,9 @@ fun SensorDetailSettingDialog(
|
|||
}
|
||||
onSubmit(state.copy().apply { setting.value = inputValue.value })
|
||||
}
|
||||
} else {
|
||||
} else { // list is saved when selecting a value
|
||||
null
|
||||
}, // list is saved when selecting a value
|
||||
},
|
||||
contentPadding = if (listSettingDialog) PaddingValues(all = 0.dp) else PaddingValues(horizontal = 24.dp)
|
||||
)
|
||||
}
|
||||
|
|
|
@ -20,12 +20,12 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.mikepenz.iconics.IconicsDrawable
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.sensors.id
|
||||
import io.homeassistant.companion.android.database.sensor.Sensor
|
||||
import io.homeassistant.companion.android.settings.sensor.SensorSettingsViewModel
|
||||
import io.homeassistant.companion.android.settings.views.SettingsRow
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@OptIn(ExperimentalFoundationApi::class)
|
||||
@Composable
|
||||
|
@ -92,7 +92,9 @@ fun SensorRow(
|
|||
}
|
||||
val mdiIcon = try {
|
||||
IconicsDrawable(context, "cmd-${iconToUse.split(":")[1]}").icon
|
||||
} catch (e: Exception) { null }
|
||||
} catch (e: Exception) {
|
||||
null
|
||||
}
|
||||
|
||||
SettingsRow(
|
||||
primaryText = stringResource(basicSensor.name),
|
||||
|
|
|
@ -13,7 +13,7 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.homeassistant.companion.android.common.R
|
||||
import io.homeassistant.companion.android.common.util.sensorWorkerChannel
|
||||
import io.homeassistant.companion.android.common.util.CHANNEL_SENSOR_WORKER
|
||||
import io.homeassistant.companion.android.database.settings.SensorUpdateFrequencySetting
|
||||
import io.homeassistant.companion.android.util.compose.InfoNotification
|
||||
import io.homeassistant.companion.android.util.compose.RadioButtonRow
|
||||
|
@ -50,7 +50,7 @@ fun SensorUpdateFrequencyView(
|
|||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
InfoNotification(
|
||||
infoString = R.string.sensor_update_notification,
|
||||
channelId = sensorWorkerChannel,
|
||||
channelId = CHANNEL_SENSOR_WORKER,
|
||||
buttonString = R.string.sensor_worker_notification_channel
|
||||
)
|
||||
}
|
||||
|
|
|
@ -14,9 +14,9 @@ import androidx.compose.ui.Alignment
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.database.server.Server
|
||||
import io.homeassistant.companion.android.util.compose.ModalBottomSheet
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@Composable
|
||||
fun ServerChooserView(
|
||||
|
|
|
@ -25,6 +25,7 @@ import androidx.preference.SwitchPreference
|
|||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.R
|
||||
import io.homeassistant.companion.android.authenticator.Authenticator
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.util.DisabledLocationHandler
|
||||
import io.homeassistant.companion.android.common.util.LocationPermissionInfoHandler
|
||||
import io.homeassistant.companion.android.launch.LaunchActivity
|
||||
|
@ -33,10 +34,9 @@ import io.homeassistant.companion.android.settings.ssid.SsidFragment
|
|||
import io.homeassistant.companion.android.settings.url.ExternalUrlFragment
|
||||
import io.homeassistant.companion.android.settings.websocket.WebsocketSettingFragment
|
||||
import io.homeassistant.companion.android.webview.WebViewActivity
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.launch
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
||||
import javax.inject.Inject
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class ServerSettingsFragment : ServerSettingsView, PreferenceFragmentCompat() {
|
||||
|
|
|
@ -4,13 +4,13 @@ import android.util.Log
|
|||
import androidx.preference.PreferenceDataStore
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.common.data.wifi.WifiHelper
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import javax.inject.Inject
|
||||
|
||||
class ServerSettingsPresenterImpl @Inject constructor(
|
||||
private val serverManager: ServerManager,
|
||||
|
|
|
@ -16,11 +16,11 @@ import androidx.fragment.app.Fragment
|
|||
import androidx.fragment.app.viewModels
|
||||
import com.mikepenz.iconics.typeface.IIcon
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.settings.addHelpMenuProvider
|
||||
import io.homeassistant.companion.android.settings.shortcuts.views.ManageShortcutsView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.util.icondialog.IconDialog
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.N_MR1)
|
||||
@AndroidEntryPoint
|
||||
|
|
|
@ -36,10 +36,10 @@ import io.homeassistant.companion.android.util.icondialog.getIconByMdiName
|
|||
import io.homeassistant.companion.android.util.icondialog.mdiName
|
||||
import io.homeassistant.companion.android.webview.WebViewActivity
|
||||
import io.homeassistant.companion.android.widgets.assist.AssistShortcutActivity
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import javax.inject.Inject
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.N_MR1)
|
||||
@HiltViewModel
|
||||
|
|
|
@ -8,10 +8,10 @@ import androidx.compose.ui.platform.ComposeView
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.settings.addHelpMenuProvider
|
||||
import io.homeassistant.companion.android.settings.ssid.views.SsidView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SsidFragment : Fragment() {
|
||||
|
|
|
@ -11,8 +11,8 @@ import androidx.lifecycle.viewModelScope
|
|||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import io.homeassistant.companion.android.common.data.servers.ServerManager
|
||||
import io.homeassistant.companion.android.common.data.wifi.WifiHelper
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@HiltViewModel
|
||||
class SsidViewModel @Inject constructor(
|
||||
|
|
|
@ -51,8 +51,8 @@ import androidx.compose.ui.text.font.FontFamily
|
|||
import androidx.compose.ui.text.input.ImeAction
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.homeassistant.companion.android.common.data.wifi.WifiHelper
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.common.data.wifi.WifiHelper
|
||||
|
||||
@OptIn(
|
||||
ExperimentalComposeUiApi::class,
|
||||
|
|
|
@ -8,9 +8,9 @@ import androidx.compose.ui.platform.ComposeView
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
import io.homeassistant.companion.android.settings.url.views.ExternalUrlView
|
||||
import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@AndroidEntryPoint
|
||||
class ExternalUrlFragment : Fragment() {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue