summaryrefslogtreecommitdiff
path: root/src/com/android/networkrecommendation/NetworkRecommendationService.java
diff options
context:
space:
mode:
authorJoe LaPenna <jlapenna@google.com>2017-02-02 17:57:09 -0800
committerJoe LaPenna <jlapenna@google.com>2017-02-02 18:23:04 -0800
commit3ae41f6a9cd5e508baf751d0f8a8507a88cf16aa (patch)
treeaf9979891187b68b7de80dc505b1dbb2ad7e153b /src/com/android/networkrecommendation/NetworkRecommendationService.java
parent00fbb9fcb0dba8fa350eb52151da5bf5683e1107 (diff)
downloadNetworkRecommendation-3ae41f6a9cd5e508baf751d0f8a8507a88cf16aa.tar.gz
Move code around for better organization.
Bug: 34944625 Test: adb shell am instrument -w com.android.networkrecommendation.tests/android.support.test.runner.AndroidJUnitRunner Change-Id: If50a041009c1015319b1fad3dd30256e3c235a53
Diffstat (limited to 'src/com/android/networkrecommendation/NetworkRecommendationService.java')
-rw-r--r--src/com/android/networkrecommendation/NetworkRecommendationService.java97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/com/android/networkrecommendation/NetworkRecommendationService.java b/src/com/android/networkrecommendation/NetworkRecommendationService.java
new file mode 100644
index 0000000..6583762
--- /dev/null
+++ b/src/com/android/networkrecommendation/NetworkRecommendationService.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2016 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.networkrecommendation;
+
+import android.app.NotificationManager;
+import android.app.Service;
+import android.content.ContentResolver;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.net.NetworkScoreManager;
+import android.net.wifi.WifiManager;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+
+import com.android.networkrecommendation.notify.WifiNotificationController;
+import com.android.networkrecommendation.notify.WifiNotificationHelper;
+import com.android.networkrecommendation.wakeup.WifiWakeupController;
+import com.android.networkrecommendation.wakeup.WifiWakeupNetworkSelector;
+import com.android.networkrecommendation.wakeup.WifiWakeupNotificationHelper;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
+/**
+ * Provides network recommendations for the platform.
+ */
+public class NetworkRecommendationService extends Service {
+
+ private HandlerThread mHandlerThread;
+ private Handler mHandler;
+ private DefaultNetworkRecommendationProvider mProvider;
+ private WifiNotificationController mWifiNotificationController;
+ private WifiWakeupController mWifiWakeupController;
+
+ @Override
+ public void onCreate() {
+ mHandlerThread = new HandlerThread("RecommendationProvider");
+ mHandlerThread.start();
+ Looper looper = mHandlerThread.getLooper();
+ mHandler = new Handler(looper);
+ NetworkScoreManager networkScoreManager = getSystemService(NetworkScoreManager.class);
+ mProvider = new DefaultNetworkRecommendationProvider(mHandler,
+ networkScoreManager, new DefaultNetworkRecommendationProvider.ScoreStorage());
+ NotificationManager notificationManager = getSystemService(NotificationManager.class);
+ WifiManager wifiManager = getSystemService(WifiManager.class);
+ Resources resources = getResources();
+ ContentResolver contentResolver = getContentResolver();
+ mWifiNotificationController = new WifiNotificationController(
+ this, contentResolver, new Handler(looper), mProvider,
+ wifiManager, notificationManager,
+ new WifiNotificationHelper(this, mProvider));
+ WifiWakeupNetworkSelector wifiWakeupNetworkSelector =
+ new WifiWakeupNetworkSelector(resources);
+ WifiWakeupNotificationHelper wifiWakeupNotificationHelper =
+ new WifiWakeupNotificationHelper(this, resources, new Handler(looper),
+ notificationManager, wifiManager);
+ mWifiWakeupController = new WifiWakeupController(this, contentResolver, looper,
+ wifiManager, wifiWakeupNetworkSelector, wifiWakeupNotificationHelper);
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ mWifiWakeupController.start();
+ mWifiNotificationController.start();
+ return mProvider.getBinder();
+ }
+
+ @Override
+ public boolean onUnbind(Intent intent) {
+ mWifiWakeupController.stop();
+ mWifiNotificationController.stop();
+ return super.onUnbind(intent);
+ }
+
+ @Override
+ protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
+ mProvider.dump(fd, writer, args);
+ mWifiNotificationController.dump(fd, writer, args);
+ mWifiWakeupController.dump(fd, writer, args);
+ }
+}