urbanairship-core/src/main/java/com/urbanairship/widget/UAWebViewClient.java
private Map<String, List<ActionValue>> decodeActionArguments(Uri uri, boolean basicEncoding) {
        Map<String, List<String>> options = UriUtils.getQueryParameters(uri);
        if (options == null) {
            return null;
        }

        Map<String, List<ActionValue>> decodedActions = new HashMap<>();

        for (String actionName : options.keySet()) {
            List<ActionValue> decodedActionArguments = new ArrayList<>();

            if (options.get(actionName) == null) {
                Logger.warn("No arguments to decode for actionName: " + actionName);
                return null;
            }

            for (String arg : options.get(actionName)) {
                try {
                    JsonValue jsonValue = basicEncoding ? JsonValue.wrap(arg) : JsonValue.parseString(arg);
                    decodedActionArguments.add(new ActionValue(jsonValue));
                } catch (JsonException e) {
                    Logger.warn("Invalid json. Unable to create action argument "
                            + actionName + " with args: " + arg, e);
                    return null;
                }
            }

            decodedActions.put(actionName, decodedActionArguments);
        }

        if (decodedActions.isEmpty()) {
            Logger.warn("Error no action names are present in the actions key set");
            return null;
        }

        return decodedActions;
    }
/**
     * Decodes actions with basic URL or URL+json encoding
     *
     * @param uri The uri.
     * @param basicEncoding A boolean to select for basic encoding
     * @return A map of action values under action name strings or returns null if decoding error occurs.
     */
Decodes actions with basic URL or URL+json encoding
@param uri The uri.
@param basicEncoding A boolean to select for basic encoding
@return A map of action values under action name strings or returns null if decoding error occurs.
Decodes actions with basic URL or URL + json encoding @param uri The uri . @param basicEncoding A boolean to select for basic encoding @return A map of action values under action name strings or returns null if decoding error occurs .
private Map<String, List<ActionValue>> decodeActionArguments(Uri uri, boolean basicEncoding) {
        Map<String, List<String>> options = UriUtils.getQueryParameters(uri);
        if (options == null) {
            return null;
        }
        Map<String, List<ActionValue>> decodedActions = new HashMap<>();
        for (String actionName : options.keySet()) {
            List<ActionValue> decodedActionArguments = new ArrayList<>();
            if (options.get(actionName) == null) {
                Logger.warn("No arguments to decode for actionName: " + actionName);
                return null;
            }
            for (String arg : options.get(actionName)) {
                try {
                    JsonValue jsonValue = basicEncoding ? JsonValue.wrap(arg) : JsonValue.parseString(arg);
                    decodedActionArguments.add(new ActionValue(jsonValue));
                } catch (JsonException e) {
                    Logger.warn("Invalid json. Unable to create action argument "
                            + actionName + " with args: " + arg, e);
                    return null;
                }
            }
            decodedActions.put(actionName, decodedActionArguments);
        }
        if (decodedActions.isEmpty()) {
            Logger.warn("Error no action names are present in the actions key set");
            return null;
        }
        return decodedActions;
    }
private Map < String , List < ActionValue > > decodeActionArguments ( Uri uri , boolean basicEncoding ) { Map < String , List < String > > options = UriUtils . getQueryParameters ( uri ) ; if ( options == null ) { return null ; } Map < String , List < ActionValue > > decodedActions = new HashMap < > ( ) ; for ( String actionName : options . keySet ( ) ) { List < ActionValue > decodedActionArguments = new ArrayList < > ( ) ; if ( options . get ( actionName ) == null ) { Logger . warn ( "No arguments to decode for actionName: " + actionName ) ; return null ; } for ( String arg : options . get ( actionName ) ) { try { JsonValue jsonValue = basicEncoding ? JsonValue . wrap ( arg ) : JsonValue . parseString ( arg ) ; decodedActionArguments . add ( new ActionValue ( jsonValue ) ) ; } catch ( JsonException e ) { Logger . warn ( "Invalid json. Unable to create action argument " + actionName + " with args: " + arg , e ) ; return null ; } } decodedActions . put ( actionName , decodedActionArguments ) ; } if ( decodedActions . isEmpty ( ) ) { Logger . warn ( "Error no action names are present in the actions key set" ) ; return null ; } return decodedActions ; }
Decodes actions with basic URL or URL+json encoding
 @param uri The uri.
Decodes actions with basic URL or URL + json encoding @param uri The uri .