Merge "[Partial screensharing] Handle clicking on recent apps" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
24bc25037a
@@ -16,6 +16,7 @@
|
|||||||
package com.android.systemui.media
|
package com.android.systemui.media
|
||||||
|
|
||||||
import android.app.ActivityOptions
|
import android.app.ActivityOptions
|
||||||
|
import android.app.IActivityTaskManager
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.media.projection.IMediaProjection
|
import android.media.projection.IMediaProjection
|
||||||
import android.media.projection.MediaProjectionManager.EXTRA_MEDIA_PROJECTION
|
import android.media.projection.MediaProjectionManager.EXTRA_MEDIA_PROJECTION
|
||||||
@@ -46,6 +47,7 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
class MediaProjectionAppSelectorActivity(
|
class MediaProjectionAppSelectorActivity(
|
||||||
private val activityLauncher: AsyncActivityLauncher,
|
private val activityLauncher: AsyncActivityLauncher,
|
||||||
|
private val activityTaskManager: IActivityTaskManager,
|
||||||
private val controller: MediaProjectionAppSelectorController,
|
private val controller: MediaProjectionAppSelectorController,
|
||||||
private val recentTasksAdapterFactory: RecentTasksAdapter.Factory,
|
private val recentTasksAdapterFactory: RecentTasksAdapter.Factory,
|
||||||
/** This is used to override the dependency in a screenshot test */
|
/** This is used to override the dependency in a screenshot test */
|
||||||
@@ -56,9 +58,10 @@ class MediaProjectionAppSelectorActivity(
|
|||||||
@Inject
|
@Inject
|
||||||
constructor(
|
constructor(
|
||||||
activityLauncher: AsyncActivityLauncher,
|
activityLauncher: AsyncActivityLauncher,
|
||||||
|
activityTaskManager: IActivityTaskManager,
|
||||||
controller: MediaProjectionAppSelectorController,
|
controller: MediaProjectionAppSelectorController,
|
||||||
recentTasksAdapterFactory: RecentTasksAdapter.Factory,
|
recentTasksAdapterFactory: RecentTasksAdapter.Factory,
|
||||||
) : this(activityLauncher, controller, recentTasksAdapterFactory, null)
|
) : this(activityLauncher, activityTaskManager, controller, recentTasksAdapterFactory, null)
|
||||||
|
|
||||||
private var recentsRoot: ViewGroup? = null
|
private var recentsRoot: ViewGroup? = null
|
||||||
private var recentsProgress: View? = null
|
private var recentsProgress: View? = null
|
||||||
@@ -176,8 +179,14 @@ class MediaProjectionAppSelectorActivity(
|
|||||||
recycler.adapter = recentTasksAdapterFactory.create(recentTasks, this)
|
recycler.adapter = recentTasksAdapterFactory.create(recentTasks, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onRecentClicked(task: RecentTask, view: View) {
|
override fun onRecentAppClicked(task: RecentTask, view: View) {
|
||||||
// TODO(b/240924732) Handle clicking on a recent task
|
val launchCookie = Binder()
|
||||||
|
val activityOptions = ActivityOptions.makeScaleUpAnimation(view, /* startX= */ 0,
|
||||||
|
/* startY= */ 0, view.width, view.height)
|
||||||
|
activityOptions.launchCookie = launchCookie
|
||||||
|
|
||||||
|
activityTaskManager.startActivityFromRecents(task.taskId, activityOptions.toBundle())
|
||||||
|
onTargetActivityLaunched(launchCookie)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onTargetActivityLaunched(launchToken: IBinder) {
|
private fun onTargetActivityLaunched(launchToken: IBinder) {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class RecentTasksAdapter @AssistedInject constructor(
|
|||||||
override fun onBindViewHolder(holder: RecentTaskViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: RecentTaskViewHolder, position: Int) {
|
||||||
val task = items[position]
|
val task = items[position]
|
||||||
holder.bind(task, onClick = {
|
holder.bind(task, onClick = {
|
||||||
listener.onRecentClicked(task, holder.itemView)
|
listener.onRecentAppClicked(task, holder.itemView)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ class RecentTasksAdapter @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface RecentTaskClickListener {
|
interface RecentTaskClickListener {
|
||||||
fun onRecentClicked(task: RecentTask, view: View)
|
fun onRecentAppClicked(task: RecentTask, view: View)
|
||||||
}
|
}
|
||||||
|
|
||||||
@AssistedFactory
|
@AssistedFactory
|
||||||
|
|||||||
Reference in New Issue
Block a user