public SeekBarObserver(ISharedPreferences preferences, Context context, DataContainer sharedData, MyGlSurfaceView renderer) { _context = context; _preferences = preferences; _sharedData = sharedData; _renderer = renderer; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); RequestWindowFeature(WindowFeatures.NoTitle); Window.AddFlags(WindowManagerFlags.Fullscreen); Window.ClearFlags(WindowManagerFlags.ForceNotFullscreen); if (CameraEnabled) { _camera.SetCameraFront(false); _camera.SetSharedData(_sharedData); } SetContentView(Resource.Layout.Main); _renderer = (MyGlSurfaceView)FindViewById(Resource.Id.myglsurfaceview); _renderer.SetSharedData(_sharedData); if (CameraEnabled) { mObserverRenderer = new RendererObserver(this, _camera); } _renderer.SetObserver(mObserverRenderer); View menu = FindViewById(Resource.Id.menu); menu.Visibility = ViewStates.Gone; FindViewById(Resource.Id.button_menu).Click += button_clicked; _preferences = GetPreferences(FileCreationMode.Private); _sharedData._filter = _preferences.GetInt( GetString(Resource.String.key_filter), 0); var SeekBars = new List <SeekBarInfo>() { new SeekBarInfo() { ViewId = Resource.Id.seekbar_brightness, StringKey = Resource.String.key_brightness, DefaultValue = 5 }, new SeekBarInfo() { ViewId = Resource.Id.seekbar_contrast, StringKey = Resource.String.key_contrast, DefaultValue = 5 }, new SeekBarInfo() { ViewId = Resource.Id.seekbar_saturation, StringKey = Resource.String.key_saturation, DefaultValue = 8 }, new SeekBarInfo() { ViewId = Resource.Id.seekbar_corner_radius, StringKey = Resource.String.key_corner_radius, DefaultValue = 3 } }; // Set SeekBar OnSeekBarChangeListeners and default progress. foreach (var seekBar in SeekBars) { var seekBarView = (SeekBar)FindViewById(seekBar.ViewId); Resource r = new Resource(); _observerSeekBar = new SeekBarObserver(_preferences, this, _sharedData, _renderer); seekBarView.SetOnSeekBarChangeListener(_observerSeekBar); seekBarView.Progress = _preferences.GetInt(GetString(seekBar.StringKey), seekBar.DefaultValue); // SeekBar.setProgress triggers observer only in case its value // changes. And we're relying on this trigger to happen. if (seekBarView.Progress == 0) { seekBarView.Progress = 1; seekBarView.Progress = 0; } } }