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

Commit 37fa5731 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Android (Google) Code Review
Browse files

Merge "Bind controls edit and add flows" into udc-dev

parents 5c45e708 639a826d
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -76,6 +76,29 @@
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"/>

            <Button
                android:id="@+id/rearrange"
                android:visibility="gone"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:gravity="center_vertical"
                style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"/>

            <Button
                android:id="@+id/addControls"
                android:visibility="gone"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:gravity="center_vertical"
                android:text="@string/controls_favorite_add_controls"
                style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"/>

            <Button
                android:id="@+id/done"
                android:layout_width="wrap_content"
+9 −0
Original line number Diff line number Diff line
@@ -2471,6 +2471,15 @@
    <!-- Controls management favorites screen. See other apps button [CHAR LIMIT=30] -->
    <string name="controls_favorite_see_other_apps">See other apps</string>

    <!-- Controls management favorites screen. Rearrange controls button [CHAR LIMIT=30]-->
    <string name="controls_favorite_rearrange_button">Rearrange</string>

    <!-- Controls management edit screen. Add controls button [CHAR LIMIT=30]-->
    <string name="controls_favorite_add_controls">Add controls</string>

    <!-- Controls management edit screen. Return to editing button [CHAR LIMIT=30]-->
    <string name="controls_favorite_back_to_editing">Back to editing</string>

    <!-- Controls management controls screen error on load message [CHAR LIMIT=NONE] -->
    <string name="controls_favorite_load_error">Controls could not be loaded. Check the <xliff:g id="app" example="System UI">%s</xliff:g> app to make sure that the app settings haven\u2019t changed.</string>
    <!-- Controls management controls screen no controls found on load message [CHAR LIMIT=NONE] -->
+0 −2
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import android.service.controls.actions.ControlAction
import android.util.ArrayMap
import android.util.Log
import com.android.internal.annotations.VisibleForTesting
import com.android.internal.notification.NotificationAccessConfirmationActivityContract.EXTRA_USER_ID
import com.android.systemui.Dumpable
import com.android.systemui.backup.BackupHelper
import com.android.systemui.controls.ControlStatus
@@ -44,7 +43,6 @@ import com.android.systemui.controls.ui.SelectedItem
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dump.DumpManager
import com.android.systemui.people.widget.PeopleSpaceWidgetProvider.EXTRA_USER_HANDLE
import com.android.systemui.settings.UserFileManager
import com.android.systemui.settings.UserTracker
import com.android.systemui.statusbar.policy.DeviceControlsControllerImpl.Companion.PREFS_CONTROLS_FILE
+6 −3
Original line number Diff line number Diff line
@@ -75,10 +75,13 @@ class AllModel(
        } else {
            favoriteIds.remove(controlId)
        }
        if (changed && !modified) {
        if (changed) {
            if (!modified) {
                modified = true
                controlsModelCallback.onFirstChange()
            }
            controlsModelCallback.onChange()
        }
        toChange?.let {
            it.controlStatus.favorite = favorite
        }
+49 −4
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.view.ViewGroup
import android.view.ViewStub
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import android.window.OnBackInvokedCallback
import android.window.OnBackInvokedDispatcher
import androidx.activity.ComponentActivity
@@ -38,8 +39,9 @@ import com.android.systemui.controls.CustomIconCache
import com.android.systemui.controls.controller.ControlsControllerImpl
import com.android.systemui.controls.controller.StructureInfo
import com.android.systemui.controls.ui.ControlsActivity
import com.android.systemui.controls.ui.ControlsUiController
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.settings.UserTracker
import java.util.concurrent.Executor
import javax.inject.Inject
@@ -48,17 +50,19 @@ import javax.inject.Inject
 * Activity for rearranging and removing controls for a given structure
 */
open class ControlsEditingActivity @Inject constructor(
    featureFlags: FeatureFlags,
    @Main private val mainExecutor: Executor,
    private val controller: ControlsControllerImpl,
    private val userTracker: UserTracker,
    private val customIconCache: CustomIconCache,
    private val uiController: ControlsUiController
) : ComponentActivity() {

    companion object {
        private const val DEBUG = false
        private const val TAG = "ControlsEditingActivity"
        const val EXTRA_STRUCTURE = ControlsFavoritingActivity.EXTRA_STRUCTURE
        const val EXTRA_APP = ControlsFavoritingActivity.EXTRA_APP
        const val EXTRA_FROM_FAVORITING = "extra_from_favoriting"
        private val SUBTITLE_ID = R.string.controls_favorite_rearrange
        private val EMPTY_TEXT_ID = R.string.controls_favorite_removed
    }
@@ -68,7 +72,12 @@ open class ControlsEditingActivity @Inject constructor(
    private lateinit var model: FavoritesModel
    private lateinit var subtitle: TextView
    private lateinit var saveButton: View
    private lateinit var addControls: View

    private var isFromFavoriting: Boolean = false

    private val isNewFlowEnabled: Boolean =
        featureFlags.isEnabled(Flags.CONTROLS_MANAGEMENT_NEW_FLOWS)
    private val userTrackerCallback: UserTracker.Callback = object : UserTracker.Callback {
        private val startingUser = controller.currentUserId

@@ -93,7 +102,7 @@ open class ControlsEditingActivity @Inject constructor(
        intent.getParcelableExtra<ComponentName>(Intent.EXTRA_COMPONENT_NAME)?.let {
            component = it
        } ?: run(this::finish)

        isFromFavoriting = intent.getBooleanExtra(EXTRA_FROM_FAVORITING, false)
        intent.getCharSequenceExtra(EXTRA_STRUCTURE)?.let {
            structure = it
        } ?: run(this::finish)
@@ -165,8 +174,42 @@ open class ControlsEditingActivity @Inject constructor(
    }

    private fun bindButtons() {
        addControls = requireViewById<Button>(R.id.addControls).apply {
            isEnabled = true
            visibility = if (isNewFlowEnabled) View.VISIBLE else View.GONE
            setOnClickListener {
                if (saveButton.isEnabled) {
                    // The user has made changes
                    Toast.makeText(
                        applicationContext,
                        R.string.controls_favorite_toast_no_changes,
                        Toast.LENGTH_SHORT
                    ).show()
                }
                if (isFromFavoriting) {
                    animateExitAndFinish()
                } else {
                    startActivity(Intent(context, ControlsFavoritingActivity::class.java).also {
                        it.putExtra(ControlsFavoritingActivity.EXTRA_STRUCTURE, structure)
                        it.putExtra(Intent.EXTRA_COMPONENT_NAME, component)
                        it.putExtra(
                            ControlsFavoritingActivity.EXTRA_APP,
                            intent.getCharSequenceExtra(EXTRA_APP),
                        )
                        it.putExtra(
                            ControlsFavoritingActivity.EXTRA_SOURCE,
                            ControlsFavoritingActivity.EXTRA_SOURCE_VALUE_FROM_EDITING,
                        )
                    },
                                  ActivityOptions.makeSceneTransitionAnimation(
                                      this@ControlsEditingActivity
                                  ).toBundle(),
                    )
                }
            }
        }
        saveButton = requireViewById<Button>(R.id.done).apply {
            isEnabled = false
            isEnabled = isFromFavoriting
            setText(R.string.save)
            setOnClickListener {
                saveFavorites()
@@ -194,6 +237,8 @@ open class ControlsEditingActivity @Inject constructor(
            }
        }

        override fun onChange() = Unit

        override fun onFirstChange() {
            saveButton.isEnabled = true
        }
Loading