Merge "Controls UI - Direct 'add controls' to the proper activity" into rvc-dev am: 4552718e95 am: 6af09306ff
Change-Id: I2bb20a5879158f736a9931fa673fcde462c786ae
This commit is contained in:
@@ -55,13 +55,19 @@ class ControlsFavoritingActivity @Inject constructor(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val TAG = "ControlsFavoritingActivity"
|
private const val TAG = "ControlsFavoritingActivity"
|
||||||
|
|
||||||
|
// If provided and no structure is available, use as the title
|
||||||
const val EXTRA_APP = "extra_app_label"
|
const val EXTRA_APP = "extra_app_label"
|
||||||
|
|
||||||
|
// If provided, show this structure page first
|
||||||
|
const val EXTRA_STRUCTURE = "extra_structure"
|
||||||
private const val TOOLTIP_PREFS_KEY = Prefs.Key.CONTROLS_STRUCTURE_SWIPE_TOOLTIP_COUNT
|
private const val TOOLTIP_PREFS_KEY = Prefs.Key.CONTROLS_STRUCTURE_SWIPE_TOOLTIP_COUNT
|
||||||
private const val TOOLTIP_MAX_SHOWN = 2
|
private const val TOOLTIP_MAX_SHOWN = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
private var component: ComponentName? = null
|
private var component: ComponentName? = null
|
||||||
private var appName: CharSequence? = null
|
private var appName: CharSequence? = null
|
||||||
|
private var structureExtra: CharSequence? = null
|
||||||
|
|
||||||
private lateinit var structurePager: ViewPager2
|
private lateinit var structurePager: ViewPager2
|
||||||
private lateinit var statusText: TextView
|
private lateinit var statusText: TextView
|
||||||
@@ -111,6 +117,7 @@ class ControlsFavoritingActivity @Inject constructor(
|
|||||||
val collator = Collator.getInstance(resources.configuration.locales[0])
|
val collator = Collator.getInstance(resources.configuration.locales[0])
|
||||||
comparator = compareBy(collator) { it.structureName }
|
comparator = compareBy(collator) { it.structureName }
|
||||||
appName = intent.getCharSequenceExtra(EXTRA_APP)
|
appName = intent.getCharSequenceExtra(EXTRA_APP)
|
||||||
|
structureExtra = intent.getCharSequenceExtra(EXTRA_STRUCTURE) ?: ""
|
||||||
component = intent.getParcelableExtra<ComponentName>(Intent.EXTRA_COMPONENT_NAME)
|
component = intent.getParcelableExtra<ComponentName>(Intent.EXTRA_COMPONENT_NAME)
|
||||||
|
|
||||||
bindViews()
|
bindViews()
|
||||||
@@ -137,9 +144,15 @@ class ControlsFavoritingActivity @Inject constructor(
|
|||||||
listOfStructures = controlsByStructure.map {
|
listOfStructures = controlsByStructure.map {
|
||||||
StructureContainer(it.key, AllModel(it.value, favoriteKeys, emptyZoneString))
|
StructureContainer(it.key, AllModel(it.value, favoriteKeys, emptyZoneString))
|
||||||
}.sortedWith(comparator)
|
}.sortedWith(comparator)
|
||||||
|
|
||||||
|
val structureIndex = listOfStructures.indexOfFirst {
|
||||||
|
sc -> sc.structureName == structureExtra
|
||||||
|
}.let { if (it == -1) 0 else it }
|
||||||
|
|
||||||
executor.execute {
|
executor.execute {
|
||||||
doneButton.isEnabled = true
|
doneButton.isEnabled = true
|
||||||
structurePager.adapter = StructureAdapter(listOfStructures)
|
structurePager.adapter = StructureAdapter(listOfStructures)
|
||||||
|
structurePager.setCurrentItem(structureIndex)
|
||||||
if (error) {
|
if (error) {
|
||||||
statusText.text = resources.getText(R.string.controls_favorite_load_error)
|
statusText.text = resources.getText(R.string.controls_favorite_load_error)
|
||||||
} else {
|
} else {
|
||||||
@@ -247,7 +260,10 @@ class ControlsFavoritingActivity @Inject constructor(
|
|||||||
requireViewById<Button>(R.id.other_apps).apply {
|
requireViewById<Button>(R.id.other_apps).apply {
|
||||||
visibility = View.VISIBLE
|
visibility = View.VISIBLE
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
this@ControlsFavoritingActivity.onBackPressed()
|
val i = Intent()
|
||||||
|
i.setComponent(
|
||||||
|
ComponentName(context, ControlsProviderSelectorActivity::class.java))
|
||||||
|
context.startActivity(i)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import com.android.systemui.controls.ControlsServiceInfo
|
|||||||
import com.android.systemui.controls.controller.ControlInfo
|
import com.android.systemui.controls.controller.ControlInfo
|
||||||
import com.android.systemui.controls.controller.ControlsController
|
import com.android.systemui.controls.controller.ControlsController
|
||||||
import com.android.systemui.controls.controller.StructureInfo
|
import com.android.systemui.controls.controller.StructureInfo
|
||||||
|
import com.android.systemui.controls.management.ControlsFavoritingActivity
|
||||||
import com.android.systemui.controls.management.ControlsListingController
|
import com.android.systemui.controls.management.ControlsListingController
|
||||||
import com.android.systemui.controls.management.ControlsProviderSelectorActivity
|
import com.android.systemui.controls.management.ControlsProviderSelectorActivity
|
||||||
import com.android.systemui.dagger.qualifiers.Background
|
import com.android.systemui.dagger.qualifiers.Background
|
||||||
@@ -92,21 +93,8 @@ class ControlsUiControllerImpl @Inject constructor (
|
|||||||
private lateinit var lastItems: List<SelectionItem>
|
private lateinit var lastItems: List<SelectionItem>
|
||||||
private var popup: ListPopupWindow? = null
|
private var popup: ListPopupWindow? = null
|
||||||
private var activeDialog: Dialog? = null
|
private var activeDialog: Dialog? = null
|
||||||
private val addControlsItem: SelectionItem
|
|
||||||
private var hidden = true
|
private var hidden = true
|
||||||
|
|
||||||
init {
|
|
||||||
val addDrawable = context.getDrawable(R.drawable.ic_add).apply {
|
|
||||||
setTint(context.resources.getColor(R.color.control_secondary_text, null))
|
|
||||||
}
|
|
||||||
addControlsItem = SelectionItem(
|
|
||||||
context.resources.getString(R.string.controls_providers_title),
|
|
||||||
"",
|
|
||||||
addDrawable,
|
|
||||||
EMPTY_COMPONENT
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
override val available: Boolean
|
override val available: Boolean
|
||||||
get() = controlsController.get().available
|
get() = controlsController.get().available
|
||||||
|
|
||||||
@@ -184,7 +172,7 @@ class ControlsUiControllerImpl @Inject constructor (
|
|||||||
inflater.inflate(R.layout.controls_no_favorites, parent, true)
|
inflater.inflate(R.layout.controls_no_favorites, parent, true)
|
||||||
|
|
||||||
val viewGroup = parent.requireViewById(R.id.controls_no_favorites_group) as ViewGroup
|
val viewGroup = parent.requireViewById(R.id.controls_no_favorites_group) as ViewGroup
|
||||||
viewGroup.setOnClickListener(launchSelectorActivityListener(context))
|
viewGroup.setOnClickListener { v: View -> startProviderSelectorActivity(v.context) }
|
||||||
|
|
||||||
val subtitle = parent.requireViewById<TextView>(R.id.controls_subtitle)
|
val subtitle = parent.requireViewById<TextView>(R.id.controls_subtitle)
|
||||||
subtitle.setText(context.resources.getString(R.string.quick_controls_subtitle))
|
subtitle.setText(context.resources.getString(R.string.quick_controls_subtitle))
|
||||||
@@ -198,16 +186,28 @@ class ControlsUiControllerImpl @Inject constructor (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun launchSelectorActivityListener(context: Context): (View) -> Unit {
|
private fun startFavoritingActivity(context: Context, si: StructureInfo) {
|
||||||
return { _ ->
|
val i = Intent(context, ControlsFavoritingActivity::class.java).apply {
|
||||||
|
putExtra(ControlsFavoritingActivity.EXTRA_APP,
|
||||||
|
controlsListingController.get().getAppLabel(si.componentName))
|
||||||
|
putExtra(ControlsFavoritingActivity.EXTRA_STRUCTURE, si.structure)
|
||||||
|
putExtra(Intent.EXTRA_COMPONENT_NAME, si.componentName)
|
||||||
|
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
|
}
|
||||||
|
startActivity(context, i)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun startProviderSelectorActivity(context: Context) {
|
||||||
|
val i = Intent(context, ControlsProviderSelectorActivity::class.java).apply {
|
||||||
|
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
|
}
|
||||||
|
startActivity(context, i)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun startActivity(context: Context, intent: Intent) {
|
||||||
val closeDialog = Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)
|
val closeDialog = Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)
|
||||||
context.sendBroadcast(closeDialog)
|
context.sendBroadcast(closeDialog)
|
||||||
|
context.startActivity(intent)
|
||||||
val i = Intent()
|
|
||||||
i.setComponent(ComponentName(context, ControlsProviderSelectorActivity::class.java))
|
|
||||||
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
|
|
||||||
context.startActivity(i)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showControlsView(items: List<SelectionItem>) {
|
private fun showControlsView(items: List<SelectionItem>) {
|
||||||
@@ -248,7 +248,7 @@ class ControlsUiControllerImpl @Inject constructor (
|
|||||||
) {
|
) {
|
||||||
when (pos) {
|
when (pos) {
|
||||||
// 0: Add Control
|
// 0: Add Control
|
||||||
0 -> launchSelectorActivityListener(view.context)(parent)
|
0 -> startFavoritingActivity(view.context, selectedStructure)
|
||||||
else -> Log.w(ControlsUiController.TAG,
|
else -> Log.w(ControlsUiController.TAG,
|
||||||
"Unsupported index ($pos) on 'more' menu selection")
|
"Unsupported index ($pos) on 'more' menu selection")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user