/* * Copyright (C) 2011 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.location; import android.app.settings.SettingsEnums; import android.content.Context; import android.location.SettingInjectorService; import android.os.Bundle; import android.provider.SearchIndexableResource; import androidx.preference.Preference; import androidx.preference.PreferenceGroup; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; import com.android.settings.widget.SwitchBar; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.location.RecentLocationApps; import com.android.settingslib.search.SearchIndexable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * System location settings (Settings > Location). The screen has three parts: *
* Note that as of KitKat, the {@link SettingInjectorService} is the preferred method for OEMs to
* add their own settings to this page, rather than directly modifying the framework code. Among
* other things, this simplifies integration with future changes to the default (AOSP)
* implementation.
*/
@SearchIndexable
public class LocationSettings extends DashboardFragment {
private static final String TAG = "LocationSettings";
private LocationSwitchBarController mSwitchBarController;
@Override
public int getMetricsCategory() {
return SettingsEnums.LOCATION;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final SettingsActivity activity = (SettingsActivity) getActivity();
final SwitchBar switchBar = activity.getSwitchBar();
switchBar.setSwitchBarText(R.string.location_settings_master_switch_title,
R.string.location_settings_master_switch_title);
mSwitchBarController = new LocationSwitchBarController(activity, switchBar,
getSettingsLifecycle());
switchBar.show();
}
@Override
protected int getPreferenceScreenResId() {
return R.xml.location_settings;
}
@Override
protected String getLogTag() {
return TAG;
}
@Override
protected List