summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2020-08-10 16:37:47 -0400
committerJoey Grover <joeygrover@gmail.com>2020-08-10 16:37:47 -0400
commit3c46551f0452bf5ee10c11e1bc7adbceb3d4c426 (patch)
tree85a835d25d05d88180471edc7f77fc47702270c7
parent92bd078d6ce5ceb077c598eec952c7f259ccd00e (diff)
downloadsdl_android-feature/integration_validator.tar.gz
Add flag to skip RS check in validatorfeature/integration_validator
Also reformatted code in validator
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java13
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java41
3 files changed, 37 insertions, 19 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java
index b11ef605b..4ed1b85f4 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java
@@ -136,7 +136,7 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{
localRouterClass = defineLocalSdlRouterClass();
// we need to check this again because for USB apps, the returned class can still be null
if (AndroidTools.isDebugMode(context)) {
- IntegrationValidator.ValidationResult result = IntegrationValidator.validate(context, localRouterClass);
+ IntegrationValidator.ValidationResult result = IntegrationValidator.validate(context, localRouterClass, 0);
if(!result.isSuccessful()){
throw new RuntimeException(result.getResultText());
}
@@ -431,6 +431,17 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{
* @param context
*/
public static void queryForConnectedService(final Context context){
+ if (AndroidTools.isDebugMode(context)) {
+ int flag = 0;
+ if(localRouterClass == null) {
+ flag = IntegrationValidator.FLAG_SKIP_ROUTER_SERVICE_CHECK;
+ }
+
+ IntegrationValidator.ValidationResult result = IntegrationValidator.validate(context, localRouterClass, flag);
+ if(!result.isSuccessful()){
+ throw new RuntimeException(result.getResultText());
+ }
+ }
//Leverage existing call. Include ping bit
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
ServiceFinder finder = new ServiceFinder(context, context.getPackageName(), new ServiceFinder.ServiceFinderCallback() {
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
index 6a0d9ddc1..bcd5678a5 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
@@ -1106,7 +1106,7 @@ public class SdlRouterService extends Service{
public void onCreate() {
super.onCreate();
if (AndroidTools.isDebugMode(getApplicationContext())) {
- IntegrationValidator.ValidationResult result = IntegrationValidator.validate(getApplicationContext(), this.getClass());
+ IntegrationValidator.ValidationResult result = IntegrationValidator.validate(getApplicationContext(), this.getClass(), 0);
if(!result.isSuccessful()) {
throw new RuntimeException(result.getResultText());
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java
index 77786a256..6553da286 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java
@@ -49,11 +49,13 @@ import java.util.List;
public class IntegrationValidator {
- private static final String TAG = "IntegrationValidator";
private static final char CHECK_MARK = 0x2713;
private static final char FAIL_MARK = 0x2715;
- public static ValidationResult validate(Context context, Class localRouterClass) {
+ public static final int FLAG_SKIP_ROUTER_SERVICE_CHECK = 0x01;
+
+
+ public static ValidationResult validate(Context context, Class localRouterClass, int flags) {
StringBuilder builder = new StringBuilder();
builder.append("\n-----------------------------------");
builder.append("\n Integration Validator Results: \n");
@@ -62,18 +64,22 @@ public class IntegrationValidator {
results.add(checkPermissions(context));
- if (localRouterClass != null) {
- results.add(checkRoutServiceMetadata(context, localRouterClass));
- results.add(checkRouterServiceIntent(context, localRouterClass));
- }else{
- results.add(new ValidationResult(false, "SdlRouterService is not defined in SdlBroadcastReceiver and therefore some checks were not completed"));
+ if ((flags & FLAG_SKIP_ROUTER_SERVICE_CHECK) == FLAG_SKIP_ROUTER_SERVICE_CHECK) {
+ results.add(new ValidationResult(true, "SdlRouterService checks were not performed yet due to supplied flags"));
+ } else {
+ if (localRouterClass != null) {
+ results.add(checkRoutServiceMetadata(context, localRouterClass));
+ results.add(checkRouterServiceIntent(context, localRouterClass));
+ } else {
+ results.add(new ValidationResult(false, "SdlRouterService is not defined in SdlBroadcastReceiver and therefore some checks were not completed"));
+ }
}
- results.add( checkBroadcastReceiver(context) );
+ results.add(checkBroadcastReceiver(context));
boolean success = true;
- for(ValidationResult result : results) {
- if(result.successful) {
+ for (ValidationResult result : results) {
+ if (result.successful) {
builder.append(CHECK_MARK + " ");
} else {
success = false;
@@ -85,7 +91,7 @@ public class IntegrationValidator {
}
- if(!success) {
+ if (!success) {
builder.append("Please see the guides for how to fix these issues at www.smartdevicelink.com");
}
@@ -93,7 +99,7 @@ public class IntegrationValidator {
}
private static ValidationResult checkPermissions(Context context) {
- ValidationResult retVal = new ValidationResult(true,"Permission check passed");
+ ValidationResult retVal = new ValidationResult(true, "Permission check passed");
List<String> permissionList = new ArrayList<>();
permissionList.add(Manifest.permission.BLUETOOTH);
permissionList.add(Manifest.permission.INTERNET);
@@ -112,7 +118,8 @@ public class IntegrationValidator {
permissionList.remove(permissionInfo);
}
}
- } catch (Exception e) { }
+ } catch (Exception e) {
+ }
if (!permissionList.isEmpty()) {
StringBuilder builder = new StringBuilder();
@@ -130,7 +137,7 @@ public class IntegrationValidator {
}
public static ValidationResult checkBroadcastReceiver(Context context) {
- ValidationResult retVal = new ValidationResult(true,"SdlBroadcastReceiver check passed");
+ ValidationResult retVal = new ValidationResult(true, "SdlBroadcastReceiver check passed");
try {
Intent intent = new Intent();
intent.setAction(TransportConstants.START_ROUTER_SERVICE_ACTION);
@@ -157,13 +164,13 @@ public class IntegrationValidator {
e.printStackTrace();
}
retVal.successful = false;
- retVal.resultText = "This application has not specified its SDL Receiver properly.";
+ retVal.resultText = "This application has not specified its SDL Receiver properly.";
return retVal;
}
// Check if the service declaration in AndroidManifest has the router service version metadata specified correctly
private static ValidationResult checkRoutServiceMetadata(Context context, Class localRouterClass) {
- ValidationResult retVal = new ValidationResult(true,"SdlRouterService entry and metadata checks passed");
+ ValidationResult retVal = new ValidationResult(true, "SdlRouterService entry and metadata checks passed");
ResolveInfo info = context.getPackageManager().resolveService(new Intent(context, localRouterClass), PackageManager.GET_META_DATA);
if (info != null) {
@@ -180,7 +187,7 @@ public class IntegrationValidator {
// Check if the service declaration in AndroidManifest has the intent-filter action specified correctly
private static ValidationResult checkRouterServiceIntent(Context context, Class localRouterClass) {
- ValidationResult retVal = new ValidationResult(true,"SdlRouterService intent filter check passed");
+ ValidationResult retVal = new ValidationResult(true, "SdlRouterService intent filter check passed");
boolean serviceFilterHasAction = false;
String className = localRouterClass.getName();