base: notch-city: Add 3 mode display cutout handler

[@AgentFabulous - POSP]

* About the port
- This includes the latest patches applied to A10, combined to a single
  change. This includes quite a few changes authored by me, and a ton
  has been heavily changed and rewritten, so I won't even bother listing
  them here.

* The change
Modes:
 - Normal
 - Immerse
 - Hide

Normal:
  You know this one ¯\_(ツ)_/¯

Immerse:
  This change does not force layout parameters globally. Instead, sets
  statusbar colors and changes layout parameters for statusbar. It also
  forces corners to be drawn with LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER so
  they are always below the statusbar. This however looks weird in
  landscape, thus the feature disables itself in landscape mode. This
  way, we can black out our cutout while being able to see our status
  icons still and have adjustable virtual corners, while not breaking
  any apps.

Hide:
  We can't really register a content observer for overriding the
  resource bool in our java code (causes SystemUI to FC with a null
  pointer ref), so use overlays here. Works like most other "Hide"

Change-Id: I2aa5e08b2f8c5b561873069354063633a2a9f1cc
Signed-off-by: Ayan Mukherjee <mukherjeeayan725@gmail.com>
8 files changed