@@ -377,6 +377,11 @@ private void setupInternalRpcListeners() {
377377 addRpcListener (FunctionID .ON_SYSTEM_REQUEST , rpcListener );
378378 addRpcListener (FunctionID .ON_APP_INTERFACE_UNREGISTERED , rpcListener );
379379 addRpcListener (FunctionID .UNREGISTER_APP_INTERFACE , rpcListener );
380+
381+ /* These are legacy and are necessary for older systems */
382+ addRpcListener (FunctionID .ON_SYNC_P_DATA , rpcListener );
383+ addRpcListener (FunctionID .ON_ENCODED_SYNC_P_DATA , rpcListener );
384+
380385 }
381386
382387 private OnRPCListener rpcListener = new OnRPCListener () {
@@ -418,42 +423,61 @@ public void onReceived(RPCMessage message) {
418423 case ON_HASH_CHANGE :
419424 break ;
420425 case ON_SYSTEM_REQUEST :
426+ case ON_ENCODED_SYNC_P_DATA :
427+ case ON_SYNC_P_DATA :
428+ if (functionID .equals (FunctionID .ON_ENCODED_SYNC_P_DATA ) || functionID .equals (FunctionID .ON_SYNC_P_DATA )) {
429+ DebugTool .logInfo (TAG , "Received legacy SYNC_P_DATA, handling it as OnSystemRequest" );
430+ } else {
431+ DebugTool .logInfo (TAG , "Received OnSystemRequest" );
432+ }
433+
421434 final OnSystemRequest onSystemRequest = (OnSystemRequest ) message ;
422- if ((onSystemRequest .getUrl () != null ) &&
423- (((onSystemRequest .getRequestType () == RequestType .PROPRIETARY ) && (onSystemRequest .getFileType () == FileType .JSON ))
424- || ((onSystemRequest .getRequestType () == RequestType .HTTP ) && (onSystemRequest .getFileType () == FileType .BINARY )))) {
425- Thread handleOffboardTransmissionThread = new Thread () {
426- @ Override
427- public void run () {
428- RPCRequest request = PoliciesFetcher .fetchPolicies (onSystemRequest );
429- if (request != null && isConnected ()) {
430- sendRPCMessagePrivate (request , true );
435+ RequestType requestType = onSystemRequest .getRequestType ();
436+ FileType fileType = onSystemRequest .getFileType ();
437+
438+ if (onSystemRequest .getUrl () != null ) {
439+ if ((requestType == RequestType .PROPRIETARY && fileType == FileType .JSON )
440+ || (requestType == RequestType .HTTP && fileType == FileType .BINARY )
441+ || functionID .equals (FunctionID .ON_ENCODED_SYNC_P_DATA )
442+ || functionID .equals (FunctionID .ON_SYNC_P_DATA )) {
443+ DebugTool .logInfo (TAG , "List of conditionals has passed" );
444+ Thread handleOffboardTransmissionThread = new Thread () {
445+ @ Override
446+ public void run () {
447+ DebugTool .logInfo (TAG , "Attempting to fetch policies" );
448+ RPCRequest request = PoliciesFetcher .fetchPolicies (onSystemRequest );
449+ if (request != null && isConnected ()) {
450+ sendRPCMessagePrivate (request , true );
451+ }
431452 }
432- }
433- };
434- handleOffboardTransmissionThread .start ();
435- } else if (onSystemRequest .getRequestType () == RequestType .ICON_URL && onSystemRequest .getUrl () != null ) {
436- //Download the icon file and send SystemRequest RPC
437- Thread handleOffBoardTransmissionThread = new Thread () {
438- @ Override
439- public void run () {
440- final String urlHttps = onSystemRequest .getUrl ().replaceFirst ("http://" , "https://" );
441- byte [] file = FileUtls .downloadFile (urlHttps );
442- if (file != null ) {
443- SystemRequest systemRequest = new SystemRequest ();
444- systemRequest .setFileName (onSystemRequest .getUrl ());
445- systemRequest .setBulkData (file );
446- systemRequest .setRequestType (RequestType .ICON_URL );
447- if (isConnected ()) {
448- sendRPCMessagePrivate (systemRequest , true );
453+ };
454+ handleOffboardTransmissionThread .start ();
455+ return ;
456+ } else if (requestType == RequestType .ICON_URL ) {
457+ //Download the icon file and send SystemRequest RPC
458+ Thread handleOffBoardTransmissionThread = new Thread () {
459+ @ Override
460+ public void run () {
461+ final String urlHttps = onSystemRequest .getUrl ().replaceFirst ("http://" , "https://" );
462+ byte [] file = FileUtls .downloadFile (urlHttps );
463+ if (file != null ) {
464+ SystemRequest systemRequest = new SystemRequest ();
465+ systemRequest .setFileName (onSystemRequest .getUrl ());
466+ systemRequest .setBulkData (file );
467+ systemRequest .setRequestType (RequestType .ICON_URL );
468+ if (isConnected ()) {
469+ sendRPCMessagePrivate (systemRequest , true );
470+ }
471+ } else {
472+ DebugTool .logError (TAG , "File was null at: " + urlHttps );
449473 }
450- } else {
451- DebugTool .logError (TAG , "File was null at: " + urlHttps );
452474 }
453- }
454- };
455- handleOffBoardTransmissionThread .start ();
475+ };
476+ handleOffBoardTransmissionThread .start ();
477+ return ;
478+ }
456479 }
480+
457481 break ;
458482 case ON_APP_INTERFACE_UNREGISTERED :
459483
0 commit comments