Skip to content

Commit a8eefd0

Browse files
author
Paulina Strychacz
committed
Check language tasks refactoring. Updated ReadMe. Version set to 1.2
1 parent 4251252 commit a8eefd0

File tree

6 files changed

+44
-30
lines changed

6 files changed

+44
-30
lines changed

README.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,16 @@ The following things can be managed by the plugin:
2121

2222
- Checking for connection to a specific WLAN - A check for a connection to a specific WLAN can be done
2323

24+
- checking language set on the device
25+
26+
- setting language on the device - possible only when additional app is installed: AdbChangeLanguage available in Google Play: https://play.google.com/store/apps/details?id=net.sanapeli.adbchangelanguage
27+
2428
# Integration into the project
2529
## Groovy
2630
### Plugins DSL
2731
```
2832
plugins {
29-
id "de.welt.apps.testdevicemanager" version "1.1"
33+
id "de.welt.apps.testdevicemanager" version "1.2"
3034
}
3135
```
3236
### Legacy plugin application
@@ -38,7 +42,7 @@ buildscript {
3842
}
3943
}
4044
dependencies {
41-
classpath "de.welt.apps:testdevicemanager:1.1"
45+
classpath "de.welt.apps:testdevicemanager:1.2"
4246
}
4347
}
4448
@@ -48,7 +52,7 @@ apply plugin: "de.welt.apps.testdevicemanager"
4852
### Plugins DSL
4953
```
5054
plugins {
51-
id("de.welt.apps.testdevicemanager") version "1.1"
55+
id("de.welt.apps.testdevicemanager") version "1.2"
5256
}
5357
```
5458
### Legacy plugin application
@@ -74,6 +78,7 @@ testDeviceManager {
7478
pin = "9999"
7579
password = "password"
7680
wifi = "wifi-name"
81+
language = "en-US"
7782
}
7883
```
7984
# Compatibility
@@ -93,9 +98,11 @@ The following tasks will be added to the ```device setup``` section of the gradl
9398
```
9499
-connectedAnimationsDisable
95100
-connectedAnimationsEnable
101+
-connectedCheckLanguage
96102
-connectedCheckWifi
97103
-connectedDeviceLock
98104
-connectedDeviceUnlock
105+
-connectedSetLanguage
99106
-connectedStayAwakeDisable
100107
-connectedStayAwakeEnable
101108
```

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ plugins {
1010
apply from: 'properties-loader.gradle'
1111

1212
group 'de.welt.apps'
13-
version '1.1'
13+
version '1.2'
1414

1515
repositories {
1616
mavenCentral()
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
#Wed Sep 19 10:24:55 CEST 2018
21
distributionBase=GRADLE_USER_HOME
32
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-all.zip

src/main/kotlin/tasks/CheckLanguageTask.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package tasks
22

3+
import com.android.ddmlib.IDevice
4+
import tasks.internal.LanguageCheckException
35
import tasks.internal.LanguageTask
46

57

@@ -9,4 +11,12 @@ open class CheckLanguageTask : LanguageTask() {
911
description = "check if specific locale is set as current language"
1012
}
1113

14+
override fun runTask2(device: IDevice) {
15+
if (hasLocaleDifferentThanExpected(device)) {
16+
throw LanguageCheckException("Different language set on ${deviceWrapper.getDetails()}. " +
17+
"It's $currentLanguage, while $language was expected.")
18+
}
19+
println("Device ${deviceWrapper.getDetails()} has locale set to $currentLanguage.")
20+
}
21+
1222
}
Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,29 @@
11
package tasks
22

33
import com.android.ddmlib.IDevice
4-
import internal.DeviceWrapper
54
import org.gradle.api.GradleException
6-
import tasks.internal.LanguageCheckException
75
import tasks.internal.LanguageTask
86

9-
107
open class SetLanguageTask : LanguageTask() {
118

129
init {
1310
description = "check if specific locale is set. if not tries to set it using the external app"
1411
}
1512

1613
override fun runTask2(device: IDevice) {
17-
try {
18-
super.runTask2(device)
19-
}
20-
catch (e: LanguageCheckException) {
21-
val deviceWrapper = DeviceWrapper(device, outputReceiverProvider)
22-
println("Device ${deviceWrapper.getDetails()} setting language to $language.")
23-
deviceWrapper.setLanguage(language)
14+
if (!hasLocaleDifferentThanExpected(device)) return
15+
16+
val deviceDetails = deviceWrapper.getDetails()
17+
println("Device $deviceDetails setting language to $language.")
18+
deviceWrapper.setLanguage(language)
2419

25-
Thread.sleep(1000) //external app changes language via UI, so we need to wait for it
20+
Thread.sleep(1000) //external app changes language via UI, so we need to wait for it
2621

27-
val languageAfterChange = deviceWrapper.getLanguage()
28-
if (languageAfterChange != language) {
29-
throw GradleException("Different language set on ${deviceWrapper.getDetails()}. " +
30-
"It's $languageAfterChange, while $language was expected.")
31-
}
32-
println("Device ${deviceWrapper.getDetails()} has locale set to $language.")
22+
val languageAfterChange = deviceWrapper.getLanguage()
23+
if (languageAfterChange != language) {
24+
throw GradleException("Different language set on $deviceDetails. " +
25+
"It's $languageAfterChange, while $language was expected.")
3326
}
27+
println("Device $deviceDetails has locale set to $language.")
3428
}
3529
}

src/main/kotlin/tasks/internal/LanguageTask.kt

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ import org.gradle.api.GradleException
66
import org.gradle.api.tasks.Input
77

88
open class LanguageTask : DefaultPluginTask() {
9+
protected lateinit var deviceWrapper: DeviceWrapper
10+
protected lateinit var currentLanguage: String
11+
912
@Input
1013
lateinit var language: String
1114

@@ -16,13 +19,14 @@ open class LanguageTask : DefaultPluginTask() {
1619
}
1720

1821
override fun runTask2(device: IDevice) {
19-
val deviceWrapper = DeviceWrapper(device, outputReceiverProvider)
20-
val currentLanguage = deviceWrapper.getLanguage()
21-
if (currentLanguage != language) {
22-
throw LanguageCheckException("Different language set on ${deviceWrapper.getDetails()}. " +
23-
"It's $currentLanguage, while $language was expected.")
24-
}
25-
println("Device ${deviceWrapper.getDetails()} has locale set to $currentLanguage.")
22+
hasLocaleDifferentThanExpected(device)
23+
}
24+
25+
protected fun hasLocaleDifferentThanExpected(device: IDevice) :Boolean {
26+
deviceWrapper = DeviceWrapper(device, outputReceiverProvider)
27+
currentLanguage = deviceWrapper.getLanguage()
28+
29+
return currentLanguage != language
2630
}
2731

2832
override fun runTask3() {}

0 commit comments

Comments
 (0)