19ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling/* 29ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * Copyright (C) 2017 The Android Open Source Project 39ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * 49ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 59ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * except in compliance with the License. You may obtain a copy of the License at 69ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * 79ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * http://www.apache.org/licenses/LICENSE-2.0 89ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * 99ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * Unless required by applicable law or agreed to in writing, software distributed under the 109ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 119ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * KIND, either express or implied. See the License for the specific language governing 129ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * permissions and limitations under the License. 139ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling */ 149ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Lingpackage com.android.settings.location; 159ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling 169ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Lingimport android.content.Context; 179ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Lingimport android.os.UserManager; 189ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling 199ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Lingimport com.android.settings.core.PreferenceControllerMixin; 209ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Lingimport com.android.settingslib.core.AbstractPreferenceController; 219ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Lingimport com.android.settingslib.core.lifecycle.Lifecycle; 229ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling 239ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling/** 249ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * A base controller for preferences that listens to location settings change and modifies location 259ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling * settings. 269ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling */ 279ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Lingpublic abstract class LocationBasePreferenceController extends AbstractPreferenceController 289ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling implements PreferenceControllerMixin, LocationEnabler.LocationModeChangeListener { 299ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling 309ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling protected final UserManager mUserManager; 319ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling protected final LocationEnabler mLocationEnabler; 329ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling 339ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling public LocationBasePreferenceController(Context context, Lifecycle lifecycle) { 349ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling super(context); 359ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); 369ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling mLocationEnabler = new LocationEnabler(context, this /* listener */, lifecycle); 379ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling } 389ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling 399ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling @Override 409ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling public boolean isAvailable() { 419ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling return true; 429ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling } 439ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling 449ed29a2e57bb6e0ad1626afdfb0517ba643ccc9fDoris Ling} 45