Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
xuning
/
livekitAndroidXuningTest
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
davidliu
2022-07-01 23:52:15 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
0b29441c4401a53e0aa169d5a3acc0ad509afe46
0b29441c
1 parent
6371a9e2
Fill in missing controls for view based example
隐藏空白字符变更
内嵌
并排对比
正在显示
5 个修改的文件
包含
140 行增加
和
7 行删除
sample-app/src/main/java/io/livekit/android/sample/CallActivity.kt
sample-app/src/main/java/io/livekit/android/sample/dialog/DebugMenuDialog.kt
sample-app/src/main/java/io/livekit/android/sample/dialog/SelectAudioDeviceDialog.kt
sample-app/src/main/res/layout/call_activity.xml
sample-app/src/main/res/layout/dialog_button.xml
sample-app/src/main/java/io/livekit/android/sample/CallActivity.kt
查看文件 @
0b29441
...
...
@@ -16,6 +16,8 @@ import com.xwray.groupie.GroupieAdapter
import io.livekit.android.room.track.Track
import io.livekit.android.room.track.VideoTrack
import io.livekit.android.sample.databinding.CallActivityBinding
import io.livekit.android.sample.dialog.showDebugMenuDialog
import io.livekit.android.sample.dialog.showSelectAudioDeviceDialog
import io.livekit.android.util.flow
import kotlinx.coroutines.flow.*
import kotlinx.parcelize.Parcelize
...
...
@@ -177,6 +179,24 @@ class CallActivity : AppCompatActivity() {
}
binding.exit.setOnClickListener { finish() }
// Controls row 2
binding.audioSelect.setOnClickListener {
showSelectAudioDeviceDialog(viewModel)
}
lifecycleScope.launchWhenCreated {
viewModel.permissionAllowed.collect { allowed ->
val resource = if (allowed) R.drawable.account_cancel_outline else R.drawable.account_cancel
binding.permissions.setImageResource(resource)
}
}
binding.permissions.setOnClickListener {
viewModel.toggleSubscriptionPermissions()
}
binding.debugMenu.setOnClickListener {
showDebugMenuDialog(viewModel)
}
}
override fun onResume() {
...
...
sample-app/src/main/java/io/livekit/android/sample/dialog/DebugMenuDialog.kt
0 → 100644
查看文件 @
0b29441
package io.livekit.android.sample.dialog
import android.R
import android.app.Activity
import android.app.AlertDialog
import android.widget.ArrayAdapter
import io.livekit.android.sample.CallViewModel
fun Activity.showDebugMenuDialog(callViewModel: CallViewModel) {
val builder = with(AlertDialog.Builder(this)) {
setTitle("Debug Menu")
val arrayAdapter = ArrayAdapter<String>(this@showDebugMenuDialog, R.layout.select_dialog_item)
arrayAdapter.add("Simulate Migration")
arrayAdapter.add("Reconnect to Room")
setAdapter(arrayAdapter) { dialog, index ->
when (index) {
0 -> callViewModel.simulateMigration()
1 -> callViewModel.reconnect()
}
dialog.dismiss()
}
}
builder.show()
}
\ No newline at end of file
...
...
sample-app/src/main/java/io/livekit/android/sample/dialog/SelectAudioDeviceDialog.kt
0 → 100644
查看文件 @
0b29441
package io.livekit.android.sample.dialog
import android.R
import android.app.Activity
import android.app.AlertDialog
import android.widget.ArrayAdapter
import io.livekit.android.sample.CallViewModel
fun Activity.showSelectAudioDeviceDialog(callViewModel: CallViewModel) {
val builder = with(AlertDialog.Builder(this)) {
setTitle("Select Audio Device")
val audioHandler = callViewModel.audioHandler
val audioDevices = audioHandler.availableAudioDevices
val arrayAdapter = ArrayAdapter<String>(this@showSelectAudioDeviceDialog, R.layout.select_dialog_item)
arrayAdapter.addAll(audioDevices.map { it.name })
setAdapter(arrayAdapter) { dialog, index ->
audioHandler.selectDevice(audioDevices[index])
dialog.dismiss()
}
}
builder.show()
}
\ No newline at end of file
...
...
sample-app/src/main/res/layout/call_activity.xml
查看文件 @
0b29441
...
...
@@ -70,54 +70,105 @@
android:layout_height=
"60dp"
android:gravity=
"center"
android:orientation=
"horizontal"
app:layout_constraintBottom_to
BottomOf=
"parent
"
>
app:layout_constraintBottom_to
TopOf=
"@id/controls_box2
"
>
<ImageView
android:id=
"@+id/camera"
android:layout_width=
"@dimen/control_size"
android:layout_height=
"@dimen/control_size"
android:layout_weight=
"1"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"@dimen/control_padding"
android:src=
"@drawable/outline_videocam_24"
/>
android:src=
"@drawable/outline_videocam_24"
app:tint=
"@android:color/white"
/>
<ImageView
android:id=
"@+id/mic"
android:layout_width=
"@dimen/control_size"
android:layout_height=
"@dimen/control_size"
android:layout_weight=
"1"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"@dimen/control_padding"
android:src=
"@drawable/outline_mic_24"
/>
android:src=
"@drawable/outline_mic_24"
app:tint=
"@android:color/white"
/>
<ImageView
android:id=
"@+id/flip_camera"
android:layout_width=
"@dimen/control_size"
android:layout_height=
"@dimen/control_size"
android:layout_weight=
"1"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"@dimen/control_padding"
android:src=
"@drawable/outline_flip_camera_android_24"
/>
android:src=
"@drawable/outline_flip_camera_android_24"
app:tint=
"@android:color/white"
/>
<ImageView
android:id=
"@+id/screen_share"
android:layout_width=
"@dimen/control_size"
android:layout_height=
"@dimen/control_size"
android:layout_weight=
"1"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"@dimen/control_padding"
android:src=
"@drawable/baseline_cast_24"
/>
android:src=
"@drawable/baseline_cast_24"
app:tint=
"@android:color/white"
/>
<ImageView
android:id=
"@+id/message"
android:layout_width=
"@dimen/control_size"
android:layout_height=
"@dimen/control_size"
android:layout_weight=
"1"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"@dimen/control_padding"
android:src=
"@drawable/baseline_chat_24"
/>
android:src=
"@drawable/baseline_chat_24"
app:tint=
"@android:color/white"
/>
<ImageView
android:id=
"@+id/exit"
android:layout_width=
"@dimen/control_size"
android:layout_height=
"@dimen/control_size"
android:layout_weight=
"1"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"@dimen/control_padding"
android:src=
"@drawable/ic_baseline_cancel_24"
app:tint=
"@android:color/white"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/controls_box2"
android:layout_width=
"match_parent"
android:layout_height=
"60dp"
android:gravity=
"center"
android:orientation=
"horizontal"
app:layout_constraintBottom_toBottomOf=
"parent"
>
<ImageView
android:id=
"@+id/audio_select"
android:layout_width=
"@dimen/control_size"
android:layout_height=
"@dimen/control_size"
android:layout_weight=
"1"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"@dimen/control_padding"
android:src=
"@drawable/volume_up_48px"
app:tint=
"@android:color/white"
/>
<ImageView
android:id=
"@+id/permissions"
android:layout_width=
"@dimen/control_size"
android:layout_height=
"@dimen/control_size"
android:layout_weight=
"1"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"@dimen/control_padding"
android:src=
"@drawable/account_cancel_outline"
app:tint=
"@android:color/white"
/>
<ImageView
android:id=
"@+id/debug_menu"
android:layout_width=
"@dimen/control_size"
android:layout_height=
"@dimen/control_size"
android:layout_weight=
"1"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"@dimen/control_padding"
android:src=
"@drawable/ic_baseline_cancel_24"
/>
android:src=
"@drawable/dots_horizontal_circle_outline"
app:tint=
"@android:color/white"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
...
...
sample-app/src/main/res/layout/dialog_button.xml
0 → 100644
查看文件 @
0b29441
<?xml version="1.0" encoding="utf-8"?>
<Button
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@android:id/text1"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:ellipsize=
"marquee"
android:gravity=
"center"
android:minHeight=
"?android:attr/listPreferredItemHeight"
android:textAppearance=
"?android:attr/textAppearanceLarge"
android:textColor=
"?android:attr/textColorAlertDialogListItem"
tools:text=
"Button"
/>
...
...
请
注册
或
登录
后发表评论