aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle8
-rw-r--r--examples/ex1_standalone_app/build.gradle18
-rw-r--r--examples/ex1_standalone_app/src/main/AndroidManifest.xml2
-rw-r--r--examples/ex2_espresso/build.gradle35
-rw-r--r--examples/ex2_espresso/src/main/java/com/google/android/mobly/snippet/example2/MainActivity.java3
-rw-r--r--examples/ex2_espresso/src/main/res/layout/activity_main.xml28
-rw-r--r--examples/ex3_async_event/build.gradle12
-rw-r--r--examples/ex3_async_event/src/main/AndroidManifest.xml2
-rw-r--r--examples/ex4_uiautomator/build.gradle19
-rw-r--r--examples/ex4_uiautomator/src/main/AndroidManifest.xml2
-rw-r--r--examples/ex5_schedule_rpc/build.gradle13
-rw-r--r--examples/ex5_schedule_rpc/src/main/AndroidManifest.xml2
-rw-r--r--gradle/wrapper/gradle-wrapper.properties4
-rw-r--r--third_party/sl4a/build.gradle63
-rw-r--r--third_party/sl4a/gradle.properties4
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/SnippetRunner.java3
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/event/EventCache.java9
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManager.java6
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/MethodDescriptor.java2
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SimpleServer.java31
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/util/Log.java24
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/util/RpcUtil.java3
22 files changed, 165 insertions, 128 deletions
diff --git a/build.gradle b/build.gradle
index 4ed31c7..21ab790 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,11 +1,13 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
+// For android studio 2.3 and plugin 2.3.3
buildscript {
repositories {
jcenter()
+ google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.3.3'
+ classpath 'com.android.tools.build:gradle:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -15,6 +17,7 @@ buildscript {
allprojects {
repositories {
jcenter()
+ google()
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
@@ -23,6 +26,3 @@ allprojects {
}
}
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
diff --git a/examples/ex1_standalone_app/build.gradle b/examples/ex1_standalone_app/build.gradle
index 29e61b3..1825c7e 100644
--- a/examples/ex1_standalone_app/build.gradle
+++ b/examples/ex1_standalone_app/build.gradle
@@ -1,27 +1,27 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 24
- buildToolsVersion '25.0.0'
+ compileSdkVersion 26
defaultConfig {
applicationId "com.google.android.mobly.snippet.example1"
- minSdkVersion 11
- targetSdkVersion 24
+ minSdkVersion 15
+ targetSdkVersion 22
versionCode 1
versionName "0.0.1"
}
lintOptions {
- abortOnError true
+ abortOnError false
checkAllWarnings true
warningsAsErrors true
+ disable 'HardwareIds','MissingApplicationIcon','GoogleAppIndexingWarning','InvalidPackage','OldTargetApi'
}
}
dependencies {
- // The 'compile project' dep is to compile against the snippet lib source in
+ // The 'implementation project' dep is to compile against the snippet lib source in
// this repo. For your own snippets, you'll want to use the regular
- // 'compile' dep instead:
- //compile 'com.google.android.mobly:mobly-snippet-lib:1.2.0'
- compile project(':mobly-snippet-lib')
+ // 'implementation' dep instead:
+ //implementation 'com.google.android.mobly:mobly-snippet-lib:1.3.0'
+ implementation project(':mobly-snippet-lib')
}
diff --git a/examples/ex1_standalone_app/src/main/AndroidManifest.xml b/examples/ex1_standalone_app/src/main/AndroidManifest.xml
index e1b5cf1..90ebdea 100644
--- a/examples/ex1_standalone_app/src/main/AndroidManifest.xml
+++ b/examples/ex1_standalone_app/src/main/AndroidManifest.xml
@@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.mobly.snippet.example1">
- <application>
+ <application android:allowBackup="false">
<!-- Required: list of all classes with @Rpc methods. -->
<meta-data
android:name="mobly-snippets"
diff --git a/examples/ex2_espresso/build.gradle b/examples/ex2_espresso/build.gradle
index a8c0c31..2757808 100644
--- a/examples/ex2_espresso/build.gradle
+++ b/examples/ex2_espresso/build.gradle
@@ -1,39 +1,46 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 24
- buildToolsVersion '25.0.0'
+ compileSdkVersion 26
+ flavorDimensions "examples"
defaultConfig {
applicationId "com.google.android.mobly.snippet.example2"
- minSdkVersion 11
- targetSdkVersion 24
+ minSdkVersion 15
+ targetSdkVersion 22
versionCode 1
versionName "0.0.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
productFlavors {
- main {}
- snippet {}
+ main {
+ dimension "examples"
+ }
+ snippet {
+ dimension "examples"
+ }
}
+
lintOptions {
abortOnError true
checkAllWarnings true
warningsAsErrors true
+ disable 'HardcodedText', 'UnusedIds','MissingApplicationIcon','GoogleAppIndexingWarning','InvalidPackage','OldTargetApi'
}
}
dependencies {
- compile 'com.android.support:appcompat-v7:24.2.1'
+ implementation 'com.android.support:appcompat-v7:26.1.0'
+ implementation 'com.android.support.test:runner:1.0.1'
// The androidTest package is not for snippet support; it shows an example
// of an instrumentation test coexisting with a snippet in the same
// codebase.
- androidTestCompile 'com.android.support:support-annotations:24.2.1'
- androidTestCompile 'com.android.support.test:runner:0.5'
- androidTestCompile 'com.android.support.test:rules:0.5'
- androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+ androidTestImplementation 'com.android.support:support-annotations:26.1.0'
+ androidTestImplementation 'com.android.support.test:runner:1.0.1'
+ androidTestImplementation 'com.android.support.test:rules:1.0.1'
+ androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.1', {
exclude group: 'com.android.support', module: 'support-annotations'
})
@@ -41,8 +48,8 @@ dependencies {
// source in this repo. For your own snippets, you'll want to use the
// regular 'snippetCompile' dep instead:
//snippetCompile 'com.google.android.mobly:mobly-snippet-lib:1.2.0'
- snippetCompile project(':mobly-snippet-lib')
+ snippetImplementation project(':mobly-snippet-lib')
- snippetCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
- snippetCompile 'com.android.support:support-annotations:24.2.1'
+ snippetImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
+ snippetImplementation 'com.android.support:support-annotations:26.1.0'
}
diff --git a/examples/ex2_espresso/src/main/java/com/google/android/mobly/snippet/example2/MainActivity.java b/examples/ex2_espresso/src/main/java/com/google/android/mobly/snippet/example2/MainActivity.java
index 40311c3..940418a 100644
--- a/examples/ex2_espresso/src/main/java/com/google/android/mobly/snippet/example2/MainActivity.java
+++ b/examples/ex2_espresso/src/main/java/com/google/android/mobly/snippet/example2/MainActivity.java
@@ -16,6 +16,7 @@
package com.google.android.mobly.snippet.example2;
+import java.util.Locale;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
@@ -42,7 +43,7 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onClick(View v) {
mNumPressed++;
- mTextView.setText("Button pressed " + mNumPressed + " times");
+ mTextView.setText(String.format(Locale.ROOT, "Button pressed %d times.", mNumPressed));
}
});
}
diff --git a/examples/ex2_espresso/src/main/res/layout/activity_main.xml b/examples/ex2_espresso/src/main/res/layout/activity_main.xml
index 013d6a4..e190302 100644
--- a/examples/ex2_espresso/src/main/res/layout/activity_main.xml
+++ b/examples/ex2_espresso/src/main/res/layout/activity_main.xml
@@ -8,20 +8,16 @@
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.google.android.mobly.snippet.example2.MainActivity">
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <TextView
- android:id="@+id/main_text_view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:text="Hello World!" />
- <Button
- android:id="@+id/main_button"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Push the button!" />
- </LinearLayout>
+<TextView
+ android:id="@+id/main_text_view"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:text="Hello World!" />
+
+<Button
+ android:id="@+id/main_button"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Push the button!" />
</RelativeLayout>
diff --git a/examples/ex3_async_event/build.gradle b/examples/ex3_async_event/build.gradle
index 2fcb8f9..4fb63f9 100644
--- a/examples/ex3_async_event/build.gradle
+++ b/examples/ex3_async_event/build.gradle
@@ -1,20 +1,20 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 24
- buildToolsVersion '25.0.0'
+ compileSdkVersion 26
defaultConfig {
applicationId "com.google.android.mobly.snippet.example3"
- minSdkVersion 11
- targetSdkVersion 24
+ minSdkVersion 15
+ targetSdkVersion 22
versionCode 1
versionName "0.0.1"
}
lintOptions {
- abortOnError true
+ abortOnError false
checkAllWarnings true
warningsAsErrors true
+ disable 'HardwareIds','MissingApplicationIcon','GoogleAppIndexingWarning','InvalidPackage','OldTargetApi'
}
}
@@ -22,5 +22,5 @@ dependencies {
// The 'compile project' dep is to compile against the snippet lib source in
// this repo. For your own snippets, you'll want to use the regular 'compile' dep instead:
// compile 'com.google.android.mobly:mobly-snippet-lib:1.2.0'
- compile project(':mobly-snippet-lib')
+ implementation project(':mobly-snippet-lib')
}
diff --git a/examples/ex3_async_event/src/main/AndroidManifest.xml b/examples/ex3_async_event/src/main/AndroidManifest.xml
index 8e2887c..dcc724b 100644
--- a/examples/ex3_async_event/src/main/AndroidManifest.xml
+++ b/examples/ex3_async_event/src/main/AndroidManifest.xml
@@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.mobly.snippet.example3">
- <application>
+ <application android:allowBackup="false">
<meta-data
android:name="mobly-snippets"
android:value="com.google.android.mobly.snippet.example3.ExampleAsyncSnippet" />
diff --git a/examples/ex4_uiautomator/build.gradle b/examples/ex4_uiautomator/build.gradle
index 8298d9b..1d89fdf 100644
--- a/examples/ex4_uiautomator/build.gradle
+++ b/examples/ex4_uiautomator/build.gradle
@@ -1,20 +1,20 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 24
- buildToolsVersion '25.0.0'
+ compileSdkVersion 26
defaultConfig {
applicationId "com.google.android.mobly.snippet.example4"
minSdkVersion 18
- targetSdkVersion 24
+ targetSdkVersion 22
versionCode 1
- versionName "0.0.1"
+ versionName "0.0.2"
}
lintOptions {
- abortOnError true
+ abortOnError false
checkAllWarnings true
warningsAsErrors true
+ disable 'HardwareIds','MissingApplicationIcon','GoogleAppIndexingWarning','InvalidPackage','OldTargetApi'
}
}
@@ -23,8 +23,9 @@ dependencies {
// this repo. For your own snippets, you'll want to use the regular
// 'compile' dep instead:
//compile 'com.google.android.mobly:mobly-snippet-lib:1.2.0'
- compile project(':mobly-snippet-lib')
-
- compile 'com.android.support:appcompat-v7:24.2.1'
- compile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
+ implementation project(':mobly-snippet-lib')
+ implementation 'junit:junit:4.12'
+ implementation 'com.android.support.test:runner:1.0.1'
+ implementation 'com.android.support:appcompat-v7:26.1.0'
+ implementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3'
}
diff --git a/examples/ex4_uiautomator/src/main/AndroidManifest.xml b/examples/ex4_uiautomator/src/main/AndroidManifest.xml
index 4644ff0..89d5276 100644
--- a/examples/ex4_uiautomator/src/main/AndroidManifest.xml
+++ b/examples/ex4_uiautomator/src/main/AndroidManifest.xml
@@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.mobly.snippet.example4">
- <application>
+ <application android:allowBackup="false">
<meta-data
android:name="mobly-snippets"
android:value="com.google.android.mobly.snippet.example4.UiAutomatorSnippet" />
diff --git a/examples/ex5_schedule_rpc/build.gradle b/examples/ex5_schedule_rpc/build.gradle
index 8c25983..53cd5a0 100644
--- a/examples/ex5_schedule_rpc/build.gradle
+++ b/examples/ex5_schedule_rpc/build.gradle
@@ -1,20 +1,20 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 24
- buildToolsVersion '25.0.0'
+ compileSdkVersion 26
defaultConfig {
applicationId "com.google.android.mobly.snippet.example5"
- minSdkVersion 11
- targetSdkVersion 24
+ minSdkVersion 15
+ targetSdkVersion 22
versionCode 1
versionName "0.0.1"
}
lintOptions {
- abortOnError true
+ abortOnError false
checkAllWarnings true
warningsAsErrors true
+ disable 'HardwareIds','MissingApplicationIcon','GoogleAppIndexingWarning','InvalidPackage','OldTargetApi'
}
}
@@ -22,5 +22,6 @@ dependencies {
// The 'compile project' dep is to compile against the snippet lib source in
// this repo. For your own snippets, you'll want to use the regular 'compile' dep instead:
// compile 'com.google.android.mobly:mobly-snippet-lib:1.1.0'
- compile project(':mobly-snippet-lib')
+ implementation project(':mobly-snippet-lib')
+ implementation 'com.android.support.test:runner:1.0.1'
}
diff --git a/examples/ex5_schedule_rpc/src/main/AndroidManifest.xml b/examples/ex5_schedule_rpc/src/main/AndroidManifest.xml
index cef56e6..9a3271c 100644
--- a/examples/ex5_schedule_rpc/src/main/AndroidManifest.xml
+++ b/examples/ex5_schedule_rpc/src/main/AndroidManifest.xml
@@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.mobly.snippet.example5">
- <application>
+ <application android:allowBackup="false">
<meta-data
android:name="mobly-snippets"
android:value="com.google.android.mobly.snippet.example5.ExampleScheduleRpcSnippet" />
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 1652023..06228b6 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Tue Jun 20 10:15:00 PDT 2017
+#Wed Oct 04 16:01:04 PDT 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/third_party/sl4a/build.gradle b/third_party/sl4a/build.gradle
index 3492848..46c3797 100644
--- a/third_party/sl4a/build.gradle
+++ b/third_party/sl4a/build.gradle
@@ -1,44 +1,68 @@
buildscript {
repositories {
jcenter()
+ google()
}
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
- classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
+ classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
}
}
plugins {
id 'com.github.sherter.google-java-format' version '0.6'
+ id 'com.github.dcendents.android-maven' version '2.0'
}
+
apply plugin: 'com.android.library'
apply plugin: 'com.jfrog.bintray'
-apply plugin: 'com.github.dcendents.android-maven'
+
android {
- compileSdkVersion 24
- buildToolsVersion '25.0.0'
+ compileSdkVersion 26
defaultConfig {
- minSdkVersion 11
- targetSdkVersion 24
+ minSdkVersion 15
+ targetSdkVersion 22
+ // testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
versionCode VERSION_CODE.toInteger()
versionName VERSION_NAME
+
// Need to set up some project properties to publish to bintray.
project.group = GROUP_ID
project.archivesBaseName = ARTIFACT_ID
project.version = VERSION_NAME
}
+
+ splits {
+ abi {
+ enable true
+ reset()
+ // Specifies a list of ABIs that Gradle should create APKs for.
+ include "arm64-v8a", "armeabi-v7a", "armeabi"
+ universalApk true
+ }
+ }
+
lintOptions {
- abortOnError true
+ abortOnError false
checkAllWarnings true
warningsAsErrors true
+ disable 'HardwareIds','MissingApplicationIcon','GoogleAppIndexingWarning','InvalidPackage','OldTargetApi'
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
- compile 'com.android.support.test:runner:0.5'
+ // implementation fileTree(include: ['*.jar'], dir: 'libs')
+ // implementation 'com.android.support:appcompat-v7:26.1.0'
+ implementation 'junit:junit:4.12'
+ implementation 'com.android.support.test:runner:1.0.1'
}
googleJavaFormat {
@@ -143,3 +167,26 @@ bintray {
}
}
}
+
+// Open lint's HTML report in your default browser or viewer.
+task openLintReport(type: Exec) {
+ def lint_report = "build/reports/lint-results.html"
+ def cmd = "cat"
+ def platform = System.getProperty('os.name').toLowerCase(Locale.ROOT)
+ if (platform.contains("linux")) {
+ cmd = "xdg-open"
+ } else if (platform.contains("mac os x")) {
+ cmd = "open"
+ } else if (platform.contains("windows")) {
+ cmd = "launch"
+ }
+ commandLine cmd, lint_report
+}
+
+task presubmit {
+ dependsOn { ['googleJavaFormat', 'lint', 'openLintReport'] }
+ doLast {
+ println "Fix any lint issues you see. When it looks good, submit the pull request."
+ }
+}
+
diff --git a/third_party/sl4a/gradle.properties b/third_party/sl4a/gradle.properties
index b1c5a0a..1146440 100644
--- a/third_party/sl4a/gradle.properties
+++ b/third_party/sl4a/gradle.properties
@@ -1,6 +1,6 @@
# This version code implements the versioning recommendations in:
# https://blog.jayway.com/2015/03/11/automatic-versioncode-generation-in-android-gradle/
-VERSION_CODE=1020100
-VERSION_NAME=1.2.1-SNAPSHOT
+VERSION_CODE=1030000
+VERSION_NAME=1.3
GROUP_ID=com.google.android.mobly
ARTIFACT_ID=mobly-snippet-lib
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/SnippetRunner.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/SnippetRunner.java
index fbd4a4a..f79a4b4 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/SnippetRunner.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/SnippetRunner.java
@@ -28,6 +28,7 @@ import com.google.android.mobly.snippet.util.Log;
import com.google.android.mobly.snippet.util.NotificationIdFactory;
import java.io.IOException;
import java.net.SocketException;
+import java.util.Locale;
/**
* A launcher that starts the snippet server as an instrumentation so that it has access to the
@@ -116,7 +117,7 @@ public class SnippetRunner extends AndroidJUnitRunner {
if (actionStr == null) {
throw new IllegalArgumentException("\"--e action <action>\" was not specified");
}
- Action action = Action.valueOf(actionStr.toUpperCase());
+ Action action = Action.valueOf(actionStr.toUpperCase(Locale.ROOT));
switch (action) {
case START:
String servicePort = mArguments.getString(ARG_PORT);
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/event/EventCache.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/event/EventCache.java
index d150987..a3106f5 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/event/EventCache.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/event/EventCache.java
@@ -19,6 +19,7 @@ package com.google.android.mobly.snippet.event;
import com.google.android.mobly.snippet.util.Log;
import java.util.Deque;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
import java.util.concurrent.LinkedBlockingDeque;
@@ -54,7 +55,7 @@ public class EventCache {
}
public static String getQueueId(String callbackId, String name) {
- return String.format(EVENT_DEQUE_ID_TEMPLATE, callbackId, name);
+ return String.format(Locale.US, EVENT_DEQUE_ID_TEMPLATE, callbackId, name);
}
public LinkedBlockingDeque<SnippetEvent> getEventDeque(String qId) {
@@ -84,11 +85,13 @@ public class EventCache {
SnippetEvent retiredEvent = q.removeFirst();
Log.v(
String.format(
+ Locale.US,
"Retired event %s due to deque reaching the size limit (%s).",
- retiredEvent, EVENT_DEQUE_MAX_SIZE));
+ retiredEvent,
+ EVENT_DEQUE_MAX_SIZE));
}
}
- Log.v(String.format("Posted event(%s)", qId));
+ Log.v(String.format(Locale.US, "Posted event(%s)", qId));
}
/** Clears all cached events. */
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManager.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManager.java
index 66e33b3..3fceb36 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManager.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManager.java
@@ -37,6 +37,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
@@ -111,8 +112,11 @@ public class SnippetManager {
if (Build.VERSION.SDK_INT < requiredSdkLevel) {
throw new SnippetLibException(
String.format(
+ Locale.US,
"%s requires API level %d, current level is %d",
- method.getName(), requiredSdkLevel, Build.VERSION.SDK_INT));
+ method.getName(),
+ requiredSdkLevel,
+ Build.VERSION.SDK_INT));
}
}
Snippet object;
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/MethodDescriptor.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/MethodDescriptor.java
index bc9bd48..185b7be 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/MethodDescriptor.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/MethodDescriptor.java
@@ -26,6 +26,7 @@ import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.Locale;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -226,6 +227,7 @@ public final class MethodDescriptor {
}
String help =
String.format(
+ Locale.US,
"%s %s(%s) returns %s // %s",
isAsync() ? "@AsyncRpc" : "@Rpc",
mMethod.getName(),
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SimpleServer.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SimpleServer.java
index 8d86723..db7255a 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SimpleServer.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SimpleServer.java
@@ -40,7 +40,7 @@ import org.json.JSONObject;
public abstract class SimpleServer {
private static int threadIndex = 0;
private final ConcurrentHashMap<Integer, ConnectionThread> mConnectionThreads =
- new ConcurrentHashMap<Integer, ConnectionThread>();
+ new ConcurrentHashMap<>();
private final List<SimpleServerObserver> mObservers = new ArrayList<>();
private volatile boolean mStopServer = false;
private ServerSocket mServer;
@@ -134,12 +134,7 @@ public abstract class SimpleServer {
}
}
- /** Returns the number of active connections to this server. */
- public int getNumberOfConnections() {
- return mConnectionThreads.size();
- }
-
- public static InetAddress getPrivateInetAddress() throws UnknownHostException, SocketException {
+ private InetAddress getPrivateInetAddress() throws UnknownHostException, SocketException {
InetAddress candidate = null;
Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
@@ -162,28 +157,6 @@ public abstract class SimpleServer {
return InetAddress.getLocalHost(); // No damn matches. Give up, return local host.
}
- public static InetAddress getPublicInetAddress() throws UnknownHostException, SocketException {
-
- InetAddress candidate = null;
- Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
- for (NetworkInterface netint : Collections.list(nets)) {
- if (netint.isLoopback() || !netint.isUp()) { // Ignore if localhost or not active
- continue;
- }
- Enumeration<InetAddress> addresses = netint.getInetAddresses();
- for (InetAddress address : Collections.list(addresses)) {
- if (address instanceof Inet4Address) {
- return address; // Prefer ipv4
- }
- candidate = address; // Probably an ipv6
- }
- }
- if (candidate != null) {
- return candidate; // return ipv6 address if no suitable ipv6
- }
- return InetAddress.getLocalHost(); // No damn matches. Give up, return local host.
- }
-
/**
* Starts the RPC server bound to the localhost address.
*
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/util/Log.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/util/Log.java
index 81018f7..64f03e9 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/util/Log.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/util/Log.java
@@ -77,22 +77,22 @@ public final class Log {
// Do not used hard-coded stack depth: that does not work all the time because of proguard
// inline optimization.
for (int i = STACK_TRACE_WALK_START_INDEX; i < stackTraceElements.length; i++) {
- StackTraceElement element = stackTraceElements[i];
- fullClassName = element.getClassName();
- if (!fullClassName.equals(MY_CLASS_NAME) &&
- !fullClassName.equals(ANDROID_LOG_CLASS_NAME)) {
- lineNumber = element.getLineNumber();
- isCallerClassNameFound = true;
- break;
- }
+ StackTraceElement element = stackTraceElements[i];
+ fullClassName = element.getClassName();
+ if (!fullClassName.equals(MY_CLASS_NAME)
+ && !fullClassName.equals(ANDROID_LOG_CLASS_NAME)) {
+ lineNumber = element.getLineNumber();
+ isCallerClassNameFound = true;
+ break;
+ }
}
if (!isCallerClassNameFound) {
- // Failed to determine caller's class name, fall back the the minimal one.
- return logTag;
+ // Failed to determine caller's class name, fall back the the minimal one.
+ return logTag;
} else {
- String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
- return logTag + "." + className + ":" + lineNumber;
+ String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
+ return logTag + "." + className + ":" + lineNumber;
}
}
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/util/RpcUtil.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/util/RpcUtil.java
index 7eba07f..4601e93 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/util/RpcUtil.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/util/RpcUtil.java
@@ -22,6 +22,7 @@ import com.google.android.mobly.snippet.manager.SnippetManager;
import com.google.android.mobly.snippet.rpc.JsonRpcResult;
import com.google.android.mobly.snippet.rpc.MethodDescriptor;
import com.google.android.mobly.snippet.rpc.RpcError;
+import java.util.Locale;
import java.util.Timer;
import java.util.TimerTask;
import org.json.JSONArray;
@@ -99,7 +100,7 @@ public class RpcUtil {
*/
public JSONObject invokeRpc(String methodName, JSONArray params, int id, Integer UID)
throws JSONException {
- return invokeRpc(methodName, params, id, String.format("%d-%d", UID, id));
+ return invokeRpc(methodName, params, id, String.format(Locale.US, "%d-%d", UID, id));
}
/**