Module: ProMotion::StatusBarModule

Included in:
ScreenModule
Defined in:
lib/ProMotion/screen/status_bar_module.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



73
74
75
# File 'lib/ProMotion/screen/status_bar_module.rb', line 73

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

#hide_status_bar(opts = {}) ⇒ Object



27
28
29
30
31
# File 'lib/ProMotion/screen/status_bar_module.rb', line 27

def hide_status_bar(opts = {})
  @previous_status_bar_style = self.class.status_bar_style
  self.class.status_bar_style(:hidden)
  update_status_bar_appearance(opts)
end

#preferredStatusBarStyleObject



3
4
5
6
7
8
9
10
# File 'lib/ProMotion/screen/status_bar_module.rb', line 3

def preferredStatusBarStyle
  styles = {
    light: UIStatusBarStyleLightContent,
    dark: UIStatusBarStyleDefault,
    default: UIStatusBarStyleDefault
  }
  styles[self.class.status_bar_style || app.delegate.status_bar_style]  || styles[:default]
end

#preferredStatusBarUpdateAnimationObject



12
13
14
15
16
17
18
19
20
# File 'lib/ProMotion/screen/status_bar_module.rb', line 12

def preferredStatusBarUpdateAnimation
  animations = {
    none: UIStatusBarAnimationNone,
    fade: UIStatusBarAnimationFade,
    slide: UIStatusBarAnimationSlide,
    default: UIStatusBarAnimationFade
  }
  animations[self.class.status_bar_animation || app.delegate.status_bar_animation] || animations[:default]
end

#prefersStatusBarHiddenObject



22
23
24
25
# File 'lib/ProMotion/screen/status_bar_module.rb', line 22

def prefersStatusBarHidden
  style = self.class.status_bar_style || app.delegate.status_bar_style
  [:none, :hidden].include?(style)
end

#show_status_bar(opts = {}) ⇒ Object



33
34
35
36
37
38
39
40
41
42
# File 'lib/ProMotion/screen/status_bar_module.rb', line 33

def show_status_bar(opts = {})
  new_style = case @previous_status_bar_style
              when nil, :hidden, :none
                opts[:style] || app.delegate.status_bar_style || :default
              else
                @previous_status_bar_style
              end
  self.class.status_bar_style(new_style)
  update_status_bar_appearance(opts)
end

#update_status_bar_appearance(opts = {}) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/ProMotion/screen/status_bar_module.rb', line 44

def update_status_bar_appearance(opts = {})
  if opts[:animated] == true
    UIView.animateWithDuration(0.3, animations: -> { setNeedsStatusBarAppearanceUpdate })
  else
    setNeedsStatusBarAppearanceUpdate
  end
end