mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-09 16:48:54 +01:00
VoIP: use DialPadFragment in BottomSheet
This commit is contained in:
parent
fae1382429
commit
f5bf774126
@ -0,0 +1,85 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2021 New Vector Ltd
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package im.vector.app.features.call.dialpad
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import im.vector.app.R
|
||||||
|
import im.vector.app.core.extensions.addChildFragment
|
||||||
|
import im.vector.app.core.platform.VectorBaseBottomSheetDialogFragment
|
||||||
|
import im.vector.app.databinding.BottomSheetCallDialPadBinding
|
||||||
|
import im.vector.app.features.settings.VectorLocale
|
||||||
|
|
||||||
|
class CallDialPadBottomSheet private constructor() : VectorBaseBottomSheetDialogFragment<BottomSheetCallDialPadBinding>() {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
|
||||||
|
private const val EXTRA_SHOW_ACTIONS = "EXTRA_SHOW_ACTIONS"
|
||||||
|
|
||||||
|
fun newInstance(showActions: Boolean): CallDialPadBottomSheet {
|
||||||
|
return CallDialPadBottomSheet().apply {
|
||||||
|
arguments = Bundle().apply {
|
||||||
|
putBoolean(EXTRA_SHOW_ACTIONS, showActions)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override val showExpanded = true
|
||||||
|
|
||||||
|
var callback: DialPadFragment.Callback? = null
|
||||||
|
set(value) {
|
||||||
|
field = value
|
||||||
|
setCallbackToFragment(callback)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetCallDialPadBinding {
|
||||||
|
return BottomSheetCallDialPadBinding.inflate(inflater, container, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
if (savedInstanceState == null) {
|
||||||
|
val showActions = arguments?.getBoolean(EXTRA_SHOW_ACTIONS, false) ?: false
|
||||||
|
DialPadFragment().apply {
|
||||||
|
arguments = Bundle().apply {
|
||||||
|
putBoolean(DialPadFragment.EXTRA_ENABLE_DELETE, showActions)
|
||||||
|
putBoolean(DialPadFragment.EXTRA_ENABLE_OK, showActions)
|
||||||
|
putString(DialPadFragment.EXTRA_REGION_CODE, VectorLocale.applicationLocale.country)
|
||||||
|
}
|
||||||
|
callback = this@CallDialPadBottomSheet.callback
|
||||||
|
}.also {
|
||||||
|
addChildFragment(R.id.callDialPadFragmentContainer, it)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setCallbackToFragment(callback)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDestroyView() {
|
||||||
|
setCallbackToFragment(null)
|
||||||
|
super.onDestroyView()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setCallbackToFragment(callback: DialPadFragment.Callback?) {
|
||||||
|
if (!isAdded) return
|
||||||
|
val dialPadFragment = childFragmentManager.findFragmentById(R.id.callDialPadFragmentContainer) as? DialPadFragment
|
||||||
|
dialPadFragment?.callback = callback
|
||||||
|
}
|
||||||
|
}
|
25
vector/src/main/res/layout/bottom_sheet_call_dial_pad.xml
Normal file
25
vector/src/main/res/layout/bottom_sheet_call_dial_pad.xml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/callDialPad"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="?riotx_bottom_sheet_background"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/callDialPadTitle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:padding="8dp"
|
||||||
|
android:textColor="?riotx_text_primary"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:layout_marginBottom="24dp"
|
||||||
|
android:text="@string/call_dial_pad_title" />
|
||||||
|
|
||||||
|
<androidx.fragment.app.FragmentContainerView
|
||||||
|
android:id="@+id/callDialPadFragmentContainer"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
@ -2773,4 +2773,5 @@
|
|||||||
<string name="call_tile_other_declined">%1$s declined this call</string>
|
<string name="call_tile_other_declined">%1$s declined this call</string>
|
||||||
<string name="call_tile_ended">This call has ended</string>
|
<string name="call_tile_ended">This call has ended</string>
|
||||||
<string name="call_tile_call_back">Call back</string>
|
<string name="call_tile_call_back">Call back</string>
|
||||||
|
<string name="call_dial_pad_title">Dial pad</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user