Skip to content

Commit bbcf0a3

Browse files
committed
./gradlew ktlintFormat
1 parent 65bf21f commit bbcf0a3

14 files changed

Lines changed: 92 additions & 75 deletions

File tree

app/src/main/java/com/haishinkit/app/CameraDeviceControllerView.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ fun CameraDeviceControllerView(
102102
expanded = expanded,
103103
onDismissRequest = {
104104
expanded = false
105-
}
105+
},
106106
) {
107107
cameras.forEach { selectionOption ->
108108
DropdownMenuItem(

app/src/main/java/com/haishinkit/app/CameraScreen.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ private const val TAG = "CameraScreen"
5252
@Composable
5353
fun CameraScreen(
5454
viewModel: CameraViewModel = viewModel(),
55-
modifier: Modifier = Modifier
55+
modifier: Modifier = Modifier,
5656
) {
5757
val context = LocalContext.current
5858
val scope = rememberCoroutineScope()
@@ -121,7 +121,8 @@ fun CameraScreen(
121121
// viewModel.selectAudioDevice(null)
122122
}
123123
}
124-
}, onVideoPermissionStatus = { state ->
124+
},
125+
onVideoPermissionStatus = { state ->
125126
when (state.status) {
126127
PermissionStatus.Granted -> {
127128
viewModel.selectCameraDevice(selectedCamera)
@@ -130,7 +131,8 @@ fun CameraScreen(
130131
is PermissionStatus.Denied -> {
131132
}
132133
}
133-
})
134+
},
135+
)
134136
Spacer(modifier = Modifier.weight(1f))
135137

136138
HorizontalPager(

app/src/main/java/com/haishinkit/app/CameraViewModel.kt

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,15 @@ import kotlinx.coroutines.launch
3737
import java.io.ByteArrayOutputStream
3838

3939
class CameraViewModel(
40-
application: Application
40+
application: Application,
4141
) : AndroidViewModel(application), DefaultLifecycleObserver {
4242
private var deviceManager: DeviceManager =
4343
DeviceManager(context = application.applicationContext)
4444
private var mixer: MediaMixer = MediaMixer(application.applicationContext)
45-
val session: StreamSession = StreamSession
46-
.Builder(application.applicationContext, Preference.shared.rtmpURL.toUri())
47-
.build()
45+
val session: StreamSession =
46+
StreamSession
47+
.Builder(application.applicationContext, Preference.shared.rtmpURL.toUri())
48+
.build()
4849
val cameraList: StateFlow<List<CameraDevice>>
4950
get() {
5051
return deviceManager.cameraList
@@ -72,10 +73,11 @@ class CameraViewModel(
7273
text.verticalAlignment = ScreenObject.VERTICAL_ALIGNMENT_BOTTOM
7374

7475
val image = ImageScreenObject()
75-
image.bitmap = BitmapFactory.decodeResource(
76-
application.applicationContext.resources,
77-
R.drawable.game_jikkyou
78-
)
76+
image.bitmap =
77+
BitmapFactory.decodeResource(
78+
application.applicationContext.resources,
79+
R.drawable.game_jikkyou,
80+
)
7981
image.verticalAlignment = ScreenObject.VERTICAL_ALIGNMENT_BOTTOM
8082
image.frame.set(0, 0, 180, 180)
8183

@@ -171,4 +173,4 @@ class CameraViewModel(
171173
deviceManager.release()
172174
mixer.dispose()
173175
}
174-
}
176+
}

app/src/main/java/com/haishinkit/app/MediaProjectionService.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ class MediaProjectionService :
180180
return this
181181
}
182182

183-
fun isRunning(context: Context): Boolean =
184-
LocalBroadcastManager.getInstance(context).sendBroadcast(Intent(ACTION_SERVICE_RUNNING))
183+
fun isRunning(context: Context): Boolean = LocalBroadcastManager.getInstance(context).sendBroadcast(Intent(ACTION_SERVICE_RUNNING))
185184
}
186185
}

app/src/main/java/com/haishinkit/app/PlaybackScreen.kt

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,28 @@ import androidx.compose.foundation.layout.safeDrawingPadding
77
import androidx.compose.material3.Button
88
import androidx.compose.material3.Text
99
import androidx.compose.runtime.Composable
10-
import androidx.compose.runtime.DisposableEffect
1110
import androidx.compose.runtime.rememberCoroutineScope
1211
import androidx.compose.ui.Alignment
1312
import androidx.compose.ui.Modifier
14-
import androidx.compose.ui.platform.LocalContext
1513
import androidx.compose.ui.tooling.preview.Preview
1614
import androidx.compose.ui.unit.dp
17-
import androidx.core.net.toUri
15+
import androidx.lifecycle.viewmodel.compose.viewModel
1816
import com.haishinkit.compose.HaishinKitView
1917
import com.haishinkit.compose.rememberStreamSessionState
20-
import com.haishinkit.stream.StreamSession
2118
import kotlinx.coroutines.launch
2219

2320
@Suppress("unused")
2421
private const val TAG = "PlaybackScreen"
2522

2623
@Suppress("ktlint:standard:function-naming")
2724
@Composable
28-
fun PlaybackScreen(modifier: Modifier = Modifier) {
29-
val context = LocalContext.current
25+
fun PlaybackScreen(
26+
viewModel: PlaybackViewModel = viewModel(),
27+
modifier: Modifier = Modifier,
28+
) {
3029
val scope = rememberCoroutineScope()
31-
3230
val session =
33-
rememberStreamSessionState(
34-
StreamSession
35-
.Builder(
36-
context,
37-
Preference.shared.rtmpURL.toUri(),
38-
)
39-
.setMode(StreamSession.Mode.PLAYBACK)
40-
.build(),
41-
)
42-
43-
DisposableEffect(Unit) {
44-
onDispose {
45-
// session.dispose()
46-
}
47-
}
31+
rememberStreamSessionState(viewModel.session)
4832

4933
HaishinKitView(
5034
stream = session.stream,
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.haishinkit.app
2+
3+
import android.app.Application
4+
import androidx.core.net.toUri
5+
import androidx.lifecycle.AndroidViewModel
6+
import androidx.lifecycle.application
7+
import com.haishinkit.stream.StreamSession
8+
9+
class PlaybackViewModel(
10+
application: Application,
11+
) : AndroidViewModel(application) {
12+
val session: StreamSession =
13+
StreamSession
14+
.Builder(application.applicationContext, Preference.shared.rtmpURL.toUri())
15+
.setMode(StreamSession.Mode.PLAYBACK)
16+
.build()
17+
}

compose/src/main/java/com/haishinkit/compose/MediaRecorderState.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ import androidx.compose.runtime.setValue
1111
import com.haishinkit.media.MediaRecorder
1212

1313
@Composable
14-
fun rememberMediaRecorderState(
15-
recorder: MediaRecorder
16-
): MediaRecorderState =
14+
fun rememberMediaRecorderState(recorder: MediaRecorder): MediaRecorderState =
1715
remember(recorder) {
1816
MediaRecorderState(recorder)
1917
}

haishinkit/src/main/java/com/haishinkit/device/CameraDevice.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import kotlinx.serialization.Serializable
1818
data class CameraDevice(
1919
val id: String,
2020
val name: String,
21-
val position: Position
21+
val position: Position,
2222
) {
2323
/**
2424
* Indicates the physical location or category of the camera device.
@@ -27,7 +27,6 @@ data class CameraDevice(
2727
* with other platforms and external representations.
2828
*/
2929
enum class Position {
30-
3130
/** Camera located on the front side of the device (typically used for selfies). */
3231
@SerialName("front")
3332
FRONT,
@@ -42,6 +41,6 @@ data class CameraDevice(
4241

4342
/** Position could not be determined or is not provided by the system. */
4443
@SerialName("unspecified")
45-
UNSPECIFIED
44+
UNSPECIFIED,
4645
}
47-
}
46+
}

haishinkit/src/main/java/com/haishinkit/device/DeviceManager.kt

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import kotlinx.coroutines.flow.asStateFlow
1313

1414
@Suppress("UNUSED")
1515
class DeviceManager(
16-
private val context: Context
16+
private val context: Context,
1717
) {
1818
private val cameraManager =
1919
context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
@@ -29,44 +29,48 @@ class DeviceManager(
2929
}
3030
}
3131

32-
private val usbReceiver = UsbCameraReceiver {
33-
refresh()
34-
}
32+
private val usbReceiver =
33+
UsbCameraReceiver {
34+
refresh()
35+
}
3536

3637
private val _cameraList = MutableStateFlow<List<CameraDevice>>(emptyList())
3738
val cameraList: StateFlow<List<CameraDevice>> = _cameraList.asStateFlow()
3839

3940
init {
40-
val filter = IntentFilter().apply {
41-
addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED)
42-
addAction(UsbManager.ACTION_USB_DEVICE_DETACHED)
43-
}
41+
val filter =
42+
IntentFilter().apply {
43+
addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED)
44+
addAction(UsbManager.ACTION_USB_DEVICE_DETACHED)
45+
}
4446
context.registerReceiver(usbReceiver, filter)
4547
cameraManager.registerAvailabilityCallback(
4648
availabilityCallback,
47-
Handler(Looper.getMainLooper())
49+
Handler(Looper.getMainLooper()),
4850
)
4951
refresh()
5052
}
5153

5254
fun getCameraList(): List<CameraDevice> {
5355
return cameraManager.cameraIdList.map { cameraId ->
5456
val chars = cameraManager.getCameraCharacteristics(cameraId)
55-
val position = when (
56-
chars.get(CameraCharacteristics.LENS_FACING)
57-
) {
58-
CameraCharacteristics.LENS_FACING_FRONT -> CameraDevice.Position.FRONT
59-
CameraCharacteristics.LENS_FACING_BACK -> CameraDevice.Position.BACK
60-
CameraCharacteristics.LENS_FACING_EXTERNAL -> CameraDevice.Position.EXTERNAL
61-
else -> CameraDevice.Position.UNSPECIFIED
62-
}
57+
val position =
58+
when (
59+
chars.get(CameraCharacteristics.LENS_FACING)
60+
) {
61+
CameraCharacteristics.LENS_FACING_FRONT -> CameraDevice.Position.FRONT
62+
CameraCharacteristics.LENS_FACING_BACK -> CameraDevice.Position.BACK
63+
CameraCharacteristics.LENS_FACING_EXTERNAL -> CameraDevice.Position.EXTERNAL
64+
else -> CameraDevice.Position.UNSPECIFIED
65+
}
6366
CameraDevice(
6467
id = cameraId,
65-
name = buildString {
66-
append("${position.name.lowercase().replaceFirstChar { it.uppercase() }} Camera")
67-
append(" ($cameraId)")
68-
},
69-
position = position
68+
name =
69+
buildString {
70+
append("${position.name.lowercase().replaceFirstChar { it.uppercase() }} Camera")
71+
append(" ($cameraId)")
72+
},
73+
position = position,
7074
)
7175
}
7276
}
@@ -79,4 +83,4 @@ class DeviceManager(
7983
private fun refresh() {
8084
_cameraList.value = getCameraList()
8185
}
82-
}
86+
}

haishinkit/src/main/java/com/haishinkit/device/UsbCameraReceiver.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@ import android.hardware.usb.UsbManager
77

88
@Suppress("UNUSED")
99
internal class UsbCameraReceiver(
10-
private val onChanged: () -> Unit
10+
private val onChanged: () -> Unit,
1111
) : BroadcastReceiver() {
12-
override fun onReceive(context: Context?, intent: Intent?) {
12+
override fun onReceive(
13+
context: Context?,
14+
intent: Intent?,
15+
) {
1316
when (intent?.action) {
1417
UsbManager.ACTION_USB_DEVICE_ATTACHED,
15-
UsbManager.ACTION_USB_DEVICE_DETACHED -> {
18+
UsbManager.ACTION_USB_DEVICE_DETACHED,
19+
-> {
1620
onChanged()
1721
}
1822
}

0 commit comments

Comments
 (0)