implement activity blocking

- monitor activity launch and shut it down if
  car is not parked and if the app is not allowed.
- Launch blocking activity for unsafe app.
- Blocking activity stays up to timeout (3 secs) and
  finish itself if there is safe app behind.
  If safe app is not there, launch home. If home is
  not safe either. stay.
- allow OEMs to give static whitelist as overlay.

bug: 25267050

Change-Id: Id0bdae757fa98345069f2d83711b46447506f888
diff --git a/car-lib/api/system-current.txt b/car-lib/api/system-current.txt
index b6f897b..53e1a00 100644
--- a/car-lib/api/system-current.txt
+++ b/car-lib/api/system-current.txt
@@ -366,6 +366,7 @@
 
   public class CarPackageManager {
     method public boolean isActivityAllowedWhileDriving(java.lang.String, java.lang.String) throws android.car.CarNotConnectedException;
+    method public boolean isActivityBackedBySafeActivity(android.content.ComponentName) throws android.car.CarNotConnectedException;
     method public boolean isServiceAllowedWhileDriving(java.lang.String, java.lang.String) throws android.car.CarNotConnectedException;
     method public void setAppBlockingPolicy(java.lang.String, android.car.content.pm.CarAppBlockingPolicy, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException, java.lang.SecurityException;
     field public static final int FLAG_SET_POLICY_ADD = 2; // 0x2