content: /*
   * Copyright (C) 2018 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 com.android.server.wifi;
  
  import android.content.Context;
  import android.os.Looper;
  import android.provider.Settings;
  
  import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
  import com.android.server.wifi.nano.WifiMetricsProto;
  
  /**
   * This class handles the "open wi-fi network available" notification
   *
   * NOTE: These API's are not thread safe and should only be used from ClientModeImpl thread.
   */
  public class OpenNetworkNotifier extends AvailableNetworkNotifier {
      public static final String TAG = "WifiOpenNetworkNotifier";
      private static final String STORE_DATA_IDENTIFIER = "OpenNetworkNotifierBlacklist";
      private static final String TOGGLE_SETTINGS_NAME =
              Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON;
  
      public OpenNetworkNotifier(
              Context context,
              Looper looper,
              FrameworkFacade framework,
              Clock clock,
              WifiMetrics wifiMetrics,
              WifiConfigManager wifiConfigManager,
              WifiConfigStore wifiConfigStore,
              ClientModeImpl clientModeImpl,
              ConnectToNetworkNotificationBuilder connectToNetworkNotificationBuilder) {
          super(TAG, STORE_DATA_IDENTIFIER, TOGGLE_SETTINGS_NAME,
                  SystemMessage.NOTE_NETWORK_AVAILABLE,
                  WifiMetricsProto.ConnectionEvent.NOMINATOR_OPEN_NETWORK_AVAILABLE,
                  context, looper, framework, clock,
                  wifiMetrics, wifiConfigManager, wifiConfigStore, clientModeImpl,
                  connectToNetworkNotificationBuilder);
      }
  }
  