Search in sources :

Example 21 with Request

use of com.vodafone360.people.service.io.Request in project 360-Engine-for-Android by 360.

the class IdentityEngine method handleValidateIdentityCredentials.

/**
     * Handle Server response to set validate credentials request. The response
     * should be a Status-msg indicating whether the request has succeeded or
     * failed. The request is completed with the status result (or
     * ERROR_UNEXPECTED_RESPONSE if the data-type retrieved is not a
     * Status-msg).
     * 
     * @param data List of BaseDataTypes generated from Server response.
     */
private void handleValidateIdentityCredentials(List<BaseDataType> data) {
    Bundle bu = null;
    ServiceStatus errorStatus = getResponseStatus(BaseDataType.STATUS_MSG_DATA_TYPE, data);
    if (errorStatus == ServiceStatus.SUCCESS) {
        mStatusList.clear();
        for (BaseDataType item : data) {
            if (item.getType() == BaseDataType.STATUS_MSG_DATA_TYPE) {
                mStatusList.add((StatusMsg) item);
            } else {
                completeUiRequest(ServiceStatus.ERROR_UNEXPECTED_RESPONSE);
                return;
            }
        }
        bu = new Bundle();
        if (mStatusList.size() == 1) {
            bu.putBoolean("status", mStatusList.get(0).mStatus);
        } else {
            LogUtils.logW("Status list sould have one item. It has " + mStatusList.size());
            bu.putParcelableArrayList(KEY_DATA, mStatusList);
        }
    }
    completeUiRequest(errorStatus, bu);
    newState(State.IDLE);
    if (errorStatus == ServiceStatus.SUCCESS) {
        addUiRequestToQueue(ServiceUiRequest.GET_MY_IDENTITIES, null);
    } else if (errorStatus == ServiceStatus.ERROR_COMMS_TIMEOUT) {
        // if we timeout we need to clear our pending identities
        clearPendingIdentities();
    }
}
Also used : Bundle(android.os.Bundle) ServiceStatus(com.vodafone360.people.service.ServiceStatus) BaseDataType(com.vodafone360.people.datatypes.BaseDataType)

Example 22 with Request

use of com.vodafone360.people.service.io.Request in project 360-Engine-for-Android by 360.

the class IdentityEngine method handleGetMyIdentitiesResponse.

/**
     * Handle Server response to request for available Identities. The response
     * should be a list of Identity items. The request is completed with
     * ServiceStatus.SUCCESS or ERROR_UNEXPECTED_RESPONSE if the data-type
     * retrieved are not Identity items.
     * 
     * @param data List of BaseDataTypes generated from Server response.
     */
private void handleGetMyIdentitiesResponse(List<BaseDataType> data) {
    LogUtils.logD("IdentityEngine: handleGetMyIdentitiesResponse");
    ServiceStatus errorStatus = getResponseStatus(BaseDataType.MY_IDENTITY_DATA_TYPE, data);
    if (errorStatus == ServiceStatus.SUCCESS) {
        synchronized (mMyIdentityList) {
            mMyIdentityList.clear();
            for (BaseDataType item : data) {
                Identity identity = (Identity) item;
                if (!identity.isIdentityFieldBlankorNull()) {
                    mMyIdentityList.add(identity);
                }
            }
            // cache the identities
            MyIdentitiesCacheTable.setCachedIdentities(mDatabaseHelper.getWritableDatabase(), mMyIdentityList);
            clearPendingIdentities();
        }
    } else if (errorStatus == ServiceStatus.ERROR_COMMS_TIMEOUT) {
        // reset the pending list in case of a timeout
        clearPendingIdentities();
    }
    pushIdentitiesToUi(ServiceUiRequest.GET_MY_IDENTITIES);
    // remove any identites returned from the pending list as they are validated by now! 
    removePendingIdentities(mMyIdentityList);
    LogUtils.logD("IdentityEngine: handleGetMyIdentitiesResponse complete request.");
}
Also used : ServiceStatus(com.vodafone360.people.service.ServiceStatus) BaseDataType(com.vodafone360.people.datatypes.BaseDataType) Identity(com.vodafone360.people.datatypes.Identity)

Example 23 with Request

use of com.vodafone360.people.service.io.Request in project 360-Engine-for-Android by 360.

the class IdentityEngine method handleSetIdentityStatus.

/**
     * Handle Server response to set capability status request. The response
     * should be a Status-msg indicating whether the request has succeeded or
     * failed. The request is completed with the status result (or
     * ERROR_UNEXPECTED_RESPONSE if the data-type retrieved is not a
     * Status-msg).
     * 
     * @param data List of BaseDataTypes generated from Server response.
     */
private void handleSetIdentityStatus(List<BaseDataType> data) {
    Bundle bu = null;
    ServiceStatus errorStatus = getResponseStatus(BaseDataType.STATUS_MSG_DATA_TYPE, data);
    if (errorStatus == ServiceStatus.SUCCESS) {
        mStatusList.clear();
        for (BaseDataType item : data) {
            if (item.getType() == BaseDataType.STATUS_MSG_DATA_TYPE) {
                mStatusList.add((StatusMsg) item);
            } else {
                completeUiRequest(ServiceStatus.ERROR_UNEXPECTED_RESPONSE);
                return;
            }
        }
        bu = new Bundle();
        bu.putParcelableArrayList(KEY_DATA, mStatusList);
    }
    completeUiRequest(errorStatus, bu);
    newState(State.IDLE);
}
Also used : Bundle(android.os.Bundle) ServiceStatus(com.vodafone360.people.service.ServiceStatus) BaseDataType(com.vodafone360.people.datatypes.BaseDataType)

Example 24 with Request

use of com.vodafone360.people.service.io.Request in project 360-Engine-for-Android by 360.

the class IdentityEngine method pushIdentitiesToUi.

/**
     * 
     * Pushes the identities retrieved by get my identities or by get available identities
     * to the ui.
     * 
     * @param request The request type: either get my identities, or get available identities.
     */
private void pushIdentitiesToUi(ServiceUiRequest request) {
    String requestKey = null;
    ArrayList<Identity> idBundle = null;
    if (request == ServiceUiRequest.GET_AVAILABLE_IDENTITIES) {
        requestKey = KEY_AVAILABLE_IDS;
        synchronized (mAvailableIdentityList) {
            // provide a shallow copy
            idBundle = new ArrayList<Identity>(mAvailableIdentityList);
        }
    } else {
        requestKey = KEY_MY_IDS;
        synchronized (mMyIdentityList) {
            // provide a shallow copy
            idBundle = new ArrayList<Identity>(mMyIdentityList);
        }
    }
    // send update to 3rd party identities ui if it is up
    Bundle b = new Bundle();
    b.putParcelableArrayList(requestKey, idBundle);
    UiAgent uiAgent = mEventCallback.getUiAgent();
    if (uiAgent != null && uiAgent.isSubscribed()) {
        uiAgent.sendUnsolicitedUiEvent(request, b);
    }
// end: send update to 3rd party identities ui if it is up
}
Also used : UiAgent(com.vodafone360.people.service.agent.UiAgent) Bundle(android.os.Bundle) Identity(com.vodafone360.people.datatypes.Identity)

Example 25 with Request

use of com.vodafone360.people.service.io.Request in project 360-Engine-for-Android by 360.

the class IdentityEngine method handleDeleteIdentity.

/**
	 * Handle Server response of request to delete the identity. The response
	 * should be a status that whether the operation is succeeded or not. The
	 * response will be a status result otherwise ERROR_UNEXPECTED_RESPONSE if
	 * the response is not as expected.
	 *
	 * @param data
	 *            List of BaseDataTypes generated from Server response.
	 */
private void handleDeleteIdentity(final List<BaseDataType> data) {
    Bundle bu = null;
    ServiceStatus errorStatus = getResponseStatus(BaseDataType.IDENTITY_DELETION_DATA_TYPE, data);
    if (errorStatus == ServiceStatus.SUCCESS) {
        for (BaseDataType item : data) {
            if (item.getType() == BaseDataType.IDENTITY_DELETION_DATA_TYPE) {
                synchronized (mMyIdentityList) {
                    // iterating through the subscribed identities
                    for (Identity identity : mMyIdentityList) {
                        if (identity.mIdentityId.equals(getIdentityToBeDeleted().mIdentityId)) {
                            mMyIdentityList.remove(identity);
                            break;
                        }
                    }
                    // cache the new set of identities
                    MyIdentitiesCacheTable.setCachedIdentities(mDatabaseHelper.getWritableDatabase(), mMyIdentityList);
                }
                completeUiRequest(ServiceStatus.SUCCESS);
                return;
            } else {
                completeUiRequest(ServiceStatus.ERROR_UNEXPECTED_RESPONSE);
                return;
            }
        }
    }
    completeUiRequest(errorStatus, bu);
}
Also used : Bundle(android.os.Bundle) ServiceStatus(com.vodafone360.people.service.ServiceStatus) BaseDataType(com.vodafone360.people.datatypes.BaseDataType) Identity(com.vodafone360.people.datatypes.Identity)

Aggregations

Request (com.vodafone360.people.service.io.Request)43 QueueManager (com.vodafone360.people.service.io.QueueManager)27 ServiceStatus (com.vodafone360.people.service.ServiceStatus)16 ArrayList (java.util.ArrayList)16 BaseDataType (com.vodafone360.people.datatypes.BaseDataType)12 ServiceUiRequest (com.vodafone360.people.service.ServiceUiRequest)12 DecodedResponse (com.vodafone360.people.service.io.ResponseQueue.DecodedResponse)11 Suppress (android.test.suitebuilder.annotation.Suppress)10 DatabaseHelper (com.vodafone360.people.database.DatabaseHelper)9 IEngineEventCallback (com.vodafone360.people.engine.IEngineEventCallback)9 IContactSyncCallback (com.vodafone360.people.engine.contactsync.IContactSyncCallback)9 ProcessorFactory (com.vodafone360.people.engine.contactsync.ProcessorFactory)9 ServerError (com.vodafone360.people.datatypes.ServerError)6 IOException (java.io.IOException)6 Identity (com.vodafone360.people.datatypes.Identity)5 ByteArrayInputStream (java.io.ByteArrayInputStream)5 Bundle (android.os.Bundle)4 AuthSessionHolder (com.vodafone360.people.datatypes.AuthSessionHolder)4 ContactChanges (com.vodafone360.people.datatypes.ContactChanges)4 ResponseQueue (com.vodafone360.people.service.io.ResponseQueue)4