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

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

Merge "Bind controls edit and add flows" into udc-dev am: 37fa5731

parents d3e6b06a 37fa5731
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