Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 164a30ba authored by Liana Kazanova (xWF)'s avatar Liana Kazanova (xWF) Committed by Android (Google) Code Review
Browse files

Merge "Revert "CastDetailsView: Use controller content manager within the details view"" into main

parents bbcf1e04 b6b63955
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -86,7 +86,10 @@ public abstract class MediaRouteDialogPresenter {
    public static Dialog createDialog(Context context, int routeTypes,
            View.OnClickListener extendedSettingsClickListener, int theme,
            boolean showProgressBarWhenEmpty) {
        if (shouldShowChooserDialog(context, routeTypes)) {
        final MediaRouter router = context.getSystemService(MediaRouter.class);

        MediaRouter.RouteInfo route = router.getSelectedRoute();
        if (route.isDefault() || !route.matchesTypes(routeTypes)) {
            final MediaRouteChooserDialog d = new MediaRouteChooserDialog(context, theme,
                    showProgressBarWhenEmpty);
            d.setRouteTypes(routeTypes);
@@ -96,11 +99,4 @@ public abstract class MediaRouteDialogPresenter {
            return new MediaRouteControllerDialog(context, theme);
        }
    }

    /** Whether we should show the chooser dialog or the controller dialog.. */
    public static boolean shouldShowChooserDialog(Context context, int routeTypes) {
        final MediaRouter router = context.getSystemService(MediaRouter.class);
        MediaRouter.RouteInfo route = router.getSelectedRoute();
        return route.isDefault() || !route.matchesTypes(routeTypes);
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -133,7 +133,7 @@ private fun MapTileDetailsContent(tileDetailsViewModel: TileDetailsViewModel) {
        is BluetoothDetailsViewModel ->
            BluetoothDetailsContent(tileDetailsViewModel.detailsContentViewModel)
        is ModesDetailsViewModel -> ModesDetailsContent(tileDetailsViewModel)
        is CastDetailsViewModel -> CastDetailsContent(tileDetailsViewModel)
        is CastDetailsViewModel -> CastDetailsContent()
    }
}

+1 −2
Original line number Diff line number Diff line
@@ -192,8 +192,7 @@ public class CastTile extends QSTileImpl<BooleanState> {

    @Override
    public boolean getDetailsViewModel(Consumer<TileDetailsViewModel> callback) {
        CastDetailsViewModel viewModel = mCastDetailsViewModelFactory
                .create(mShadeDialogContextInteractor.getContext(), ROUTE_TYPE_REMOTE_DISPLAY);
        CastDetailsViewModel viewModel = mCastDetailsViewModelFactory.create();
        handleClick(() -> {
            if (!mKeyguard.isShowing()) {
                callback.accept(viewModel);
+3 −19
Original line number Diff line number Diff line
@@ -20,34 +20,18 @@ import android.view.LayoutInflater
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.viewinterop.AndroidView
import com.android.internal.R
import com.android.internal.app.MediaRouteControllerContentManager

@Composable
fun CastDetailsContent(castDetailsViewModel: CastDetailsViewModel) {
    if (castDetailsViewModel.shouldShowChooserDialog()) {
        // TODO(b/378514236): Show the chooser UI here.
        return
    }

    val contentManager: MediaRouteControllerContentManager = remember {
        castDetailsViewModel.createControllerContentManager()
    }

fun CastDetailsContent() {
    // TODO(b/378514236): Finish implementing this function.
    AndroidView(
        modifier = Modifier.fillMaxWidth().fillMaxHeight(),
        factory = { context ->
            // Inflate with the existing dialog xml layout
            val view =
            LayoutInflater.from(context).inflate(R.layout.media_route_controller_dialog, null)
            contentManager.bindViews(view)
            contentManager.onAttachedToWindow()

            view
        },
        onRelease = { contentManager.onDetachedFromWindow() },
    )
}
+3 −31
Original line number Diff line number Diff line
@@ -16,37 +16,21 @@

package com.android.systemui.qs.tiles.dialog

import android.content.Context
import android.content.Intent
import android.graphics.drawable.Drawable
import android.provider.Settings
import com.android.internal.app.MediaRouteControllerContentManager
import com.android.internal.app.MediaRouteDialogPresenter
import com.android.systemui.plugins.qs.TileDetailsViewModel
import com.android.systemui.qs.tiles.base.actions.QSTileIntentUserInputHandler
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject

/** The view model used for the screen record details view in the Quick Settings */
class CastDetailsViewModel
@AssistedInject
constructor(
    private val qsTileIntentUserActionHandler: QSTileIntentUserInputHandler,
    @Assisted private val context: Context,
    @Assisted private val routeTypes: Int,
) : MediaRouteControllerContentManager.Delegate, TileDetailsViewModel {
constructor(private val qsTileIntentUserActionHandler: QSTileIntentUserInputHandler) :
    TileDetailsViewModel {
    @AssistedFactory
    fun interface Factory {
        fun create(context: Context, routeTypes: Int): CastDetailsViewModel
    }

    fun shouldShowChooserDialog(): Boolean {
        return MediaRouteDialogPresenter.shouldShowChooserDialog(context, routeTypes)
    }

    fun createControllerContentManager(): MediaRouteControllerContentManager {
        return MediaRouteControllerContentManager(context, this)
        fun create(): CastDetailsViewModel
    }

    override fun clickOnSettingsButton() {
@@ -63,16 +47,4 @@ constructor(
    // TODO(b/388321032): Replace this string with a string in a translatable xml file,
    override val subTitle: String
        get() = "Searching for devices..."

    override fun setMediaRouteDeviceTitle(title: CharSequence?) {
        // TODO(b/378514236): Finish implementing this function.
    }

    override fun setMediaRouteDeviceIcon(icon: Drawable?) {
        // TODO(b/378514236): Finish implementing this function.
    }

    override fun dismissView() {
        // TODO(b/378514236): Finish implementing this function.
    }
}