package android.car {

  public final class Car {
    method public void connect() throws java.lang.IllegalStateException;
    method public static android.car.Car createCar(android.content.Context, android.content.ServiceConnection, android.os.Handler);
    method public static android.car.Car createCar(android.content.Context, android.content.ServiceConnection);
    method public void disconnect();
    method public int getCarConnectionType();
    method public java.lang.Object getCarManager(java.lang.String) throws android.car.CarNotConnectedException;
    method public boolean isConnected();
    method public boolean isConnecting();
    field public static final java.lang.String APP_FOCUS_SERVICE = "app_focus";
    field public static final java.lang.String AUDIO_SERVICE = "audio";
    field public static final int CONNECTION_TYPE_EMBEDDED = 5; // 0x5
    field public static final java.lang.String INFO_SERVICE = "info";
    field public static final java.lang.String PACKAGE_SERVICE = "package";
    field public static final java.lang.String PERMISSION_CAR_CONTROL_AUDIO_VOLUME = "android.car.permission.CAR_CONTROL_AUDIO_VOLUME";
    field public static final java.lang.String PERMISSION_FUEL = "android.car.permission.CAR_FUEL";
    field public static final java.lang.String PERMISSION_MILEAGE = "android.car.permission.CAR_MILEAGE";
    field public static final java.lang.String PERMISSION_SPEED = "android.car.permission.CAR_SPEED";
    field public static final java.lang.String SENSOR_SERVICE = "sensor";
    field public static final int VERSION = 2; // 0x2
  }

  public final class CarAppFocusManager {
    method public void abandonAppFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback, int);
    method public void abandonAppFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback);
    method public void addFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener, int) throws android.car.CarNotConnectedException;
    method public boolean isOwningFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback, int) throws android.car.CarNotConnectedException;
    method public void removeFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener, int);
    method public void removeFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener);
    method public int requestAppFocus(int, android.car.CarAppFocusManager.OnAppFocusOwnershipCallback) throws android.car.CarNotConnectedException, java.lang.SecurityException;
    field public static final int APP_FOCUS_REQUEST_FAILED = 0; // 0x0
    field public static final int APP_FOCUS_REQUEST_SUCCEEDED = 1; // 0x1
    field public static final int APP_FOCUS_TYPE_NAVIGATION = 1; // 0x1
    field public static final int APP_FOCUS_TYPE_VOICE_COMMAND = 2; // 0x2
  }

  public static abstract interface CarAppFocusManager.OnAppFocusChangedListener {
    method public abstract void onAppFocusChanged(int, boolean);
  }

  public static abstract interface CarAppFocusManager.OnAppFocusOwnershipCallback {
    method public abstract void onAppFocusOwnershipGranted(int);
    method public abstract void onAppFocusOwnershipLost(int);
  }

  public final class CarInfoManager {
    method public java.lang.String getManufacturer() throws android.car.CarNotConnectedException;
    method public java.lang.String getModel() throws android.car.CarNotConnectedException;
    method public java.lang.String getModelYear() throws android.car.CarNotConnectedException;
    method public java.lang.String getVehicleId() throws android.car.CarNotConnectedException;
  }

  public class CarNotConnectedException extends java.lang.Exception {
    ctor public CarNotConnectedException();
    ctor public CarNotConnectedException(java.lang.String);
    ctor public CarNotConnectedException(java.lang.String, java.lang.Throwable);
    ctor public CarNotConnectedException(java.lang.Exception);
  }

}

package android.car.app.menu {

  public abstract class CarMenuCallbacks {
    ctor public CarMenuCallbacks();
    method public abstract android.car.app.menu.RootMenu getRootMenu(android.os.Bundle);
    method public abstract void onCarMenuClosed();
    method public abstract void onCarMenuClosing();
    method public abstract void onCarMenuOpened();
    method public abstract void onCarMenuOpening();
    method public abstract void onItemClicked(java.lang.String);
    method public abstract boolean onItemLongClicked(java.lang.String);
    method public abstract boolean onMenuClicked();
    method public abstract void subscribe(java.lang.String, android.car.app.menu.SubscriptionCallbacks);
    method public abstract void unsubscribe(java.lang.String, android.car.app.menu.SubscriptionCallbacks);
  }

  public class CarMenuConstants {
    ctor public CarMenuConstants();
  }

  public static class CarMenuConstants.MenuItemConstants {
    ctor public CarMenuConstants.MenuItemConstants();
    field public static final int FLAG_BROWSABLE = 1; // 0x1
    field public static final int FLAG_FIRSTITEM = 2; // 0x2
    field public static final java.lang.String KEY_EMPTY_PLACEHOLDER = "android.car.app.menu.empty_placeholder";
    field public static final java.lang.String KEY_FLAGS = "android.car.app.menu.flags";
    field public static final java.lang.String KEY_ID = "android.car.app.menu.id";
    field public static final java.lang.String KEY_LEFTICON = "android.car.app.menu.leftIcon";
    field public static final java.lang.String KEY_REMOTEVIEWS = "android.car.app.menu.remoteViews";
    field public static final java.lang.String KEY_RIGHTICON = "android.car.app.menu.rightIcon";
    field public static final java.lang.String KEY_RIGHTTEXT = "android.car.app.menu.rightText";
    field public static final java.lang.String KEY_TEXT = "android.car.app.menu.text";
    field public static final java.lang.String KEY_TITLE = "android.car.app.menu.title";
    field public static final java.lang.String KEY_WIDGET = "android.car.app.menu.widget";
    field public static final java.lang.String KEY_WIDGET_STATE = "android.car.app.menu.widget_state";
    field public static final int WIDGET_CHECKBOX = 1; // 0x1
    field public static final int WIDGET_TEXT_VIEW = 2; // 0x2
  }

  public static abstract class CarMenuConstants.MenuItemConstants.MenuItemFlags implements java.lang.annotation.Annotation {
  }

  public static abstract class CarMenuConstants.MenuItemConstants.WidgetTypes implements java.lang.annotation.Annotation {
  }

  public abstract class CarUiEntry {
    ctor public CarUiEntry(android.content.Context, android.content.Context);
    method public abstract void closeDrawer();
    method public abstract android.view.View getContentView();
    method public abstract int getFragmentContainerId();
    method public abstract java.lang.CharSequence getSearchBoxText();
    method public abstract void hideMenuButton();
    method public abstract void hideTitle();
    method public abstract void onPause();
    method public abstract void onRestoreInstanceState(android.os.Bundle);
    method public abstract void onResume();
    method public abstract void onSaveInstanceState(android.os.Bundle);
    method public abstract void onStart();
    method public abstract void onStop();
    method public abstract void openDrawer();
    method public abstract void restoreMenuDrawable();
    method public abstract void setAutoLightDarkMode();
    method public abstract void setBackground(android.graphics.Bitmap);
    method public abstract void setCarMenuCallbacks(android.car.app.menu.CarMenuCallbacks);
    method public abstract void setDarkMode();
    method public abstract void setLightMode();
    method public abstract void setMenuButtonBitmap(android.graphics.Bitmap);
    method public abstract void setMenuButtonColor(int);
    method public abstract void setScrimColor(int);
    method public abstract void setSearchBoxColors(int, int, int, int);
    method public abstract void setSearchBoxEditListener(android.car.app.menu.SearchBoxEditListener);
    method public abstract void setSearchBoxEndView(android.view.View);
    method public abstract void setTitle(java.lang.CharSequence);
    method public abstract void showMenu(java.lang.String, java.lang.String);
    method public abstract void showSearchBox(android.view.View.OnClickListener);
    method public abstract void showTitle();
    method public abstract void showToast(java.lang.String, long);
    method public abstract android.widget.EditText startInput(java.lang.String, android.view.View.OnClickListener);
    method public abstract void stopInput();
    field protected final android.content.Context mAppContext;
    field protected final android.content.Context mUiLibContext;
  }

  public class RootMenu {
    ctor public RootMenu(java.lang.String);
    ctor public RootMenu(java.lang.String, android.os.Bundle);
    method public android.os.Bundle getBundle();
    method public java.lang.String getId();
  }

  public abstract class SearchBoxEditListener {
    ctor public SearchBoxEditListener();
    method public abstract void onEdit(java.lang.String);
    method public abstract void onSearch(java.lang.String);
  }

  public abstract class SubscriptionCallbacks {
    ctor public SubscriptionCallbacks();
    method public abstract void onChildChanged(java.lang.String, android.os.Bundle);
    method public abstract void onChildrenLoaded(java.lang.String, java.util.List<android.os.Bundle>);
    method public abstract void onError(java.lang.String);
  }

}

package android.car.content.pm {

  public final class CarPackageManager {
    method public boolean isActivityAllowedWhileDriving(java.lang.String, java.lang.String) throws android.car.CarNotConnectedException;
    method public boolean isServiceAllowedWhileDriving(java.lang.String, java.lang.String) throws android.car.CarNotConnectedException;
  }

}

package android.car.hardware {

  public class CarSensorEvent implements android.os.Parcelable {
    method public int describeContents();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.car.hardware.CarSensorEvent> CREATOR;
    field public static final int DRIVE_STATUS_FULLY_RESTRICTED = 31; // 0x1f
    field public static final int DRIVE_STATUS_LIMIT_MESSAGE_LEN = 16; // 0x10
    field public static final int DRIVE_STATUS_NO_CONFIG = 8; // 0x8
    field public static final int DRIVE_STATUS_NO_KEYBOARD_INPUT = 2; // 0x2
    field public static final int DRIVE_STATUS_NO_VIDEO = 1; // 0x1
    field public static final int DRIVE_STATUS_NO_VOICE_INPUT = 4; // 0x4
    field public static final int DRIVE_STATUS_UNRESTRICTED = 0; // 0x0
    field public static final int GEAR_DRIVE = 100; // 0x64
    field public static final int GEAR_EIGHTH = 8; // 0x8
    field public static final int GEAR_FIFTH = 5; // 0x5
    field public static final int GEAR_FIRST = 1; // 0x1
    field public static final int GEAR_FOURTH = 4; // 0x4
    field public static final int GEAR_NEUTRAL = 0; // 0x0
    field public static final int GEAR_NINTH = 9; // 0x9
    field public static final int GEAR_PARK = 101; // 0x65
    field public static final int GEAR_REVERSE = 102; // 0x66
    field public static final int GEAR_SECOND = 2; // 0x2
    field public static final int GEAR_SEVENTH = 7; // 0x7
    field public static final int GEAR_SIXTH = 6; // 0x6
    field public static final int GEAR_TENTH = 10; // 0xa
    field public static final int GEAR_THIRD = 3; // 0x3
    field public static final int IGNITION_STATE_ACC = 3; // 0x3
    field public static final int IGNITION_STATE_LOCK = 1; // 0x1
    field public static final int IGNITION_STATE_OFF = 2; // 0x2
    field public static final int IGNITION_STATE_ON = 4; // 0x4
    field public static final int IGNITION_STATE_START = 5; // 0x5
    field public static final int IGNITION_STATE_UNDEFINED = 0; // 0x0
    field public static final int INDEX_ENVIRONMENT_PRESSURE = 1; // 0x1
    field public static final int INDEX_ENVIRONMENT_TEMPERATURE = 0; // 0x0
    field public static final int INDEX_FUEL_LEVEL_IN_DISTANCE = 1; // 0x1
    field public static final int INDEX_FUEL_LEVEL_IN_PERCENTILE = 0; // 0x0
    field public static final int INDEX_FUEL_LOW_WARNING = 0; // 0x0
    field public final float[] floatValues;
    field public final int[] intValues;
    field public int sensorType;
    field public long timestamp;
  }

  public static class CarSensorEvent.EnvironmentData {
    field public float pressure;
    field public float temperature;
    field public long timestamp;
  }

  public final class CarSensorManager {
    method public android.car.hardware.CarSensorEvent getLatestSensorEvent(int) throws android.car.CarNotConnectedException;
    method public int[] getSupportedSensors() throws android.car.CarNotConnectedException;
    method public boolean isSensorSupported(int) throws android.car.CarNotConnectedException;
    method public static boolean isSensorSupported(int[], int);
    method public boolean registerListener(android.car.hardware.CarSensorManager.OnSensorChangedListener, int, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
    method public void unregisterListener(android.car.hardware.CarSensorManager.OnSensorChangedListener);
    method public void unregisterListener(android.car.hardware.CarSensorManager.OnSensorChangedListener, int);
    field public static final int SENSOR_RATE_FAST = 1; // 0x1
    field public static final int SENSOR_RATE_FASTEST = 0; // 0x0
    field public static final int SENSOR_RATE_NORMAL = 3; // 0x3
    field public static final int SENSOR_RATE_UI = 2; // 0x2
    field public static final int SENSOR_TYPE_CAR_SPEED = 2; // 0x2
    field public static final int SENSOR_TYPE_DRIVING_STATUS = 11; // 0xb
    field public static final int SENSOR_TYPE_ENVIRONMENT = 12; // 0xc
    field public static final int SENSOR_TYPE_FUEL_LEVEL = 5; // 0x5
    field public static final int SENSOR_TYPE_GEAR = 7; // 0x7
    field public static final int SENSOR_TYPE_IGNITION_STATE = 22; // 0x16
    field public static final int SENSOR_TYPE_NIGHT = 9; // 0x9
    field public static final int SENSOR_TYPE_ODOMETER = 4; // 0x4
    field public static final int SENSOR_TYPE_PARKING_BRAKE = 6; // 0x6
    field public static final int SENSOR_TYPE_RPM = 3; // 0x3
    field public static final int SENSOR_TYPE_VENDOR_EXTENSION_END = 1879048191; // 0x6fffffff
  }

  public static abstract interface CarSensorManager.OnSensorChangedListener {
    method public abstract void onSensorChanged(android.car.hardware.CarSensorEvent);
  }

}

package android.car.media {

  public final class CarAudioManager {
    method public void abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes);
    method public android.media.AudioAttributes getAudioAttributesForCarUsage(int) throws android.car.CarNotConnectedException;
    method public int getStreamMaxVolume(int) throws android.car.CarNotConnectedException;
    method public int getStreamMinVolume(int) throws android.car.CarNotConnectedException;
    method public int getStreamVolume(int) throws android.car.CarNotConnectedException;
    method public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes, int, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
    method public void setStreamVolume(int, int, int) throws android.car.CarNotConnectedException;
    field public static final int CAR_AUDIO_USAGE_ALARM = 6; // 0x6
    field public static final int CAR_AUDIO_USAGE_DEFAULT = 0; // 0x0
    field public static final int CAR_AUDIO_USAGE_MUSIC = 1; // 0x1
    field public static final int CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE = 3; // 0x3
    field public static final int CAR_AUDIO_USAGE_NOTIFICATION = 7; // 0x7
    field public static final int CAR_AUDIO_USAGE_RADIO = 2; // 0x2
    field public static final int CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT = 9; // 0x9
    field public static final int CAR_AUDIO_USAGE_SYSTEM_SOUND = 8; // 0x8
    field public static final int CAR_AUDIO_USAGE_VOICE_CALL = 4; // 0x4
    field public static final int CAR_AUDIO_USAGE_VOICE_COMMAND = 5; // 0x5
  }

}

package android.car.settings {

  public class CarSettings {
    ctor public CarSettings();
  }

  public static final class CarSettings.Global {
    ctor public CarSettings.Global();
    field public static final java.lang.String KEY_GARAGE_MODE_ENABLED = "android.car.GARAGE_MODE_ENABLED";
    field public static final java.lang.String KEY_GARAGE_MODE_MAINTENANCE_WINDOW = "android.car.GARAGE_MODE_MAINTENANCE_WINDOW";
    field public static final java.lang.String KEY_GARAGE_MODE_WAKE_UP_TIME = "android.car.GARAGE_MODE_WAKE_UP_TIME";
  }

}