@@ -3,8 +3,10 @@ package internal
33import TestDeviceManagerExtension
44import internal.TaskNames.ANIMATIONS_DISABLE_TASK_NAME
55import internal.TaskNames.ANIMATIONS_ENABLE_TASK_NAME
6+ import internal.TaskNames.CHECK_LANGUAGE_TASK_NAME
67import internal.TaskNames.CHECK_WIFI_TASK_NAME
78import internal.TaskNames.LOCK_TASK_NAME
9+ import internal.TaskNames.SET_LANGUAGE_TASK_NAME
810import internal.TaskNames.STAY_AWAKE_DISABLE_TASK_NAME
911import internal.TaskNames.STAY_AWAKE_ENABLE_TASK_NAME
1012import internal.TaskNames.UNLOCK_TASK_NAME
@@ -13,6 +15,7 @@ import org.gradle.api.Project
1315import org.gradle.api.Task
1416import tasks.*
1517import tasks.internal.AnimationScalesSwitch
18+ import tasks.internal.DefaultPluginTask
1619
1720object TaskNames {
1821 const val UNLOCK_TASK_NAME = " connectedDeviceUnlock"
@@ -22,6 +25,8 @@ object TaskNames {
2225 const val STAY_AWAKE_ENABLE_TASK_NAME = " connectedStayAwakeEnable"
2326 const val STAY_AWAKE_DISABLE_TASK_NAME = " connectedStayAwakeDisable"
2427 const val CHECK_WIFI_TASK_NAME = " connectedCheckWifi"
28+ const val CHECK_LANGUAGE_TASK_NAME = " connectedCheckLanguage"
29+ const val SET_LANGUAGE_TASK_NAME = " connectedSetLanguage"
2530}
2631
2732sealed class Tasks <T : Task >(var name : String , var type : Class <T >) {
@@ -36,6 +41,8 @@ sealed class Tasks<T : Task>(var name: String, var type: Class<T>) {
3641 DisableStayAwakeTask : :class.java)
3742
3843 object CHECK_WIFI_CONNECTION : Tasks<CheckWifiTask>(CHECK_WIFI_TASK_NAME , CheckWifiTask : :class.java)
44+ object CHECK_LANGUAGE : Tasks<CheckLanguageTask>(CHECK_LANGUAGE_TASK_NAME , CheckLanguageTask : :class.java)
45+ object SET_LANGUAGE : Tasks<SetLanguageTask>(SET_LANGUAGE_TASK_NAME , SetLanguageTask : :class.java)
3946}
4047
4148class TaskCreator (
@@ -47,40 +54,41 @@ class TaskCreator(
4754) {
4855
4956 fun createTasks () {
50- project.tasks.create(UNLOCK .name, UNLOCK .type) {
51- it.communicator = communicator
57+ createTask(UNLOCK ) {
5258 it.unlockBy = extension.unlockBy
5359 it.pin = extension.pin
5460 it.password = extension.password
5561 }
5662
57- project.tasks.create(LOCK .name, LOCK .type) {
58- it.communicator = communicator
59- }
60-
61- project.tasks.create(ANIMATION_DISABLE .name, ANIMATION_DISABLE .type) {
62- it.communicator = communicator
63+ createTask(LOCK )
64+ createTask(ANIMATION_DISABLE ) {
6365 it.persistenceHelper = animationScalesPersistenceHelper
6466 it.animationScalesSwitch = animationScalesSwitch
6567 }
6668
67- project.tasks.create(ANIMATION_ENABLE .name, ANIMATION_ENABLE .type) {
68- it.communicator = communicator
69+ createTask(ANIMATION_ENABLE ) {
6970 it.persistenceHelper = animationScalesPersistenceHelper
7071 it.animationScalesSwitch = animationScalesSwitch
7172 }
7273
73- project.tasks.create(STAY_AWAKE_ENABLE .name, STAY_AWAKE_ENABLE .type) {
74- it.communicator = communicator
74+ createTask(STAY_AWAKE_ENABLE )
75+ createTask(STAY_AWAKE_DISABLE )
76+ createTask(CHECK_WIFI_CONNECTION ) {
77+ it.wifi = extension.wifi
7578 }
7679
77- project.tasks.create( STAY_AWAKE_DISABLE .name, STAY_AWAKE_DISABLE .type ) {
78- it.communicator = communicator
80+ createTask( CHECK_LANGUAGE ) {
81+ it.language = extension.language
7982 }
83+ createTask(SET_LANGUAGE ) {
84+ it.language = extension.language
85+ }
86+ }
8087
81- project.tasks.create(CHECK_WIFI_CONNECTION .name, CHECK_WIFI_CONNECTION .type) {
88+ private fun <T : DefaultPluginTask > createTask (task : Tasks <T >, configuration : ((T ) -> Unit )? = null) {
89+ project.tasks.create(task.name, task.type) {
8290 it.communicator = communicator
83- it.wifi = extension.wifi
91+ configuration?.invoke(it as T )
8492 }
8593 }
8694}
0 commit comments