Java源码示例:com.google.protos.ipc.invalidation.Types

示例1
/**
 * Create an Intent that will start the invalidation listener service and
 * register for the object ids with the specified sources and names.
 * Sync-specific objects are filtered out of the request since Sync types
 * are registered using the other version of createRegisterIntent.
 */
public static Intent createRegisterIntent(
        Account account, int[] objectSources, String[] objectNames) {
    if (objectSources.length != objectNames.length) {
        throw new IllegalArgumentException(
                "objectSources and objectNames must have the same length");
    }

    // Add all non-Sync objects to new lists.
    ArrayList<Integer> sources = new ArrayList<Integer>();
    ArrayList<String> names = new ArrayList<String>();
    for (int i = 0; i < objectSources.length; i++) {
        if (objectSources[i] != Types.ObjectSource.CHROME_SYNC) {
            sources.add(objectSources[i]);
            names.add(objectNames[i]);
        }
    }

    Intent registerIntent = new Intent(ACTION_REGISTER);
    registerIntent.putIntegerArrayListExtra(EXTRA_REGISTERED_OBJECT_SOURCES, sources);
    registerIntent.putStringArrayListExtra(EXTRA_REGISTERED_OBJECT_NAMES, names);
    registerIntent.putExtra(EXTRA_ACCOUNT, account);
    return registerIntent;
}
 
示例2
/**
 * Create an Intent that will start the invalidation listener service and
 * register for the object ids with the specified sources and names.
 * Sync-specific objects are filtered out of the request since Sync types
 * are registered using the other version of createRegisterIntent.
 */
public static Intent createRegisterIntent(Account account, int[] objectSources,
        String[] objectNames) {
    Preconditions.checkArgument(objectSources.length == objectNames.length,
        "objectSources and objectNames must have the same length");

    // Add all non-Sync objects to new lists.
    ArrayList<Integer> sources = new ArrayList<Integer>();
    ArrayList<String> names = new ArrayList<String>();
    for (int i = 0; i < objectSources.length; i++) {
        if (objectSources[i] != Types.ObjectSource.Type.CHROME_SYNC.getNumber()) {
            sources.add(objectSources[i]);
            names.add(objectNames[i]);
        }
    }

    Intent registerIntent = new Intent(ACTION_REGISTER);
    registerIntent.putIntegerArrayListExtra(EXTRA_REGISTERED_OBJECT_SOURCES, sources);
    registerIntent.putStringArrayListExtra(EXTRA_REGISTERED_OBJECT_NAMES, names);
    registerIntent.putExtra(EXTRA_ACCOUNT, account);
    return registerIntent;
}
 
示例3
/**
 * Create an Intent that will start the invalidation listener service and
 * register for the object ids with the specified sources and names.
 * Sync-specific objects are filtered out of the request since Sync types
 * are registered using the other version of createRegisterIntent.
 */
public static Intent createRegisterIntent(Account account, int[] objectSources,
        String[] objectNames) {
    Preconditions.checkArgument(objectSources.length == objectNames.length,
        "objectSources and objectNames must have the same length");

    // Add all non-Sync objects to new lists.
    ArrayList<Integer> sources = new ArrayList<Integer>();
    ArrayList<String> names = new ArrayList<String>();
    for (int i = 0; i < objectSources.length; i++) {
        if (objectSources[i] != Types.ObjectSource.Type.CHROME_SYNC.getNumber()) {
            sources.add(objectSources[i]);
            names.add(objectNames[i]);
        }
    }

    Intent registerIntent = new Intent(ACTION_REGISTER);
    registerIntent.putIntegerArrayListExtra(EXTRA_REGISTERED_OBJECT_SOURCES, sources);
    registerIntent.putStringArrayListExtra(EXTRA_REGISTERED_OBJECT_NAMES, names);
    registerIntent.putExtra(EXTRA_ACCOUNT, account);
    return registerIntent;
}
 
示例4
private BrowserStartupController.StartupCallback getStartupCallback(
        final Context context, final Account acct, Bundle extras,
        final SyncResult syncResult, final Semaphore semaphore) {
    final boolean syncAllTypes = extras.getString(INVALIDATION_OBJECT_ID_KEY) == null;
    final int objectSource = syncAllTypes ? 0 : extras.getInt(INVALIDATION_OBJECT_SOURCE_KEY);
    final String objectId = syncAllTypes ? "" : extras.getString(INVALIDATION_OBJECT_ID_KEY);
    final long version = syncAllTypes ? 0 : extras.getLong(INVALIDATION_VERSION_KEY);
    final String payload = syncAllTypes ? "" : extras.getString(INVALIDATION_PAYLOAD_KEY);

    return new BrowserStartupController.StartupCallback() {
        @Override
        public void onSuccess(boolean alreadyStarted) {
            // Startup succeeded, so we can tickle the sync engine.
            if (syncAllTypes) {
                Log.v(TAG, "Received sync tickle for all types.");
                requestSyncForAllTypes();
            } else {
                // Invalidations persisted before objectSource was added should be assumed to be
                // for Sync objects. TODO(stepco): Remove this check once all persisted
                // invalidations can be expected to have the objectSource.
                int resolvedSource = objectSource;
                if (resolvedSource == 0) {
                  resolvedSource = Types.ObjectSource.Type.CHROME_SYNC.getNumber();
                }
                Log.v(TAG, "Received sync tickle for " + resolvedSource + " " + objectId + ".");
                requestSync(resolvedSource, objectId, version, payload);
            }
            semaphore.release();
        }

        @Override
        public void onFailure() {
            // The startup failed, so we reset the delayed sync state.
            DelayedSyncController.getInstance().setDelayedSync(context, acct.name);
            // Using numIoExceptions so Android will treat this as a soft error.
            syncResult.stats.numIoExceptions++;
            semaphore.release();
        }
    };
}
 
示例5
private BrowserStartupController.StartupCallback getStartupCallback(
        final Context context, final Account acct, Bundle extras,
        final SyncResult syncResult, final Semaphore semaphore) {
    final boolean syncAllTypes = extras.getString(INVALIDATION_OBJECT_ID_KEY) == null;
    final int objectSource = syncAllTypes ? 0 : extras.getInt(INVALIDATION_OBJECT_SOURCE_KEY);
    final String objectId = syncAllTypes ? "" : extras.getString(INVALIDATION_OBJECT_ID_KEY);
    final long version = syncAllTypes ? 0 : extras.getLong(INVALIDATION_VERSION_KEY);
    final String payload = syncAllTypes ? "" : extras.getString(INVALIDATION_PAYLOAD_KEY);

    return new BrowserStartupController.StartupCallback() {
        @Override
        public void onSuccess(boolean alreadyStarted) {
            // Startup succeeded, so we can tickle the sync engine.
            if (syncAllTypes) {
                Log.v(TAG, "Received sync tickle for all types.");
                requestSyncForAllTypes();
            } else {
                // Invalidations persisted before objectSource was added should be assumed to be
                // for Sync objects. TODO(stepco): Remove this check once all persisted
                // invalidations can be expected to have the objectSource.
                int resolvedSource = objectSource;
                if (resolvedSource == 0) {
                  resolvedSource = Types.ObjectSource.Type.CHROME_SYNC.getNumber();
                }
                Log.v(TAG, "Received sync tickle for " + resolvedSource + " " + objectId + ".");
                requestSync(resolvedSource, objectId, version, payload);
            }
            semaphore.release();
        }

        @Override
        public void onFailure() {
            // The startup failed, so we reset the delayed sync state.
            DelayedSyncController.getInstance().setDelayedSync(context, acct.name);
            // Using numIoExceptions so Android will treat this as a soft error.
            syncResult.stats.numIoExceptions++;
            semaphore.release();
        }
    };
}
 
示例6
public void requestSyncFromNativeChromeForAllTypes() {
    notifyInvalidationToNativeChrome(Types.ObjectSource.CHROME_SYNC, null, 0L, null);
}
 
示例7
/**
 * Converts a notification type into an ObjectId.
 *
 * If the model type is not an invalidation type, this function uses the string "NULL".
 */
private static ObjectId toObjectId(String notificationType) {
    String objectIdString = isInvalidationType(notificationType) ? notificationType : "NULL";
    return ObjectId.newInstance(Types.ObjectSource.CHROME_SYNC, objectIdString.getBytes());
}