feat: implement debug logging functionality and UI for message processing
This commit is contained in:
@@ -11,8 +11,13 @@ import androidx.compose.ui.graphics.graphicsLayer
|
||||
import androidx.compose.ui.input.pointer.*
|
||||
import androidx.compose.ui.input.pointer.util.VelocityTracker
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.platform.LocalFocusManager
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.compose.ui.unit.dp
|
||||
import android.content.Context
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
// Telegram's CubicBezierInterpolator(0.25, 0.1, 0.25, 1.0)
|
||||
@@ -69,6 +74,11 @@ fun SwipeBackContainer(
|
||||
// Coroutine scope for animations
|
||||
val scope = rememberCoroutineScope()
|
||||
|
||||
// 🔥 Keyboard controller для скрытия клавиатуры при свайпе (надёжный метод через InputMethodManager)
|
||||
val context = LocalContext.current
|
||||
val view = LocalView.current
|
||||
val focusManager = LocalFocusManager.current
|
||||
|
||||
// Current offset: use drag offset during drag, animatable otherwise
|
||||
val currentOffset = if (isDragging) dragOffset else offsetAnimatable.value
|
||||
|
||||
@@ -159,6 +169,10 @@ fun SwipeBackContainer(
|
||||
startedSwipe = true
|
||||
isDragging = true
|
||||
dragOffset = offsetAnimatable.value
|
||||
// 🔥 Скрываем клавиатуру при начале свайпа (надёжный метод)
|
||||
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
||||
imm.hideSoftInputFromWindow(view.windowToken, 0)
|
||||
focusManager.clearFocus()
|
||||
}
|
||||
|
||||
if (startedSwipe) {
|
||||
|
||||
@@ -443,10 +443,11 @@ fun ProfileMetaballOverlay(
|
||||
|
||||
// Show connector only when avatar is small enough (like Telegram isDrawing)
|
||||
// AND not when expanding (no metaball effect when expanded)
|
||||
val showConnector = expansionProgress == 0f && avatarState.isDrawing && avatarState.showBlob && distance < maxDist * 1.5f
|
||||
// AND only when hasAvatar is true (no drop animation for placeholder)
|
||||
val showConnector = hasAvatar && expansionProgress == 0f && avatarState.isDrawing && avatarState.showBlob && distance < maxDist * 1.5f
|
||||
|
||||
// Don't show black metaball shapes when expanded
|
||||
val showMetaballLayer = expansionProgress == 0f
|
||||
// Don't show black metaball shapes when expanded or when no avatar
|
||||
val showMetaballLayer = hasAvatar && expansionProgress == 0f
|
||||
|
||||
Box(modifier = modifier
|
||||
.fillMaxSize()
|
||||
|
||||
Reference in New Issue
Block a user