Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Side by Side Diff: sync/android/javatests/src/org/chromium/sync/notifier/TestableInvalidationService.java

Issue 459513002: Massive refactor of the Android invalidation code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.sync.notifier;
6
7 import android.accounts.Account;
8 import android.content.ComponentName;
9 import android.content.Intent;
10 import android.os.Bundle;
11
12 import com.google.ipc.invalidation.external.client.types.ObjectId;
13
14 import org.chromium.base.CollectionUtil;
15
16 import java.util.ArrayList;
17 import java.util.HashSet;
18 import java.util.List;
19 import java.util.Set;
20
21 /**
22 * Subclass of {@link InvalidationService} that captures events and allows contr olling
23 * whether or not Chrome is in the foreground and sync is enabled.
24 *
25 * @author dsmyers@google.com (Daniel Myers)
26 */
27 public class TestableInvalidationService extends InvalidationService {
28 /** Object ids given to {@link #register}, one list element per call. */
29 final List<List<ObjectId>> mRegistrations = new ArrayList<List<ObjectId>>();
30
31 /** Object ids given to {@link #unregister}, one list element per call. */
32 final List<List<ObjectId>> mUnregistrations = new ArrayList<List<ObjectId>>( );
33
34 /**
35 * Current registered based on the cumulative calls to {@link #register} and
36 * {@link #unregister}.
37 */
38 final Set<ObjectId> mCurrentRegistrations = new HashSet<ObjectId>();
39
40 /** Intents given to {@link #startService}. */
41 final List<Intent> mStartedServices = new ArrayList<Intent>();
42
43 /** Bundles given to {@link #requestSyncFromContentResolver}. */
44 final List<Bundle> mRequestedSyncs = new ArrayList<Bundle>();
45
46 final List<byte[]> mAcknowledgements = new ArrayList<byte[]>();
47
48 /** Whether Chrome is in the foreground. */
49 private boolean mIsChromeInForeground = false;
50
51 /** Whether sync is enabled. */
52 private boolean mIsSyncEnabled = false;
53
54 public TestableInvalidationService() {
55 }
56
57 @Override
58 public void acknowledge(byte[] ackHandle) {
59 mAcknowledgements.add(ackHandle);
60 }
61
62 @Override
63 public void register(byte[] clientId, Iterable<ObjectId> objectIds) {
64 List<ObjectId> objectIdList = CollectionUtil.newArrayList(objectIds);
65 mRegistrations.add(objectIdList);
66 mCurrentRegistrations.addAll(objectIdList);
67 super.register(clientId, objectIds);
68 }
69
70 @Override
71 public void unregister(byte[] clientId, Iterable<ObjectId> objectIds) {
72 List<ObjectId> objectIdList = CollectionUtil.newArrayList(objectIds);
73 mUnregistrations.add(objectIdList);
74 mCurrentRegistrations.removeAll(objectIdList);
75 super.unregister(clientId, objectIds);
76 }
77
78 @Override
79 public ComponentName startService(Intent intent) {
80 mStartedServices.add(intent);
81 return super.startService(intent);
82 }
83
84 @Override
85 public void requestSyncFromContentResolver(Bundle bundle, Account account,
86 String contractAuthority) {
87 mRequestedSyncs.add(bundle);
88 super.requestSyncFromContentResolver(bundle, account, contractAuthority) ;
89 }
90
91 @Override
92 boolean isChromeInForeground() {
93 return mIsChromeInForeground;
94 }
95
96 @Override
97 boolean isSyncEnabled() {
98 return mIsSyncEnabled;
99 }
100
101 /**
102 * Sets the variables used to control whether or not a notification client s hould be running.
103 * @param isChromeInForeground whether Chrome is in the foreground
104 * @param isSyncEnabled whether sync is enabled
105 */
106 void setShouldRunStates(boolean isChromeInForeground, boolean isSyncEnabled) {
107 this.mIsChromeInForeground = isChromeInForeground;
108 this.mIsSyncEnabled = isSyncEnabled;
109 }
110 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698