Merge "Check Wi-Fi permissions for QrCode scanner" into tm-dev am: b6629ab55b am: 37169b93d3

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17944025

Change-Id: I398c19e8f68b32f47742c0c864ae57b69e30c426
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Weng Su
2022-04-27 23:49:41 +00:00
committed by Automerger Merge Worker
2 changed files with 97 additions and 4 deletions

View File

@@ -37,6 +37,7 @@ import android.os.Process;
import android.os.SimpleClock;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.EventLog;
import android.util.Log;
import android.util.Size;
import android.view.LayoutInflater;
@@ -58,6 +59,7 @@ import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.qrcode.QrCamera;
import com.android.settingslib.qrcode.QrDecorateView;
import com.android.settingslib.wifi.WifiPermissionChecker;
import com.android.wifitrackerlib.WifiEntry;
import com.android.wifitrackerlib.WifiPickerTracker;
@@ -117,9 +119,9 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
private int mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_FAILURE_NONE;
@VisibleForTesting
WifiPickerTracker mWifiPickerTracker;
private WifiPickerTracker mWifiPickerTracker;
private HandlerThread mWorkerThread;
private WifiPermissionChecker mWifiPermissionChecker;
private final Handler mHandler = new Handler() {
@Override
@@ -363,6 +365,15 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
mIsConfiguratorMode = true;
}
public WifiDppQrCodeScannerFragment(WifiPickerTracker wifiPickerTracker,
WifiPermissionChecker wifiPermissionChecker) {
super();
mIsConfiguratorMode = true;
mWifiPickerTracker = wifiPickerTracker;
mWifiPermissionChecker = wifiPermissionChecker;
}
/**
* Enrollee container activity of the fragment should create instance with this constructor and
* specify the SSID string of the WI-Fi network to be provisioned.
@@ -719,6 +730,28 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl
resultIntent.putExtra(KEY_WIFI_CONFIGURATION, mEnrolleeWifiConfiguration);
final Activity hostActivity = getActivity();
if (hostActivity == null) return;
if (mWifiPermissionChecker == null) {
mWifiPermissionChecker = new WifiPermissionChecker(hostActivity);
}
if (!mWifiPermissionChecker.canAccessWifiState()) {
Log.w(TAG, "Calling package does not have ACCESS_WIFI_STATE permission for result.");
EventLog.writeEvent(0x534e4554, "187176859",
mWifiPermissionChecker.getLaunchedPackage(), "no ACCESS_WIFI_STATE permission");
hostActivity.finish();
return;
}
if (!mWifiPermissionChecker.canAccessFineLocation()) {
Log.w(TAG, "Calling package does not have ACCESS_FINE_LOCATION permission for result.");
EventLog.writeEvent(0x534e4554, "187176859",
mWifiPermissionChecker.getLaunchedPackage(),
"no ACCESS_FINE_LOCATION permission");
hostActivity.finish();
return;
}
hostActivity.setResult(Activity.RESULT_OK, resultIntent);
hostActivity.finish();
}