[Media TTT] Move receiver chip to the bottom of the screen.
Fixes: 225897586 Test: manual (see screenshots in bug) Test: media.taptotransfer tests Change-Id: I726019760fa32450c5aa096a9ce2b2118859fd56
This commit is contained in:
@@ -14,7 +14,6 @@
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<!-- TODO(b/203800646): layout_marginTop doesn't seem to work on some large screens. -->
|
||||
<FrameLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/media_ttt_receiver_chip"
|
||||
|
||||
@@ -25,17 +25,14 @@ import android.graphics.drawable.Drawable
|
||||
import android.os.PowerManager
|
||||
import android.os.SystemClock
|
||||
import android.util.Log
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
import android.view.accessibility.AccessibilityManager
|
||||
import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_CONTROLS
|
||||
import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_ICONS
|
||||
import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_TEXT
|
||||
import android.widget.LinearLayout
|
||||
import com.android.internal.widget.CachingIconView
|
||||
import com.android.settingslib.Utils
|
||||
import com.android.systemui.R
|
||||
@@ -65,12 +62,15 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>(
|
||||
private val powerManager: PowerManager,
|
||||
@LayoutRes private val chipLayoutRes: Int
|
||||
) {
|
||||
/** The window layout parameters we'll use when attaching the view to a window. */
|
||||
|
||||
/**
|
||||
* Window layout params that will be used as a starting point for the [windowLayoutParams] of
|
||||
* all subclasses.
|
||||
*/
|
||||
@SuppressLint("WrongConstant") // We're allowed to use TYPE_VOLUME_OVERLAY
|
||||
private val windowLayoutParams = WindowManager.LayoutParams().apply {
|
||||
internal val commonWindowLayoutParams = WindowManager.LayoutParams().apply {
|
||||
width = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
gravity = Gravity.TOP.or(Gravity.CENTER_HORIZONTAL)
|
||||
type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY
|
||||
flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
|
||||
title = WINDOW_TITLE
|
||||
@@ -78,6 +78,14 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>(
|
||||
setTrustedOverlay()
|
||||
}
|
||||
|
||||
/**
|
||||
* The window layout parameters we'll use when attaching the view to a window.
|
||||
*
|
||||
* Subclasses must override this to provide their specific layout params, and they should use
|
||||
* [commonWindowLayoutParams] as part of their layout params.
|
||||
*/
|
||||
internal abstract val windowLayoutParams: WindowManager.LayoutParams
|
||||
|
||||
/** The chip view currently being displayed. Null if the chip is not being displayed. */
|
||||
private var chipView: ViewGroup? = null
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.media.MediaRoute2Info
|
||||
import android.os.Handler
|
||||
import android.os.PowerManager
|
||||
import android.util.Log
|
||||
import android.view.Gravity
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
import android.view.accessibility.AccessibilityManager
|
||||
@@ -69,6 +70,11 @@ class MediaTttChipControllerReceiver @Inject constructor(
|
||||
powerManager,
|
||||
R.layout.media_ttt_chip_receiver
|
||||
) {
|
||||
override val windowLayoutParams = commonWindowLayoutParams.apply {
|
||||
gravity = Gravity.BOTTOM.or(Gravity.CENTER_HORIZONTAL)
|
||||
verticalMargin = 0.1f
|
||||
}
|
||||
|
||||
private val commandQueueCallbacks = object : CommandQueue.Callbacks {
|
||||
override fun updateMediaTapToTransferReceiverDisplay(
|
||||
@StatusBarManager.MediaTransferReceiverState displayState: Int,
|
||||
|
||||
@@ -21,6 +21,7 @@ import android.content.Context
|
||||
import android.media.MediaRoute2Info
|
||||
import android.os.PowerManager
|
||||
import android.util.Log
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
@@ -69,6 +70,10 @@ class MediaTttChipControllerSender @Inject constructor(
|
||||
powerManager,
|
||||
R.layout.media_ttt_chip
|
||||
) {
|
||||
override val windowLayoutParams = commonWindowLayoutParams.apply {
|
||||
gravity = Gravity.TOP.or(Gravity.CENTER_HORIZONTAL)
|
||||
}
|
||||
|
||||
private var currentlyDisplayedChipState: ChipStateSender? = null
|
||||
|
||||
private val commandQueueCallbacks = object : CommandQueue.Callbacks {
|
||||
|
||||
@@ -371,11 +371,9 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
|
||||
powerManager,
|
||||
R.layout.media_ttt_chip
|
||||
) {
|
||||
override fun updateChipView(chipInfo: ChipInfo, currentChipView: ViewGroup) {
|
||||
|
||||
}
|
||||
|
||||
override fun getIconSize(isAppIcon: Boolean): Int? = ICON_SIZE
|
||||
override val windowLayoutParams = commonWindowLayoutParams
|
||||
override fun updateChipView(chipInfo: ChipInfo, currentChipView: ViewGroup) {}
|
||||
override fun getIconSize(isAppIcon: Boolean): Int = ICON_SIZE
|
||||
}
|
||||
|
||||
inner class ChipInfo : ChipInfoCommon {
|
||||
@@ -386,4 +384,4 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
|
||||
private const val PACKAGE_NAME = "com.android.systemui"
|
||||
private const val APP_NAME = "Fake App Name"
|
||||
private const val TIMEOUT_MS = 10000L
|
||||
private const val ICON_SIZE = 47
|
||||
private const val ICON_SIZE = 47
|
||||
|
||||
Reference in New Issue
Block a user