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

Commit bd863313 authored by Anushree Ganjam's avatar Anushree Ganjam
Browse files

Setup Dagger for Launcher (1/n)

Bug: 361850561
Test: Manual
Flag: NONE Dagger Integration
Change-Id: Idbe19f1aa747f519417e21fe8a23a41c52ececc1
parent d064e58f
Loading
Loading
Loading
Loading
+16 −8
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ java_defaults {
        "android.os.flags-aconfig-java",
        "android.appwidget.flags-aconfig-java",
        "com.android.window.flags.window-aconfig-java",
    ]
    ],
}

// Common source files used to build launcher (java and kotlin)
@@ -153,7 +153,7 @@ launcher_compose_java_defaults {
    soong_config_variables: {
        release_enable_compose_in_launcher: {
            srcs: [
                ":launcher-compose-enabled-src"
                ":launcher-compose-enabled-src",
            ],

            // Compose dependencies
@@ -166,7 +166,7 @@ launcher_compose_java_defaults {
            // in compose/launcher3/facade/disabled/.
            conditions_default: {
                srcs: [
                    ":launcher-compose-disabled-src"
                    ":launcher-compose-disabled-src",
                ],
                static_libs: [],
            },
@@ -179,7 +179,7 @@ quickstep_compose_java_defaults {
    soong_config_variables: {
        release_enable_compose_in_launcher: {
            srcs: [
                ":launcher-quickstep-compose-enabled-src"
                ":launcher-quickstep-compose-enabled-src",
            ],

            // Compose dependencies
@@ -192,7 +192,7 @@ quickstep_compose_java_defaults {
            // in compose/quickstep/facade/disabled/.
            conditions_default: {
                srcs: [
                    ":launcher-quickstep-compose-disabled-src"
                    ":launcher-quickstep-compose-disabled-src",
                ],
                static_libs: [],
            },
@@ -322,6 +322,8 @@ android_library {
        "kotlinx_coroutines",
        "com_android_launcher3_flags_lib",
        "com_android_wm_shell_flags_lib",
        "dagger2",
        "jsr330",

    ],
    manifest: "AndroidManifest-common.xml",
@@ -357,6 +359,7 @@ android_app {
    sdk_version: "current",
    min_sdk_version: min_launcher3_sdk_version,
    target_sdk_version: "current",
    plugins: ["dagger2-compiler"],
    privileged: true,
    system_ext_specific: true,

@@ -392,6 +395,7 @@ android_library {
        "lottie",
        "SystemUISharedLib",
        "SettingsLibSettingsTheme",
        "dagger2",
    ],
    manifest: "quickstep/AndroidManifest.xml",
    min_sdk_version: "current",
@@ -421,7 +425,10 @@ android_library {
        "QuickstepResLib",
        "androidx.room_room-runtime",
    ],
    plugins: ["androidx.room_room-compiler-plugin"],
    plugins: [
        "androidx.room_room-compiler-plugin",
        "dagger2-compiler",
    ],
    manifest: "quickstep/AndroidManifest.xml",
    additional_manifests: [
        "go/AndroidManifest.xml",
@@ -437,7 +444,7 @@ android_library {
    name: "Launcher3QuickStepLib",
    defaults: [
        "launcher_compose_defaults",
        "quickstep_compose_defaults"
        "quickstep_compose_defaults",
    ],
    srcs: [
        ":launcher-src",
@@ -458,6 +465,7 @@ android_library {
    ],
    manifest: "quickstep/AndroidManifest.xml",
    platform_apis: true,
    plugins: ["dagger2-compiler"],
    min_sdk_version: "current",
    // TODO(b/319712088): re-enable use_resource_processor
    use_resource_processor: false,
@@ -500,7 +508,6 @@ android_app {

}


// Build rule for Launcher3 Go app with quickstep for Android Go devices.
// Note that the following two rules are exactly same, and should
// eventually be merged into a single target
@@ -540,6 +547,7 @@ android_app {
        include_filter: ["com.android.launcher3.*"],
    },
}

android_app {
    name: "Launcher3QuickStepGo",
    static_libs: ["Launcher3GoLib"],
+34 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 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.launcher3.dagger;

import dagger.Component;

import javax.inject.Singleton;

/**
 * Root component for Dagger injection for Launcher Quickstep.
 */
@Singleton
@Component
public interface LauncherAppComponent extends LauncherBaseAppComponent {
    /** Builder for quickstep LauncherAppComponent. */
    @Component.Builder
    interface Builder extends LauncherBaseAppComponent.Builder {
        LauncherAppComponent build();
    }
}
+9 −0
Original line number Diff line number Diff line
@@ -17,14 +17,23 @@ package com.android.launcher3;

import android.app.Application;

import com.android.launcher3.dagger.DaggerLauncherAppComponent;
import com.android.launcher3.dagger.LauncherBaseAppComponent;

/**
 * Main application class for Launcher
 */
public class LauncherApplication extends Application {

    private LauncherBaseAppComponent mAppComponent;
    @Override
    public void onCreate() {
        super.onCreate();
        MainProcessInitializer.initialize(this);
        mAppComponent = DaggerLauncherAppComponent.builder().build();
    }

    public LauncherBaseAppComponent getAppComponent() {
        return mAppComponent;
    }
}
+32 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 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.launcher3.dagger;

/**
 * Launcher base component for Dagger injection.
 *
 * This class is not actually annotated as a Dagger component, since it is not used directly as one.
 * Doing so generates unnecessary code bloat.
 *
 * See {@link LauncherAppComponent} for the one actually used by AOSP.
 */
public interface LauncherBaseAppComponent {
    /** Builder for LauncherBaseAppComponent. */
    interface Builder {
        LauncherBaseAppComponent build();
    }
}
+35 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 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.launcher3.dagger;

import dagger.Component;

import javax.inject.Singleton;

/**
 * Root component for Dagger injection for Launcher AOSP.
 */
@Singleton
@Component
public interface LauncherAppComponent extends LauncherBaseAppComponent {
    /** Builder for aosp LauncherAppComponent. */
    @Component.Builder
    interface Builder extends LauncherBaseAppComponent.Builder {
        LauncherAppComponent build();
    }
}