diff options
author | 2022-11-03 17:27:03 +0000 | |
---|---|---|
committer | 2022-11-03 17:27:03 +0000 | |
commit | f1501b00963d03bf6b8b4b598d34e8d6ebb1819a (patch) | |
tree | a8cafd2ced3bcb144be906a62724b5a2448aeb22 | |
parent | 4d158911c441a838d3feb91a8512113c0cea49ec (diff) | |
parent | e95b375dd1e032843f66bae66991051fc466dcb8 (diff) |
Merge "Implement MotionTool Interface using ViewCapture library" into tm-qpr-dev am: e95b375dd1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20111438
Change-Id: Ib636895770d74eb505d55f056c65a18d0238010d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
4 files changed, 94 insertions, 0 deletions
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp index c28792e0521f..ceeab354cee9 100644 --- a/packages/SystemUI/Android.bp +++ b/packages/SystemUI/Android.bp @@ -125,6 +125,7 @@ android_library { "jsr330", "lottie", "LowLightDreamLib", + "motion_tool_lib", ], manifest: "AndroidManifest.xml", @@ -229,6 +230,7 @@ android_library { "jsr330", "WindowManager-Shell", "LowLightDreamLib", + "motion_tool_lib", ], libs: [ "android.test.runner", diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java index 6db562107357..e46bdb7a8ad8 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java @@ -47,6 +47,7 @@ import com.android.systemui.keyguard.data.BouncerViewModule; import com.android.systemui.log.dagger.LogModule; import com.android.systemui.mediaprojection.appselector.MediaProjectionModule; import com.android.systemui.model.SysUiState; +import com.android.systemui.motiontool.MotionToolModule; import com.android.systemui.navigationbar.NavigationBarComponent; import com.android.systemui.notetask.NoteTaskModule; import com.android.systemui.people.PeopleModule; @@ -134,6 +135,7 @@ import dagger.Provides; FooterActionsModule.class, LogModule.class, MediaProjectionModule.class, + MotionToolModule.class, PeopleHubModule.class, PeopleModule.class, PluginModule.class, diff --git a/packages/SystemUI/src/com/android/systemui/motiontool/MotionToolModule.kt b/packages/SystemUI/src/com/android/systemui/motiontool/MotionToolModule.kt new file mode 100644 index 000000000000..1324d2c5c27b --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/motiontool/MotionToolModule.kt @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.motiontool + +import android.view.WindowManagerGlobal +import com.android.app.motiontool.DdmHandleMotionTool +import com.android.app.motiontool.MotionToolManager +import com.android.app.viewcapture.ViewCapture +import com.android.systemui.CoreStartable +import dagger.Binds +import dagger.Module +import dagger.Provides +import dagger.multibindings.ClassKey +import dagger.multibindings.IntoMap + +@Module +interface MotionToolModule { + + companion object { + + @Provides + fun provideDdmHandleMotionTool(motionToolManager: MotionToolManager): DdmHandleMotionTool { + return DdmHandleMotionTool.getInstance(motionToolManager) + } + + @Provides + fun provideMotionToolManager( + viewCapture: ViewCapture, + windowManagerGlobal: WindowManagerGlobal + ): MotionToolManager { + return MotionToolManager.getInstance(viewCapture, windowManagerGlobal) + } + + @Provides + fun provideWindowManagerGlobal(): WindowManagerGlobal = WindowManagerGlobal.getInstance() + + @Provides fun provideViewCapture(): ViewCapture = ViewCapture.getInstance() + } + + @Binds + @IntoMap + @ClassKey(MotionToolStartable::class) + fun bindMotionToolStartable(impl: MotionToolStartable): CoreStartable +} diff --git a/packages/SystemUI/src/com/android/systemui/motiontool/MotionToolStartable.kt b/packages/SystemUI/src/com/android/systemui/motiontool/MotionToolStartable.kt new file mode 100644 index 000000000000..fbb9538316f7 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/motiontool/MotionToolStartable.kt @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.motiontool + +import com.android.app.motiontool.DdmHandleMotionTool +import com.android.systemui.CoreStartable +import com.android.systemui.dagger.SysUISingleton +import javax.inject.Inject + +@SysUISingleton +class MotionToolStartable +@Inject +internal constructor(private val ddmHandleMotionTool: DdmHandleMotionTool) : CoreStartable { + + override fun start() { + ddmHandleMotionTool.register() + } +} |