/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.net;

import android.annotation.SystemService;
import android.content.Context;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.util.Log;

import com.android.internal.net.INetworkWatchlistManager;
import com.android.internal.util.Preconditions;

Class that manage network watchlist in system.
@hide
/** * Class that manage network watchlist in system. * @hide */
@SystemService(Context.NETWORK_WATCHLIST_SERVICE) public class NetworkWatchlistManager { private static final String TAG = "NetworkWatchlistManager"; private static final String SHARED_MEMORY_TAG = "NETWORK_WATCHLIST_SHARED_MEMORY"; private final Context mContext; private final INetworkWatchlistManager mNetworkWatchlistManager;
@hide
/** * @hide */
public NetworkWatchlistManager(Context context, INetworkWatchlistManager manager) { mContext = context; mNetworkWatchlistManager = manager; }
@hide
/** * @hide */
public NetworkWatchlistManager(Context context) { mContext = Preconditions.checkNotNull(context, "missing context"); mNetworkWatchlistManager = (INetworkWatchlistManager) INetworkWatchlistManager.Stub.asInterface( ServiceManager.getService(Context.NETWORK_WATCHLIST_SERVICE)); }
Report network watchlist records if necessary. Watchlist report process will summarize records into a single report, then the report will be processed by differential privacy framework and stored on disk.
@hide
/** * Report network watchlist records if necessary. * * Watchlist report process will summarize records into a single report, then the * report will be processed by differential privacy framework and stored on disk. * * @hide */
public void reportWatchlistIfNecessary() { try { mNetworkWatchlistManager.reportWatchlistIfNecessary(); } catch (RemoteException e) { Log.e(TAG, "Cannot report records", e); e.rethrowFromSystemServer(); } }
Reload network watchlist.
@hide
/** * Reload network watchlist. * * @hide */
public void reloadWatchlist() { try { mNetworkWatchlistManager.reloadWatchlist(); } catch (RemoteException e) { Log.e(TAG, "Unable to reload watchlist"); e.rethrowFromSystemServer(); } }
Get Network Watchlist config file hash.
/** * Get Network Watchlist config file hash. */
public byte[] getWatchlistConfigHash() { try { return mNetworkWatchlistManager.getWatchlistConfigHash(); } catch (RemoteException e) { Log.e(TAG, "Unable to get watchlist config hash"); throw e.rethrowFromSystemServer(); } } }