Merge "Use SettingsLib's MainSwitchBar to replace SwitchBar in Settings."
This commit is contained in:
@@ -28,7 +28,7 @@ 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.widget.SwitchBar;
|
||||
import com.android.settings.widget.SettingsMainSwitchBar;
|
||||
import com.android.settingslib.location.RecentLocationApps;
|
||||
import com.android.settingslib.search.SearchIndexable;
|
||||
|
||||
@@ -70,12 +70,11 @@ public class LocationSettings extends DashboardFragment {
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
final SettingsActivity activity = (SettingsActivity) getActivity();
|
||||
final SwitchBar switchBar = activity.getSwitchBar();
|
||||
switchBar.setSwitchBarText(R.string.location_settings_primary_switch_title,
|
||||
R.string.location_settings_primary_switch_title);
|
||||
final SettingsMainSwitchBar switchBar = activity.getSwitchBar();
|
||||
switchBar.setTitle(getContext().getString(R.string.location_settings_primary_switch_title));
|
||||
switchBar.show();
|
||||
mSwitchBarController = new LocationSwitchBarController(activity, switchBar,
|
||||
getSettingsLifecycle());
|
||||
switchBar.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -17,25 +17,27 @@ import android.content.Context;
|
||||
import android.os.UserHandle;
|
||||
import android.widget.Switch;
|
||||
|
||||
import com.android.settings.widget.SwitchBar;
|
||||
import com.android.settings.widget.SettingsMainSwitchBar;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||
import com.android.settingslib.widget.OnMainSwitchChangeListener;
|
||||
|
||||
public class LocationSwitchBarController implements SwitchBar.OnSwitchChangeListener,
|
||||
/**
|
||||
* The switch controller for the location.
|
||||
*/
|
||||
public class LocationSwitchBarController implements OnMainSwitchChangeListener,
|
||||
LocationEnabler.LocationModeChangeListener, LifecycleObserver, OnStart, OnStop {
|
||||
|
||||
private final SwitchBar mSwitchBar;
|
||||
private final Switch mSwitch;
|
||||
private final SettingsMainSwitchBar mSwitchBar;
|
||||
private final LocationEnabler mLocationEnabler;
|
||||
private boolean mValidListener;
|
||||
|
||||
public LocationSwitchBarController(Context context, SwitchBar switchBar,
|
||||
public LocationSwitchBarController(Context context, SettingsMainSwitchBar switchBar,
|
||||
Lifecycle lifecycle) {
|
||||
mSwitchBar = switchBar;
|
||||
mSwitch = mSwitchBar.getSwitch();
|
||||
mLocationEnabler = new LocationEnabler(context, this /* listener */, lifecycle);
|
||||
if (lifecycle != null) {
|
||||
lifecycle.addObserver(this);
|
||||
@@ -77,12 +79,12 @@ public class LocationSwitchBarController implements SwitchBar.OnSwitchChangeList
|
||||
mSwitchBar.setEnabled(!restricted);
|
||||
}
|
||||
|
||||
if (enabled != mSwitch.isChecked()) {
|
||||
if (enabled != mSwitchBar.isChecked()) {
|
||||
// set listener to null so that that code below doesn't trigger onCheckedChanged()
|
||||
if (mValidListener) {
|
||||
mSwitchBar.removeOnSwitchChangeListener(this);
|
||||
}
|
||||
mSwitch.setChecked(enabled);
|
||||
mSwitchBar.setChecked(enabled);
|
||||
if (mValidListener) {
|
||||
mSwitchBar.addOnSwitchChangeListener(this);
|
||||
}
|
||||
|
Reference in New Issue
Block a user