mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-29 14:38:45 +03:00
Toggle ip address on others section of the main screen.
This commit is contained in:
parent
456762a464
commit
eed2a74d07
4 changed files with 24 additions and 5 deletions
|
@ -316,10 +316,11 @@ class VectorSettingsDevicesFragment :
|
||||||
multiSignoutItem.title = stringProvider.getQuantityString(R.plurals.device_manager_other_sessions_multi_signout_all, nbDevices, nbDevices)
|
multiSignoutItem.title = stringProvider.getQuantityString(R.plurals.device_manager_other_sessions_multi_signout_all, nbDevices, nbDevices)
|
||||||
multiSignoutItem.setTextColor(color)
|
multiSignoutItem.setTextColor(color)
|
||||||
views.deviceListOtherSessions.isVisible = true
|
views.deviceListOtherSessions.isVisible = true
|
||||||
|
val devices = if (isShowingIpAddress) otherDevices else otherDevices.map { it.copy(deviceInfo = it.deviceInfo.copy(lastSeenIp = null)) }
|
||||||
views.deviceListOtherSessions.render(
|
views.deviceListOtherSessions.render(
|
||||||
devices = otherDevices.take(NUMBER_OF_OTHER_DEVICES_TO_RENDER),
|
devices = devices.take(NUMBER_OF_OTHER_DEVICES_TO_RENDER),
|
||||||
totalNumberOfDevices = otherDevices.size,
|
totalNumberOfDevices = devices.size,
|
||||||
showViewAll = otherDevices.size > NUMBER_OF_OTHER_DEVICES_TO_RENDER
|
showViewAll = devices.size > NUMBER_OF_OTHER_DEVICES_TO_RENDER
|
||||||
)
|
)
|
||||||
views.deviceListHeaderOtherSessions.menu.findItem(R.id.otherSessionsHeaderToggleIpAddress).title = if (isShowingIpAddress) {
|
views.deviceListHeaderOtherSessions.menu.findItem(R.id.otherSessionsHeaderToggleIpAddress).title = if (isShowingIpAddress) {
|
||||||
stringProvider.getString(R.string.device_manager_other_sessions_hide_ip_address)
|
stringProvider.getString(R.string.device_manager_other_sessions_hide_ip_address)
|
||||||
|
|
|
@ -29,6 +29,7 @@ import im.vector.app.core.epoxy.ClickListener
|
||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
|
import im.vector.app.core.epoxy.VectorEpoxyHolder
|
||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
|
import im.vector.app.core.epoxy.VectorEpoxyModel
|
||||||
import im.vector.app.core.epoxy.onClick
|
import im.vector.app.core.epoxy.onClick
|
||||||
|
import im.vector.app.core.extensions.setTextOrHide
|
||||||
import im.vector.app.core.resources.ColorProvider
|
import im.vector.app.core.resources.ColorProvider
|
||||||
import im.vector.app.core.resources.DrawableProvider
|
import im.vector.app.core.resources.DrawableProvider
|
||||||
import im.vector.app.core.resources.StringProvider
|
import im.vector.app.core.resources.StringProvider
|
||||||
|
@ -69,6 +70,9 @@ abstract class OtherSessionItem : VectorEpoxyModel<OtherSessionItem.Holder>(R.la
|
||||||
@EpoxyAttribute
|
@EpoxyAttribute
|
||||||
var selected: Boolean = false
|
var selected: Boolean = false
|
||||||
|
|
||||||
|
@EpoxyAttribute
|
||||||
|
var ipAddress: String? = null
|
||||||
|
|
||||||
@EpoxyAttribute(EpoxyAttribute.Option.DoNotHash)
|
@EpoxyAttribute(EpoxyAttribute.Option.DoNotHash)
|
||||||
var clickListener: ClickListener? = null
|
var clickListener: ClickListener? = null
|
||||||
|
|
||||||
|
@ -100,6 +104,7 @@ abstract class OtherSessionItem : VectorEpoxyModel<OtherSessionItem.Holder>(R.la
|
||||||
holder.otherSessionDescriptionTextView.setTextColor(it)
|
holder.otherSessionDescriptionTextView.setTextColor(it)
|
||||||
}
|
}
|
||||||
holder.otherSessionDescriptionTextView.setCompoundDrawablesWithIntrinsicBounds(sessionDescriptionDrawable, null, null, null)
|
holder.otherSessionDescriptionTextView.setCompoundDrawablesWithIntrinsicBounds(sessionDescriptionDrawable, null, null, null)
|
||||||
|
holder.otherSessionIpAddressTextView.setTextOrHide(ipAddress)
|
||||||
holder.otherSessionItemBackgroundView.isSelected = selected
|
holder.otherSessionItemBackgroundView.isSelected = selected
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,6 +113,7 @@ abstract class OtherSessionItem : VectorEpoxyModel<OtherSessionItem.Holder>(R.la
|
||||||
val otherSessionVerificationStatusImageView by bind<ShieldImageView>(R.id.otherSessionVerificationStatusImageView)
|
val otherSessionVerificationStatusImageView by bind<ShieldImageView>(R.id.otherSessionVerificationStatusImageView)
|
||||||
val otherSessionNameTextView by bind<TextView>(R.id.otherSessionNameTextView)
|
val otherSessionNameTextView by bind<TextView>(R.id.otherSessionNameTextView)
|
||||||
val otherSessionDescriptionTextView by bind<TextView>(R.id.otherSessionDescriptionTextView)
|
val otherSessionDescriptionTextView by bind<TextView>(R.id.otherSessionDescriptionTextView)
|
||||||
|
val otherSessionIpAddressTextView by bind<TextView>(R.id.otherSessionIpAddressTextView)
|
||||||
val otherSessionItemBackgroundView by bind<View>(R.id.otherSessionItemBackground)
|
val otherSessionItemBackgroundView by bind<View>(R.id.otherSessionItemBackground)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,7 @@ class OtherSessionsController @Inject constructor(
|
||||||
sessionDescription(description)
|
sessionDescription(description)
|
||||||
sessionDescriptionDrawable(descriptionDrawable)
|
sessionDescriptionDrawable(descriptionDrawable)
|
||||||
sessionDescriptionColor(descriptionColor)
|
sessionDescriptionColor(descriptionColor)
|
||||||
|
ipAddress(device.deviceInfo.lastSeenIp)
|
||||||
stringProvider(host.stringProvider)
|
stringProvider(host.stringProvider)
|
||||||
colorProvider(host.colorProvider)
|
colorProvider(host.colorProvider)
|
||||||
drawableProvider(host.drawableProvider)
|
drawableProvider(host.drawableProvider)
|
||||||
|
|
|
@ -67,12 +67,23 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="2dp"
|
android:layout_marginTop="2dp"
|
||||||
android:drawablePadding="8dp"
|
android:drawablePadding="8dp"
|
||||||
app:layout_constraintBottom_toBottomOf="@id/otherSessionDeviceTypeImageView"
|
|
||||||
app:layout_constraintEnd_toEndOf="@id/otherSessionNameTextView"
|
app:layout_constraintEnd_toEndOf="@id/otherSessionNameTextView"
|
||||||
app:layout_constraintStart_toStartOf="@id/otherSessionNameTextView"
|
app:layout_constraintStart_toStartOf="@id/otherSessionNameTextView"
|
||||||
app:layout_constraintTop_toBottomOf="@id/otherSessionNameTextView"
|
app:layout_constraintTop_toBottomOf="@id/otherSessionNameTextView"
|
||||||
tools:text="@string/device_manager_verification_status_verified" />
|
tools:text="@string/device_manager_verification_status_verified" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/otherSessionIpAddressTextView"
|
||||||
|
style="@style/TextAppearance.Vector.Body.DevicesManagement"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:drawablePadding="8dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/otherSessionNameTextView"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/otherSessionNameTextView"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/otherSessionDescriptionTextView"
|
||||||
|
tools:text="0.0.0.0" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
|
@ -80,6 +91,6 @@
|
||||||
android:background="?vctr_content_quinary"
|
android:background="?vctr_content_quinary"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="@id/otherSessionNameTextView"
|
app:layout_constraintStart_toStartOf="@id/otherSessionNameTextView"
|
||||||
app:layout_constraintTop_toBottomOf="@id/otherSessionItemBackground" />
|
app:layout_constraintTop_toBottomOf="@id/otherSessionIpAddressTextView" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
Loading…
Reference in a new issue