|  | List<String> samples = [ | 
|  | "security/keystore/BasicAndroidKeyStore", | 
|  | "connectivity/sync/BasicSyncAdapter", | 
|  | "connectivity/network/NetworkConnect", | 
|  | "connectivity/network/BasicNetworking", | 
|  | "connectivity/bluetooth/BluetoothLeGatt", | 
|  | "content/multiuser/AppRestrictions", | 
|  | "content/contacts/BasicContactables", | 
|  | "content/documentsUi/StorageClient", | 
|  | "content/documentsUi/StorageProvider", | 
|  | "views/TextLinkify", | 
|  | "input/gestures/BasicGestureDetect", | 
|  | "input/multitouch/BasicMultitouch", | 
|  | "testing/ActivityInstrumentation", | 
|  | "media/MediaRecorder", | 
|  | "media/BasicMediaRouter", | 
|  | "media/BasicMediaDecoder", | 
|  | "ui/holo/BorderlessButtons", | 
|  | "ui/accessibility/BasicAccessibility", | 
|  | "ui/lists/CustomChoiceList", | 
|  | "ui/views/TextSwitcher", | 
|  | "ui/views/HorizontalPaging", | 
|  | "ui/actionbarcompat/ActionBarCompat-Basic", | 
|  | "ui/actionbarcompat/ActionBarCompat-Styled", | 
|  | "ui/actionbarcompat/ActionBarCompat-ListPopupMenu", | 
|  | "notification/BasicNotifications", | 
|  | "notification/CustomNotifications", | 
|  | "ui/actionbar/DoneBar", | 
|  | "ui/graphics/PdfRendererBasic", | 
|  | "ui/window/BasicImmersiveMode", | 
|  | "ui/window/AdvancedImmersiveMode", | 
|  | "ui/window/ImmersiveMode", | 
|  | "background/alarms/RepeatingAlarm", | 
|  | "renderScript/BasicRenderScript", | 
|  | "renderScript/RenderScriptIntrinsic", | 
|  | "ui/views/SlidingTabs/SlidingTabsBasic", | 
|  | "ui/views/SlidingTabs/SlidingTabsColors", | 
|  | "connectivity/nfc/BeamLargeFiles", | 
|  | "connectivity/nfc/CardEmulation", | 
|  | "connectivity/nfc/CardReader", | 
|  | "sensors/BatchStepSensor", | 
|  | "ui/graphics/DisplayingBitmaps", | 
|  | "ui/transition/BasicTransition", | 
|  | "ui/transition/CustomTransition", | 
|  | "ui/views/SwipeRefreshLayout/SwipeRefreshLayoutBasic", | 
|  | "ui/views/SwipeRefreshLayout/SwipeRefreshListFragment", | 
|  | "ui/views/SwipeRefreshLayout/SwipeRefreshMultipleViews", | 
|  | "media/MediaBrowserService", | 
|  | "media/MediaRouter", | 
|  | "media/MediaEffects", | 
|  | "admin/BasicManagedProfile", | 
|  | "media/Camera2Basic", | 
|  | "media/Camera2Video", | 
|  | "ui/activityscenetransition/ActivitySceneTransitionBasic", | 
|  | "ui/views/NavigationDrawer", | 
|  | "ui/views/Elevation/ElevationBasic", | 
|  | "ui/views/Elevation/ElevationDrag", | 
|  | "ui/views/Clipping/ClippingBasic", | 
|  | "ui/views/FloatingActionButton/FloatingActionButtonBasic", | 
|  | "ui/views/RevealEffect/RevealEffectBasic", | 
|  | "background/JobScheduler", | 
|  | "ui/views/RecyclerView", | 
|  | "ui/views/CardView", | 
|  | "notification/LNotifications", | 
|  | "notification/MessagingService", | 
|  | "ui/DrawableTinting", | 
|  | "ui/Interpolator", | 
|  | "media/HdrViewfinder", | 
|  | "ui/activitytasks/DocumentCentricApps", | 
|  | "ui/activitytasks/DocumentCentricRelinquishIdentity", | 
|  | "admin/AppRestrictionEnforcer", | 
|  | "admin/AppRestrictionSchema", | 
|  | "connectivity/bluetooth/BluetoothChat", | 
|  | "wearable/wear/AgendaData", | 
|  | "wearable/wear/DataLayer", | 
|  | "wearable/wear/DelayedConfirmation", | 
|  | "wearable/wear/ElizaChat", | 
|  | "wearable/wear/FindMyPhone", | 
|  | "wearable/wear/Flashlight", | 
|  | "wearable/wear/Geofencing", | 
|  | "wearable/wear/GridViewPager", | 
|  | "wearable/wear/JumpingJack", | 
|  | "wearable/wear/Notifications", | 
|  | "wearable/wear/Quiz", | 
|  | "wearable/wear/RecipeAssistant", | 
|  | "wearable/wear/SkeletonWearableApp", | 
|  | "wearable/wear/SpeedTracker", | 
|  | "wearable/wear/SynchronizedNotifications", | 
|  | "wearable/wear/Timer", | 
|  | "wearable/wear/WatchViewStub", | 
|  | "wearable/wear/WatchFace", | 
|  | "content/webview/PermissionRequest", | 
|  | "content/documentsUi/DirectorySelection", | 
|  | "system/AppUsageStatistics", | 
|  | "media/ScreenCapture", | 
|  | "admin/NfcProvisioning", | 
|  | "admin/DeviceOwner", | 
|  | "wearable/wear/XYZTouristAttractions", | 
|  | "connectivity/bluetooth/BluetoothAdvertisements", | 
|  | "wearable/wear/AlwaysOn", | 
|  | "security/ConfirmCredential", | 
|  | "security/FingerprintDialog", | 
|  | "system/RuntimePermissions", | 
|  | "system/RuntimePermissionsBasic", | 
|  | "wearable/wear/RuntimePermissionsWear", | 
|  | "notification/ActiveNotifications", | 
|  | "media/Camera2Raw", | 
|  | "content/AutoBackupForApps", | 
|  | "ui/window/MultiWindowPlayground", | 
|  | "content/documentsUi/ScopedDirectoryAccess", | 
|  | "security/DirectBoot", | 
|  | "content/DirectShare", | 
|  | "media/MidiScope", | 
|  | "media/MidiSynth", | 
|  | "security/AsymmetricFingerprintDialog", | 
|  | "wearable/wear/WearSpeakerSample", | 
|  | "wearable/wear/WearDrawers", | 
|  | "ui/window/DragAndDropAcrossApps", | 
|  | "wearable/wear/WearNotifications", | 
|  | "system/AppShortcuts", | 
|  | "input/keyboard/CommitContentSampleApp", | 
|  | "input/keyboard/CommitContentSampleIME", | 
|  | "content/ShareActionProvider", | 
|  | "wearable/wear/WearVerifyRemoteApp", | 
|  | "wearable/wear/WearHighBandwidthNetworking", | 
|  | "content/documentsUi/ContentProviderPaging", | 
|  | "notification/NotificationChannels", | 
|  | "media/PictureInPicture", | 
|  | "input/autofill/AutofillFramework", | 
|  | "views/EmojiCompat", | 
|  | "ui/fonts/DownloadableFonts", | 
|  | "wearable/wear/WearComplicationProvidersTestSuite", | 
|  | ] | 
|  |  | 
|  | List<String> taskNames = [ | 
|  | "clean", | 
|  | "refresh", | 
|  | "assembleDebug", | 
|  | "build", | 
|  | "check", | 
|  | "connectedCheck", | 
|  | "deviceCheck", | 
|  | "emitAnt", | 
|  | "emitGradle", | 
|  | "emitBrowseable", | 
|  | "emitGradleZip", | 
|  | ] | 
|  |  | 
|  | taskNames.each { taskName -> | 
|  | def task = project.hasProperty(taskName) ? project.tasks[taskName] : project.task(taskName) | 
|  | println task | 
|  | samples.each { sample -> | 
|  | File sampleDir = new File(sample) | 
|  | task.dependsOn project.task([type: GradleBuild], "${sample}_${taskName}", { | 
|  | buildFile = "${sample}/build.gradle" | 
|  | dir = sample | 
|  | tasks = [taskName] | 
|  | }) | 
|  | } | 
|  | } |