Skip to content

Commit

Permalink
[i74] fix ui artefacts
Browse files Browse the repository at this point in the history
  • Loading branch information
kanat committed Jul 5, 2023
1 parent 80a6664 commit 2563daf
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public var Attachment.uploadId: String?
* Duration of the attachment in seconds.
*/
public var Attachment.duration: Float?
get() = extraData[EXTRA_DURATION] as? Float
get() = (extraData[EXTRA_DURATION] as? Number)?.toFloat()
set(value) {
value?.also {
extraData[EXTRA_DURATION] = it
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,9 @@ public fun Float.limitTo(min: Float, max: Float): Float {
this > max -> max
else -> this
}
}

public fun Float.isInt(): Boolean {
val diff = this - toInt()
return diff <= 0
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import android.view.View
import androidx.appcompat.widget.LinearLayoutCompat
import androidx.core.view.isVisible
import androidx.core.view.setPadding
import io.getstream.chat.android.extensions.isInt
import io.getstream.chat.android.ui.R
import io.getstream.chat.android.ui.databinding.StreamUiAudioRecordPlayerBinding
import io.getstream.chat.android.ui.feature.messages.list.background.ShapeAppearanceModelFactory
Expand Down Expand Up @@ -63,6 +64,7 @@ public class AudioRecordPlayerView : LinearLayoutCompat {
* @param duration
*/
public fun setTotalDuration(duration: String) {
logger.i { "[setTotalDuration] duration: $duration" }
totalDuration = duration
setDuration(duration)
}
Expand Down Expand Up @@ -153,7 +155,11 @@ public class AudioRecordPlayerView : LinearLayoutCompat {
* @param speed
*/
public fun setSpeedText(speed: Float) {
playerView.speedButton.text = "x${speed}"
logger.d { "[setSpeedText] speed: $speed" }
playerView.speedButton.text = when (speed.isInt()) {
true -> "x${speed.toInt()}"
else -> "x${speed}"
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,18 @@ public class AudioRecordsGroupView : LinearLayoutCompat {
}
}

override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
logger.d { "[onDetachedFromWindow] no args" }
val audioPlayer = ChatClient.instance().audioPlayer
audioAttachments?.forEach { attachment ->
audioPlayer.resetAudio(attachment.hashCode())
}
}

private fun AudioPlayer.registerStateChange(playerView: AudioRecordPlayerView, hashCode: Int) {
onAudioStateChange(hashCode) { audioState ->
logger.d { "[onAudioStateChange] audioState: $audioState" }
when (audioState) {
AudioState.LOADING -> playerView.setLoading()
AudioState.PAUSE -> playerView.setPaused()
Expand All @@ -143,6 +153,7 @@ public class AudioRecordsGroupView : LinearLayoutCompat {
hashCode: Int,
) {
onPlayButtonPress {
logger.d { "[onPlayButtonPress] no args" }
audioPlayer.clearTracks()
audioAttachments?.forEachIndexed { index, attachment ->
audioPlayer.registerTrack(attachment.assetUrl!!, attachment.hashCode(), index)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ internal class AudioWavesSeekBar : LinearLayoutCompat {
addView(tracker, layoutParamsButton)
}

private val barPadding = DEFAULT_BAR_PADDING.dpToPx()
private val barPadding = 0 //DEFAULT_BAR_PADDING.dpToPx()
private val realPaddingStart = paddingStart + barPadding
private val realPaddingEnd = paddingEnd + barPadding
private var barWidth: Float? = null
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="34dp"
android:height="40dp"
android:viewportWidth="34"
android:viewportHeight="40">
<path
android:pathData="M17.717,33.172C18.235,33.172 18.424,33.655 18.424,34.18C18.424,34.642 18.298,35.195 17.717,35.195C17.171,35.195 16.989,34.642 16.989,34.145C16.989,33.683 17.171,33.172 17.717,33.172ZM19.572,31.002H18.382V32.759H18.368C18.123,32.43 17.78,32.262 17.332,32.262C16.303,32.262 15.799,33.158 15.799,34.103C15.799,35.125 16.282,36.105 17.423,36.105C17.843,36.105 18.193,35.923 18.424,35.58H18.438V36H19.572V31.002ZM12.71,34.187C12.71,33.725 12.877,33.172 13.431,33.172C13.983,33.172 14.158,33.725 14.158,34.187C14.158,34.649 13.983,35.195 13.431,35.195C12.877,35.195 12.71,34.649 12.71,34.187ZM11.519,34.187C11.519,35.279 12.304,36.105 13.431,36.105C14.557,36.105 15.349,35.279 15.349,34.187C15.349,33.095 14.557,32.262 13.431,32.262C12.304,32.262 11.519,33.095 11.519,34.187ZM21.839,32.367H22.574V33.137H21.839V34.789C21.839,35.076 22.007,35.139 22.266,35.139C22.314,35.139 22.364,35.136 22.415,35.132C22.467,35.129 22.521,35.125 22.574,35.125V36C22.481,36.003 22.388,36.01 22.295,36.017C22.171,36.026 22.047,36.035 21.923,36.035C20.908,36.035 20.649,35.741 20.649,34.754V33.137H20.047V32.367H20.649V31.268H21.839V32.367Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M0,28H34V37C34,38.657 32.657,40 31,40H3C1.343,40 0,38.657 0,37V28Z"
android:fillColor="#2727B0"/>
<path
android:pathData="M0,3C0,1.343 1.343,0 3,0H23L34,11V28H0V3Z"
android:fillColor="#F5F5F5"/>
<path
android:pathData="M34,11L26,11C24.343,11 23,9.657 23,8V0L34,11Z"
android:fillColor="#DBDBDB"/>
<path
android:pathData="M8.879,21.941H12.298L16.952,24.749C17.031,24.814 17.129,24.849 17.231,24.849C17.474,24.849 17.67,24.652 17.67,24.409V12.44C17.67,12.338 17.635,12.24 17.571,12.161C17.417,11.973 17.14,11.946 16.952,12.1L12.298,14.908H8.879C8.394,14.908 8,15.302 8,15.787V21.062C8,21.547 8.394,21.941 8.879,21.941ZM12.926,16.666L15.912,15.222V21.627L12.926,20.183H9.758V16.666H12.926ZM19.851,16.352C19.474,16.409 19.24,16.664 19.328,16.919L19.326,16.92C19.529,17.5 19.631,18.098 19.628,18.695C19.631,19.298 19.524,19.901 19.32,20.491C19.229,20.746 19.468,21 19.847,21.06C19.901,21.068 19.954,21.072 20.008,21.072C20.326,21.072 20.616,20.923 20.692,20.706C20.919,20.045 21.034,19.37 21.037,18.695C21.035,18.025 20.921,17.358 20.695,16.704C20.605,16.448 20.229,16.291 19.851,16.352ZM22.16,14.603C22.525,14.516 22.926,14.645 23.055,14.894C23.689,16.116 24,17.404 24,18.692C24,19.99 23.68,21.284 23.052,22.515C22.95,22.712 22.676,22.834 22.383,22.834C22.307,22.834 22.23,22.826 22.154,22.809C21.786,22.725 21.591,22.454 21.719,22.208C22.299,21.076 22.592,19.884 22.593,18.692C22.593,17.506 22.305,16.322 21.728,15.203C21.6,14.956 21.795,14.686 22.16,14.603Z"
android:fillColor="#2727B0"
android:fillType="evenOdd"/>
<path
android:pathData="M13.944,36C13.899,35.911 13.866,35.801 13.845,35.668C13.606,35.935 13.295,36.068 12.912,36.068C12.55,36.068 12.249,35.964 12.01,35.754C11.773,35.544 11.654,35.28 11.654,34.961C11.654,34.569 11.799,34.268 12.088,34.059C12.38,33.849 12.8,33.743 13.35,33.741H13.804V33.529C13.804,33.358 13.76,33.221 13.671,33.119C13.584,33.016 13.446,32.965 13.257,32.965C13.091,32.965 12.96,33.005 12.864,33.084C12.771,33.164 12.724,33.274 12.724,33.413H11.736C11.736,33.198 11.802,33 11.935,32.818C12.067,32.636 12.254,32.493 12.495,32.391C12.737,32.286 13.008,32.233 13.309,32.233C13.764,32.233 14.125,32.348 14.392,32.579C14.661,32.806 14.795,33.128 14.795,33.542V35.146C14.798,35.496 14.847,35.762 14.942,35.942V36H13.944ZM13.127,35.313C13.273,35.313 13.408,35.281 13.531,35.217C13.654,35.151 13.745,35.063 13.804,34.954V34.318H13.435C12.941,34.318 12.677,34.489 12.646,34.831L12.642,34.889C12.642,35.012 12.685,35.114 12.772,35.193C12.859,35.273 12.977,35.313 13.127,35.313ZM17.697,36C17.652,35.911 17.619,35.801 17.598,35.668C17.359,35.935 17.048,36.068 16.665,36.068C16.303,36.068 16.002,35.964 15.763,35.754C15.526,35.544 15.407,35.28 15.407,34.961C15.407,34.569 15.552,34.268 15.841,34.059C16.133,33.849 16.553,33.743 17.103,33.741H17.557V33.529C17.557,33.358 17.513,33.221 17.424,33.119C17.337,33.016 17.199,32.965 17.01,32.965C16.844,32.965 16.713,33.005 16.617,33.084C16.524,33.164 16.477,33.274 16.477,33.413H15.489C15.489,33.198 15.555,33 15.688,32.818C15.82,32.636 16.007,32.493 16.248,32.391C16.49,32.286 16.761,32.233 17.062,32.233C17.517,32.233 17.878,32.348 18.145,32.579C18.414,32.806 18.548,33.128 18.548,33.542V35.146C18.551,35.496 18.6,35.762 18.695,35.942V36H17.697ZM16.88,35.313C17.026,35.313 17.161,35.281 17.284,35.217C17.407,35.151 17.498,35.063 17.557,34.954V34.318H17.188C16.694,34.318 16.43,34.489 16.398,34.831L16.395,34.889C16.395,35.012 16.438,35.114 16.525,35.193C16.611,35.273 16.73,35.313 16.88,35.313ZM20.845,35.272C21.028,35.272 21.176,35.222 21.29,35.122C21.403,35.021 21.463,34.888 21.467,34.722H22.394C22.391,34.972 22.323,35.202 22.188,35.412C22.054,35.619 21.869,35.781 21.635,35.897C21.402,36.011 21.145,36.068 20.862,36.068C20.334,36.068 19.917,35.901 19.611,35.566C19.306,35.229 19.153,34.764 19.153,34.171V34.106C19.153,33.537 19.305,33.082 19.608,32.743C19.911,32.403 20.327,32.233 20.855,32.233C21.318,32.233 21.688,32.366 21.966,32.63C22.247,32.892 22.389,33.242 22.394,33.679H21.467C21.463,33.488 21.403,33.333 21.29,33.214C21.176,33.094 21.025,33.033 20.838,33.033C20.608,33.033 20.434,33.118 20.315,33.286C20.199,33.452 20.141,33.724 20.141,34.1V34.202C20.141,34.583 20.199,34.856 20.315,35.022C20.432,35.189 20.608,35.272 20.845,35.272Z"
android:fillColor="#ffffff"/>
</vector>
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,35 @@
limitations under the License.
-->
<merge 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="wrap_content"
android:orientation="horizontal"
android:padding="6dp"
tools:parentTag="androidx.appcompat.widget.LinearLayoutCompat"
>

<FrameLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_width="36dp"
android:layout_height="56dp"
android:layout_marginStart="6dp"
>

<com.google.android.material.progressindicator.CircularProgressIndicator
<ProgressBar
android:id="@+id/loadingView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_gravity="center"
android:indeterminateDrawable="@drawable/stream_ui_rotating_indeterminate_progress_gradient"
android:visibility="visible"
/>

<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/playButton"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_gravity="center"
android:layout_marginVertical="8dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="4dp"
android:background="@drawable/stream_ui_white_shape_circular"
android:elevation="2dp"
android:padding="6dp"
Expand All @@ -59,51 +60,49 @@
android:gravity="center"
android:paddingHorizontal="6dp"
android:textAlignment="center"
android:visibility="gone"
android:textColor="#747881"
android:textSize="14sp"
android:visibility="visible"
tools:text="4:19"
/>

<io.getstream.chat.android.ui.feature.messages.list.adapter.view.internal.AudioWavesSeekBar
android:id="@+id/progressBar"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="36dp"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:background="@android:color/transparent"
android:paddingHorizontal="5dp"
android:paddingVertical="5dp"
/>

<FrameLayout
android:layout_width="wrap_content"
android:layout_width="48dp"
android:layout_height="match_parent"
android:layout_marginEnd="8dp"
>

<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/fileView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/stream_ui_ic_file_mp3"
android:src="@drawable/stream_ui_ic_file_aac"
android:visibility="visible"
/>

<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/speedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="36dp"
android:layout_height="32dp"
android:layout_gravity="center"
android:layout_marginHorizontal="2dp"
android:background="@drawable/stream_ui_literal_white_shape_16dp_corners"
android:elevation="2dp"
android:gravity="center"
android:padding="8dp"
android:text="x1.0"
android:textAlignment="center"
android:textColor="@color/stream_ui_literal_black"
android:textStyle="bold"
android:visibility="visible"
tools:text="x1.0"
android:textColor="#080707"
android:textSize="14sp"
android:visibility="gone"
tools:text="x0.5"
/>
</FrameLayout>

Expand Down

0 comments on commit 2563daf

Please sign in to comment.