| buildscript { | 
 |     repositories { | 
 |         mavenCentral() | 
 |         google() | 
 |         jcenter() | 
 |     } | 
 |     dependencies { | 
 |         classpath GRADLE_CLASS_PATH | 
 |         classpath PROTOBUF_CLASS_PATH | 
 |     } | 
 | } | 
 |  | 
 | final String ANDROID_TOP = "${rootDir}/../../.." | 
 | final String FRAMEWORK_PREBUILTS_DIR = "${ANDROID_TOP}/prebuilts/framework_intermediates/" | 
 |  | 
 | apply plugin: 'com.android.application' | 
 | apply plugin: 'com.google.protobuf' | 
 |  | 
 | android { | 
 |     compileSdkVersion COMPILE_SDK | 
 |     buildToolsVersion BUILD_TOOLS_VERSION | 
 |  | 
 |     defaultConfig { | 
 |         minSdkVersion 25 | 
 |         targetSdkVersion 28 | 
 |         versionCode 1 | 
 |         versionName "1.0" | 
 |  | 
 |         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | 
 |         vectorDrawables.useSupportLibrary = true | 
 |     } | 
 |     buildTypes { | 
 |         debug { | 
 |             minifyEnabled false | 
 |         } | 
 |     } | 
 |  | 
 |     compileOptions { | 
 |         sourceCompatibility JavaVersion.VERSION_1_8 | 
 |         targetCompatibility JavaVersion.VERSION_1_8 | 
 |     } | 
 |  | 
 |     // The flavor dimensions for build variants (e.g. aospWithQuickstep, aospWithoutQuickstep) | 
 |     // See: https://developer.android.com/studio/build/build-variants#flavor-dimensions | 
 |     flavorDimensions "app", "recents" | 
 |  | 
 |     productFlavors { | 
 |         aosp { | 
 |             dimension "app" | 
 |             applicationId 'com.android.launcher3' | 
 |             testApplicationId 'com.android.launcher3.tests' | 
 |         } | 
 |  | 
 |         l3go { | 
 |             dimension "app" | 
 |             applicationId 'com.android.launcher3' | 
 |             testApplicationId 'com.android.launcher3.tests' | 
 |         } | 
 |  | 
 |         withQuickstep { | 
 |             dimension "recents" | 
 |  | 
 |             minSdkVersion 28 | 
 |         } | 
 |  | 
 |         withoutQuickstep { | 
 |             dimension "recents" | 
 |         } | 
 |     } | 
 |  | 
 |     // Disable release builds for now | 
 |     android.variantFilter { variant -> | 
 |         if (variant.buildType.name.endsWith('release')) { | 
 |             variant.setIgnore(true) | 
 |         } | 
 |     } | 
 |  | 
 |     sourceSets { | 
 |         main { | 
 |             res.srcDirs = ['res'] | 
 |             java.srcDirs = ['src', 'src_plugins'] | 
 |             manifest.srcFile 'AndroidManifest-common.xml' | 
 |             proto { | 
 |                 srcDirs = ['protos/', 'protos_overrides/'] | 
 |             } | 
 |         } | 
 |  | 
 |         androidTest { | 
 |             res.srcDirs = ['tests/res'] | 
 |             java.srcDirs = ['tests/src', 'tests/tapl'] | 
 |             manifest.srcFile "tests/AndroidManifest-common.xml" | 
 |         } | 
 |  | 
 |         androidTestDebug { | 
 |             manifest.srcFile "tests/AndroidManifest.xml" | 
 |         } | 
 |  | 
 |         aosp { | 
 |             java.srcDirs = ['src_flags', 'src_shortcuts_overrides'] | 
 |         } | 
 |  | 
 |         aospWithoutQuickstep { | 
 |             manifest.srcFile "AndroidManifest.xml" | 
 |         } | 
 |  | 
 |         aospWithQuickstep { | 
 |             manifest.srcFile "quickstep/AndroidManifest-launcher.xml" | 
 |         } | 
 |  | 
 |         l3go { | 
 |             res.srcDirs = ['go/res'] | 
 |             java.srcDirs = ['go/src'] | 
 |             manifest.srcFile "go/AndroidManifest.xml" | 
 |         } | 
 |  | 
 |         l3goWithoutQuickstepDebug { | 
 |             manifest.srcFile "AndroidManifest.xml" | 
 |         } | 
 |  | 
 |         l3goWithQuickstepDebug { | 
 |             manifest.srcFile "quickstep/AndroidManifest-launcher.xml" | 
 |         } | 
 |  | 
 |         withoutQuickstep { | 
 |             java.srcDirs = ['src_ui_overrides'] | 
 |         } | 
 |  | 
 |         withQuickstep { | 
 |             res.srcDirs = ['quickstep/res', 'quickstep/recents_ui_overrides/res'] | 
 |             java.srcDirs = ['quickstep/src', 'quickstep/recents_ui_overrides/src'] | 
 |             manifest.srcFile "quickstep/AndroidManifest.xml" | 
 |         } | 
 |     } | 
 | } | 
 |  | 
 | allprojects { | 
 |     repositories { | 
 |         maven { url "../../../prebuilts/sdk/current/androidx/m2repository" } | 
 |         maven { url "../../../prebuilts/fullsdk-darwin/extras/android/m2repository" } | 
 |         maven { url "../../../prebuilts/fullsdk-linux/extras/android/m2repository" } | 
 |         mavenCentral() | 
 |         google() | 
 |     } | 
 | } | 
 |  | 
 | dependencies { | 
 |     implementation "androidx.dynamicanimation:dynamicanimation:${ANDROID_X_VERSION}" | 
 |     implementation "androidx.recyclerview:recyclerview:${ANDROID_X_VERSION}" | 
 |     implementation "androidx.preference:preference:${ANDROID_X_VERSION}" | 
 |     implementation project(':IconLoader') | 
 |     withQuickstepImplementation project(':SharedLibWrapper') | 
 |  | 
 |     // Recents lib dependency | 
 |     withQuickstepImplementation fileTree(dir: "${FRAMEWORK_PREBUILTS_DIR}/quickstep/libs", include: 'sysui_shared.jar') | 
 |  | 
 |     // Required for AOSP to compile. This is already included in the sysui_shared.jar | 
 |     withoutQuickstepImplementation fileTree(dir: "${FRAMEWORK_PREBUILTS_DIR}/libs", include: 'plugin_core.jar') | 
 |  | 
 |     testImplementation 'junit:junit:4.12' | 
 |     androidTestImplementation "org.mockito:mockito-core:1.9.5" | 
 |     androidTestImplementation 'com.google.dexmaker:dexmaker:1.2' | 
 |     androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2' | 
 |     androidTestImplementation 'com.android.support.test:runner:1.0.0' | 
 |     androidTestImplementation 'com.android.support.test:rules:1.0.0' | 
 |     androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2' | 
 |     androidTestImplementation "androidx.annotation:annotation:${ANDROID_X_VERSION}" | 
 | } | 
 |  | 
 | protobuf { | 
 |     // Configure the protoc executable | 
 |     protoc { | 
 |         artifact = "com.google.protobuf:protoc:${protocVersion}" | 
 |     } | 
 |     generateProtoTasks { | 
 |         all().each { task -> | 
 |             task.builtins { | 
 |                 remove java | 
 |                 java { | 
 |                     option "lite" | 
 |                 } | 
 |             } | 
 |         } | 
 |     } | 
 | } |