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

Commit 38128151 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Automerger Merge Worker
Browse files

Merge "Keep ControlsActivity on orientation change" into tm-qpr-dev am:...

Merge "Keep ControlsActivity on orientation change" into tm-qpr-dev am: 43034486 am: 04544d39 am: 2b0401ee

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21958652



Change-Id: I99c7d7f744d4acc50b64891f5f5ba501333df6dc
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c277906d 2b0401ee
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -924,7 +924,7 @@
                  android:showForAllUsers="true"
                  android:finishOnTaskLaunch="true"
                  android:launchMode="singleInstance"
                  android:configChanges="screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden"
                  android:configChanges="screenLayout|keyboard|keyboardHidden|orientation"
                  android:visibleToInstantApps="true">
        </activity>

+12 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.content.pm.ActivityInfo
import android.content.res.Configuration
import android.os.Bundle
import android.os.RemoteException
import android.service.dreams.IDreamManager
@@ -57,9 +59,11 @@ class ControlsActivity @Inject constructor(
    private lateinit var parent: ViewGroup
    private lateinit var broadcastReceiver: BroadcastReceiver
    private var mExitToDream: Boolean = false
    private lateinit var lastConfiguration: Configuration

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        lastConfiguration = resources.configuration
        if (featureFlags.isEnabled(Flags.USE_APP_PANELS)) {
            window.addPrivateFlags(WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY)
        }
@@ -92,6 +96,14 @@ class ControlsActivity @Inject constructor(
        initBroadcastReceiver()
    }

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
        if (lastConfiguration.diff(newConfig) and ActivityInfo.CONFIG_ORIENTATION != 0 ) {
            uiController.onOrientationChange()
        }
        lastConfiguration = newConfig
    }

    override fun onStart() {
        super.onStart()

+2 −0
Original line number Diff line number Diff line
@@ -64,6 +64,8 @@ interface ControlsUiController {
     * This element will be the one that appears when the user first opens the controls activity.
     */
    fun getPreferredSelectedItem(structures: List<StructureInfo>): SelectedItem

    fun onOrientationChange()
}

sealed class SelectedItem {
+14 −1
Original line number Diff line number Diff line
@@ -124,6 +124,7 @@ class ControlsUiControllerImpl @Inject constructor (
    }

    private var selectedItem: SelectedItem = SelectedItem.EMPTY_SELECTION
    private var selectionItem: SelectionItem? = null
    private lateinit var allStructures: List<StructureInfo>
    private val controlsById = mutableMapOf<ControlKey, ControlWithState>()
    private val controlViewsById = mutableMapOf<ControlKey, ControlViewHolder>()
@@ -230,6 +231,7 @@ class ControlsUiControllerImpl @Inject constructor (
        this.overflowMenuAdapter = null
        hidden = false
        retainCache = false
        selectionItem = null

        controlActionCoordinator.activityContext = activityContext

@@ -272,7 +274,7 @@ class ControlsUiControllerImpl @Inject constructor (
        }
    }

    private fun reload(parent: ViewGroup) {
    private fun reload(parent: ViewGroup, dismissTaskView: Boolean = true) {
        if (hidden) return

        controlsListingController.get().removeCallback(listingCallback)
@@ -425,6 +427,7 @@ class ControlsUiControllerImpl @Inject constructor (
        } else {
            Log.w(ControlsUiController.TAG, "Not TaskViewFactory to display panel $selectionItem")
        }
        this.selectionItem = selectionItem

        bgExecutor.execute {
            val intent = Intent(Intent.ACTION_MAIN)
@@ -657,6 +660,7 @@ class ControlsUiControllerImpl @Inject constructor (
        val maxColumns = ControlAdapter.findMaxColumns(activityContext.resources)

        val listView = parent.requireViewById(R.id.global_actions_controls_list) as ViewGroup
        listView.removeAllViews()
        var lastRow: ViewGroup = createRow(inflater, listView)
        selectedStructure.controls.forEach {
            val key = ControlKey(selectedStructure.componentName, it.controlId)
@@ -804,6 +808,15 @@ class ControlsUiControllerImpl @Inject constructor (
        }
    }

    override fun onOrientationChange() {
        selectionItem?.let {
            when (selectedItem) {
                is SelectedItem.StructureItem -> createListView(it)
                is SelectedItem.PanelItem -> taskViewController?.refreshBounds() ?: reload(parent)
            }
        } ?: reload(parent)
    }

    private fun createRow(inflater: LayoutInflater, listView: ViewGroup): ViewGroup {
        val row = inflater.inflate(R.layout.controls_row, listView, false) as ViewGroup
        listView.addView(row)
+5 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ class PanelTaskViewController(
    private val activityContext: Context,
    private val uiExecutor: Executor,
    private val pendingIntent: PendingIntent,
    private val taskView: TaskView,
    val taskView: TaskView,
    private val hide: () -> Unit = {}
) {

@@ -108,6 +108,10 @@ class PanelTaskViewController(
            }
        }

    fun refreshBounds() {
        taskView.onLocationChanged()
    }

    fun dismiss() {
        taskView.release()
    }
Loading