mainView.SafeVolumeLevelPopupAdded += OnSafeLevelVolumePopupAdded;
mainView.SafeVolumeLevelPopupRemoved += OnSafeLevelVolumePopupRemoved;
- Window.Instance.KeyEvent += OnKeyEvent;
+ window.KeyEvent += OnKeyEvent;
+ window.TouchEvent += OnTouched;
}
public void UpdateMainView()
mainView.UpdateMainView();
}
- protected override void Dispose(DisposeTypes type)
+ public void StartTimer()
{
- if (Disposed)
- {
- return;
- }
-
- if (type == DisposeTypes.Explicit)
- {
- Window.Instance.KeyEvent -= OnKeyEvent;
-
- volumeAppAutoHideTimer.Tick -= OnTimerTick;
- volumeAppAutoHideTimer?.Dispose();
-
- mainView.TouchEvent -= OnMainViewTouched;
- mainView.SliderSlidingStarted -= OnSliderSlidingStarted;
- mainView.SliderSlidingFinished -= OnSliderSlidingFinished;
- mainView.SafeVolumeLevelPopupAdded -= OnSafeLevelVolumePopupAdded;
- mainView.SafeVolumeLevelPopupRemoved -= OnSafeLevelVolumePopupRemoved;
-
- window.Remove(mainView);
- mainView?.Dispose();
-
- ThemeUtility.GetInstance().Clear();
- }
- base.Dispose(type);
+ volumeAppAutoHideTimer?.Start();
}
+ public void StopTimer()
+ {
+ volumeAppAutoHideTimer?.Stop();
+ }
+
private void OnKeyEvent(object sender, Window.KeyEventArgs e)
{
}
}
}
- public void StartTimer()
- {
- volumeAppAutoHideTimer?.Start();
- }
- public void StopTimer()
+
+ private void OnTouched(object sender, Window.TouchEventArgs e)
{
- volumeAppAutoHideTimer?.Stop();
+ if (e.Touch.GetState(0) == PointStateType.Started)
+ {
+ mainView.RemoveSafeVolumeLevelPopup();
+ StopTimer();
+ window.Lower();
+ }
}
+
private void OnSafeLevelVolumePopupRemoved()
{
StartTimer();
Window.Instance.Lower();
return true;
}
+
+ protected override void Dispose(DisposeTypes type)
+ {
+ if (Disposed)
+ {
+ return;
+ }
+
+ if (type == DisposeTypes.Explicit)
+ {
+ Window.Instance.KeyEvent -= OnKeyEvent;
+
+ volumeAppAutoHideTimer.Tick -= OnTimerTick;
+ volumeAppAutoHideTimer?.Dispose();
+
+ mainView.TouchEvent -= OnMainViewTouched;
+ mainView.SliderSlidingStarted -= OnSliderSlidingStarted;
+ mainView.SliderSlidingFinished -= OnSliderSlidingFinished;
+ mainView.SafeVolumeLevelPopupAdded -= OnSafeLevelVolumePopupAdded;
+ mainView.SafeVolumeLevelPopupRemoved -= OnSafeLevelVolumePopupRemoved;
+
+ window.Remove(mainView);
+ mainView?.Dispose();
+
+ ThemeUtility.GetInstance().Clear();
+ }
+ base.Dispose(type);
+ }
}
}
private Button cancelButton;
private Button increaseButton;
private bool safetyModeEnabled;
+ private bool volumeInternallyChanged;
public event Action SliderSlidingStarted;
public event Action SliderSlidingFinished;
safetyModeEnabled = slider.CurrentValue <= 0.9f * MaxVolume;
volumeIcon.ResourceUrl = SetVolumeIcon(slider.CurrentValue);
+ volumeInternallyChanged = false;
Add(slider);
RelativeLayout.SetBottomTarget(slider, volumeIcon);
slider.ValueChanged += OnSliderValueChanged;
slider.SlidingFinished += OnSlidingFinished;
+ UpdateTheme(ThemeManager.PlatformThemeId);
+ AudioManager.VolumeController.Changed += OnAudioVolumeChanged;
}
public void IncreaseSliderValue()
return safeVolumeLevelPopup != null && safeVolumeLevelPopup.IsOnWindow;
}
- private void UpdateTheme(string theme)
+ public void UpdateMainView()
{
- if (theme == Resources.LightPlatformThemeId)
- {
- BoxShadow = AppCommon.mainViewLightBoxShadow;
- }
- else
- {
- BoxShadow = AppCommon.mainViewDarkBoxShadow;
- }
+ UpdateAlertPopUp();
+ Position2D = UpdatePosition();
}
- protected override void Dispose(DisposeTypes type)
+ public void RemoveSafeVolumeLevelPopup()
{
- if(Disposed)
+ if (safeVolumeLevelPopup != null)
{
- return;
+ slider.IsEnabled = true;
+ slider.ThumbSize = AppCommon.sliderThumbSizeNormal;
+ Window.Instance.Remove(safeVolumeLevelPopup);
+ SafeVolumeLevelPopupRemoved?.Invoke();
}
+ }
- if(type == DisposeTypes.Explicit)
+ private void OnAudioVolumeChanged(object sender, VolumeChangedEventArgs e)
+ {
+ if (e.Type == AudioVolumeType.Media)
{
-
- SliderSlidingStarted = null;
- SliderSlidingFinished = null;
- SafeVolumeLevelPopupAdded = null;
- SafeVolumeLevelPopupRemoved = null;
-
- slider.SlidingStarted -= OnSlidingStarted;
- slider.ValueChanged -= OnSliderValueChanged;
- slider.SlidingFinished -= OnSlidingFinished;
-
- Remove(slider);
- slider?.Dispose();
-
- Remove(volumeIcon);
- volumeIcon?.Dispose();
- if(safeVolumeLevelPopup != null)
+ if (volumeInternallyChanged == false)
{
- cancelButton.Clicked -= OnCancelButtonClicked;
- increaseButton.Clicked -= OnIncreaseButtonClicked;
- Window.Instance.Remove(safeVolumeLevelPopup);
- safeVolumeLevelPopup?.Dispose();
+ volumeInternallyChanged = true;
+ slider.CurrentValue = e.Level;
+ }
+ else
+ {
+ volumeInternallyChanged = false;
}
}
- base.Dispose(type);
- }
- public void UpdateMainView()
- {
- UpdateAlertPopUp();
- Position2D = UpdatePosition();
}
- private void UpdateAlertPopUp()
- {
- if(IsAlertPopupShown() == true)
- {
- Window.Instance.Remove(safeVolumeLevelPopup);
- Window.Instance.Add(safeVolumeLevelPopup);
- }
- }
private Position2D UpdatePosition()
{
int posX = ScreenSizeUtils.IsPortrait
}
private void OnSliderValueChanged(object sender, SliderValueChangedEventArgs e)
{
+ volumeInternallyChanged = true;
if (e.CurrentValue > 0.9f * MaxVolume && safetyModeEnabled == true)
{
int safeVolumeLevel = (int)(0.9f * MaxVolume);
{
Tizen.Log.Error(Resources.LogTag, "Exception thrown is : " + ex.Message);
}
-
volumeIcon.ResourceUrl = SetVolumeIcon(e.CurrentValue);
}
+
+ private string SetVolumeIcon(float currentVolume)
+ {
+ if (currentVolume == 0.0f)
+ {
+ return Resources.MuteIconPath;
+ }
+ else if (currentVolume <= 0.33 * MaxVolume)
+ {
+ return Resources.Volume1_33IconPath;
+ }
+ else if (currentVolume <= 0.66 * MaxVolume)
+ {
+ return Resources.Volume34_66IconPath;
+ }
+ else if (currentVolume <= MaxVolume)
+ {
+ return Resources.Volume67_100IconPath;
+ }
+ else
+ {
+ return Resources.Volume67_100IconPath;
+ }
+ }
+
private void AddSafeLevelVolumePopup()
{
cancelButton = new Button("CancelButton")
}
Window.Instance.Add(safeVolumeLevelPopup);
+ Window.Instance.Raise();
SafeVolumeLevelPopupAdded?.Invoke();
cancelButton.Clicked += OnCancelButtonClicked;
increaseButton.Clicked += OnIncreaseButtonClicked;
}
+ private void UpdateAlertPopUp()
+ {
+ if (IsAlertPopupShown() == true)
+ {
+ Window.Instance.Remove(safeVolumeLevelPopup);
+ Window.Instance.Add(safeVolumeLevelPopup);
+ }
+ }
+
private void OnIncreaseButtonClicked(object sender, ClickedEventArgs e)
{
safetyModeEnabled = false;
- slider.IsEnabled = true;
- slider.ThumbSize = AppCommon.sliderThumbSizeNormal;
RemoveSafeVolumeLevelPopup();
AudioManager.VolumeController.Level[AudioVolumeType.Media] = (int)slider.CurrentValue;
}
+
private void OnCancelButtonClicked(object sender, ClickedEventArgs e)
{
- slider.IsEnabled = true;
- slider.ThumbSize = AppCommon.sliderThumbSizeNormal;
RemoveSafeVolumeLevelPopup();
}
- private void RemoveSafeVolumeLevelPopup()
- {
- if (safeVolumeLevelPopup != null)
- {
- Window.Instance.Remove(safeVolumeLevelPopup);
- SafeVolumeLevelPopupRemoved?.Invoke();
- }
- }
- private string SetVolumeIcon(float currentVolume)
+
+ private void UpdateTheme(string theme)
{
- if (currentVolume == 0.0f)
+ if (theme == Resources.LightPlatformThemeId)
{
- return Resources.MuteIconPath;
+ BoxShadow = AppCommon.mainViewLightBoxShadow;
}
- else if (currentVolume <= 0.33 * MaxVolume)
+ else
{
- return Resources.Volume1_33IconPath;
+ BoxShadow = AppCommon.mainViewDarkBoxShadow;
}
- else if (currentVolume <= 0.66 * MaxVolume)
+ }
+
+ protected override void OnThemeChanged(object sender, ThemeChangedEventArgs e)
+ {
+ if (e.IsPlatformThemeChanged)
{
- return Resources.Volume34_66IconPath;
+ UpdateTheme(ThemeManager.PlatformThemeId);
}
- else if (currentVolume <= MaxVolume)
+ }
+
+ protected override void Dispose(DisposeTypes type)
+ {
+ if (Disposed)
{
- return Resources.Volume67_100IconPath;
+ return;
}
- else
+
+ if (type == DisposeTypes.Explicit)
{
- return Resources.Volume67_100IconPath;
+
+ SliderSlidingStarted = null;
+ SliderSlidingFinished = null;
+ SafeVolumeLevelPopupAdded = null;
+ SafeVolumeLevelPopupRemoved = null;
+
+ slider.SlidingStarted -= OnSlidingStarted;
+ slider.ValueChanged -= OnSliderValueChanged;
+ slider.SlidingFinished -= OnSlidingFinished;
+
+ Remove(slider);
+ slider?.Dispose();
+
+ Remove(volumeIcon);
+ volumeIcon?.Dispose();
+ if (safeVolumeLevelPopup != null)
+ {
+ cancelButton.Clicked -= OnCancelButtonClicked;
+ increaseButton.Clicked -= OnIncreaseButtonClicked;
+ Window.Instance.Remove(safeVolumeLevelPopup);
+ safeVolumeLevelPopup?.Dispose();
+ }
+
+ AudioManager.VolumeController.Changed -= OnAudioVolumeChanged;
}
+ base.Dispose(type);
}
}
}