protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            AppContextLiveData.Instance.SetLocale(this);

            if (AppContextLiveData.Instance.IsPortrait)
            {
                SetContentView(Resource.Layout.SettingsActivityPortrait);
            }
            else
            {
                SetContentView(Resource.Layout.SettingsActivityLandscape);
            }

            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetActionBar(toolbar);

            ActionBar.SetDisplayShowHomeEnabled(true);
            ActionBar.SetDisplayHomeAsUpEnabled(true);
            ActionBar.SetDisplayShowTitleEnabled(true);
            ActionBar.SetTitle(Resource.String.SettingsActivity);

            _spinnerLanguages       = FindViewById <Spinner>(Resource.Id.spinnerLanguage);
            _spinnerPhotoResolution = FindViewById <Spinner>(Resource.Id.spinnerResolution);

            _switchManualViewAngle = FindViewById <Switch>(Resource.Id.switchManualViewAngle);
            _seekBarCorrectionViewAngleHorizontal = FindViewById <SeekBar>(Resource.Id.seekBarCorrectionViewAngleHorizontal);
            _textViewAngleHorizontal            = FindViewById <TextView>(Resource.Id.textViewAngleHorizontal);
            _seekBarCorrectionViewAngleVertical = FindViewById <SeekBar>(Resource.Id.seekBarCorrectionViewAngleVertical);
            _textViewAngleVertical = FindViewById <TextView>(Resource.Id.textViewAngleVertical);
            _resetButton           = FindViewById <Button>(Resource.Id.reset);
            _resetButton.SetOnClickListener(this);

            var adapterLanguages = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerDropDownItem, _listOfLanguages);

            _spinnerLanguages.Adapter = adapterLanguages;
            _spinnerLanguages.SetSelection(_listOfLanguages.FindIndex(i => i == PoiCountryHelper.GetLanguageName(_settings.Language)));
            _spinnerLanguages.ItemSelected += (sender, args) => { InvalidateOptionsMenu(); };

            _listOfCameraResolutions = CameraUtilities.GetCameraResolutions(_settings.CameraId).Where(x => x.Width >= ScaleImageView.MIN_IMAGE_SIZE && x.Height >= ScaleImageView.MIN_IMAGE_SIZE).ToList();
            var adapterPhotoResolution = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerDropDownItem, _listOfCameraResolutions);

            _spinnerPhotoResolution.Adapter = adapterPhotoResolution;
            var resolutionIdx = _listOfCameraResolutions.FindIndex(i => i.Equals(_settings.CameraResolutionSelected));

            _spinnerPhotoResolution.SetSelection(resolutionIdx);
            _spinnerPhotoResolution.ItemSelected += (sender, args) => { InvalidateOptionsMenu(); };

            _switchManualViewAngle.Checked = _settings.IsViewAngleCorrection;
            _switchManualViewAngle.SetOnClickListener(this);

            _seekBarCorrectionViewAngleHorizontal.Enabled          = _settings.IsViewAngleCorrection;
            _seekBarCorrectionViewAngleHorizontal.Progress         = (int)(_settings.CorrectionViewAngleHorizontal * 10);
            _seekBarCorrectionViewAngleHorizontal.ProgressChanged += SeekBarProgressChanged;

            _seekBarCorrectionViewAngleVertical.Enabled          = _settings.IsViewAngleCorrection;
            _seekBarCorrectionViewAngleVertical.Progress         = (int)(_settings.CorrectionViewAngleVertical * 10);
            _seekBarCorrectionViewAngleVertical.ProgressChanged += SeekBarProgressChanged;

            UpdateViewAngleText(_settings.CorrectionViewAngleHorizontal, _settings.CorrectionViewAngleVertical);

            _switchManualGpsLocation         = FindViewById <Switch>(Resource.Id.switchManualGpsLocation);
            _switchManualGpsLocation.Checked = _settings.IsManualLocation;
            _switchManualGpsLocation.SetOnClickListener(this);

            _textViewLatitude               = FindViewById <TextView>(Resource.Id.latitudeTitle);
            _textViewLongitude              = FindViewById <TextView>(Resource.Id.longitudeTitle);
            _textViewAltitude               = FindViewById <TextView>(Resource.Id.altitudeTitle);
            _editTextLatitude               = FindViewById <EditText>(Resource.Id.editTextLatitude);
            _editTextLongitude              = FindViewById <EditText>(Resource.Id.editTextLongitude);
            _editTextAltitude               = FindViewById <EditText>(Resource.Id.editTextAltitude);
            _editTextLatitude.TextChanged  += ManualGpsLocationChanged;
            _editTextLongitude.TextChanged += ManualGpsLocationChanged;
            _editTextAltitude.TextChanged  += ManualGpsLocationChanged;

            EnableOrDisableGpsLocationInputs(_settings.IsManualLocation);
            InitializeGpsLocationInputs(_settings.IsManualLocation ? _settings.ManualLocation : AppContextLiveData.Instance.MyLocation);

            _switchAltitudeFromElevationMap         = FindViewById <Switch>(Resource.Id.switchAltitudeFromElevationMap);
            _switchAltitudeFromElevationMap.Checked = _settings.AltitudeFromElevationMap;
            _switchAltitudeFromElevationMap.SetOnClickListener(this);

            _switchAutoElevationProfile         = FindViewById <Switch>(Resource.Id.switchAutoElevationProfile);
            _switchAutoElevationProfile.Checked = _settings.AutoElevationProfile;
            _switchAutoElevationProfile.SetOnClickListener(this);

            var buttonClearElevationData = FindViewById <Button>(Resource.Id.buttonClearElevationData);

            buttonClearElevationData.SetOnClickListener(this);

            _textViewElevationDataSize = FindViewById <TextView>(Resource.Id.textViewElevationDataSize);

            UpdateElevationDataSize();
        }