toolbar management (#4887)
Toolbar management rework and toolbar style alignment
This commit is contained in:
parent
a085b4db21
commit
f7aedff418
3
changelog.d/4884.misc
Normal file
3
changelog.d/4884.misc
Normal file
@ -0,0 +1,3 @@
|
||||
Toolbar management rework. Toolbar title's and subtitle's text appearance now controlled by theme without local overrides. Helper class introduced to
|
||||
help with toolbar configuration. Toolbar title, subtitle and navigation button widgets are removed where it is possible and replaced with built-in
|
||||
toolbar widgets.
|
@ -6,10 +6,12 @@
|
||||
<item name="elevation">0dp</item>
|
||||
|
||||
<!-- main text -->
|
||||
<item name="titleTextStyle">@style/Widget.Vector.TextView.ActionBarTitle</item>
|
||||
<item name="titleTextAppearance">@style/TextAppearance.Vector.Widget.ActionBarTitle</item>
|
||||
|
||||
<!-- sub text -->
|
||||
<item name="subtitleTextStyle">@style/Widget.Vector.TextView.ActionBarSubTitle</item>
|
||||
<item name="subtitleTextAppearance">@style/TextAppearance.Vector.Widget.ActionBarSubTitle</item>
|
||||
|
||||
<item name="navigationIconTint">?vctr_content_secondary</item>
|
||||
</style>
|
||||
|
||||
<!-- Default toolbar style -->
|
||||
@ -22,16 +24,18 @@
|
||||
|
||||
<!-- Toolbar text style -->
|
||||
<!-- main text -->
|
||||
<style name="Widget.Vector.TextView.ActionBarTitle" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
|
||||
<style name="TextAppearance.Vector.Widget.ActionBarTitle" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
|
||||
<item name="android:textColor">?vctr_content_primary</item>
|
||||
<item name="android:fontFamily">"sans-serif-medium"</item>
|
||||
<item name="android:textSize">20sp</item>
|
||||
<item name="android:fontFamily">sans-serif-medium</item>
|
||||
<item name="fontFamily">sans-serif-medium</item>
|
||||
<item name="android:textSize">18sp</item>
|
||||
</style>
|
||||
|
||||
<!-- sub text -->
|
||||
<style name="Widget.Vector.TextView.ActionBarSubTitle" parent="TextAppearance.AppCompat.Widget.ActionBar.Subtitle">
|
||||
<item name="android:textColor">?vctr_content_primary</item>
|
||||
<item name="android:fontFamily">"sans-serif-medium"</item>
|
||||
<style name="TextAppearance.Vector.Widget.ActionBarSubTitle" parent="TextAppearance.AppCompat.Widget.ActionBar.Subtitle">
|
||||
<item name="android:textColor">?vctr_content_secondary</item>
|
||||
<item name="android:fontFamily">sans-serif</item>
|
||||
<item name="fontFamily">sans-serif</item>
|
||||
<item name="android:textSize">12sp</item>
|
||||
</style>
|
||||
|
||||
|
@ -30,7 +30,8 @@ abstract class SimpleFragmentActivity : VectorBaseActivity<ActivityBinding>() {
|
||||
final override fun getCoordinatorLayout() = views.coordinatorLayout
|
||||
|
||||
override fun initUiAndData() {
|
||||
configureToolbar(views.toolbar)
|
||||
setupToolbar(views.toolbar)
|
||||
.allowBack(true)
|
||||
waitingView = views.waitingView.waitingView
|
||||
}
|
||||
|
||||
|
@ -1,24 +0,0 @@
|
||||
/*
|
||||
* Copyright 2019 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.core.platform
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
|
||||
interface ToolbarConfigurable {
|
||||
|
||||
fun configure(toolbar: MaterialToolbar)
|
||||
}
|
@ -62,6 +62,7 @@ import im.vector.app.core.extensions.restart
|
||||
import im.vector.app.core.extensions.setTextOrHide
|
||||
import im.vector.app.core.extensions.singletonEntryPoint
|
||||
import im.vector.app.core.extensions.toMvRxBundle
|
||||
import im.vector.app.core.utils.ToolbarConfig
|
||||
import im.vector.app.core.utils.toast
|
||||
import im.vector.app.features.MainActivity
|
||||
import im.vector.app.features.MainActivityArgs
|
||||
@ -126,6 +127,8 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
||||
.launchIn(lifecycleScope)
|
||||
}
|
||||
|
||||
var toolbar: ToolbarConfig? = null
|
||||
|
||||
/* ==========================================================================================
|
||||
* Views
|
||||
* ========================================================================================== */
|
||||
@ -508,18 +511,6 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
||||
*/
|
||||
protected fun isFirstCreation() = savedInstanceState == null
|
||||
|
||||
/**
|
||||
* Configure the Toolbar, with default back button.
|
||||
*/
|
||||
protected fun configureToolbar(toolbar: MaterialToolbar, displayBack: Boolean = true) {
|
||||
setSupportActionBar(toolbar)
|
||||
supportActionBar?.let {
|
||||
it.setDisplayShowHomeEnabled(displayBack)
|
||||
it.setDisplayHomeAsUpEnabled(displayBack)
|
||||
it.title = null
|
||||
}
|
||||
}
|
||||
|
||||
// ==============================================================================================
|
||||
// Handle loading view (also called waiting view or spinner view)
|
||||
// ==============================================================================================
|
||||
@ -629,4 +620,13 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
||||
toast(getString(R.string.not_implemented))
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets toolbar as actionBar
|
||||
*
|
||||
* @return Instance of [ToolbarConfig] with set of helper methods to configure toolbar
|
||||
* */
|
||||
fun setupToolbar(toolbar: MaterialToolbar) = ToolbarConfig(this, toolbar).also {
|
||||
this.toolbar = it.setup()
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ import im.vector.app.core.dialogs.UnrecognizedCertificateDialog
|
||||
import im.vector.app.core.error.ErrorFormatter
|
||||
import im.vector.app.core.extensions.singletonEntryPoint
|
||||
import im.vector.app.core.extensions.toMvRxBundle
|
||||
import im.vector.app.core.utils.ToolbarConfig
|
||||
import im.vector.app.features.analytics.AnalyticsTracker
|
||||
import im.vector.app.features.analytics.plan.Screen
|
||||
import im.vector.app.features.analytics.screen.ScreenEvent
|
||||
@ -80,6 +81,12 @@ abstract class VectorBaseFragment<VB : ViewBinding> : Fragment(), MavericksView
|
||||
|
||||
private var progress: AlertDialog? = null
|
||||
|
||||
/**
|
||||
* [ToolbarConfig] instance from host activity
|
||||
* */
|
||||
protected var toolbar: ToolbarConfig? = null
|
||||
get() = (activity as? VectorBaseActivity<*>)?.toolbar
|
||||
private set
|
||||
/* ==========================================================================================
|
||||
* View model
|
||||
* ========================================================================================== */
|
||||
@ -228,13 +235,12 @@ abstract class VectorBaseFragment<VB : ViewBinding> : Fragment(), MavericksView
|
||||
* ========================================================================================== */
|
||||
|
||||
/**
|
||||
* Configure the Toolbar.
|
||||
*/
|
||||
protected fun setupToolbar(toolbar: MaterialToolbar) {
|
||||
val parentActivity = vectorBaseActivity
|
||||
if (parentActivity is ToolbarConfigurable) {
|
||||
parentActivity.configure(toolbar)
|
||||
}
|
||||
* Sets toolbar as actionBar for current activity
|
||||
*
|
||||
* @return Instance of [ToolbarConfig] with set of helper methods to configure toolbar
|
||||
* */
|
||||
protected fun setupToolbar(toolbar: MaterialToolbar): ToolbarConfig {
|
||||
return vectorBaseActivity.setupToolbar(toolbar)
|
||||
}
|
||||
|
||||
/* ==========================================================================================
|
||||
|
@ -0,0 +1,82 @@
|
||||
/*
|
||||
* Copyright (c) 2022 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.core.utils
|
||||
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import im.vector.app.R
|
||||
|
||||
/**
|
||||
* Helper class to configure toolbar.
|
||||
* Wraps [MaterialToolbar] providing set of methods to configure it
|
||||
*/
|
||||
class ToolbarConfig(val activity: AppCompatActivity, val toolbar: MaterialToolbar) {
|
||||
private var customBackResId: Int? = null
|
||||
|
||||
fun setup() = apply {
|
||||
activity.setSupportActionBar(toolbar)
|
||||
}
|
||||
|
||||
/**
|
||||
* Delegating property for [toolbar.title]
|
||||
* */
|
||||
var title: CharSequence? by toolbar::title
|
||||
|
||||
/**
|
||||
* Delegating property for [toolbar.subtitle]
|
||||
* */
|
||||
var subtitle: CharSequence? by toolbar::subtitle
|
||||
|
||||
/**
|
||||
* Sets toolbar's title text
|
||||
* */
|
||||
fun setTitle(title: CharSequence?) = apply { toolbar.title = title }
|
||||
|
||||
/**
|
||||
* Sets toolbar's title text using provided string resource
|
||||
* */
|
||||
fun setTitle(@StringRes titleRes: Int) = apply { toolbar.setTitle(titleRes) }
|
||||
|
||||
/**
|
||||
* Sets toolbar's subtitle text
|
||||
* */
|
||||
fun setSubtitle(subtitle: String?) = apply { toolbar.subtitle = subtitle }
|
||||
|
||||
/**
|
||||
* Sets toolbar's title text using provided string resource
|
||||
* */
|
||||
fun setSubtitle(@StringRes subtitleRes: Int) = apply { toolbar.subtitle = activity.getString(subtitleRes) }
|
||||
|
||||
/**
|
||||
* Enables/disables navigate back button
|
||||
*
|
||||
* @param isAllowed defines if back button is enabled. Default [true]
|
||||
* @param useCross defines if cross icon should be used instead of arrow. Default [false]
|
||||
* */
|
||||
fun allowBack(isAllowed: Boolean = true, useCross: Boolean = false) = apply {
|
||||
activity.supportActionBar?.let {
|
||||
it.setDisplayShowHomeEnabled(isAllowed)
|
||||
it.setDisplayHomeAsUpEnabled(isAllowed)
|
||||
if (isAllowed && useCross) {
|
||||
val navResId = customBackResId ?: R.drawable.ic_x_18dp
|
||||
toolbar.navigationIcon = AppCompatResources.getDrawable(activity, navResId)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -19,17 +19,15 @@ package im.vector.app.features.attachments.preview
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.extensions.addFragment
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivitySimpleBinding
|
||||
import im.vector.app.features.themes.ActivityOtherThemes
|
||||
import org.matrix.android.sdk.api.session.content.ContentAttachmentData
|
||||
|
||||
@AndroidEntryPoint
|
||||
class AttachmentsPreviewActivity : VectorBaseActivity<ActivitySimpleBinding>(), ToolbarConfigurable {
|
||||
class AttachmentsPreviewActivity : VectorBaseActivity<ActivitySimpleBinding>() {
|
||||
|
||||
companion object {
|
||||
private const val EXTRA_FRAGMENT_ARGS = "EXTRA_FRAGMENT_ARGS"
|
||||
@ -72,8 +70,4 @@ class AttachmentsPreviewActivity : VectorBaseActivity<ActivitySimpleBinding>(),
|
||||
setResult(RESULT_OK, resultIntent)
|
||||
finish()
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ class VectorCallActivity : VectorBaseActivity<ActivityCallBinding>(), CallContro
|
||||
if (savedInstanceState != null) {
|
||||
(supportFragmentManager.findFragmentByTag(FRAGMENT_DIAL_PAD_TAG) as? CallDialPadBottomSheet)?.callback = dialPadCallback
|
||||
}
|
||||
setSupportActionBar(views.callToolbar)
|
||||
setupToolbar(views.callToolbar)
|
||||
configureCallViews()
|
||||
|
||||
callViewModel.onEach {
|
||||
@ -257,18 +257,18 @@ class VectorCallActivity : VectorBaseActivity<ActivityCallBinding>(), CallContro
|
||||
views.fullscreenRenderer.isVisible = false
|
||||
views.pipRendererWrapper.isVisible = false
|
||||
views.callInfoGroup.isVisible = true
|
||||
views.callToolbar.setSubtitle(R.string.call_ringing)
|
||||
toolbar?.setSubtitle(R.string.call_ringing)
|
||||
configureCallInfo(state)
|
||||
}
|
||||
is CallState.Answering -> {
|
||||
views.fullscreenRenderer.isVisible = false
|
||||
views.pipRendererWrapper.isVisible = false
|
||||
views.callInfoGroup.isVisible = true
|
||||
views.callToolbar.setSubtitle(R.string.call_connecting)
|
||||
toolbar?.setSubtitle(R.string.call_connecting)
|
||||
configureCallInfo(state)
|
||||
}
|
||||
is CallState.Connected -> {
|
||||
views.callToolbar.subtitle = state.formattedDuration
|
||||
toolbar?.subtitle = state.formattedDuration
|
||||
if (callState.iceConnectionState == MxPeerConnectionState.CONNECTED) {
|
||||
if (state.isLocalOnHold || state.isRemoteOnHold) {
|
||||
views.smallIsHeldIcon.isVisible = true
|
||||
@ -280,11 +280,11 @@ class VectorCallActivity : VectorBaseActivity<ActivityCallBinding>(), CallContro
|
||||
views.callActionText.setText(R.string.call_resume_action)
|
||||
views.callActionText.isVisible = true
|
||||
views.callActionText.setOnClickListener { callViewModel.handle(VectorCallViewActions.ToggleHoldResume) }
|
||||
views.callToolbar.setSubtitle(R.string.call_held_by_you)
|
||||
toolbar?.setSubtitle(R.string.call_held_by_you)
|
||||
} else {
|
||||
views.callActionText.isInvisible = true
|
||||
state.callInfo?.opponentUserItem?.let {
|
||||
views.callToolbar.subtitle = getString(R.string.call_held_by_user, it.getBestName())
|
||||
toolbar?.subtitle = getString(R.string.call_held_by_user, it.getBestName())
|
||||
}
|
||||
}
|
||||
} else if (state.transferee !is VectorCallViewState.TransfereeState.NoTransferee) {
|
||||
@ -316,14 +316,14 @@ class VectorCallActivity : VectorBaseActivity<ActivityCallBinding>(), CallContro
|
||||
views.pipRendererWrapper.isVisible = false
|
||||
views.callInfoGroup.isVisible = true
|
||||
configureCallInfo(state)
|
||||
views.callToolbar.setSubtitle(R.string.call_connecting)
|
||||
toolbar?.setSubtitle(R.string.call_connecting)
|
||||
}
|
||||
}
|
||||
is CallState.Ended -> {
|
||||
views.fullscreenRenderer.isVisible = false
|
||||
views.pipRendererWrapper.isVisible = false
|
||||
views.callInfoGroup.isVisible = true
|
||||
views.callToolbar.setSubtitle(R.string.call_ended)
|
||||
toolbar?.setSubtitle(R.string.call_ended)
|
||||
configureCallInfo(state)
|
||||
}
|
||||
else -> {
|
||||
@ -410,7 +410,7 @@ class VectorCallActivity : VectorBaseActivity<ActivityCallBinding>(), CallContro
|
||||
avatarRenderer.renderBlur(it, views.bgCallView, sampling = 20, rounded = false, colorFilter = colorFilter, addPlaceholder = false)
|
||||
if (state.transferee is VectorCallViewState.TransfereeState.NoTransferee) {
|
||||
views.participantNameText.setTextOrHide(null)
|
||||
views.callToolbar.title = if (state.isVideoCall) {
|
||||
toolbar?.title = if (state.isVideoCall) {
|
||||
getString(R.string.video_call_with_participant, it.getBestName())
|
||||
} else {
|
||||
getString(R.string.audio_call_with_participant, it.getBestName())
|
||||
|
@ -70,7 +70,8 @@ class CallTransferActivity : VectorBaseActivity<ActivityCallTransferBinding>() {
|
||||
CallTransferPagerAdapter.DIAL_PAD_INDEX -> tab.text = getString(R.string.call_dial_pad_title)
|
||||
}
|
||||
}.attach()
|
||||
configureToolbar(views.callTransferToolbar)
|
||||
setupToolbar(views.callTransferToolbar)
|
||||
.allowBack()
|
||||
views.callTransferToolbar.title = getString(R.string.call_transfer_title)
|
||||
setupConnectAction()
|
||||
}
|
||||
|
@ -67,7 +67,8 @@ class ContactsBookFragment @Inject constructor(
|
||||
setupFilterView()
|
||||
setupConsentView()
|
||||
setupOnlyBoundContactsView()
|
||||
setupCloseView()
|
||||
setupToolbar(views.phoneBookToolbar)
|
||||
.allowBack(useCross = true)
|
||||
contactsBookViewModel.observeViewEvents {
|
||||
when (it) {
|
||||
is ContactsBookViewEvents.Failure -> showFailure(it.throwable)
|
||||
@ -119,12 +120,6 @@ class ContactsBookFragment @Inject constructor(
|
||||
views.phoneBookRecyclerView.configureWith(contactsBookController)
|
||||
}
|
||||
|
||||
private fun setupCloseView() {
|
||||
views.phoneBookClose.debouncedClicks {
|
||||
sharedActionViewModel.post(UserListSharedAction.GoBack)
|
||||
}
|
||||
}
|
||||
|
||||
override fun invalidate() = withState(contactsBookViewModel) { state ->
|
||||
views.phoneBookSearchForMatrixContacts.isVisible = state.filteredMappedContacts.isNotEmpty() && state.identityServerUrl != null && !state.userConsent
|
||||
views.phoneBookOnlyBoundContacts.isVisible = state.isBoundRetrieved
|
||||
|
@ -64,11 +64,8 @@ class CreateDirectRoomByQrCodeFragment @Inject constructor() : VectorBaseFragmen
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
setupToolbar(views.qrScannerToolbar)
|
||||
|
||||
views.qrScannerClose.debouncedClicks {
|
||||
requireActivity().onBackPressed()
|
||||
}
|
||||
views.qrScannerTitle.text = getString(R.string.add_by_qr_code)
|
||||
.setTitle(R.string.add_by_qr_code)
|
||||
.allowBack(useCross = true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
@ -33,7 +33,6 @@ import androidx.fragment.app.FragmentManager
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.airbnb.mvrx.Mavericks
|
||||
import com.airbnb.mvrx.viewModel
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.AppStateHandler
|
||||
@ -43,7 +42,6 @@ import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.extensions.hideKeyboard
|
||||
import im.vector.app.core.extensions.registerStartForActivityResult
|
||||
import im.vector.app.core.extensions.replaceFragment
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.core.pushers.PushersManager
|
||||
import im.vector.app.databinding.ActivityHomeBinding
|
||||
@ -99,7 +97,6 @@ data class HomeActivityArgs(
|
||||
@AndroidEntryPoint
|
||||
class HomeActivity :
|
||||
VectorBaseActivity<ActivityHomeBinding>(),
|
||||
ToolbarConfigurable,
|
||||
NavigationInterceptor,
|
||||
SpaceInviteBottomSheet.InteractionListener,
|
||||
MatrixToBottomSheet.InteractionListener {
|
||||
@ -493,10 +490,6 @@ class HomeActivity :
|
||||
serverBackupStatusViewModel.refreshRemoteStateIfNeeded()
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar, false)
|
||||
}
|
||||
|
||||
override fun getMenuRes() = R.menu.home
|
||||
|
||||
override fun onPrepareOptionsMenu(menu: Menu): Boolean {
|
||||
|
@ -33,7 +33,6 @@ import im.vector.app.R
|
||||
import im.vector.app.RoomGroupingMethod
|
||||
import im.vector.app.core.extensions.commitTransaction
|
||||
import im.vector.app.core.extensions.toMvRxBundle
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.core.platform.VectorBaseFragment
|
||||
import im.vector.app.core.resources.ColorProvider
|
||||
@ -314,11 +313,9 @@ class HomeDetailFragment @Inject constructor(
|
||||
}
|
||||
|
||||
private fun setupToolbar() {
|
||||
val parentActivity = vectorBaseActivity
|
||||
if (parentActivity is ToolbarConfigurable) {
|
||||
parentActivity.configure(views.groupToolbar)
|
||||
}
|
||||
views.groupToolbar.title = ""
|
||||
setupToolbar(views.groupToolbar)
|
||||
.setTitle(null)
|
||||
|
||||
views.groupToolbarAvatarImageView.debouncedClicks {
|
||||
sharedActionViewModel.post(HomeActivitySharedAction.OpenDrawer)
|
||||
}
|
||||
|
@ -28,13 +28,11 @@ import androidx.fragment.app.FragmentManager
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.airbnb.mvrx.Mavericks
|
||||
import com.airbnb.mvrx.viewModel
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.extensions.endKeepScreenOn
|
||||
import im.vector.app.core.extensions.hideKeyboard
|
||||
import im.vector.app.core.extensions.keepScreenOn
|
||||
import im.vector.app.core.extensions.replaceFragment
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivityRoomDetailBinding
|
||||
import im.vector.app.features.analytics.plan.Screen
|
||||
@ -53,7 +51,6 @@ import javax.inject.Inject
|
||||
@AndroidEntryPoint
|
||||
class RoomDetailActivity :
|
||||
VectorBaseActivity<ActivityRoomDetailBinding>(),
|
||||
ToolbarConfigurable,
|
||||
MatrixToBottomSheet.InteractionListener {
|
||||
|
||||
override fun getBinding(): ActivityRoomDetailBinding {
|
||||
@ -159,10 +156,6 @@ class RoomDetailActivity :
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
|
||||
private val drawerListener = object : DrawerLayout.SimpleDrawerListener() {
|
||||
private var drawerScreenEvent: ScreenEvent? = null
|
||||
override fun onDrawerOpened(drawerView: View) {
|
||||
|
@ -365,6 +365,7 @@ class RoomDetailFragment @Inject constructor(
|
||||
keyboardStateUtils = KeyboardStateUtils(requireActivity())
|
||||
lazyLoadedViews.bind(views)
|
||||
setupToolbar(views.roomToolbar)
|
||||
.allowBack()
|
||||
setupRecyclerView()
|
||||
setupComposer()
|
||||
setupNotificationView()
|
||||
@ -1514,7 +1515,7 @@ class RoomDetailFragment @Inject constructor(
|
||||
views.roomToolbarSubtitleView.apply {
|
||||
setTextOrHide(subtitle)
|
||||
if (typingMessage.isNullOrBlank()) {
|
||||
setTextColor(colorProvider.getColorFromAttribute(R.attr.vctr_content_primary))
|
||||
setTextColor(colorProvider.getColorFromAttribute(R.attr.vctr_content_secondary))
|
||||
setTypeface(null, Typeface.NORMAL)
|
||||
} else {
|
||||
setTextColor(colorProvider.getColorFromAttribute(R.attr.colorPrimary))
|
||||
|
@ -40,7 +40,8 @@ class SearchActivity : VectorBaseActivity<ActivitySearchBinding>() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
configureToolbar(views.searchToolbar)
|
||||
setupToolbar(views.searchToolbar)
|
||||
.allowBack()
|
||||
}
|
||||
|
||||
override fun initUiAndData() {
|
||||
|
@ -44,7 +44,8 @@ class FilteredRoomsActivity : VectorBaseActivity<ActivityFilteredRoomsBinding>()
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
analyticsScreenName = Screen.ScreenName.RoomFilter
|
||||
configureToolbar(views.filteredRoomsToolbar)
|
||||
setupToolbar(views.filteredRoomsToolbar)
|
||||
.allowBack()
|
||||
if (isFirstCreation()) {
|
||||
val params = RoomListParams(RoomListDisplayMode.FILTERED)
|
||||
replaceFragment(views.filteredRoomsFragmentContainer, RoomListFragment::class.java, params, FRAGMENT_TAG)
|
||||
|
@ -29,7 +29,6 @@ import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import com.airbnb.mvrx.viewModel
|
||||
import com.airbnb.mvrx.withState
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
@ -37,7 +36,6 @@ import im.vector.app.core.extensions.POP_BACK_STACK_EXCLUSIVE
|
||||
import im.vector.app.core.extensions.addFragment
|
||||
import im.vector.app.core.extensions.addFragmentToBackstack
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivityLoginBinding
|
||||
import im.vector.app.features.analytics.plan.Screen
|
||||
@ -54,7 +52,7 @@ import org.matrix.android.sdk.api.extensions.tryOrNull
|
||||
* The LoginActivity manages the fragment navigation and also display the loading View
|
||||
*/
|
||||
@AndroidEntryPoint
|
||||
open class LoginActivity : VectorBaseActivity<ActivityLoginBinding>(), ToolbarConfigurable, UnlockedActivity {
|
||||
open class LoginActivity : VectorBaseActivity<ActivityLoginBinding>(), UnlockedActivity {
|
||||
|
||||
private val loginViewModel: LoginViewModel by viewModel()
|
||||
|
||||
@ -353,10 +351,6 @@ open class LoginActivity : VectorBaseActivity<ActivityLoginBinding>(), ToolbarCo
|
||||
}
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val FRAGMENT_REGISTRATION_STAGE_TAG = "FRAGMENT_REGISTRATION_STAGE_TAG"
|
||||
private const val FRAGMENT_LOGIN_TAG = "FRAGMENT_LOGIN_TAG"
|
||||
|
@ -64,6 +64,7 @@ class LoginWebFragment @Inject constructor(
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
setupToolbar(views.loginWebToolbar)
|
||||
.allowBack()
|
||||
}
|
||||
|
||||
override fun updateWithState(state: LoginViewState) {
|
||||
@ -78,7 +79,7 @@ class LoginWebFragment @Inject constructor(
|
||||
}
|
||||
|
||||
private fun setupTitle(state: LoginViewState) {
|
||||
views.loginWebToolbar.title = when (state.signMode) {
|
||||
toolbar?.title = when (state.signMode) {
|
||||
SignMode.SignIn -> getString(R.string.login_signin)
|
||||
else -> getString(R.string.login_signup)
|
||||
}
|
||||
@ -149,7 +150,7 @@ class LoginWebFragment @Inject constructor(
|
||||
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
||||
super.onPageStarted(view, url, favicon)
|
||||
|
||||
views.loginWebToolbar.subtitle = url
|
||||
toolbar?.subtitle = url
|
||||
}
|
||||
|
||||
override fun onPageFinished(view: WebView, url: String) {
|
||||
|
@ -65,6 +65,7 @@ class LoginWebFragment2 @Inject constructor(
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
setupToolbar(views.loginWebToolbar)
|
||||
.allowBack()
|
||||
}
|
||||
|
||||
override fun updateWithState(state: LoginViewState2) {
|
||||
@ -79,7 +80,7 @@ class LoginWebFragment2 @Inject constructor(
|
||||
}
|
||||
|
||||
private fun setupTitle(state: LoginViewState2) {
|
||||
views.loginWebToolbar.title = when (state.signMode) {
|
||||
toolbar?.title = when (state.signMode) {
|
||||
SignMode2.SignIn -> getString(R.string.login_signin)
|
||||
else -> getString(R.string.login_signup)
|
||||
}
|
||||
@ -150,7 +151,7 @@ class LoginWebFragment2 @Inject constructor(
|
||||
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
||||
super.onPageStarted(view, url, favicon)
|
||||
|
||||
views.loginWebToolbar.subtitle = url
|
||||
toolbar?.subtitle = url
|
||||
}
|
||||
|
||||
override fun onPageFinished(view: WebView, url: String) {
|
||||
|
@ -38,12 +38,9 @@ class BigImageViewerActivity : VectorBaseActivity<ActivityBigImageViewerBinding>
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
setSupportActionBar(views.bigImageViewerToolbar)
|
||||
supportActionBar?.apply {
|
||||
title = intent.getStringExtra(EXTRA_TITLE)
|
||||
setHomeButtonEnabled(true)
|
||||
setDisplayHomeAsUpEnabled(true)
|
||||
}
|
||||
setupToolbar(views.bigImageViewerToolbar)
|
||||
.setTitle(intent.getStringExtra(EXTRA_TITLE))
|
||||
.allowBack()
|
||||
|
||||
val uri = sessionHolder.getSafeActiveSession()
|
||||
?.contentUrlResolver()
|
||||
|
@ -19,10 +19,8 @@ package im.vector.app.features.onboarding
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.extensions.lazyViewModel
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.core.platform.lifecycleAwareLazy
|
||||
import im.vector.app.databinding.ActivityLoginBinding
|
||||
@ -31,7 +29,7 @@ import im.vector.app.features.pin.UnlockedActivity
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class OnboardingActivity : VectorBaseActivity<ActivityLoginBinding>(), ToolbarConfigurable, UnlockedActivity {
|
||||
class OnboardingActivity : VectorBaseActivity<ActivityLoginBinding>(), UnlockedActivity {
|
||||
|
||||
private val onboardingVariant by lifecycleAwareLazy {
|
||||
onboardingVariantFactory.create(this, views = views, onboardingViewModel = lazyViewModel(), loginViewModel2 = lazyViewModel())
|
||||
@ -43,10 +41,6 @@ class OnboardingActivity : VectorBaseActivity<ActivityLoginBinding>(), ToolbarCo
|
||||
|
||||
override fun getCoordinatorLayout() = views.coordinatorLayout
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
|
||||
override fun onNewIntent(intent: Intent?) {
|
||||
super.onNewIntent(intent)
|
||||
onboardingVariant.onNewIntent(intent)
|
||||
|
@ -69,6 +69,7 @@ class FtueAuthWebFragment @Inject constructor(
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
setupToolbar(views.loginWebToolbar)
|
||||
.allowBack()
|
||||
}
|
||||
|
||||
override fun updateWithState(state: OnboardingViewState) {
|
||||
@ -83,7 +84,7 @@ class FtueAuthWebFragment @Inject constructor(
|
||||
}
|
||||
|
||||
private fun setupTitle(state: OnboardingViewState) {
|
||||
views.loginWebToolbar.title = when (state.signMode) {
|
||||
toolbar?.title = when (state.signMode) {
|
||||
SignMode.SignIn -> getString(R.string.login_signin)
|
||||
else -> getString(R.string.login_signup)
|
||||
}
|
||||
|
@ -19,15 +19,13 @@ package im.vector.app.features.pin
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.airbnb.mvrx.Mavericks
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.extensions.addFragment
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivitySimpleBinding
|
||||
|
||||
@AndroidEntryPoint
|
||||
class PinActivity : VectorBaseActivity<ActivitySimpleBinding>(), ToolbarConfigurable, UnlockedActivity {
|
||||
class PinActivity : VectorBaseActivity<ActivitySimpleBinding>(), UnlockedActivity {
|
||||
|
||||
companion object {
|
||||
fun newIntent(context: Context, args: PinArgs): Intent {
|
||||
@ -47,8 +45,4 @@ class PinActivity : VectorBaseActivity<ActivitySimpleBinding>(), ToolbarConfigur
|
||||
addFragment(views.simpleFragmentContainer, PinFragment::class.java, fragmentArgs)
|
||||
}
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
}
|
||||
|
@ -49,17 +49,15 @@ class CreatePollFragment @Inject constructor(
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
vectorBaseActivity.setSupportActionBar(views.createPollToolbar)
|
||||
|
||||
setupToolbar(views.createPollToolbar)
|
||||
.allowBack(useCross = true)
|
||||
|
||||
views.createPollRecyclerView.configureWith(controller, disableItemAnimation = true)
|
||||
// workaround for https://github.com/vector-im/element-android/issues/4735
|
||||
views.createPollRecyclerView.setItemViewCacheSize(MAX_OPTIONS_COUNT + 4)
|
||||
controller.callback = this
|
||||
|
||||
views.createPollClose.debouncedClicks {
|
||||
requireActivity().finish()
|
||||
}
|
||||
|
||||
views.createPollButton.debouncedClicks {
|
||||
viewModel.handle(CreatePollAction.OnCreatePoll)
|
||||
}
|
||||
|
@ -38,10 +38,9 @@ class QrCodeScannerFragment @Inject constructor() :
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
views.qrScannerClose.debouncedClicks {
|
||||
requireActivity().onBackPressed()
|
||||
}
|
||||
views.qrScannerTitle.text = getString(R.string.verification_scan_their_code)
|
||||
setupToolbar(views.qrScannerToolbar)
|
||||
.setTitle(R.string.verification_scan_their_code)
|
||||
.allowBack(useCross = true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
@ -45,7 +45,8 @@ class BugReportActivity : VectorBaseActivity<ActivityBugReportBinding>() {
|
||||
private var reportType: ReportType = ReportType.BUG_REPORT
|
||||
|
||||
override fun initUiAndData() {
|
||||
configureToolbar(views.bugReportToolbar)
|
||||
setupToolbar(views.bugReportToolbar)
|
||||
.allowBack()
|
||||
setupViews()
|
||||
|
||||
if (bugReporter.screenshot != null) {
|
||||
|
@ -79,7 +79,8 @@ class EmojiReactionPickerActivity : VectorBaseActivity<ActivityEmojiReactionPick
|
||||
}
|
||||
|
||||
override fun initUiAndData() {
|
||||
configureToolbar(views.emojiPickerToolbar)
|
||||
setupToolbar(views.emojiPickerToolbar)
|
||||
.allowBack()
|
||||
emojiCompatFontProvider.let {
|
||||
EmojiDrawView.configureTextPaint(this, it.typeface)
|
||||
it.addListener(this)
|
||||
|
@ -69,12 +69,8 @@ class PublicRoomsFragment @Inject constructor(
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
vectorBaseActivity.setSupportActionBar(views.publicRoomsToolbar)
|
||||
|
||||
vectorBaseActivity.supportActionBar?.let {
|
||||
it.setDisplayShowHomeEnabled(true)
|
||||
it.setDisplayHomeAsUpEnabled(true)
|
||||
}
|
||||
setupToolbar(views.publicRoomsToolbar)
|
||||
.allowBack()
|
||||
|
||||
sharedActionViewModel = activityViewModelProvider.get(RoomDirectorySharedActionViewModel::class.java)
|
||||
setupRecyclerView()
|
||||
|
@ -22,10 +22,8 @@ import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.airbnb.mvrx.Mavericks
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.extensions.addFragment
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivitySimpleBinding
|
||||
import im.vector.app.features.analytics.plan.Screen
|
||||
@ -38,7 +36,7 @@ import kotlinx.coroutines.flow.onEach
|
||||
* Simple container for [CreateRoomFragment]
|
||||
*/
|
||||
@AndroidEntryPoint
|
||||
class CreateRoomActivity : VectorBaseActivity<ActivitySimpleBinding>(), ToolbarConfigurable {
|
||||
class CreateRoomActivity : VectorBaseActivity<ActivitySimpleBinding>() {
|
||||
|
||||
private lateinit var sharedActionViewModel: RoomDirectorySharedActionViewModel
|
||||
|
||||
@ -46,10 +44,6 @@ class CreateRoomActivity : VectorBaseActivity<ActivitySimpleBinding>(), ToolbarC
|
||||
|
||||
override fun getCoordinatorLayout() = views.coordinatorLayout
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
|
||||
override fun initUiAndData() {
|
||||
if (isFirstCreation()) {
|
||||
val fragmentArgs: CreateRoomArgs = intent?.extras?.getParcelable(Mavericks.KEY_ARG) ?: return
|
||||
|
@ -83,14 +83,13 @@ class CreateRoomFragment @Inject constructor(
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
vectorBaseActivity.setSupportActionBar(views.createRoomToolbar)
|
||||
sharedActionViewModel = activityViewModelProvider.get(RoomDirectorySharedActionViewModel::class.java)
|
||||
setupRoomJoinRuleSharedActionViewModel()
|
||||
setupWaitingView()
|
||||
setupRecyclerView()
|
||||
views.createRoomClose.debouncedClicks {
|
||||
sharedActionViewModel.post(RoomDirectorySharedAction.Back)
|
||||
}
|
||||
setupToolbar(views.createRoomToolbar)
|
||||
.setTitle(if (args.isSpace) R.string.create_new_space else R.string.create_new_room)
|
||||
.allowBack(useCross = true)
|
||||
viewModel.observeViewEvents {
|
||||
when (it) {
|
||||
CreateRoomViewEvents.Quit -> vectorBaseActivity.onBackPressed()
|
||||
@ -99,11 +98,6 @@ class CreateRoomFragment @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
views.createRoomTitle.text = getString(if (args.isSpace) R.string.create_new_space else R.string.create_new_room)
|
||||
}
|
||||
|
||||
private fun setupRoomJoinRuleSharedActionViewModel() {
|
||||
roomJoinRuleSharedActionViewModel = activityViewModelProvider.get(RoomJoinRuleSharedActionViewModel::class.java)
|
||||
roomJoinRuleSharedActionViewModel
|
||||
|
@ -20,7 +20,6 @@ import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.airbnb.mvrx.activityViewModel
|
||||
import com.airbnb.mvrx.fragmentViewModel
|
||||
import com.airbnb.mvrx.withState
|
||||
@ -61,12 +60,9 @@ class RoomDirectoryPickerFragment @Inject constructor(private val roomDirectoryP
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
vectorBaseActivity.setSupportActionBar(views.toolbar)
|
||||
|
||||
vectorBaseActivity.supportActionBar?.let {
|
||||
it.setDisplayShowHomeEnabled(true)
|
||||
it.setDisplayHomeAsUpEnabled(true)
|
||||
}
|
||||
setupToolbar(views.toolbar)
|
||||
.setTitle(R.string.select_room_directory)
|
||||
.allowBack()
|
||||
|
||||
sharedActionViewModel = activityViewModelProvider.get(RoomDirectorySharedActionViewModel::class.java)
|
||||
setupRecyclerView()
|
||||
@ -115,11 +111,6 @@ class RoomDirectoryPickerFragment @Inject constructor(private val roomDirectoryP
|
||||
pickerViewModel.handle(RoomDirectoryPickerAction.RemoveServer(roomDirectoryServer))
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
(activity as? AppCompatActivity)?.supportActionBar?.setTitle(R.string.select_room_directory)
|
||||
}
|
||||
|
||||
override fun retry() {
|
||||
Timber.v("Retry")
|
||||
pickerViewModel.handle(RoomDirectoryPickerAction.Retry)
|
||||
|
@ -19,10 +19,8 @@ package im.vector.app.features.roomdirectory.roompreview
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Parcelable
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.extensions.addFragment
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivitySimpleBinding
|
||||
import im.vector.app.features.roomdirectory.RoomDirectoryData
|
||||
@ -53,7 +51,7 @@ data class RoomPreviewData(
|
||||
}
|
||||
|
||||
@AndroidEntryPoint
|
||||
class RoomPreviewActivity : VectorBaseActivity<ActivitySimpleBinding>(), ToolbarConfigurable {
|
||||
class RoomPreviewActivity : VectorBaseActivity<ActivitySimpleBinding>() {
|
||||
|
||||
companion object {
|
||||
private const val ARG = "ARG"
|
||||
@ -83,10 +81,6 @@ class RoomPreviewActivity : VectorBaseActivity<ActivitySimpleBinding>(), Toolbar
|
||||
|
||||
override fun getCoordinatorLayout() = views.coordinatorLayout
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
|
||||
override fun initUiAndData() {
|
||||
if (isFirstCreation()) {
|
||||
val args = intent.getParcelableExtra<RoomPreviewData>(ARG)
|
||||
|
@ -64,6 +64,7 @@ class RoomPreviewNoPreviewFragment @Inject constructor(
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setupToolbar(views.roomPreviewNoPreviewToolbar)
|
||||
.allowBack()
|
||||
|
||||
views.roomPreviewNoPreviewJoin.commonClicked = { roomPreviewViewModel.handle(RoomPreviewAction.Join) }
|
||||
}
|
||||
|
@ -22,19 +22,15 @@ import android.content.Intent
|
||||
import android.widget.Toast
|
||||
import com.airbnb.mvrx.Mavericks
|
||||
import com.airbnb.mvrx.viewModel
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.extensions.addFragment
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivitySimpleBinding
|
||||
import im.vector.app.features.room.RequireActiveMembershipViewEvents
|
||||
import im.vector.app.features.room.RequireActiveMembershipViewModel
|
||||
|
||||
@AndroidEntryPoint
|
||||
class RoomMemberProfileActivity :
|
||||
VectorBaseActivity<ActivitySimpleBinding>(),
|
||||
ToolbarConfigurable {
|
||||
class RoomMemberProfileActivity : VectorBaseActivity<ActivitySimpleBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newIntent(context: Context, args: RoomMemberProfileArgs): Intent {
|
||||
@ -63,10 +59,6 @@ class RoomMemberProfileActivity :
|
||||
}
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
|
||||
private fun handleRoomLeft(roomLeft: RequireActiveMembershipViewEvents.RoomLeft) {
|
||||
if (roomLeft.leftMessage != null) {
|
||||
Toast.makeText(this, roomLeft.leftMessage, Toast.LENGTH_LONG).show()
|
||||
|
@ -97,6 +97,7 @@ class RoomMemberProfileFragment @Inject constructor(
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setupToolbar(views.matrixProfileToolbar)
|
||||
.allowBack()
|
||||
val headerView = views.matrixProfileHeaderView.let {
|
||||
it.layoutResource = R.layout.view_stub_room_member_profile_header
|
||||
it.inflate()
|
||||
|
@ -23,12 +23,10 @@ import android.widget.Toast
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.airbnb.mvrx.Mavericks
|
||||
import com.airbnb.mvrx.viewModel
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.extensions.addFragment
|
||||
import im.vector.app.core.extensions.addFragmentToBackstack
|
||||
import im.vector.app.core.extensions.exhaustive
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivitySimpleBinding
|
||||
import im.vector.app.features.home.room.detail.RoomDetailPendingActionStore
|
||||
@ -47,8 +45,7 @@ import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class RoomProfileActivity :
|
||||
VectorBaseActivity<ActivitySimpleBinding>(),
|
||||
ToolbarConfigurable {
|
||||
VectorBaseActivity<ActivitySimpleBinding>() {
|
||||
|
||||
companion object {
|
||||
|
||||
@ -157,8 +154,4 @@ class RoomProfileActivity :
|
||||
private fun openRoomNotificationSettings() {
|
||||
addFragmentToBackstack(views.simpleFragmentContainer, RoomNotificationSettingsFragment::class.java, roomProfileArgs)
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
}
|
||||
|
@ -109,6 +109,7 @@ class RoomProfileFragment @Inject constructor(
|
||||
headerViews = ViewStubRoomProfileHeaderBinding.bind(headerView)
|
||||
setupWaitingView()
|
||||
setupToolbar(views.matrixProfileToolbar)
|
||||
.allowBack()
|
||||
setupRecyclerView()
|
||||
appBarStateChangeListener = MatrixItemAppBarStateChangeListener(
|
||||
headerView,
|
||||
|
@ -68,6 +68,7 @@ class RoomAliasFragment @Inject constructor(
|
||||
|
||||
controller.callback = this
|
||||
setupToolbar(views.roomSettingsToolbar)
|
||||
.allowBack()
|
||||
views.roomSettingsRecyclerView.configureWith(controller, hasFixedSize = true)
|
||||
views.waitingView.waitingStatusText.setText(R.string.please_wait)
|
||||
views.waitingView.waitingStatusText.isVisible = true
|
||||
|
@ -59,6 +59,7 @@ class RoomBannedMemberListFragment @Inject constructor(
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
roomMemberListController.callback = this
|
||||
setupToolbar(views.roomSettingsToolbar)
|
||||
.allowBack()
|
||||
setupSearchView()
|
||||
views.roomSettingsRecyclerView.configureWith(roomMemberListController, hasFixedSize = true)
|
||||
|
||||
|
@ -58,6 +58,7 @@ class RoomMemberListFragment @Inject constructor(
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
roomMemberListController.callback = this
|
||||
setupToolbar(views.roomSettingGeneric.roomSettingsToolbar)
|
||||
.allowBack()
|
||||
setupSearchView()
|
||||
setupInviteUsersButton()
|
||||
views.roomSettingGeneric.roomSettingsRecyclerView.configureWith(roomMemberListController, hasFixedSize = true)
|
||||
|
@ -50,6 +50,7 @@ class RoomNotificationSettingsFragment @Inject constructor(
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setupToolbar(views.roomSettingsToolbar)
|
||||
.allowBack()
|
||||
roomNotificationSettingsController.callback = this
|
||||
views.roomSettingsRecyclerView.configureWith(roomNotificationSettingsController, hasFixedSize = true)
|
||||
setupWaitingView()
|
||||
|
@ -58,6 +58,7 @@ class RoomPermissionsFragment @Inject constructor(
|
||||
|
||||
controller.callback = this
|
||||
setupToolbar(views.roomSettingsToolbar)
|
||||
.allowBack()
|
||||
views.roomSettingsRecyclerView.configureWith(controller, hasFixedSize = true)
|
||||
views.waitingView.waitingStatusText.setText(R.string.please_wait)
|
||||
views.waitingView.waitingStatusText.isVisible = true
|
||||
|
@ -85,6 +85,7 @@ class RoomSettingsFragment @Inject constructor(
|
||||
setupRoomJoinRuleSharedActionViewModel()
|
||||
controller.callback = this
|
||||
setupToolbar(views.roomSettingsToolbar)
|
||||
.allowBack()
|
||||
views.roomSettingsRecyclerView.configureWith(controller, hasFixedSize = true)
|
||||
views.waitingView.waitingStatusText.setText(R.string.please_wait)
|
||||
views.waitingView.waitingStatusText.isVisible = true
|
||||
|
@ -74,6 +74,7 @@ class RoomUploadsFragment @Inject constructor(
|
||||
}.attach()
|
||||
|
||||
setupToolbar(views.roomUploadsToolbar)
|
||||
.allowBack()
|
||||
|
||||
viewModel.observeViewEvents {
|
||||
when (it) {
|
||||
|
@ -63,7 +63,8 @@ class VectorSettingsActivity : VectorBaseActivity<ActivityVectorSettingsBinding>
|
||||
@Inject lateinit var session: Session
|
||||
|
||||
override fun initUiAndData() {
|
||||
configureToolbar(views.settingsToolbar)
|
||||
setupToolbar(views.settingsToolbar)
|
||||
.allowBack()
|
||||
|
||||
if (isFirstCreation()) {
|
||||
// display the fragment
|
||||
|
@ -16,15 +16,13 @@
|
||||
|
||||
package im.vector.app.features.share
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.core.extensions.addFragment
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivitySimpleBinding
|
||||
|
||||
@AndroidEntryPoint
|
||||
class IncomingShareActivity : VectorBaseActivity<ActivitySimpleBinding>(), ToolbarConfigurable {
|
||||
class IncomingShareActivity : VectorBaseActivity<ActivitySimpleBinding>() {
|
||||
|
||||
override fun getBinding() = ActivitySimpleBinding.inflate(layoutInflater)
|
||||
|
||||
@ -35,8 +33,4 @@ class IncomingShareActivity : VectorBaseActivity<ActivitySimpleBinding>(), Toolb
|
||||
addFragment(views.simpleFragmentContainer, IncomingShareFragment::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar, displayBack = false)
|
||||
}
|
||||
}
|
||||
|
@ -104,12 +104,9 @@ class SpaceDirectoryFragment @Inject constructor(
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
vectorBaseActivity.setSupportActionBar(views.toolbar)
|
||||
setupToolbar(views.toolbar)
|
||||
.allowBack()
|
||||
|
||||
vectorBaseActivity.supportActionBar?.let {
|
||||
it.setDisplayShowHomeEnabled(true)
|
||||
it.setDisplayHomeAsUpEnabled(true)
|
||||
}
|
||||
epoxyController.listener = this
|
||||
views.spaceDirectoryList.configureWith(epoxyController)
|
||||
epoxyVisibilityTracker.attach(views.spaceDirectoryList)
|
||||
@ -166,13 +163,11 @@ class SpaceDirectoryFragment @Inject constructor(
|
||||
|
||||
if (currentParentId == null) {
|
||||
// it's the root
|
||||
val title = getString(R.string.space_explore_activity_title)
|
||||
views.toolbar.title = title
|
||||
toolbar?.setTitle(R.string.space_explore_activity_title)
|
||||
} else {
|
||||
val title = state.currentRootSummary?.name
|
||||
toolbar?.title = state.currentRootSummary?.name
|
||||
?: state.currentRootSummary?.canonicalAlias
|
||||
?: getString(R.string.space_explore_activity_title)
|
||||
views.toolbar.title = title
|
||||
}
|
||||
|
||||
spaceCardRenderer.render(state.currentRootSummary, emptyList(), this, views.spaceCard)
|
||||
|
@ -26,7 +26,6 @@ import com.airbnb.mvrx.Loading
|
||||
import com.airbnb.mvrx.Mavericks
|
||||
import com.airbnb.mvrx.Success
|
||||
import com.airbnb.mvrx.viewModel
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
@ -34,15 +33,13 @@ import im.vector.app.core.error.ErrorFormatter
|
||||
import im.vector.app.core.extensions.hideKeyboard
|
||||
import im.vector.app.core.extensions.replaceFragment
|
||||
import im.vector.app.core.extensions.setTextOrHide
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivitySimpleLoadingBinding
|
||||
import im.vector.app.features.spaces.SpaceBottomSheetSettingsArgs
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SpaceLeaveAdvancedActivity : VectorBaseActivity<ActivitySimpleLoadingBinding>(),
|
||||
ToolbarConfigurable {
|
||||
class SpaceLeaveAdvancedActivity : VectorBaseActivity<ActivitySimpleLoadingBinding>() {
|
||||
|
||||
override fun getBinding(): ActivitySimpleLoadingBinding = ActivitySimpleLoadingBinding.inflate(layoutInflater)
|
||||
|
||||
@ -113,8 +110,4 @@ class SpaceLeaveAdvancedActivity : VectorBaseActivity<ActivitySimpleLoadingBindi
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
}
|
||||
|
@ -47,6 +47,7 @@ class SpaceLeaveAdvancedFragment @Inject constructor(
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setupToolbar(views.toolbar)
|
||||
.allowBack()
|
||||
controller.listener = this
|
||||
views.roomList.configureWith(controller)
|
||||
views.spaceLeaveCancel.debouncedClicks { requireActivity().finish() }
|
||||
|
@ -63,12 +63,8 @@ class SpaceAddRoomFragment @Inject constructor(
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
vectorBaseActivity.setSupportActionBar(views.addRoomToSpaceToolbar)
|
||||
|
||||
vectorBaseActivity.supportActionBar?.let {
|
||||
it.setDisplayShowHomeEnabled(true)
|
||||
it.setDisplayHomeAsUpEnabled(true)
|
||||
}
|
||||
setupToolbar(views.addRoomToSpaceToolbar)
|
||||
.allowBack()
|
||||
|
||||
// sharedActionViewModel = activityViewModelProvider.get(RoomDirectorySharedActionViewModel::class.java)
|
||||
setupRecyclerView()
|
||||
@ -90,7 +86,7 @@ class SpaceAddRoomFragment @Inject constructor(
|
||||
}
|
||||
|
||||
viewModel.onEach(SpaceAddRoomsState::spaceName) {
|
||||
views.appBarSpaceInfo.text = it
|
||||
toolbar?.subtitle = it
|
||||
}
|
||||
|
||||
viewModel.onEach(SpaceAddRoomsState::ignoreRooms) {
|
||||
@ -115,8 +111,7 @@ class SpaceAddRoomFragment @Inject constructor(
|
||||
spaceEpoxyController.disabled = !it
|
||||
roomEpoxyController.disabled = it
|
||||
views.createNewRoom.text = if (it) getString(R.string.create_space) else getString(R.string.create_new_room)
|
||||
val title = if (it) getString(R.string.space_add_existing_spaces) else getString(R.string.space_add_existing_rooms_only)
|
||||
views.appBarTitle.text = title
|
||||
toolbar?.setTitle(if (it) R.string.space_add_existing_spaces else R.string.space_add_existing_rooms_only)
|
||||
}
|
||||
|
||||
views.createNewRoom.debouncedClicks {
|
||||
|
@ -26,13 +26,11 @@ import androidx.lifecycle.lifecycleScope
|
||||
import com.airbnb.mvrx.Mavericks
|
||||
import com.airbnb.mvrx.viewModel
|
||||
import com.airbnb.mvrx.withState
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.extensions.addFragmentToBackstack
|
||||
import im.vector.app.core.extensions.hideKeyboard
|
||||
import im.vector.app.core.extensions.replaceFragment
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivitySimpleLoadingBinding
|
||||
import im.vector.app.features.roomdirectory.RoomDirectorySharedAction
|
||||
@ -53,8 +51,7 @@ data class SpaceManageArgs(
|
||||
) : Parcelable
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SpaceManageActivity : VectorBaseActivity<ActivitySimpleLoadingBinding>(),
|
||||
ToolbarConfigurable {
|
||||
class SpaceManageActivity : VectorBaseActivity<ActivitySimpleLoadingBinding>() {
|
||||
|
||||
private lateinit var sharedDirectoryActionViewModel: RoomDirectorySharedActionViewModel
|
||||
|
||||
@ -188,8 +185,4 @@ class SpaceManageActivity : VectorBaseActivity<ActivitySimpleLoadingBinding>(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
}
|
||||
|
@ -66,8 +66,11 @@ class SpaceManageRoomsFragment @Inject constructor(
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
setupToolbar(views.addRoomToSpaceToolbar)
|
||||
views.appBarTitle.text = getString(R.string.space_manage_rooms_and_spaces)
|
||||
.setTitle(R.string.space_manage_rooms_and_spaces)
|
||||
.allowBack()
|
||||
|
||||
views.createNewRoom.isVisible = false
|
||||
epoxyController.listener = this
|
||||
views.roomList.configureWith(epoxyController, hasFixedSize = true, dividerDrawable = R.drawable.divider_horizontal)
|
||||
@ -111,14 +114,15 @@ class SpaceManageRoomsFragment @Inject constructor(
|
||||
epoxyController.setData(state)
|
||||
|
||||
state.spaceSummary.invoke()?.let {
|
||||
views.appBarSpaceInfo.text = it.displayName
|
||||
toolbar?.subtitle = it.displayName
|
||||
}
|
||||
|
||||
if (state.selectedRooms.isNotEmpty()) {
|
||||
if (currentActionMode == null) {
|
||||
views.addRoomToSpaceToolbar.isVisible = true
|
||||
vectorBaseActivity.startSupportActionMode(this)
|
||||
} else {
|
||||
currentActionMode?.title = "${state.selectedRooms.size} selected"
|
||||
toolbar?.title = "${state.selectedRooms.size} selected"
|
||||
}
|
||||
// views.addRoomToSpaceToolbar.isVisible = false
|
||||
// views.addRoomToSpaceToolbar.startActionMode(this)
|
||||
|
@ -85,6 +85,7 @@ class SpaceSettingsFragment @Inject constructor(
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setupToolbar(views.roomSettingsToolbar)
|
||||
.allowBack()
|
||||
// roomProfileSharedActionViewModel = activityViewModelProvider.get(RoomProfileSharedActionViewModel::class.java)
|
||||
// setupRoomHistoryVisibilitySharedActionViewModel()
|
||||
setupRoomJoinRuleSharedActionViewModel()
|
||||
|
@ -64,9 +64,9 @@ class SpacePeopleFragment @Inject constructor(
|
||||
}
|
||||
|
||||
override fun invalidate() = withState(membersViewModel) { memberListState ->
|
||||
views.appBarTitle.text = getString(R.string.bottom_action_people)
|
||||
val memberCount = (memberListState.roomSummary.invoke()?.otherMemberIds?.size ?: 0) + 1
|
||||
views.appBarSpaceInfo.text = resources.getQuantityString(R.plurals.room_title_members, memberCount, memberCount)
|
||||
|
||||
toolbar?.subtitle = resources.getQuantityString(R.plurals.room_title_members, memberCount, memberCount)
|
||||
// views.listBuildingProgress.isVisible = true
|
||||
epoxyController.setData(memberListState)
|
||||
}
|
||||
@ -78,17 +78,12 @@ class SpacePeopleFragment @Inject constructor(
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
setupToolbar(views.addRoomToSpaceToolbar)
|
||||
.allowBack()
|
||||
setupRecyclerView()
|
||||
setupSearchView()
|
||||
|
||||
views.addRoomToSpaceToolbar.navigationIcon = drawableProvider.getDrawable(
|
||||
R.drawable.ic_close_24dp,
|
||||
colorProvider.getColorFromAttribute(R.attr.vctr_content_primary)
|
||||
)
|
||||
views.addRoomToSpaceToolbar.setNavigationOnClickListener {
|
||||
sharedActionViewModel.post(SpacePeopleSharedAction.Dismiss)
|
||||
}
|
||||
|
||||
viewModel.observeViewEvents {
|
||||
handleViewEvents(it)
|
||||
}
|
||||
|
@ -55,6 +55,10 @@ class ScanUserCodeFragment @Inject constructor() :
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
setupToolbar(views.qrScannerToolbar)
|
||||
.allowBack(useCross = true)
|
||||
|
||||
views.userCodeMyCodeButton.debouncedClicks {
|
||||
sharedViewModel.handle(UserCodeActions.SwitchMode(UserCodeState.Mode.SHOW))
|
||||
}
|
||||
@ -62,10 +66,6 @@ class ScanUserCodeFragment @Inject constructor() :
|
||||
views.userCodeOpenGalleryButton.debouncedClicks {
|
||||
MultiPicker.get(MultiPicker.IMAGE).single().startWith(pickImageActivityResultLauncher)
|
||||
}
|
||||
|
||||
views.userCodeClose.debouncedClicks {
|
||||
requireActivity().onBackPressed()
|
||||
}
|
||||
}
|
||||
|
||||
private val openCameraActivityResultLauncher = registerForPermissionsResult { allGranted, _ ->
|
||||
|
@ -52,9 +52,9 @@ class ShowUserCodeFragment @Inject constructor(
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
views.showUserCodeClose.debouncedClicks {
|
||||
sharedViewModel.handle(UserCodeActions.DismissAction)
|
||||
}
|
||||
setupToolbar(views.showUserCodeToolBar)
|
||||
.allowBack(useCross = true)
|
||||
|
||||
views.showUserCodeScanButton.debouncedClicks {
|
||||
if (checkPermissions(PERMISSIONS_FOR_TAKING_PHOTO, requireActivity(), openCameraActivityResultLauncher)) {
|
||||
doOpenQRCodeScanner()
|
||||
|
@ -72,9 +72,9 @@ class UserListFragment @Inject constructor(
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
sharedActionViewModel = activityViewModelProvider.get(UserListSharedActionViewModel::class.java)
|
||||
if (args.showToolbar) {
|
||||
views.userListTitle.text = args.title
|
||||
vectorBaseActivity.setSupportActionBar(views.userListToolbar)
|
||||
setupCloseView()
|
||||
setupToolbar(views.userListToolbar)
|
||||
.setTitle(args.title)
|
||||
.allowBack(useCross = true)
|
||||
views.userListToolbar.isVisible = true
|
||||
} else {
|
||||
views.userListToolbar.isVisible = false
|
||||
@ -153,12 +153,6 @@ class UserListFragment @Inject constructor(
|
||||
views.userListSearch.requestFocus()
|
||||
}
|
||||
|
||||
private fun setupCloseView() {
|
||||
views.userListClose.debouncedClicks {
|
||||
requireActivity().finish()
|
||||
}
|
||||
}
|
||||
|
||||
override fun invalidate() = withState(viewModel) {
|
||||
userListController.setData(it)
|
||||
}
|
||||
|
@ -44,7 +44,8 @@ class VectorWebViewActivity : VectorBaseActivity<ActivityVectorWebViewBinding>()
|
||||
}
|
||||
|
||||
override fun initUiAndData() {
|
||||
configureToolbar(views.webviewToolbar)
|
||||
setupToolbar(views.webviewToolbar)
|
||||
.allowBack()
|
||||
waitingView = views.simpleWebviewLoader
|
||||
|
||||
views.simpleWebview.settings.apply {
|
||||
|
@ -22,11 +22,9 @@ import android.content.Intent
|
||||
import androidx.core.view.isVisible
|
||||
import com.airbnb.mvrx.Mavericks
|
||||
import com.airbnb.mvrx.viewModel
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.extensions.addFragment
|
||||
import im.vector.app.core.platform.ToolbarConfigurable
|
||||
import im.vector.app.core.platform.VectorBaseActivity
|
||||
import im.vector.app.databinding.ActivityWidgetBinding
|
||||
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionBottomSheet
|
||||
@ -36,8 +34,7 @@ import org.matrix.android.sdk.api.session.events.model.Content
|
||||
import java.io.Serializable
|
||||
|
||||
@AndroidEntryPoint
|
||||
class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>(),
|
||||
ToolbarConfigurable {
|
||||
class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>() {
|
||||
|
||||
companion object {
|
||||
private const val WIDGET_FRAGMENT_TAG = "WIDGET_FRAGMENT_TAG"
|
||||
@ -77,7 +74,8 @@ class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>(),
|
||||
finish()
|
||||
return
|
||||
}
|
||||
configure(views.toolbar)
|
||||
setupToolbar(views.toolbar)
|
||||
.allowBack()
|
||||
views.toolbar.isVisible = widgetArgs.kind.nameRes != 0
|
||||
viewModel.observeViewEvents {
|
||||
when (it) {
|
||||
@ -129,8 +127,4 @@ class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>(),
|
||||
}
|
||||
finish()
|
||||
}
|
||||
|
||||
override fun configure(toolbar: MaterialToolbar) {
|
||||
configureToolbar(toolbar)
|
||||
}
|
||||
}
|
||||
|
@ -41,10 +41,10 @@
|
||||
android:layout_width="@dimen/call_pip_width"
|
||||
android:layout_height="@dimen/call_pip_height"
|
||||
android:layout_marginEnd="16dp"
|
||||
app:layout_goneMarginEnd="0dp"
|
||||
app:cardCornerRadius="@dimen/call_pip_radius"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_goneMarginEnd="0dp">
|
||||
|
||||
<org.webrtc.SurfaceViewRenderer
|
||||
android:id="@+id/pipRenderer"
|
||||
@ -104,11 +104,8 @@
|
||||
app:navigationIcon="@drawable/ic_back_24dp"
|
||||
app:navigationIconTint="@color/element_background_light"
|
||||
app:subtitle="3:10"
|
||||
app:subtitleTextAppearance="@style/TextAppearance.Vector.Caption"
|
||||
app:subtitleTextColor="@color/element_background_light"
|
||||
app:title="Video call"
|
||||
app:titleMarginTop="16dp"
|
||||
app:titleTextAppearance="@style/TextAppearance.Vector.Body.Medium"
|
||||
app:titleTextColor="@color/element_background_light" />
|
||||
|
||||
<ImageView
|
||||
|
@ -19,49 +19,8 @@
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/phoneBookToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/phoneBookClose"
|
||||
android:layout_width="@dimen/layout_touch_size"
|
||||
android:layout_height="@dimen/layout_touch_size"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/action_close"
|
||||
android:focusable="true"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_x_18dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="?vctr_content_secondary"
|
||||
tools:ignore="MissingPrefix" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/phoneBookTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/contacts_book_title"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@id/phoneBookClose"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
android:layout_height="?actionBarSize"
|
||||
app:title="@string/contacts_book_title"/>
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/phoneBookFilterContainer"
|
||||
|
@ -19,49 +19,8 @@
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/createRoomToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/createDirectRoomClose"
|
||||
android:layout_width="@dimen/layout_touch_size"
|
||||
android:layout_height="@dimen/layout_touch_size"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/action_close"
|
||||
android:focusable="true"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_x_18dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="?vctr_content_secondary"
|
||||
tools:ignore="MissingPrefix" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createDirectRoomTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/direct_chats_header"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@id/createDirectRoomClose"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
android:layout_height="?actionBarSize"
|
||||
app:title="@string/direct_chats_header" />
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/createDirectRoomSearchByIdContainer"
|
||||
|
@ -15,49 +15,7 @@
|
||||
android:id="@+id/createPollToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize"
|
||||
app:contentInsetStart="0dp">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/createPollClose"
|
||||
android:layout_width="@dimen/layout_touch_size"
|
||||
android:layout_height="@dimen/layout_touch_size"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/action_close"
|
||||
android:focusable="true"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_x_18dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="?vctr_content_secondary"
|
||||
tools:ignore="MissingPrefix" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createPollTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/create_poll_title"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@id/createPollClose"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
app:title="@string/create_poll_title" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
@ -19,46 +19,8 @@
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/createRoomToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/createRoomClose"
|
||||
android:layout_width="@dimen/layout_touch_size"
|
||||
android:layout_height="@dimen/layout_touch_size"
|
||||
android:contentDescription="@string/action_close"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_x_18dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="?vctr_content_secondary"
|
||||
tools:ignore="MissingPrefix" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createRoomTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/create_room_title"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@id/createRoomClose"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
android:layout_height="?actionBarSize"
|
||||
app:title="@string/direct_chats_header" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
@ -86,19 +86,19 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/groupToolbarTitleView"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:gravity="start"
|
||||
android:maxLines="1"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Widget.ActionBarTitle"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
tools:text="@tools:sample/lorem/random" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/groupToolbarSpaceTitleView"
|
||||
style="@style/Widget.Vector.TextView.Subtitle"
|
||||
style="@style/TextAppearance.Vector.Widget.ActionBarSubTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
|
@ -71,7 +71,6 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/matrixProfileToolbarTitleView"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
@ -79,6 +78,7 @@
|
||||
android:alpha="0"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Widget.ActionBarTitle"
|
||||
android:textColor="?vctr_content_primary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
@ -11,54 +10,13 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
app:layout_constraintTop_toBottomOf="@id/appBarLayout">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/qrScannerToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/qrScannerClose"
|
||||
android:layout_width="@dimen/layout_touch_size"
|
||||
android:layout_height="@dimen/layout_touch_size"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/action_close"
|
||||
android:focusable="true"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_x_18dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="?vctr_content_secondary"
|
||||
tools:ignore="MissingPrefix" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/qrScannerTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/add_by_qr_code"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@id/qrScannerClose"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
android:layout_height="?actionBarSize"
|
||||
app:title="@string/add_by_qr_code" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
@ -16,49 +15,8 @@
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/qrScannerToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/userCodeClose"
|
||||
android:layout_width="@dimen/layout_touch_size"
|
||||
android:layout_height="@dimen/layout_touch_size"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/action_close"
|
||||
android:focusable="true"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_x_18dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="?vctr_content_secondary"
|
||||
tools:ignore="MissingPrefix" />
|
||||
|
||||
<TextView
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/user_code_scan"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@id/userCodeClose"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
|
||||
android:layout_height="?actionBarSize"
|
||||
app:title="@string/user_code_scan" />
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<me.dm7.barcodescanner.zxing.ZXingScannerView
|
||||
|
@ -27,42 +27,8 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:minHeight="0dp"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap|enterAlways">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|start"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/appBarTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:gravity="start|center"
|
||||
android:maxLines="1"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
tools:text="@tools:sample/lorem/random" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/appBarSpaceInfo"
|
||||
style="@style/Widget.Vector.TextView.Subtitle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:gravity="start|center"
|
||||
android:maxLines="1"
|
||||
android:textColor="?vctr_content_secondary"
|
||||
tools:text="@tools:sample/lorem/random" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
app:title="@string/bottom_action_people"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap|enterAlways"/>
|
||||
|
||||
<androidx.appcompat.widget.SearchView
|
||||
android:id="@+id/memberNameFilter"
|
||||
|
@ -85,14 +85,13 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/roomToolbarTitleView"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Widget.ActionBarTitle"
|
||||
app:layout_constraintBottom_toTopOf="@id/roomToolbarSubtitleView"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
@ -104,14 +103,13 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/roomToolbarSubtitleView"
|
||||
style="@style/Widget.Vector.TextView.Body"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="7dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Widget.ActionBarSubTitle"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
|
@ -39,13 +39,13 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/roomPreviewNoPreviewToolbarTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Widget.ActionBarTitle"
|
||||
android:textColor="?vctr_content_primary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -48,13 +48,13 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/roomSettingsToolbarTitleView"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Widget.ActionBarTitle"
|
||||
android:textColor="?vctr_content_primary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -46,13 +46,13 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/roomUploadsToolbarTitleView"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Widget.ActionBarTitle"
|
||||
android:textColor="?vctr_content_primary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -24,42 +24,8 @@
|
||||
android:id="@+id/addRoomToSpaceToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:minHeight="0dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|start"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/appBarTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:gravity="start|center"
|
||||
android:maxLines="1"
|
||||
android:text="@string/space_add_existing_rooms"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/appBarSpaceInfo"
|
||||
style="@style/Widget.Vector.TextView.Subtitle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:gravity="start|center"
|
||||
android:maxLines="1"
|
||||
android:textColor="?vctr_content_secondary"
|
||||
tools:text="@sample/spaces.json/data/name" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
android:minHeight="0dp"
|
||||
app:title="@string/space_add_existing_rooms"/>
|
||||
|
||||
<androidx.appcompat.widget.SearchView
|
||||
android:id="@+id/publicRoomsFilter"
|
||||
|
@ -25,30 +25,8 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:minHeight="0dp"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap|enterAlways">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|start"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/appBarTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:gravity="start|center"
|
||||
android:maxLines="1"
|
||||
android:text="@string/pick_tings_to_leave"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
app:title="@string/pick_tings_to_leave"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap|enterAlways"/>
|
||||
|
||||
<androidx.appcompat.widget.SearchView
|
||||
android:id="@+id/publicRoomsFilter"
|
||||
|
@ -41,13 +41,13 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/roomPreviewNoPreviewToolbarTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Widget.ActionBarTitle"
|
||||
android:textColor="?vctr_content_primary"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -33,17 +33,17 @@
|
||||
android:padding="8dp">
|
||||
|
||||
<TextView
|
||||
style="@style/Widget.Vector.TextView.ActionBarTitle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/select_spaces" />
|
||||
android:text="@string/select_spaces"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Widget.ActionBarTitle" />
|
||||
|
||||
<TextView
|
||||
style="@style/Widget.Vector.TextView.Body"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="8dp"
|
||||
android:text="@string/decide_which_spaces_can_access"
|
||||
android:textAppearance="@style/Widget.Vector.TextView.Subtitle"
|
||||
android:textColor="?vctr_content_secondary" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -92,8 +92,8 @@
|
||||
android:paddingEnd="16dp">
|
||||
|
||||
<Button
|
||||
style="@style/Widget.Vector.Button.Positive"
|
||||
android:id="@+id/okButton"
|
||||
style="@style/Widget.Vector.Button.Positive"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/ok" />
|
||||
|
@ -19,46 +19,8 @@
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/showUserCodeToolBar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/showUserCodeClose"
|
||||
android:layout_width="@dimen/layout_touch_size"
|
||||
android:layout_height="@dimen/layout_touch_size"
|
||||
android:contentDescription="@string/action_close"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_x_18dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="?vctr_content_secondary"
|
||||
tools:ignore="MissingPrefix" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/showUserCodeTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/add_by_qr_code"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@id/showUserCodeClose"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
android:layout_height="?actionBarSize"
|
||||
app:title="@string/add_by_qr_code"/>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
@ -43,7 +43,6 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/userDirectoryTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
@ -51,6 +50,7 @@
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/direct_chats_header"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Widget.ActionBarTitle"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
|
@ -14,49 +14,8 @@
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/userListToolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/userListClose"
|
||||
android:layout_width="@dimen/layout_touch_size"
|
||||
android:layout_height="@dimen/layout_touch_size"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/action_close"
|
||||
android:focusable="true"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_x_18dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="?vctr_content_secondary"
|
||||
tools:ignore="MissingPrefix" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/userListTitle"
|
||||
style="@style/Widget.Vector.TextView.HeadlineMedium"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/fab_menu_create_chat"
|
||||
android:textColor="?vctr_content_primary"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toEndOf="@id/userListClose"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.MaterialToolbar>
|
||||
android:layout_height="?actionBarSize"
|
||||
app:title="@string/fab_menu_create_chat"/>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user