Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2da48f8e authored by hjchangliao's avatar hjchangliao Committed by HJ ChangLiao
Browse files

Remove wrapper for LocationManager

Remove LocationManagerWrapper from SettingsLib

Bug: 76167422
Test: RunSettingsLibRoboTests
Change-Id: I5c50c88175d807d0758b2dc6b4992435df493408
parent ed3c6522
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ import android.provider.Settings;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.UserIcons;
import com.android.settingslib.drawable.UserIconDrawable;
import com.android.settingslib.wrapper.LocationManagerWrapper;

import java.text.NumberFormat;

public class Utils {
@@ -68,8 +68,7 @@ public class Utils {
                intent, UserHandle.of(userId), android.Manifest.permission.WRITE_SECURE_SETTINGS);
        LocationManager locationManager =
                (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
        LocationManagerWrapper wrapper = new LocationManagerWrapper(locationManager);
        wrapper.setLocationEnabledForUser(enabled, UserHandle.of(userId));
        locationManager.setLocationEnabledForUser(enabled, UserHandle.of(userId));
    }

    public static boolean updateLocationMode(Context context, int oldMode, int newMode, int userId,
+0 −64
Original line number Diff line number Diff line
/*
 * 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 com.android.settingslib.wrapper;

import android.location.LocationManager;
import android.os.UserHandle;

/**
 * This class replicates some methods of android.location.LocationManager that are new and not
 * yet available in our current version of Robolectric. It provides a thin wrapper to call the real
 * methods in production and a mock in tests.
 */
public class LocationManagerWrapper {

    private LocationManager mLocationManager;

    public LocationManagerWrapper(LocationManager locationManager) {
        mLocationManager = locationManager;
    }

    /** Returns the real {@code LocationManager} object */
    public LocationManager getLocationManager() {
        return mLocationManager;
    }

    /** Wraps {@code LocationManager.isProviderEnabled} method */
    public boolean isProviderEnabled(String provider) {
        return mLocationManager.isProviderEnabled(provider);
    }

    /** Wraps {@code LocationManager.setProviderEnabledForUser} method */
    public void setProviderEnabledForUser(String provider, boolean enabled, UserHandle userHandle) {
        mLocationManager.setProviderEnabledForUser(provider, enabled, userHandle);
    }

    /** Wraps {@code LocationManager.isLocationEnabled} method */
    public boolean isLocationEnabled() {
        return mLocationManager.isLocationEnabled();
    }

    /** Wraps {@code LocationManager.isLocationEnabledForUser} method */
    public boolean isLocationEnabledForUser(UserHandle userHandle) {
        return mLocationManager.isLocationEnabledForUser(userHandle);
    }

    /** Wraps {@code LocationManager.setLocationEnabledForUser} method */
    public void setLocationEnabledForUser(boolean enabled, UserHandle userHandle) {
        mLocationManager.setLocationEnabledForUser(enabled, userHandle);
    }
}
+3 −5
Original line number Diff line number Diff line
@@ -39,8 +39,6 @@ import android.provider.Settings;
import android.provider.Settings.Secure;
import android.text.TextUtils;

import com.android.settingslib.wrapper.LocationManagerWrapper;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -60,7 +58,7 @@ import java.util.Map;
@RunWith(SettingsLibRobolectricTestRunner.class)
@Config(shadows = {
            UtilsTest.ShadowSecure.class,
            UtilsTest.ShadowLocationManagerWrapper.class})
            UtilsTest.ShadowLocationManager.class})
public class UtilsTest {
    private static final double[] TEST_PERCENTAGES = {0, 0.4, 0.5, 0.6, 49, 49.3, 49.8, 50, 100};
    private static final String PERCENTAGE_0 = "0%";
@@ -187,8 +185,8 @@ public class UtilsTest {
        }
    }

    @Implements(value = LocationManagerWrapper.class)
    public static class ShadowLocationManagerWrapper {
    @Implements(value = LocationManager.class)
    public static class ShadowLocationManager {

        @Implementation
        public void setLocationEnabledForUser(boolean enabled, UserHandle userHandle) {