aboutsummaryrefslogtreecommitdiff
path: root/third_party/sl4a/src
diff options
context:
space:
mode:
authorAlexander Dorokhine <adorokhine@google.com>2016-12-06 19:26:41 -0800
committerAlexander Dorokhine <adorokhine@google.com>2016-12-07 18:12:39 -0800
commitacc0748fce28b7cc1ff95a47d73ad77a49806cfd (patch)
treeead19ca61f30194db40eb4df8a88656ca96aa7dd /third_party/sl4a/src
parenta113c04e0bf87ad3bf0b480e5a18bc18bf845f14 (diff)
downloadmobly-snippet-lib-acc0748fce28b7cc1ff95a47d73ad77a49806cfd.tar.gz
Remove the 'facade' package and FacadeManager.
Merge the sdk checking code into SnippetManager. Move the main Snippet interface to the root package.
Diffstat (limited to 'third_party/sl4a/src')
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/Snippet.java (renamed from third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/Snippet.java)2
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/facade/FacadeManager.java53
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/ReflectionSnippetManagerFactory.java (renamed from third_party/sl4a/src/main/java/com/google/android/mobly/snippet/facade/ReflectionFacadeManagerFactory.java)18
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManager.java (renamed from third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SnippetManager.java)62
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManagerFactory.java (renamed from third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SnippetManagerFactory.java)2
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/AndroidProxy.java9
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/JsonRpcServer.java5
-rw-r--r--third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/MethodDescriptor.java9
8 files changed, 54 insertions, 106 deletions
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/Snippet.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/Snippet.java
index a6286a0..fb3a1b9 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/Snippet.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/Snippet.java
@@ -14,7 +14,7 @@
* the License.
*/
-package com.google.android.mobly.snippet.rpc;
+package com.google.android.mobly.snippet;
public interface Snippet {
/** Invoked when the receiver is shut down. */
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/facade/FacadeManager.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/facade/FacadeManager.java
deleted file mode 100644
index a3160c7..0000000
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/facade/FacadeManager.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2016 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.google.android.mobly.snippet.facade;
-
-import android.content.Context;
-
-import com.google.android.mobly.snippet.rpc.RpcMinSdk;
-import com.google.android.mobly.snippet.rpc.Snippet;
-import com.google.android.mobly.snippet.rpc.SnippetManager;
-import com.google.android.mobly.snippet.util.SnippetLibException;
-import com.google.android.mobly.snippet.util.Log;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Collection;
-
-public class FacadeManager extends SnippetManager {
-
- private int mSdkLevel;
-
- public FacadeManager(int sdkLevel, Collection<Class<? extends Snippet>> classList) {
- super(classList);
- mSdkLevel = sdkLevel;
- }
-
- @Override
- public Object invoke(Class<? extends Snippet> clazz, Method method, Object[] args)
- throws Exception {
- if (method.isAnnotationPresent(RpcMinSdk.class)) {
- int requiredSdkLevel = method.getAnnotation(RpcMinSdk.class).value();
- if (mSdkLevel < requiredSdkLevel) {
- throw new SnippetLibException(
- String.format("%s requires API level %d, current level is %d",
- method.getName(), requiredSdkLevel, mSdkLevel));
- }
- }
- return super.invoke(clazz, method, args);
- }
-}
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/facade/ReflectionFacadeManagerFactory.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/ReflectionSnippetManagerFactory.java
index 1b626b5..eb97481 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/facade/ReflectionFacadeManagerFactory.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/ReflectionSnippetManagerFactory.java
@@ -14,7 +14,7 @@
* the License.
*/
-package com.google.android.mobly.snippet.facade;
+package com.google.android.mobly.snippet.manager;
import android.content.Context;
import android.content.pm.ApplicationInfo;
@@ -22,9 +22,7 @@ import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
-import com.google.android.mobly.snippet.rpc.Snippet;
-import com.google.android.mobly.snippet.rpc.SnippetManager;
-import com.google.android.mobly.snippet.rpc.SnippetManagerFactory;
+import com.google.android.mobly.snippet.Snippet;
import com.google.android.mobly.snippet.util.Log;
import java.util.Collections;
@@ -33,25 +31,25 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-public class ReflectionFacadeManagerFactory implements SnippetManagerFactory {
+public class ReflectionSnippetManagerFactory implements SnippetManagerFactory {
private static final String METADATA_TAG_NAME = "mobly-snippets";
private final Context mContext;
private final Set<Class<? extends Snippet>> mClasses;
private final Map<Integer, SnippetManager> mSnippetManagers;
- public ReflectionFacadeManagerFactory(Context context) {
+ public ReflectionSnippetManagerFactory(Context context) {
mContext = context;
mClasses = loadSnippets();
mSnippetManagers = new HashMap<>();
}
@Override
- public FacadeManager create(Integer UID) {
+ public SnippetManager create(Integer UID) {
int sdkLevel = Build.VERSION.SDK_INT;
- FacadeManager facadeManager = new FacadeManager(sdkLevel, mClasses);
- mSnippetManagers.put(UID, facadeManager);
- return facadeManager;
+ SnippetManager manager = new SnippetManager(mClasses);
+ mSnippetManagers.put(UID, manager);
+ return manager;
}
@Override
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SnippetManager.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManager.java
index d118707..edb872b 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SnippetManager.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManager.java
@@ -14,29 +14,27 @@
* the License.
*/
-package com.google.android.mobly.snippet.rpc;
+package com.google.android.mobly.snippet.manager;
-import android.content.Context;
+import android.os.Build;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
+import com.google.android.mobly.snippet.Snippet;
+import com.google.android.mobly.snippet.rpc.MethodDescriptor;
+import com.google.android.mobly.snippet.rpc.RpcMinSdk;
import com.google.android.mobly.snippet.util.Log;
+import com.google.android.mobly.snippet.util.SnippetLibException;
-public abstract class SnippetManager {
-
+public class SnippetManager {
private final Map<Class<? extends Snippet>, Snippet> mReceivers;
-
- /**
- * A map of strings to known RPCs.
- */
+ /** A map of strings to known RPCs. */
private final Map<String, MethodDescriptor> mKnownRpcs = new HashMap<String, MethodDescriptor>();
public SnippetManager(Collection<Class<? extends Snippet>> classList) {
@@ -56,24 +54,6 @@ public abstract class SnippetManager {
}
}
- private Snippet get(Class<? extends Snippet> clazz) {
- Snippet object = mReceivers.get(clazz);
- if (object != null) {
- return object;
- }
-
- Constructor<? extends Snippet> constructor;
- try {
- constructor = clazz.getConstructor();
- object = constructor.newInstance();
- mReceivers.put(clazz, object);
- } catch (Exception e) {
- Log.e(e);
- }
-
- return object;
- }
-
public MethodDescriptor getMethodDescriptor(String methodName) {
return mKnownRpcs.get(methodName);
}
@@ -84,6 +64,14 @@ public abstract class SnippetManager {
public Object invoke(Class<? extends Snippet> clazz, Method method, Object[] args)
throws Exception {
+ if (method.isAnnotationPresent(RpcMinSdk.class)) {
+ int requiredSdkLevel = method.getAnnotation(RpcMinSdk.class).value();
+ if (Build.VERSION.SDK_INT < requiredSdkLevel) {
+ throw new SnippetLibException(
+ String.format("%s requires API level %d, current level is %d",
+ method.getName(), requiredSdkLevel, Build.VERSION.SDK_INT));
+ }
+ }
Snippet object = get(clazz);
return method.invoke(object, args);
}
@@ -99,4 +87,22 @@ public abstract class SnippetManager {
}
}
}
+
+ private Snippet get(Class<? extends Snippet> clazz) {
+ Snippet object = mReceivers.get(clazz);
+ if (object != null) {
+ return object;
+ }
+
+ Constructor<? extends Snippet> constructor;
+ try {
+ constructor = clazz.getConstructor();
+ object = constructor.newInstance();
+ mReceivers.put(clazz, object);
+ } catch (Exception e) {
+ Log.e(e);
+ }
+
+ return object;
+ }
}
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SnippetManagerFactory.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManagerFactory.java
index f1d16b2..9acb273 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/SnippetManagerFactory.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/manager/SnippetManagerFactory.java
@@ -14,7 +14,7 @@
* the License.
*/
-package com.google.android.mobly.snippet.rpc;
+package com.google.android.mobly.snippet.manager;
import java.util.Map;
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/AndroidProxy.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/AndroidProxy.java
index fd13b3f..0ae764f 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/AndroidProxy.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/AndroidProxy.java
@@ -18,7 +18,8 @@ package com.google.android.mobly.snippet.rpc;
import android.content.Context;
-import com.google.android.mobly.snippet.facade.ReflectionFacadeManagerFactory;
+import com.google.android.mobly.snippet.manager.ReflectionSnippetManagerFactory;
+import com.google.android.mobly.snippet.manager.SnippetManagerFactory;
import java.net.InetSocketAddress;
@@ -26,11 +27,11 @@ public class AndroidProxy {
private InetSocketAddress mAddress;
private final JsonRpcServer mJsonRpcServer;
- private final SnippetManagerFactory mFacadeManagerFactory;
+ private final SnippetManagerFactory mSnippetManagerFactory;
public AndroidProxy(Context context) {
- mFacadeManagerFactory = new ReflectionFacadeManagerFactory(context);
- mJsonRpcServer = new JsonRpcServer(mFacadeManagerFactory);
+ mSnippetManagerFactory = new ReflectionSnippetManagerFactory(context);
+ mJsonRpcServer = new JsonRpcServer(mSnippetManagerFactory);
}
public InetSocketAddress startLocal(int port) {
diff --git a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/JsonRpcServer.java b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/JsonRpcServer.java
index 6834507..398dc3f 100644
--- a/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/JsonRpcServer.java
+++ b/third_party/sl4a/src/main/java/com/google/android/mobly/snippet/rpc/JsonRpcServer.java
@@ -16,6 +16,8 @@
package com.google.android.mobly.snippet.rpc;
+import com.google.android.mobly.snippet.manager.SnippetManager;
+import com.google.android.mobly.snippet.manager.SnippetManagerFactory;
import com.google.android.mobly.snippet.util.Log;
import java.io.BufferedReader;
@@ -49,8 +51,7 @@ public class JsonRpcServer extends SimpleServer {
public void shutdown() {
super.shutdown();
// Notify all RPC receiving objects. They may have to clean up some of their state.
- for (SnippetManager manager : mSnippetManagerFactory.getSnippetManagers()
- .values()) {
+ for (SnippetManager manager : mSnippetManagerFactory.getSnippetManagers().values()) {
manager.shutdown();
}
}
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 c110da0..8d18582 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
@@ -18,21 +18,16 @@ package com.google.android.mobly.snippet.rpc;
import android.content.Intent;
import android.net.Uri;
-import android.os.Bundle;
-import android.os.Parcelable;
+import com.google.android.mobly.snippet.Snippet;
+import com.google.android.mobly.snippet.manager.SnippetManager;
import com.google.android.mobly.snippet.util.AndroidUtil;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;