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

Commit e95b375d authored by Johannes Gallmann's avatar Johannes Gallmann Committed by Android (Google) Code Review
Browse files

Merge "Implement MotionTool Interface using ViewCapture library" into tm-qpr-dev

parents 709d0693 0d5183cb
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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",
+2 −0
Original line number Diff line number Diff line
@@ -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,
+58 −0
Original line number Diff line number Diff line
/*
 * 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
}
+32 −0
Original line number Diff line number Diff line
/*
 * 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()
    }
}