Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best way to combine integer flags using Kotlin?

Tags:

android

kotlin

In java we regularly combine flags via the | operator.

e.g.

getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE | 
  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | 
  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);

I can't seem to find the equivalent operator in Kotlin. Anyone know a convenient way to combine integer flags in Kotlin?

like image 262
whiskeyjoe Avatar asked Nov 30 '15 17:11

whiskeyjoe


1 Answers

Just use or:

getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);

This may be a little confusing. You can create a little helper extension function with (or whatever) to make it more readable:

infix fun Int.with(x: Int) = this.or(x)

getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE with
  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION with
  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);
like image 199
nhaarman Avatar answered Nov 07 '22 17:11

nhaarman