Introduce a WifiTrackerLibProvider.
This make the WifiTrackerLib can be customized. Bug: 149540986 Test: manual test wifi picker, and atest com.android.settings Change-Id: I1418ae39c895ce2ff87f18005a226a4835f9e083
This commit is contained in:
@@ -41,6 +41,7 @@ import com.android.settings.search.SearchFeatureProvider;
|
|||||||
import com.android.settings.security.SecurityFeatureProvider;
|
import com.android.settings.security.SecurityFeatureProvider;
|
||||||
import com.android.settings.slices.SlicesFeatureProvider;
|
import com.android.settings.slices.SlicesFeatureProvider;
|
||||||
import com.android.settings.users.UserFeatureProvider;
|
import com.android.settings.users.UserFeatureProvider;
|
||||||
|
import com.android.settings.wifi.WifiTrackerLibProvider;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -143,6 +144,11 @@ public abstract class FeatureFactory {
|
|||||||
|
|
||||||
public abstract FaceFeatureProvider getFaceFeatureProvider();
|
public abstract FaceFeatureProvider getFaceFeatureProvider();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets implementation for the WifiTrackerLib.
|
||||||
|
*/
|
||||||
|
public abstract WifiTrackerLibProvider getWifiTrackerLibProvider();
|
||||||
|
|
||||||
public static final class FactoryNotFoundException extends RuntimeException {
|
public static final class FactoryNotFoundException extends RuntimeException {
|
||||||
public FactoryNotFoundException(Throwable throwable) {
|
public FactoryNotFoundException(Throwable throwable) {
|
||||||
super("Unable to create factory. Did you misconfigure Proguard?", throwable);
|
super("Unable to create factory. Did you misconfigure Proguard?", throwable);
|
||||||
|
@@ -62,6 +62,8 @@ import com.android.settings.slices.SlicesFeatureProvider;
|
|||||||
import com.android.settings.slices.SlicesFeatureProviderImpl;
|
import com.android.settings.slices.SlicesFeatureProviderImpl;
|
||||||
import com.android.settings.users.UserFeatureProvider;
|
import com.android.settings.users.UserFeatureProvider;
|
||||||
import com.android.settings.users.UserFeatureProviderImpl;
|
import com.android.settings.users.UserFeatureProviderImpl;
|
||||||
|
import com.android.settings.wifi.WifiTrackerLibProvider;
|
||||||
|
import com.android.settings.wifi.WifiTrackerLibProviderImpl;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -90,6 +92,7 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
|||||||
private BluetoothFeatureProvider mBluetoothFeatureProvider;
|
private BluetoothFeatureProvider mBluetoothFeatureProvider;
|
||||||
private AwareFeatureProvider mAwareFeatureProvider;
|
private AwareFeatureProvider mAwareFeatureProvider;
|
||||||
private FaceFeatureProvider mFaceFeatureProvider;
|
private FaceFeatureProvider mFaceFeatureProvider;
|
||||||
|
private WifiTrackerLibProvider mWifiTrackerLibProvider;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SupportFeatureProvider getSupportFeatureProvider(Context context) {
|
public SupportFeatureProvider getSupportFeatureProvider(Context context) {
|
||||||
@@ -278,4 +281,12 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
|||||||
}
|
}
|
||||||
return mFaceFeatureProvider;
|
return mFaceFeatureProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WifiTrackerLibProvider getWifiTrackerLibProvider() {
|
||||||
|
if (mWifiTrackerLibProvider == null) {
|
||||||
|
mWifiTrackerLibProvider = new WifiTrackerLibProviderImpl();
|
||||||
|
}
|
||||||
|
return mWifiTrackerLibProvider;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,9 +21,6 @@ import android.app.Activity;
|
|||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.NetworkScoreManager;
|
|
||||||
import android.net.wifi.WifiManager;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
@@ -40,6 +37,7 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.InstrumentedFragment;
|
import com.android.settings.core.InstrumentedFragment;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
||||||
import com.android.wifitrackerlib.NetworkDetailsTracker;
|
import com.android.wifitrackerlib.NetworkDetailsTracker;
|
||||||
import com.android.wifitrackerlib.WifiEntry;
|
import com.android.wifitrackerlib.WifiEntry;
|
||||||
@@ -222,17 +220,17 @@ public class ConfigureWifiEntryFragment extends InstrumentedFragment implements
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
mNetworkDetailsTracker = NetworkDetailsTracker.createNetworkDetailsTracker(
|
mNetworkDetailsTracker = FeatureFactory.getFactory(context)
|
||||||
|
.getWifiTrackerLibProvider()
|
||||||
|
.createNetworkDetailsTracker(
|
||||||
getSettingsLifecycle(),
|
getSettingsLifecycle(),
|
||||||
context,
|
context,
|
||||||
context.getSystemService(WifiManager.class),
|
|
||||||
context.getSystemService(ConnectivityManager.class),
|
|
||||||
context.getSystemService(NetworkScoreManager.class),
|
|
||||||
new Handler(Looper.getMainLooper()),
|
new Handler(Looper.getMainLooper()),
|
||||||
mWorkerThread.getThreadHandler(),
|
mWorkerThread.getThreadHandler(),
|
||||||
elapsedRealtimeClock,
|
elapsedRealtimeClock,
|
||||||
MAX_SCAN_AGE_MILLIS,
|
MAX_SCAN_AGE_MILLIS,
|
||||||
SCAN_INTERVAL_MILLIS,
|
SCAN_INTERVAL_MILLIS,
|
||||||
getArguments().getString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY));
|
getArguments().getString(
|
||||||
|
WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,11 +24,8 @@ import android.app.Dialog;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.NetworkScoreManager;
|
|
||||||
import android.net.wifi.ScanResult;
|
import android.net.wifi.ScanResult;
|
||||||
import android.net.wifi.WifiConfiguration;
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
|
||||||
import android.net.wifi.WifiManager.NetworkRequestMatchCallback;
|
import android.net.wifi.WifiManager.NetworkRequestMatchCallback;
|
||||||
import android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback;
|
import android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -54,6 +51,7 @@ import androidx.appcompat.app.AlertDialog;
|
|||||||
import androidx.preference.internal.PreferenceImageView;
|
import androidx.preference.internal.PreferenceImageView;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
import com.android.wifitrackerlib.WifiEntry;
|
import com.android.wifitrackerlib.WifiEntry;
|
||||||
import com.android.wifitrackerlib.WifiPickerTracker;
|
import com.android.wifitrackerlib.WifiPickerTracker;
|
||||||
@@ -113,10 +111,9 @@ public class NetworkRequestDialogFragment extends NetworkRequestDialogBaseFragme
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
final Context context = getContext();
|
final Context context = getContext();
|
||||||
mWifiPickerTracker = new WifiPickerTracker(getSettingsLifecycle(), context,
|
mWifiPickerTracker = FeatureFactory.getFactory(context)
|
||||||
context.getSystemService(WifiManager.class),
|
.getWifiTrackerLibProvider()
|
||||||
context.getSystemService(ConnectivityManager.class),
|
.createWifiPickerTracker(getSettingsLifecycle(), context,
|
||||||
context.getSystemService(NetworkScoreManager.class),
|
|
||||||
new Handler(Looper.getMainLooper()),
|
new Handler(Looper.getMainLooper()),
|
||||||
mWorkerThread.getThreadHandler(),
|
mWorkerThread.getThreadHandler(),
|
||||||
elapsedRealtimeClock,
|
elapsedRealtimeClock,
|
||||||
|
@@ -17,9 +17,6 @@
|
|||||||
package com.android.settings.wifi;
|
package com.android.settings.wifi;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.NetworkScoreManager;
|
|
||||||
import android.net.wifi.WifiManager;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
@@ -36,6 +33,7 @@ import androidx.preference.PreferenceScreen;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
@@ -115,10 +113,9 @@ public class WifiConnectionPreferenceController extends AbstractPreferenceContro
|
|||||||
return SystemClock.elapsedRealtime();
|
return SystemClock.elapsedRealtime();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mWifiPickerTracker = new WifiPickerTracker(lifecycle, context,
|
mWifiPickerTracker = FeatureFactory.getFactory(context)
|
||||||
context.getSystemService(WifiManager.class),
|
.getWifiTrackerLibProvider()
|
||||||
context.getSystemService(ConnectivityManager.class),
|
.createWifiPickerTracker(lifecycle, context,
|
||||||
context.getSystemService(NetworkScoreManager.class),
|
|
||||||
new Handler(Looper.getMainLooper()),
|
new Handler(Looper.getMainLooper()),
|
||||||
mWorkerThread.getThreadHandler(),
|
mWorkerThread.getThreadHandler(),
|
||||||
elapsedRealtimeClock,
|
elapsedRealtimeClock,
|
||||||
|
@@ -18,9 +18,7 @@ package com.android.settings.wifi;
|
|||||||
|
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.NetworkInfo;
|
import android.net.NetworkInfo;
|
||||||
import android.net.NetworkScoreManager;
|
|
||||||
import android.net.wifi.WifiConfiguration;
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.net.wifi.WifiManager.ActionListener;
|
import android.net.wifi.WifiManager.ActionListener;
|
||||||
@@ -38,6 +36,7 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SetupWizardUtils;
|
import com.android.settings.SetupWizardUtils;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.wifi.dpp.WifiDppUtils;
|
import com.android.settings.wifi.dpp.WifiDppUtils;
|
||||||
import com.android.settingslib.core.lifecycle.ObservableActivity;
|
import com.android.settingslib.core.lifecycle.ObservableActivity;
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
import com.android.settingslib.wifi.AccessPoint;
|
||||||
@@ -124,12 +123,11 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog
|
|||||||
return SystemClock.elapsedRealtime();
|
return SystemClock.elapsedRealtime();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mNetworkDetailsTracker = NetworkDetailsTracker.createNetworkDetailsTracker(
|
mNetworkDetailsTracker = FeatureFactory.getFactory(this)
|
||||||
|
.getWifiTrackerLibProvider()
|
||||||
|
.createNetworkDetailsTracker(
|
||||||
getLifecycle(),
|
getLifecycle(),
|
||||||
this,
|
this,
|
||||||
getSystemService(WifiManager.class),
|
|
||||||
getSystemService(ConnectivityManager.class),
|
|
||||||
getSystemService(NetworkScoreManager.class),
|
|
||||||
new Handler(Looper.getMainLooper()),
|
new Handler(Looper.getMainLooper()),
|
||||||
mWorkerThread.getThreadHandler(),
|
mWorkerThread.getThreadHandler(),
|
||||||
elapsedRealtimeClock,
|
elapsedRealtimeClock,
|
||||||
|
@@ -17,9 +17,6 @@
|
|||||||
package com.android.settings.wifi;
|
package com.android.settings.wifi;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.NetworkScoreManager;
|
|
||||||
import android.net.wifi.WifiManager;
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
@@ -34,6 +31,7 @@ import androidx.lifecycle.LifecycleObserver;
|
|||||||
import androidx.lifecycle.OnLifecycleEvent;
|
import androidx.lifecycle.OnLifecycleEvent;
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.wifitrackerlib.MergedCarrierEntry;
|
import com.android.wifitrackerlib.MergedCarrierEntry;
|
||||||
import com.android.wifitrackerlib.WifiEntry;
|
import com.android.wifitrackerlib.WifiEntry;
|
||||||
import com.android.wifitrackerlib.WifiPickerTracker;
|
import com.android.wifitrackerlib.WifiPickerTracker;
|
||||||
@@ -72,16 +70,16 @@ public class WifiPickerTrackerHelper implements LifecycleObserver {
|
|||||||
Process.THREAD_PRIORITY_BACKGROUND);
|
Process.THREAD_PRIORITY_BACKGROUND);
|
||||||
mWorkerThread.start();
|
mWorkerThread.start();
|
||||||
|
|
||||||
mWifiPickerTracker = new WifiPickerTracker(lifecycle, context,
|
mWifiPickerTracker = FeatureFactory.getFactory(context)
|
||||||
context.getSystemService(WifiManager.class),
|
.getWifiTrackerLibProvider()
|
||||||
context.getSystemService(ConnectivityManager.class),
|
.createWifiPickerTracker(lifecycle, context,
|
||||||
context.getSystemService(NetworkScoreManager.class),
|
|
||||||
new Handler(Looper.getMainLooper()),
|
new Handler(Looper.getMainLooper()),
|
||||||
mWorkerThread.getThreadHandler(),
|
mWorkerThread.getThreadHandler(),
|
||||||
ELAPSED_REALTIME_CLOCK,
|
ELAPSED_REALTIME_CLOCK,
|
||||||
MAX_SCAN_AGE_MILLIS,
|
MAX_SCAN_AGE_MILLIS,
|
||||||
SCAN_INTERVAL_MILLIS,
|
SCAN_INTERVAL_MILLIS,
|
||||||
listener);
|
listener);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
|
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
|
||||||
|
@@ -27,8 +27,6 @@ import android.content.ContentResolver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.NetworkScoreManager;
|
|
||||||
import android.net.NetworkTemplate;
|
import android.net.NetworkTemplate;
|
||||||
import android.net.wifi.WifiConfiguration;
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
@@ -66,6 +64,7 @@ import com.android.settings.core.SubSettingLauncher;
|
|||||||
import com.android.settings.datausage.DataUsagePreference;
|
import com.android.settings.datausage.DataUsagePreference;
|
||||||
import com.android.settings.datausage.DataUsageUtils;
|
import com.android.settings.datausage.DataUsageUtils;
|
||||||
import com.android.settings.location.ScanningSettings;
|
import com.android.settings.location.ScanningSettings;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.widget.SwitchBarController;
|
import com.android.settings.widget.SwitchBarController;
|
||||||
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
||||||
@@ -283,10 +282,9 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
return SystemClock.elapsedRealtime();
|
return SystemClock.elapsedRealtime();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mWifiPickerTracker = new WifiPickerTracker(getSettingsLifecycle(), context,
|
mWifiPickerTracker = FeatureFactory.getFactory(context)
|
||||||
context.getSystemService(WifiManager.class),
|
.getWifiTrackerLibProvider()
|
||||||
context.getSystemService(ConnectivityManager.class),
|
.createWifiPickerTracker(getSettingsLifecycle(), context,
|
||||||
context.getSystemService(NetworkScoreManager.class),
|
|
||||||
new Handler(Looper.getMainLooper()),
|
new Handler(Looper.getMainLooper()),
|
||||||
mWorkerThread.getThreadHandler(),
|
mWorkerThread.getThreadHandler(),
|
||||||
elapsedRealtimeClock,
|
elapsedRealtimeClock,
|
||||||
|
48
src/com/android/settings/wifi/WifiTrackerLibProvider.java
Normal file
48
src/com/android/settings/wifi/WifiTrackerLibProvider.java
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2020 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.settings.wifi;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Handler;
|
||||||
|
|
||||||
|
import androidx.lifecycle.Lifecycle;
|
||||||
|
|
||||||
|
import com.android.wifitrackerlib.NetworkDetailsTracker;
|
||||||
|
import com.android.wifitrackerlib.WifiPickerTracker;
|
||||||
|
|
||||||
|
import java.time.Clock;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides the objects instances from the AOSP WifiTrackerLib.
|
||||||
|
*/
|
||||||
|
public interface WifiTrackerLibProvider {
|
||||||
|
|
||||||
|
/** Create a new instance of WifiPickerTracker */
|
||||||
|
WifiPickerTracker createWifiPickerTracker(
|
||||||
|
Lifecycle lifecycle, Context context,
|
||||||
|
Handler mainHandler, Handler workerHandler, Clock clock,
|
||||||
|
long maxScanAgeMillis, long scanIntervalMillis,
|
||||||
|
WifiPickerTracker.WifiPickerTrackerCallback listener);
|
||||||
|
|
||||||
|
/** Create a new instance of NetworkDetailsTracker */
|
||||||
|
NetworkDetailsTracker createNetworkDetailsTracker(
|
||||||
|
Lifecycle lifecycle, Context context,
|
||||||
|
Handler mainHandler, Handler workerHandler, Clock clock,
|
||||||
|
long maxScanAgeMillis, long scanIntervalMillis,
|
||||||
|
String key);
|
||||||
|
|
||||||
|
}
|
@@ -0,0 +1,74 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2020 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.settings.wifi;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.NetworkScoreManager;
|
||||||
|
import android.net.wifi.WifiManager;
|
||||||
|
import android.os.Handler;
|
||||||
|
|
||||||
|
import androidx.lifecycle.Lifecycle;
|
||||||
|
|
||||||
|
import com.android.wifitrackerlib.NetworkDetailsTracker;
|
||||||
|
import com.android.wifitrackerlib.WifiPickerTracker;
|
||||||
|
|
||||||
|
import java.time.Clock;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implementation of AOSP WifiTrackerLibProvider.
|
||||||
|
*/
|
||||||
|
public class WifiTrackerLibProviderImpl implements WifiTrackerLibProvider {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of WifiPickerTracker.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WifiPickerTracker createWifiPickerTracker(
|
||||||
|
Lifecycle lifecycle, Context context,
|
||||||
|
Handler mainHandler, Handler workerHandler, Clock clock,
|
||||||
|
long maxScanAgeMillis, long scanIntervalMillis,
|
||||||
|
WifiPickerTracker.WifiPickerTrackerCallback listener) {
|
||||||
|
return new WifiPickerTracker(
|
||||||
|
lifecycle, context,
|
||||||
|
context.getSystemService(WifiManager.class),
|
||||||
|
context.getSystemService(ConnectivityManager.class),
|
||||||
|
context.getSystemService(NetworkScoreManager.class),
|
||||||
|
mainHandler, workerHandler, clock,
|
||||||
|
maxScanAgeMillis, scanIntervalMillis,
|
||||||
|
listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of NetworkDetailsTracker.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public NetworkDetailsTracker createNetworkDetailsTracker(
|
||||||
|
Lifecycle lifecycle, Context context,
|
||||||
|
Handler mainHandler, Handler workerHandler, Clock clock,
|
||||||
|
long maxScanAgeMillis, long scanIntervalMillis,
|
||||||
|
String key) {
|
||||||
|
return NetworkDetailsTracker.createNetworkDetailsTracker(
|
||||||
|
lifecycle, context,
|
||||||
|
context.getSystemService(WifiManager.class),
|
||||||
|
context.getSystemService(ConnectivityManager.class),
|
||||||
|
context.getSystemService(NetworkScoreManager.class),
|
||||||
|
mainHandler, workerHandler, clock,
|
||||||
|
maxScanAgeMillis, scanIntervalMillis,
|
||||||
|
key);
|
||||||
|
}
|
||||||
|
}
|
@@ -24,8 +24,6 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.NetworkScoreManager;
|
|
||||||
import android.net.wifi.WifiConfiguration;
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiConfiguration.KeyMgmt;
|
import android.net.wifi.WifiConfiguration.KeyMgmt;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
@@ -60,6 +58,7 @@ import com.android.internal.annotations.VisibleForTesting;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.InstrumentedFragment;
|
import com.android.settings.core.InstrumentedFragment;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.wifitrackerlib.WifiEntry;
|
import com.android.wifitrackerlib.WifiEntry;
|
||||||
import com.android.wifitrackerlib.WifiPickerTracker;
|
import com.android.wifitrackerlib.WifiPickerTracker;
|
||||||
|
|
||||||
@@ -191,10 +190,9 @@ public class AddAppNetworksFragment extends InstrumentedFragment implements
|
|||||||
return SystemClock.elapsedRealtime();
|
return SystemClock.elapsedRealtime();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mWifiPickerTracker = new WifiPickerTracker(getSettingsLifecycle(), mActivity,
|
mWifiPickerTracker = FeatureFactory.getFactory(mActivity.getApplicationContext())
|
||||||
mActivity.getSystemService(WifiManager.class),
|
.getWifiTrackerLibProvider()
|
||||||
mActivity.getSystemService(ConnectivityManager.class),
|
.createWifiPickerTracker(getSettingsLifecycle(), mActivity,
|
||||||
mActivity.getSystemService(NetworkScoreManager.class),
|
|
||||||
new Handler(Looper.getMainLooper()),
|
new Handler(Looper.getMainLooper()),
|
||||||
mWorkerThread.getThreadHandler(),
|
mWorkerThread.getThreadHandler(),
|
||||||
elapsedRealtimeClock,
|
elapsedRealtimeClock,
|
||||||
|
@@ -22,7 +22,6 @@ import android.app.admin.DevicePolicyManager;
|
|||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.NetworkScoreManager;
|
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
@@ -42,6 +41,7 @@ import androidx.preference.PreferenceScreen;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.wifi.WifiConfigUiBase2;
|
import com.android.settings.wifi.WifiConfigUiBase2;
|
||||||
import com.android.settings.wifi.WifiDialog2;
|
import com.android.settings.wifi.WifiDialog2;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
@@ -239,12 +239,11 @@ public class WifiNetworkDetailsFragment2 extends DashboardFragment implements
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
mNetworkDetailsTracker = NetworkDetailsTracker.createNetworkDetailsTracker(
|
mNetworkDetailsTracker = FeatureFactory.getFactory(context)
|
||||||
|
.getWifiTrackerLibProvider()
|
||||||
|
.createNetworkDetailsTracker(
|
||||||
getSettingsLifecycle(),
|
getSettingsLifecycle(),
|
||||||
context,
|
context,
|
||||||
context.getSystemService(WifiManager.class),
|
|
||||||
context.getSystemService(ConnectivityManager.class),
|
|
||||||
context.getSystemService(NetworkScoreManager.class),
|
|
||||||
new Handler(Looper.getMainLooper()),
|
new Handler(Looper.getMainLooper()),
|
||||||
mWorkerThread.getThreadHandler(),
|
mWorkerThread.getThreadHandler(),
|
||||||
elapsedRealtimeClock,
|
elapsedRealtimeClock,
|
||||||
|
@@ -25,8 +25,6 @@ import android.content.Intent;
|
|||||||
import android.graphics.Matrix;
|
import android.graphics.Matrix;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.SurfaceTexture;
|
import android.graphics.SurfaceTexture;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.NetworkScoreManager;
|
|
||||||
import android.net.wifi.EasyConnectStatusCallback;
|
import android.net.wifi.EasyConnectStatusCallback;
|
||||||
import android.net.wifi.WifiConfiguration;
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
@@ -57,6 +55,7 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
import androidx.lifecycle.ViewModelProviders;
|
import androidx.lifecycle.ViewModelProviders;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.wifi.qrcode.QrCamera;
|
import com.android.settings.wifi.qrcode.QrCamera;
|
||||||
import com.android.settings.wifi.qrcode.QrDecorateView;
|
import com.android.settings.wifi.qrcode.QrDecorateView;
|
||||||
import com.android.wifitrackerlib.WifiEntry;
|
import com.android.wifitrackerlib.WifiEntry;
|
||||||
@@ -363,10 +362,9 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
final Context context = getContext();
|
final Context context = getContext();
|
||||||
mWifiPickerTracker = new WifiPickerTracker(getSettingsLifecycle(), context,
|
mWifiPickerTracker = FeatureFactory.getFactory(context)
|
||||||
context.getSystemService(WifiManager.class),
|
.getWifiTrackerLibProvider()
|
||||||
context.getSystemService(ConnectivityManager.class),
|
.createWifiPickerTracker(getSettingsLifecycle(), context,
|
||||||
context.getSystemService(NetworkScoreManager.class),
|
|
||||||
new Handler(Looper.getMainLooper()),
|
new Handler(Looper.getMainLooper()),
|
||||||
mWorkerThread.getThreadHandler(),
|
mWorkerThread.getThreadHandler(),
|
||||||
elapsedRealtimeClock,
|
elapsedRealtimeClock,
|
||||||
|
@@ -19,8 +19,6 @@ package com.android.settings.wifi.slice;
|
|||||||
import static com.android.settings.wifi.slice.WifiSlice.DEFAULT_EXPANDED_ROW_COUNT;
|
import static com.android.settings.wifi.slice.WifiSlice.DEFAULT_EXPANDED_ROW_COUNT;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.NetworkScoreManager;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
@@ -34,6 +32,7 @@ import androidx.lifecycle.Lifecycle;
|
|||||||
import androidx.lifecycle.LifecycleOwner;
|
import androidx.lifecycle.LifecycleOwner;
|
||||||
import androidx.lifecycle.LifecycleRegistry;
|
import androidx.lifecycle.LifecycleRegistry;
|
||||||
|
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.slices.SliceBackgroundWorker;
|
import com.android.settings.slices.SliceBackgroundWorker;
|
||||||
import com.android.settingslib.utils.ThreadUtils;
|
import com.android.settingslib.utils.ThreadUtils;
|
||||||
import com.android.wifitrackerlib.MergedCarrierEntry;
|
import com.android.wifitrackerlib.MergedCarrierEntry;
|
||||||
@@ -79,10 +78,9 @@ public class WifiScanWorker extends SliceBackgroundWorker<WifiSliceItem> impleme
|
|||||||
return SystemClock.elapsedRealtime();
|
return SystemClock.elapsedRealtime();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mWifiPickerTracker = new WifiPickerTracker(getLifecycle(), context,
|
mWifiPickerTracker = FeatureFactory.getFactory(context)
|
||||||
context.getSystemService(WifiManager.class),
|
.getWifiTrackerLibProvider()
|
||||||
context.getSystemService(ConnectivityManager.class),
|
.createWifiPickerTracker(getLifecycle(), context,
|
||||||
context.getSystemService(NetworkScoreManager.class),
|
|
||||||
ThreadUtils.getUiThreadHandler(),
|
ThreadUtils.getUiThreadHandler(),
|
||||||
mWorkerThread.getThreadHandler(),
|
mWorkerThread.getThreadHandler(),
|
||||||
elapsedRealtimeClock,
|
elapsedRealtimeClock,
|
||||||
|
@@ -43,6 +43,7 @@ import com.android.settings.search.SearchFeatureProvider;
|
|||||||
import com.android.settings.security.SecurityFeatureProvider;
|
import com.android.settings.security.SecurityFeatureProvider;
|
||||||
import com.android.settings.slices.SlicesFeatureProvider;
|
import com.android.settings.slices.SlicesFeatureProvider;
|
||||||
import com.android.settings.users.UserFeatureProvider;
|
import com.android.settings.users.UserFeatureProvider;
|
||||||
|
import com.android.settings.wifi.WifiTrackerLibProvider;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
import org.mockito.Answers;
|
import org.mockito.Answers;
|
||||||
@@ -77,6 +78,8 @@ public class FakeFeatureFactory extends FeatureFactory {
|
|||||||
public SearchFeatureProvider searchFeatureProvider;
|
public SearchFeatureProvider searchFeatureProvider;
|
||||||
public ContextualCardFeatureProvider mContextualCardFeatureProvider;
|
public ContextualCardFeatureProvider mContextualCardFeatureProvider;
|
||||||
|
|
||||||
|
public WifiTrackerLibProvider wifiTrackerLibProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call this in {@code @Before} method of the test class to use fake factory.
|
* Call this in {@code @Before} method of the test class to use fake factory.
|
||||||
*/
|
*/
|
||||||
@@ -120,6 +123,7 @@ public class FakeFeatureFactory extends FeatureFactory {
|
|||||||
mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
|
mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
|
||||||
mAwareFeatureProvider = mock(AwareFeatureProvider.class);
|
mAwareFeatureProvider = mock(AwareFeatureProvider.class);
|
||||||
mFaceFeatureProvider = mock(FaceFeatureProvider.class);
|
mFaceFeatureProvider = mock(FaceFeatureProvider.class);
|
||||||
|
wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -231,4 +235,9 @@ public class FakeFeatureFactory extends FeatureFactory {
|
|||||||
public FaceFeatureProvider getFaceFeatureProvider() {
|
public FaceFeatureProvider getFaceFeatureProvider() {
|
||||||
return mFaceFeatureProvider;
|
return mFaceFeatureProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WifiTrackerLibProvider getWifiTrackerLibProvider() {
|
||||||
|
return wifiTrackerLibProvider;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyLong;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
@@ -41,6 +42,7 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.wifitrackerlib.WifiEntry;
|
import com.android.wifitrackerlib.WifiEntry;
|
||||||
import com.android.wifitrackerlib.WifiPickerTracker;
|
import com.android.wifitrackerlib.WifiPickerTracker;
|
||||||
|
|
||||||
@@ -82,6 +84,8 @@ public class AddAppNetworksFragmentTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private WifiEntry mWifiEntry;
|
private WifiEntry mWifiEntry;
|
||||||
|
|
||||||
|
private FakeFeatureFactory mFakeFeatureFactory;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private WifiPickerTracker mWifiPickerTracker;
|
private WifiPickerTracker mWifiPickerTracker;
|
||||||
|
|
||||||
@@ -106,6 +110,8 @@ public class AddAppNetworksFragmentTest {
|
|||||||
mSavedWpaConfigurationEntry = generateRegularWifiConfiguration(FAKE_NEW_SAVED_WPA_SSID,
|
mSavedWpaConfigurationEntry = generateRegularWifiConfiguration(FAKE_NEW_SAVED_WPA_SSID,
|
||||||
WifiConfiguration.KeyMgmt.WPA_PSK, "\"1234567890\"");
|
WifiConfiguration.KeyMgmt.WPA_PSK, "\"1234567890\"");
|
||||||
|
|
||||||
|
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||||
|
|
||||||
mAddAppNetworksFragment.mWifiPickerTracker = mWifiPickerTracker;
|
mAddAppNetworksFragment.mWifiPickerTracker = mWifiPickerTracker;
|
||||||
setUpOneScannedNetworkWithScanedLevel4();
|
setUpOneScannedNetworkWithScanedLevel4();
|
||||||
}
|
}
|
||||||
@@ -485,6 +491,9 @@ public class AddAppNetworksFragmentTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setupFragment() {
|
private void setupFragment() {
|
||||||
|
when(mFakeFeatureFactory.wifiTrackerLibProvider.createWifiPickerTracker(
|
||||||
|
any(), any(), any(), any(), any(), anyLong(), anyLong(), any()))
|
||||||
|
.thenReturn(mWifiPickerTracker);
|
||||||
FragmentController.setupFragment(mAddAppNetworksFragment);
|
FragmentController.setupFragment(mAddAppNetworksFragment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -41,6 +41,7 @@ import com.android.settings.search.SearchFeatureProvider;
|
|||||||
import com.android.settings.security.SecurityFeatureProvider;
|
import com.android.settings.security.SecurityFeatureProvider;
|
||||||
import com.android.settings.slices.SlicesFeatureProvider;
|
import com.android.settings.slices.SlicesFeatureProvider;
|
||||||
import com.android.settings.users.UserFeatureProvider;
|
import com.android.settings.users.UserFeatureProvider;
|
||||||
|
import com.android.settings.wifi.WifiTrackerLibProvider;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -72,6 +73,8 @@ public class FakeFeatureFactory extends FeatureFactory {
|
|||||||
public SearchFeatureProvider searchFeatureProvider;
|
public SearchFeatureProvider searchFeatureProvider;
|
||||||
public ContextualCardFeatureProvider mContextualCardFeatureProvider;
|
public ContextualCardFeatureProvider mContextualCardFeatureProvider;
|
||||||
|
|
||||||
|
public WifiTrackerLibProvider wifiTrackerLibProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call this in {@code @Before} method of the test class to use fake factory.
|
* Call this in {@code @Before} method of the test class to use fake factory.
|
||||||
*/
|
*/
|
||||||
@@ -106,6 +109,7 @@ public class FakeFeatureFactory extends FeatureFactory {
|
|||||||
mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
|
mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
|
||||||
mAwareFeatureProvider = mock(AwareFeatureProvider.class);
|
mAwareFeatureProvider = mock(AwareFeatureProvider.class);
|
||||||
mFaceFeatureProvider = mock(FaceFeatureProvider.class);
|
mFaceFeatureProvider = mock(FaceFeatureProvider.class);
|
||||||
|
wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -217,4 +221,9 @@ public class FakeFeatureFactory extends FeatureFactory {
|
|||||||
public FaceFeatureProvider getFaceFeatureProvider() {
|
public FaceFeatureProvider getFaceFeatureProvider() {
|
||||||
return mFaceFeatureProvider;
|
return mFaceFeatureProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WifiTrackerLibProvider getWifiTrackerLibProvider() {
|
||||||
|
return wifiTrackerLibProvider;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user