/* Android IMSI-Catcher Detector | (c) AIMSICD Privacy Project
* -----------------------------------------------------------
* LICENSE: http://git.io/vki47 | TERMS: http://git.io/vki4o
* -----------------------------------------------------------
*/
package com.secupwn.aimsicd.ui.fragments;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.util.Log;
import com.secupwn.aimsicd.R;
public class SettingsFragment extends PreferenceFragment {
CheckBoxPreference gpsPref;
LocationManager locationManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
final String gps_key = getResources().getString(R.string.pref_enable_gps_key);
locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
gpsPref = (CheckBoxPreference) findPreference(gps_key);
gpsPref.setDefaultValue(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER));
gpsPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Intent gpsSettings = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(gpsSettings, 1);
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
gpsPref.setChecked(true);
return true;
}
gpsPref.setChecked(false);
return false;
}
});
gpsPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Log.e("pref", "changed to " + newValue);
preference.setDefaultValue(newValue);
return true;
}
preference.setDefaultValue(newValue);
return false;
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
gpsPref.setChecked(true);
gpsPref.setDefaultValue(true);
} else {
gpsPref.setDefaultValue(false);
gpsPref.setChecked(false);
}
}
}
}