Migrating Android Applications

Migrate Android Online Data Proxy applications from 2.1 ESD #3 (and earlier) to 2.2.

These steps use an example scenario that includes before and after code snippets, removed code snippets, and additional information.

  1. Modify user registration code, and all APIs related to registration. Error handling that used exceptions in 2.1 ESD #3 and earlier uses standard error objects in 2.2.
    Before:
    try {
          LiteUserManager.initInstance(getContext(), helper.APP_NAME);
          LiteUserManager lum = LiteUserManager.getInstance();
          lum.clearServerVerificationKey();
          LiteUserManager.enableHTTPS(true);
    
          LiteMessagingClient.setODPHTTPAuthChallengeListener(this);
    
          lum.setConnectionProfile(Helper.SEVERIP,
                                   Helper.SERVERPORT, helper.COMPANYID);
          lum.registerUser(Helper.USERNAME, Helper.ACT_CODE);
    
        }  catch (MessagingClientException oe) 
        {      // Exception handling
        }
    After:
    try {
            ODPUserManager.initInstance(getContext(), Helper.APP_NAME);
            ODPUserManager oum = null;
            oum = ODPUserManager.getInstance();
            ODPClientConnection.clearServerVerificationKey();
            ODPUserManager.enableHTTPS(true);
    
            ODPClientConnection.setODPHTTPAuthChallengeListener(this);
            oum.setConnectionProfile(Helper.SEVERIP,
            Helper.SERVERPORT,  Helper.COMPANYID);
            lum.registerUser(Helper.USERNAME, Helper.ACT_CODE, true);
        } catch (ODPException oe)
        {     // Exception Handling
        }

    Removed: all asynchronous method calls, and the method call that takes in the vault API.

  2. Modify data fetch-related code.
    Before:
    ISDMConnectivitiyParameters params = new SDMConnectivityParameters();
      params.setLanguage("en");
      params.setUserName(backendUsername);
      params.setUserPassword(backendPassword);
      params.setBaseUrl(url);
    
    SDMPreferences preference = new SDMPreferences();
      requestManager  = new SDMRequestManager(
                   new SDMLogger(preference), preference, params, 2);
    
      final ISDMRequest request = new SDMBaseRequest();
      Hashtable headers = new Hashtable();
      headers.put("X-CSRF-Token", "fetch");
      request.setHeaders(headers);
      request.setPriority(ISDMRequest.PRIORITY_HIGH);
      request.setRequestMethod(ISDMRequest.REQUEST_METHOD_GET);
      request.setRequestUrl(url);
      request.setListener(listener);
    
    requestManager.makeRequest(request);
    After:
    ISDMConnectivitiyParameters params = new SDMConnectivityParameters();
      params.enableXsrf(true);
      params.setLanguage("en");
      params.setUserName(backendUsername);
      params.setUserPassword(backendPassword);
      params.setBaseUrl(url);
    
    SDMPreferences preference = new SDMPreferences();
      requestManager  = new SDMRequestManager(
                   new SDMLogger(preference), preference, params, 2);
      final ISDMRequest request = new SDMBaseRequest();
    
      request.setPriority(ISDMRequest.PRIORITY_HIGH);
      request.setRequestMethod(ISDMRequest.REQUEST_METHOD_GET);
      request.setRequestUrl(url);
      request.setListener(listener);
    
    requestManager.makeRequest(request);

    Removed: no method calls have been removed from the request interface.

  3. Modify user deletion code, and related API code.
    Before:
    LiteUserManager lum = LiteUserManager.getInstance();
    lum.deleteUser();
    After:
    ODPUserManager oum = ODPUserManager.getInstance();
    oum.deleteUser();

    Removed: nothing has been removed from the interface.

  4. Modify native and online push notification. For Android, 2.1 ESD #3 and earlier supported online push only via the messaging channel, and did not support native notifications. In 2.2, a new message call has been added for registering native notifications.
    Before:
    UserManager.setPushListener(ISDMNetListener listener);
    After:
    ODPClientConnection. registerForPayloadPush(ISDMNetListener listener);
    ODPClientConnection. registerForNativePush(IODPPushNotificationListenerlistener);

    Removed: nothing has been removed in the interface.

  5. Modify certificate management API code sections.
    Before:
    Vector v = CertificateStore.listAvailableCertificatesFromStore();
    String certificate getSignedCertificateFromStore(v.elementAt(0));
    After:
    Vector v = ODPCertificateManager.listAvailableCertificatesFromStore();
    String certificate getSignedCertificateFromStore(v.elementAt(0));
    

    Removed: the getSignedCertificateFromStore() API has been removed along with the Afaria method calls.

  6. Make modifications to implement additional changes and new features, then recompile your code if required.

    Since Afaria is a standalone, separately consumable library in 2.2, no methods related to Afaria are exposed as a part of the ODP interface. Application developers must consume the Afaria JARs directly.