1328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller/*
2328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * Copyright (C) 2017 The Android Open Source Project
3328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller *
4328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * Licensed under the Apache License, Version 2.0 (the "License");
5328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * you may not use this file except in compliance with the License.
6328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * You may obtain a copy of the License at
7328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller *
8328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller *      http://www.apache.org/licenses/LICENSE-2.0
9328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller *
10328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * Unless required by applicable law or agreed to in writing, software
11328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * distributed under the License is distributed on an "AS IS" BASIS,
12328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * See the License for the specific language governing permissions and
14328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * limitations under the License.
15328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller */
16328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller
17328532ab13768a6303231b670708d750c4d7aa5fNeil Fullerpackage com.android.server.timezone;
18328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller
19328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller/**
20328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * An easy-to-mock interface around intent sending / receiving for use by {@link PackageTracker};
21328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * it is not possible to test various cases with the real one because of the need to simulate
22328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller * receiving and broadcasting intents.
23328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller */
24b144227742ada7fd693684a5bd2d53abd8e7c499Neil Fullerinterface PackageTrackerIntentHelper {
25328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller
26cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller    void initialize(String updateAppPackageName, String dataAppPackageName,
27cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller            PackageTracker packageTracker);
28328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller
29328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller    void sendTriggerUpdateCheck(CheckToken checkToken);
30328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller
31cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller    /**
32cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller     * Schedule a "reliability trigger" after at least minimumDelayMillis, replacing any existing
33cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller     * scheduled one. A reliability trigger ensures that the {@link PackageTracker} can pick up
34cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller     * reliably if a previous update check did not complete for some reason. It can happen when
35cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller     * the device is idle. The trigger is expected to call
36cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller     * {@link PackageTracker#triggerUpdateIfNeeded(boolean)} with a {@code false} value.
37cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller     */
38cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller    void scheduleReliabilityTrigger(long minimumDelayMillis);
39328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller
40cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller    /**
41cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller     * Make sure there is no reliability trigger scheduled. No-op if there wasn't one.
42cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller     */
43cd1a109b872f58f5baa0ce8438bf3ddd69eec9fcNeil Fuller    void unscheduleReliabilityTrigger();
44328532ab13768a6303231b670708d750c4d7aa5fNeil Fuller}
45